Linux 命令行完全指南:從入門到精通
1. Linux命令行的作用與意義
眾所周知,Linux是一個主要通過命令行來進行管理的操作系統,即通過鍵盤輸入指令來管理系統的相關操作,包括但不限于編輯文件、啟動停止服務等。這與初學者曾經熟悉的Windows系統使用鼠標點擊這類可視化管理大不相同。
使用鼠標進行可視化管理的優勢是簡單、容易上手,缺點是不能方便快速、批量、自動化地管理系統,而且感覺系統也很臃腫,這個時候Linux系統的命令行管理優勢就凸顯出來了。使用Linux命令行進行管理,不但可以批量、自動化管理,還可以實現智能化、可視化管理,當然,后者需要開發人員配合開發管理界面來完成,但無論如何,Linux系統的優勢基因還是快速、批量、自動化、智能化管理系統及處理業務。

2. Linux命令行介紹
安裝Linux系統時,無論是使用文本模式(命令行)安裝,還是使用圖形模式安裝,最終管理系統的任務都會落到命令行上。
大多數互聯網企業在安裝系統時甚至不會安裝圖形管理軟件包,而是直接使用文本模式安裝,因此登錄后直接面對的就是命令行的界面。
3. Linux命令行的開啟及退出
在開啟主機時,Linux系統會經過一系列的引導和程序加載,最終將會出現登錄前的提示界面(如圖4-1所示)。

圖1-1 CentOS Linux系統登錄界面
在圖1-1中,將光標定位到login: 字符串后面,輸入超級用戶管理員root后,按回車鍵,彈出密碼提示框后再輸入密碼,注意密碼是不顯示的。輸入正確密碼之后,再按回車鍵就可以登錄到Linux系統中了。
4. Linux命令行提示符介紹
Linux命令行結尾的提示符有#和$兩種不同的符號,示例代碼如下所示:
[root@localhost ~]#
#這是超級管理員root用戶對應的命令行
[opsbugs@localhost ~]$
#這是普通用戶opsbugs對應的命令行下面列出Linux系統的命令提示符的詳細說明,如下表所示:
提示符 | 說明 |
[] | 這是提示符的分隔符號,沒有特殊含義; |
root | 顯示的是當前的登錄用戶,現在使用的是 root 用戶登錄; |
@ | 分隔符號,沒有特殊含義; |
localhost | 當前系統的簡寫主機名(完整主機名是 localhost.localdomain); |
~ | 該符號所在位置顯示用戶當前所在的目錄,此例中用戶當前所在的目錄是家目錄; |
# | 命令提示符,Linux用這個符號標識登錄的用戶權限等級,超級用戶是 |
家目錄是什么?
Linux系統是純字符界面,用戶登錄后,要有一個初始登錄位置。這初始登錄位置就稱為用戶的家。
- 超級用戶的家目錄: /root/
- 普通用戶的家目錄(默認): /home/用戶名/
- 用戶在自己的家目錄中擁有完整權限。
在命令行執行exit或logout命令可退出命令行,當然也可以使用快捷鍵Ctrl+d退出命令行,退出命令行之后,如果需要再次登錄,則還是需要輸入用戶名和密碼(除非使用SSH客戶端已將用戶名和密碼保存起來)。
Linux命令提示符由PS1環境變量控制,可使用命令echo $變量名輸出變量的值,如下所示:
[root@localhost ~]# echo $PS1
#注意PSl是大寫的
[\u@\h \W]\$環境變量PS1中的值[\u@\h \W]\$,可以通過全局配置文件/etc/bashrc或/etc/profile進行按需配置和調整。
(1) 臨時修改,可修改PSl變量對應的值,來讓命令行顯示全路徑:
[root@localhost ~]# PSl='[\u@\h \w]\$'
#將默認的\W改為\w (小寫w),此命令僅臨時生效。(2) 上面的方法只是臨時性的,若要讓PSl變量永久生效,則可修改配置文件。編輯/etc/bashrc文件,找到符合下面內容的一行(大約在第36行),將內容中的大寫W改為小寫W, 即可讓變量永久生效。也就是將:
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
#改為下面內容,保存并退出/etc/bashrc文件。
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "
#最后,注銷并重新登錄系統或直接執行 source /etc/bashrc 使得修改的信息生效,source也可以使用“.”代替。
[root@localhost ~]# source /etc/bashrc下面解釋下PS1環境變中的值所代表的含義,如下表所示:
PS1變量 | 含義 |
\d | 代表日期,格式為 weekday month date,例如:"Mon Aug 1"; |
\H | 完整的主機名稱; |
\h | 僅取主機的第一個名字; |
\t | 顯示時間為24小時格式,如: HH:MM:SS; |
\T | 顯示時間為12小時格式; |
\A | 顯示時間為24小時格式: HH:MM; |
\u | 當前用戶的賬號名稱; |
\v | BASH的版本信息; |
\w | 顯示完整的路徑,其中家目錄會以?代替,這是本例的主角; |
\W | 利用basename取得工作目錄名稱,所以只會列出最后一個目錄; |
\# | 執行的第幾個命令; |
\$ | 提示字符,如果是root,則提示符為#,如果是普通用戶,則為$; |
5. Linux命令行常用快捷方式
快捷鍵 | 功能說明 |
最有用快捷鍵 | |
tab | 命令或路徑等的補全鍵,Linux最有用的快捷鍵; |
移動光標快捷鍵 | |
Ctrl+a | 光標回到命令行首; |
Ctrl+e | 光標回到命令行尾; |
Ctrl+f | 光標向右移動一個字符(相當于方向鍵右鍵); |
Ctrl+b | 光標向左移動一個字符(相當于方向鍵左鍵); |
剪切、粘貼、清除快捷鍵 | |
Ctrl+Insert | 復制命令行內容; |
Shift+Insert | 粘貼命令行內容; |
Ctrl+k | 剪切(刪除)光標處到行尾的字符; |
Ctrl+u | 剪切(刪除)光標處到行首的字符; |
Ctrl+w | 剪切(刪除)光標前的一個單詞; |
Ctrl+y | 粘貼Ctrl+u/Ctrl+k/Ctrl+w刪除的文本; |
Ctrl+c | 中斷終端正在執行的任務或者刪除整行; |
Ctrl+h | 刪除光標所在處的前一個字符(相當于退格鍵); |
Ctrl+d | 刪除光標后的一個字符(delete); |
重復執行命令快捷鍵 | |
Ctrl+d | 退出當前Shell命令行(命令行無字符),退出Shell命令之后,若在執行則關閉連接窗口; |
Ctrl+r | 搜索命令行使用過的歷史命令記錄; |
Ctrl+g | 從執行Ctrl+r的搜索歷史命令模式中退出; |
控制快捷鍵 | |
Ctrl+l | 清除屏幕的所有內容,并在屏幕的最上面開始一個新行,等同于clear命令; |
Ctrl+s | 鎖定終端,使之無法輸入內容; |
Ctrl+q | 解鎖執行Ctrl+s的鎖定狀態; |
Ctrl+z | 暫停執行在終端運行的任務; |
!號開頭的快捷命令 | |
!! | 執行上一條命令; |
!pw | 執行最近以pw(或其他)開頭的命令; |
!pw:p | 僅打印最近以pw(或其他)開頭的命令,但不執行; |
!num | 執行歷史命令列表的第num(數字)條命令; |
!$ | 上一條命令的最后一個參數; |
ESC相關 | |
Esc+.(點) | 獲取上一條命令最后的部分(空格分隔); |
Esc+b | 移動到當前單詞的開頭; |
Esc+f | 移動到當前單詞的結尾; |
Esc+t | 顛倒光標所在處及其相鄰單詞的位置; |
6. 命令的基本格式
在操作Linux命令之前,先看下命令操作語法格式。在Linux系統運維工作中,常用的操作大多都是在命令行下實現的,Linux系統命令操作語法的格式具體如下:
[root@localhost ~]# 命令 [選項] [參數]選項 | 說明 |
選項 | 是用于調整命令功能的,[]代表可選項,也就是有些命令可以不寫選項或參數,也能執行; |
參數 | 是命令的操作對象,如果省略參數,是因為有默認參數 |
注意: 命令、參數選項、文件或路徑兩兩之間至少要有一個空格。






























