1. 程式人生 > 實用技巧 >Linux的常用命令

Linux的常用命令

推薦一個Linux命令快查網站,非常不錯,大家如果遺忘某些命令或者對某些命令不理解都可以在這裡得到解決。

Linux命令大全:http://man.linuxde.net/

1.1 目錄切換命令

  • cd usr 切換到該目錄下usr目錄
  • cd ..(或cd../) 切換到上一層目錄
  • cd / 切換到系統根目錄
  • cd ~ 切換到使用者主目錄
  • cd - 切換到上一個操作所在目錄

1.2 目錄的操作命令(增刪改查)

  1. mkdir 目錄名稱 增加目錄

  2. ls或者ll(ll是ls -l的別名,ll命令可以看到該目錄下的所有目錄和檔案的詳細資訊):檢視目錄資訊

  3. find 目錄 引數

    尋找目錄(查)

    示例:

    • 列出當前目錄及子目錄下所有檔案和資料夾: find .
    • /home目錄下查詢以.txt結尾的檔名:find /home -name "*.txt"
    • 同上,但忽略大小寫: find /home -iname "*.txt"
    • 當前目錄及子目錄下查詢所有以.txt和.pdf結尾的檔案:find . \( -name "*.txt" -o -name "*.pdf" \)find . -name "*.txt" -o -name "*.pdf"
  4. mv 目錄名稱 新目錄名稱

    修改目錄的名稱(改)

    注意:mv的語法不僅可以對目錄進行重新命名而且也可以對各種檔案,壓縮包等進行 重新命名的操作。mv命令用來對檔案或目錄重新命名,或者將檔案從一個目錄移到另一個目錄中。後面會介紹到mv命令的另一個用法。

  5. mv 目錄名稱 目錄的新位置 移動目錄的位置---剪下(改)

    注意:mv語法不僅可以對目錄進行剪下操作,對檔案和壓縮包等都可執行剪下操作。另外mv與cp的結果不同,mv好像檔案“搬家”,檔案個數並未增加。而cp對檔案進行復制,檔案個數增加了。

  6. cp -r 目錄名稱 目錄拷貝的目標位置 拷貝目錄(改),-r代表遞迴拷貝

    注意:cp命令不僅可以拷貝目錄還可以拷貝檔案,壓縮包等,拷貝檔案和壓縮包時不 用寫-r遞迴

  7. rm [-rf] 目錄: 刪除目錄(刪)

    注意:rm不僅可以刪除目錄,也可以刪除其他檔案或壓縮包,為了增強大家的記憶, 無論刪除任何目錄或檔案,都直接使用rm -rf 目錄/檔案/壓縮包

1.3 檔案的操作命令(增刪改查)

  1. touch 檔名稱: 檔案的建立(增)

  2. cat/more/less/tail 檔名稱 檔案的檢視(查)

    • cat 檢視顯示檔案內容
    • more 可以顯示百分比,回車可以向下一行, 空格可以向下一頁,q可以退出檢視
    • less 可以使用鍵盤上的PgUp和PgDn向上 和向下翻頁,q結束檢視
    • tail-10 檢視檔案的後10行,Ctrl+C結束

    注意:命令 tail -f 檔案 可以對某個檔案進行動態監控,例如tomcat的日誌檔案, 會隨著程式的執行,日誌會變化,可以使用tail -f catalina-2016-11-11.log 監控 文 件的變化

  3. vim 檔案 修改檔案的內容(改)

    vim編輯器是Linux中的強大元件,是vi編輯器的加強版,vim編輯器的命令和快捷方式有很多,但此處不一一闡述,大家也無需研究的很透徹,使用vim編輯修改檔案的方式基本會使用就可以了。

    在實際開發中,使用vim編輯器主要作用就是修改配置檔案,下面是一般步驟:

    vim 檔案------>進入檔案----->命令模式------>按i進入編輯模式----->編輯檔案 ------->按Esc進入底行模式----->輸入:wq/q! (輸入wq代表寫入內容並退出,即儲存;輸入q!代表強制退出不儲存。)

  4. rm -rf 檔案 刪除檔案(刪)

    同目錄刪除:熟記 rm -rf 檔案 即可

1.4 壓縮檔案的操作命令

1)打包並壓縮檔案:

Linux中的打包檔案一般是以.tar結尾的,壓縮的命令一般是以.gz結尾的。

而一般情況下打包和壓縮是一起進行的,打包並壓縮後的檔案的字尾名一般.tar.gz。
命令:tar -zcvf 打包壓縮後的檔名 要打包壓縮的檔案
其中:

z:呼叫gzip壓縮命令進行壓縮

c:打包檔案

v:顯示執行過程

f:指定檔名

比如:假如test目錄下有三個檔案分別是:aaa.txt bbb.txt ccc.txt,如果我們要打包test目錄並指定壓縮後的壓縮包名稱為test.tar.gz可以使用命令:tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt或:tar -zcvf test.tar.gz /test/

2)解壓壓縮包:

命令:tar [-xvf] 壓縮檔案

其中:x:代表解壓

示例:

1 將/test下的test.tar.gz解壓到當前目錄下可以使用命令:tar -xvf test.tar.gz

2 將/test下的test.tar.gz解壓到根目錄/usr下:tar -xvf test.tar.gz -C /usr(- C代表指定解壓的位置)

1.5 Linux的許可權命令

作業系統中每個檔案都擁有特定的許可權、所屬使用者和所屬組。許可權是作業系統用來限制資源訪問的機制,在Linux中許可權一般分為讀(readable)、寫(writable)和執行(excutable),分為三組。分別對應檔案的屬主(owner),屬組(group)和其他使用者(other),通過這樣的機制來限制哪些使用者、哪些組可以對特定的檔案進行什麼樣的操作。通過 ls -l 命令我們可以 檢視某個目錄下的檔案或目錄的許可權

示例:在隨意某個目錄下ls -l

第一列的內容的資訊解釋如下:

下面將詳細講解檔案的型別、Linux中許可權以及檔案有所有者、所在組、其它組具體是什麼?

檔案的型別:

  • d: 代表目錄
  • -: 代表檔案
  • l: 代表軟連結(可以認為是window中的快捷方式)

Linux中許可權分為以下幾種:

  • r:代表權限是可讀,r也可以用數字4表示
  • w:代表權限是可寫,w也可以用數字2表示
  • x:代表權限是可執行,x也可以用數字1表示

檔案和目錄許可權的區別:

對檔案和目錄而言,讀寫執行表示不同的意義。

對於檔案:

許可權名稱 可執行操作
r 可以使用cat檢視檔案的內容
w 可以修改檔案的內容
x 可以將其執行為二進位制檔案

對於目錄:

許可權名稱 可執行操作
r 可以檢視目錄下列表
w 可以建立和刪除目錄下檔案
x 可以使用cd進入目錄

需要注意的是超級使用者可以無視普通使用者的許可權,即使檔案目錄許可權是000,依舊可以訪問。
在linux中的每個使用者必須屬於一個組,不能獨立於組外。在linux中每個檔案有所有者、所在組、其它組的概念。

  • 所有者

    一般為檔案的建立者,誰建立了該檔案,就天然的成為該檔案的所有者,用ls ‐ahl命令可以看到檔案的所有者 也可以使用chown 使用者名稱 檔名來修改檔案的所有者 。

  • 檔案所在組

    當某個使用者建立了一個檔案後,這個檔案的所在組就是該使用者所在的組 用ls ‐ahl命令可以看到檔案的所有組 也可以使用chgrp 組名 檔名來修改檔案所在的組。

  • 其它組

    除開檔案的所有者和所在組的使用者外,系統的其它使用者都是檔案的其它組

我們再來看看如何修改檔案/目錄的許可權。

修改檔案/目錄的許可權的命令:chmod

示例:修改/test下的aaa.txt的許可權為屬主有全部許可權,屬主所在的組有讀寫許可權,
其他使用者只有讀的許可權

chmod u=rwx,g=rw,o=r aaa.txt

chmod -R u=rwx,g=rwx,o=rwx ./log // 遞迴給log目錄下的所有檔案授權

上述示例還可以使用數字表示:

chmod 764 aaa.txt

補充一個比較常用的東西:

假如我們裝了一個zookeeper,我們每次開機到要求其自動啟動該怎麼辦?

  1. 新建一個指令碼zookeeper
  2. 為新建的指令碼zookeeper新增可執行許可權,命令是:chmod +x zookeeper
  3. 把zookeeper這個指令碼新增到開機啟動項裡面,命令是: chkconfig --add zookeeper
  4. 如果想看看是否新增成功,命令是:chkconfig --list

1.6 Linux 使用者管理

Linux系統是一個多使用者多工的分時作業系統,任何一個要使用系統資源的使用者,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統。

使用者的賬號一方面可以幫助系統管理員對使用系統的使用者進行跟蹤,並控制他們對系統資源的訪問;另一方面也可以幫助使用者組織檔案,併為使用者提供安全性保護。

Linux使用者管理相關命令:

  • useradd 選項 使用者名稱:新增使用者賬號
  • userdel 選項 使用者名稱:刪除使用者帳號
  • usermod 選項 使用者名稱:修改帳號
  • passwd 使用者名稱:更改或建立使用者的密碼
  • passwd -S 使用者名稱 :顯示使用者賬號密碼資訊
  • passwd -d 使用者名稱: 清除使用者密碼

useradd命令用於Linux中建立的新的系統使用者。useradd可用來建立使用者帳號。帳號建好之後,再用passwd設定帳號的密碼.而可用userdel刪除帳號。使用useradd指令所建立的帳號,實際上是儲存在/etc/passwd文字檔案中。

passwd命令用於設定使用者的認證資訊,包括使用者密碼、密碼過期時間等。系統管理者則能用它管理系統使用者的密碼。只有管理者可以指定使用者名稱稱,一般使用者只能變更自己的密碼。

1.7 Linux系統使用者組的管理

每個使用者都有一個使用者組,系統可以對一個使用者組中的所有使用者進行集中管理。不同Linux 系統對使用者組的規定有所不同,如Linux下的使用者屬於與它同名的使用者組,這個使用者組在建立使用者時同時建立。

使用者組的管理涉及使用者組的新增、刪除和修改。組的增加、刪除和修改實際上就是對/etc/group檔案的更新。

Linux系統使用者組的管理相關命令:

  • groupadd 選項 使用者組 :增加一個新的使用者組
  • groupdel 使用者組:要刪除一個已有的使用者組
  • groupmod 選項 使用者組 : 修改使用者組的屬性

1.8 其他常用命令

  • pwd 顯示當前所在位置

  • sudo + 其他命令:以系統管理者的身份執行指令,也就是說,經由 sudo 所執行的指令就好像是 root 親自執行。

  • grep 要搜尋的字串 要搜尋的檔案 --color 搜尋命令,--color代表高亮顯示

  • ps -ef/ps -aux 這兩個命令都是檢視當前系統正在執行程序,兩者的區別是展示格式不同。如果想要檢視特定的程序可以使用這樣的格式:ps aux|grep redis (檢視包括redis字串的程序),也可使用 pgrep redis -a

    注意:如果直接用ps((Process Status))命令,會顯示所有程序的狀態,通常結合grep命令檢視某程序的狀態。

  • kill -9 程序的pid 殺死程序(-9 表示強制終止。)

    先用ps查詢程序,然後用kill殺掉

  • 網路通訊命令:

    • 檢視當前系統的網絡卡資訊:ifconfig
    • 檢視與某臺機器的連線情況:ping
    • 檢視當前系統的埠使用:netstat -an
  • net-tools 和 iproute2 :
    net-tools起源於BSD的TCP/IP工具箱,後來成為老版本Linux核心中配置網路功能的工具。但自2001年起,Linux社群已經對其停止維護。同時,一些Linux發行版比如Arch Linux和CentOS/RHEL 7則已經完全拋棄了net-tools,只支援iproute2。linux ip命令類似於ifconfig,但功能更強大,旨在替代它。更多詳情請閱讀如何在Linux中使用IP命令和示例

  • shutdown shutdown -h now: 指定現在立即關機;shutdown +5 "System will shutdown after 5 minutes":指定5分鐘後關機,同時送出警告資訊給登入使用者。

  • reboot reboot 重開機。reboot -w 做個重開機的模擬(只有紀錄並不會真的重開機)。