1. 程式人生 > >Linux服務端常用命令總結

Linux服務端常用命令總結

Linux檔案處理命令

1.Linux返回上一級目錄的命令

cd ..                  返回上一級目錄

cd ../..               返回上兩級目錄

cd或cd ~           返回home目錄

cd - 目錄名       返回指定目錄

pwd命令格式: pwd     功能:顯示出當前工作目錄的絕對路徑。

2.檔案解、壓縮

壓縮打包命令:tar -zcvf /data/wwwroot/###.tar.gz 目標資料夾名 

        將abc資料夾打包壓縮為abc.tar.gz:tar -zcvf /data/wwwroot/abc.tar.gz abc 
解壓命令:tar -xzvf file.tar.gz 
       將abc.tar.gz解壓  tar -xzvf abc.tar.gz

zip/unzip命令
格式:zip 壓縮檔案.zip 目錄或檔案
功能:將目錄或檔案壓縮成zip格式。
常用選項:
-r 遞迴處理,將指定目錄下的所有檔案和子目錄一併處理。

3.目錄檔案處理命令   

 ls命令格式:ls [選項] [目錄或檔案]
   功能:對於目錄,列出該目錄下的所有子目錄與檔案;對於檔案,列出檔名以及其他資訊。
   常用選項:
         -a :列出目錄下的所有檔案,包括以 . 開頭的隱含檔案。
         -d :將目錄像檔案一樣顯示,而不是顯示其他檔案。

 ls -l filepath 第五列為檔案位元組數

 [[email protected]

*******]$ ls -l  ~/Downloads/jdk-8u60-linux-x64.tar.gz
 -rw-rw-rw- 1 test test181238643 12月  2  2018 /home/test/Downloads/jdk-8u60-linux-x64.tar.gz

 ls -h filepath h表示human, 加-h引數得到人好讀的檔案大小

 [[email protected]*******]$ ls -lh  ~/Downloads/jdk-8u60-linux-x64.tar.gz
 -rw-rw-rw- 1 test test 173M 12月  2  2018 /home/test /Downloads/jdk-8u60-linux-x64.tar.gz

  ll 檔名 檢視一個檔案的詳細資訊   

         ll test/      檢視test檔案下詳細資訊    ll顯示當前檔案下詳細資訊

  mkdir命令格式:mkdir [選項] dirname…
    功能:mkdir命令用來建立目錄。
    常用選項:
           -p –parents 可以是一個路徑名稱。

           mkdir –p 遞迴建立目錄

           例如:mkdir -p /tmp/a/b 在目錄/tmp下遞迴建立a目錄,並在a目錄下建立b目錄
    rmdir 刪除空目錄

  cp命令格式:cp [選項] 原始檔或目錄 目標檔案或目錄
    功能:複製檔案或目錄。
    常用選項:
           -f –force 強行復制檔案或目錄,不論檔案或目錄是否已經存在。
           -d 複製時保留檔案連結。
    cp 複製檔案到某個目錄下
    cp –r 複製目錄
    cp –p 保留檔案屬性

  將檔案複製到多個目錄中

  cp /path/to/file /usr/dir1
  cp /path/to/file /var/dir2
  cp /path/to/file /nas/dir3 

 可以通過一句命令實現:echo /usr/dir1 /var/dir2 /nas/dir3 | xargs -n 1 cp -v /path/to/file

 mv命令格式:mv [選項] 原始檔或目錄 目標檔案或目錄 
 功能:mv命令對檔案或目錄重新命名,或者將檔案從一個目錄移到另一個目錄中。 
 常用選項: 
        -f   force 強制的意思,如果目標檔案已經存在,不會詢問而直接覆蓋。 
        -i   若目標檔案(destination)已經存在時,就會詢問是否覆蓋。
 rm命令刪除檔案或目錄:rm /path/to/file.log
        rm –r 刪除目錄
        rm –f 強制執行

cat/tac命令格式:cat [選項] [檔案];cat test.log
功能:檢視目標檔案的內容。
常用選項:
      -b 對非空輸出行編號。
      -n 對輸出的所有行編號。
      -s 不輸出多行空行。

du命令:du -b filepath 引數-b表示以位元組計數,du -h filepath直接得出人好識別的檔案大小

功能:顯示檔案大小

[[email protected]*******]$ du -b log
2768430 log
[[email protected]*******]$ du -h log
2.7M    log
 

Linux許可權管理

Linux的檔案和目錄有以下三種方式:r  、w 、x:可讀,可寫 、可執行

r-可讀(read)

w-可寫(write)

x-可執行(execute)

Linux的檔案和目錄又可以有四個所有者概念:

a、u、g 、o: 所有人、所有者 、所屬組 、其他人

u:所有者

g:所屬組

o:其他人

a:all(所有人)

舉個例子說明一下

 

如上圖所示,對於檔案test.txt,檔案所有者有讀寫許可權,檔案所屬組和其他人就很只有讀的許可權。

假如現在修改檔案的許可權,修改為所有者只有讀的許可權,所屬組有讀和寫的許可權,其他人什麼許可權都沒有。

一般寫法:輸入chmod u-w,g+x,o-r test.txt

日常寫法:chmod 460 test.txt

在linux許可權管理中,r對應4,w對應2,x對應1,所以460=r-- + rw- + --- =4+(4+2)+0=460

假如現在再次修改許可權,讓所有用人都有執行許可權

chmod a+x test.txt 或 chmod 571 test.txt

chown 改變檔案或目錄的所有者

格式:chown newUser 檔名 
讓其他人擁有最高許可權的最佳做法是使用chown更改檔案的所有者。

// 同時改變檔案的所有者和所屬組
chown user:group 檔名

Linux伺服器效能檢視命令

1.top-Linux程序監控   top

top命令是Linux下常用的效能分析工具,能夠實時顯示系統中各個程序的資源佔用狀況,類似於Windows的工作管理員,顯示當前系統正在執行的程序的相關資訊,包括程序ID、記憶體佔用率、CPU佔用率等

2.vmstat – 虛擬記憶體統計

 vmstat 命令用於顯示虛擬記憶體、核心執行緒、磁碟、系統程序、I/O 塊、中斷、CPU 活動 等的統計資訊。預設情況下, vmstat 命令在 Linux 系統下不可用,你需要安裝一個包含了 vmstat 程式的 sysstat 軟體包。命令格式的常見用法是:

# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 810420  97380  70628    0    0   115     4   89   79  1  6 90  3  0

3.netstat-網路狀態統計

netstat -t/-u/-l/-r/-n【顯示網路相關資訊,-t:TCP協議,-u:UDP協議,-l:監聽,-r:路由,-n:顯示IP地址和埠號】
netstat -tlun【檢視本機監聽的埠】
netstat -an【檢視本機所有的網路】
netstat -rn【檢視本機路由表】

列出所有埠:netstat -a 
列出所有的TCP埠:netstat -at 
列出所有的UDP埠:netstat -au 
列出所有處於監聽狀態的socket:netstat -l 
列出所有監聽TCP埠的socket:netstat -lt 
列出所有監聽UDP埠的socket:netstat -lu 
找出程式執行的埠:netstat -ap | grep ssh 
找出執行在指定埠的程序:netstat -an | grep ‘:80’

[email protected] network-scripts]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:8006          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8010            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
...

4.利用程序來檢視

命令裡 ps -aux  | grep xxx 是檢視某個程序或者服務是否存在。

kill可以關閉該服務

5.iotop-監控Linux磁碟I/O

iotop命令同樣也非常類似於top命令和Htop程式,不過它具有監控並顯示實時磁碟I/O和程序的統計功能。在查詢具體程序和大量使用磁碟讀寫程序的時候,這個工具就非常有用。

# iotop

Linux檢視日誌常用命令

1.檢視日誌常用命令

    tail:  

       -n  是顯示行號;相當於nl命令;例子如下:

            tail -100f test.log      實時監控100行日誌

            tail  -n  10  test.log   查詢日誌尾部最後10行的日誌;

            tail -n +10 test.log    查詢10行之後的所有日誌;

    head:  

        跟tail是相反的,tail是看後多少行日誌;例子如下:

            head -n 10  test.log   查詢日誌檔案中的頭10行日誌;

            head -n -10  test.log   查詢日誌檔案除了最後10行的其他所有日誌;

    cat: 

        tac是倒序檢視,是cat單詞反寫;例子如下:

            cat -n test.log |grep "debug"   查詢關鍵字的日誌

            cat filename  一次顯示整個檔案

2. 應用場景一:按行號檢視---過濾出關鍵字附近的日誌

     1)cat -n test.log |grep "debug"  得到關鍵日誌的行號

     2)cat -n test.log |tail -n +92|head -n 20  選擇關鍵字所在的中間一行. 然後檢視這個關鍵字前10行和後10行的日誌:

            tail -n +92表示查詢92行之後的日誌

            head -n 20 則表示在前面的查詢結果裡再查前20條記錄

3. 應用場景二:根據日期查詢日誌

      sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log

      特別說明:上面的兩個日期必須是日誌中打印出來的日誌,否則無效;

                      先 grep '2014-12-17 16:17:20' test.log 來確定日誌中是否有該 時間點

4.應用場景三:日誌內容特別多,列印在螢幕上不方便檢視

    (1)使用more和less命令,

           如: cat -n test.log |grep "debug" |more     這樣就分頁列印了,通過點選空格鍵翻頁

    (2)使用 >xxx.txt 將其儲存到檔案中,到時可以拉下這個檔案分析

            如:cat -n test.log |grep "debug"  >debug.txt

Linux系統根目錄下各個目錄的作用 

/bin 二進位制可執行命令。該目錄下存放著普通使用者的命令

/dev 系統的裝置檔案,即裝置的驅動程式

/home 存放使用者檔案的主目錄,使用者資料

/lib 存放著和系統執行相關的庫檔案

/mnt 存放臨時的對映檔案,通常是一些用來安裝其他裝置的子目錄

/boot 存放啟動linux的核心檔案

/media 存放著可移除的裝置,比如軟盤,光碟

/misc 儲存著一些特殊的字元的定義

/net 存放著和網路相關的一些檔案

/proc 存放著使用者與核心的互動資訊

/sbin 系統的管理命令,這裡存放的是系統管理員使用的程式

/srv 系統啟動服務時可以訪問的資料庫目錄

/tmp 臨時檔案,重啟後自動清空

/var 存放系統產生的經常變化的檔案

/etc 系統所有的配置檔案都在這個目錄中

/opt (option : 自由選擇)主要給原始碼安裝軟體時選擇的安裝目錄位置

/root 超級使用者的目錄

/selinux 主要用來加固作業系統,提高系統的安全性

/sys 管理裝置檔案

/usr 最大的目錄,存放著應用程式和檔案

/lost-found 這個目錄平時是空的,當系統非正常關機時在操作的檔案便會儲存在這裡