Linux面試題

1.簡述Linux文件系統通過i節點把文件的邏輯結構和物理結構轉換的工作過程。
參考答案:

Linux通過i節點表將文件的邏輯結構和物理結構進行轉換。
i節點是一個64字節長的表,表中包含了文件的相關信息,其中有文件的大小、文件所有者、文件的存取許可方式以及文件的類型等重要信息。在i節點表中最重要的內容是磁盤地址表。在磁盤地址表中有13個塊號,文件將以塊號在磁盤地址表中出現的順序依次讀取相應的塊。Linux文件系統通過把i節點和文件名進行連接,當需要讀取該文件時,文件系統在當前目錄表中查找該文件名對應的項,由此得到該文件相對應的i節點號,通過該i節點的磁盤地址表把分散存放的文件物理塊連接成文件的邏輯結構。

2.簡述進程的啓動、終止的方式以及如何進行進程的查看。
參考答案:

在Linux中啓動一個進程有手工啓動和調度啓動兩種方式: (1)手工啓動 用戶在輸入端發出命令,直接啓動一個進程的啓動方式。可以分爲:
①前臺啓動:直接在SHELL中輸入命令進行啓動。 ②後臺啓動:啓動一個目前並不緊急的進程,如打印進程。 (2)調度啓動
系統管理員根據系統資源和進程佔用資源的情況,事先進行調度安排,指定任務運行的時間和場合,到時候系統會自動完成該任務。
經常使用的進程調度命令爲:at、batch、crontab。bixi

  1. 簡述DNS進行域名解析的過程。
    參考答案:

首先,客戶端發出DNS請求翻譯IP地址或主機名。DNS服務器在收到客戶機的請求後:
(1)檢查DNS服務器的緩存,若查到請求的地址或名字,即向客戶機發出應答信息;
(2)若沒有查到,則在數據庫中查找,若查到請求的地址或名字,即向客戶機發出應答信息;
(3)若沒有查到,則將請求發給根域DNS服務器,並依序從根域查找頂級域,由頂級查找二級域,二級域查找三級,直至找到要解析的地址或名字,即向客戶機所在網絡的DNS服務器發出應答信息,DNS服務器收到應答後現在緩存中存儲,然後,將解析結果發給客戶機。
(4)若沒有找到,則返回錯誤信息。

1、當客戶機提出查詢請求時,首先在本地計算機的緩存中查找。如果在本地無法獲得查詢信息,則將查詢請求發給DNS服務器。
2、首先客戶機將域名查詢請求發送到本地DNS服務器,當本地DNS服務器接到查詢後,首先在該服務器管理的區域的記錄中查找,如果找到該記錄,則利用此記錄進行解析;如果沒有區域信息可以滿足查詢要求,服務器在本地的緩存中查找。
3、如果本地服務器不能在本地找到客戶機查詢的信息,將客戶機請求發送到根域名DNS服務器。
4、根域名服務器負責解析客戶機請求的根域部分,它將包含下一級域名信息的DNS服務器地址返回給客戶機的DNS服務器地址。
5、客戶機的DNS服務器利用根域名服務器解析的地址訪問下一級DNS服務器,得到再下一級域我的DNS服務器地址。
6、按照上述遞歸方法逐級接近查詢目標,最後在有目標域名的DNS服務器上找到相應IP地址信息。
7、客戶機的本地DNS服務器將遞歸查詢結果返回客戶機。
8、客戶機利用從本地DNS服務器查詢得到的IP訪問目標主機,就完成了一個解析過程。

4.系統管理員的職責包括那些?管理的對象是什麼?
參考答案:

系統管理員的職責是進行系統資源管理、設備管理、系統性能管理、安全管理和系統性能監測。管理的對象是服務器、用戶、服務器的進程及系統的各種資源等。

5.簡述安裝Slackware Linux系統的過程。
參考答案:

(1)對硬盤重新分區。 (2)啓動Linux系統(用光盤、軟盤等)。
(3)建立Linux主分區和交換分區。(4)用setup命令安裝Linux系統。
(5)格式化Linux主分區和交換分區(6)安裝Linux軟件包
(7)安裝完畢,建立從硬盤啓動Linux系統的LILO啓動程序,或者製作一張啓動Linux系統的軟盤。重新啓動Linux系統。

6.什麼是靜態路由,其特點是什麼?什麼是動態路由,其特點是什麼?
參考答案:

靜態路由是由系統管理員設計與構建的路由表規定的路由。適用於網關數量有限的場合,且網絡拓樸結構不經常變化的網絡。其缺點是不能動態地適用網絡狀況的變化,當網絡狀況變化後必須由網絡管理員修改路由表。
動態路由是由路由選擇協議而動態構建的,路由協議之間通過交換各自所擁有的路由信息實時更新路由表的內容。動態路由可以自動學習網絡的拓樸結構,並更新路由表。其缺點是路由廣播更新信息將佔據大量的網絡帶寬。
動態路由協議:RIP IGRP EIGRP OSPF BGP IS-IS

7.進程的查看和調度分別使用什麼命令?
參考答案:

進程查看的命令是ps和top。 進程調度的命令有at,crontab,batch,kill。

8.當文件系統受到破壞時,如何檢查和修復系統?
參考答案:

成功修復文件系統的前提是要有兩個以上的主文件系統,並保證在修復之前首先卸載將被修復的文件系統。
使用命令fsck對受到破壞的文件系統進行修復。fsck檢查文件系統分爲5步,每一步檢查系統不同部分的連接特性並對上一步進行驗證和修改。在執行fsck命令時,檢查首先從超級塊開始,然後是分配的磁盤塊、路徑名、目錄的連接性、鏈接數目以及空閒塊鏈表、i-node。

9.解釋i節點在文件系統中的作用。
參考答案:

在linux文件系統中,是以塊爲單位存儲信息的,爲了找到某一個文件在存儲空間中存放的位置,用i節點對一個文件進行索引。I節點包含了描述一個文件所必須的全部信息。所以i節點是文件系統管理的一個數據結構。

10.什麼是符號鏈接,什麼是硬鏈接?符號鏈接與硬鏈接的區別是什麼?
參考答案:

鏈接分硬鏈接和符號鏈接。
符號鏈接可以建立對於文件和目錄的鏈接。符號鏈接可以跨文件系統,即可以跨磁盤分區。符號鏈接的文件類型位是l,鏈接文件具有新的i節點。
硬鏈接不可以跨文件系統。它只能建立對文件的鏈接,硬鏈接的文件類型位是-,且硬鏈接文件的i節點同被鏈接文件的i節點相同。

簡答題

1.用Shell編程,判斷一文件是不是字符設備文件,如果是將其拷貝到 /dev 目錄下。
參考程序:

#!/bin/sh
FILENAME=
echo “Input file name:”
read FILENAME
if [ -c "$FILENAME" ] 
then
cp $FILENAME /dev
fi 

2.請下列shell程序加註釋,並說明程序的功能和調用方法:#!/bin/sh

#!/bin/sh
#
# /etc/rc.d/rc.httpd
#
# Start/stop/restart the Apache web server.
#
# To make Apache start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.httpd
#
case "$1" in
'start')
/usr/sbin/apachectl start ;;
'stop')
/usr/sbin/apachectl stop ;;
'restart')
/usr/sbin/apachectl restart ;;
*)
echo "usage $0 start|stop|restart" ;;
esac

參考答案:
(1)程序註釋

#!/bin/sh 定義實用的shell
#
# /etc/rc.d/rc.httpd 註釋行,凡是以星號開始的行均爲註釋行。
#
# Start/stop/restart the Apache web server.
#
# To make Apache start automatically at boot, make this

# file executable: chmod 755 /etc/rc.d/rc.httpd
#


case "$1" in #case結構開始,判斷“位置參數”決定執行的操作。
本程序攜帶一個“位置參數”,即$1

'start') #若位置參數爲start
/usr/sbin/apachectl start ;; #啓動httpd進程
'stop') #若位置參數爲stop
/usr/sbin/apachectl stop ;; #關閉httpd進程
'restart') #若位置參數爲stop
/usr/sbin/apachectl restart ;; #重新啓動httpd進程
*) #若位置參數不是start、stop或restart時
echo "usage $0 start|stop|restart" ;; #顯示命令提示信息:程序的調用方法
esac #case結構結束2)程序的功能是啓動,停止或重新啓動httpd進程
(3)程序的調用方式有三種:啓動,停止和重新啓動。

3.設計一個shell程序,添加一個新組爲class1,然後添加屬於這個組的30個用戶,用戶名的形式爲stdxx,其中xx從01到30。
參考答案:

#!/bin/sh 
i=1
groupadd class1
while [ $i -le 30 ]
do
if [ $i -le 9 ] ;then
USERNAME=stu0${i}
else
USERNAME=stu${i}
fi
useradd $USERNAME 
mkdir /home/$USERNAME
chown -R $USERNAME /home/$USERNAME
chgrp -R class1 /home/$USERNAME 
i=$(($i 1))
done

4.編寫shell程序,實現自動刪除50個賬號的功能。賬號名爲stud1至stud50。
參考程序:

#!/bin/sh
i=1
while [ $i -le 50 ]
do
userdel -r stud${i}
i=$(($i 1 ))
done

5.某系統管理員需每天做一定的重複工作,請按照下列要求,編制一個解決方案:
(1)在下午4 :50刪除/abc目錄下的全部子目錄和全部文件;
(2)從早8:00~下午6:00每小時讀取/xyz目錄下x1文件中每行第一個域的全部數據加入到/backup目錄下的bak01.txt文件內;
(3)每逢星期一下午5:50將/data目錄下的所有目錄和文件歸檔並壓縮爲文件:backup.tar.gz;
(4)在下午5:55將IDE接口的CD-ROM卸載(假設:CD-ROM的設備名爲hdc);
(5)在早晨8:00前開機後啓動。
參考答案:
解決方案:

(1)用vi創建編輯一個名爲prgx的crontab文件; (2)prgx文件的內容: 50 16 * * * rm -r /abc/* 0
8-18/1 * * * cut -f1 /xyz/x1 >;>; /backup/bak01.txt 50 17 * * * tar
zcvf backup.tar.gz /data 55 17 * * * umount /dev/hdc
(3)由超級用戶登錄,用crontab執行 prgx文件中的內容: root@xxx:#crontab
prgx;在每日早晨8:00之前開機後即可自動啓動crontab。

6.設計一個shell程序,在每月第一天備份並壓縮/etc目錄的所有內容,存放在/root/bak目錄裏,且文件名爲如下形式yymmdd_etc,yy爲年,mm爲月,dd爲日。Shell程序fileback存放在/usr/bin目錄下。
參考答案:
(1)編寫shell程序fileback:

#!/bin/sh
DIRNAME=`ls /root | grep bak`
if [ -z "$DIRNAME" ] ; then
mkdir /root/bak
cd /root/bak
fi
YY=`date %y`
MM=`date %m`
DD=`date %d`
BACKETC=$YY$MM$DD_etc.tar.gz
tar zcvf $BACKETC /etc
echo "fileback finished!"

(2)編寫任務定時器:

echo “0 0 1 * * /bin/sh /usr/bin/fileback” >; /root/etcbakcron crontab
/root/etcbakcron 或使用crontab -e 命令添加定時任務: 0 1 * * * /bin/sh
/usr/bin/fileback

發佈了56 篇原創文章 · 獲贊 74 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章