前端linux基礎,這一篇就夠了

1. Linux安裝

由於圖太多了,轉載一篇從虛擬機vmware配置到centos7詳細安裝教程

https://www.cnblogs.com/wcwen1990/p/7630545.html
html

2.linux經常使用命令

2.1 常見目錄

/binnode

存放二進制可執行文件(ls,cat,mkdir等),經常使用命令通常都在這裏。linux

/etcnginx

存放系統管理和配置文件正則表達式

/homeshell

存放全部用戶文件的根目錄,是用戶主目錄的基點,好比用戶user的主目錄就是/home/user,能夠用~user表示數據庫

/usr編程

用於存放系統應用程序,比較重要的目錄/usr/local 本地系統管理員軟件安裝目錄(安裝系統級的應用)。這是最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。vim

/usr/x11r6 存放x window的目錄windows

/usr/bin 衆多的應用程序

/usr/sbin 超級用戶的一些管理程序

/usr/doc linux文檔

/usr/include linux下開發和編譯應用程序所須要的頭文件

/usr/lib 經常使用的動態連接庫和軟件包的配置文件

/usr/man 幫助文檔

/usr/src 源代碼,linux內核的源代碼就放在/usr/src/linux裏

/usr/local/bin 本地增長的命令

/usr/local/lib 本地增長的庫

/opt

額外安裝的可選應用程序包所放置的位置。通常狀況下,咱們能夠把tomcat等都安裝到這裏。

/proc

虛擬文件系統目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信息。

/root

超級用戶(系統管理員)的主目錄(特權階級^o^)

/sbin

存放二進制可執行文件,只有root才能訪問。這裏存放的是系統管理員使用的系統級別的管理命令和程序。如ifconfig等。

/dev

用於存放設備文件。

/mnt

系統管理員安裝臨時文件系統的安裝點,系統提供這個目錄是讓用戶臨時掛載其餘的文件系統。

/boot

存放用於系統引導時使用的各類文件

/lib

存放跟文件系統中的程序運行所須要的共享庫及內核模塊。共享庫又叫動態連接共享庫,做用相似windows裏的.dll文件,存放了根文件系統程序運行所需的共享文件。

/tmp

用於存放各類臨時文件,是公用的臨時文件存儲點。

/var

用於存放運行時須要改變數據的文件,也是某些大文件的溢出區,比方說各類服務的日誌文件(系統啓動日誌等。)等。

/lost+found

這個目錄平時是空的,系統非正常關機而留下「無家可歸」的文件(windows下叫什麼.chk)就在這裏

2.2 命令基本格式

2.2.1 命令提示符

[root@xiaoming ~]#
複製代碼
  • root 當前登陸用戶
  • localhost 主機名
  • ~ 當前工做目錄,默認是當前用戶的家目錄,root就是/root,普通用戶是 /home/用戶名
  • 提示符 超級用戶是 #,普通用戶是$

2.2.2 命令格式

  • 命令 [選項] [參數]
  • 當有多個選項時,能夠寫在一塊兒
  • 通常參數有簡化和完整寫法兩種 -a--all等效

2.2.3 ls

  • 查詢目錄中的內容
  • ls [選項] [文件或者目錄]
  • 選項
    • -a 顯示全部文件,包括隱藏文件
    • -l 顯示詳細信息
    • -d 查看目錄自己的屬性而非子文件 ls /etc/
    • -h 人性化的方式顯示文件大小
    • -i 顯示inode,也就是i節點,每一個節點都有ID號
  • 默認當前目錄下的文件列表
 -l

顯示詳細信息

drwxr-xr-x .  1 root  root   800 Sep 16 00:19 logs
複製代碼
drwxr-xr-x . 1 root root 800 Sep 16 00:19 logs
文件類型和權限 ACL權限 硬連接引用計數 全部者 所屬組 文件大小 最後修改時間 文件名
 文件類型和權限
-rw-r--r--
複製代碼
  • 文件類型 - 文件、d 目錄、l 軟連接文件
  • u(全部者)、g(所屬組)、o(其餘人)
  • r(read) 讀取、w(write) 寫入、x(execute) 執行

2.3 文件處理命令

2.3.1 mkdir

  • 創建目錄 make directory
  • mkdir -p [目錄名]
    • -p 遞歸建立

2.3.2 cd

  • 切換所在目錄 change directory
  • cd [目錄]
    • ~ 家目錄
    • 家目錄
      • 上次目錄
    • . 當前目錄
    • .. 上級目錄
  • 相對路徑是參照當前所在目錄
  • 絕對路徑是從根目錄開始
  • 按TAB鍵能夠補全命令和目錄

2.3.3 pwd

  • 顯示當前目錄 pwd

2.3.4 rmdir

  • 刪除目錄 remove empty directory
  • rmdir [目錄名]

2.3.5 rm

  • 刪除文件或者目錄 remove
  • rm [文件或者目錄]
    • -r 刪除目錄
    • -f 強制刪除
  • rm -rf 文件或者目錄] 遞歸強制刪除全部目錄

2.3.6 cp

  • copy 複製命令
  • copy [源文件或者目錄] [目標文件]
    • -r 複製目錄,默認是複製文件
    • -p 連帶文件屬性複製
    • -d 若源文件是連接文件,則複製鏈接屬性
    • -a 至關於 -rpd

2.3.7 mv

  • 移動文件或者更名 move
  • mv [源文件或者目錄] [目標文件]

2.3.8 ln

  • 連接命令,生成連接文件 link
2.3.8.1 硬連接特徵
  • 擁有相同的i節點和存儲block塊,能夠看做是同一個文件
  • 能夠經過i節點訪問
  • 不能跨分區
  • 不能針對目錄使用
  • 通常不使用
2.3.8.2 軟連接特徵
  • ln -s [源文件] [目標文件]
    • -s 建立軟連接
  • 相似Windows快捷方式
  • 軟連接擁有本身的i節點和Block塊,可是數據塊中只保存源文件的文件名和i節點號,並無實際的文件數據
  • lrwxrwxrwx l 軟連接 軟連接的文件權限都是 777
  • 修改任意一個文件,另外一個都會改變
  • 刪除源文件,軟連接不能使用
  • 軟連接源文件必須寫絕對路徑

2.4 文件搜索命令

2.4.1 locate

  • 在後臺數據庫中按文件名搜索,速度比較快
  • 數據保存在/var/lib/mlocate後臺數據庫,天天更新一次
  • 能夠updatedb命令馬上更新數據庫
  • 只能搜索文件名
  • /etc/updatedb.conf 創建索引的配置文件
    • PRUNE_BIND_MOUNTS = "yes" 所有生效,開啓搜索限制
    • PRUNEFS 不搜索的文件系統
    • PRUNENAMES 忽略的文件類型
    • PRUNEPATHS 忽略的路徑 /tmp

2.4.2 whereis

  • 搜索命令所在路徑以及幫助文檔所在位置
  • whereis 命令名 whereis ls
    • -b 只查找可執行文件
    • -m 只查找幫助文件

2.4.3 which

  • 能夠看到別名 which ls
  • 能看到的都是外部安裝的命令
  • 沒法查看Shell自帶的命令,如 which cd

2.4.4 環境變量

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

  • 定義的是系統搜索命令的路徑
  • echo $PATH

2.4.5 find

  • 文件搜索命令
  • find [搜索範圍] [搜索條件]
2.4.5.1 按名稱搜索
  • 避免大範圍的搜索,會很是消耗系統資源
    find / -name aaa.log
    複製代碼
2.4.5.2 通配符
  • find是在系統當中搜索符合條件的文件名,若是須要匹配,使用通配符匹配,通配符是徹底匹配
  • 通配符
    • * 匹配任意內容
    • ? 匹配任意一個字符
    • [] 匹配任意一箇中括號內的字符
find . -name "ab[cdef]"
複製代碼
2.4.5.3 -i

不區分大小寫

find / -iname A.log
複製代碼
2.4.5.4 -user

按全部者進行搜索

find /root -user root
find /root -nouser
複製代碼
2.4.5.5 按時間搜索
find /nginx/access.log -mtime +5
複製代碼
參數 含義
atime 文件訪問時間
ctime 改變文件屬性
mtime 修改文件內容
參數 含義
-5 5天內修改的文件
5 5天前當前修改的文件
+5 5天前修改的文件
2.4.5.6 按大小搜索
  • k小寫,M大寫
find . -size 100k
複製代碼
參數 含義
-8k 小於8K
8k 等於8K
+8k 大於8K
+8M 小於8M
2.4.5.7 按i節點搜索
find . -inum 123456
複製代碼
2.4.5.8 綜合應用
find /tmp -size +10k -a -size -20k
複製代碼
  • 查找/etc目錄下,大於10KB而且小於20KB的文件
  • -a and 邏輯與,兩個條件都知足
  • -o or 邏輯或,兩個條件知足一個就能夠
find /tmp -size +10k -a -size -20k -exec ls -lh {} \;
複製代碼
  • exec 對上個命令的結果進行操做
2.4.5.9 grep
  • 在文件當中匹配符合條件的字符串
  • grep "10" access.log
    • -i 忽略大小寫
    • -v 排除指定字符串
  • find命令,在系統當中搜索符合條件的文件名,若是須要匹配,使用通配符匹配,通配符是徹底匹配
  • grep命令 在文件當中搜索符合條件的字符串,若是須要匹配,使用正則表達式進行匹配,正則表達式時包含匹配

2.5 幫助命令

2.5.1 基本用法

  • man 命令 獲取指定命令的幫助
  • man ls 查看ls的幫助
man -f ls
whatis ls
man 1 ls
man 1p ls
複製代碼

2.5.2 關鍵字搜索

- man -k passwd
複製代碼

2.5.3 shell 內部幫助

  • whereis找到就是外部,找不到就是內部
    help cd
    複製代碼

2.6 壓縮與解壓縮命令

.zip .gz .bz2 .tar.gz .tar.bz2

2.6.1 zip格式

  • 壓縮文件 zip 壓縮文件名 源文件
  • 壓縮目錄 zip -r 壓縮文件名 源目錄
  • 解壓 unzip 壓縮文件名
    mkdir book
    touch book/1.txt
    touch book/2.txt
    zip -r book.zip book
    unzip book.zip
    複製代碼

2.6.2 gzip

命令 示例 含義
gzip 源文件 gzip a.txt 壓縮爲.gz格式的壓縮文件,源文件會消失
gzip -c 源文件 > 壓縮文件 gzip -c yum.txt > yum.txt.gz 壓縮爲.gz格式的壓縮文件,源文件不會消失
gzip -r 目錄 gzip -r xx 壓縮目錄下的全部子文件,可是不壓縮目錄
gzip -d 壓縮文件名 gzip -d yum.txt.gz 解壓縮文件,不保留壓縮包
gunzip 壓縮文件 gunzip yum.txt.gz 解壓縮文件,不保留壓縮包
  • 壓縮是壓縮目錄下的文件

2.6.3 .bz2格式壓縮

命令 示例 含義
bzip2 源文件 bzip2 1.txt 壓縮爲.bz2格式的文件,不保留源文件
bzip2 -k 源文件 zip2 -k 1.txt 壓縮爲.bz2格式的文件,保留源文件
bzip2 -d 壓縮文件名 bzip2 -d 1.txt.bz2 解壓壓縮包
bunzip2 壓縮文件名 bunzip2 1.txt.bz2 解壓壓縮包
  • bzip2 不能壓縮目錄

2.6.4 tar

  • 打包命令
  • tar -cvf 打包文件名 源文件
    • -c 打包
    • -v 顯示過程
    • -f 指定打包後的文件名
tar -cvf book.tar book
gzip book.tar
bzip2 book.tar
複製代碼
  • x 解打包
    tar -xvf book.tar
    複製代碼

2.6.4 壓縮格式

壓縮

tar –cvf jpg.tar *.jpg //將目錄裏全部jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg //將目錄裏全部jpg文件打包成jpg.tar後,而且將其用gzip壓縮,生成一個gzip壓縮過的包,命名爲jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //將目錄裏全部jpg文件打包成jpg.tar後,而且將其用bzip2壓縮,生成一個bzip2壓縮過的包,命名爲jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg //將目錄裏全部jpg文件打包成jpg.tar後,而且將其用compress壓縮,生成一個umcompress壓縮過的包,命名爲jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的壓縮,須要先下載rar for linux
zip jpg.zip *.jpg //zip格式的壓縮,須要先下載zip for linux

解壓

tar –xvf file.tar //解壓 tar包
tar -xzvf file.tar.gz //解壓tar.gz
tar -xjvf file.tar.bz2 //解壓 tar.bz2
tar –xZvf file.tar.Z //解壓tar.Z
unrar e file.rar //解壓rar
unzip file.zip //解壓zip 

2.7 關機和重啓命令

2.7.1 shutdown

shutdown 關機命令

  • -c 取消前一個關機命令
  • -h 關機
  • -r 重啓
    shutdown -r 06:00
    shutdown -c
    複製代碼

2.7.2 init

關機

init 0
複製代碼

重啓

init 6
複製代碼

系統的運行級別

  • 0 關機
  • 1 但用戶
  • 2 不 徹底多用戶,不包含NFS服務
  • 3 徹底多用戶
  • 4 未分配
  • 5 圖形界面
  • 6 重啓

2.7.3 logout

退出登陸

logout複製代碼

2.9 查看登陸用戶信息

2.9.1 w

查看登陸用戶信息

  • USER 登陸的用戶名
  • TTY 登陸的終端 tty1 本地終端 pts/0遠程終端
  • FROM 登陸的IP
  • LOGIN 登陸時間
  • IDLE 用戶閒置時間
  • JCPU 該終端全部進程佔用的時間
  • PCPU 當前進程所佔用的時間
  • WHAT 正在執行的命令

2.9.2 who

查看登陸用戶信息

  • USER 登陸的用戶名
  • TTY 登陸的終端 tty1 本地終端 pts/0遠程終端
  • LOGIN 登陸時間(登陸的IP)

2.9.3 last

查看當前登陸和過去登陸的用戶信息 默認讀取 /var/log/wtmp 文件

  • 用戶名
  • 登陸終端
  • 登陸IP
  • 登陸時間
  • 退出時間(在線時間)

2.9.4 lastlog

查看全部用戶的最後一次登陸時間

  • 用戶名
  • 登陸終端
  • 登陸IP
  • 最後一次登陸時間

3. shell

  • shell是一個命令行解釋器,它爲用戶提供了一個向Linux內核發送請求以便運行程序的界面系統級程序
  • 用戶能夠用Shell來啓動、掛起、中止或者編寫一些程序
  • Shell仍是一個功能至關強大的編程語言,易編寫,易調試,靈活性較強。
  • Shell是解釋執行的腳本語言,在Shell中能夠直接調用Linux系統命令。

3.1 查看支持的shell

  • /etc/shells

3.2 echo

  • 輸出命令
  • --e 支持反斜線控制的字符轉換
控制字符 做用
\a 輸出警告音
\b 退格鍵,也就是向左刪除鍵
\n 換行符
\r 回車鍵
\t 製表符,也就是Tab鍵
\v 垂直製表符
\onnn 按照八進制ASCII碼錶輸出字符,其中0爲數字零,nnn是三位八進制數
\xhh 按照十六進制ASCII碼錶輸出字符,其中hh是兩位十六進制數

3.3 編寫執行shell

#!/bin/bash
echo -e "\e[1;34m hello world \e[0m"
複製代碼

賦予執行權限,直接運行

chmod 755 hello.sh
./hello.sh
複製代碼

經過Bash調用執行腳本

bash hello.sh
複製代碼

3.4 別名

  • 命令別名 == 小名
  • 臨時生效
  • alias
  • alias rm="rm -i"
  • 寫入環境變量配置文件 vi ~/.bashrc
  • source ~/.bashrc
  • unalias 別名 刪除別名

3.5 命令的生效順序

  • 絕對路徑或者相對路徑
  • 別名
  • bash內部命令
  • 按照$PATH環境變量定義的目錄查找順序找到的第一個命令

3.6 命令快捷鍵

命令 含義
ctrl+c 強制終止當前命令
ctrl+l 清屏
ctrl+a 光標移動到命令行首
ctrl+e 光標移動到命令行尾
ctrl+u 從光標所在的位置刪除到行首
ctrl+z 把命令放入後臺
ctrl+r 在歷史命令中搜索

3.7 歷史命令

  • history [選項] [歷史命令保存文件]
  • 選項
    • -c 清空歷史命令
    • -w 把緩存中的歷史命令寫入歷史命令保存文件 ~/.bash_history
  • 默認保存1000條 /etc/profile HISSIZE=10000

3.8 調用

  • 使用上下箭頭調用之前的歷史命令
  • 使用 !n 重複執行第n條歷史命令
  • 使用 !! 重複執行上一條命令
  • 使用 !字符 重複執行最後一條以該字符串開頭的命令

3.9 管道符號

3.9.1 多命令順序執行

(1) ; 分號,沒有任何邏輯關係的鏈接符。當多個命令用分號鏈接時,各命令之間的執行成功與否彼此沒有任何影響,都會一條一條執行下去。

(2) || 邏輯或,當用此鏈接符鏈接多個命令時,前面的命令執行成功,則後面的命令不會執行。前面的命令執行失敗,後面的命令纔會執行。

(3) && 邏輯與,當用此鏈接符鏈接多個命令時,前面的命令執行成功,纔會執行後面的命令,前面的命令執行失敗,後面的命令不會執行,與 || 正好相反。

(4) | 管道符,當用此鏈接符鏈接多個命令時,前面命令執行的正確輸出,會交給後面的命令繼續處理。若前面的命令執行失敗,則會報錯,若後面的命令沒法處理前面命令的輸出,也會報錯。

- date;ls;date;ls
- ls && echo yes || echo no
複製代碼

3.9.2 管道符號

  • 命令1的正確輸出會做爲命令2的操做對象
  • 命令1|命令2
    ls /etc/ | more
    netstat -an | grep ESTABLISHED | wc -l
    複製代碼

3.9.3 通配符

匹配文件名和目錄名 |通配符|做用| |:----|:----| |?|匹配一個任意字符| |*|匹配0個或任意字符,也就是能夠匹配任意內容| |[]|匹配中括號中任意一個字符| |[-]|匹配中括號中任意一個字符,-表明範圍| |[^]|匹配不是中括號中的一個字符|

3.9.4 其它符號

符號 做用
'' 單引號。在單引號中全部的特殊符號,如$和`都沒有特殊含義
"" 雙引號,在雙引號裏特殊符號都沒有特殊含義,可是 $ ` \ 例外,擁有調用變量值,引用命令和轉義的含義
反引號,擴起來的是系統命令
$() 和反引號同樣
# 在shell腳本中,#開頭的行表明註釋
$ 用於調用變量的值
\ 轉義符號
-  a=`ls`
-  b=$(ls)
複製代碼

4. vi編輯器

  • VI visual interface
  • 可視化接口
  • 相似與windows中的記事本
  • vim支持多級撤銷
  • 跨平臺
  • 語法高亮
  • 支持圖形界面

4.1 操做模式

  • :w 保存
  • :q 退出
  • :! 強制保存
  • :ls 列出全部的文件
  • :n 下一個
  • :N 上一個
  • :15 跳轉到指定行
  • /xxx 從光標位置開始向後搜索 xxx 字符串
  • ?xxx 從光標位置開始向前搜索

5. 用戶和用戶組

  • 使用操做系統的人都是用戶
  • 用戶組是具備相同系統權限的一組用戶

5.1 用戶組

5.1.1 /etc/group

  • /etc/group 存儲當前系統中全部用戶組信息
  • group:x:123:abc,def
  • 組名稱:組密碼佔位符:組編號:組中用戶名列表
  • root 組編號爲0
  • 1-499系統預留的編號 預留給安裝的軟件和服務的
  • 用戶手動建立的用戶組從500開始
  • 組密碼佔位符都是x

5.1.2 /etc/gshadow

  • 存放當前系統中用戶組的密碼信息
  • 和group中的記錄一一對應
  • Group: * : :abc
  • 組名稱 組密碼 組管理者 組中用戶名

5.1.3 /etc/passwd

  • 存儲當前系統中全部用戶的信息
  • user:x:123:456:xxxxx:/home/user:/bin/bash
  • 用戶名:密碼佔位符:用戶編號: 用戶註釋信息:用戶主目錄:shell類型

5.1.4 /etc/shadow

  • 存放當前系統中全部用戶的密碼信息
  • user:xxx:::::::
  • 用戶名:密碼:

6. 用戶操做

添加組

groupadd student
複製代碼

修改組名稱

groupmod -n stu student 
複製代碼

修改組編號

groupmod -g 111 stu 
複製代碼

添加分組並指定編號

groupadd -g 222 teacher 
複製代碼

刪除分組

groupdel 222 
複製代碼

添加分組

groupadd teacher 
複製代碼

爲用戶指定所屬組

useradd -g teacher zhangsan 
複製代碼

爲用戶指定所屬組

useradd -g teacher lisi 
複製代碼

爲用戶指定工做目錄

useradd -d /home/zhangsan zhangsan 
複製代碼

指定註釋

usermod -c iamateacher zhangsan 
複製代碼

修改用戶名

usermod -l zhangsan zhangsan2
複製代碼

指定文件夾

usermod -d /home/zhangsan2 zhangsan2 
複製代碼

修改用戶所屬組

usermod -g stu zhangsan2 
複製代碼

刪除用戶

userdel zhangsan2 
複製代碼

刪除所屬文件夾

userdel -r lisi 
複製代碼

7. 用戶命令

顯示登陸的用戶名

whoami
複製代碼

顯示指定用戶信息,包括用戶編號,用戶名 主要組的編號及名稱,附屬組列表

id zhangsan  
複製代碼

顯示zhangsan用戶所在的全部組

groups zhangsan 
複製代碼

顯示用戶詳細資料

finger zhangsan  
複製代碼

8. 附錄

8.1 系統啓動

8.1.1 BIOS

  • 計算機通電後,第一件事就是讀取刷入ROM芯片的開機程序,這個程序叫作(Basic Input/Output System)

8.1.2 硬件自檢

  • BIOS程序首先檢查,計算機硬件可否知足運行的基本條件,這叫作"硬件自檢"(Power-On Self-Test)
  • 若是硬件出現問題,主板會發出不一樣含義的蜂鳴,啓動停止。若是沒有問題,屏幕就會顯示出CPU、內存、硬盤等信息。

8.1.3 啓動順序

  • 硬件自檢完成後,BIOS把控制權轉交給下一階段的啓動程序。
  • 這時,BIOS須要知道,"下一階段的啓動程序"具體存放在哪個設備
  • BIOS須要有一個外部儲存設備的排序,排在前面的設備就是優先轉交控制權的設備。這種排序叫作"啓動順序"(Boot Sequence)
  • BIOS按照"啓動順序",把控制權轉交給排在第一位的儲存設備。
  • 這時,計算機讀取該設備的第一個扇區,也就是讀取最前面的512個字節。若是這512個字節的最後兩個字節是0x55和0xAA,代表這個設備能夠用於啓動;若是不是,代表設備不能用於啓動,控制權因而被轉交給"啓動順序"中的下一個設備。
  • 這最前面的512個字節,就叫作"主引導記錄"(Master boot record,縮寫爲MBR)

8.1.4 主引導記錄的結構

  • "主引導記錄"只有512個字節,放不了太多東西。它的主要做用是,告訴計算機到硬盤的哪個位置去找操做系統。
    • (1) 第1-446字節:是用來記錄系統的啓動信息的,調用操做系統的機器碼
    • (2) 第447-510字節(64個字節):分區表(Partition table),分區表的做用,是將硬盤分紅若干個區
    • (3) 第511-512字節:主引導記錄簽名(0x55和0xAA)

8.1.5 分區表

  • 磁盤分區是使用分區編輯器在磁盤上劃分幾個邏輯部分
  • 磁盤一旦劃分紅多個分區,不一樣類的目錄與文件能夠存儲進不一樣的分區內
  • "主引導記錄"所以必須知道將控制權轉交給哪一個區
  • 分區表的長度只有64個字節,裏面又分紅四項,每項16個字節。因此,一個硬盤最多隻能分四個一級分區,又叫作"主分區"
    • (1) 第1個字節:若是爲0x80,就表示該主分區是激活分區,控制權要轉交給這個分區。四個主分區裏面只能有一個是激活的。
    • (2) 第2-4個字節:主分區第一個扇區的物理位置(柱面、磁頭、扇區號等等)。
    • (3) 第5個字節:主分區類型,好比FAT3二、NTFS等。
    • (4) 第6-8個字節:主分區最後一個扇區的物理位置。
    • (5) 第9-12字節:該主分區第一個扇區的邏輯地址。
    • (6) 第13-16字節:主分區的扇區總數。

8.1.6 硬盤啓動

  • 計算機的控制權就要轉交給硬盤的某個分區了
  • 四個主分區裏面,只有一個是激活的。計算機會讀取激活分區的第一個扇區,叫作"卷引導記錄"(Volume boot record,縮寫爲VBR)

8.1.7 操做系統

  • 控制權轉交給操做系統後,操做系統的內核首先被載入內存。
  • 以Linux系統爲例,先載入/boot目錄下面的kernel。內核加載成功後,第一個運行的程序是/sbin/init。它根據配置文件(Debian系統是/etc/initab)產生init進程。這是Linux啓動後的第一個進程,pid進程編號爲1,其餘進程都是它的後代
  • 而後,init線程加載系統的各個模塊,好比窗口程序和網絡程序,直至執行/bin/login程序,跳出登陸界面,等待用戶輸入用戶名和密碼。
相關文章
相關標籤/搜索