Linux常用命令

Linux常用命令

1. ls命令

就是list的縮寫,通過ls命令不僅可以查看linux文件夾包含的文件,而且可以查看文件權限

  • ls -a 列出所有文件,包含以“ . ”開始的隱藏文件
  • ls -r 反序排列
  • ls -S 以文件大小排列
  • ls -t 以文件修改時間排列
  • ls -l 除了文件名之外,還將文件的權限、所有者、文件大小等信息詳細列出來

eg: ls -l *.sh 列出所有以.sh結尾的文件

2. cd 命令

  • cd - 進入上一次工作目錄
  • cd ~ 進入“家"目錄
  • cd / 進入要進的目錄

3. pwd命令

  • pwd 常看當前工作目錄

4. mkdir命令

創建文件夾

  • mkdir a 當前目錄創建名爲a的文件夾
  • mkdir -p /test/tep/a1/a2 在test目錄下創建路徑爲tep/a1/a2目錄

5. rm 命令

刪除一個目錄中的一個或多個文件或目錄,如果沒有-r選項,則rm不能刪除目錄,只能刪除文件夾

  • rm *.txt 刪除該目錄下所有的.txt的文件,但是刪除錢要逐一詢問確認
  • rm -rf tmp 刪除test目錄的所有文件夾與文件,且不用確認

6.rmdir命令

刪除一個空目錄

7. mv 命令

移動文件或修改文件名

  • mv a.txt b.txt 將文件a.txt重命名爲b.txt
  • mv a.txt b.txt c.txt /home 將a.txt,b.txt,c.txt移動到home目錄下
  • mv * /home 將當前所有的文件移動到home目錄下

8. cp命令

將源文件複製到目標文件,或者將多個文件複製到目標目錄

-r 複製目錄及目錄內所有文件
-a 複製的文件與源文件時間一樣
-s 創建文件的快捷方式

9. cat命令

  • 一次顯示整個文件:cat a.txt

  • 將幾個文件合併爲一個文件 cat a.txt b.txt > c.txt

  • 鍵盤創建一個文件:cat >a.txt 只能創建新文件,不能編輯已有的文件

    cat>a.txt hello word >EOF

  • cat -n a.txt 輸出所有行號

  • cat -b 輸出所有非空行號

10.more命令

功能類似cat,more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,q退出more

  • +n 從第n行開始顯示
  • -n 定義每屏幕顯示n行
  • ls -l | more -5 ,顯示當前目錄下的文件信息,一屏幕顯示5條

11.less命令

less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向後移動,而且 less 在查看之前不會加載整個文件

  • less a.txt b.txt 查看多個文件

12. head命令

head 用來顯示檔案的開頭至標準輸出中,默認head命令打印其相應文件的開頭10行。

-n 顯示的行數

  • head -n 10 a.txt 顯示a.txt前10行

13.tail命令

用於顯示指定文件末尾內容,常用查看日誌文件

  • tail -n 20 a.log 查看a.log後20行
  • tail -f a.long 循環讀取(常用於查看遞增日誌文件)

14. which命令

which 查看可執行文件的位置

  • which cd cd命令是否存在,存在輸出該命令的位置信息

15. find命令

在文件樹中查找文件,並作出相應的處理

find pathname -options [-print -exec -ok …]命令參數:

 pathname: find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。

 -print: find命令將匹配的文件輸出到標準輸出。

 -exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式爲'command' {  } \;,注意{   }和\;之間的空格。

 -ok: 和-exec的作用相同,只不過以一種更爲安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。

 命令選項:

 -name 按照文件名查找文件

 -perm 按文件權限查找文件

 -user 按文件屬主查找文件

 -group  按照文件所屬的組來查找文件。

 -type  查找某一類型的文件,諸如:

           b - 塊設備文件

           d - 目錄

           c - 字符設備文件

           l - 符號鏈接文件

           p - 管道文件

           f - 普通文件

 -size n :[c] 查找文件長度爲n塊文件,帶有c時表文件字節大小

 -amin n   查找系統中最後N分鐘訪問的文件

 -atime n  查找系統中最後n*24小時訪問的文件

 -cmin n   查找系統中最後N分鐘被改變文件狀態的文件

 -ctime n  查找系統中最後n*24小時被改變文件狀態的文件

 -mmin n   查找系統中最後N分鐘被改變文件數據的文件

 -mtime n  查找系統中最後n*24小時被改變文件數據的文件

 (用減號-來限定更改時間在距今n日以內的文件,而用加號+來限定更改時間在距今n日以前的文件。 )

 -maxdepth n 最大查找目錄深度

 -prune選項來指出需要忽略的目錄。在使用-prune選項時要當心,因爲如果你同時使用了-depth選項,那麼-prune選項就會被find命令忽略

 -newer 如果希望查找更改時間比某個文件新但比另一個文件舊的所有文件,可以使用-newer選項

eg:

1.在當前目錄查找壹.log結尾的文件
find ./ -name '*.log'  特別注意有一個單引號

2.在/opt目錄下,查找權限爲777的文件
find /opt -perm 777

3.查找大於1K的文件
find -size +1000c
find -size 1000c   查找等於1000字符的文件

-exec         
參數後面跟的是command命令,它的終止是以;爲結束標誌的,
所以這句命令後面的分號是不可缺少的,考慮到各個系統中分號會有不同的意義,
所以前面加反斜槓。{}   花括號代表前面find查找出來的文件名。

4. 查找home/test目錄下的普通文件,修改時間大於10天的,刪除掉
find /home/test f -mtime +10 -exec rm -rf {} \;
5. 查找home/test目錄下以.txt文件名結尾的文件,刪除掉
find /home/test -name '.txt' -exec rm -rf {} \;
6. 查找home/test目錄下文件名以password 開頭的文件,內容包含“pkg"字符的文件
find /home/test/ 'password*' -exec grep "pkg" {} \;
7. 用 exec選項執行cp命令
find /home/test '.txt' -exec cp {} /home/test2

16. chmod命令

用於改變linux系統文件或目錄的訪問權限。用它控制文件或目錄的訪問權限。該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。

權限範圍:

 u :目錄或者文件的當前的用戶

 g :目錄或者文件的當前的羣組

 o :除了目錄或者文件的當前用戶或羣組之外的用戶或者羣組

 a :所有的用戶及羣組


 權限代號:

 r :讀權限,用數字4表示

 w :寫權限,用數字2表示

 x :執行權限,用數字1表示

 - :刪除權限,用數字0表示

 s :特殊權限

 實例:

 (1)增加文件t.log所有用戶可執行權限

 chmod a+x t.log

 (2)撤銷原來所有的權限,然後使擁有者具有可讀權限,並輸出處理信息

 chmod u=r t.log -c

 (3)給file的屬主分配讀、寫、執行(7)的權限,給file的所在組分配讀、執行(5)的權限,給其他用戶分配執行(1)的權限

 chmod 751 t.log -c(或者:chmod u=rwx,g=rx,o=x t.log -c)

 (4)將test目錄及其子目錄所有文件添加可讀權限

 chmod u+r,g+r,o+r -R text/ -c

17.tar 命令

用來壓縮和解壓文件

常用參數:

 -c 建立新的壓縮文件

 -f 指定壓縮文件

 -r 添加文件到已經壓縮文件包中

 -u 添加改了和現有的文件到壓縮包中

 -x 從壓縮包中抽取文件

 -t 顯示壓縮文件中的內容

 -z 支持gzip壓縮

 -j 支持bzip2壓縮

 -Z 支持compress解壓文件

 -v 顯示操作過程

實例:

 (1)將文件全部打包成tar包

 tar -cvf log.tar 1.log,2.log 或tar -cvf log.*

 (2)將/etc下的所有文件及目錄打包到指定目錄,並使用gz壓縮

 tar -zcvf /tmp/etc.tar.gz /etc

 (3)查看剛打包的文件內容(一定加z,因爲是使用gzip壓縮的)

 tar -ztvf /tmp/etc.tar.gz

 (4)解壓

 tar -zxvf /tem/etc.tar.gz

18. df命令

顯示磁盤空間使用情況。獲取硬盤被佔用了多少空間,目前還剩下多少空間等信息,如果沒有文件名被指定,則所有當前被掛載的文件系統的可用空間將被顯示

 顯示磁盤的使用情況
 df -h
 df -l

19. du命令

du命令也是查看使用空間的,但是與df命令不同的是Linux du命令是對文件和目錄磁盤使用的空間的查看

常用參數:

 -a 顯示目錄中所有文件大小

 -k 以KB爲單位顯示文件大小

 -m 以MB爲單位顯示文件大小

 -g 以GB爲單位顯示文件大小

 -h 以易讀方式顯示文件大小

 -s 僅顯示總計

 -c或--total  除了顯示個別目錄或文件的大小外,同時也顯示所有目錄或文件的總和

 實例:

 (1)以易讀方式顯示文件夾內及子文件夾大小

 du /home/test/a.txt -h  

20. date命令

顯示或設定系統的日期與時間

 命令參數:

 -d<字符串>  顯示字符串所指的日期與時間。字符串前後必須加上雙引號。

 -s<字符串>  根據字符串來設置日期與時間。字符串前後必須加上雙引號。

 -u  顯示GMT。

 %H 小時(00-23)

 %I 小時(00-12)

 %M 分鐘(以00-59來表示)

 %s 總秒數。起算時間爲1970-01-01 00:00:00 UTC。

 %S 秒(以本地的慣用法來表示)

 %a 星期的縮寫。

 %A 星期的完整名稱。

 %d 日期(以01-31來表示)。

 %D 日期(含年月日)。

 %m 月份(以01-12來表示)。

 %y 年份(以00-99來表示)。

 %Y 年份(以四位數來表示)。

 實例:

 (1)顯示下一天

 date +%Y%m%d --date="+1 day"  //顯示下一天的日期

 (2)-d參數使用

 date -d "nov 22"  今年的 11 月 22 日是星期三

 date -d '2 weeks' 2周後的日期

 date -d 'next monday' (下週一的日期)

 date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d

 date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d

 date -d last-month +%Y%m(上個月是幾月)

 date -d next-month +%Y%m(下個月是幾月)

21. grep命令

強大的文本搜索命令,grep(Global Regular Expression Print)全局正則表達式搜索

grep [option] pattern file|dir

 常用參數:

 -A n --after-context顯示匹配字符後n行

 -B n --before-context顯示匹配字符前n行

 -C n --context 顯示匹配字符前後n行

 -c --count 計算符合樣式的列數

 -i 忽略大小寫

 -l 只列出文件內容符合指定的樣式的文件名稱

 -f 從文件中讀取關鍵詞

 -n 顯示匹配內容的所在文件中行數

 -R 遞歸查找文件夾

 grep的規則表達式:

 ^  #錨定行的開始 如:'^grep'匹配所有以grep開頭的行。   

 $  #錨定行的結束 如:'grep$'匹配所有以grep結尾的行。   

 .  #匹配一個非換行符的字符 如:'gr.p'匹配gr後接一個任意字符,然後是p。   

 *  #匹配零個或多個先前字符 如:'*grep'匹配所有一個或多個空格後緊跟grep的行。   

 .*   #一起用代表任意字符。  

 []   #匹配一個指定範圍內的字符,如'[Gg]rep'匹配Grep和grep。   

 [^]  #匹配一個不在指定範圍內的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一個字母開頭,緊跟rep的行。   

 \(..\)  #標記匹配字符,如'\(love\)',love被標記爲1。   

 \<      #錨定單詞的開始,如:'\<grep'匹配包含以grep開頭的單詞的行。   

 \>      #錨定單詞的結束,如'grep\>'匹配包含以grep結尾的單詞的行。   

 x\{m\}  #重複字符x,m次,如:'0\{5\}'匹配包含5個o的行。   

 x\{m,\}  #重複字符x,至少m次,如:'o\{5,\}'匹配至少有5個o的行。   

 x\{m,n\}  #重複字符x,至少m次,不多於n次,如:'o\{5,10\}'匹配5--10個o的行。  

 \w    #匹配文字和數字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G後跟零個或多個文字或數字字符,然後是p。  

 \W    #\w的反置形式,匹配一個或多個非單詞字符,如點號句號等。  

 \b    #單詞鎖定符,如: '\bgrep\b'只匹配grep。

22. ps命令

ps(process status),用來查看當前運行的進程狀態,一次性查看,如果需要動態連續結果使用top

 linux上進程有5種狀態:

 1. 運行(正在運行或在運行隊列中等待)

 2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)

 3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷髮生)

 4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放)

 5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行)

 ps工具標識進程的5種狀態碼:

 D 不可中斷 uninterruptible sleep (usually IO)

 R 運行 runnable (on run queue)

 S 中斷 sleeping

 T 停止 traced or stopped

 Z 僵死 a defunct (”zombie”) process

 命令參數:

 -A 顯示所有進程

 a 顯示所有進程

 -a 顯示同一終端下所有進程

 c 顯示進程真實名稱

 e 顯示環境變量

 f 顯示進程間的關係

 r 顯示當前終端運行的進程

 -aux 顯示所有包含其它使用的進程

 實例:

 (1)顯示當前所有進程環境變量及進程間關係

 ps -ef

 (2)顯示當前所有進程

 ps -A

 (3)與grep聯用查找某進程

 ps -aux | grep apache

 (4)找出與 cron 與 syslog 這兩個服務有關的 PID 號碼

 ps aux | grep '(cron|syslog)'

23. kill 命令

發送指定的信號到相應進程。不指定型號將發送SIGTERM(15)終止指定進程。如果任無法終止該程序可用“-KILL” 參數,其發送的信號爲SIGKILL(9) ,將強制結束進程,使用ps命令或者jobs 命令可以查看進程號。root用戶將影響用戶的進程,非root用戶只能影響自己的進程。

 常用參數:

 -l  信號,若果不加信號的編號參數,則使用“-l”參數會列出全部的信號名稱

 -a  當處理當前進程時,不限制命令名和進程號的對應關係

 -p  指定kill 命令只打印相關進程的進程號,而不發送任何信號

 -s  指定發送信號

 -u  指定用戶

 實例:

 (1)先使用ps查找進程pro1,然後用kill殺掉

 kill -9 $(ps -ef | grep pro1)

24. free命令

顯示系統內存使用情況,包括物理內存、交互區內存(swap)和內核緩衝區內存。

 命令參數:

 -b 以Byte顯示內存使用情況

 -k 以kb爲單位顯示內存使用情況

 -m 以mb爲單位顯示內存使用情況

 -g 以gb爲單位顯示內存使用情況

 -s<間隔秒數> 持續顯示內存

 -t 顯示內存使用總合

 實例:

 (1)顯示內存使用情況

 free

 free -k

 free -m

 (2)以總和的形式顯示內存的使用信息

 free -t

 (3)週期性查詢內存使用情況

 free -s 10

25. wc命令

wc(word count)功能爲統計指定的文件中字節數、字數、行數,並將統計結果輸出

 命令格式:

 wc [option] file..

 命令參數:

 -c 統計字節數

 -l 統計行數

 -m 統計字符數

 -w 統計詞數,一個字被定義爲由空白、跳格或換行字符分隔的字符串

 實例:

 (1)查找文件的  行數 單詞數 字節數 文件名

 wc text.txt 結果:7     8     70     test.txt

 (2)統計輸出結果的行數

 cat test.txt | wc -l

 (3) 統計一個單詞出現的次數,在a.txt中查找'word'單詞數量
 grep -o word a.txt | wc -l

26. netstat命令

 -a或--all:顯示所有連線中的Socket; 
-A<網絡類型>或--<網絡類型>:列出該網絡類型連線中的相關地址; 
-c或--continuous:持續列出網絡狀態; 
-C或--cache:顯示路由器配置的快取信息; 
-e或--extend:顯示網絡其他相關信息; 
-F或--fib:顯示FIB; 
-g或--groups:顯示多重廣播功能羣組組員名單; 
-h或--help:在線幫助; 
-i或--interfaces:顯示網絡界面信息表單; 
-l或--listening:顯示監控中的服務器的Socket; 
-M或--masquerade:顯示僞裝的網絡連線; 
-n或--numeric:直接使用ip地址,而不通過域名服務器; 
-N或--netlink或--symbolic:顯示網絡硬件外圍設備的符號連接名稱; 
-o或--timers:顯示計時器; 
-p或--programs:顯示正在使用Socket的程序識別碼和程序名稱; 
-r或--route:顯示Routing Table; 
-s或--statistice:顯示網絡工作信息統計表; 
-t或--tcp:顯示TCP傳輸協議的連線狀況; 
-u或--udp:顯示UDP傳輸協議的連線狀況; 
-v或--verbose:顯示指令執行過程; 
-V或--version:顯示版本信息; 
-w或--raw:顯示RAW傳輸協議的連線狀況; 
-x或--unix:此參數的效果和指定"-A unix"參數相同; 
--ip或--inet:此參數的效果和指定"-A inet"參數相同。

eg1: 顯示 PID 和進程名稱
netstat -p

eg2: 查看端口服務
netstat -antp | grep ssh

eg3. 列出所有端口情況
netstat -a      # 列出所有端口
netstat -at     # 列出所有TCP端口
netstat -au     # 列出所有UDP端口

eg4.查詢端口是否被佔用
 netstat -anlp | grep 80
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章