本號介紹的Linux操作系統是Ubuntu的服務版(也就是Server版)。該版本的操作系統沒有圖形界面,因此操作系統啟動后的界面和登陸后的界面只有一行行的文字,我們只能看到黑色的屏幕,具體如下。

圖1 Ubuntu登陸界面
可以看到,這里只能看到一個一閃一閃的光標。作為使用者,我們只能通過鍵盤輸入一些命令來控制電腦。
下面是本號專注Linux操作系統使用和原理的圈子,很多文章會收集在圈子中,大家可以加入圈子,方便學習。
登陸系統
Linux是多用戶的操作系統,這個概念有兩層含義,一方面是在操作系統中可以有多個用戶,另外一方面是可以同時有多個用戶登陸使用。這就好像我們使用的購物網站(某寶或者某東)似的,每個人都有一個賬號,而且需要我們登錄到系統,才可以使用。
登錄的方法也很簡單,我們只需要輸入用戶名和密碼,然后回車即可。下面登錄系統的界面:

圖2 用戶名和密碼界面
如果用戶名和密碼都正確的話,那么就成功登陸系統了。此時,操作系統會打印一些系統摘要信息。在最下面是可以與操作系統交互的地方,這個可以交互的地方通常稱為命令提示符。本例中命令提示符主要由兩部分構成,也就是用戶名和主機名,本文都是itworld123。當然,這個與我們開始安裝的設置及登陸的具體用戶有關。

圖3 登陸成果后界面
如果我們安裝系統時設置的主機名不是itworld123,那么對應的主機名部分就會有變化。同樣,如果我們登陸的是其它用戶,那么用戶名字符串也會有相應的變化。這個主要用於提示我們登陸操作系統信息。
為什么要有這些信息?因為在一個數據中心中可能有成千上萬台服務器,而每個服務器有會有多個用戶。如果沒有這些必要的信息,我們在操作的時候就不清楚自己登錄在哪台服務器上,也不清楚使用的哪個用戶,這樣會給操作帶來非常大的不便。
另外,除了直接登錄系統外,還可以借助軟件實現操作系統的登錄。比如SecureCRT、XShell和Putty等等,還有最近國內的一個免費工具FinalShell。下面是XShell的界面,初次登陸后的內容如下,與直接登陸內容一致。

圖4 通過XShell登陸界面
關於相關軟件的介紹本文暫時不做介紹,后續專門介紹相關的內容及原理。
什么是操作系統及Linux
雖然我們已經登錄的Linux操作系統,但是我們仍然不會使用這個操作系統,基本上是一頭懵逼的狀態。
在具體使用操作系統之前,我們有必要理解一下操作系統的概念,這將有助於我們理解操作系統,並且有助於我們學習使用Linux操作系統。
操作系統是指控制和管理整個計算機系統的硬件和軟件資源,並合理地組織調度計算機工作和資源分配,以提供給用戶和其他軟件方便的接口和環境,它是計算機系統的最基本的系統軟件。
從對操作系統的定義中我們可以得出三點關鍵的信息,具體如下:
1. 控制和管理計算機系統的硬件和軟件資源
操作系統實現了對硬件資源的控制和管理,這里面主要的硬件資源是CPU(計算資源)和硬盤(存儲資源)。當然,除了上述硬件之外,還有輸入輸出硬件,比如傳統PC的鼠標、鍵盤和顯示器,或者手機的觸摸屏。
操作系統對CPU和磁盤的管理是比較核心的內容。計算機的工作本質就是計算,而計算的輸入數據、中間數據和最終輸出數據通常需要存儲在某個地方,而這通常是硬盤。以PC機為例,如果我們想播放一個電影,那么需要應用軟件(播放器)從硬盤讀取視頻文件數據,經過計算后在顯示器進行呈現。而對於服務器來說,計算仍然是核心,比如我們瀏覽某電商的網站,出現在我們面前的商品信息就是在服務器計算后的結果。
2. 組織和調度計算機工作和資源分配
隨着硬件技術的發展,硬件可以承擔更多的任務。比如目前很多CPU可以多大幾十個核心,也就是可以同時有幾十個進程處於運行狀態。操作系統需要實現對計算資源的調度和管理,從而實現資源的最大化利用。
3. 提供給用戶和其他軟件方便的接口和環境
這個特性對我們普通用戶最為明顯。以存儲設備為例,存儲設備是一個非常大的空間,比如1TB的硬盤有1萬億字節,如果沒有操作系統很難對這么大的空間進行使用。而操作系統通過其中的文件系統簡化了對存儲設備使用的接口,使得普通用戶看到的是分級的文件目錄樹結構。
有了對操作系統的整體性了解,下面我們介紹一下Linux操作系統中最終要的一個概念,也就是文件系統。
Linux操作系統的文件系統及目錄樹
在Linux操作系統中有一句名言,稱為“everything is a file.”,也就是一切皆文件。在Linux操作系統中除了存儲數據采用文件外,物理設備、進程和配置等等都是以文件的形態呈現。在Linux操作系統中所有這些內容構成一個目錄樹,而這個目錄樹的根為“/”。
如圖是一個簡化的Linux操作系統目錄樹,這里面有目錄和文件,其中bin、dev和home等等都是目錄。home目錄是一個比較特別的目錄,其下每個子目錄通常是以用戶名命名的,里面存儲用戶專有的數據,比如itworld123就是該用戶的目錄。在itworld123下面有兩個文件,xxx和yyy。這兩個文件則是具體的文件,該文件假設為用戶創建的文件,沒有具體的意義。

圖5 Ubuntu目錄樹
上圖是一個虛擬的目錄樹結構,我們可以通過Linux中的tree命令顯示操作系統的整個目錄樹結構。由於Linux操作系統目錄樹非常龐大,因此我們為了便於顯示,這里只顯示一級目錄(通過選項-L 1進行控制)的情況。

圖6 目錄樹實例
上面是Ubuntu Server版的情況,由於沒有安裝GUI界面,因此只能通過命令的方式進行查看。如果我們有桌面版的Ubuntu系統,那么可以通過圖形界面的方式查看文件系統內容。這個跟Windows的“資源管理器”非常像。

圖7 圖形界面(GUI)文件目錄
通過前面的實例我們可以看出,在根目錄下面有很多子目錄。這些子目錄都是有具體的用途的,並非隨意名命的。前面我們大致介紹了一下home目錄,接下來我們介紹一下其它目錄。比如bin目錄是用戶存儲系統命令(程序)的目錄,很多系統內部命令都在該目錄下面。例如顯示當前目錄內容的ls命令,顯示系統進程的ps命令等等。boot目錄是存儲操作系統內核相關內容的目錄。dev目錄則是設備相關的目錄,比如硬盤等設備的信息都以文件的形式存儲在該目錄中。
關於Ubuntu目錄含義的詳細解釋我們后面專門寫一篇文章介紹,本文暫時不再詳細介紹。
Linux操作系統使用入門
廢話一籮筐,我們前面鋪墊了很多知識,但是仍然不知道如何使用Linux操作系統。現在,我們開始介紹如何使用操作系統。
前面我們了解了Linux操作系統的概念和文件系統的概念,今天我們就介紹一下基本的文件系統操作。在文件系統中有2種資源類型,一種稱為目錄(文件夾),另一種稱為文件。目錄是用來組織文件的,本身並不存儲用戶的數據;文件則是存儲用戶數據的實體,比如音頻文件、視頻文件、文本文件或者圖片文件等等。下面,我們就介紹一下跟目錄和文件操作相關的命令(本文介紹pwd、ls、vi和cat)。
pwd命令
當我們通過某個用戶登陸Ubuntu系統時,我們會自動位於某個目錄下面。這個目錄就是用戶的主目錄。以itworld123為例,當我們登陸時就處於/home/itworld123目錄下。那么怎么確定我們當前時處於哪個目錄下呢?這個時候pwd命令就派上用場了。pwd的是print working directory的簡稱,也就是打印當前的工作目錄。如下圖是是執行該命令(輸入pwd,並回車)的結果。

圖8 pwd命令
ls命令
所謂工作目錄就是我們當前工作所處的目錄。此時所有的操作都是一個該目錄為基准的。比如如果我們想查看目錄中的內容,此時可以用ls命令。ls命令是list的簡寫,用於顯示目錄中的內容,也就是某個目錄中的文件和子目錄。
我們可以在當前目錄輸入ls,並回車,此時系統會執行ls命令。此時我們可能不會得到任何輸出,具體如下:

圖9 ls命令
這是因為這個目錄中只有隱藏的文件,沒有普通文件。我們可以通過-a選項(a是all的縮寫)讓所有文件顯示出來。具體結果如下:

圖10 ls命令顯示所有文件
可以看到里面的文件和目錄了。這些文件有一個特點,就是以點(.)開頭的,因此通常是隱藏狀態的。上述文件都是系統文件,主要是一些系統配置文件。
ls命令的功能還要強大的多,比如我們想顯示每個文件的詳細信息,文件大小,所屬用戶和權限等等,那么我們可以通過-l選項(list的縮寫,表示以列表的方式呈現)。可以看到此時的執行結果就好像一個表格一樣:

圖11 ls命令顯示詳細信息
這里我們介紹了如何查看目錄和文件。那我們可以用Linux做哪些具體的工作呢?我們舉一個簡單的例子,比如我們基於Linux寫作,是的比如寫小說。此時我們就可以使用到另外一個命令,或者說工具了,那就是vi命令。
vi命令
vi命令是Linux中最常用的文件編輯工具,它跟Windows的文本編輯器類似。比如我們要開始寫小說了,小說起名為mystory.txt。此時我們輸入vi mystory.txt,然后回車。

圖12 vi命令
此時我們進入了vi軟件內了,這里沒有任何內容,只有一個光標在不停的閃爍。此時,如果你試着輸入一些內容,可能會發現沒有任何反應。如果運氣好可能會有你輸入的字符。不得不承認使用vi作為例子可能略顯復雜,因為vi有很多種模式,不是每種模式都可以輸入文字的。vi復雜到可以單獨寫一本書,不過沒關系,我們可以先簡單的操作一下。
其實在初次進入是我們只需要輸入小寫字母i(insert的縮寫)即可,此時vi進入插入模式,也就是可以編輯的模式。這是我們就可以正常輸入字符了。同時,我們可以看到最下面有一個提示內容(-- INSERT --),這表示目前vi處於插入模式,並且輸入了一些內容。

圖13 vi編輯模式
當我們寫完后如何保存推出呢?這時就需要切換到命令模式了。在當前模式下按Esc鍵就可以進入命令模式了。

圖14 vi命令模式
在命令模式下輸入:wq並回車,即可將數據寫入文件,並推出vi。如下是輸入:wq后,但是沒有回車時的狀態。此時表示該命令還沒有執行。

圖15 保存退出
按回車鍵后,vi推出。此時可以看到有一行提示信息,其中包括文件名,操作和摘要信息(行數,字符數等)。

圖16 vi保存退出
如果此時我們再執行一下ls命令,就可以看到新創建的文件。

圖17 顯示文件列表
cat命令
如何查看一個文本文件的內容呢?當然可以通過vi命令了。但是還有一個簡潔的命令,這就是cat命令。cat命令的使用很簡單,在這個命令的后面跟着文件名即可。如下是執行結果。

圖18 顯示文件內容
本文主要介紹了操作系統和文件系統的基本概念,然后介紹了目錄和文件的基本操作。通過今天的學習大家對於Ubuntu應該是一只腳邁進了門了。至於在屋子里面還有哪些東西,還請大家關注本號。