sort:
排序命令
-f: 忽略字符大小写,不是-i
-n: 以数值大小进行排序;默认以字符串大小排序,且是升序。
-r: 降序;
-u: 移除重复的行,具有相同内容的行只保留一个;
-R: 随机排序;
-t:指定分隔符
-k:指定被分隔符分开的第几个段进行排序,后面无需空格。
#cut -d: -f3 /etc/passwd | sort -n 对passwd文件的第三段进行排序
#sort -n -t: -k3 /etc/passwd | cut -d: -f1
将paswwd文件中的用户名按照UID的大小进行排序。
cut:
-d:指定分隔符,默认是空格,使用时-d‘ ‘。
-f#:指定截取第几段
seq:
用于在for脚本中制作数值范围
# man seq获得帮助
seq [OPTION]... FIRST INCREMENT LAST
seq 1 100,默认步进为1,所以这里是排列成从1到100.这里相当于{1..100}(但是{1..100}不能含有变量,而seq属于命令可以含有变量)
seq 2 2 100,这里是步进为2,罗列出从2到100的所有偶数。
shift:
bash内置变量,在脚本中用于轮替位置变量
#!/bin/bash
echo $1
shift
echo $1
shift 1
echo $1
shift 2
echo $1
basename:
取得路径的基名,用于脚本中取得执行脚本的文件名,例如basename $0,
相当于脚本中echo ${VAR_NAME##*/}
dirname:
取得路径的目录名,与上面相反。相当于echo ${VAR_NAME%/*
exec COMMMAND
常用于脚本,结束父进程。比如关机是使用exec /sbin/halt -p关机
bc:
计算程序:
可以指定计算精度,scale=#
脚本中的使用方法:
bc <<< “scale=#;被除数/除数” (这里的scale可以省略,而除法也可以换为其他算法)
shell中不支持浮点数,如果出现就会被圆整为整数,即四舍五入
uniq:
-c:统计每行重复的次数;
-u:只显示没有重复的行
-d: 只显示重复过的行;两相同行必须挨着才算重复。
tr:
转字符
tr [options] ‘原来的字符集合‘ ‘转换后的字符集合‘
tr ‘123‘ ‘abc‘ 这样的写法只能使用管道符给以输入
tr ‘123’ ‘abc‘ < /test这样可以从abc这个文件直接输入了
tr -d ‘123‘ < /test 这样可以将test文件中的123这样字符给删除
cat :
重定向制作文件或显示,常用于脚本中制作提示选项 ,EOF表示遇到EOF这的字符就停止
#cat > /test << EOF
>w
>q
w
q
这时既将wq两行字符输出屏幕,又写入了/test文件。若用于脚本,“> /test”可以省略
tee:
将命令的输出写入文件的同时又输出到屏幕,就像一个“T”,一头进,两头出。
tee只接受管道传输的字符
cat /etc/passwd | tee > /root/passwd.bak