我的Linux學習筆記·Linux操作系統基礎

今天的筆記主要是關于Linux操作系統根底的相關學問。那就從我面前的電腦開端講起。

計算機和操作系統

計算機主要包括五個部分:運算器,控制器,存儲器,輸入設備和輸出設備。通常,運算器,控制器再加上其他一些部件如寄存器等構成了我們通常所說的CPU(central processing unit)存儲器則主要是內存。運算器,控制器和存儲器可以實現數據的處理.

但是數據從何而來,運算之后的結果去往哪里?

這就需要輸入設備和輸出設備(I/O設備)。我們通常用到的輸入設備包括鍵盤鼠標等,輸出設備為屏幕,打印機等。值得一提的是,計算機中有個叫做硬盤的東西,它并不是存儲器,而是一個I/O設備。在將數據讀取到內存時,它是一個輸入設備;而將結果保存到磁盤時,它就變成了一個輸出設備。

我的Linux學習筆記·Linux操作系統基礎

這么多設備整合在一起,就成了一臺計算機。它可以接收我們的指令(鍵盤鼠標),通過運算(CPU),把結果展示給我們(屏幕,硬盤等)。

但是這么多硬件是如何協調作用,共同完成一個任務而不會我行我素地亂來呢?我們需要一個東西,它可以控制硬件有序地工作,各自執行自己的任務,這個東西就是操作系統(Operating System)。

操作系統是一個特殊的軟件,它的任務就是硬件管理—控制CPU的運算,控制內存的分配,控制計算機的幾乎一切。假如一臺電腦沒有操作系統,它可能只是一個藝術品,或者一堆廢鐵。

一個完整的操作系統包括內核和一些輔助軟件。

內核的主要任務就是進行硬件管理,它是一個操作系統最基礎最底層的東西。內核若想很好地控制硬件并使其發揮相應的功能,需要和硬件相識相知相愛,他倆可以成為完美的一對,全都仰仗于驅動的幫忙。驅動是硬件的靈魂,它向操作系統提供了訪問和使用硬件的接口,以便在某項任務中最高效地調用硬件。

什么是Linux

Linux就是一個操作系統,它可以管理整個計算機硬件,并且可以接收我們的指令,來指揮硬件完成相應的任務,并把結果反饋給我們。Linux是由Linus Torvalds在1991年開發的,它穩定性高,配置要求低,而且免費。不同的發行商使用linux內核,對其進行軟件和管理工具的封裝,形成了不同的Linux發行版。不同發行版之間的差別并不是太大,根據發行商的不同,各種linux發行版也被分為多個系列:如紅帽系列的RedHat, CentOs, Fedora; Debian系列的Ubuntu, Mint以及Suse系列等。

我的Linux學習筆記·Linux操作系統基礎

Shell:用戶與內核之間的中介

操作系統除了要與硬件打交道,還要和我們人類打交道,畢竟電腦是為人民服務。而我們與系統之間的交互,仰仗于一個重要的軟件—Shell。

Shell是用戶與內核之間的中介,我們可以把它當作一個命令解釋器,我們輸入某些命令,shell將它解釋成內核可以理解的語言,從而使內核執行后續的相關操作。

Shell可以分為圖形界面shell(GraphicalUser Interface,GUI)和命令行shell(Command Line Interface,GLI)。我們常用的windows操作系統所用的WindowsExplorer就是圖形界面的shell,而在linux中流行的bash則是命令行shell。當然,linux中也有圖形界面的shell,如x-window等。后面我們會慢慢講到Shell(bash)的一些特性。

我的Linux學習筆記·Linux操作系統基礎

Linux的根文件系統

Linux的基本哲學之一:“一切皆文件”。

不管是普通的文件,目錄還是設備,在linux中都被當作文件并對其進行操作。而linux對這些文件進行管理則主要依賴于它的根文件系統(root file system)。

Linux下的每一個文件都必須處于根文件系統下的某一路徑,最底層的路徑為root,我們用/來表示。/下可以延伸出其他路徑,這個路徑下可以有文件或者目錄(目錄也是一種特殊的文件)。Linux系統的一切都處于/下,為了方便的大家的管理和使用,Filesystem Hierarchy Standard (文件系統層次標準,FHS)應運而生。簡單地講,FHS定義了根下的某個特定目錄必須放置特定類型文件,而不能隨意更改。比如/boot下只能放置系統啟動相關的文件,/etc下是系統主要的配置文件,而任何設備文件都在/dev目錄下。

我們使用tree命令可以顯示/目錄下的各個子目錄,以及子目錄下的內容。比如我們進入到根目錄,看看這個目錄下有哪個寫子目錄,可以使用

Tree –L 1;

我的Linux學習筆記·Linux操作系統基礎

我們會發現,根目錄下有多個子目錄,而這些子目錄的名字以及目錄下的文件都是被定義好的,下面是FHS系統的詳細說明

/boot:系統啟動相關文件,如內核、initrd,以及grub(bootloader)

/dev:設備文件。Linux下一切皆文件,設備也是以文件的形式存在于這個目錄中,里面存放有如/dev/hd*,/dev/sd*等設備文件。

/etc:配置文件。如用戶的賬號文件/etc/passwd,密碼文件:/etc/shadow等都存放在這個目錄中。

/home:用戶的家目錄。用戶登陸后默認處于自己的家目錄中,常用~代表當前用戶的家目錄。

/root:管理員的家目錄

/lib:庫文件,主要放置開機時會用到的庫。庫文件可以分為靜態庫(*.a)和動態庫(*.so)。庫文件不能單獨執行,只能被調用

/media:掛載點目錄,通常用于掛載移動設備

/mnt:額外的臨時文件系統,如光盤

/opt:可選目錄,早期為第三方程序安裝目錄

/proc:偽文件系統,內核映射文件,為內核工作的統計數據等

只有內核運行時才有文件,關機下為空的

/sys:偽文件系統,跟硬件設備相關的屬性映射文件

/tmp:臨時文件

/var:可變化文件

/bin:binary,可執行文件,用戶命令

/sbin:管理命令

/usr:universal shared read-only,全局共享只讀文件

/usr/bin

/usr/sbin

usr下的bin和sbin是與系統提供某些功能相關的命令

根目錄下的bin和sbin是和系統啟動相關的命令

更詳細的信息大家可以參照:

通過上面我們了解了什么是linux系統以及它的根文件系統,基本都是一些理論知識,但是個人覺得了解這些知識還是挺有必要的。后面,如果我們要想真正開始使用linux系統,首先還要學會一些基本的命令,如:

目錄管理命令:mkdir, rmdir

文件管理命令:touch, rm, cp,mv

文本查看命令:cat, tac,more, less, head, tail

文本處理命令:cut, sort,uniq, wc, tr

以及一些其他常用命令如ls, cd,alias, history等。詳細的運用能夠參考我們之前的一些生信入門文章或者網上搜一下。

 

馬哥學習交流群

馬哥教育-Linux學習-1群 485374463

馬哥教育-Linux學習-2群 339184057

?

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code
云南快乐10分开奖直播