diff
diff命令是用来比较两个文件或目录的不同
diff [options] file1 file2
diff directory1 directory2
(1)
diff westos1 westos2 ##比较westos1 和 westos2文件的不同
测试
##vim westos1
hello westos
##vim westos2
hello westos
123
(2) -b 不检查空格字符
diff -b westos1 westos2
测试
将westos2内容修改为
hello westos (加空格)
diff westos1 westos2 识别出不同
diff -b westos1 westos2 ##没有识别出不同
(3)-B 不检查空白行
##将westos2的内容修改为
hello westos (加空行)
##diff westos1 westos2
识别出不同
##diff -B westos1 westos2
没有识别出不同
(4)-c 显示全部内文,并标出不同之处
#将westos2的内容修改为
hello westos 123
##diff -c westos1 westos2
会在不同的行前以感叹号标注
(5)-r 比较子目录中的文件
##mkdir /mnt/westos /mnt/lee
cd /mnt/westos touch hello
diff -r /mnt/westos /mnt/lee
会显示只有westos下有
(6) -u 以合并的方式来显示文件内容的不同
##将westos2中的内容修改为
hello westos
lee
test 123
##将westos1中的内容
hello westos
lee
test
diff -u westos1 westos2
patch 用于文件打补丁
diff -u westos1 westos2 > westos.path ##将合并的文件内容导入到补丁包中
cat westos.path ##补丁包
yum install patch
patch -b westos.path westos1 ##给westos1打补丁
cat westos1 westos2 ##两个文件内容相同
-b:保存 加上-b参数
cut多用于字符截取
cut -d 指定分隔符 空格的分割符表示" "(或者应该可以使用转义字符表示空格)
cut -f 1,7|1-7 指定截取的列(第1和第7列/第1至7列)
cut -c 1,4|1-4 指定截取的字符位置为(第1和第4个字符/第1至4个字符)
常用方式:
cut -d : -f 1 passwd
截取操作文件passwd,以:作为分隔符,取出第一列
cut -c 1-4 passwd
截取操作文件passwd,取出第1-4列字符(这个命令没有分隔符,应该也会取出空格,空行等作为字符)
ifconfig eth0 | grep 'inet '|cut -d " " -f 10 ##ifconfig eth0 把IP截取出来
sort 对文本排序
参数 | 解释 |
---|---|
-n | 纯数字排序 |
-r | 倒序/逆序 |
-u | 去掉重复数字 |
-o | 输出到指定文件 |
-t | 指定分隔符 |
-k | 指定要排序的列 |
sort westos
sort -n westos
sort -nr westos
sort -nru westos
sort -nr westos | uqid -c | sort -t “ “ -k 2 ##统计重复的次数,并把重复次数的多少由少到多进行排列
uniq 对重复字符做相应的处理
参数 | 解释说明 |
---|---|
uniq -u | 显示唯一的行 |
uniq -d | 显示重复的行 |
uniq -c | 每行显示一次并统计重复次数 |
sort -n westos | uqid -u
sort -n westos | uniq -d
sort -n westos | uniq -c
&&和||
&&用来执行条件成立后执行的命令,|| 用来执行条件不成立后执行的命令
&& 前面的语句正确(符合条件),执行该命令 || 前面的语句错误,执行该命令
只能检测单条语句逻辑,判断执行
##检测能否ping通目标主机
vim ping.sh
ping -c1 -w1 172.25.254.111 &> /dev/null \
&& echo '172.25.254.111 is up' \
|| echo '172.25.254.111 is down'
chmod +x ping.sh
sh ping.sh ##即可执行该脚本
test
test命令和[]等同
参数 | 解释说明 |
---|---|
-lt | 小于 |
-le | 小于等于 |
-gt | 大于 |
-ge | 大于等于 |
-ne | 不等于 |
-a(and) | 与 |
-o(or) | 或 |
-z | 是否数字为0,或字符为空 |
-n | 是否为非空(与-z相反) |
-ef | 是否使用的是同一个节点区域(互为硬链接) |
-nt(now than) | 前一个文件建立的是否比后一个文件晚 |
– | – |
-ot(old than) | 前一个文件建立的是否比后一个文件早 |
参数 | 解释说明 |
– | – |
-e | 是否存在该文件 |
-f | 是否为普通文件 |
-L | 是否为软链接(快捷方式) |
-S | 是否为套接字 |
-b | 是否为块设备(如,u盘插入后,sdb) |
-d | 是否为目录文件 |
-c | 是否为字符设备(/dev/pts/1) |
``反向单引号,其内的命令先执行
对挂载点/下内存满30时进行报警,报警显示在日志中,并且每分钟执行一次
执行成功
tr 转换大小写字符
echo hello HELLO | tr 'a-z' 'A-Z'
将小写字母转换为大写字母
echo hello HELLO | tr 'A-Z' 'a-z'
将大写字母转换为小写字母