Linux操作系統(tǒng)的基本常識(shí)詳解
Linu_操作系統(tǒng)或許你很熟悉,但是你對(duì)Linu_操作系統(tǒng)的基本常識(shí)又認(rèn)識(shí)多少呢?下面由學(xué)習(xí)啦小編為大家整理了Linu_操作系統(tǒng)的基本常識(shí)詳解的相關(guān)知識(shí),希望對(duì)大家有幫助!
Linu_操作系統(tǒng)的基本常識(shí)詳解
1、系統(tǒng)組成部分
Linu_系統(tǒng)內(nèi)核,shell(命令編譯器),文件系統(tǒng)和應(yīng)用程序四部分組成。
2、Linu_ 內(nèi)核由哪些部分組成
進(jìn)程管理,文件系統(tǒng)管理,網(wǎng)絡(luò)功能,內(nèi)存管理,驅(qū)動(dòng)程序,安全功能,進(jìn)程間通信等模塊構(gòu)成
3、進(jìn)程鏈表
進(jìn)程鏈表是一個(gè)雙向鏈表,進(jìn)程鏈表把所有進(jìn)程的描述符鏈接起來(lái)。每個(gè)task_struct 結(jié)構(gòu)都包含一個(gè)list_head類(lèi)型的tasks字段,這個(gè)類(lèi)型的orev和ne_t字段分別指向前面和后面的task_struct元素。
4、Linu_ 創(chuàng)建子進(jìn)程及子線程
(1) fork是重量級(jí)調(diào)用,因?yàn)樗⒘烁高M(jìn)程的一個(gè)完整副本,然后作為子進(jìn)程。
(2) vfork1類(lèi)似于fork,但并不創(chuàng)建父進(jìn)程數(shù)據(jù)的副本,相反,父子進(jìn)程共享數(shù)據(jù),節(jié)省了大量的CPU。vfork設(shè)計(jì)用于子進(jìn)程形成后立即執(zhí)行e_ecve系統(tǒng)調(diào)用,在子進(jìn)程退出或開(kāi)始新程序之前,父進(jìn)程處于堵塞狀態(tài)。
(3) clone用于產(chǎn)生線程,可以堆父子進(jìn)程之間的共享、復(fù)制進(jìn)行精確控制。
所有的3個(gè)fork機(jī)制最終都調(diào)用了kernel/fork.c中的do_fork函數(shù),在do_fork中,大多數(shù)工作都是由copy_process函數(shù)完成的。
5、COW
父進(jìn)程在fork 出子進(jìn)程后,父子進(jìn)程共享內(nèi)存數(shù)據(jù),如果子進(jìn)程要修改內(nèi)存數(shù)據(jù) ,Copy一份副本給子進(jìn)程做修改
6、進(jìn)程的優(yōu)先級(jí)
linu_的進(jìn)程優(yōu)先級(jí)分:
1. 實(shí)時(shí)優(yōu)先級(jí)(跟內(nèi)核有關(guān)),范圍0-99,數(shù)字越小優(yōu)先級(jí)越低。top看到的RT的都是實(shí)時(shí)優(yōu)先級(jí)。
2. 靜態(tài)優(yōu)先級(jí)(跟用戶有關(guān)),范圍100-139, 數(shù)字越小優(yōu)先級(jí)越高 static_prio = MA__RT_PRIO + nice + 20,其中MA__RT_PRIO = 100,那么取值區(qū)間為[100, 139];
實(shí)時(shí)優(yōu)先級(jí)比靜態(tài)優(yōu)先級(jí)高。
nice是一個(gè)優(yōu)先值,范圍-20-19 這個(gè)值越小,那么對(duì)應(yīng)的進(jìn)程優(yōu)先級(jí)越高,在top里,PR-NI=20
默認(rèn)啟動(dòng)一個(gè)進(jìn)程,nice是0,也可以在執(zhí)行這個(gè)進(jìn)程時(shí)指定nice值:
nice -n -5 sleep 100
使用renice可以調(diào)整這個(gè)值:
renice 10 pid
如下命令可以看到實(shí)時(shí)優(yōu)先級(jí)和靜態(tài)優(yōu)先級(jí)的級(jí):
ps -e -o rtprio,pri,nice,cmd
從調(diào)度的角度,Linu_把進(jìn)程分成140個(gè)優(yōu)先等級(jí),其中0級(jí)到99級(jí)是分給實(shí)時(shí)進(jìn)程的,100級(jí)到139級(jí)是分給非實(shí)時(shí)進(jìn)程的。每個(gè)優(yōu)先等級(jí)都有一個(gè)運(yùn)行隊(duì)列,這樣就有140個(gè)運(yùn)行隊(duì)列。運(yùn)行時(shí)間片結(jié)束會(huì) 送入休息隊(duì)列 也有140 個(gè)休息隊(duì)列
Linu_ 內(nèi)核,搶占式多任務(wù),高優(yōu)先級(jí)槍?xiě)?zhàn)低優(yōu)先級(jí),但必須在固定的時(shí)間點(diǎn)上
守護(hù)進(jìn)程: daemon 內(nèi)核在系統(tǒng)的引導(dǎo)過(guò)程中啟動(dòng)跟終端無(wú)關(guān)
用戶進(jìn)程: 用戶通過(guò)終端打開(kāi)的進(jìn)程
注意:也可以在前臺(tái)啟動(dòng)的進(jìn)程送到后臺(tái)以守護(hù)進(jìn)程運(yùn)行
7、Linu_ 權(quán)限設(shè)置:
•Kernel
–系統(tǒng)啟動(dòng)時(shí)將內(nèi)核裝入內(nèi)存
–管理系統(tǒng)各種資源
•Shell
–用戶界面,提供用戶與內(nèi)核交互處理接口
–是命令解釋器,提供強(qiáng)大的編程環(huán)境
–bash,ash,pdksh,tcsh,ksh,sh,csh,zsh….
•Utility
–提供各種管理工具,應(yīng)用程序
8、進(jìn)程間通信方式
1. 管道(pipe),流管道(s_pipe)和有名管道(FIFO)
2. 信號(hào)(signal)
3. 消息隊(duì)列
4. 共享內(nèi)存
5. 信號(hào)量
6.套接字(socket)
7.RPC
8.Socket
9、進(jìn)程的狀態(tài)
運(yùn)行態(tài),就緒態(tài),睡眠態(tài)(可中斷,不可終端) 停止態(tài),僵死態(tài)
可中斷睡眠: 叫醒之后可以立馬工作
不可終端睡眠:進(jìn)程等待某種資源,即使叫醒也不能工作
僵死態(tài): 已經(jīng)執(zhí)行完任務(wù)等待回收的子進(jìn)程
10、Linu_ 文件系統(tǒng)
Linu_使用標(biāo)準(zhǔn)的目錄結(jié)構(gòu),在安裝的時(shí)候,安裝程序就已經(jīng)為用戶創(chuàng)建了文件系統(tǒng)和完整而固定的目錄組成形式,并指定了每個(gè)目錄的作用和其中的文件類(lèi)型。
/bin 二進(jìn)制可執(zhí)行命令
/dev 設(shè)備特殊文件
/etc 系統(tǒng)管理和配置文件
/etc/rc.d 啟動(dòng)的配置文件和腳本
/home 用戶主目錄的基點(diǎn),比如用戶user的主目錄就是/home/user,可以用~user表示
/lib 標(biāo)準(zhǔn)程序設(shè)計(jì)庫(kù),又叫動(dòng)態(tài)鏈接共享庫(kù),作用類(lèi)似windows里的.dll文件
/sbin 系統(tǒng)管理命令,這里存放的是系統(tǒng)管理員使用的管理程序
/tmp 公用的臨時(shí)文件存儲(chǔ)點(diǎn)
/root 系統(tǒng)管理員的主目錄(呵呵,特權(quán)階級(jí))
/mnt 系統(tǒng)提供這個(gè)目錄是讓用戶臨時(shí)掛載其他的文件系統(tǒng)。
/lost+found 這個(gè)目錄平時(shí)是空的,系統(tǒng)非正常關(guān)機(jī)而留下“無(wú)家可歸”的文件(windows下叫什么.chk)就在這里
/proc 虛擬的目錄,是系統(tǒng)內(nèi)存的映射。可直接訪問(wèn)這個(gè)目錄來(lái)獲取系統(tǒng)信 息。
/var 某些大文件的溢出區(qū),比方說(shuō)各種服務(wù)的日志文件
/usr 最龐大的目錄,要用到的應(yīng)用程序和文件幾乎都在這個(gè)目錄。其中包 含:
/usr/_11R6 存放_(tái) window的目錄
/usr/bin 眾多的應(yīng)用程序
/usr/sbin 超級(jí)用戶的一些管理程序
/usr/doc linu_文檔
/usr/include linu_下開(kāi)發(fā)和編譯應(yīng)用程序所需要的頭文件
/usr/lib 常用的動(dòng)態(tài)鏈接庫(kù)和軟件包的配置文件
/usr/man 幫助文檔
/usr/src 源代碼,linu_內(nèi)核的源代碼就放在/usr/src/linu_里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的庫(kù)
文件系統(tǒng)指文件存在的物理空間,linu_系統(tǒng)中每個(gè)分區(qū)都是一個(gè)文件系統(tǒng),都有自己的目錄層次結(jié)構(gòu)。linu_會(huì)將這些分屬不同分區(qū)的、單獨(dú)的文件系統(tǒng)按一定的方式形成一個(gè)系統(tǒng)的總的目錄層次結(jié)構(gòu)。一個(gè)操作系統(tǒng)的運(yùn)行離不開(kāi)對(duì)文件的操作,因此必然要擁有并維護(hù)自己的文件系統(tǒng)。
Llinu_文件系統(tǒng)使用索引節(jié)點(diǎn)來(lái)記錄文件信息
掛載點(diǎn)必須是一個(gè)目錄。
2、一個(gè)分區(qū)掛載在一個(gè)已存在的目錄上,這個(gè)目錄可以不為空,但掛載后這個(gè)目錄下以前的內(nèi)容將不可用。
對(duì)于其他操作系統(tǒng)建立的文件系統(tǒng)的掛載也是這樣。但是需要理解的是:光盤(pán)、軟盤(pán)、其他操作系統(tǒng)使用的文件系統(tǒng)的格式與linu_使用的文件系統(tǒng)格式是不一樣的。光盤(pán)是ISO9660;軟盤(pán)是fat16或e_t2;
光驅(qū)和軟驅(qū)是不自動(dòng)掛載的,參數(shù)設(shè)置為noauto。(如果你非要設(shè)成自動(dòng)掛載,你要確保每次開(kāi)機(jī)時(shí)你的光驅(qū)和軟驅(qū)里都要有盤(pán)
Linu_ 系統(tǒng)上查看及管理工具
pstree,ps,pidof,pgrep,top,htop,glances,pmap,vmstat,dstat,kill,pkill,job,nohup,nice,renicekillall
Linu_操作系統(tǒng)的常見(jiàn)問(wèn)題及解答
1.Linu_開(kāi)機(jī)啟動(dòng)流程詳細(xì)步驟是什么?系統(tǒng)安裝完,忘記密碼如何破解?
答:
開(kāi)機(jī)步驟由a--h
a、首先是bios加電自檢、初始化,這個(gè)過(guò)程會(huì)檢測(cè)相關(guān)硬件(cpu、內(nèi)存、顯卡、硬盤(pán)等),然后讀取一個(gè)啟動(dòng)順序,以硬盤(pán)為例,會(huì)讀取硬盤(pán)中的MBR。
b、加載內(nèi)核 讀取/boot里邊的配置文件。
c、啟動(dòng)初始化進(jìn)程,開(kāi)始運(yùn)行/sbin/init
d、讀取/etc/inittab確定運(yùn)行級(jí)別
e、根據(jù)/etc/rc.d/rcN.d加載開(kāi)機(jī)啟動(dòng)程序,rcN.d都是鏈接文件,都指向/etc/rc.d/init.d 再運(yùn)行/etc/rc.d/rc.local
f、用戶登錄(3種方式 ssh、命令行、圖形化)
g、進(jìn)入login shell,以命令行為例,首先讀取/etc/profile這個(gè)全局配置文件,然后再針對(duì)當(dāng)前用戶讀取家目錄中的 ~/.bash_profile和~/.bash_login和~/.profile
h、最后一步就是打開(kāi)non-login shell,進(jìn)入圖形化后 手動(dòng)新建一個(gè)終端,但這個(gè)shell不讀取/etc/profile
忘記密碼
a、重啟系統(tǒng),在GRUB界面,選取忘記密碼的系統(tǒng),按e鍵進(jìn)入編輯模式
b、選項(xiàng)Kernel.....按e鍵進(jìn)行編輯
c、在編輯界面rhgb quiet后加空格,然后輸入"single"或"1" 回車(chē)
d、按b啟動(dòng) 進(jìn)入單用戶模式
f、進(jìn)入系統(tǒng)后passwd回車(chē)輸入新密碼(如果有selinu_,先暫時(shí)關(guān)閉 setenforce 0)
2.企業(yè)中l(wèi)inu_服務(wù)器系統(tǒng)分區(qū)標(biāo)準(zhǔn)是什么?(硬盤(pán)為300G,內(nèi)存16G)
答:
/boot 200M
/swap 16G
/ 70G
/data 剩下的全部空間
3.某一天突然發(fā)現(xiàn)Linu_系統(tǒng)文件只讀,該怎么辦呢?完整操作步驟。
答:
首先把系統(tǒng)關(guān)機(jī),然后以光盤(pán)啟動(dòng)進(jìn)入救援模式(linu_ rescue),執(zhí)行"fsck.e_t3 -y /dev/sda2" (假如只讀的分區(qū)類(lèi)型為e_t3,分區(qū)為/dev/sda2)
4.安裝一臺(tái)系統(tǒng)使用DVD光盤(pán)安裝,如何安裝50臺(tái)Linu_系統(tǒng)如何安裝呢?思考一下。
答:
a、可以多用幾張DVD一臺(tái)一臺(tái)的安裝。
b、可以用Kickstart批量安裝(客戶端從網(wǎng)絡(luò)啟動(dòng))
5.用虛擬機(jī)安裝了一臺(tái)Linu_系統(tǒng),突然想克隆一臺(tái)服務(wù)器,克隆后發(fā)現(xiàn)無(wú)法上網(wǎng),如何解決?
答:
a、編輯網(wǎng)卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,將HWADDR和MAC地址這兩行刪除。
b、修改文件/etc/udev/rules.d/70-persistent-net.rules,刪除之前eth0所在的行,將下一行eth1修改為eth0
c、reboot
6.Linu_網(wǎng)卡配置文件路徑是什么?要使服務(wù)器上外網(wǎng),必須滿足的條件有哪些?需要配置什么?
答:
網(wǎng)卡配置文件路徑:/etc/sysconfig/network-scripts/ifcfg-eth__表數(shù)字)
要上外網(wǎng)需要:能夠鏈接internet的網(wǎng)線(或無(wú)線)、有網(wǎng)卡
需要配置:IP、netmask、gateway、dns(自動(dòng)或手動(dòng)都o(jì)k,服務(wù)器一般自動(dòng))
7.一般可以使用什么軟件遠(yuǎn)程linu_服務(wù)器?通過(guò)什么上傳文件和下載文件?
答:
遠(yuǎn)程連接linu_的軟件:_shell、SecureCRT、putty、vnc(圖形化)
上傳和下載文件:lrzsz、sftp
8./mnt目錄主要用于什么?/root目錄跟root用戶有什么關(guān)系?/根目錄與/boot目錄有什么聯(lián)系?
答:
/mnt一般用于掛載外接設(shè)備
/root是一個(gè)目錄,是root用戶的家目錄
/boot目錄是/目錄下的一個(gè)子目錄
9.某一天誤操作,執(zhí)行了rm -rf _,會(huì)有哪些情況發(fā)生?請(qǐng)舉例。
答:
a、如果當(dāng)前目錄為"/tmp" ,那么這個(gè)目錄下的東西會(huì)全部刪除(默認(rèn)不包含隱藏文件)
b、如果當(dāng)前目錄為"/",那么系統(tǒng)上的數(shù)據(jù)將會(huì)丟失,且無(wú)法啟動(dòng),系統(tǒng)崩潰(謹(jǐn)慎使用這個(gè)命令)