概述
介紹下平時工作中一些命令,有些很實用,不過卻比較偏僻,大家可以看一下。
工作常用命令
1. 監控命令(每2秒運行一次)
watch "ls -larth"
2. 限制以下命令的內存使用
ulimit -Sv 1000 # 1000 KBs = 1 MB
ulimit -Sv unlimited # Remove limit
假設有這樣一種情況,當一臺 Linux 主機上同時登陸了 10 個人,在系統資源無限制的情況下,這 10 個用戶同時打開了 500 個文檔,而假設每個文檔的大小有 10M,這時系統的內存資源就會受到巨大的挑戰。
而實際應用的環境要比這種假設複雜的多,例如在一個嵌入式開發環境中,各方面的資源都是非常緊缺的,對於開啟文件描述符的數量,分配堆棧的大小,CPU 時間,虛擬內存大小,等等,都有非常嚴格的要求。資源的合理限制和分配,不僅僅是保證系統可用性的必要條件,也與系統上軟件運行的性能有著密不可分的聯繫。這時,ulimit 可以起到很大的作用,它是一種簡單並且有效的實現資源限制的方式。
ulimit 用於限制 shell 啟動進程所佔用的資源,支持以下各種類型的限制:所創建的內核文件的大小、進程數據塊的大小、Shell 進程創建文件的大小、內存鎖住的大小、常駐內存集的大小、打開文件描述符的數量、分配堆棧的最大大小、CPU 時間、單個用戶的最大線程數、Shell 進程所能使用的最大虛擬內存。同時,它支持硬資源和軟資源的限制。 如果要限制內存使用就可以用上面命令來做了。
3. 使用正則表達式重命名所選文件
rename 's/\.bak$/.txt/' *.bak
這個比較適合比較多的一些文件來重命名
4. 獲得完整的文件路徑
readlink -f file.txt
這個命令主要適用於shell腳本
5.跟蹤路由
mtr google.com
6. 查找文件的提示
find . -size 20c # By file size (20 bytes)
find . -name "*.gz" -delete # Delete files
find . -exec echo {} \; # One file by line
find . -exec echo {} \+ # All in the same line
7. 輸出結果前置行號
ls | nl
8. 檢查每個目錄中的文件的的權限
檢測權限錯誤是很有用的,例如在配置web服務器時。
namei -l /path/to/file.txt
9. 每次修改文件時都會執行命令
這個主要是在shell腳本中可以使用,編輯文件時加上補充說明之類。格式如下:
while inotifywait -e close_write document.tex
do
make
done
10. 檢查資源的使用情況
/usr/bin/time -v ls
11.後臺運行
如果程序不需要任何交互:
nohup ./script.sh &
後臺運行是基本的需求,不過我一般是輸
nohup ./abc.sh 2> error.out &1&
12. 在文件中分割長文件,使用相同數量的行
split -l LINES -d file.txt output_prefix
13. 刷新交換分區
如果一個程序消耗了太多的內存,交換分區就會被剩餘的內存填滿,當你回到正常的時候,一切都是緩慢的。只需重新啟動交換分區來修復它:
sudo swapoff -a
sudo swapon -a
14.. 創建給定大小的空文件
fallocate -l 1G test.img
15. 根據生成的輸出監視進度
15.1、安裝pv命令
/etc/yum.repos.d/ivarch.repo:
[ivarch]
name=RPMs from ivarch.com
baseurl=http://www.ivarch.com/programs/rpms/$basearch/
enabled=1
gpgcheck=1
import my public key forgpgcheck=1 (signature checking) to work:
rpm --import http://www.ivarch.com/personal/public-key.txt
安裝pv
yum install pv -y
15.2、根據生成的輸出監視進度
cat /dev/urandom | base64 | pv -lbri2 > /dev/null
# pv options:
# -l, lines
# -b, total counter
# -r, show rate
pv這個命令是通過管道顯示數據處理進度的信息。這些信息包括已經耗費的時間,完成的百分比(通過進度條顯示),當前的速度,全部傳輸的數據,以及估計剩餘的時間。
後面再單獨整一個關於pv方面的內容,應用的還是很廣的。
篇幅有限,主要介紹這幾個偏僻但還有點用的命令了,後面會分享更多關於devops和DBA方面的內容,感興趣的朋友可以關注下!!
閱讀更多 波波說運維 的文章