目录
shell中常用的命令
1.diff
用法:diff [OPTION]... files|directorys
输出信息:
[num1,num2][a|c|d][num3,num4]
num1,num2 第一个文件中的行
a 添加
c 更改
d 删除
< 第一个文件中的内容
> 第二个文件中的内容
num3,num4 第二个文件中的行
常用参数:
-b 忽略空格
-B 忽略空行
-i 大小写
-c 显示文件中所有内容并标示不同
-r 对比目录
-u 合并输出
2.patch
(patch命令需要下载安装)
patch 源文件 布丁文件
-b 备份源文件
生成布丁文件
根据布丁文件修改源文件
3.cut
cut
-d : 指定 : 为分割符
-f 指定显示的列
第2列2
第1列和第3列1,3
第1列到第3列1-3
第3列到最后3-
最前到第3列-3
提取ens3网卡的ip信息
提取uid最大的user用户名
4.sort
-n 纯数字
-r 倒序
-u 去重
-o 输出到指定文件
-t 指定分割符
-k 指定排序的列
5.uniq
-c 合并重复 并统计个数
-d 显示重复的行
-u 显示唯一的行
6.tr
tr 'a-z' 'A-Z' < westosfile 将westosfile中的小写转换成大写
tr 'a' 'b' < westosfile 将其中的a转换成
7.test
test = [] [] 就相当于test命令 在[]书写内容时 两边必须有空格,元素必须使用引号引起来
"test $a = $b" = [ "$a" = "$b" ]
test数字对比
=
!=
-eq 等于
-ne 不等于
-le 小于等于
-lt 小于
-ge 大于等于
-gt 大于
输入一个数,在1-10之间输出yes否则输出no
test条件关系
-a 并且
-o 或者
test对空判断
-n nozero 判定不为空
-z zero 判定为空
#!/bin/bash
[ "$1" -le "10" -a "$1" -ge "1" ] &> /dev/null && {
echo yes
}||{
echo no
}
[root@westoslinux mnt]# sh txt.sh 3 输入数字在0-10间输出yes否则输出no
yes
[root@westoslinux mnt]# sh txt.sh 35
no
test 对文件的判定
-ef 文件节点是否一致(硬连接)
-nt 文件1是否比文件2新(建立时间)
-ot 是否比更老
-d 目录
-S 套结字
-L 软连接
-e 存在
-f 普通文件
-b 块设备
-c 字符设备
ln -s /mnt/file /mnt/westos 建立链接,westos文件为电脑生成的连接点,不能为以存在文件
8.&& || 判断
&& 符合条件动作 执行&&后的指令
|| 不符合条件动作 执行||后的指令
ping 1.1.1.1 -w1 -c1 &> /dev/null && echo up || echo down 因为不符合条件ping不通,显示down
ping 172.25.254.35 -w1 -c1 &> /dev/null && echo up || echo down 符合条件能ping通,显示up
[root@westoslinux mnt]# cat test.sh
#!/bin/bash #命令运行环境指令
ping 1.1.1.1 -w1 -c1 &> /dev/null && { #注意此处括号不要忘记写一对
echo ping is up
}||{
echo ping is down
}
[root@westoslinux mnt]# sh test.sh #脚本的运行
ping is down
$1表示.sh脚本后跟的第一个字符串
查找能用su - 切换的用户: