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

作者:Locez
原文地址:http://locez.com/Linux/common-command/

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

如何尋求幫助?

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

man

man是 Linux 的系統手冊,即manual 。因為大多數程序都會自帶手冊,所以可以通過 man命令獲取幫助。執行以后,在 man page 頁面中按 q 退出。

獲取ls的幫助:

$ man ls

查看有多少(針對不同方面的)同名的手冊:

$ man -f ls
ls (1)               - list directory contents
ls (1p)              - list directory contents

查看特定的手冊:

$ man 1p ls

info

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

從文檔首頁開始瀏覽:

$ info

獲取特定程序的幫助:

$ info program

help

除了上面的兩種方法外,還有一種簡單使用的方法,那就是--help參數,一般程序都會有這個參數,會輸出最簡單有用的介紹。

$ man --help       ### 獲取 man 的幫助
$ info --help      ### 獲取 info 的幫助

如何簡單操作?

Terminal(終端)中,有許多操作技巧,這里就介紹幾個簡單的。

光標

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

Tab 補全

Tab 補全是非常有用的一個功能,可以用來自動補全命令或文件名,省時準確。

  • 未輸入狀態下連按兩次Tab列出所有可用命令
  • 已輸入部分命令名或文件名,按Tab進行自動補全,多用你就肯定會喜歡的了。

常用命令

cd

cd是打開某個路徑的命令,也就是打開某個文件夾,并跳轉到該處。

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

其中 path 有絕對路徑和相對路徑之分,絕對路徑強調從 / 起,一直到所在路徑。相對路徑則,相對于當前路徑來說,假設當前家目錄有etc文件夾(絕對路徑應為 /home/username/etc),如果直接cd etc則進入此文件夾,但若是cd /etc/則是進入系統 etc,多琢磨一下就可以理解了。另外在 Linux 中, .代表當前目錄, ..代表上級目錄,因此返回上級目錄可以cd ..

ls

lslist ,列出文件。

$ ls       ### 僅列出當前目錄可見文件
$ ls -l    ### 列出當前目錄可見文件詳細信息
$ ls -hl   ### 列出詳細信息并以可讀大小顯示文件大小
$ ls -al   ### 列出所有文件(包括隱藏)的詳細信息

注意: Linux 中 以. 開頭的文件或文件夾均為隱藏文件或隱藏文件夾。

pwd

pwd用于返回當前工作目錄的名字,為絕對路徑名。

$ pwd
/home

mkdir

mkdir用于新建文件夾。

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

rm

rmremove ,刪除文件。

$ rm filename    ### 刪除 filename
$ rm -i filename   ### 刪除 filename 前提示,若多個文件則每次提示
$ rm -rf folder/subfolder/  ### 遞歸刪除 subfolder 下所有文件及文件夾,包括 subfolder 自身
$ rm -d folder     ###  刪除空文件夾

cp

cpcopy ,復制文件。

$ cp source dest            ### 將 source 復制到 dest
$ cp folder/*  dest         ### 將 folder 下所有文件(不含子文件夾中的文件)復制到 dest
$ cp -r folder  dest        ### 將 folder 下所有文件(包含子文件夾中的所有文件)復制到 dest

mv

mvmove ,移動文件。

$ mv source  folder        ### 將 source 移動到 folder 下,完成后則為  folder/source
$ mv -i source folder      ### 在移動時,若文件已存在則提示 **是否覆蓋** 
$ mv source dest           ### 在 dest 不為目錄的前提下,重命名 source 為 dest

cat

cat用于輸出文件內容到 Terminal 。

$ cat /etc/locale.gen     ### 輸出 locale.gen 的內容 
$ cat -n /etc/locale.gen  ### 輸出 locale.gen 的內容并顯示行號

more

morecat相似,都可以查看文件內容,所不同的是,當一個文檔太長時, cat只能展示最后布滿屏幕的內容,前面的內容是不可見的。這時候可用more逐行顯示內容。

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

less

lessmore相似,不過less支持上下滾動查看內容,而more只支持逐行顯示。

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

nano

nano是一個簡單實用的文本編輯器,入門簡單。

$ nano  filename       ### 編輯 filename 文件,若文件不存在,則新打開一個文件,若退出時保存,則創建該文件

編輯完后,ctrl + X提示是否保存,按y確定保存即可。

注意:在使用過程中可用ctrl + G獲取幫助。

reboot

reboot為重啟命令。

# reboot ### '$' 和 '#' 的區別在于 '$' 普通用戶即可執行,而 '#' 為 root 用戶才可執行,或普通用戶使用 'sudo'

poweroff

poweroff為關機命令。

# poweroff ### 馬上關機

ping

ping主要用于測試網絡連通,通過對目標機器發送數據包來測試兩臺主機是否連通,及延時情況。

$ ping locez.com    ### 通過域名 ping,若 DNS 未設置好,可能無法 ping 通
$ ping linux.cn
PING linux.cn (211.157.2.94) 56(84) bytes of data.
64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=1 ttl=53 time=41.5 ms
64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=2 ttl=53 time=40.4 ms
64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=3 ttl=53 time=41.9 ms
^C
--- linux.cn ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 40.406/41.287/41.931/0.644 ms

$ ping 211.157.2.94   ### 通過 IP 地址 ping ,若無法 ping 通可能是網絡連接出現問題

grep

grep主要用于返回匹配的項目,支持正則表達式。

$ grep PATTERN filename      ### 返回所有含有 PATTERN 的行
$ grep zh_CN /etc/locale.gen ### 返回所有含 zh_CN 的行

mount

mount用于掛載一個文件系統,需要root用戶執行。一個磁盤可分為若干個分區,在分區上面可以創建文件系統,而掛載點則是提供一個訪問的入口,將一個分區的文件系統掛載到某個目錄中,稱這個目錄為掛載點,并且可以通過這個掛載點訪問該文件系統中的內容。例如一塊硬盤在 Linux 中表示為 /dev/sda那么它上面的分區應該表示為 /dev/sda1/dev/sda2

# mount                       ### 輸出系統目前的掛載信息
# mount /dev/sda1 /mnt        ### 將 sda1 掛載到 /mnt 中
# cd /mnt                     ### 直接通過 /mnt 訪問內容
# mount -o remount,rw  /mnt   ### 重新掛載 sda1 到 /mnt 并設置為 可讀寫 
# mount -a                    ### 掛載 fstab 文件配置好的文件系統

umount

umountmoung相反,是卸載一個掛載點,即取消該入口。

# umount /mnt                 ### 卸載 /mnt 這個掛載點的文件系統
# umount -a                   ### 卸載所有已掛載的文件系統

tar

tar主要用于創建歸檔文件,和解壓歸檔文件,其本身是沒有壓縮功能的,但可以調用gzipbzip2進行壓縮處理。參數解釋:

  • -c創建歸檔
  • -x解壓歸檔
  • -v顯示處理過程
  • -f目標文件,其后必須緊跟目標文件
  • -j調用bzip2進行解壓縮
  • -z調用gzip進行解壓縮
  • -t列出歸檔中的文件
$ tar -cvf filename.tar .       ### 將當前目錄所有文件歸檔,但不壓縮,注意后面有個 ’.‘ ,不可省略,代表當前目錄的意思 
$ tar -xvf filename.tar         ### 解壓 filename.tar 到當前文件夾
$ tar -cvjf filename.tar.bz2 .  ### 使用 bzip2 壓縮
$ tar -xvjf  filename.tar.bz2   ### 解壓 filename.tar.bz2 到當前文件夾
$ tar -cvzf filename.tar.gz     ### 使用 gzip  壓縮
$ tar -xvzf filename.tar.gz     ### 解壓 filename.tar.gz 到當前文件夾
$ tar -tf   filename            ### 只查看 filename 歸檔中的文件,不解壓

ln

ln主要用于在兩個文件中創建鏈接,鏈接又分為Hard Links(硬鏈接)和Symbolic Links(符號鏈接或軟鏈接),其中默認為創建硬鏈接,使用-s參數指定創建軟鏈接。

  • 硬鏈接主要是增加一個文件的鏈接數,只要該文件的鏈接數不為0,該文件就不會被物理刪除,所以刪除一個具有多個硬鏈接數的文件,必須刪除所有它的硬鏈接才可刪除。
  • 軟鏈接簡單來說是為文件創建了一個類似快捷方式的東西,通過該鏈接可以訪問文件,修改文件,但不會增加該文件的鏈接數,刪除一個軟鏈接并不會刪除源文件,即使源文件被刪除,軟鏈接也存在,當重新創建一個同名的源文件,該軟鏈接則指向新創建的文件。
  • 硬鏈接只可鏈接兩個文件,不可鏈接目錄,而軟鏈接可鏈接目錄,所以軟鏈接是非常靈活的。
$ ln source dest       ### 為 source 創建一個名為 dest 的硬鏈接
$ ln -s source dest    ### 為 source 創建一個名為 dest 的軟鏈接

chown

chown用于改變一個文件的所有者及所在的組。

# chown user filename        ### 改變 filename 的所有者為 user
# chown user:group filename  ### 改變 filename 的所有者為 user,組為 group
# chown -R root folder      ### 改變 folder 文件夾及其子文件的所有者為 root

chmod

chmod永遠更改一個文件的權限,主要有讀取寫入執行,三種權限,其中所有者用戶組其他各占三個,因此ls -l可以看到如下的信息:

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

其中r=readw=writex=execute

# chmod +x filename        ### 為 user ,group ,others 添加執行權限
# chmod -x filename        ### 取消 user , group ,others 的執行權限
# chmod +w filename        ### 為 user 添加寫入權限
# chmod ugo=rwx filename   ### 設置 user ,group ,others 具有 讀取、寫入、執行權限
# chmod ug=rw filename     ### 設置 user ,group 添加 讀取、寫入權限
# chmod ugo=--- filename   ### 取消所有權限

useradd

useradd用于添加一個普通用戶。

# useradd -m -g users -G audio -s /usr/bin/bash newuser     
### -m 創建 home 目錄, -g 所屬的主組, -G 指定該用戶在哪些附加組, -s 設定默認的 shell ,newuser 為新的用戶名

passwd

passwd用于改變用戶登錄密碼。

$ passwd                 ### 不帶參數更改當前用戶密碼
# passwd newuser       ### 更改上述新建的 newuser 的用戶密碼

whereis

whereis用于查找文件、手冊等。

$ whereis bash 
bash: /usr/bin/bash /etc/bash.bashrc /etc/bash.bash_logout /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
$ whereis -b bash       ### 僅查找 binary
bash: /usr/bin/bash /etc/bash.bashrc /etc/bash.bash_logout
$ whereis -m bash       ### 僅查找 manual
bash: /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz

find

find也用于查找文件,但更為強大,支持正則,并且可將查找結果傳遞到其他命令。

$ find . -name PATTERN    ### 從當前目錄查找符合 PATTERN 的文件
$ find /home -name PATTERN -exec ls -l {} \;  ### 從 /home 文件查找所有符合 PATTERN 的文件,并交由 ls 輸出詳細信息

wget

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

$ wget -O newname.md https://github.com/LCTT/TranslateProject/blob/master/README.md     ###下載 README 文件并重命名為 newname.md
$ wget -c url     ### 下載 url 并開啟斷點續傳

恭喜你,你已經學習了完了26 個基礎的 Linux 命令。雖然這里只是一些最基礎的命令,但是熟練使用這些命令就踏出了你從一位 Linux 新手成為 Linux 玩家的第一步!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數據革命閱讀 12,218評論 2 33
  • Ubuntu的發音 Ubuntu,源于非洲祖魯人和科薩人的語言,發作 oo-boon-too 的音。了解發音是有意...
    螢火蟲de夢閱讀 99,529評論 9 467
  • 笙歌散盡,香閨冷,可憐殘味知人? 眥目努嘴,扎小辮,候人總有歸年! 夢里春宵,信誓盟約,作夏花笑暑。 顏展晴天,預...
    白鳥五月閱讀 524評論 0 1
  • 很久沒有像這樣 只懷著一顆心 下樓走走 邁出大樓 雨過天晴后的白光,照的眼 微瞇 前方很空蕩 又走進這座被遺棄的辦...
    逗逗文閱讀 168評論 0 2
  • 1 先給大家出一個思考題目:為下面這段信息寫一個導語: “比弗利山莊高中的校長肯尼斯·彼得斯今日宣布,比弗利山莊高...
    大鵬元帥閱讀 483評論 3 1