1. 输出内容格式化
例如 mount
命令的输出结果看起来很费劲
可以使用 column
对其进行格式化
mount | column -t
再比如有的文件内容格式也不友好
cat /etc/passwd
可以根据 :
进行格式化
cat /etc/passwd | column -t -s:
2. 重复执行命令,直到成功
例如:
ping 一个server直到其是live状态
检查某个特定的文件是否被成功上传
检查某个特定URL是否存在
可以使用 while true
实现,示例:
while true > do > ping -c 1 baidu.com > /dev/null 2>&1 && break > done;
其中 >/dev/null 2>&1
是把程序的输出转到空设备 /dev/null
(详细说明可以查看之前的文章 “理解 Linux shell 中的一个方言:2>&1”)
3. 进程列表根据CPU、内存排序
ps -aux
的结果中第3、第4列为 cpu
和 内存
根据内存排序:
ps aux | sort -rnk 4
根据CPU排序:
ps aux | sort -rnk 3
4. 用 root 权限执行上一条命令
有时我们会忘记在需要root权限的命令前使用 sudo
,就要重写,比较麻烦,可以使用 sudo !!
命令来省去麻烦
例如
[vagrant@localhost ~]$ cat /etc/shadow cat: /etc/shadow: Permission denied
接下来直接执行 sudo !!
就可以用 root 权限执行上一条命令 cat /etc/shadow
5. 强大的 Xargs 命令
示例(1)
例如文件 urls.txt
中有一个url列表,现在想下载他们,可以使用命令一次完成:
cat urls.txt | xargs wget
xargs
会把 cat
的输出结果作为参数传给 wget
示例(2)
再比如需要杀掉 tomcat
进程
ps -ax | grep tomcat | grep -v grep | awk '{print $1}' | xargs kill -9
grep tomcat
过滤出含有 tomcat
的进程
grep -v grep
是排除含有 grep
的进程
awk '{print $1}'
取得进程号那列内容
xargs kill -9
把前面取得的tomcat进程号传给 kill
命令
示例(3)
如果要传递的命令中需要多个参数,如 cp
有2个参数,xargs
要把之前命令的输出作为其中一个参数传给 cp
ls *.txt | xargs -i cp {} /tmp