1.1 shell基础
1、系统变量
(1)新建脚本文件welcome.sh,用来输出各种监控信息。 [root@localhost ~]# vi /root/welcome.sh #!/bin/bash echo "已开启进程数:$(ps aux | wc -l)" echo "已登录用户数:$(who | wc -l)" echo "根分区磁盘使用率:$(df -h | grep "/$" | awk ‘{print $4}‘)" [root@localhost ~]# chmod +x /root/welcome.sh (2)修改/root/.bash_profile文件,调用welcome.sh脚本程序。 [root@localhost ~]# vi /root/.bash_profile # 在文件末尾添加这条语句 /root/welcome.sh (3)使用root用户重新登录,验证欢迎脚本的输出信息。 Last login: Mon Feb 26 14:52:41 2018 from 1.1.1.100 已开启进程数:183 已登录用户数:4 根分区磁盘空闲:7.4G
1.2 重定向与管道操作
1、重定向输出
[root@localhost ~]# uname > kernel.txt
[root@localhost ~]# cat kernel.txt
[root@localhost ~]# uname -r >> kernel.txt \\追加并保存,不覆盖原有的数据
[root@localhost ~]# cat kernel.txt
2、重定向输入
[root@localhost ~]# vi pass.txt
添加
123456
[root@localhost 桌面]# useradd aaa
[root@localhost ~]# passwd --stdin aaa <pass.txt \\selinux要设置为disabled
1.3 使用shell变量
1、自定义变量
[root@localhost ~]# product=benet
[root@localhost ~]# version=5.0
2、查看和引用变量的值
[root@localhost ~]# echo $product
benet
[root@localhost ~]# echo $product $version
benet 5.0
[root@localhost ~]# echo $product4.5 \\错误的引用
.5
[root@localhost ~]# echo ${product}4.5
benet4.5
3、变量赋值的特殊操作
1. 双引号(可以引用其他变量的值)
[root@localhost ~]# benet=benet 5.0 \\错误的赋值
bash: 5.0: command not found
[root@localhost ~]# benet="benet 5.0"
[root@localhost ~]# echo $benet
[root@localhost ~]# accp="accp $version"
[root@localhost ~]# echo $accp
2. 单引号(任何字符都当做普通字符)
[root@localhost ~]# accp=‘accp $version‘
[root@localhost ~]# echo $accp
3. 反撇号(必须是可执行的命令)
[root@localhost ~]# ls -lh `which useradd`
[root@localhost ~]# DenyList=`grep -v "^#" /etc/profile`
[root@localhost ~]# echo $DenyList
[root@localhost ~]# rpm -qc $(rpm -qf $(which useradd))
4、数值变量的运算
[root@localhost ~]# x=35
[root@localhost ~]# y=16
[root@localhost ~]# expr $x+$y
35+16
[root@localhost ~]# expr $x + $y
51
[root@localhost ~]# expr $x - $y
19
[root@localhost ~]# expr $x \* $y
560
[root@localhost ~]# expr $x / $y
2
[root@localhost ~]# expr $x % $y
3
[root@localhost ~]# Ycube=`expr $y \* $y \* $y`
[root@localhost ~]# echo $Ycube
4096
1.4 特殊的shell变量
1、位置变量
[root@localhost ~]# vi adder2num.sh
#!/bin/bash
SUM=`expr $1 + $2`
echo "$1 + $2 = $SUM"
[root@localhost ~]# ./adder2num.sh 12 14
12 + 14 = 26
ls -lh /root
$0 $1 $2
2、shell中常用预定义变量
$# (命令行中位置参数个数)
$* (所有位置参数内容)
$? (前一条命令返回状态)
$0 (当前执行脚本名称)
1.5 read与echo使用比较
echo "使用-p参数完成多个变量赋值:" read -p "请输入三个数字或字符:(用空格隔开)" num1 num2 num3 echo "num1="$num1 echo "num2="$num2 echo "num3="$num3
[root@localhost bbb]# ./echonum.sh
使用-p参数完成多个变量赋值:
请输入三个数字或字符:(用空格隔开)22 33 44
num1=22
num2=33
num3=44