银河麒麟在本质上也是linux的一种发行版,很多对linux比较感兴趣的小伙伴想更深入的了解学习linux。那么这篇文章将为大家介绍一下,在银河麒麟系统中如何进行shell脚本的编辑
shell就是做系统自动化操作 系统管理
脚本 文本文件 解释型语言
把平时在终端上执行的非交互命令一次性全部写到一个文本文件里面,然后给文本文件指定一个命令解释器
非交互命令是输入命令一次性执行
交互命令是输入命令一次性执行不完
做shell脚本
1.创建文本文档做shell脚本 .sh (j\只要以 .sh 结尾的文件系统认定为是脚本文件)
vim a.sh
2.在 vim 编辑器内编辑内容
(1).指定命令解释器
#! 用来指定命令解释器
#!/bin/bash
(2).写注释 (注释是不可以被脚本解释的)
#注释 除了第一行的 # 之外 其他以 # 开头的行全部是注释行
(3).写版本
# version:0.1
(4).写作者
# autor:作成者
(5).写入要执行的命令(写非交互式命令)
1.统计磁盘的使用率
df -h
2.当前登录的账户:
# echo $USER 或者用 whoami
3.本机的ip地址是:
# ifconfig eth0 | grep Mask |cut -d :-f 2 |cut -d ' ' -f 1
4.当前可以登录到系统的账户有几个
# cat /etc/passwd | grep /bin/bash |wc -l
5.当前系统的主机名是:
hostname
[root@sina 桌面]# vim a.sh
1 #!/bin/bash
2 #查看系统信息
3 #version
4 #autor: tom
5 echo "1.统计磁盘的使用率:`df -h`"
6 echo "2.当前登录的账户:`echo $USER`"
7 echo "3.本机的ip地址是:`ifconfig eth0 | grep Mask |cut -d : -f 2 |cut -d ' ' -f 1`"
8 echo "4.当前可以登录到系统的账户有几个:`cat /etc/passwd | grep /bin/bash |w c -l`"
9 echo "5.当前系统的主机名是:`hostname`"
[root@sina 桌面]# . a.sh
1.统计磁盘的使用率:Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 5.1G 13G 29% /
tmpfs 994M 224K 994M 1% /dev/shm
/dev/sda1 194M 34M 151M 19% /boot
/dev/sr0 3.6G 3.6G 0 100% /mnt
2.当前登录的账户:root
3.本机的ip地址是:192.168.1.24
4.当前可以登录到系统的账户有几个:8
5.当前系统的主机名是:sina.com.cn
3.执行脚本
# ./b.sh 直接用脚本内的 /bin/bash 命令解释器执行, 要有执行权限
# . b.sh (注意空格)用当前终端的shell执行 要有读和执行权限
# sh b.sh 用 /bin/sh命令执行 要有读权限
# bash b.sh 用/bin/bash命令执行 要有读权限
# /root/桌面/b.sh 用脚本去执行 要有执行权限
命令表达式
“ ”弱引 软引 会翻译引号内的内容(如果引号内有变量可以取出变量的值)
‘’ 强引 硬引 不会翻译引号内的内容 (如果引号内有变量不可以取出变量的值)
[root@sina 桌面]# a=好
[root@sina 桌面]# echo "你$a"
你好
[root@sina 桌面]# echo '你$a'
你$a
` ` 会翻译引号内的命令 并把他交给外面的命令去使用 返回命令的执行结果
# echo "today is `date`"
today is 2016年 09月 13日 星期二 16:40:10 CST
\ 转义字符
当字符有特殊含义的时候去掉特殊含义
[root@sina tmp]# echo fi\\e
fi\e
[root@sina tmp]# echo fi\e
fie
[root@sina tmp]# echo ***
ct_tmp kde-root keyring-4SIRte keyring-5MkWEy keyring-bUvT4D keyring-QNcakX orbit-gdm orbit-root pulse-AvE0NOrZcP5e pulse-vE33zLU0HZD3 test test2 vgauthsvclog.txt.0 virtual-root.4748pQ virtual-root.6p8Yy8 virtual-root.A2lSk9 virtual-root.bLKiLA virtual-root.im6TYw virtual-root.KxZ9oF virtual-root.ollEbF virtual-root.VVYdxE virtual-root.Y6jFbj VMwareDnD vmware-root
[root@sina tmp]# echo \*\*\*
***
当字符没有特殊含义的时候给予特殊含义
\n 换行符
\t tab键
[root@localhost tmp]# echo -e "tom\tjim"
tom jim
[root@localhost tmp]# echo -e "tom\njim"
tom
jim
-e 翻译\n的含义
echo -n 取消换行
;
当一行执行多条命令的时候用;分隔
ls /home ; cat /etc/passwd
# mkdir /abc ;touch /abc/a.txt
||
a || b 当a执行的结果不成功的时候才执行后面b命令
当a执行的结果成功的时候 不会执行后面b命令
&&
a&&b 当a执行成功才执行b命令
当a执行不成功b也不能执行
make && make install