Linux下面命令多,功能强大,平时重在积累,用时事半功倍。举例几个实用的Linux命令
1、关闭进程
比较冗长的一个命令:先用ps命令获得进程信息,然后用grep的-v选项过滤掉查看本身,再用awk将获得该进程号,然后交给kill命令删除。
ps ef | grep XXX | grep -v grep | awk '{print $2}' | xargs kill -9
获取进程的pid值可以简单的使用pidof或者pgrep等命令,明显简单了很多。
pidof XXX | xargs kill -9
pgrep XXX | xargs kill -9
另一种思路通过专门通过名称作为参数来执行关闭的命令,比如pkill或者killalll。
pkill -9 进程名称
2、查找
find非常强大的命令。能够按照多种查找条件来寻找文件系统中的文件。
查找某个路径下的某个名称的文件
find `pwd` -name "xxxxxx"
在根文件系统下,查找大小大于XXX MB的文件,常用来查找过大的文件,可以为后续清理释放空间。
find / -size +XXXM
找出某个路径的空文件
find /path -empty
除此之外还可以根据时间、uid、gid、文件类型(字符设备、块设备、目录、常规文件等)等条件进行搜索。功能非常强大。
3、管道
在1关闭进程中已经展示了一个命令xargs。xargs是linux中一个强大,却容易被忽视的命令。
xargs将管道或者标准输出作为参数传递给可执行的命令。
<first command> | xargs <second command>
#for example
find / -size +XXX | xargs rm
xargs提供-p参数用来确认xargs所执行的命令是否正确,用户可以键入“y”来确认继续执行命令。如在ceph源码中执行如下命令,则出现是否删除的选择。
ls | xargs -p rm
rm AuthMonitor.cc AuthMonitor.h CMakeLists.txt?
也提供-t参数,它的行为是让执行的命令先打印,但是和“-p”不同的是它不用确认直接执行下去。
还有一个好用的是-I,可以用-I 指定替换字符串一般使用{},比如将本目录下的文件拷贝到/root目录下。
ls | xargs -I {} cp {} /root
有些命令遇到比较长的参数会报错“Argument list too long",遇到这种情况则可以用-0选项,即以“\0”为断开符号执行命令。
4、监控
如果想简单的观察每次命令执行时输出的变化。一个常用的命令是watch。
watch -n 1 <command>
-n 代表interval即时间间隔,常用的选项还有-d(difference)即输出时间间隔内变化的部分。
5、输出合并
shell当中可以用“>”或者“>>”追加的方式将输出重定向到某个地方。还有一个容易被忽视的用法是将输出合并 n&>m。比如让某个命令的标准输出(1)和错误输出(2)到文件中。
command > file 2&>1
网友评论