1.解釋下什麼是GPL,GNU,自由軟體?
GPL:(通用公共許可證):一種授權,任何人有權取得、修改、重新釋出自由軟體的權力。
GNU:(革奴計劃):目标是建立一套完全自由、開放的的作業系統。
自由軟體:是一種可以不受限制地自由使用、複制、研究、修改和分發的軟體。主要許可證有GPL和BSD許可證兩種。
2.如何選擇Linux作業系統版本?
一般來講,桌面使用者首選Ubuntu;伺服器首選RHEL或CentOS,兩者中首選CentOS。
根據具體要求:
①安全性要求較高,則選擇Debian或者FreeBSD。
②需要使用資料庫進階服務和電子郵件網絡應用的使用者可以選擇SUSE。
③想要新技術新功能功能可以選擇Feddora,Feddora是RHEL和CentOS的一個測試版和預釋出版本。
④根據現有狀況,絕大多數網際網路公司選擇CentOS。現在比較常用的是6系列,現在市場占有大概一半左右。另外的原因是CentOS更側重伺服器領域,并且無版權限制。
3.初學者在Linux系統的開機啟動項如何選擇?
建議選擇五個開機啟動項:
①.crond: 該服務用于周期地執行系統及使用者配置的計劃任務。有要周期性執行的任務計劃需要開啟,此服務是生産場景必須要用的一個軟體。
②.iptables: iptables包過濾防火牆,有外網IP時,考慮開啟。
③.network: 啟動系統時,若想激活/關閉啟動時的各個網絡接口,則應(必須)考慮開啟。
④.sshd: 遠端連接配接Linux伺服器時需要用到這個服務程式,是以必須要開啟,否則将無法遠端連接配接到Linux伺服器。
⑤.rsyslog: 是作業系統提供的一種機制,系統的守護程式通常會使用rsyslog将各種資訊收集寫入到系統日志檔案中,CentOS6以前此服務的名字為syslog。
⑥.sysstat: 是一個軟體包,包含監測系統性能及效率的一組工具,這些工具對于Linux系統性能資料很有幫助,比如CPU使用率、硬碟和網絡吞吐資料等,這些資料的分析,有利于判斷系統運作是否正常,是以它是提高系統運作效率、安全運作服務的助手。
4.請描述Linux系統優化的12個步驟。
⑴登入系統:不使用root登入,通過sudo授權管理,使用普通使用者登入。
⑵禁止SSH遠端:更改預設的遠端連接配接SSH服務及禁止root遠端連接配接。
⑶時間同步:定時自動更新伺服器時間。
⑷配置yum更新源,從國内更新下載下傳安裝rpm包。
⑸關閉selinux及iptables(iptables工作場景如有wan ip,一般要打開,高并發除外)
⑹調整檔案描述符數量,程序及檔案的打開都會消耗檔案描述符。
⑺定時自動清理/var/spool/clientmquene/目錄垃圾檔案,防止節點被占滿(c6.4預設沒有sendmail,是以可以不配。)
⑻精簡開機啟動服務(crond、sshd、network、rsyslog)
⑼Linux核心參數優化/etc/sysctl.conf,執行sysct -p生效。
更改字元集,支援中文,但是還是建議使用英文,防止亂碼問題出現。
⑾鎖定關鍵系統檔案(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 處理以上内容後,把chatter改名,就更安全了。)
⑿清空/etc/issue,去除系統及核心版本登陸前的螢幕顯示。
5.描述Linux運作級别0-6的各自含義
0:關機模式
1:單使用者模式<==破解root密碼
2:無網絡支援的多使用者模式
3:有網絡支援的多使用者模式(文本模式,工作中最常用的模式)
4:保留,未使用
5:有網絡支援的X-windows支援多使用者模式(桌面)
6: 重新開機系統,即重新開機
6.描述Linux系統從開機到登陸界面的啟動過程
⑴開機BIOS自檢,加載硬碟。
⑵讀取MBR,MBR引導。
⑶grub引導菜單(Boot Loader)。
⑷加載核心kernel。
⑸啟動init程序,依據inittab檔案設定運作級别
⑹init程序,執行rc.sysinit檔案。
⑺啟動核心子產品,執行不同級别的腳本程式。
⑻執行/etc/rc.d/rc.local
⑼啟動mingetty,進入系統登陸界面。
7.描述Linux下軟連結和硬連結的差別
在Linux系統中,連結分為兩種,一種是硬連結(Hard link),另一種稱為符号連結或軟連結(Symbolic Link)。
①預設不帶參數的情況下,ln建立的是硬連結,帶-s參數的ln指令建立的是軟連結。
②硬連結檔案與源檔案的inode節點号相同,而軟連結檔案的inode節點号,與源檔案不同,
③ln指令不能對目錄建立硬連結,但可以建立軟連結。對目錄的軟連結會經常使用到。
④删除軟連結檔案,對源檔案和硬連結檔案無任何影響。
⑤删除檔案的硬連結檔案,對源檔案及軟連結檔案無任何影響。
⑥删除連結檔案的源檔案,對硬連結檔案無影響,會導緻其軟連結失效(紅底白字閃爍狀)。
⑦同時删除源檔案及其硬連結檔案,整個檔案才會被真正的删除。
⑧很多硬體裝置的快照功能,使用的就是類似硬連結的原理。
⑨軟連結可以跨檔案系統,硬連結不可以跨檔案系統。
8.生産場景如何對linux系統進行合理規劃分區?
分區的根本原則是簡單、易用、友善批量管理。根據伺服器角色定位建議如下:
①單機伺服器:如8G記憶體,300G硬碟
分區: /boot 100-200M,swap 16G,記憶體大小8G*2,/ 80G,/var 20G(也可不分),/data 180G(存放web及db資料)
優點:資料盤和系統盤分開,有利于出問題時維護。
RAID方案:視資料及性能要求,一般可采用raid5折中。
②負載均衡器(如LVS等)
分區:/boot 100-200M,swap 記憶體的1-2倍,/ ,
優點:簡單友善,隻做轉發資料量很少。
RAID方案:資料量小,重要性高,可采用RAID1
③負載均衡下的RS server
分區: /boot 100-200M,swap 記憶體的1-2倍,/
優點:簡單友善,因為有多機,對資料要求低。
RAID方案:資料量大,重要性不高,有性能要求,資料要求低,可采用RAID0
④資料庫伺服器mysql及oracle如16/32G記憶體
分區:/boot 100-200M,swap 16G,記憶體的1倍,/ 100G,/data 剩餘(存放db資料)
優點:資料盤和系統盤分開,有利于出問題時維護,及保持資料完整。
RAID方案:視資料及性能要求主庫可采取raid10/raid5,從庫可采用raid0提高性能(讀寫分離的情況下。)
⑤存儲伺服器
分區:/boot 100-200M,swap 記憶體的1-2倍,/ 100G,/data(存放資料)
優點:此伺服器不要分區太多。隻做備份,性能要求低。容量要大。
RAID方案:可采取sata盤,raid5
⑥共享存儲伺服器(如NFS)
優點:此伺服器不要分區太多。NFS共享比存儲多的要求就是性能要求。
RAID方案:視性能及通路要求可以raid5,raid10,甚至raid0(要有高可用或雙寫方案)
⑦監控伺服器cacti,nagios
分區:/boot 100-200M,swap 記憶體的1-2倍,/
優點:重要性一般,資料要求也一般。
RAID方案:單盤或雙盤raid1即可。三盤就RAID5,看容量要求加盤即可。
9.描述Linux下檔案删除的原理
Linux系統是通過link的數量來控制檔案删除的,隻有當一個檔案不存在任何link的時候,這個檔案才會被删除。一般來說每個檔案兩個link計數器來控制i_count和i_nlink。當一個檔案被一個程式占用的時候i_count就加1。當檔案的硬連結多一個的時候i_nlink也加1。删除一個檔案,就是讓這個檔案,沒有程序占用,同時i_link數量為0。
10.請簡單描述VI編輯器的使用
①vi編輯器是linux系統下最最基本和最常用的标準文本編輯器。
②vi編輯器有三種工作模式:普通模式、編輯模式、指令模式。
③普通模式下的鍵盤輸入任何字元都是當作指令來執行的,也可以輸入指令進行光标的移動,字元、單詞、行的複制、粘帖以及删除等操作。
④編輯模式主要用于文本的輸入。在該模式下,使用者輸入的任何字元都被作為檔案的内容儲存起來。
⑤指令模式下,使用者可以對檔案進行一些如字元串查找、替換、顯示行号等操作還是必須要進入指令模式的。
⑥在普通模式下輸入冒号即可進入指令模式,此時vi視窗的狀态行會顯示出冒号,等待使用者輸入指令。“i”插入模式,即可以進行編輯。使用者輸入完成後,按【Esc】之後編輯器又傳回到普通模式下,在指令模式下,儲存退出,可以使用的指令為wq和x。前面加!表示強制退出,強制儲存等。
11.請簡單說出使用者管理的相關指令及用途
#組管理指令
#使用者管理指令
12.請簡述基礎正規表達式grep進階參數的使用
常用參數:
特殊字元注意事項:
注:使用grep或sed要對{}轉義。即\{\}.egrep就不需要轉義了。
13.請簡述基礎正規表達式sed進階參數的使用
解答:
sed取行,要特别注意sed -n 's###g' filename 的使用,sed的的功能可以記住正規表達式的一部分,其中,\1為第一個記住的模式即第一個小括号中的比對内容,\2第二記住的模式,即第二個小括号中的比對内容,sed最多可以記住9個。
實際字元的選取最好要唯一,正規表達式是貪婪的,總是盡可能的比對更遠的符合比對的内容。另外注意字元串中的空格。
14.請給出檢視目前哪些使用者線上的Linux指令
15.請你描述下crontab的作用和文法,以及書寫定時任務注意的要點。
設定crontab後我們可以使得Linux主動執行的在固定的間隔時間,執行指定的系統指令或 shell script腳本。生産環境可以用來日志分析或生産備份等。
文法格式:
舉例:
前五段是時間間隔的設定,機關分别是分鐘、小時、日、月、周(盡量避免使用日月和周同時出現,以免造成系統誤判)。
7個基本要領:
特殊:
16.請列出Linux中你認為重要的檔案夾及包含内容
① /目錄下的檔案夾裡面分别是以下内容:
/usr 包含所有的指令和程式庫、文檔和其他檔案及目前linux發行版的主要應用程式
/var 包含正在操作的檔案,還有記錄檔案、加密檔案、臨時檔案等
/home 除了root使用者外的所有使用者的配置檔案,個性化檔案和主目錄,即家目錄
/proc 虛拟目錄,該目錄實際上指向記憶體而不是硬碟
/bin 系統執行檔案(二進制檔案)普通使用者可以使用
/sbin 系統執行檔案(二進制檔案)不能被普通使用者使用,通常由root使用者使用
/etc 作業系統的配置檔案
/root root使用者的家目錄
/dev 系統裝置檔案,linux所有裝置都是以檔案的形式被處理,該目錄不包含驅動程式
/lib 程式和核心子產品共享庫(僅限于/下的程式)
/boot 系統引導、啟動檔案,通常grub也在這裡
/opt 可選應用程式目錄
/tmp 臨時檔案,系統會自動清理
/lost+found 恢複檔案(類似資源回收筒)
/media 所有的磁盤(有時有CD光牒)将以檔案夾的形式挂載,CD光牒鏡像也可以挂載
/cd-rom 挂載CD光牒的地方
② /usr目錄下的檔案比較重要,其作用下面分類列出:
/usr/X11 X-windows桌面環境
/usr/doc linux系統的文檔資料
/usr/share 獨立于目前計算機的資料結構,如字典中的詞
/usr/bin 類似/bin但是不參與啟動,大部分指令都在這裡
/usr/local 本地管理者安裝的應用程式
/usr/local/bin 使用者安裝的應用程式(部分)
③ /proc目錄的内容
/proc/cpuinfo 處理器的資訊
/proc/devices 目前運作核心的所有裝置清單
/proc/dma 目前正在使用中的DMA通道
/proc/filesystem 目前運作核心所配置的檔案系統
/proc/interrupts 目前使用的中斷和曾經有多少個中斷
/proc/ioports 正在使用的I/O端口
17.給出正确的關機和重新開機伺服器的指令
⑴shutdown
[-t] 指定在多長時間之後關閉系統 [-r] 重新開機系統 [-k] 并不真正關機,隻是給每個登入使用者發送警告信号 [-h] 關閉系統(halt)
⑵halt
halt是最簡單的關機指令,其實際上是調用shutdown -h指令。halt執行時,殺死應用程序,檔案系統寫操作完成後就會停止核心。
halt指令的部分參數如下:
[-f] 沒有調用shutdown而強制關機或重新開機 [-i] 關機或重新啟動之前,關掉所有的網絡接口 [-p] 關機時調用poweroff,此選項為預設選項
⑶reboot
reboot工作過程與halt類似,作用是重新啟動,而halt是關機。其參數與halt類似。
⑷init
init是所有程序的祖先,其程序号始終為1。init用于切換系統的運作級别,切換的工作是立即完成的。init 0指令用于立即将系統運作級别切換為0,即關機;init 6指令用于将系統運作級别切換為6,即重新啟動。
18.請簡述修改/etc/sudoers配置檔案的注意事項
①别名的名稱可以包含大寫字母。數字、下劃線。如果是字母必須要大寫,(别名為一群擁有相同屬性的集合)。
②一個别名下面可以有多個成員,成員間通過半角(,)逗号隔開。成員必須有效實際存在。
别名成員受别名類型 Host_Alias、User_Alias、Runas_Alias、Cmnd_Alias制約,定義什麼類型的别名,就要有相什麼類型的成員比對。
③使用者組前面必須加%号。指令别名下的成員必須是檔案或目錄的絕對路徑。
④指定切換使用者要用()括号括起來,如果省略,則預設root使用者,如果括号裡是ALL,則代表能切換到所有使用者。
⑤指令路徑要使用全路徑。
⑥别名規則每行算一個規則,一行容不下時用\續行。另外超過一行,用反斜線換行。
⑦一般不建議先給all權限,後面排除。用什麼權限,就給什麼權限。(注意權限,文法)。
如果不需要密碼直接運作指令的應該加NOPASSWD參數。
⑧禁止某類程式或指令執行,要在指令動作前面加上“!”号,并放在允許執行指令之後。
19.請描述如何實作linux系統集權分治的權限分級精細管理?
20.請寫出下面Linux CRT指令行快捷鍵指令的功能?
21.請描述伺服器賬戶日志審計的5種解決方案。
22.如果一台辦公室内主機無法上網(打不開網站),請給出你的排查步驟?
23.描述Linux shell中單引号、雙引号及不加引号的簡單差別
單引号:所見即所得,即将單引号内的内容原樣輸出,或者描述為單引号裡面看到的是什麼就輸出什麼。
雙引号:把雙引号裡面的内容給輸出出來,如果内容中有指令、變量等,會先把,變來那個、指令解析出結果,然後輸出最終内容。
雙引号内的指令或者變量寫法’指令或變量’或$(指令或變量)
無引号:把内容輸出出來,可能不會鍵含有空格的字元串,視為一個整體輸出,如果内容中有指令、變量等,會先把變量、指令解析出來,然後輸出最終内容,如果字元串中帶有空格等特殊字元,則不能完整輸出,需要改加雙引号。一般連續的字元串,數字,路徑等可以用,不過最好用雙引号,替代之。
24.請簡述Linux啟動過程中幾個重要配置檔案的執行過程
Linux 登入後,配置執行順序為:
關于各個檔案的作用說明:
(1)/etc/environment:此配置檔案設定基本的PATH變量,及系統目前語言變量,雖然比較短,但卻在系統啟動中占據舉足輕重的作用,比如如下是我的系統中的内容:
(2)/etc/profile: 此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行. 并從/etc/profile.d目錄的配置檔案中搜集shell的設定。
(3)/etc/bash.bashrc: 為每一個運作bash shell的使用者執行此檔案.當bash shell被打開時,該檔案被讀取。
(4)~/.bash_profile: 每個使用者都可使用該檔案輸入專用于自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變量,執行使用者的.bashrc檔案。
(5)~/.bashrc: 該檔案包含專用于你的bash shell的bash資訊,當登入時以及每次打開新的shell時,該該檔案被讀取。
(6)~/.bash_logout: 當每次退出系統(退出bash shell)時,執行該檔案. 另外,/etc/profile中設定的變量(全局)的可以作用于任何使用者,而~/.bashrc等中設定的變量(局部)隻能繼承 /etc/profile中的變量,他們是"父子"關系。
(7)~/.bash_profile 是互動式、login 方式進入 bash 運作的~/.bashrc 是互動式 non-login 方式進入 bash 運作的通常二者設定大緻相同,是以通常前者會調用後者。
25.請描述下列路徑的内容是做什麼的?
26.請給出Linux中eth0的IP位址和廣播位址的指令,需使用cut、awk、grep、sed指令。
27.請輸出你知道的20 個LINUX 指令及作用