首页 > 代码库 > 常用的shell命令(陆续更新)

常用的shell命令(陆续更新)

只是我个人经常用到的,不是很全


1、获取管道前面的返回值

 echo ${PIPESTATUS[0]}

e.g.

root@node2:~# date1 | echo 2
2
No command 'date1' found, did you mean:
 Command 'date' from package 'coreutils' (main)
date1: command not found
root@node2:~# echo ${PIPESTATUS[0]}
127

2、查看进程

ps -ef | grep pidname | grep -v grep

注:-v是排除,-ef是ps的参数

e.g.

root@node1:~# ps -ef | grep ceph | grep -v grep
root     34880     1  0 11:14 pts/1    00:01:15 /usr/bin/ceph-mon -i node1 --pid-file /var/run/ceph/mon.node1.pid -c /etc/ceph/ceph.conf --cluster ceph
root     37315     1  0 11:17 ?        00:00:38 /usr/bin/ceph-osd -i 0 --pid-file /var/run/ceph/osd.0.pid -c /etc/ceph/ceph.conf --cluster ceph
root     37538     1  0 11:17 ?        00:00:36 /usr/bin/ceph-osd -i 1 --pid-file /var/run/ceph/osd.1.pid -c /etc/ceph/ceph.conf --cluster ceph
root     46838     1  0 11:39 ?        00:00:02 /usr/bin/ceph-mds -i node1 --pid-file /var/run/ceph/mds.node1.pid -c /etc/ceph/ceph.conf --cluster ceph


3、断电

echo b > /proc/sysrq-trigger 


4、查看后他运行的脚本,以及转入前台运行

jobs:查看所有后台运行的脚本
fg 1/2..:转入前台运行

脚本后面加个 &,就可以在后台运行了,即使Xshell不小心关了也可以继续运行,如果你要查看在后台运行了那些,或者关掉这些进程,就用上面两个命令转到前台来


5、查看内存使用量和清理内存

查看内存使用量free -m

清内存
echo 3 > /proc/sys/vm/drop_caches释放所有能释放的内存
 0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存 

简单说,清除系统对内存的cache,使用root做下面几步:
1. sync  
2. echo 3 > /proc/sys/vm/drop_caches
3. sync  
4. echo 0 > /proc/sys/vm/drop_caches


6、调试模式运行脚本并将结果保存到文件

sh -x /script_path > file 2>&1


7、查找目录下的所有文件中是否含有某个字符串

查找目录下的所有文件中是否含有某个字符串
find .|xargs grep -ri "string"
查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名
find .|xargs grep -ri "string" -l 




常用的shell命令(陆续更新)