Linux 介绍
【Linux 是什么】
Linux 是一個操作系統,如同 Windows、Mac OS。
操作系統在整個計算機系統中,是在硬件→內核→系統調用→應用程序體系里負責內核→系統調用模塊,但直觀的看,操作系統還包含一些在其上運行的應用程序,比如文本編輯器、瀏覽器、電子郵件等。
【Linux 與 Windows 的區別】
目前國內Linux更多的是應用于服務器上,而桌面操作系統更多使用的是 Windows。
【Linux 桌面環境】
相對于Windows 系統,Linux 本身是沒有圖形界面的,在 Linux 發行版上看到的圖形界面實質上都是運行在 Linux 系統之上的軟件,類似 Windows95 之前的 Windows 的圖形界面只是運行在 DOS 環境的一套軟件。
而 Linux 上的這套軟件以前是 XFree86,現在是 xorg(X.Org),這套軟件是通過 X 窗口系統(X Window System,常被稱為 X11 或 X)實現的,其本身只是工具包及架構協議,而 xorg 是 X 架構規范的一個實現體,即:它是實現了 X 協議規范的一個提供圖形界面服務的服務器,就像實現了 http 協議提供 web 服務的 Apache 。
如果只有服務器則不能實現一個完整的桌面環境的,還需要一個客戶端,我們稱為 X Client,如目前最流行的實現客戶端功能的桌面環境 KDE,GNOME,XFCE,LXDE等。
這也意味著在 Linux 上你可以自己選擇安裝不同的桌面環境,甚至可以定制自己的專屬桌面。
【終端】
終端(Terminal)也稱終端設備,是計算機網絡中處于網絡最外圍的設備,主要用于用戶信息的輸入以及處理結果的輸出等。
Linux系統為實現在圖形窗口中完成用戶輸入和顯示輸出,提供了一個叫做終端模擬器的程序。
常見的終端模擬器有: gnome-terminal、Konsole、xterm、rxvt、kvt、nxterm、eterm 。
終端本質上是對應著 Linux 上的 /dev/tty 設備,Linux 的多用戶登陸就是通過不同的 /dev/tty 設備完成的,Linux 默認提供了 6 個純命令行界面的 “terminal”(準確的說是 6 個 virtual consoles)讓用戶登錄。
在物理機系統上可以通過[Ctrl]+[Alt]+[F1]~[F6]進行切換,當切換到其中一個終端后想要切換回圖形界面,可以按下[Ctrl]+[Alt]+[F7]來完成。
【Shell(殼)】
在使用 Linux 時,并不是直接與系統打交道,而是通過一個叫做 Shell(殼) 的中間程序來完成的。
普通意義上的 Shell 是指可接受用戶輸入命令的程序,之所以被稱作 Shell 是因為它隱藏了操作系統底層的細節。同樣的 UNIX/Linux 下的圖形用戶界面 GNOME 和 KDE,有時也被叫做“虛擬 shell”或“圖形 shell”。
有殼就有核,這里的核就是指 UNIX/Linux 內核,Shell 是指“提供給使用者使用界面”的軟件(命令解析器),類似于 DOS 下的 command(命令行)和后來的 cmd.exe 。
綜上, Shell 既是用戶交互的界面,也是控制系統的腳本語言。
【基本操作】
1.輸入與輸出
在 Linux 中,最重要的就是命令,這就包含了2個過程:輸入與輸出。
輸入,就是打開終端,然后按鍵盤輸入,最后按回車。
輸出,如果是查看,會返回你想要的結果,比如返回文件的內容;如果是執行,執行成功會沒有輸出,執行失敗會告訴你哪里錯了。
2.重要快捷鍵
按鍵 | 作用 |
| Tab | 可得到提示,用于補全命令、目錄、命令參數 |
| Ctrl+c | 強行終止當前程序 |
| Ctrl+d | 鍵盤輸入結束或退出終端 |
| Ctrl+s | 暫停當前程序,暫停后按任意鍵繼續 |
| Ctrl+k | 刪除從光標所在位置到行末 |
| Ctrl+a | 將光標移至行頭 |
| Ctrl+e | 將光標移至行末 |
| Alt+Backspace | 向前刪除一個單詞 |
| Shieft+Pgup | 將終端顯示向上移動 |
| Shieft+Pgdn | 將終端顯示向下移動 |
3.通配符
通配符是一種特殊語句,主要有星號(*)和問號(?),用來對字符串進行模糊匹配(比如文件名、參數名)。
當查找文件夾時,不知道真正字符或者懶得輸入完整名字時,常常使用通配符代替一個或多個真正字符。
終端里面輸入的通配符是由 Shell 處理的,不是由所涉及的命令語句處理的,它只會出現在命令的“參數值”里(它不能出現在命令名稱里, 命令不記得,那就用Tab補全)。
當 Shell 在“參數值”中遇到了通配符時,Shell 會將其當作路徑或文件名在磁盤上搜尋可能的匹配:若符合要求的匹配存在,則進行代換(路徑擴展);否則就將該通配符作為一個普通字符傳遞給“命令”,然后再由命令進行處理。
總之,通配符實際上就是一種 Shell 實現的路徑擴展功能。在通配符被處理后, Shell 會先完成該命令的重組,然后繼續處理重組后的命令,直至執行該命令。
Shell 常用通配符
| 字符 | 含義 |
| * | 匹配0或多個字符 |
| ? | 匹配任一字符 |
| [list] | 匹配list中的任意單一字符 |
| [!list] | 匹配除list中的任意單一字符以外的字符 |
| [c1-c2] | 匹配c1-c2中的任意單一字符,如:[0-9]、[a-z] |
| {string1,string2,...} | 匹配 string1 或 string2 (或更多)其一字符串 |
| {c1..c2} | 匹配 c1-c2 中全部字符,如{1..10} |
4.實例
常用的三個命令:touch 創建一個文件;cd 進入一個目錄;pwd 查看當前目錄
1)創建一個名為 test 的空文件
2)進入 /dev 目錄
3)查看當前目錄
4)使用通配符一次創建多個文本文件
【內建命令與外部命令】
1.內建命令
內建命令屬于 shell 程序的一部分,其中包含的是一些比較簡單的 Linux 系統命令(寫在 bash 源碼里 builtins 的 .def 中),由 shell 程序識別并在 shell 程序內部完成運行。
shell 通常在 Linux 系統加載運行時,就被加載并駐留在系統內存中,且解析內部命令 shell 不需要創建子進程,因此其執行速度比外部命令快。
常見內建命令有:history、cd、exit 等。
2.外部命令
外部命令是 Linux 系統中的實用程序部分,因為實用程序的功能通常都比較強大,所以其包含的程序量也會很大,在系統加載時并不隨系統一起被加載到內存中,而是在需要時才將其調入內存。
外部命令雖然其不包含在 shell 中,但是其命令執行過程是由 shell 程序控制的。
外部命令是在 Bash 之外額外安裝的,通常放在 /bin,/usr/bin,/sbin,/usr/sbin 等目錄中。
常見外部命令有:ls、vi等。
3.內建命令與外部命令的區分
1)使用 type 命令可以來區分內建命令與外部命令。
2)語法:type 要判斷的命令名
3)命令結果
① 當顯示結果為:xxx is a shell builtin 時,說明 xxx 命令是內建命令。
例:
② 當顯示結果為:xxx is /usr/bin/xxx 時,說明 xxx 命令是外部命令。
例:
③ 當顯示結果為:xxx is an alias for xxx --xx 時,說明 xxx 命令為 xxx --xx 命令的別名。
例:
總結
- 上一篇: 线性结构 —— 栈与队列
- 下一篇: 数字金字塔(信息学奥赛一本通-T1258