首页 > 系统相关 >shell基础

shell基础

时间:2023-02-23 14:26:00浏览次数:63  
标签:bin shell 基础 echo sh call setline 033

设置根据后缀补充title

新建.vimrc文件,存放到家目录中

vim .vimrc
#做一些对vim的自定义设置
set cursorline
set autoindent
#当新建的文件以sh结尾的,调用SetTitel()函数
autocmd BufNewFile *.sh exec ":call SetTitle()"
#当新建的文件以hxg结尾的,调用HxgTitel()函数
autocmd BufNewFile *.hxg exec ":call HxgTitle()"

#定义SetTitle函数
func SetTitle()
        if expand("%:e") == 'sh'
        call setline(1,"#!/bin/bash") 
        call setline(2,"#") 
        call setline(3,"#") 
        call setline(4,"#Author:                XXX") 
        call setline(5,"#QQ:                    123456") 
        call setline(6,"#Date:                  ".strftime("%Y-%m-%d"))
        call setline(7,"#FileName:             ".expand("%") )
        call setline(8,"#URL:                   http://xxxxxxxxxxxxxxxxx")
        call setline(9,"#") 
        call setline(10,"#") 
        call setline(11," ")
        endif
#函数结束
endfunc

#定函数HxgTitle函数
func HxgTitle()
        if expand("%:e") == 'hxg'
        call setline(1,"#!/bin/hxg")
        call setline(2,"#") 
        call setline(3,"#")
        call setline(4,"#Author:                XXX")
        call setline(5,"#QQ:                    123456")
        call setline(6,"#Date:                  ".strftime("%Y-%m-%d"))
        call setline(7,"#FileName:             ".expand("%") )
        call setline(8,"#URL:                   http://xxxxxxxxxxxxxxxxx")
        call setline(9,"#")
        call setline(10,"#")
        call setline(11," ")
        endif
#函数结束的标志
endfunc 

#结束后将光标放在结尾
autocmd BufNewFile * normal G

简单的代码

vim /data/hello.sh
#!/bin/bash
echo 'hello word!!'   

运行代码

  1. #bash hello.sh
    hello word!!
    
  2. #先加执行权限
    chmod +x /data/hello.sh
    #然后直接运行
    hello.sh 
    hello word!!
    

新建用户脚本

vim useradd.sh
#!/bin/bash
useradd $1
echo $2 | passwd --stdin $1 &>/dev/null
echo -e '新用户'$1'新建成功\n密码为'$2

运行代码

#文件加执行权限
chmod +x useradd.sh
#运行代码
useradd.sh test admin
新用户test新建成功
密码为admin

显示出电脑的基本信息

vim echo '用户:'`uname -n`
#!/bin/bash
#定义变量,方便随时更改颜色
c='1;36'                                                                                                                                                 
echo -e "用户:\033[${c}m`uname -n`\033[0m"
echo -e "系统:\033[${c}m`cat /etc/centos-release|cut -d' ' -f1,4`版本\033[0m"
echo -e "内核:\033[${c}m`uname -r`版本\033[0m"
echo -e "CPU个数:\033[${c}m`lscpu | grep ^CPU\(s\)|tr -s ' ' ':'|cut -d: -f2`个\033[0m"
echo -e "CPU型号:\033[${c}m`lscpu | grep ^型号名称|tr -s ' ' @|cut -d@  -f4,6`\033[0m"
echo -e "系统内存:\033[${c}m`free -h|grep Mem|tr -s ' '|cut -d' ' -f2`\033[0m"
echo -e "硬盘:\033[${c}m`lsblk |grep sda|head -1|tr -s ' '|cut -d' ' -f4`\033[0m" 

chmod +x lspc.sh

lspc.sh 
用户:hexug
系统:CentOS 7.7.1908版本
内核:3.10.0-1062.el7.x86_64版本
CPU个数:1个
CPU型号:[email protected]
系统内存:1.9G
硬盘:100G

备份的简单脚本

vim /data/bakup.sh
#!/bin/bash
cp -a /etc/ /data/etc-bakup-`date +%F`
echo 'etc文件夹备份成功!' 

chmod +x /data/bakup.sh
bakup.sh 
etc文件夹备份成功!

改进版

可以通过外部赋值的方法,灵活备份文件

vim /data/bakup.sh
#!/bin/bash
cp -av $1$2 /data/$2-bakup-`date +%F` && echo $1$2'文件夹备份成功!' 
chmod +x /data/bakup.sh
#将需要备份的文件或者文件夹进行分割,前半部分是作为第一个变量,目录名作为第二个变量
bakup.sh /etc/ profile.d
/etc/profile.d文件夹备份成功!

shell脚本基础

格式要求:首行shebang机制

#!/bin/bash
#!/usr/bin/python
#!/usr/bin/perl

脚本调试

检测脚本中的语法错误
bash -n /data/1.sh
调试执行
bash -x /data/1.sh

标签:bin,shell,基础,echo,sh,call,setline,033
From: https://www.cnblogs.com/guangdelw/p/17147785.html

相关文章

  • shell中的变量
    Shell中变量命名法则不能使程序中的保留字:例如if,for只能使用数字、字母及下划线,且不能以数字开头见名知义统一命名规则:驼峰命名法Shell中命名建议规则变量名......
  • Java基础知识点(类的几个补充注意事项和private关键字)
    一:类的几个补充注意事项1.用来描述一类事物的类,专业叫做javaBean类2.在以前,编写main方法的类叫做测试类,我们可以在测试类中创建javabean类的对象并进行赋值调用。3.类名首字......
  • PowerShell 调用接口插入模拟数据
       functioninsertUser($i=2){$str="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"#字符串#echo$str.ToCharArray()......
  • 三.Linux的基础
    Linux命令包括:文件管理、文档编辑、系统管理、磁盘管理、文件传输、网络通讯、设备管理、备份压缩......3.1文件和目录管理绝对路径和相对路径的区别目录命令:pwd(p......
  • SpringBoot基础篇学习讲义
    SpringBoot文档更新日志版本更新日期操作描述v1.02021/11/14A基础篇前言​ 很荣幸有机会能以这样的形式和互联网上的各位小伙伴一起学......
  • 云计算基础
    理解云计算云计算的定义云计算是分布式计算的一种特殊形式,引入效用模型来远程供给可扩展和可测量的资源。云计算相关技术集群化:一组互联的IT资源,以整体形式工作。网格......
  • [代码审计基础 15]phpmcs_v9.6 rce
    PHP:5.4.5设置调试:https://blog.csdn.net/m0_46641521/article/details/120107786版本:phpcms_v9.6.0_UTF80x01:路由分析和前一篇一样的路由,但是对输入的关键字都有了防护......
  • 通信小白基础学习---6G通信展望 智能超表面,轨道角动量,全息无线电等
    以下内容来源于B站up主“捻叶成剑”,如有侵权,请联系本人删除!应用于视距传输应用室内原视频链接:https://www.bilibili.com/video/BV11......
  • Nginx基础02:配置文件nginx.conf(Part1)
    我们使用Nginx主要是通过其配置文件nginx.conf来实现的。按照一定的规则,编写特定的指令,可以帮助我们实现对Web服务的控制!所以,学习Nginx的用法,几乎就是学习nginx.conf!如何......
  • ORACLE基础之oracle锁(oracle lock mode)详解
    ORACLE里锁有以下几种模式:0:none1:null空2:Row-S行共享(RS):共享表锁,subshare 3:Row-X行独占(RX):用于行的修改,subexclusive 4:Share共享锁(S):阻止其他DML操......