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配置文件的格式記錄安裝過程中設置的選項信息
閱讀更多 IT生涯 的文章