Linux系統安裝與登陸等基礎知識講解

1. 設備文件名

各硬件設備在Linux中的設備文件名如下,

這裡需要說明的是兩種硬盤的設備文件名確定方式:

① IDE硬盤是根據排線和跳針的連接情況確定

② SATA硬盤是根據內核檢測到的順序來命名,與實際插槽代號無關

2. Linux中磁盤使用步驟

1)磁盤的第一個扇區

A. Boot Sector構成

Boot Sector(引導扇區)通常指設備的第一個扇區(是整個磁盤的第一個扇區,需要區別於分區引導扇區),在PC上BIOS會讀取該扇區,並將控制權轉交給Boot Sector上的MBR。

Boot Sector包含3部分內容:

MBR(Master Boot Record,主引導記錄),446B,實際為bootloader的一部分

DPT(Disk Partition Table,磁盤分區表), 64B

BRID(Boot Record ID,引導記錄標識),2B,且必須是0x55AA

B. 開機流程與MBR

① 開機簡要流程

注意:BIOS是根據設置去取得能夠開機的硬盤設備,然後在該硬盤的第一個扇區的MBR位置取得引導加載程序。當然,用戶可以設置不從硬盤啟動,但與此類似。

② bootloader的功能

a. 提供菜單:可供用戶選擇不同的開機選項

b. 載入內核文件:直接指向可開機的程序區段來開始操作系統

c. 轉交其他loader:將引導加載功能交給其他loader負責

轉交其他loader的功能用於實現多重引導啟動,實現原理是Linux的引導加載程序除了可以安裝在MBR,還可以安裝在每個分區的引導扇區

需要注意的是,安裝多重引導時,應該先安裝Windows後安裝Linux,因為只有Linux可以選擇將grub安裝到分區的引導扇區

2)分區

A. 分區規定解析

每個表項佔用16B,所以DPT最多隻能容納4個分區,因此傳統磁盤上引入了擴展分區和邏輯分區的概念。

引入擴展分區的目的就是使用額外的扇區來記錄分區信息,因此擴展分區本身不能被格式化與寫入數據,只能包含邏輯分區。

Linux中對分區有如下規定:

① 主分區(Primary)最多隻有4個(磁盤的限制)

② 擴展分區(Extended)最多隻能有1個(操作系統的限制)

③ 主分區 + 擴展分區最多隻有4個

④ 邏輯分區數量依操作系統和磁盤類型而定,在Linux中,IDE硬盤最多有59個邏輯分區(5 ~ 63號),SATA硬盤最多11個邏輯分區(5 ~ 15號)

B. 分區設備文件名

① 1 ~ 4號為主分區或擴展分區

② 邏輯分區從5號開始

示例如下,

C. 必須分區與建議分區

① 必須分區

/:根分區

swap分區:交換分區,一般為內存2倍但不超過2G(如果物理內存足夠大,不分配swap分區也是可以的)

② 建議分區

/boot:啟動分區,200MB。該分區包含了grub、Linux內核鏡像、initramfs。/boot分區的關鍵是將啟動扇區所在的分區規範在小於1024個柱面以內

說明:只要設置/boot分區,就會自動被調整為sda1(即分區號為1)。因為硬盤最開始部分有和系統啟動相關的信息(e.g. 分區表)

我們最終的分區如下圖所示,

3)格式化

此處涉及的格式化是高級格式化又稱邏輯格式化,他是指根據用戶指定的文件系統(如FAT16、FAT32、NTFS、EXT2、EXT3、EXT4等)在磁盤的特定區域寫入特定的數據,在分區中劃出一片用於存放文件分配表、目錄表等用於文件系統管理的磁盤空間,同時磁盤被劃分為統一大小的數據塊(block),Linux中根據存放文件的不同分為1KB和4KB(主要是出於存儲效率的考慮,之後有介紹)

補充:所謂低級格式化則是將磁盤內容清空,恢復出廠時的狀態,劃分出柱面的磁道,一般在硬盤出廠和出現壞道時才會進行

說明:注意PC機和嵌入式設備格式化時的區別。PC機格式化時一般都是直接以分區為單位,因此文件系統的大小和分區大小匹配。嵌入式設備中一般是製作文件系統鏡像然後燒寫到分區中,因此分區大小和文件系統大小可能不匹配。

4)掛載

掛載就是利用一個目錄作為進入點,將磁盤分區的數據放置在該目錄下,進入該目錄就可以讀取該分區的數據。這也就是根目錄/ 必須掛載的原因,不然整個目錄系統的“大門”都進不去。

說明1:掛載時使用的是分區設備文件名

說明2:可以給子目錄掛載分區

雖然/home是/ 的子目錄,但可以給其單獨掛載硬盤分區。在後續的Linux內核文檔中會發現,所謂掛載,就是將一個文件系統的頂層目錄與Linux目錄樹中的一個目錄結合起來。

3. 登陸與註銷

1)運行等級

純文本界面:run level 3

圖形界面:run level 5

注:可以修改/etc/inittab確定下次啟動時的運行等級

可以使用runlevel命令查詢系統運行級別,

此處的N是指上一個運行級別,由於我們開機就是圖形界面,所以顯示為N。

說明1:可以使用init命令切換運行等級(e.g. init 3)

說明2:使用init 0也可以關機,但不會關閉正在運行的服務,所以不推薦使用

2)字符界面登陸時顯示的內容

其中前兩行的內容來自/etc/issue文件

第1行:Linux發行版本

第2行:內核版本及主機硬件等級(i686)

注:login之前的localhost為主機名

登陸後顯示內容如下:

root@localhost:登陸用戶名@主機名

#為root用戶提示符,其餘為$

3)註銷命令exit

這是一個bash內建命令,用於註銷用戶

注:離開系統不是關機,Linux本身已經有很多的工作在進行,你的登陸也僅是其中一個“工作”而已

補充:當使用字符界面登陸時,也可以用logout註銷,這也是一個bash內建命令

4. 語系設置

1) 查看當前語系

其中LANG是一個環境變量

2) 修改當前語系

① 在shell中臨時修改

本質是修改了環境變量LANG的值,由於修改語系為美國英語,此時中文顯示將是亂碼

② 修改配置文件

配置文件路徑:/etc/sysconfig/i18n

5. Linux命令執行的2種情況

1)直接顯示結果後回到命令提示符,等待下一條命令的輸入,如ls。

2)進入該命令的環境,直到結束該命令才回到命令提示符環境,如tftp和bc

6. 重要熱鍵

1)[Tab]鍵:命令/文件名補全

2)[Ctrl] + c:結束當前程序,實際上是發送SIGKILL信號給當前進程

3)[Ctrl] + d:表示End of line,即EOF;也可用於離開文字界面(包括圖像界面下的模擬終端),作用相當於exit命令

7. 出現command not found的三種原因

1)命令打錯

2)軟件沒安裝

3)這個命令所在路徑不在PATH環境變量中

8. 關機與重啟

1)正確的關機步驟

A. 查看系統狀態

who:查看哪些用戶在線

netstat -a:查看網絡連接狀態

ps -aux:查看主機進程狀態

說明:需要上述步驟是因為Linux是多用戶多任務操作系統

B. 通知在線用戶關機時刻

使用shutdown的特殊功能

C. 使用shutdown或reboot命令關機重啟

2)相關命令

A. sync

作用:將數據同步寫入磁盤

說明:shutdown/reboot/halt命令均會在關機前調用sync工具

注意:一般賬戶使用sync只能同步自己的數據,而root用戶可以同步系統中所有數據

B. shutdown

作用:慣用的關機命令,可以正確地保存正在運行的服務的狀態

說明:除了在圖像界面登陸,只有root用戶才有關機權限

常見用法:shutdown [-rhkc] 時間 [警告信息]

-h:關機

-r:重啟

-k:並不關機,只是發送警告信息

-c:取消之前的shutdown命令

時間:必須參數,可以指定具體時間,也可以用當前時間作基準指定時間間隔

示例:shutdown -h now shutdowm -h 0

shutdown -h 20:15

shutdown -h +10 #10 minutes

shutdown -k now 'system will reboot'

C. reboot,halt,poweroff

poweroff相當於直接斷電,不提倡使用

9. 幫助命令

1)man

命令名稱:man

命令英文原意:mannual

命令所在路徑:/usr/bin/man

執行權限:所有用戶

功能描述:查看幫助信息(獲得完整幫助)

語法:man [命令或配置文件]

示例:man ls

man inittab

說明1:使用man查詢配置文件時不加路徑名(如/etc/inittab),只要配置文件名即可

說明2:查詢配置文件時注意兩點:①該配置文件的用途;②該配置文件中條目的格式

說明3:man手冊可分冊查看(如man 1 passwd和man 5 passwd),各分冊含義如下,

1:shell命令(User Commands)

2:系統內核調用(System Calls)

3:C庫函數(C Library Functions)

4:設備/特殊文件,使用時直接用設備文件名,不需要路徑,如man sd(Devices and Special Files)

5:配置文件,查詢時不需要配置文件的絕對路徑,只需要配置文件名,比如man inittab

6:遊戲

7:慣例與協議,如Linux文件系統、網絡協議(如TCP/IP)等(Miscellanea,雜記)

8:系統管理員可用的管理命令,如man init

說明4:man手冊數據一般存放在/usr/share/man目錄下

2)whatis & apropos

如果不需要完整的幫助信息,只是需要簡短信息,可以使用whatis和apropos

用法:whatis/apropos 命令名稱/配置文件名

兩者的差別在於,whatis是匹配完整的文件名,而apropos是匹配字符串。可參見下面是示例,一目瞭然

注意:whatis和apropos均是查詢whatis數據庫,使用前需要使用makewhatis來生成該數據庫

3)查詢命令選項

如果只是查詢命令選項

命令 --help

4)查詢shell內置命令

命令名稱:help

命令所在路徑:shell內置命令

執行權限:所有用戶

功能描述:獲得shell內置命令的幫助信息

語法:help 命令

補充:help命令還可以查詢shell腳本中的if、while等結構性語句用法,可在編寫shell腳本時參考

10. 忘記root密碼如何處理

關鍵:進入單用戶模式進行修復

步驟:

① 在開機都秒時打斷,進入grub模式

② 點擊e,修改該命令行

修改kernel所在行,即啟動內核時傳遞的參數,在最後添加single,即啟動後進入單用戶模式

③ 進入單用戶模式使用passwd命令修改root密碼即可

注意:此處修改內核參數在下次啟動時會恢復原樣,因為系統啟動時會從/boot/grub/grub.conf中讀取啟動參數

11. 系統安裝日誌

/root/install.log:存儲了安裝在系統中的軟件包及其版本信息

/root/install.log.syslog:存儲了安裝過程中留下的事件記錄

/root/anaconda-ks.cfg:以Kickstart配置文件的格式記錄安裝過程中設置的選項信息


分享到:


相關文章: