常用的shell命令(陸續更新),shell命令更新
只是我個人經常用到的,不是很全
1、擷取管道前面的返回值
echo ${PIPESTATUS[0]}
e.g.
root@node2:~# date1 | echo 22No command 'date1' found, did you mean: Command 'date' from package 'coreutils' (main)date1: command not foundroot@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 greproot 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 cephroot 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 cephroot 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 cephroot 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