实用的Linux命令行技巧



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

● 本文在itpub(http://blog.itpub.net/26736162)和个人微信公众号(xiaomaimiaolhr)上有同步更新



● QQ群:230161599     微信群:私聊


● 于 2017-07-01 09:00 ~ 2017-07-31 22:00 在魔都完成


● 版权所有,欢迎分享本文,转载请保留出处




拿起手机使用微信客户端扫描下边的左边图片来关注小麦苗的微信公众号:xiaomaimiaolhr,扫描右边的二维码加入小麦苗的QQ群,学习最实用的数据库技术。

实用的Linux命令行技巧_.net