1.实验环境配置
(1)实验前设置主机命为:shell.example.com
(2)设置ip为:172.25.254.118
2.diff命令和patch命令
(1)diff命令
diff:用来比较两个文件或目录的不同
diff命令在最简单的情况下,比较给定的两个文件的不同。如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。
命令 | 说明 |
---|---|
diff zxyos1 zxyos2 | 比较zxyos1文件与zxyos2文件的不同 |
diff -b zxyos1 zxyos2 | 不检查空格字符 |
diff -B zxyos1 zxyos2 | 不检查空白行 |
diff -c zxyos1 zxyos2 | 显示全部内容,并标出不同之处 |
diff -i zxyos1 zxyos2 | 不检查大小写的不同 |
diff -q zxyos1 zxyos2 | 仅显示有无差异,不显示详细信息 |
diff -r /mnt/xinos1 /mnt/xinos2 | 比较子目录中的文件 |
diff -u zxyos1 zxyos2 | 已合并方式显示文件内容的不同 |
(2)patch命令
patch:用于打补丁,补丁文件是使用diff产生的
patch 命令失败或拒绝接受补丁时,会产生一个和原文件同名,以”.rej”为后缀的差异文件。
当使用 -b 时,会产生一个和原文件同名,以”.orig”为后缀的备份文件。
实验过程如下:
yum install -y patch /*安装补丁工具*/
patch -b zxyos1 zxyos.patch /*给文件zxyos1打补丁, -b---备份源文件*/
安装补丁工具
3.cut命令
cut:可以从一个文本文件或者文本流中提取文本列。
cut命令用法如下:
cut -b filename:-b 字节
cut -c filename:-c 字符
cut -f filename:-f 字段
练习1:显示ifconfig eth0中的ip
ifconfig eth0 | head -n 2 | tail -n 1| cut -c 14-27
ifconfig eth0 | head -n 2 | tail -n 1| cut -d " " -f 10
ifconfig eth0 | head -n 2 | tail -n 1| cut -d ' ' -f 10
ifconfig eth0 | awk ‘/inet\>/{print $2}'
4.sort命令和uniq命令
(1)sort命令
sort:将文件进行排序,并将排序结果标准输出。sort多用于字符排序
命令 | 说明 |
---|---|
sort -n | 纯数字排序 |
sort -r | 倒序 |
sort -u | 去掉重复数字 |
sort -o | 输出到指定文件中 |
sort -t | 指定分隔符 |
sort -k | 指定要排序的列 |
(2)uniq命令
uniq:用于报告或忽略文件中的重复行,一般与sort命令结合使用。可对重复字符作相应的处理
命令 | 说明 |
---|---|
uniq -u | 显示唯一的行 |
uniq -d | 显示重复的行 |
uniq -c | 每行显示一次并统计重复次数 |
练习2:(cp /etc/*.conf /mnt)抓出文件大小排在前5的文件名称
5.&&和||
&&:当前一条命令执行成功时,才执行后一条命令
表达式:command1 && command2(如果command1执行成功,则执行command2)
||: 当上一条命令执行失败后,才执行下一条命令
表达式:command1 || command2(如果command1执行失败,则执行command2)
练习3:ping 172.25.254.111,通时输出 172.25.254.111 is up,不通时输出 172.25.254.111 is down
vim ping.sh
#!/bin/bash
ping -c 1 -w 1 172.25.254.111 &> /dev/null && {
echo 172.25.254.111 is up
}||{
echo 172.25.254.111 down
}
sh ping.sh
vim ping.sh
#!/bin/bash
ping -c 1 -w 1 $1 &> /dev/null && {
echo $1 is up
}||{
echo $1 down
}
sh ping.sh 172.25.254.111
6.tr命令
tr:用来从标准输入中通过替换或删除操作进行字符转换
表达式: tr ‘a-z’ 'A-Z’