1. 程式人生 > >linux學習文件(一)

linux學習文件(一)

很快就要去公司實習了,所以最近在惡補linux作業系統的東西。之前學校有專門的作業系統的課程,從作業系統的發展開始講起,然後講解作業系統的程序排程,記憶體管理,檔案系統等等知識。同時也有與之相匹配的作業系統課程設計實驗課,做了幾個小實驗。但現在好多linux的命令都忘光了,趁工作前的幾天重新溫習一遍。(前幾周把自己做的web專案部署到阿里雲伺服器上,阿里雲伺服器購買的是9.9元一個月的學生機,我購買了一年,伺服器系統為Ubuntu16.04,之後因為ftp服務突然失效,而重新安裝ftp服務的時候一直存在依賴問題,我把資料來源從阿里雲換成了163,折騰了一宿,最後沒辦法只能重灌系統,裝了Ubuntu14.04版本的,這樣才勉強解決了問題。心疼自己,但更加堅定了自己學習linux的決心。)

我溫習的方式主要通過看網易公開課的視訊課程為主,然後自己邊在虛擬機器上練習(為了避免不經意間把阿里雲伺服器的系統破壞掉,一朝被蛇咬,十年怕草繩)邊記筆記。

下面分享一下自己的學習筆記,希望大家一起學習,共同努力。如有不足,請指正。

1.  linux版本分為核心版本和發行版本。核心開源,有專門的團隊進行維護以及更新。而發行版本是某些公司編譯核心之後加上了某些應用程式以及技術文件,甚至註冊了商標進行有償的服務。目前流行的linux發行版本有Ubuntu,RedHat,CentOs,Debian。

2.  shell,在英語中的意思是“殼”,是使用者間接操作核心(kernel)的工具。Kernel是所有上層服務的底層實現,比如說記憶體管理,程序排程,檔案系統,網路通訊,磁碟讀寫等等。Shell包括GUI和CLI。GUI是英文Graphical User Interface的簡寫,意思是圖形化使用者介面,這也是大家比較熟悉的windows系列作業系統的主要操作方式,圖形化使用者介面主要通過點選,拖拽等方式進行操控。而CLI是Command Line Interface的簡寫,意思是命令列介面。而這是linux作業系統的精髓所在。熟練掌握各種命令,可以大幅度地提高工作效率。

3.  linux中GUI型別的shell一般為GNOME,CLI型別的shell一般為BASH。

4.  Linux命令的組成包括三部分,命令,選項以及引數。

5.  一般的命令列表:

clear:清屏,hostname:主機名字,uname:系統資訊,常用引數 –a ,–r

history :可以檢視歷史命令,ctrl+r:是在歷史命令中搜索(切記),

命令+esc+.  :可以自動填充上一命令的選項或引數(經測試如果有多個選項和引數時只能填充最後的一個),

Ctrl+c:是結束程序,ctrl+z:是暫停程序,su -  使用者名稱:可以切換賬戶,如果使用者名稱沒有寫,則預設切換到root賬戶。(su –和su的區別,前者會新建一個終端環境),sudo:是以管理員的身份進行操作。

Id:是顯示當前使用者的資訊,passwd:是修改當前使用者的密碼,命令+&:表示程序在後臺執行,jobs:檢視後臺的程序,bg+任務編號:把程式放在後臺執行,fg+任務編號:把程式放在前臺執行。

6.  檔案系統的常用命令:(linux檔案系統大小寫敏感,以.開頭的檔案是隱藏檔案

pwd:顯示當前工作目錄,touch:建立一個空檔案或者更新檔案的修改時間,

ls –a:顯示當前目錄下所有的檔案,包括隱藏檔案,ls –l:顯示詳細資訊,

ls –R:遞迴顯示當前目錄下的所有檔案以及其子目錄,ls –ld +檔名:顯示該檔案的詳細資訊,

file+檔名:檢視檔案型別,cd -:回到上一個目錄,cd ~:回到家目錄(在任意目錄直接cd都可以回到家目錄),

cp –r:遞迴複製資料夾,還可以加上引數-v,顯示覆制的進度資訊,

mv:可以重新命名或移動普通檔案和資料夾,rm: -r  遞迴刪除資料夾,-i互動,-f 強制刪除,不會提示(謹慎使用),mkdir:建立一個目錄,rmdir:只能刪除一個空目錄

7.  linux系統目錄

bin目錄:可執行的二進位制檔案目錄,也就是我們命令的實現。所有使用者都可以執行,

boot目錄:系統的引導檔案目錄,包括核心,載入程式以及各種模組驅動

dev目錄:是硬體裝置檔案的目錄,在linux中所有的硬體裝置都抽象成一個檔案,包括磁碟,顯示卡,網絡卡,音效卡等

etc:幾乎包括了所有的配置檔案,包括系統的配置檔案以及應用程式的配置檔案,

home:是所有非root使用者的家目錄,每個使用者都有對應的與其使用者名稱相對應的目錄,root使用者家目錄單獨,

lib:與庫檔案目錄,與windows中的dll檔案類似(拓展:動態連結庫英文為DLL,是Dynamic Link Library的縮寫。DLL是一個包含可由多個程式,同時使用的程式碼和資料的庫。例如,在 Windows 作業系統中,Comdlg32.dll 執行與對話方塊有關的常見函式。因此,每個程式都可以使用該 DLL 中包含的功能來實現“開啟”對話方塊。這有助於避免程式碼重用和促進記憶體的有效使用。 通過使用 DLL,程式可以實現模組化,由相對獨立的元件組成。例如,一個計帳程式可以按模組來銷售。可以在執行時將各個模組載入到主程式中(如果安裝了相應模組)。因為模組是彼此獨立的,所以程式的載入速度更快,而且模組只在相應的功能被請求時才載入。)

lost+found:與檔案系統相關

media和mnt:掛載檔案系統或者U盤等其他儲存裝置的掛載目錄,media在不同版本的linux中不一定有,而mnt一定存在。

opt:一般拿來裝大型的應用軟體,比如說oracle資料庫。

proc:儲存當前系統的實時資訊,不存在硬碟中,只存在記憶體中,

sbin:與bin類似,區別是sbin中的可執行二進位制檔案只有root使用者才能執行,一般都是一些比較危險的操作命令,比如說格式化磁碟。

sys:通常包含一些底層硬體的資訊,

tmp:臨時檔案目錄,隔一段時間會自動清理,

usr:普通的應用程式一般都安裝在這個目錄,

var:可變資料檔案的目錄,比如說系統日誌,收發郵件

之後還會更新linux系列的其他文章。敬請期待。