基本概念及操作

2puT發表於2016-07-26
基本概念及操作 - 實驗樓
https://www.shiyanlou.com/courses/document/2
基本概念及操作
實驗介紹
本節實驗主要有:
1、實驗樓環境介紹 2、常用 Shell 命令及快捷鍵 3、Linux 使用小技巧
一、Linux 桌面環境介紹
相對於現在的 Windows 系統,UNIX/Linux 本身是沒有圖形介面的,
我們通常在 Unix/Linux 發行版上看到的圖形介面實際都只是執行在
Linux 系統之上的一套軟體,類似 Windows95 之前的Windows 的圖
形介面實則也只是執行在 DOS 環境的一套軟體。而 Linux 上的這套軟
件以前是XFree86,現在則是 xorg(X.Org),而這套軟體又是通過 X
視窗系統(X Window System,也常被稱為X11或X)實現的,X 本身
只是工具包及架構協議,而 xorg 便是 X 架構規範的一個實現體,也就
是說它是實現了 X 協議規範的一個提供圖形使用者介面服務的伺服器,
就像實現了 http 協議提供 web 服務的 Apache。如果只有伺服器也是
不能實現一個完整的桌面環境的,當然還需要一個客戶端,我們稱為
X Client,像如下幾個大家熟知也最流行的實現了客戶端功能的桌面環
境KDE,GNOME,XFCE,LXDE,其中就有你看到的,實驗樓目前
使用的 XFCE 桌面環境,部分老使用者可能可以回想起,實驗樓之前使
用的環境是 LXDE。這也意味著在 Linux 上你可以自己選擇安裝不同
的桌面環境,甚至可以定製自己的專屬桌面。
這裡講這麼多,主要是為了幫助你更好理解 Linux 的桌面環境是一個
怎樣的概念,以及它跟 Windows 作業系統桌面的差異,實際它們之間
是有著本質的差別的,希望清楚這些內容之後可以讓你忽略那些體驗
上的差異,專心把精力放到 Linux 系統本身或者你正準備學習的某一
門技術之上,這門實驗課後面的內容和實驗樓的其他課程便是為了幫
助你實現以上兩個目標的。
1 of 11
08/17/2015 07:04 PM基本概念及操作 - 實驗樓
https://www.shiyanlou.com/courses/document/2
二、Linux 桌面環境的使用
如果你對當前實驗桌面環境(xfce)的使用有任何困難,建議你先學
習實驗樓入門基礎課程 (http://shiyanlou.com/courses/63),對於其它
桌面環境的使用,不在本課程的範圍之類,有興趣的使用者可以在自己
計算機中安裝完整的 Linux 發行版或其 Live CD 體驗。
關於登入賬戶密碼的說明, 實驗樓環境中所有的預設系統使用者名稱
均為 shiyanlou,密碼為 shiyanlou
三、Linux終端
1.Terminal(終端)
通常在我們使用 Linux 時,我們並不是直接與系統打交道,而是通過
一個叫做 Shell 的中間程式來完成的,在圖形介面下為了實現讓我們在
一個視窗中完成接受使用者輸入和顯示輸出,Linux 系統還提供了一個叫
做終端模擬器的程式(Terminal),下面幾個比較常見的終端模擬
器,例如 gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和
eterm,目前我們的實驗中的終端程式是 xfce 桌面環境自帶的 xfce-
terminal。不過要注意的是這裡所說的終端(Terminal)和控制檯
(Console)是有區別的。
終端本質上是對應著 Linux 上的 /dev/tty 裝置,Linux 的多使用者登陸就
是通過不同的 /dev/tty 裝置完成的,Linux 預設提供了 6 個純命令列界
面的 “terminal”(準確的說這裡應該是 6 個 virtual consoles)來讓用
戶登入,在物理機系統上你可以通過使用 [Ctrl] + [Alt] + [F1]~
[F6] 進行切換,不過在我們的線上實驗環境中可能無法切換,因為特
殊功能按鍵會被你主機系統劫持。當你切換到其中一個終端後想要切
2 of 11
08/17/2015 07:04 PM基本概念及操作 - 實驗樓
https://www.shiyanlou.com/courses/document/2
換回圖形介面,你可以按下 [Ctrl] + [Alt] + [F7] 來完成。
2.Shell
通常在圖形介面中對實際體驗帶來差異的不是上述的不同發行版的各
種終端模擬器,而大都是這個 Shell(殼),有殼就有核,這裡的核就
是指的 UNIX/Linux 核心,Shell 是指“提供給使用者使用介面”的軟體
(命令解析器),類似於 DOS 下的 command(命令列)和後來的
cmd.exe。普通意義上的 Shell 就是可以接受使用者輸入命令的程式。它
之所以被稱作 Shell 是因為它隱藏了作業系統底層的細節。同樣的
Unix/Linux 下的圖形使用者介面 GNOME 和 KDE,有時也被叫做“虛擬
shell”或“圖形 shell”。
Unix/Linux 作業系統下的 Shell 既是使用者互動的介面,也是控制系統
的指令碼語言。當然在這點也有別於 Windows 下的命令列,雖然也提供
了很簡單的控制語句。在Windows 作業系統下,可能有些使用者從來都
不會直接的使用 Shell,然而在 UNIX 系列作業系統下,Shell 仍然是
控制系統啟動、X11 啟動和很多其他實用工具的指令碼解釋程式。
在 UNIX/Linux 中比較流行的常見的 Shell 有 bash,zsh,ksh,csh
等等,Ubuntu 終端預設使用的是 bash,預設的桌面環境是 GNOME
或者 Unity(基於 GNOME),但我們的環境中使用的分別是zsh 和
xfce。
3.命令列操作體驗
如圖,雙擊桌面上的 Xface終端 圖示,開啟終端,開啟終端後會自動
執行 Shell 程式,然後我們就可以輸入命令讓系統來執行了:
1).重要快捷鍵:
真正學習命令列之前,你先要掌握幾個十分有用,必需掌握的小技
3 of 11
08/17/2015 07:04 PM基本概念及操作 - 實驗樓
https://www.shiyanlou.com/courses/document/2
巧:
[Tab]
使用 Tab 鍵來進行命令補全, Tab 鍵一般鍵盤是在字母 Q 旁邊,這個
技巧給你帶來的最大的好處就是當你忘記某個命令的全稱時你可以只
輸入它的開頭的一部分然後按下 Tab 鍵就可以得到提示或者幫助完
成:
當然不止補全命令,補全目錄,補全命令引數都是沒問題的:
[Ctrl+c]
想想你有沒有遇到這種情況,當你在 Linux 命令列中無意輸入了一個
不知道的命令,或者錯誤的使用了一個命令,導致在終端裡出現了你
無法預料的情況,比如,只有游標在閃爍無法繼續輸入命令,或者不
4 of 11
08/17/2015 07:04 PM基本概念及操作 - 實驗樓
https://www.shiyanlou.com/courses/document/2
停地在輸出一大堆你不想要的結果。你想要立即停止並恢復到你可控
的狀態,那該怎麼辦呢。這時候你就可以使用 Ctrl+c 鍵來強行終止當
前程式(你可以放心它並不會使終端退出)。
嘗試輸入以下命令:
$ tail
然後你會發現你接下來的輸入都沒有任何反應了,只是將你輸入的東
西顯示出來,現在你可以使用 Ctrl+c ,來中斷這個你目前可能還不知
道是什麼的程式了。(在後續課程中我們會具體解釋這個 tail 命令是
什麼)
又或者輸入:
$ find /
顯然這不是你想的結果,可以使用 Ctrl+c 結束。
雖然這個按著很方便,但不要隨便按,因為有時候當你看到終端沒有
任何反應或提示,也不能接受你的輸入,可能只是執行的程式需要你
耐心的等一下,你就不要急著 Ctrl+c 了。
其他一些常用快捷鍵
按鍵
Ctrl+d
Ctrl+z 暫定當前程式,暫停後按下任意鍵恢復執行
將當前程式放到後臺執行,恢復到前臺為命令 fg
Ctrl+a 將游標移至輸入行頭,相當於 Home 鍵
Ctrl+e 將游標移至輸入行末,相當於 End 鍵
Ctrl+k 刪除從游標所在位置到行末
Ctrl+s
5 of 11
作用
鍵盤輸入結束或退出終端
08/17/2015 07:04 PM基本概念及操作 - 實驗樓
https://www.shiyanlou.com/courses/document/2
按鍵
作用
Alt+Backspace 向前刪除一個單詞
Shift+PgUp 將終端顯示向上滾動
Shift+PgDn 將終端顯示向下滾動
2).學會利用歷史輸入命令
很簡單,你可以使用鍵盤上的方向 上 鍵,恢復你之前輸入過的命令,
你一試便知。
3).學會使用萬用字元
萬用字元是一種特殊語句,主要有星號(*)和問號(?),用來對對字
符串進行模糊匹配(比如檔名,引數名)。當查詢資料夾時,可以
使用它來代替一個或多個真正字元;當不知道真正字元或者懶得輸入
完整名字時,常常使用萬用字元代替一個或多個真正的字元。
終端裡面輸入的萬用字元是由 Shell 處理的,不是由所涉及到命令語句處
理的,它只會出現在命令的“引數值”裡(它不用在 命令名稱裡, 命令
不記得,那就用 Tab 補全)。當 Shell 在“引數值”中遇到了萬用字元
時,Shell 會將其當作路徑或檔名去在磁碟上搜尋可能的匹配:若符
合要求的匹配存在,則進行代換(路徑擴充套件);否則就將該萬用字元作為一
個普通字元傳遞給“命令”,然後再由命令進行處理。總之,萬用字元 實
際上就是一種 Shell 實現的路徑擴充套件功能。在 萬用字元被處理後, Shell
會先完成該命令的重組,然後再繼續處理重組後的命令,直至執行該
命令。
先使用 touch 命令建立 2 個檔案,字尾都為 txt:
$ touch adsfasd.txt wergjlkas.txt
可以給檔案隨意命名,假如過了很長時間,你已經忘了這兩個檔案的
檔名,現在你想在你大堆其他檔案中找到這兩個文字檔案,就可以
使用萬用字元:
$ ls *.txt
6 of 11
08/17/2015 07:04 PM基本概念及操作 - 實驗樓
https://www.shiyanlou.com/courses/document/2
在建立檔案的時候,如果需要一次性建立多個檔案,比
如:“love_1_linux.txt,love_2_linux.txt,... love_10_linux.txt”。
在 Linux 中十分方便:
$ touch love _ { 1 .. 10 }_linux.txt
Shell 常用萬用字元:
字元
* 含義
匹配 0 或多個字元
? 匹配任意一個字元
[list] 匹配 list 中的任意單一字元
[!list] 匹配 除list 中的任意單一字元以外的字元
[c1-c2] 匹配 c1-c2 中的任意單一字元 如:[0-9] [a-z]
{string1,string2,...} 匹配 sring1 或 string2 (或更多)其一字串
{c2..c2}
匹配 c1-c2 中全部字元 如{1..10}
4).學會在命令列中獲取幫助
在 Linux 環境中,如果你遇到困難,可以使用 man 命令,它是
Manual page 的縮寫。
7 of 11
08/17/2015 07:04 PM基本概念及操作 - 實驗樓
https://www.shiyanlou.com/courses/document/2
Manual pages 是在 UNIX 或類 UNIX 作業系統線上軟體文件的一種普
遍的形式。 內容包括計算機程式(包括庫和系統呼叫),正式的標準
和慣例,甚至是抽象的概念。使用者可以通過執行 man 命令呼叫手冊
頁。
你可以使用如下方式來獲得某個命令的說明和使用方式的詳細介紹:
$ man < command _name>
比如你想檢視 man 命令本身的使用方式,你可以輸入:
man man
通常情況下,man 手冊裡面的內容都是英文的,這就要求你有一定的
英文基礎。man 手冊的內容很多,涉及了 Linux 使用過程中的方方面
面,為了便於查詢,是做了分冊(分割槽段)處理的,在Research
UNIX、BSD、OS X 和 Linux 中,手冊通常被分為8個區段,安排如
下:
區段說明
1 一般命令
2 系統呼叫
3 庫函式,涵蓋了C標準函式庫
4 特殊檔案(通常是/dev中的裝置)和驅動程式
5 檔案格式和約定
6 遊戲和屏保
7 雜項
8 系統管理命令和守護程式
要檢視相應區段的內容,就在 man 後面加上相應區段的數字即可,
如:
$ man 3 printf
所有的手冊頁遵循一個常見的佈局,其為通過簡單的 ASCII 文字展示
而優化,而這種情況下可能沒有任何形式的高亮或字型控制。一般包
括以下部分內容:
NAME(名稱)
該命令或函式的名稱,接著是一行簡介。
SYNOPSIS(概要)
對於命令,正式的描述它如何執行,以及需要什麼樣的命令列
引數。對於函式,介紹函式所需的引數,以及哪個標頭檔案包含
該函式的定義。
8 of 11
08/17/2015 07:04 PM基本概念及操作 - 實驗樓
https://www.shiyanlou.com/courses/document/2
DESCRIPTION(說明)
命令或函式功能的文字描述。
EXAMPLES(示例)
常用的一些示例。
SEE ALSO(參見)
相關命令或函式的列表。
也可能存在其他部分內容,但這些部分沒有得到跨手冊頁的標準化。
常見的例子包括:OPTIONS(選項),EXIT STATUS(退出狀
態),ENVIRONMENT(環境),BUGS(程式漏洞),FILES(文
件),AUTHOR(作者),REPORTING BUGS(已知漏
洞),HISTORY(歷史)和COPYRIGHT(版權)。
通常 man 手冊中的內容很多,你可能不太容易找到你想要的結果,不
過幸運的是你可以在 man 中使用搜尋, /<你要搜尋的關鍵字> ,查詢
到後你可以使用 n 鍵切換到下一個關鍵字所在處, shift+n 為上一個
關鍵字所在處。使用 Space (空格鍵)翻頁, Enter (Enter鍵)向下滾動
一行,或者使用 j , k (vim編輯器的移動鍵)進行向前向後滾動一
行。按下 h 鍵為顯示使用幫助(因為man使用less作為閱讀器,實為
less 工具的幫助),按下 q 退出。
想要獲得更詳細的幫助,你還可以使用 info 命令,不過通常使用
man 就足夠了。如果你知道某個命令的作用,只是想快速檢視一些它
的某個具體引數的作用,那麼你可以使用 --help 引數,大部分命令都
會帶有這個引數,如:
$ ls --help
作業
本課程會在每一節實驗結束部分介紹一個有趣的 Linux 命令,這一節
介紹一個可以輸出圖形字元的命令 banner ,先看效果:
9 of 11
08/17/2015 07:04 PM基本概念及操作 - 實驗樓
https://www.shiyanlou.com/courses/document/2
你可以先使用如下命令安裝:
$ sudo apt-get update; sudo apt-get install sysvban
ner
然後:
$ banner shiyanlou
或者你覺得這字型不好看,那麼你還可以使用預設已經安裝的一個命
令 printerbanner :
$ printerbanner -w 50 A
'-w'引數指定列印寬度,因為我們的環境在螢幕中顯示比較小,必須要
加上寬度限制。
還有兩個類似的命令 toilet , figlet ,作為作業安裝試用。
10 of 11
08/17/2015 07:04 PM基本概念及操作 - 實驗樓
https://www.shiyanlou.com/courses/document/2
動手做實驗,輕鬆學IT。
實驗樓-通過動手實踐的方式學會IT技術。
公司簡介 (/aboutus) 聯絡我們 (/contact) 常見問題 (/faq#howtostart) 加入我們 (/hire) 隱私協議 (/privacy)
會員條款 (/terms)
站長統計 (http://www.cnzz.com/stat/website.php?web_id=5902315)
蜀ICP備13019762號 (http://www.miibeian.gov.cn/)
(http://www.anquan.org/authenticate/cert/?site=www.shiyanlou.com&at=realname)
QQ群
微信
微博
(http://weibo.com/shiyanlou2013)
11 of 11
08/17/2015 07:04 PM

相關文章