運維linux命令

2021-09-09 06:29:03 字數 4784 閱讀 8068

原文:

感謝博主的文章!

之前做過兩年的運維,用過很多命令,深切體會到某些linux命令熟練掌握後對效率提公升有多大。舉個簡單的例子,在做了研發後經常會有跑一些資料,對於結果資料的處理,我們的產品同學一般都習慣於用excel做統計,把資料複製到excel裡,然後資料分列,排序………… 最後得出某些簡單的結論,我只需要cat, sort, uniq, awk, grep 這幾個命令揮手間完成相同的操作。

這裡我總結下我工作這幾年用過的一些命令,當然,這裡就不提那些vim cd ls mv cp這種簡單的命令了,如果你都不會這些命令的話,建議你先學習下。這裡命令很多,我只簡單列出幾個我常用的引數。其實很多命令我也用的不是特別多,這篇文章我也只是希望能讓大家知道有這樣乙個工具,但具體用如果想繼續深入了解的話建議檢視下手冊,部分比較命令我也列出了有些參考資料。

檢視系統程序執行緒,我一般都是用這個命令檢視程序pid的,然後用pid做更深入的排查。

基本用法

ps -aux檢視所有程序

ps -t -p $檢視某個程序的執行緒

參考資料

10個重要的linux ps命令實戰

檢視系統程序樹,他可以把各個程序之間的關係用樹形結構標識出來。

基本用法

pstree

檢視系統程序執行緒運**況,包裹資源的使用情況,系統負載等。我的用法是看下伺服器上負載是否很高,然後看具體是哪個程序,哪個執行緒占用cpu比較多。

基本用法

top列出所有執行緒負載資訊

top -h列出所有執行緒的負載資訊

top -h -p $列出某個pid下所有執行緒的負載資訊

檢視記憶體及使用情況

基本用法

free

我都是用這個命令檢視配置檔案,或者是日誌檔案,但是有點需要注意,cat命令會把整個檔案輸出到終端了,如果檔案內容非常多,建議使用grep進行過濾,或者直接用less或more命令。

基本用法

cat file.txt

檢視某個檔案的尾部,或者檢視標準出入的最末尾,預設值顯示10行,可以用-n引數來指定輸出多少行。

基本用法

tail -n 100 file.txt輸出最末尾的100行

tail -f file.txt隨著檔案新增,持續輸出新增的內容,一般用來看實時日誌

和tail命令很相似,不過head是輸出頭部內容,個人感覺head遠沒有tail命令用的多。

基本用法

head -n 100 file.txt輸出最開始的100行

也是用來檢視檔案,但more命令只載入一屏的內容,可以向下翻動,因為載入的內容少,所以比cat快多了。

基本用法

more file.txt

和more很像,但是可以上下翻動,感覺less和more只需要less就可以了,完全可以去掉more啊

基本用法

less file.txt

這個是我非常常用的乙個命令了,尤其是在問題排查的時候,需要用grep從大量的資料中篩選出一些我想要的。 grep也支援正規表示式匹配。

基本用法

grep "abc" file從file中篩選出包含 abc的行。

開頭我也說過,這個命令是我最常用的命令之一,比如在檔案有多列的時候,我可以用awk輸出具體某幾列,或者做一些簡單的統計 求和,求平均值啊,再或者做一下簡單的資料格式化。

基本用法

cat data | awk ''輸出第1 3 5列,注意下標是從1開始

cat data | awk ' end '對第一列求和

cat data | awk -f'\t' ''把每行資料按tab分列,並輸出1 3列

參考資料

阮一峰 awk介紹

對標準內容做排序,

基本用法

cat file|sort把file裡的資料排序,注意是按字典序排的,如果想按數值排,需要能夠加-n引數

cat file|sort -k2 -n -r按第二列 數值 倒序 排序,-k指定第幾列,-r是翻轉reverse的意思

對排序好的內容去重,注意它只是把相鄰且相同的去重,所以如果想要全域性去重,需要先用sort排序。

基本用法

cat file|sort|uniq把file裡的檔案排序並去重

cat file|sort|uniq -c把file裡的檔案排序並去重,且輸出每行出現的次數

linux大部分命令都是單程序的,這個命令可以讓其他命令多程序執行。

15分鐘神器gnu parallel 入門觀止

之前運維大量機器的時候,通常需要批量修改某個配置檔案,都是在一台機器上改好,然後用scp指令碼分發到其他機器上去的,大大提高效率。

scp aaa.txt [email protected]:/tmp/把當前目錄下的aaa.txt檔案通過192.168.1.3上的test賬號放到/tmp目錄下

scp [email protected]:/tmp/aaa.txt .和上一條相反

檢視目錄大小

基本用法

du -h --max-depth=1輸出最深1層的目錄,然後檔案大小用人類可讀的方式,比如1k 234m 2g

檢視磁碟大小和占用情況

基本用法

df -h檢視各個分割槽的大小和使用情況

檢視磁碟的io狀態

可以類似於top目錄一樣,實時顯示各個程序的io狀態。

查詢檔案,查詢條件可以是檔名,檔案日期,檔案大小,很強大。 我們之前伺服器上有個磁碟滿就強制刪除伺服器某個目錄下大於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命令要比find -name快得多,原因是它不搜尋具體目錄,而是搜尋乙個資料庫/var/lib/mlocate/mlocate.db,這個資料庫會通過乙個cron定時更新,所以有可能新建的檔案會檢索不到。

基本用法

locate a.txt定位a.txt的位置,如果系統中有多個a.txt,會全部顯示出來。

可以看到樹狀目錄結構,

基本用法

tree -l 2只顯示兩層樹狀結構

檢視網路是否通

基本用法

netcat,可以用來看遠端某個埠是否開啟,功能很強大,但是我用到的不多。

基本用法

nc -z xindoo.me 443檢測我伺服器上的443埠是否開放(當然是開的)

參考資料

linux nc命令介紹

檢視和操作本機路由表

基本用法

route列出本地路由表

參考資料

檢視本機的網路狀態,可以看到埠占用情況和網路鏈結情況。

基本用法

netstat -antp

檢視乙個請求到目標伺服器所經過的所有路由節點,一般用來排查網路問題。

基本用法

參考資料

檢視實時網路io情況

檢視埠占用

檢視網域名稱的資訊,之前做運維的時候,經常需要驗證某個網域名稱解析改動是否生效,因為一般乙個網域名稱會-a到多個ip上,用ping命令只能看到乙個ip,這個時候我就會用dig來看網域名稱解析資訊了。

基本用法

參考資料

dig 命令介紹

發起乙個http請求,我一般都是用這個命令來驗證服務是否能正常訪問的,它有獲取html原始碼的功能。

基本用法

curl -i www.baidu.com獲取請求baidu.com的請求頭

參考資料

curl的用法(英文)

基本用法很多時候伺服器上沒有我們想要的工具,可以用這個命令安裝下,yum是fedora和redhat以及centos中的shell前端軟體包管理器, apt是ubuntu平台上的。

基本用法

yum install curl

apt install curl

這個命令是用來檢視其它命令手冊的,可以看到具體某個命令的詳細作用,和具體引數。這個是個很重要的命令了,一般他會比各命令自帶的–help詳細很多。

基本用法

man curl檢視curl命令的手冊

運維linux命令

1 linux啟動過程 開啟電源 bios開機自檢 引導程式lilo或grub 核心的引導 kernel boot 執行init rc.sysinit rc mingetty 建立終端 shell 2 網絡卡繫結多ip ifconfig eth0 1 192.168.1.99 netmask 255...

Linux運維命令

12 date date u date y m d h m s 格式化 date f date s 時間戳 date d 時間戳 格式 例 date d 1510111518 y m d h m s clock 當前的硬體時間檢視 clock s 把硬體的時間讀出來覆蓋到系統時間 clock w 把...

linux運維命令

1 linux啟動過程 開啟電源 bios開機自檢 引導程式lilo或grub 核心的引導 kernel boot 執行init rc.sysinit rc mingetty 建立終端 shell top 然後按shift p,按照程序處理器佔用率排序 top 24 檢視記憶體使用情況的命令 用fr...