我常用的一些linux命令
文章目錄
服務器運行狀態相關命令
ps
基本用法
參考資料
pstree
基本用法
top
基本用法
free
基本用法
文件操作相關
cat
基本用法
tail
基本用法
head
基本用法
more
基本用法
less
基本用法
grep
基本用法
awk
基本用法
參考資料
sort
基本用法
uniq
基本用法
wc
基本用法
參考資料
sed
parallel
參考資料
scp
基本用法
磁盤及IO
du
基本用法
df
基本用法
iostat
iotop
find
基本用法
參考資料
locate
基本用法
tree
基本用法
網絡
ping
基本用法
nc
基本用法
參考資料
route
基本用法
參考資料
netstat
基本用法
traceroute
基本用法
參考資料
iftop
lsof
dig
基本用法
參考資料
curl
基本用法
參考資料
wget
基本用法
其他
yum|apt install
基本用法
man
基本用法
服務器運行狀態相關命令
ps
查看系統進程線程,我一般都是用這個命令查看進程pid的,然后用pid做更深入的排查。
ps -aux 查看所有進程
ps -T -p ${pid} 查看某個進程的線程
10個重要的Linux ps命令實戰
pstree
查看系統進程樹,他可以把各個進程之間的關系用樹形結構標識出來。
pstree
top
查看系統進程線程運行情況,包裹資源的使用情況,系統負載等。我的用法是看下服務器上負載是否很高,然后看具體是哪個進程,哪個線程占用cpu比較多。
top 列出所有線程負載信息
top -H 列出所有線程的負載信息
top -H -p ${pid} 列出某個pid下所有線程的負載信息
free
查看內存及使用情況
free
文件操作相關
cat
我都是用這個命令查看配置文件,或者是日志文件,但是有點需要注意,cat命令會把整個文件輸出到終端了,如果文件內容非常多,建議使用grep進行過濾,或者直接用less或more命令。
cat file.txt
tail
查看某個文件的尾部,或者查看標準出入的最末尾,默認值顯示10行,可以用-n參數來指定輸出多少行。
tail -n 100 file.txt 輸出最末尾的100行
tail -f file.txt 隨著文件新增,持續輸出新增的內容,一般用來看實時日志
head
和tail命令很相似,不過head是輸出頭部內容,個人感覺head遠沒有tail命令用的多。
head -n 100 file.txt 輸出最開始的100行
more
也是用來查看文件,但more命令只加載一屏的內容,可以向下翻動,因為加載的內容少,所以比cat快多了。
more file.txt
less
和more很像,但是可以上下翻動,感覺less和more只需要less就可以了,完全可以去掉more啊
less file.txt
grep
這個是我非常常用的一個命令了,尤其是在問題排查的時候,需要用grep從大量的數據中篩選出一些我想要的。 grep也支持正則表達式匹配。
grep "abc" file 從file中篩選出包含 abc的行。
awk
開頭我也說過,這個命令是我最常用的命令之一,比如在文件有多列的時候,我可以用awk輸出具體某幾列,或者做一些簡單的統計 求和,求平均值啊,再或者做一下簡單的數據格式化。
cat data | awk '{print $1,$3,$5}' 輸出第1 3 5列,注意下標是從1開始
cat data | awk '{ sum += $1 } END { print sum }' 對第一列求和
cat data | awk -F'\t' '{print $1,$3}' 把每行數據按tab分列,并輸出1 3列
阮一峰 awk介紹
sort
對標準內容做排序,
cat file|sort 把file里的數據排序,注意是按字典序排的,如果想按數值排,需要能夠加-n參數
cat file|sort -k2 -n -r 按第二列 數值 倒序 排序,-k指定第幾列,-r是翻轉reverse的意思
uniq
對排序好的內容去重,注意它只是把相鄰且相同的去重,所以如果想要全局去重,需要先用sort排序。
cat file|sort|uniq 把file里的文件排序并去重
cat file|sort|uniq -c 把file里的文件排序并去重,且輸出每行出現的次數
wc
我都是用wc來數有多上行,其實wc不僅僅能數多少行,還可以數多少單詞,多少字符。
wc -l file 數下file里有多少行
wc -w file 多少個單詞
wc -c file 多少個字節
wc -m file 多少個字符
http://www.runoob.com/linux/linux-comm-wc.html
sed
parallel
linux大部分命令都是單進程的,這個命令可以讓其他命令多進程執行。
15分鐘神器gnu parallel 入門觀止
scp
之前運維大量機器的時候,通常需要批量修改某個配置文件,都是在一臺機器上改好,然后用scp腳本分發到其他機器上去的,大大提高效率。
scp aaa.txt test@192.168.1.3:/tmp/ 把當前目錄下的aaa.txt文件通過192.168.1.3上的test賬號放到/tmp目錄下
scp test@192.168.1.3:/tmp/aaa.txt . 和上一條相反
磁盤及IO
du
查看目錄大小
du -h --max-depth=1 輸出最深1層的目錄,然后文件大小用人類可讀的方式,比如1K 234M 2G
df
查看磁盤大小和占用情況
df -h 查看各個分區的大小和使用情況
iostat
查看磁盤的io狀態
iotop
可以類似于top目錄一樣,實時顯示各個進程的io狀態。
find
查找文件,查找條件可以是文件名,文件日期,文件大小,很強大。 我們之前服務器上有個磁盤滿就強制刪除服務器某個目錄下大于1g,且時間大于2天,且文件名是*.log的文件,就是用find加xargs命令做的
find /home/test -iname "test.txt 在/home/test/下找文件名為test.txt的文件,也支持通配符
find /home/test -isize +100M 查找/home/test下大于100M的文件
wikipedia unix find
locate
定位某個具體文件的位置,locate命令要比find -name快得多,原因是它不搜索具體目錄,而是搜索一個數據庫/var/lib/mlocate/mlocate.db,這個數據庫會通過一個cron定時更新,所以有可能新建的文件會檢索不到。
locate a.txt 定位a.txt的位置,如果系統中有多個a.txt,會全部顯示出來。
tree
可以看到樹狀目錄結構,
tree -L 2 只顯示兩層樹狀結構
網絡
ping
查看網絡是否通
ping www.baidu.com
nc
netcat,可以用來看遠程某個端口是否打開,功能很強大,但是我用到的不多。
nc -z xindoo.me 443 檢測我服務器上的443端口是否開放(當然是開的)
linux nc命令介紹
route
查看和操作本機路由表
route 列出本地路由表
百度百科 route命令
netstat
查看本機的網絡狀態,可以看到端口占用情況和網絡鏈接情況。
netstat -antp
traceroute
查看一個請求到目標服務器所經過的所有路由節點,一般用來排查網絡問題。
traceroute www.baidu.com
百度百科 netstat
iftop
查看實時網絡io情況
lsof
查看端口占用
dig
查看域名的信息,之前做運維的時候,經常需要驗證某個域名解析改動是否生效,因為一般一個域名會-A到多個ip上,用ping命令只能看到一個ip,這個時候我就會用dig來看域名解析信息了。
dig www.baidu.com
dig 命令介紹
curl
發起一個http請求,我一般都是用這個命令來驗證服務是否能正常訪問的,它有獲取html源碼的功能。
curl www.baidu.com
curl -I www.baidu.com 獲取請求baidu.com的請求頭
curl的用法(英文)
wget
下載網絡上一個文件,基本上就是有個命令行版的下載工具了。
wget xindoo.me/test.txt 把我服務器上test.txt文件下載到本地
其他
yum|apt install
很多時候服務器上沒有我們想要的工具,可以用這個命令安裝下,yum是Fedora和RedHat以及CentOS中的Shell前端軟件包管理器, apt是ubuntu平臺上的。
yum install curl
apt install curl
man
這個命令是用來查看其它命令手冊的,可以看到具體某個命令的詳細作用,和具體參數。這個是個很重要的命令了,一般他會比各命令自帶的–help詳細很多。
man curl 查看curl命令的手冊
Linux 任務調度
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。