初步進(jìn)入 linux 世界

2018-08-12 21:29 更新

初步進(jìn)入 linux 世界

Linux 系統(tǒng)啟動過程

Linux 的啟動其實(shí)和 Windows 的啟動過程很類似,不過 Windows 我們是無法看到啟動信息的,而 linux 啟動時(shí)我們會看到許多啟動信息,例如某個(gè)服務(wù)是否啟動。

Linux 系統(tǒng)的啟動過程大體上可分為五部分:內(nèi)核的引導(dǎo);運(yùn)行 init;系統(tǒng)初始化;建立終端 ;用戶登錄系統(tǒng)。

內(nèi)核引導(dǎo)

當(dāng)計(jì)算機(jī)打開電源后,首先是 BIOS 開機(jī)自檢,按照 BIOS 中設(shè)置的啟動設(shè)備(通常是硬盤)來啟動。緊接著由啟動設(shè)備上的 grub 程序開始引導(dǎo) linux,當(dāng)引導(dǎo)程序成功完成引導(dǎo)任務(wù)后,Linux 從它們手中接管了 CPU 的控制權(quán),然后 CPU 就開始執(zhí)行 Linux 的核心映象代碼,開始了 Linux 啟動過程。也就是所謂的內(nèi)核引導(dǎo)開始了,在內(nèi)核引導(dǎo)過程中其實(shí)是很復(fù)雜的,我們就當(dāng)它是一個(gè)黑匣子,反正是 linux 內(nèi)核做了一些列工作,最后內(nèi)核調(diào)用加載了 init 程序,至此內(nèi)核引導(dǎo)的工作就完成了。交給了下一個(gè)主角 init。

運(yùn)行 init

init 進(jìn)程是系統(tǒng)所有進(jìn)程的起點(diǎn),你可以把它比擬成系統(tǒng)所有進(jìn)程的老祖宗,沒有這個(gè)進(jìn)程,系統(tǒng)中任何進(jìn)程都不會啟動。init 程序首先是需要讀取配置文件 /etc/inittab。inittab 是一個(gè)不可執(zhí)行的文本文件,它有若干行指令所組成。具體內(nèi)容如下:(你可以在你的linux上執(zhí)行命令 cat /etc/inittab 這樣獲得)

# inittab       This file describes how the INIT process should set up
  #               the system in a certain run-level.
  #
  # Author:       Miquel van Smoorenburg,
  #               Modified for RHS Linux by Marc Ewing and Donnie Barnes
  #
  # Default runlevel. The runlevels used by RHS are:
  #   0 - halt (Do NOT set initdefault to this)
  #   1 - Single user mode
  #   2 - Multiuser, without NFS (The same as 3, if you do not havenetworking)
  #   3 - Full multiuser mode
  #   4 - unused
  #   5 - X11
  #   6 - reboot (Do NOT set initdefault to this)
  #
  ###表示當(dāng)前缺省運(yùn)行級別為5(initdefault);
  id:5:initdefault:
  ###啟動時(shí)自動執(zhí)行/etc/rc.d/rc.sysinit腳本(sysinit)
  # System initialization.
  si::sysinit:/etc/rc.d/rc.sysinit
  l0:0:wait:/etc/rc.d/rc 0
  l1:1:wait:/etc/rc.d/rc 1
  l2:2:wait:/etc/rc.d/rc 2
  l3:3:wait:/etc/rc.d/rc 3
  l4:4:wait:/etc/rc.d/rc 4
  ###當(dāng)運(yùn)行級別為5時(shí),以5為參數(shù)運(yùn)行/etc/rc.d/rc腳本,init將等待其返回(wait)
  l5:5:wait:/etc/rc.d/rc 5
  l6:6:wait:/etc/rc.d/rc 6
  ###在啟動過程中允許按CTRL-ALT-DELETE重啟系統(tǒng)
  # Trap CTRL-ALT-DELETE
  ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  # When our UPS tells us power has failed, assume we have a few minutes
  # of power left.  Schedule a shutdown for 2 minutes from now.
  # This does, of course, assume you have powerd installed and your
  # UPS connected and working correctly.
  pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
  # If power was restored before the shutdown kicked in, cancel it.
  pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
  ###在2、3、4、5級別上以ttyX為參數(shù)執(zhí)行/sbin/mingetty程序,打開ttyX終端用于用戶登錄,
  ###如果進(jìn)程退出則再次運(yùn)行mingetty程序(respawn)
  # Run gettys in standard runlevels
  1:2345:respawn:/sbin/mingetty tty1
  2:2345:respawn:/sbin/mingetty tty2
  3:2345:respawn:/sbin/mingetty tty3
  4:2345:respawn:/sbin/mingetty tty4
  5:2345:respawn:/sbin/mingetty tty5
  6:2345:respawn:/sbin/mingetty tty6
  ###在5級別上運(yùn)行xdm程序,提供xdm圖形方式登錄界面,并在退出時(shí)重新執(zhí)行(respawn)
  # Run xdm in runlevel 5
  x:5:respawn:/etc/X11/prefdm -nodaemon

以上面的 inittab 文件為例,來說明一下 inittab 的格式。其中以#開始的行是注釋行,除了注釋行之外,每一行都有以下格式:

  id:runlevel:action:process

對上面各項(xiàng)的詳細(xì)解釋如下:

1.id

  id是指入口標(biāo)識符,它是一個(gè)字符串,對于getty或mingetty等其他login程序項(xiàng),要求id與tty的編號相同,否則getty程序?qū)⒉荒苷9ぷ鳌?2.Runlevel

runlevel 是 init 所處于的運(yùn)行級別的標(biāo)識,一般使用 0-6 以及 S 或 s。0、1、6 運(yùn)行級別被系統(tǒng)保留:其中 0 作為 shutdown 動作,1 作為重啟至單用戶模式,6 為重啟;S 和 s 意義相同,表示單用戶模式,且無需 inittab 文件,因此也不在 inittab 中出現(xiàn),實(shí)際上,進(jìn)入單用戶模式時(shí),init 直接在控制臺(/dev/console)上運(yùn)行 /sbin/sulogin。在一般的系統(tǒng)實(shí)現(xiàn)中,都使用了 2、3、4、5 幾個(gè)級別,在 CentOS 系統(tǒng)中,2 表示無 NFS 支持的多用戶模式,3 表示完全多用戶模式(也是最常用的級別),4 保留給用戶自定義,5 表示 XDM 圖形登錄方式。7-9 級別也是可以使用的,傳統(tǒng)的 Unix 系統(tǒng)沒有定義這幾個(gè)級別。runlevel 可以是并列的多個(gè)值,以匹配多個(gè)運(yùn)行級別,對大多數(shù) action 來說,僅當(dāng) runlevel 與當(dāng)前運(yùn)行級別匹配成功才會執(zhí)行。

3.action

action 是描述其后的 process 的運(yùn)行方式的。action 可取的值包括:initdefault、sysinit、boot、bootwait等:initdefault 是一個(gè)特殊的 action 值,用于標(biāo)識缺省的啟動級別;當(dāng) init 由核心激活以后,它將讀取 inittab 中的 initdefault 項(xiàng),取得其中的 runlevel,并作為當(dāng)前的運(yùn)行級別。如果沒有 inittab 文件,或者其中沒有 initdefault 項(xiàng),init 將在控制臺上請求輸入 runlevel。sysinit、boot、bootwait 等 action 將在系統(tǒng)啟動時(shí)無條件運(yùn)行,而忽略其中的 runlevel。其余的 action(不含 initdefault)都與某個(gè) runlevel 相關(guān)。各個(gè) action 的定義在 inittab 的 man 手冊中有詳細(xì)的描述。

4.process

process 為具體的執(zhí)行程序。程序后面可以帶參數(shù)。

Tips: 如果你看不懂這個(gè)文件,沒有關(guān)系,隨著你對linux的深入了解,你再回過頭看這個(gè)文件你就會豁然開朗的。但是你現(xiàn)在必須要明白runlevel的各個(gè)級別的含義。

系統(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)行級別都要首先運(yùn)行的重要腳本。它主要完成的工作有:激活交換分區(qū),檢查磁盤,加載硬件模塊以及其它一些需要優(yōu)先執(zhí)行任務(wù)。

rc.sysinit 約有 850 多行,但是每個(gè)單一的功能還是比較簡單,而且?guī)в凶⑨專ㄗh有興趣的用戶可以自行閱讀自己機(jī)器上的該文件,以了解系統(tǒng)初始化所詳細(xì)情況。由于此文件較長,所以不在本文中列出來,也不做具體的介紹。當(dāng) rc.sysinit 程序執(zhí)行完畢后,將返回 init 繼續(xù)下一步。通常接下來會執(zhí)行到 /etc/rc.d/rc 程序。以運(yùn)行級別 3 為例,init 將執(zhí)行配置文件 inittab 中的以下這行:

  l5:5:wait:/etc/rc.d/rc 5

這一行表示以 5 為參數(shù)運(yùn)行/etc/rc.d/rc,/etc/rc.d/rc 是一個(gè) Shell 腳本,它接受 5 作為參數(shù),去執(zhí)行/etc/rc.d/rc5.d/ 目錄下的所有的 rc 啟動腳本,/etc/rc.d/rc5.d/ 目錄中的這些啟動腳本實(shí)際上都是一些連接文件,而不是真正的 rc 啟動腳本,真正的 rc 啟動腳本實(shí)際上都是放在 /etc/rc.d/init.d/ 目錄下。而這些 rc 啟動腳本有著類似的用法,它們一般能接受 start、stop、restart、status 等參數(shù)。

/etc/rc.d/rc5.d/ 中的 rc 啟動腳本通常是 K 或 S 開頭的連接文件,對于以 S 開頭的啟動腳本,將以 start 參數(shù)來運(yùn)行。而如果發(fā)現(xiàn)存在相應(yīng)的腳本也存在 K 打頭的連接,而且已經(jīng)處于運(yùn)行態(tài)了(以 /var/lock/subsys/ 下的文件作為標(biāo)志),則將首先以 stop 為參數(shù)停止這些已經(jīng)啟動了的守護(hù)進(jìn)程,然后再重新運(yùn)行。這樣做是為了保證是當(dāng) init 改變運(yùn)行級別時(shí),所有相關(guān)的守護(hù)進(jìn)程都將重啟。

至于在每個(gè)運(yùn)行級中將運(yùn)行哪些守護(hù)進(jìn)程,用戶可以通過 chkconfig 或 setup 中的"System Services"來自行設(shè)定。

建立終端

rc 執(zhí)行完畢后,返回 init。這時(shí)基本系統(tǒng)環(huán)境已經(jīng)設(shè)置好了,各種守護(hù)進(jìn)程也已經(jīng)啟動了。init 接下來會打開 6 個(gè)終端,以便用戶登錄系統(tǒng)。在 inittab 中的以下 6 行就是定義了 6 個(gè)終端:

  1:2345:respawn:/sbin/mingetty tty1
  2:2345:respawn:/sbin/mingetty tty2
  3:2345:respawn:/sbin/mingetty tty3
  4:2345:respawn:/sbin/mingetty tty4
  5:2345:respawn:/sbin/mingetty tty5
  6:2345:respawn:/sbin/mingetty tty6

  從上面可以看出在 2、3、4、5 的運(yùn)行級別中都將以 respawn 方式運(yùn)行 mingetty 程序,mingetty 程序能打開終端、設(shè)置模式。同時(shí)它會顯示一個(gè)文本登錄界面,這個(gè)界面就是我們經(jīng)??吹降牡卿浗缑?,在這個(gè)登錄界面中會提示用戶輸入用戶名,而用戶輸入的用戶將作為參數(shù)傳給 login 程序來驗(yàn)證用戶的身份。

用戶登錄系統(tǒng)

對于運(yùn)行級別為 5 的圖形方式用戶來說,他們的登錄是通過一個(gè)圖形化的登錄界面。登錄成功后可以直接進(jìn)入KDE、Gnome 等窗口管理器。而本文主要講的還是文本方式登錄的情況:當(dāng)我們看到 mingetty 的登錄界面時(shí),我們就可以輸入用戶名和密碼來登錄系統(tǒng)了。

Linux 的賬號驗(yàn)證程序是 login,login 會接收 mingetty 傳來的用戶名作為用戶名參數(shù)。然后 login 會對用戶名進(jìn)行分析:如果用戶名不是 root,且存在 /etc/nologin文件,login 將輸出 nologin 文件的內(nèi)容,然后退出。這通常用來系統(tǒng)維護(hù)時(shí)防止非 root 用戶登錄。只有 /etc/securetty 中登記了的終端才允許 root 用戶登錄,如果不存在這個(gè)文件,則 root 可以在任何終端上登錄。/etc/usertty 文件用于對用戶作出附加訪問限制,如果不存在這個(gè)文件,則沒有其他限制。

在分析完用戶名后,login 將搜索 /etc/passwd 以及 /etc/shadow 來驗(yàn)證密碼以及設(shè)置賬戶的其它信息,比如:主目錄是什么、使用何種 shell。如果沒有指定主目錄,將默認(rèn)為根目錄;如果沒有指定 shell,將默認(rèn)為 /bin/bash。

login 程序成功后,會向?qū)?yīng)的終端在輸出最近一次登錄的信息(在 /var/log/lastlog 中有記錄),并檢查用戶是否有新郵件(在 /usr/spool/mail/ 的對應(yīng)用戶名目錄下)。然后開始設(shè)置各種環(huán)境變量:對于 bash 來說,系統(tǒng)首先尋找 /etc/profile 腳本文件,并執(zhí)行它;然后如果用戶的主目錄中存在 .bash_profile 文件,就執(zhí)行它,在這些文件中又可能調(diào)用了其它配置文件,所有的配置文件執(zhí)行后后,各種環(huán)境變量也設(shè)好了,這時(shí)會出現(xiàn)大家熟悉的命令行提示符,到此整個(gè)啟動過程就結(jié)束了。

圖形模式與文字模式的切換方式

Linux 預(yù)設(shè)提供了六個(gè)命令窗口終端機(jī)讓我們來登錄。默認(rèn)我們登錄的就是第一個(gè)窗口,也就是 tty1,這個(gè)六個(gè)窗口分別為 tty1,tty2 … tty6,你可以按下 Ctrl + Alt + F1 ~ F6 來切換它們。如果你安裝了圖形界面,默認(rèn)情況下是進(jìn)入圖形界面的,此時(shí)你就可以按 Ctrl + Alt + F1 ~ F6 來進(jìn)入其中一個(gè)命令窗口界面。當(dāng)你進(jìn)入命令窗口界面后再返回圖形界面只要按下 Ctrl + Alt + F7 就回來了。如果你用的 vmware 虛擬機(jī),命令窗口切換的快捷鍵為 Alt + Space + F1~F6. 如果你在圖形界面下請按 Alt + Shift + Ctrl + F1~F6 切換至命令窗口。

學(xué)會使用快捷鍵

Ctrl + C:這個(gè)是用來終止當(dāng)前命令的快捷鍵,當(dāng)然你也可以輸入一大串字符,不想讓它運(yùn)行直接 Ctrl + C,光標(biāo)就會跳入下一行。

Tab: 這個(gè)鍵是最有用的鍵了,也是筆者敲擊概率最高的一個(gè)鍵。因?yàn)楫?dāng)你打一個(gè)命令打一半時(shí),它會幫你補(bǔ)全的。不光是命令,當(dāng)你打一個(gè)目錄時(shí),同樣可以補(bǔ)全,不信你試試。

Ctrl + D: 退出當(dāng)前終端,同樣你也可以輸入 exit。

Ctrl + Z: 暫停當(dāng)前進(jìn)程,比如你正運(yùn)行一個(gè)命令,突然覺得有點(diǎn)問題想暫停一下,就可以使用這個(gè)快捷鍵。暫停后,可以使用 fg 恢復(fù)它。

Ctrl + L: 清屏,使光標(biāo)移動到第一行。

學(xué)會查詢幫助文檔 — man

這個(gè) man 通常是用來看一個(gè)命令的幫助文檔的。例如:

輸入 man ls 其實(shí)格式為 man + 命令

你就會看到相關(guān)的幫助文檔了。從命令的介紹到命令的參數(shù)以及用法介紹的都非常詳細(xì)的。不錯吧。

Linux 系統(tǒng)目錄結(jié)構(gòu)

登錄系統(tǒng)后,在當(dāng)前命令窗口下輸入 ls / 你會看到

以下是對這些目錄的解釋:

/bin bin 是 Binary 的縮寫。這個(gè)目錄存放著最經(jīng)常使用的命令。

/boot 這里存放的是啟動 Linux 時(shí)使用的一些核心文件,包括一些連接文件以及鏡像文件。

/dev dev 是 Device(設(shè)備)的縮寫。該目錄下存放的是 Linux 的外部設(shè)備,在 Linux 中訪問設(shè)備的方式和訪問文件的方式是相同的。

/etc 這個(gè)目錄用來存放所有的系統(tǒng)管理所需要的配置文件和子目錄。

/home 用戶的主目錄,在 Linux 中,每個(gè)用戶都有一個(gè)自己的目錄,一般該目錄名是以用戶的賬號命名的。

/lib 這個(gè)目錄里存放著系統(tǒng)最基本的動態(tài)連接共享庫,其作用類似于 Windows 里的 DLL 文件。幾乎所有的應(yīng)用程序都需要用到這些共享庫。

/lost+found 這個(gè)目錄一般情況下是空的,當(dāng)系統(tǒng)非法關(guān)機(jī)后,這里就存放了一些文件。

/media linux 系統(tǒng)會自動識別一些設(shè)備,例如U盤、光驅(qū)等等,當(dāng)識別后,linux 會把識別的設(shè)備掛載到這個(gè)目錄下。

/mnt 系統(tǒng)提供該目錄是為了讓用戶臨時(shí)掛載別的文件系統(tǒng)的,我們可以將光驅(qū)掛載在 /mnt/ 上,然后進(jìn)入該目錄就可以查看光驅(qū)里的內(nèi)容了。

/opt 這是給主機(jī)額外安裝軟件所擺放的目錄。比如你安裝一個(gè) ORACLE 數(shù)據(jù)庫則就可以放到這個(gè)目錄下。默認(rèn)是空的。

/proc 這個(gè)目錄是一個(gè)虛擬的目錄,它是系統(tǒng)內(nèi)存的映射,我們可以通過直接訪問這個(gè)目錄來獲取系統(tǒng)信息。這個(gè)目錄的內(nèi)容不在硬盤上而是在內(nèi)存里,我們也可以直接修改里面的某些文件,比如可以通過下面的命令來屏蔽主機(jī)的 ping 命令,使別人無法 ping 你的機(jī)器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all。

/root 該目錄為系統(tǒng)管理員,也稱作超級權(quán)限者的用戶主目錄。

/sbin s 就是 Super User 的意思,這里存放的是系統(tǒng)管理員使用的系統(tǒng)管理程序。

/selinux 這個(gè)目錄是 Redhat/CentOS 所特有的目錄,Selinux 是一個(gè)安全機(jī)制,類似于 Windows 的防火墻,但是這套機(jī)制比較復(fù)雜,這個(gè)目錄就是存放 selinux 相關(guān)的文件的。

/srv 該目錄存放一些服務(wù)啟動之后需要提取的數(shù)據(jù)。

/sys 這是 linux2.6 內(nèi)核的一個(gè)很大的變化。該目錄下安裝了 2.6 內(nèi)核中新出現(xiàn)的一個(gè)文件系統(tǒng) sysfs ,sysfs 文件系統(tǒng)集成了下面3種文件系統(tǒng)的信息:針對進(jìn)程信息的 proc 文件系統(tǒng)、針對設(shè)備的 devfs 文件系統(tǒng)以及針對偽終端的 devpts 文件系統(tǒng)。該文件系統(tǒng)是內(nèi)核設(shè)備樹的一個(gè)直觀反映。當(dāng)一個(gè)內(nèi)核對象被創(chuàng)建的時(shí)候,對應(yīng)的文件和目錄也在內(nèi)核對象子系統(tǒng)種被創(chuàng)建。

/tmp 這個(gè)目錄是用來存放一些臨時(shí)文件的。

/usr 這是一個(gè)非常重要的目錄,用戶的很多應(yīng)用程序和文件都放在這個(gè)目錄下,類似與 windows 下的 program files目錄。

/usr/bin:系統(tǒng)用戶使用的應(yīng)用程序。

/usr/sbin:超級用戶使用的比較高級的管理程序和系統(tǒng)守護(hù)程序。

/usr/src:內(nèi)核源代碼默認(rèn)的放置目錄。

/var 這個(gè)目錄中存放著在不斷擴(kuò)充著的東西,我們習(xí)慣將那些經(jīng)常被修改的目錄放在這個(gè)目錄下。包括各種日志文件。

在 linux 系統(tǒng)中,有幾個(gè)目錄是比較重要的,平時(shí)需要注意不要誤刪除或者隨意更改內(nèi)部文件。/etc: 上邊也提到了,這個(gè)是系統(tǒng)中的配置文件,如果你更改了該目錄下的某個(gè)文件可能會導(dǎo)致系統(tǒ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è)程序都會有相應(yīng)的日志產(chǎn)生,而這些日志就被記錄到這個(gè)目錄下,具體在 /var/log 目錄下,另外 mail 的預(yù)設(shè)放置也是在這里。

如何正確關(guān)機(jī)

其實(shí),在 linux 領(lǐng)域內(nèi)大多用在服務(wù)器上,很少遇到關(guān)機(jī)的操作。畢竟服務(wù)器上跑一個(gè)服務(wù)是永無止境的,除非特殊情況下,不得已才會關(guān)機(jī)。

linux 和 Windows 不同,在 Linux 底下,由于每個(gè)程序(或者說是服務(wù))都是在在背景下執(zhí)行的,因此,在你看不到的屏幕背后其實(shí)可能有相當(dāng)多人同時(shí)在你的主機(jī)上面工作,例如瀏覽網(wǎng)頁啦、傳送信件啦以 FTP 傳送檔案啦等等的,如果你直接按下電源開關(guān)來關(guān)機(jī)時(shí),則其它人的數(shù)據(jù)可能就此中斷!那可就傷腦筋了!此外,最大的問題是,若不正常關(guān)機(jī),則可能造成文件系統(tǒng)的毀損(因?yàn)閬聿患皩?shù)據(jù)回寫到檔案中,所以有些服務(wù)的檔案會有問題?。?。

如果你要關(guān)機(jī),必須要保證當(dāng)前系統(tǒng)中沒有其他用戶在線??梢韵逻_(dá) who 這個(gè)指令,而如果要看網(wǎng)絡(luò)的聯(lián)機(jī)狀態(tài),可以下達(dá) netstat -a 這個(gè)指令,而要看背景執(zhí)行的程序可以執(zhí)行 ps -aux 這個(gè)指令。使用這些指令可以讓你稍微了解主機(jī)目前的使用狀態(tài)!(這些命令在以后的章節(jié)中會提及,現(xiàn)在只要了解即可?。?/p>

正確的關(guān)機(jī)流程為:sysnc ? shutdown ? reboot ? halt

sync 將數(shù)據(jù)由內(nèi)存同步到硬盤中。

shutdown 關(guān)機(jī)指令,你可以man shutdown 來看一下幫助文檔。例如你可以運(yùn)行如下命令關(guān)機(jī):

shutdown –h 10 ‘This server will shutdown after 10 mins’ 這個(gè)命令告訴大家,計(jì)算機(jī)將在10分鐘后關(guān)機(jī),并且會顯示在登陸用戶的當(dāng)前屏幕中。

Shutdown –h now 立馬關(guān)機(jī)

Shutdown –h 20:25 系統(tǒng)會在今天20:25關(guān)機(jī)

Shutdown –h +10 十分鐘后關(guān)機(jī)

Shutdown –r now 系統(tǒng)立馬重啟

Shutdown –r +10 系統(tǒng)十分鐘后重啟

reboot 就是重啟,等同于 shutdown –r now

halt 關(guān)閉系統(tǒng),等同于shutdown –h now 和 poweroff

最后總結(jié)一下,不管是重啟系統(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。

忘記 root 密碼如何做

以前筆者忘記 Windows 的管理員密碼,由于不會用光盤清除密碼最后只能重新安裝系統(tǒng)?,F(xiàn)在想想那是多么愚笨的一件事情。同樣 linux 系統(tǒng)你也會遇到忘記 root 密碼的情況,如果遇到這樣的情況怎么辦呢?重新安裝系統(tǒng)嗎?當(dāng)然不用!進(jìn)入單用戶模式更改一下 root 密碼即可。如何進(jìn)入呢。

1 重啟 linux 系統(tǒng)

3 秒之內(nèi)要按一下回車,出現(xiàn)如下界面

然后輸入 e

在第二行最后邊輸入 single,有一個(gè)空格。具體方法為按向下尖頭移動到第二行,按“e”進(jìn)入編輯模式

在后邊加上 single 回車

最后按“b”啟動,啟動后就進(jìn)入了單用戶模式了

此時(shí)已經(jīng)進(jìn)入到單用戶模式了,你可以更改 root 密碼了。更密碼的命令為 passwd

使用系統(tǒng)安裝光盤的救援模式

救援模式即 rescue ,這個(gè)模式主要是應(yīng)用于,系統(tǒng)無法進(jìn)入的情況。如,grub 損壞或者某一個(gè)配置文件修改出錯。如何使用 rescue 模式呢?

光盤啟動,按 F5 進(jìn)入 rescue 模式

輸入 linux rescue 回車

選擇語言,筆者建議你選擇英語

選擇 us 鍵盤

這里問你是否啟動網(wǎng)絡(luò),有時(shí)候可能會聯(lián)網(wǎng)調(diào)試。我們選 no

這里告訴我們,接下來會把系統(tǒng)掛載在 /mnt/sysimage 中。其中有三個(gè)選項(xiàng),Continue 就是掛載后繼續(xù)下一步; Read-Only 掛載成只讀,這樣更安全,有時(shí)文件系統(tǒng)損壞時(shí),只讀模式會防止文件系統(tǒng)近一步損壞;Skip 就是不掛載,進(jìn)入一個(gè)命令窗口模式。這里我們選擇 Continue。

至此,系統(tǒng)已經(jīng)掛載到了 /mnt/sysimage 中。接下來回車,輸入 chroot /mnt/sysimage 進(jìn)入管理員環(huán)境。

Tips: 其實(shí)也可以到 rescue 模式下更改 root 的密碼的。這個(gè) rescue 模式和 Windows PE 系統(tǒng)很相近。當(dāng)運(yùn)行了 chroot /mnt/sysimage/ 后,再 ls 看到目錄結(jié)構(gòu)和原來系統(tǒng)中的目錄結(jié)構(gòu)是一樣的。沒錯!現(xiàn)在的環(huán)境和原來系統(tǒng)的環(huán)境是一模一樣的。你可以輸入 exit 或者按 Ctrl + D 退出這個(gè)環(huán)境。然后你再 ls 看一下

這個(gè)目錄其實(shí)就是 rescue 模式下的目錄結(jié)構(gòu),而我們的系統(tǒng)文件全部在 /mnt/sysimage目錄下。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號