1、Linux系統(tǒng)的啟動(dòng)過(guò)程并不是大家想象中的那么復(fù)雜,其過(guò)程可以分為5個(gè)階段:
(1)內(nèi)核的引導(dǎo)。
(2)運(yùn)行 init。
(3)系統(tǒng)初始化。
(4)建立終端 。
(5)用戶登錄系統(tǒng)。
2、內(nèi)核引導(dǎo)
當(dāng)計(jì)算機(jī)打開(kāi)電源后,首先是BIOS開(kāi)機(jī)自檢,按照BIOS中設(shè)置的啟動(dòng)設(shè)備(通常是硬盤)來(lái)啟動(dòng)。操作系統(tǒng)接管硬件以后,首先讀入 /boot 目錄下的內(nèi)核文件。
3、運(yùn)行 init
(1)init 進(jìn)程是系統(tǒng)所有進(jìn)程的起點(diǎn),你可以把它比擬成系統(tǒng)所有進(jìn)程的老祖宗,沒(méi)有這個(gè)進(jìn)程,系統(tǒng)中任何進(jìn)程都不會(huì)啟動(dòng)。init 程序首先是需要讀取配置文件 /etc/inittab。
(2)運(yùn)行級(jí)別:許多程序需要開(kāi)機(jī)啟動(dòng)。它們在Windows叫做'服務(wù)'(service),在Linux就叫做'守護(hù)進(jìn)程'(daemon)。
init 進(jìn)程的一大任務(wù),就是去運(yùn)行這些開(kāi)機(jī)啟動(dòng)的程序。但是,不同的場(chǎng)合需要啟動(dòng)不同的程序,比如用作服務(wù)器時(shí),需要啟動(dòng)Apache,用作桌面就不需要。
Linux允許為不同的場(chǎng)合,分配不同的開(kāi)機(jī)啟動(dòng)程序,這就叫做'運(yùn)行級(jí)別'(runlevel)。也就是說(shuō),啟動(dòng)時(shí)根據(jù)'運(yùn)行級(jí)別',確定要運(yùn)行哪些程序。
(3)Linux系統(tǒng)有7個(gè)運(yùn)行級(jí)別(runlevel):
4、系統(tǒng)初始化
在 init 的配置文件中有這么一行: si::sysinit:/etc/rc.d/rc.sysinit 它調(diào)用執(zhí)行了/etc/rc.d/rc.sysinit,而 rc.sysinit 是一個(gè) bash shell 的腳本,它主要是完成一些系統(tǒng)初始化的工作,rc.sysinit是每一個(gè)運(yùn)行級(jí)別都要首先運(yùn)行的重要腳本。
它主要完成的工作有:激活交換分區(qū),檢查磁盤,加載硬件模塊以及其它一些需要優(yōu)先執(zhí)行任務(wù)。
5、建立終端:rc 執(zhí)行完畢后,返回 init。這時(shí)基本系統(tǒng)環(huán)境已經(jīng)設(shè)置好了,各種守護(hù)進(jìn)程也已經(jīng)啟動(dòng)了。init 接下來(lái)會(huì)打開(kāi)6個(gè)終端,以便用戶登錄系統(tǒng)。
6、用戶登錄系統(tǒng):命令行登錄、ssh 登錄、圖形界面登錄 3 種
詳情可看這篇博客:http://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html
1、正確的關(guān)機(jī)流程為:sync > shutdown > reboot > halt
2、關(guān)機(jī)指令為:shutdown ,你可以man shutdown 來(lái)看一下幫助文檔。
3、實(shí)例:
sync # 將數(shù)據(jù)由內(nèi)存同步到硬盤中。shutdown –h 10 'This server will shutdown after 10 mins’ #這個(gè)命令告訴大家,計(jì)算機(jī)將在10分鐘后關(guān)機(jī),并且會(huì)顯示在登陸用戶的當(dāng)前屏幕中。shutdown –h now # 立馬關(guān)機(jī)shutdown –h 20:25 # 系統(tǒng)會(huì)在今天20:25關(guān)機(jī)shutdown –h 10 # 十分鐘后關(guān)機(jī)shutdown –r now #系統(tǒng)立馬重啟shutdown –r 10 #系統(tǒng)十分鐘后重啟reboot # 就是重啟,等同于 shutdown –r nowhalt # 關(guān)閉系統(tǒng),等同于shutdown –h now 和 poweroff
4、不管是重啟系統(tǒng),還是關(guān)閉系統(tǒng),首先要運(yùn)行 sync 命令,把內(nèi)存中的數(shù)據(jù)寫到磁盤中。
關(guān)機(jī)的命令有 shutdown –h now、halt、poweroff 和 init 0,重啟系統(tǒng)的命令有 shutdown –r now、reboot、init 6。
5、shutdown 會(huì)給系統(tǒng)計(jì)劃一個(gè)時(shí)間關(guān)機(jī),它可以被用于停止、關(guān)機(jī)、重啟機(jī)器。
shutdown -p now # 關(guān)閉機(jī)器shutdown -H now # 停止機(jī)器 shutdown -r 09:35 # 在 09:35am 重啟機(jī)器
要取消即將進(jìn)行的關(guān)機(jī),只要輸入下面的命令:
shutdown -c
6、halt 命令通知硬件來(lái)停止所有的 CPU 功能,但是仍然保持通電。你可以用它使系統(tǒng)處于低層維護(hù)狀態(tài)。注意在有些情況會(huì)它會(huì)完全關(guān)閉系統(tǒng)。
# halt ### 停止機(jī)器# halt -p ### 關(guān)閉機(jī)器、關(guān)閉電源# halt --reboot ### 重啟機(jī)器
poweroff 會(huì)發(fā)送一個(gè) ACPI 信號(hào)來(lái)通知系統(tǒng)關(guān)機(jī)。
# poweroff ### 關(guān)閉機(jī)器、關(guān)閉電源# poweroff --halt ### 停止機(jī)器# poweroff --reboot ### 重啟機(jī)器
reboot 命令 reboot 通知系統(tǒng)重啟。
# reboot ### 重啟機(jī)器# reboot --halt ### 停止機(jī)器# reboot -p ### 關(guān)閉機(jī)器
1、樹(shù)狀目錄結(jié)構(gòu):
2、一些常用目錄的解釋:
/bin:bin 是 Binaries (二進(jìn)制文件) 的縮寫, 這個(gè)目錄存放著最經(jīng)常使用的命令。
/etc:etc 是 Etcetera(等等) 的縮寫,這個(gè)目錄用來(lái)存放所有的系統(tǒng)管理所需要的配置文件和子目錄。
/home:用戶的主目錄,在 Linux 中,每個(gè)用戶都有一個(gè)自己的目錄,一般該目錄名是以用戶的賬號(hào)命名的,如上圖中的 alice、bob 和 eve。
/usr:usr 是 unix shared resources(共享資源) 的縮寫,這是一個(gè)非常重要的目錄,用戶的很多應(yīng)用程序和文件都放在這個(gè)目錄下,類似于 windows 下的 program files 目錄。
/usr/bin:系統(tǒng)用戶使用的應(yīng)用程序。
/usr/sbin:超級(jí)用戶使用的比較高級(jí)的管理程序和系統(tǒng)守護(hù)程序。
/var:var 是 variable(變量) 的縮寫,這個(gè)目錄中存放著在不斷擴(kuò)充著的東西,我們習(xí)慣將那些經(jīng)常被修改的目錄放在這個(gè)目錄下。包括各種日志文件。
/run:是一個(gè)臨時(shí)文件系統(tǒng),存儲(chǔ)系統(tǒng)啟動(dòng)以來(lái)的信息。當(dāng)系統(tǒng)重啟時(shí),這個(gè)目錄下的文件應(yīng)該被刪掉或清除。如果你的系統(tǒng)上有 /var/run 目錄,應(yīng)該讓它指向 run。
3、在 Linux 系統(tǒng)中,有幾個(gè)目錄是比較重要的,平時(shí)需要注意不要誤刪除或者隨意更改內(nèi)部文件。
/etc: 上邊也提到了,這個(gè)是系統(tǒng)中的配置文件,如果你更改了該目錄下的某個(gè)文件可能會(huì)導(dǎo)致系統(tǒng)不能啟動(dòng)。
/bin, /sbin, /usr/bin, /usr/sbin: 這是系統(tǒng)預(yù)設(shè)的執(zhí)行文件的放置目錄,比如 ls 就是在 /bin/ls 目錄下的。值得提出的是,/bin, /usr/bin 是給系統(tǒng)用戶使用的指令(除root外的通用戶),而/sbin, /usr/sbin 則是給 root 使用的指令。
/var: 這是一個(gè)非常重要的目錄,系統(tǒng)上跑了很多程序,那么每個(gè)程序都會(huì)有相應(yīng)的日志產(chǎn)生,而這些日志就被記錄到這個(gè)目錄下,具體在 /var/log 目錄下,另外 mail 的預(yù)設(shè)放置也是在這里。
4、在 Linux 或 Unix 操作系統(tǒng)中,所有的文件和目錄都被組織成以一個(gè)根節(jié)點(diǎn)開(kāi)始的倒置的樹(shù)狀結(jié)構(gòu)。
文件系統(tǒng)的最頂層是由根目錄開(kāi)始的,系統(tǒng)使用 / 來(lái)表示根目錄。在根目錄之下的既可以是目錄,也可以是文件,而每一個(gè)目錄中又可以包含子目錄文件。如此反復(fù)就可以構(gòu)成一個(gè)龐大的文件系統(tǒng)。
在Linux文件系統(tǒng)中有兩個(gè)特殊的目錄,一個(gè)用戶所在的工作目錄,也叫當(dāng)前目錄,可以使用一個(gè)點(diǎn) . 來(lái)表示;另一個(gè)是當(dāng)前目錄的上一級(jí)目錄,也叫父目錄,可以使用兩個(gè)點(diǎn) .. 來(lái)表示。
如果一個(gè)目錄或文件名以一個(gè)點(diǎn) . 開(kāi)始,表示這個(gè)目錄或文件是一個(gè)隱藏目錄或文件(如:.bashrc)。即以默認(rèn)方式查找時(shí),不顯示該目錄或文件。
5、目錄分類介紹
系統(tǒng)啟動(dòng)必須:
指令集合:
外部文件管理:
臨時(shí)文件:
賬戶:
運(yùn)行過(guò)程中要用:
擴(kuò)展用的:
聯(lián)系客服