作為乙個程式設計師來說,linux的熟練操作是很有必要的。而且作業系統作為程式之本,所以學習作業系統對於更深入地理解程式很有幫助。雖然自己也會linux系統的一些基本操作,但自認為遠遠不夠,所以準備進行一次全面地梳理和學習,並把學習筆記整理下來,希望能幫助到讀者。
早期的計算機是沒有作業系統的,人們將組合語言編寫的程式內置於計算機,這樣操作起來是很不方便的。隨著大規模積體電路的發展,70年代中期出現了第一代作業系統(cp/m作業系統,8位),主要功能是對檔案資訊進行管理,以實現硬碟檔案或其他裝置檔案的自動訪問。繼cp/m後,又出現了dos(磁碟作業系統)。第一階段的作業系統特點為:單使用者,但任務,字元介面。當今很多計算機都內建了dos作業系統。
隨著計算機軟硬體技術的發展,先前的作業系統或許已經滿足不了人們的需要,作業系統的發展出現了新的高潮,以多使用者多工的作業系統相繼出現,作業系統的發展進入第二階段。典型代表有unix、xenix、os/2以及windows作業系統。分時的多使用者、多工、樹形結構的檔案系統以及重定向和管道是unix的三大特點。而windows系統的產生,使作業系統真正進入圖形介面時代。
隨著大型機和嵌入式技術的發展,作業系統出現多樣化。在伺服器方面,linux,unix,windowsserver佔主要市場份額;超級計算機方面,linux排名第一;嵌入式方面,有安卓,ios。
作業系統的主要功能是資源管理,程式控制
和人機互動
等。計算機系統的資源可分為裝置資源和資訊資源兩大類。裝置資源指的是組成計算機的硬體裝置,如
**處理器
,主儲存器,
磁碟儲存器
,印表機,磁帶儲存器,顯示器,鍵盤輸入裝置和滑鼠等。資訊資源指的是存放於計算機內的各種資料,如檔案,程式庫,知識庫,系統軟體和應用軟體等。主要功能可總結為:
程序管理(processing management)
記憶體管理(memory management)
檔案系統(file system)
安全機制(security)
使用者介面(user inte***ce)
驅動程式(device drivers)
linux是一款基於posix和unix
的開源的多使用者、多工
、支援多執行緒
和多cpu的作業系統。它能執行主要的unix工具軟體、應用程式和網路協議。它支援32位和64位
硬體。隨著linux的發展,已出現像redhat ,centos,ubuntu的等多種發行版。linux有兩個基本思想:一切皆為檔案;每個軟體都有確定的用途。
linux系統全由檔案組成,因此構成了乙個強大的檔案系統。
linux檔案型別主要有:
普通檔案(regular file):就是一般訪問的檔案,由ls -al顯示出來的屬性中,第乙個屬性為 [-],例如 [-rwxrwxrwx]。另外,
依照檔案的內容,又大致可以分為:
1、純文字檔案(ascii):這是unix系統中最多的一種檔案型別,之所以稱為純文字檔案,是因為內容可以直接讀到的資料,
例如數字、字母等等。設 置檔案幾乎都屬於這種檔案型別。舉例來說,使用命令「cat ~/.bashrc」就可以看到該檔案的內容
(cat是將檔案內容讀出來)。
2、二進位制檔案(binary):系統其實僅認識且可以執行二進位制檔案(binary file)。linux中的可執行檔案(指令碼,文字
方式 的批處理檔案不算)就是這種格式的。舉例來說,命令cat就是乙個二進位制檔案。
3、資料格式的檔案(data):有些程式在執行過程中,會讀取某些特定格式的檔案,那些特定格式的檔案可以稱為資料
檔案 (data file)。舉例來說,linux在使用者登入時,都會將登入資料記錄在 /var/log/wtmp檔案內,該檔案是乙個資料檔案, 它
能通過last命令讀出來。但使用cat時,會讀出亂碼。因為它是屬於一種特殊格式的檔案。
目錄檔案(directory):就是目錄,第乙個屬性為 [d],例如 [drwxrwxrwx]。
連線檔案(link):類似windows下面的快捷方式。第乙個屬性為 [l],例如 [lrwxrwxrwx]。
裝置與裝置檔案(device):與系統外設及儲存等相關的一些檔案,通常都集中在 /dev目錄。通常又分為兩種:
塊裝置檔案:就是儲存資料以供系統訪問的介面裝置,簡單而言就是硬碟。例如一號硬碟的**是 /dev/hda1等檔案。第
乙個 屬性為 [b]。
字元裝置檔案:即串列埠的介面裝置,例如鍵盤、滑鼠等等。第乙個屬性為 [c]。
套接字(sockets):這類檔案通常用在網路連線連線。可以啟動乙個程式來監聽客戶端的要求,客戶端就可以通過套接字
來進 行資料通訊。第乙個屬性為 [s],最常在 /var/run目錄中看到這種檔案型別。
管道(fifo,pipe):fifo也是一種特殊的檔案型別,它主要的目的是,解決多個程式同時訪問乙個檔案所造成的錯誤。
fifo
是first-in-first-out(先進先出)的縮寫。第乙個屬性為 [p]。
/:根目錄,所有的目錄、檔案、裝置都在/之下,/就是linux檔案系統的組織者,也是最上級的領導者。
/bin:bin 就是二進位制(binary)英文縮寫。在一般的系統當中,都可以在這個目錄下找到linux常用的命令。系統所需要 的那
些命令位於此目錄。
/boot:linux的核心及引導系統程式所需要的檔案目錄,比如 vmlinuz initrd.img 檔案都位於這個目錄中。在一般情況 下,
grub或lilo
系統引導管理器也位於這個目錄。
/cdrom:這個目錄在剛剛安裝系統的時候是空的。可以將光碟機檔案系統掛在這個目錄下。例如:
mount /dev/cdrom /
cdrom
/dev:dev 是裝置(device的英文縮寫。這個目錄對所有的使用者都十分重要。因為在這個目錄中包含了所有linux系統中
使用的外部裝置。但是這裡並不是放的外部裝置的驅動程式。這一點和常用的windows,dos作業系統不一樣。它實際上是乙個
訪問這些外部裝置的埠。可以非常方便地去訪問這些外部裝置,和訪問乙個檔案,乙個目錄沒有任何區別。
/etc:etc這個目錄是linux系統中最重要的目錄之一。在這個目錄下存放了系統管理時要用到的各種配置檔案和子目錄。
要用到的網路配置檔案,檔案系統,x系統配置檔案,裝置配置資訊,設定使用者資訊等都在這個目錄下。
/home:如果建立乙個使用者,使用者名稱是"xx",那麼在/home目錄下就有乙個對應的/home/xx路徑,用來存放使用者的主目錄。
/lib:lib是庫(library)英文縮寫。這個目錄是用來存放系統動態連線共享庫的。幾乎所有的應用程式都會用到這個目錄
下的共享庫。因此,千萬不要輕易對這個目錄進行什麼操作,一旦發生問題,系統就不能工作了。
/lost+found:在ext2或ext3檔案系統中,當系統意外崩潰或機器意外關機,而產生一些檔案碎片放在這裡。當系統啟動
的過程中fsck工具會檢查這裡,並修復已經損壞的檔案系統。有時系統發生問題,有很多的檔案被移到這個目錄中,可能會用手
工的方式來修復,或移到檔案到原來的位置上。
/mnt:這個目錄一般是用於存放掛載儲存裝置的掛載目錄的,比如有cdrom等目錄。可以參看/etc/fstab的定義。
/media:有些linux的發行版使用這個目錄來掛載那些usb介面的行動硬碟(包括u盤)、cd/***驅動器等等。
/opt:這裡主要存放那些可選的程式。
/proc:可以在這個目錄下獲取系統資訊。這些資訊是在記憶體中,由系統自己產生的。
/root:linux超級許可權使用者root的家目錄。
/sbin:這個目錄是用來存放系統管理員的系統管理程式。大多是涉及系統管理的命令的存放,是超級許可權使用者root的可執 行命
令存放地,普通使用者無許可權執行這個目錄下的命令,這個目錄和/usr/sbin; /usr/x11r6/sbin或/usr/local/sbin目錄是相似
的,凡是目錄sbin中包含的都是root許可權才能執行的。
/selinux :對selinux的一些配置檔案目錄,selinux可以讓linux更加安全。
/srv 服務啟動後,所需訪問的資料目錄,舉個例子來說,www服務啟動讀取的網頁資料就可以放在/srv/www中
/tmp:臨時檔案目錄,用來存放不同程式執行時產生的臨時檔案。有時使用者執行程式的時候,會產生臨時檔案。/tmp就
用來存放臨時檔案的。/var/tmp目錄和這個目錄相似。
/usr:
這是linux系統中占用硬碟空間最大的目錄。使用者的很多應用程式和檔案都存放在這個目錄下。在這個目錄下,可以
找到那些不
適合放在/bin或/etc目錄下的額外的工具
/usr/local:這裡主要存放那些手動安裝的軟體,即不是通過「新立得」或apt-get安裝的軟體。它和/usr目錄具有相類似 的目
錄結構。讓軟體包管理器來管理/usr目錄,而把自定義的指令碼(scripts)放到/usr/local目錄下面、。
/usr/share :系統共用的東西存放地,比如 /usr/share/fonts 是字型目錄,/usr/share/doc和/usr/share/man幫助檔案
。 /var:這個目錄的內容是經常變動的,看名字就知道,可以理解為vary的縮寫,/var下有/var/log 這是用來存放系統日誌 的目
錄。/var/ www目錄是定義apache
伺服器站點存放目錄;/var/lib 用來存放一些庫檔案,比如mysql的,以及mysql數
據庫的的存放地。
四.不得不學的linux常用命令
學習筆記 Linux學習
echo i am whoami 反引號裡的內容會被當做命令執行 echo the cpu in my pc has cat proc cpuinfo grep c processor cores 等價於反引號 a 10 定義乙個變數,等號兩邊不能有空格 echo a的值為 a a的值為10 ech...
linux學習筆記
開機流程簡介 1 載入 bios 的硬體資訊,並取得第乙個開機裝置的代號 2 讀取第乙個開機裝置的 mbr 的 boot loader 亦即是 lilo,grub,spfdisk 等等 的開機資訊 3 載入 kernel 作業系統核心資訊,kernel 開始解壓縮,並且嘗試驅動所有硬體裝置 4 ke...
Linux 學習筆記
配置 telnet 服務 vi etc hosts.deny 在all all 行前加 號注釋,登出該行。新增一行all all 用 登出disable yes,或者修改為 disble no vi etc pam.d login 在auth required lib security pam se...