天天看點

Linux 新手應該知道的 26 個指令

當你進入了 Linux 的世界,在​​下載下傳​​​、​​安裝​​​ 了某個 ​​Linux 發行版​​​,體驗了 Linux 桌面并安裝了一些你喜愛和需要的​​軟體​​之後,應該去了解下 Linux 真正的魅力所在:指令行。每一個 Linux 指令其實就是一個程式,借助這些指令,我們可以辦到非常多的事情。下面将會為大家介紹一下幾個常用的指令。 

如何尋求幫助?

在 Linux 下遇到問題,最重要的是要自己尋求幫助,下面是三種尋求幫助的方法。 

man

​man​

​​ 是 Linux 的幫助手冊,即 ​

​manual​

​​ 。因為大多數程式都會自帶手冊,是以可以通過 ​

​man​

​​ 指令擷取幫助。執行以後,在 man page 頁面中按 ​

​q​

​ 退出。

擷取 ​

​ls​

​ 的幫助

  1. ​$ man ls​

檢視有多少(針對不同方面的)同名的手冊

  1. ​$ man -f ls​

  2. ​ls (1) - list directory contents​

  3. ​ls (1p) - list directory contents​

檢視特定的手冊

  1. ​$ man 1p ls​

info

與 ​

​man​

​ 不同的是,可以像浏覽網頁一樣在各個節點中跳轉。

從文檔首頁開始浏覽

  1. ​$ info​

擷取特定程式的幫助

  1. ​$ info program​

help

除了上面的兩種方法外,還有一種簡單使用的方法,那就是 ​

​--help​

​ 參數,一般程式都會有這個參數,會輸出最簡單有用的介紹。

  1. ​$ man --help ### 擷取 man 的幫助​

  2. ​$ info --help ### 擷取 info 的幫助​

  3. ​$ ls --help ### 擷取 ls 的幫助​

如何簡單操作?

在 ​

​Terminal(終端)​

​ 中,有許多操作技巧,這裡就介紹幾個簡單的。 

光标

  • up(方向鍵上) 可以調出輸入曆史執行記錄,快速執行指令
  • down(方向鍵下) 配合 up 選擇曆史執行記錄
  • Home 移動光标到本行開頭
  • End 移動光标到本行結尾
  • PgUp 向上翻頁
  • PaDN 向下翻頁
  • ctrl + c 終止目前程式

Tab 補全

​Tab​

​ 補全是非常有用的一個功能,可以用來自動補全指令或檔案名,省時準确。

  • 未輸入狀态下連按兩次​

    ​Tab​

    ​ 列出所有可用指令
  • 已輸入部分指令名或檔案名,按​

    ​Tab​

    ​ 進行自動補全,多用你就肯定會喜歡的了。

常用指令 

以下指令按照通常的使用頻度排列。

cd

​cd​

​ 是打開某個路徑的指令,也就是打開某個檔案夾,并跳轉到該處。

  1. ​$ cd path ### path 為你要打開的路徑。​

其中 path 有絕對路徑和相對路徑之分,絕對路徑強調從 ​

​/​

​​ 起,一直到所在路徑。相對路徑則相對于目前路徑來說,假設目前家目錄有​

​etc​

​​ 檔案夾(絕對路徑應為 ​

​/home/username/etc​

​​),如果直接 ​

​cd etc​

​​ 則進入此檔案夾,但若是 ​

​cd /etc/​

​​ 則是進入系統 ​

​etc​

​​ ,多琢磨一下就可以了解了。另外在 Linux 中, ​

​.​

​​ 代表目前目錄, ​

​..​

​​ 代表上級目錄,是以傳回上級目錄可以 ​

​cd ..​

​ 。

ls

​ls​

​ 即 list ,列出檔案。

  1. ​$ ls ### 僅列出目前目錄可見檔案​

  2. ​$ ls -l ### 列出目前目錄可見檔案詳細資訊​

  3. ​$ ls -hl ### 列出詳細資訊并以可讀大小顯示檔案大小​

  4. ​$ ls -al ### 列出所有檔案(包括隐藏)的詳細資訊​

注意: Linux 中 以 ​

​.​

​ 開頭的檔案或檔案夾均為隐藏檔案或隐藏檔案夾。

pwd

​pwd​

​ 用于傳回目前工作目錄的名字,為絕對路徑名。

  1. ​$ pwd​

  2. ​/home​

mkdir

​mkdir​

​ 用于建立檔案夾。

  1. ​$ mkdir folder​

  2. ​$ mkdir -p folder/subfolder ### -p 參數為當父目錄存在時忽略,若不存在則建立,用此參數可建立多級檔案夾​

rm

​rm​

​ 即 remove ,删除檔案。

  1. ​$ rm filename ### 删除 filename​

  2. ​$ rm -i filename ### 删除 filename 前提示,若多個檔案則每次提示​

  3. ​$ rm -rf folder/subfolder/ ### 遞歸删除 subfolder 下所有檔案及檔案夾,包括 subfolder 自身​

  4. ​$ rm -d folder ### 删除空檔案夾​

cp

​cp​

​ 即 copy ,複制檔案。

  1. ​$ cp source dest ### 将 source 複制到 dest​

  2. ​$ cp folder/* dest ### 将 folder 下所有檔案(不含子檔案夾中的檔案)複制到 dest​

  3. ​$ cp -r folder dest ### 将 folder 下所有檔案(包含子檔案夾中的所有檔案)複制到 dest​

mv

​mv​

​ 即 move ,移動檔案。

  1. ​$ mv source folder ### 将 source 移動到 folder 下,完成後則為 folder/source​

  2. ​$ mv -i source folder ### 在移動時,若檔案已存在則提示 **是否覆寫** ​

  3. ​$ mv source dest ### 在 dest 不為目錄的前提下,重命名 source 為 dest​

cat

​cat​

​ 用于輸出檔案内容到 Terminal 。

  1. ​$ cat /etc/locale.gen ### 輸出 locale.gen 的内容 ​

  2. ​$ cat -n /etc/locale.gen ### 輸出 locale.gen 的内容并顯示行号​

more

​more​

​​ 與 ​

​cat​

​​ 相似,都可以檢視檔案内容,所不同的是,當一個文檔太長時, ​

​cat​

​​ 隻能展示最後布滿螢幕的内容,前面的内容是不可見的。這時候可用 ​

​more​

​ 逐行顯示内容。

  1. ​$ more /etc/locale.gen​

  2. ​$ more +100 /etc/locale.gen ### 從 100 行開始顯示​

less

​less​

​​ 與 ​

​more​

​​ 相似,不過 ​

​less​

​​ 支援上下滾動檢視内容,而 ​

​more​

​ 隻支援逐行顯示。

  1. ​$ less /etc/locale.gen​

  2. ​$ less +100 /etc/locale.gen​

nano

​nano​

​ 是一個簡單實用的文本編輯器,使用簡單。

  1. ​$ nano filename ### 編輯 filename 檔案,若檔案不存在,則新打開一個檔案,若退出時儲存,則建立該檔案​

編輯完後,​

​ctrl + X​

​​ 提示是否儲存,按 ​

​y​

​ 确定儲存即可。

注意:在使用過程中可用 ​

​ctrl + G​

​ 擷取幫助。

reboot

​reboot​

​ 為重新開機指令。

  1. ​# reboot ### '$' 和 '#' 的差別在于 '$' 普通使用者即可執行 ### 而 '#' 為 root 使用者才可執行,或普通使用者使用 'sudo'​

poweroff

​poweroff​

​ 為關機指令。

  1. ​# poweroff ### 馬上關機​

ping

​ping​

​ 主要用于測試網絡連通,通過對目标機器發送資料包來測試兩台主機是否連通,及延時情況。

  1. ​$ ping locez.com ### 通過域名 ping,若 DNS 未設定好,可能無法 ping 通​

  2. ​$ ping linux.cn​

  3. ​PING linux.cn (211.157.2.94) 56(84) bytes of data.​

  4. ​64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=1 ttl=53 time=41.5 ms​

  5. ​64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=2 ttl=53 time=40.4 ms​

  6. ​64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=3 ttl=53 time=41.9 ms​

  7. ​^C​

  8. ​--- linux.cn ping statistics ---​

  9. ​3 packets transmitted, 3 received, 0% packet loss, time 2002ms​

  10. ​rtt min/avg/max/mdev = 40.406/41.287/41.931/0.644 ms​

  11. ​$ ping 211.157.2.94 ### 通過 IP 位址 ping ,若無法 ping 通可能是網絡連接配接出現問題​

grep

​grep​

​ 主要用于傳回比對的項目,支援正規表達式。

  1. ​$ grep PATTERN filename ### 傳回所有含有 PATTERN 的行​

  2. ​$ grep zh_CN /etc/locale.gen ### 傳回所有含 zh_CN 的行​

mount

​mount​

​​ 用于挂載一個檔案系統,需要 ​

​root​

​ 使用者執行。一個磁盤可分為若幹個分區,在分區上面可以建立檔案系統,而挂載點則是提供一個通路的入口,将一個分區的檔案系統挂載到某個目錄中,稱這個目錄為挂載點,并且可以通過這個挂載點通路該檔案系統中的内容。

例如一塊硬碟在 Linux 中表示為 ​

​/dev/sda​

​​ 那麼它上面的分區應該表示為 ​

​/dev/sda1​

​​ 、​

​/dev/sda2​

​ 。

  1. ​# mount ### 輸出系統目前的挂載資訊​

  2. ​# mount /dev/sda1 /mnt ### 将 sda1 挂載到 /mnt 中​

  3. ​# cd /mnt ### 直接通過 /mnt 通路内容​

  4. ​# mount -o remount,rw /mnt ### 重新挂載 sda1 到 /mnt 并設定為 可讀寫 ​

  5. ​# mount -a ### 挂載 fstab 檔案配置好的檔案系統​

umount

​umount​

​​ 與 ​

​mount​

​ 相反,是解除安裝一個挂載點,即取消該入口。

  1. ​# umount /mnt ### 解除安裝 /mnt 這個挂載點的檔案系統​

  2. ​# umount -a ### 解除安裝所有已挂載的檔案系統​

tar

​tar​

​​ 主要用于建立歸檔檔案,和解壓歸檔檔案,其本身是沒有壓縮功能的,但可以調用 ​

​gzip​

​​ 、 ​

​bzip2​

​​ 進行壓縮處理。

參數解釋:

  • ​-c​

    ​ 建立歸檔
  • ​-x​

    ​ 解壓歸檔
  • ​-v​

    ​ 顯示處理過程
  • ​-f​

    ​ 目标檔案,其後必須緊跟 目标檔案
  • ​-j​

    ​​ 調用​

    ​bzip2​

    ​ 進行解壓縮
  • ​-z​

    ​​ 調用​

    ​gzip​

    ​ 進行解壓縮
  • ​-t​

    ​ 列出歸檔中的檔案
  1. ​$ tar -cvf filename.tar . ### 将目前目錄所有檔案歸檔,但不壓縮,注意後面有個 ’.‘ ,不可省略,代表目前目錄的意思 ​

  2. ​$ tar -xvf filename.tar ### 解壓 filename.tar 到目前檔案夾​

  3. ​$ tar -cvjf filename.tar.bz2 . ### 使用 bzip2 壓縮​

  4. ​$ tar -xvjf filename.tar.bz2 ### 解壓 filename.tar.bz2 到目前檔案夾​

  5. ​$ tar -cvzf filename.tar.gz ### 使用 gzip 壓縮​

  6. ​$ tar -xvzf filename.tar.gz ### 解壓 filename.tar.gz 到目前檔案夾​

  7. ​$ tar -tf filename ### 隻檢視 filename 歸檔中的檔案,不解壓​

ln

​ln​

​​ 主要用于在兩個檔案中建立連結,連結又分為 ​

​Hard Links​

​​ (硬連結)和 ​

​Symbolic Links​

​​ (符号連結或軟連結),其中預設為建立硬連結,使用 ​

​-s​

​ 參數指定建立軟連結。

  • 硬連結主要是增加一個檔案的連結數,隻要該檔案的連結數不為​

    ​0​

    ​ ,該檔案就不會被實體删除,是以删除一個具有多個硬連結數的檔案,必須删除所有它的硬連結才可删除。
  • 軟連結簡單來說是為檔案建立了一個類似快捷方式的東西,通過該連結可以通路檔案,修改檔案,但不會增加該檔案的連結數,删除一個軟連結并不會删除源檔案,即使源檔案被删除,軟連結也存在,當重新建立一個同名的源檔案,該軟連結則指向新建立的檔案。
  • 硬連結隻可連結兩個檔案,不可連結目錄,而軟連結可連結目錄,是以軟連結是非常靈活的。
  1. ​$ ln source dest ### 為 source 建立一個名為 dest 的硬連結​

  2. ​$ ln -s source dest ### 為 source 建立一個名為 dest 的軟連結​

chown

​chown​

​ 用于改變一個檔案的所有者及所在的組。

  1. ​# chown user filename ### 改變 filename 的所有者為 user​

  2. ​# chown user:group filename ### 改變 filename 的所有者為 user,組為 group​

  3. ​# chown -R root folder ### 改變 folder 檔案夾及其子檔案的所有者為 root​

chmod

​chmod​

​​ 永遠更改一個檔案的權限,主要有 讀取 、 寫入 、 執行 ,三種權限,其中 所有者 、 使用者組 、 其他 各占三個,是以 ​

​ls -l​

​ 可以看到如下的資訊

  1. ​-rwxr--r-- 1 locez users 154 Aug 30 18:09 filename​

其中 ​

​r=read​

​​ , ​

​w=write​

​​ , ​

​x=execute​

  1. ​# chmod +x filename ### 為 user ,group ,others 添加執行權限​

  2. ​# chmod -x filename ### 取消 user , group ,others 的執行權限​

  3. ​# chmod +w filename ### 為 user 添加寫入權限​

  4. ​# chmod ugo=rwx filename ### 設定 user ,group ,others 具有 讀取、寫入、執行權限​

  5. ​# chmod ug=rw filename ### 設定 user ,group 添加 讀取、寫入權限​

  6. ​# chmod ugo=--- filename ### 取消所有權限​

useradd

​useradd​

​ 用于添加一個普通使用者。

  1. ​# useradd -m -g users -G audio -s /usr/bin/bash newuser ​

  2. ​### -m 建立 home 目錄, -g 所屬的主組, -G 指定該使用者在哪些附加組, -s 設定預設的 shell ,newuser 為新的使用者名​

passwd

​passwd​

​ 用于改變使用者登入密碼。

  1. ​$ passwd ### 不帶參數更改目前使用者密碼​

  2. ​# passwd newuser ### 更改上述建立的 newuser 的使用者密碼​

whereis

​whereis​

​ 用于查找檔案、手冊等。

  1. ​$ whereis bash​

  2. ​bash: /usr/bin/bash /etc/bash.bashrc /etc/bash.bash_logout /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz​

  3. ​$ whereis -b bash ### 僅查找 binary​

  4. ​bash: /usr/bin/bash /etc/bash.bashrc /etc/bash.bash_logout​

  5. ​$ whereis -m bash ### 僅查找 manual​

  6. ​bash: /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz​

find

​find​

​ 也用于查找檔案,但更為強大,支援正則,并且可将查找結果傳遞到其他指令。

  1. ​$ find . -name PATTERN ### 從目前目錄查找符合 PATTERN 的檔案​

  2. ​$ find /home -name PATTERN -exec ls -l {} \; # 從 /home 檔案查找所有符合 PATTERN 的檔案,并交由 ls 輸出詳細資訊​

wget

​wget​

​ 是一個下載下傳工具,簡單強大。

  1. ​$ wget -O newname.md https://github.com/LCTT/TranslateProject/blob/master/README.md ### 下載下傳 README 檔案并重命名為 newname.md​

  2. ​$ wget -c url ### 下載下傳 url 并開啟斷點續傳​

繼續閱讀