一惯悠、linux終端
使用 Linux 時克婶,并不是直接與系統(tǒng)打交道,而是通過一個叫做 Shell 的中間程序鸭蛙,在圖形界面下為了實現(xiàn)讓我們在一個窗口中完成用戶輸入和顯示輸出娶视,Linux 系統(tǒng)還提供了一個叫做終端模擬器的程序(Terminal)肪获。比較常見的終端模擬器: gnome-terminal孝赫,kconsole红符,xterm,rxvt刹前,kvt雌桑,nxterm 和 eterm 喇喉。目前實驗中的終端程序是 xfce 桌面環(huán)境自帶的 xfce-terminal 。不過要注意的是這里所說的終端(Terminal)和控制臺(Console)是有區(qū)別的校坑。
終端本質(zhì)上是對應(yīng)著 Linux 上的 /dev/tty 設(shè)備拣技,Linux 的多用戶登陸就是通過不同的 /dev/tty 設(shè)備完成的,Linux 默認(rèn)提供了 6 個純命令行界面的 “terminal”(準(zhǔn)確的說這里應(yīng)該是 6 個 virtual consoles)來讓用戶登錄耍目。在物理機系統(tǒng)上你可以通過使用[Ctrl]+[Alt]+[F1]~[F6]進(jìn)行切換膏斤,不過在在線實驗環(huán)境中可能無法切換,因為特殊功能按鍵會被主機系統(tǒng)劫持邪驮。當(dāng)切換到其中一個終端后想要切換回圖形界面莫辨,可以按下[Ctrl]+[Alt]+[F7]來完成。
二毅访、Shell
通常在圖形界面中對實際體驗帶來差異的是 Shell(殼)沮榜。有殼就有核喻粹,這里的核就是指 UNIX/Linux 內(nèi)核型酥,Shell 是指“提供給使用者使用界面”的軟件(命令解析器)郁竟,類似于 DOS 下的 command(命令行)和后來的 cmd.exe 枪孩。普通意義上的 Shell 就是可以接受用戶輸入命令的程序。它之所以被稱作 Shell 是因為它隱藏了操作系統(tǒng)底層的細(xì)節(jié)。同樣的 UNIX/Linux 下的圖形用戶界面 GNOME 和 KDE钧栖,有時也被叫做“虛擬 shell”或“圖形 shell”拯杠。
UNIX/Linux 操作系統(tǒng)下的 Shell 既是用戶交互的界面,也是控制系統(tǒng)的腳本語言依溯。當(dāng)然這一點也有別于 Windows 下的命令行慷嗜,雖然該命令行也提供了很簡單的控制語句雀费。在 Windows 操作系統(tǒng)下忿峻,有些用戶從來都不會直接使用 Shell,然而在 UNIX 系列操作系統(tǒng)下绰寞,Shell 仍然是控制系統(tǒng)啟動、X11 啟動和很多其它實用工具的腳本解釋程序件缸。
在 UNIX/Linux 中比較流行的常見的 Shell 有 bash、zsh、ksh凿叠、csh 等等幔嫂,Ubuntu 終端默認(rèn)使用的是 bash,默認(rèn)的桌面環(huán)境是 GNOME 或者 Unity(基于 GNOME)切心,但我們的環(huán)境中使用的分別是 zsh 和 xfce。
三、命令行操作體驗
創(chuàng)建一個名為文件认然,touch是一個命令
touch file
進(jìn)入一個目錄盈匾,cd是一個命令
cd /etc/
查看當(dāng)前所在目錄
pwd
四、重要快捷鍵
[Tab]
使用Tab鍵來進(jìn)行命令補全,Tab鍵一般是在字母Q旁邊,這個技巧給你帶來的最大的好處就是當(dāng)你忘記某個命令的全稱時可以只輸入它的開頭的一部分,然后按下Tab鍵就可以得到提示或者幫助完成
不止補全命令赡模,補全目錄、補全命令參數(shù)都是沒問題的
[Ctrl+c]
無意輸入了一個不知道的命令,或者錯誤地使用了一個命令锋玲,導(dǎo)致在終端里出現(xiàn)了無法預(yù)料的情況,比如商架,屏幕上只有光標(biāo)在閃爍卻無法繼續(xù)輸入命令诚些,或者不停地輸出一大堆不想要的結(jié)果砸烦。想要立即停止并恢復(fù)到你可控的狀態(tài)家破,可以使用Ctrl+c鍵來強行終止當(dāng)前程序(它并不會使終端退出)汰聋。
當(dāng)看到終端沒有任何反應(yīng)或提示,也不能接受輸入時,可能只是運行的程序需要耐心等一下,無需急著按Ctrl+c搔扁。
其他一些常用快捷鍵
Ctrl+d 鍵盤輸入結(jié)束或退出終端
Ctrl+s 暫停當(dāng)前程序阁谆,暫停后按下任意鍵恢復(fù)運行
Ctrl+z 將當(dāng)前程序放到后臺運行焰盗,恢復(fù)到前臺為命令fg
Ctrl+a 將光標(biāo)移至輸入行頭,相當(dāng)于Home鍵
Ctrl+e 將光標(biāo)移至輸入行末,相當(dāng)于End鍵
Ctrl+k 刪除從光標(biāo)所在位置到行末
Alt+Backspace 向前刪除一個單詞
Shift+PgUp 將終端顯示向上滾動
Shift+PgDn 將終端顯示向下滾動
利用歷史輸入命令徐裸,使用鍵盤上的方向上鍵↑重贺。
五潜圃、使用通配符
通配符是一種特殊語句崇堵,主要有星號(*)和問號(?)也搓,用來對字符串進(jìn)行模糊匹配(比如文件名、參數(shù)名)。當(dāng)查找文件夾時,可以使用它來代替一個或多個真正字符苛吱;當(dāng)不知道真正字符或者懶得輸入完整名字時彰亥,常常使用通配符代替一個或多個真正字符废酷。
終端里面輸入的通配符是由 Shell 處理的,不是由所涉及的命令語句處理的,它只會出現(xiàn)在命令的“參數(shù)值”里(它不能出現(xiàn)在命令名稱里, 命令不記得,那就用Tab補全)。當(dāng) Shell 在“參數(shù)值”中遇到了通配符時,Shell 會將其當(dāng)作路徑或文件名在磁盤上搜尋可能的匹配:若符合要求的匹配存在,則進(jìn)行代換(路徑擴展);否則就將該通配符作為一個普通字符傳遞給“命令”,然后再由命令進(jìn)行處理溃肪。總之音五,通配符實際上就是一種 Shell 實現(xiàn)的路徑擴展功能惫撰。在通配符被處理后, Shell 會先完成該命令的重組碟绑,然后繼續(xù)處理重組后的命令,直至執(zhí)行該命令午笛。
在創(chuàng)建文件的時候,如果需要一次性創(chuàng)建多個文件
Shell 常用通配符
匹配 0 或多個字符
? 匹配任意一個字符
[list] 匹配 list 中的任意單一字符
[!list] 匹配 除list 中的任意單一字符以外的字符
[c1-c2] 匹配 c1-c2 中的任意單一字符 如:[0-9] [a-z]
{string1,string2,...} 匹配 string1 或 string2 (或更多)其一字符串
{c1..c2} 匹配 c1-c2 中全部字符 如{1..10}
六矫俺、在命令行中獲取幫助
在 Linux 環(huán)境中饺藤,如果遇到困難,可以使用man命令,Manual pages的縮寫。
Manual pages 是 UNIX 或類 UNIX 操作系統(tǒng)中在線軟件文檔的一種普遍的形式, 內(nèi)容包括計算機程序(包括庫和系統(tǒng)調(diào)用)澳淑、正式的標(biāo)準(zhǔn)和慣例插佛,甚至是抽象的概念叁怪。用戶可以通過執(zhí)行man命令調(diào)用手冊頁耳璧。
獲得某個命令的說明和使用方式的詳細(xì)介紹:
$ man
查看 man 命令本身的使用方式攀隔,可以輸入:
man man
man 手冊里面的內(nèi)容都是英文的,man涉及了 Linux 使用過程中的方方面面。為了便于查找,man 手冊被進(jìn)行了分冊(分區(qū)段)處理,在 Research UNIX、BSD假残、OS X 和 Linux 中缭贡,手冊通常被分為8個區(qū)段,安排如下:
1 一般命令
2 系統(tǒng)調(diào)用
3 庫函數(shù)辉懒,涵蓋了C標(biāo)準(zhǔn)函數(shù)庫
4 特殊文件(通常是/dev中的設(shè)備)和驅(qū)動程序
5 文件格式和約定
6 游戲和屏保
7 雜項
8 系統(tǒng)管理命令和守護(hù)進(jìn)程
要查看相應(yīng)區(qū)段的內(nèi)容阳惹,就在 man 后面加上相應(yīng)區(qū)段的數(shù)字即可,如:
$ man 1 ls
會顯示第一區(qū)段中的ls命令 man 頁面眶俩。
所有的手冊頁遵循一個常見的布局莹汤,一般包括以下部分內(nèi)容:
NAME(名稱)該命令或函數(shù)的名稱,接著是一行簡介颠印。
SYNOPSIS(概要)對于命令纲岭,正式的描述它如何運行,以及需要什么樣的命令行參數(shù)线罕。對于函數(shù)止潮,介紹函數(shù)所需的參數(shù),以及哪個頭文件包含該函數(shù)的定義钞楼。
DESCRIPTION(說明)命令或函數(shù)功能的文本描述喇闸。
EXAMPLES(示例)常用的一些示例。
SEE ALSO(參見)相關(guān)命令或函數(shù)的列表窿凤。
也可能存在其它部分內(nèi)容仅偎,但這些部分沒有得到跨手冊頁的標(biāo)準(zhǔn)化。常見的例子包括:OPTIONS(選項)雳殊,EXIT STATUS(退出狀態(tài)),ENVIRONMENT(環(huán)境)窗轩,BUGS(程序漏洞)夯秃,F(xiàn)ILES(文件),AUTHOR(作者)痢艺,REPORTING BUGS(已知漏洞)仓洼,HISTORY(歷史)和 COPYRIGHT(版權(quán))。
通常 man 手冊中的內(nèi)容很多,可以在 man 中使用搜索/<要搜索的關(guān)鍵字>堤舒,查找完畢后你可以使用n鍵切換到下一個關(guān)鍵字所在處色建,shift+n為上一個關(guān)鍵字所在處。使用Space(空格鍵)翻頁舌缤,Enter(回車鍵)向下滾動一行箕戳,或者使用j,k(vim 編輯器的移動鍵)進(jìn)行向前向后滾動一行某残。按下h鍵為顯示使用幫助(因為 man 使用 less 作為閱讀器,實為less工具的幫助)陵吸,按下q退出玻墅。
想要獲得更詳細(xì)的幫助,還可以使用info命令壮虫。如果知道某個命令的作用澳厢,只是想快速查看一些它的某個具體參數(shù)的作用,可以使用--help參數(shù)囚似,如:
$ ls --help
七剩拢、可以輸出圖形字符的命令banner
$ sudo apt-get update
$ sudo apt-get install sysvbanner
-w參數(shù)指定打印寬度,因為我們的環(huán)境在屏幕中顯示比較小饶唤,必須要加上寬度限制徐伐。
也可以使用默認(rèn)已經(jīng)安裝的一個命令printerbanner。
圖片版詳見http://t.cn/RaWiBVQ