1. 程式人生 > 其它 >Linux期末複習整理

Linux期末複習整理

技術標籤:複習專用linux

  1. 下面哪個Linux命令可以一次顯示一頁內容?
    A. pause
    B. cat
    C. more
    D. grep

  2. 怎樣更改一個檔案的許可權設定?
    A. attrib
    B. chmod
    C. change
    D. file
    chmod [option] mode files
    例:chmod -R 777 filename

  3. 下面哪個引數可以刪除一個使用者並同時刪除使用者的主目錄?
    A. rmuser -r
    B. deluser -r
    C. userdel -r
    D. usermgr -r

  4. 下面哪條命令可以把f1.txt複製為f2.txt?
    A. cp f1.txt | f2.txt

    B. cat f1.txt |f2.txt
    C. cat f1.txt > f2.txt
    D. copy f1.txt | f2.txt

  5. 顯示一個檔案最後幾行的命令是:
    A. tac
    B. tail
    C. rear
    D. last

  6. 如何快速切換到使用者John的主目錄下?
    A. cd @John
    B. cd #John
    C. cd &John
    D. cd ~John

  7. 如何在檔案中查詢顯示所有以"*"打頭的行?
    A. find * file
    B. wc -l * < file
    C. grep -n * file
    D. grep ‘^*’ file

  8. 在ps命令中什麼引數是用來顯示所有使用者的程序的?
    A. a
    B. b
    C. u
    D. x

  9. 如何刪除一個非空子目錄/tmp?
    A. del /tmp/*
    B. rm -rf /tmp
    C. rm -Ra /tmp/*
    D. rm -rf /tmp/*

  10. 對所有使用者的變數設定,應當放在哪個檔案下?
    A. /etc/bashrc
    B. /etc/profile
    C. ~/.bash_profile
    D. /etc/skel/.bashrc

  11. 11.在vi中退出不儲存的命令是?
    A. :q
    B. :w
    C. :wq
    D. :q!

  12. 使用什麼命令檢測基本網路連線或檢視網路的介面狀況?
    A. ping
    B. route
    C. netstat

    D. ifconfig

  13. 下面哪個命令可以壓縮部分檔案:
    A. tar -dzvf filename.tgz *
    B. tar -tzvf filename.tgz *
    C. tar -czvf filename.tgz
    D. tar -xzvf filename.tgz * //解壓tar.gz

  14. 什麼命令解壓縮tar檔案?
    A. tar -czvf filename.tgz
    B. tar -xzvf filename.tgz
    C. tar -tzvf filename.tgz
    D. tar -dzvf filename.tgz

  15. 檔案許可權一共10位長度,分成四段,第三段表示的內容是
    A 檔案型別
    B 檔案所有者的許可權
    C 檔案所有者所在組的許可權
    D 其他使用者的許可權

  16. 刪除檔案命令為
    A mkdir
    B rmdir //刪除目錄
    C mv
    D rm

  17. 改變檔案所有者的命令為:
    A chmod
    B touch
    C chown
    D cat

  18. 在給定檔案中查詢與設定條件相符字串的命令為:
    A grep
    B gzip
    C find
    D sort

  19. 建立一個新檔案可以使用的命令為
    A chmod
    B more
    C cp
    D touch(指令改變檔案的時間記錄.)

  20. 在下列命令中,不能顯示文字檔案內容的命令是:
    A more
    B less
    C tail
    D join

  21. 哪個目錄存放著Linux的原始碼.
    A /etc
    B /usr/src
    C /usr
    D /home

  22. 對top命令描述正確的是
    A 用於實時動態顯示 Linux程序 的動態資訊。
    B 檢視執行緒詳情情況
    C 檢視程序名稱
    D 顯示記憶體情況

  23. Linux系統最少的掛載點有兩個
    A 一個是根掛載點home,另一個是swap
    B 一個是根掛載點/,另一個是swap
    C 一個是根掛載點boot,另一個是swap
    D 一個是根掛載點user,另一個是boot

  24. 顯示檔案和目錄由根目錄開始的樹形結構
    A tree
    B ls
    C pwd
    D ln

  25. Linux 檢視並對外開放埠
    A vi /etc/profile
    B cat /etc/sysconfig/net-work
    C more /etc/sysconfig/iptables
    D ps aux

  26. 在建立 Linux 分割槽時,一定要建立( D )兩個分割槽
    A. FAT/NTFS
    B. FAT/SWAP
    C. NTFS/SWAP
    D.SWAP/ 根分割槽

  27. 在 Red Hat Linux 9 中,系統預設的( A )使用者對整個系統擁有完全的控制權。
    A. root
    B. guest
    C. administrator
    D.supervistor.

  28. 當登入 Linux 時,一個具有唯一程序 ID 號的 shell 將被呼叫,這個 ID 是什麼 ( B )
    A. NID     B. PID    C. UID    D. CID

  29. 下面哪個命令是用來定義 shell 的全域性變數 ( D )
    A. exportfs    B. alias    C. exports    D. export

  30. 哪個目錄存放使用者密碼資訊 ( B )
    A. /boot     B. /etc      C. /var     D. /dev

  31. 預設情況下管理員建立了一個使用者,就會在 ( B ) 目錄下建立一個使用者主目錄。
    A. /usr     B. /home      C. /root    D. /etc

  32. 當使用 mount 進行裝置或者檔案系統掛載的時候,需要用到的裝置名稱位於 ( D ) 目錄。
    A. /home     B. /bin     C. /etc     D. /dev

  33. 如果要列出一個目錄下的所有檔案需要使用命令列 ( C ) 。
    A. ls –l    B. ls     C. ls –a( 所有 )     D. ls –d

  34. 哪個命令可以將普通使用者轉換成超級使用者 (D )
    A. super    B. passwd    C. tar      D. su

  35. 除非特別指定, cp 假定要拷貝的檔案在下面哪個目錄下 ( D )
    A. 使用者目錄   B. home 目錄   C. root 目錄    D. 當前目錄

  36. 在 vi 編輯器裡,命令 “dd” 用來刪除當前的 ( A )
    A. 行     B. 變數    C. 字   D. 字元

  37. 當執行在多使用者模式下時,用 Ctrl+ALT+F* 可以切換多少虛擬使用者終端 ( B )
    A. 3     B. 6    C. 1    D. 12

  38. Linux 啟動的第一個程序 init 啟動的第一個指令碼程式是 ( B ) 。
    A./etc/rc.d/init.d
    B./etc/rc.d/rc.sysinit
    C./etc/rc.d/rc5.d
    D./etc/rc.d/rc3.d

  39. 按下 (A ) 鍵能終止當前執行的命令
    A. Ctrl-C      B. Ctrl-F     C. Ctrl-B     D. Ctrl-D

  40. 下面哪個命令用來啟動 X Window ( C )
    A. runx     B. Startx    C. startX      D. xwin

  41. 用來分離目錄名和檔名的字元是 ( B )
    A. dash (-)    B. slash (/)    C. period (.)     D. asterisk ( * )

  42. 用 “rm -i”, 系統會提示什麼來讓你確認 ( B )
    A. 命令列的每個選項    B. 是否真的刪除    C. 是否有寫的許可權    D. 檔案的位置

  43. 以下哪個命令可以終止一個使用者的所有程序 ( D )
    A. skillall     B. skill    C. kill     D. killall

  44. 在下列分割槽中, Linux 預設的分割槽是( B )
    A. FAT32
    B. EXT3
    C FAT .
    D NTFS

  45. 若要將滑鼠從 VM 中釋放出來,可按 ( A )鍵來實現
    A. Ctrl + Alt
    B. Ctrl +Alt +Del
    C. Ctrl +Alt +Enter
    D Ctrl +Enter

  46. 如果使用者想對某一命令詳細的瞭解,可用( C )
    A. ls B. help (內部) C. man (列舉的資訊多) D dir

  47. Samba 伺服器的配置檔案是 (D ) 。
    A httpd.conf
    B inetd.conf
    C rc.samba
    D smb.conf

  48. 在使用 mkdir 命令建立新的目錄時,在其父目錄不存在時先建立父目錄的選項是 _D
    A. -m B. -d C. -f D. -p

  49. 下面關於 i 節點描述錯誤的是 A_ 。
    A . i 節點和檔案是一一對應的
    B . i 節點能描述檔案佔用的塊數
    C . i 節點描述了檔案大小和指向資料塊的指標
    D .通過 i 節點實現檔案的邏輯結構和物理結構的轉換

  50. 在 vi 編輯器中的命令模式下,重複上一次對編輯的文字進行的操作,可使用 C_ 命令。
    A. 上箭頭 B. 下箭頭 C. “ . ” D. “ * ”

  51. 在 Redhat 公司釋出的 Linux 版本中,若要使得使用者登入驗證,需要修改以下 C 指令碼。
    A. /etc/inittab
    B. /etc/passwd
    C. /etc/shadow
    D. /etc/group

  52. 下列不是 Linux 系統程序型別的是 D____ 。
    A. 互動程序
    B. 批處理程序
    C. 守護程序
    D. 就緒程序

  53. 下列關於 /etc/fstab 檔案描述,正確的是 D
    A. fstab 檔案只能描述屬於 linux 的檔案系統
    B. CD_ROM 和軟盤必須是自動載入的
    C. fstab 檔案中描述的檔案系統不能被解除安裝
    D. 啟動時按 fstab 檔案描述內容載入檔案系統

  54. Linux 系統的開發模型是 B__ 。
    A. 教堂模型 B. 集市模型 C. 層次模型 D. 網狀模型

  55. 在 Linux 中,程序優先順序的相關引數有多個,與實時程序優先順序相關引數是 D 。
    A.policy
    B.counter
    C.priority
    D.rt_priority

  56. B 屬於 SYSTEM Ⅴ程序間通訊方式。
    A. 管道 B. 訊號量 C. 軟中斷訊號 D. 鎖機制

  57. 在 Linux 系統中,每個程序都有 4GB 的虛擬地址空間,其中核心空間佔用 C 。
    A . 0 ~ 2GB-1
    B . 0 ~ 3GB-1
    C . 3GB ~ 4GB-1
    D . 2GB ~ 4GB-1

  58. Linux 檔案系統中,檔案在外存的實體地址放在 A中。
    A.i 節點 B. 使用者開啟檔案表
    C. 系統開啟檔案表 D. 程序控制塊

  59. 當字串用單引號( ’’ )括起來時, SHELL 將 C 。
    A. 解釋引號內的特殊字元 B. 執行引號中的命令
    C. 不解釋引號內的特殊字元 D. 結束程序
    (反括號為命令)

  60. /etc/shadow 檔案中存放 B____ 。
    A. 使用者賬號基本資訊
    B. 使用者口令的加密資訊
    C. 使用者組資訊
    D. 檔案系統資訊

  61. 為解除安裝一個軟體包,應使用 _B
    A.rpm -i
    B.rpm -e
    C.rpm -q
    D.rpm -V

  62. 存放 Linux 基本命令的目錄是什麼 ( ) ?
    A. /bin B. /tmp C. /lib D. /root

  63. 以下哪一個是 linux 核心的穩定版本( B )
    A . 2.5.24
    B. 2.6.17
    C. 1.7.18
    D. 2.3.20

  64. 怎樣顯示當前目錄 ( A ) 。
    A. pwd B. cd C. who D. ls

  65. 假設檔案 fileA 的符號連結為 fileB ,那麼刪除 fileA 後,下面的描述正確的是 ( B )
    A . fileB 也隨之被刪除
    B. fileB 仍存在,但是屬於無效檔案
    C. 因為 fileB 未被刪除,所以 fileA 會被系統自動重新建立
    D. fileB 會隨 fileA 的刪除而被系統自動刪除

  66. 若一臺計算機的記憶體為 128MB ,則交換分割槽的大小通常是( C )
    A . 64MB
    B. 128MB
    C. 256MB
    D. 512MB

  67. 下列那一個指令可以顯示目錄的大小 ( C )
    A . dd B . df C . du D . dw

  68. 欲查詢 bind 套件是否有安裝 , 可用下列那一指令 ( D )
    A . rpm -ivh bind*.rpm //安裝
    B . rpm -q bind*.rpm
    C . rpm -U bind*.rpm
    D . rpm -q bind
    rpm -e bind //移除

  69. 下列那一個指令可以用來檢視系統負載情形 ( A )
    A . w B . who c C . load D . ps

  70. 如何刪除目錄 /tmp 下的所有檔案及子目錄 ( D ) 。
    A. del /tmp/*
    B. rm -rf /tmp
    C. rm -Ra /tmp/*
    D. rm –rf /tmp/*

二 填空題( 共15題 每題2分 共計30分)

  1. 前臺起動的程序使用 Ctrl c 終止

  2. vi編輯器具有兩種工作模式: 命令模式輸入模式

  3. 可以用ls–al命令來觀察檔案的許可權,每個檔案的許可權都用10位表示,並分為四段,其中第一段佔 1 位,表示 檔案型別 ,第二段佔3位 ,表示 檔案所有者 第三段佔3位 表示對該檔案的許可權.

  4. 在Linux系統中,用來存放系統所需要的配置檔案和子目錄的目錄是 /etc .

  5. 在超級使用者下顯示Linux系統中正在執行的全部程序,應使用的命令及引數是 ps -aux .

  6. rm命令可刪除檔案或目錄,其主要差別就是是否使用遞迴開關 -r或-R .

  7. mv命令可以移動檔案和目錄,還可以為檔案和目錄重新命名.

  8. 增加一個使用者的命令是:adduseruseradd .

  9. 進行字串查詢,使用 grep 命令

  10. 查詢檔案的兩種命令 locate, find

  11. 當前目錄 ./
    上層目錄用什麼表示 …/
    主目錄用什麼表示 ~/
    切換目錄用什麼命令 cd

  12. 檢視檔案內容有哪些命令可以使用
    vi 檔名 #編輯方式檢視,可修改
    cat 檔名 #顯示全部檔案內容
    more 檔名 #分頁顯示檔案內容
    less 檔名 #與 more 相似,更好的是可以往前翻頁
    tail 檔名 #僅檢視尾部,還可以指定行數
    head 檔名 #僅檢視頭部,還可以指定行數

  13. 用什麼命令對一個檔案的內容進行統計?(行號、單詞數、位元組數) wc

  14. 怎麼使一個命令在後臺執行 &

  15. 終止程序用什麼命令? 帶什麼引數? kill-9 pid

  16. 在 Linux 系統中,以 檔案的 方式訪問裝置

  17. Linux 核心引導時,從檔案 /etc/fstad 中讀取要載入的檔案系統。

  18. Linux 檔案系統中每個檔案用 i 節點 來標識。

  19. 某檔案的許可權為: d-rw-_r–_r-- ,用數值形式表示該許可權 644 , 該檔案屬性是 目錄

  20. 靜態路由設定後,若網路拓撲結構發生變化,需由系統管理員修改路由的設定。

  21. 網路管理的重要任務是: 控制監控

  22. 安裝 Linux 系統對硬碟分割槽時,必須有兩種分割槽型別: 檔案系統分割槽 和 交換分割槽 。

  23. 編寫的 Shell 程式執行前必須賦予該指令碼檔案 執行 許可權

  24. 在 Linux 的兩種連結檔案中,只能實現對檔案連結的一種方式是: 軟連結 ( 符號連結 )

  25. Linux 主要採用了 請求調頁寫時複製 _ 兩種動態記憶體管理技術實現了實體記憶體以 On demand 方式動態分配。

  26. 對於 System V 型別的共享記憶體頁面, Linux 基於 Clock__ 演算法決定哪些頁面應當被換出實體記憶體。

  27. 將 /home/stud1/wang 目錄做歸檔壓縮,壓縮後生成 wang.tar.gz 檔案,並將此檔案儲存到 /home 目錄下,實現此任務的 tar 命令格式 tar czvf wang.tar.gz /home/stud1/wang

  28. 對於給定的檔案 file ,統計其中所有包含字串 ” WHU ” 的行數的一條命令是 _grep WHU file | wc -l

  29. 對於 Shell 指令碼程式,若輸入引數數量多於 9 個,則程式遍歷每個引數可通過使用 shift命令實現。

  30. 在 Linux2.4.0 版本中,程序有 6 種 狀態,程序使用 exit 系統呼叫後進入僵死狀態。

  31. 在 Linux 中,管道分為 2 種類型,若建立或開啟管道時獲得的描述符存放在 fd 中,則 fd[1] 是 管道寫描述符

  32. Linux 為使用者提供的介面有 shellXWINDOW 、系統呼叫

  33. Linux 在 I386 體系結構中支援 兩級 分頁機構。

  34. 超級塊是描述 檔案系統屬性 資訊的資料結構,索引節點是描述 檔案屬性 資訊的資料結構

  35. df 命令完成 顯示檔案系統空間使用情況 功能, du 命令完成 顯示目錄或檔案佔用磁碟空間容量 功能

  36. 命令組合(命令表)將 建立新的子程序 來執行命令

  37. 設定限制使用者使用磁碟空間的命令是 ( quota

  38. 為指令碼程式指定執行權的命令及引數是 ( chmod a+x filename

  39. 在 shell 程式設計時,使用方括號表示測試條件的規則是:方括號兩邊必有 ( 空格

  40. 結束後臺程序的命令是 ( kill

  41. 當系統管理員需升級核心版本和改變系統硬體配置時,應 (重新編譯核心

  42. 關閉 linux 系統(不重新啟動)使用的命令 halt

  43. 要使得名為 fido 的檔案具有如下許可權 -r-xr-x—x 的命令。 chmod 551 fido

  44. 在 /root 資料夾下查詢字尾為 .cpp 的檔案。 *find /root –name .cpp

  45. 全部 Redhat 9.0 系統安裝最大大約需要多大磁碟空間 ( 5G ).

  46. 輸入了 Shell 命令的部分字元後按什麼鍵可補全其餘部分? ( tab )

  47. 要顯示記憶體用量用什麼命令? ( free )

  48. 完全刪除 /tmp 下的所有檔案用什麼命令及引數? ( rm –r /tmp

  49. 要強制殺死某個程序用什麼命令 ( kill -9 PID

  50. 要查詢檔案除了用 find 命令外還可以用什麼命令? ( locate

  51. 改變命令提示符的環境變數是 ( PS1

  52. Linux 系統中有三種基本的檔案型別: 普通檔案、目錄檔案和裝置檔案

  53. 觀察當前系統的執行級別可用命令: who -r 實現

  54. 設 C 語言程式 my.c
    A. 生成目標檔案 my.o 命令是( gcc -c my.c )。
    B. 生成組合語言檔案 my.s 命令是( gcc -S my.c )。
    C. 生成可執行程式 myp 命令是( gcc -o myp my.c

  55. vi 編輯器具有三種工作模式,即:命令模式、文字編輯模式和 行編輯模式

三、判斷題(共10題,每題1分,共10分)

1、RedHat LINUX 安裝時自動建立了根使用者。 ( 正確 )
2、能改變使用者工作目錄到根目錄的命令是 cd . ( 錯誤 ) cd~
3、Linux 中的超級使用者為root,登陸時不需要口令。 ( 錯誤 )
4、cat filename.txt | more可實現分頁地檢視一個大檔案的內容。 ( 正確 )
5、命令 # echo $HOME 可以輸出使用者的家目錄。 ( 錯誤 )
6.、redhat 系統中,預設情況下根口令沒有字元長短的的限制,但是必須把口令輸入兩次;如果兩次輸入的口令不一樣,安裝程 序將會提示使用者重新輸入口令。 ( 錯誤 )
7、pwd命令可用於確定當前目錄。 ( 正確 )
8、find命令中可以複製查詢到的檔案到指定目錄。 ( 正確 )
9、RedHat Linux 使用 ls -all 命令將列出當前目錄中的檔案和子目錄名。 ( 錯誤 )
10、Linux系統包括虛擬終端,圖形介面終端有 6 個。 ( 正確 )
四、判斷題(共2題,每題5分,共10分)

  1. 請簡述Linux作業系統有什麼優點?
    答:Linux的主要優點包括:
    · 提供了先進的網路支援:內建TCP/IP協議;
    ·真正意義上的多工、多使用者作業系統;
    ·與UNIX系統在原始碼級相容,符合IEEE POSIX標準;
    ·支援數十種檔案系統格式;
    ·開放原始碼,使用者可以自己對系統進行改進;
    ·採用先進的記憶體管理機制,更加有效地利用實體記憶體。

  2. 請簡述LAMP環境搭建和LTMJ環境搭建代表什麼?及說明LTMJ環境搭建的步驟?
    答:
    LTMJ測試環境搭建 Linux+Java+Tomcat+Mysql
    LAMP測試環境搭建 : Linux+Apache+MySQL+PHP

  3. 簡述在虛擬機器中安裝 Red Hat Linux 9.0 的過程
    答 ;1 .下載作業系統的映象 ISO 檔案
    2 .下載虛擬機器並安裝
    3 .通過 ISO 檔案安裝作業系統 ]
    4 .執行相關配置即可

  4. 論述實時訊號、非實時訊號、可靠訊號、不可靠訊號四個概念。
    答:實時訊號目前未用,非實時訊號編號 1 ~ 31 、 0 表示空訊號
    非實時訊號沒有排隊機制,可能丟失
    不可靠訊號 0 ~ 31 、可靠訊號 32 ~ 63
    不可靠訊號每次處理完訊號後,都將對訊號的響應設定為預設動作,需要在結尾再次安裝訊號;可靠訊號和不可靠訊號的安裝函式也不同。兩者的區別主要在於訊號型別取值,而不在於操縱他們的 API

  5. 簡述 Linux 檔案系統通過 i 節點把檔案的邏輯結構和物理結構轉換的工作過程。
    答: Linux 通過 i 節點表將檔案的邏輯結構和物理結構進行轉換 1
    i 節點是一個 64 位元組長的表,表中包含了檔案的相關資訊,其中有檔案的大小、檔案所有者、檔案的存取許可方式以及檔案的型別等重要資訊。
    在 i 節點表中最重要的內容是磁碟地址表。在磁碟地址表中有 13 個塊號,檔案將以塊號在磁碟地址表中出現的順序依次讀取相應的塊。若檔案空間大於 13 塊,則分別用 1 次、 2 次、 3 次間接塊實現對資料塊的定位。
    此後, Linux 檔案系統通過把 i 節點和檔名進行連線,當需要讀取該檔案時,檔案系統在當前目錄表中查詢該檔名對應的項,由此得到該檔案相對應的 i 節點號,通過該 i 節點的磁碟地址表把分散存放的檔案物理塊連線成檔案的邏輯結構。

  6. 什麼是位置變數? shell 的變數型別有哪些種?
    位置變數是指命令列上傳遞給程式的引數。
    Shell 變數可以分為:使用者自定義變數、環境變數、位置變數、特殊變數

  7. 若下達 rmdir 命令來刪除某個已存在的目錄,但無法成功,請說明可能的原因。
    參考答案:
    此目錄可能不存在,
    或者目錄不為空,或者目錄中有隱含檔案存在,
    或者目錄被設定了許可權,
    解決方法就是先修改許可權,在使用 rm –r 命令刪除。

  8. Linux 核心主要由哪幾部分組成?每部分的作用?
    參考答案:
    Linux 核心主要由五個子系統組成:程序排程,記憶體管理,虛擬檔案系統,網路介面,程序間通訊。
    程序排程( SCHED ) : 控制程序對 CPU 的訪問。當需要選擇下一個程序執行時,由排程程式選擇最值得執行的程序;記憶體管理( MM )允許多個程序安全的共享主記憶體區域;虛擬檔案系統( VirtualFileSystem,VFS )隱藏了各種硬體的具體細節,為所有的裝置提供了統一的介面, VFS 提供了多達數十種不同的檔案系統;網路介面( NET )提供了對各種網路標準的存取和各種網路硬體的支援;程序間通訊 (IPC) 支援程序間各種通訊機制。

  9. 敘述 Linux 作業系統的三個主要部分及其功能。( 6 分)
    核心:核心是系統的心臟,是執行程式和管理像磁碟和印表機等硬體裝置的核心程式。
    命令解釋層:是系統的使用者介面,提供了使用者與核心進行互動操作的一種介面。
    檔案結構:是檔案存放在磁碟等儲存裝置上的組織方法,檔案結構的相互關聯性使共享資料變得容易。

  10. 敘述什麼是 shell? 什麼是 X window ? Redhat 的預設 shell 和 X window 是什麼?( 6 分)
    Shell 是系統的使用者介面,提供了使用者與核心進行互動操作的一種介面。是一個命令直譯器,它可以用來啟動、掛起、停止、甚至編寫程式。
    Xwindow 選擇 shell 如何進行任務控制。是否支援命令列編輯。是否支援命令列歷史記錄,環境變數有哪些,什麼是它的開機啟動檔案或者配置檔案,支援什麼樣的程式設計框架?
    是 UNIX 和 Linux 系統上的圖形使用者介面系統。
    Linux 的預設 shell 是 bash ,預設 XWindow 是 XFree86

  11. Linux 系統有幾種型別檔案?它們分別是什麼?有哪些相同點和不同點?
    答: 3 類。分別是普通檔案,目錄檔案和裝置檔案。相同是它們都是檔案,都有一個檔名和 i 節點號。不同點是,普通檔案的內容為資料,目錄檔案的內容為目錄項或檔名與 i 節點對應表,裝置檔案不佔用磁碟空間,通過其 i 節點資訊可建立與核心驅動程式的聯絡。

  12. 綜述 Linux 系統的檔案許可權及其管理。
    答: Linux 用檔案存取控制表來解決存取許可權的控制問題。存取控制表以檔案為單位,把使用者按某種關係畫分為若干組,同時規定每組使用者的存取許可權。每個檔案都有一張存取控制表。在實現時,該表存放在檔案說明中,也就是 i 節點的檔案許可權項。
    就某個檔案而言,它只對三類使用者(檔案主,同組人,其它人)分配許可權。許可權的修改或分配可通過命令 chmod 來實現。當然 chmod 和 chgrp 等命令也有著許可權控制作用,因為檔案的主和組變了,它相應的許可權也會隨之改變

  13. 簡述 linux 的幾個執行級別及其相應的含義。
    0- 關機模式,
    1- 單使用者模式,單使用者只有系統管理員可以登入。
    2- 多使用者模式,但是不支援檔案共享,例如不支援 NFS 服務 . 這種模式不常用。
    3- 完全的多使用者模式,支援 NFS 服務 . 最常用的使用者模式,預設登入到系統的字元介面。
    4- 保留模式。
    5- 完全多使用者模式,預設登入到 X-window 系統,也就是登入到 linux 圖形介面。
    6- 重啟模式,也就是執行關閉所有執行的程序,然後重新啟動系統。

  14. 什麼 是連結?符號連結與硬連結的區別是什麼?
    連結是指用一個 i 節點對應多個檔名。硬連結是把檔案的 i 節點號指向該 i 節點,
    且連結計數器值加 1 。刪除連結檔案時計數器值減 1 ,當其值為 0 時, i 節點被釋放。
    符號連結是隻有檔名的一個連結檔案,並不指向一個真正的 i 節點。
    在刪除符號連結檔案時與硬連結檔案有區別。

  15. Shell 程式中,對使用者變數賦值有哪些方式?簡要說明每種賦值方式的使用方法。

等號賦值
在等號前後均不能有空格。
當需要將一個包含空格的字串賦給使用者變數時,應用單引號將該字串括起來。
鍵盤賦值
由 read 命令來實現的。用法為: read 使用者變數名
當 shell 程式執行到該行時,將等待使用者從鍵盤輸入,
當用戶按下回車鍵時 shell 把你輸入的內容賦給使用者變數。**
命令替換賦值
用法為:使用者變數 =命令
該語句將首先執行反向單引號之間的命令,
然後將其執行後輸出的內容賦給該使用者變數,在這種賦值方式中,
等號前後同樣不能有空格,而且必須用反向單引號(即重音號)把命令括起來。

四、操作題(寫出完成下述功能的命令序列,每小題 4 分,共 20 分)

  1. 假設你的使用者賬號是 zheng ,現在你登入進入 linux 系統,檢視當前登入到系統中的使用者 , 檢視當前系統中執行的程序,然後再退出系統。
    答:
    login : zheng
    Password :口令
    $who
    $ps
    $Ctrl+D

  2. 在當前目錄 /home/zheng 下新建一個目錄 back ,將當前目錄改為 back ,在 back 下新建 2 個長度為 0 的檔案 test1 、 test2 ,然後把 test2 移到其父目錄中並改名為 file12 。
    答:
    $ mkdir back
    $ cd back
    $ touch test1 test2
    $ mv test2 …/file2

  3. 現在需要統計當前目錄 /home/zheng 下普通檔案的數目並顯示結果 , 如何實現?
    $find – type f | wc – l

  4. 假設你是系統管理員,需要增加一個新的使用者賬號 zheng ,為新使用者設定初始密碼,鎖定使用者賬號 uly ,並刪除使用者賬號 chang 。
    答:
    .#useradd zheng
    #passwd zheng
    #passwd – l uly
    #userdel chang

  5. 若給需要將 /home/zheng 目錄下的所有檔案打包壓縮成 /tmp/zheng.tar.gz ,你準備怎麼做?當需要從壓縮包中恢復時,又該如何處理?
    答:
    #tar –zcvf /tmp/zheng.tar.gz /home/zheng
    #tar -zxvf /tmp/zheng.tar.gz

  6. 將當前目錄下的 bin 目錄和 hello 、 hello.c 檔案備份並壓縮為 binzxj.tar.gz 檔案的命令是 tar –czvf binzxj.tar.gz bin hello hello.c

  7. 在 /home 目錄下查詢檔名為。 Profile 的檔案,找到後刪除
    find /home –name . profile - exec rm{ } ;

  8. 建立一個使用者,使用者名稱為 user02 ,所屬私有組和標準組為 stuff ,使用者家目錄為 /home/user2 ,使用者登陸 shell 為 /bin/bash
    useradd –g stuff –G stuff -d /home/user2 -s /bin/bash user02

  9. 有一普通使用者想在每週日凌晨零點零分定期備份 /user/backup 到 /tmp 目錄下,該使用者應如何做?  
    參考答案 :
    1 )第一種方法:
    使用者應使用 crontab –e 命令建立 crontab 檔案。格式如下:
    0 0 * * sun cp –r /user/backup /tmp
    ( 2 )第二種方法:
    使用者先在自己目錄下新建檔案 file ,檔案內容如下:
    0 * * sun cp –r /user/backup /tmp
    然後執行 crontab file 使生效。

  10. 把檔案 file1 和 file2 合併成 file3 的命令是 cat file1 file2>file3

  11. 下面給出了一個 SHELL 程式,試對 其行後有 # ( n )形式的語句進行解釋 ,並說明程式完成的功能。 ( 8 分)
    #!/bin/bash # ( 1 )
    dir=$1 ( 2 )
    if [ -d $dir ] ( 3 )
    then
    cd $dir ( 4 )
    for file in *
    do
    if [-f $file ] ( 5 )
    then
    cat $file ( 6 )
    echo “ end of file $file ”
    fi
    done
    else
    echo “ bad directory name $dir ”
    fi
    答:
    ( 1 )使用 /bin/bash 解釋指令碼
    ( 2 )將位置變數 1 賦值給變數 dir
    ( 3 )如果 dir 所指為目錄
    ( 4 )將當前目錄改為 dir
    ( 5 )如果迴圈變數 file 所指是普通檔案
    ( 6 )顯示檔案 file 的內容 6 分
    程式功能:若命令列引數是一個合法目錄則顯示該目錄下所有普通檔案的內容,否則顯示錯誤的目錄名資訊

  12. 填寫標記程式碼行的意義,給出功能描述和前 6 行程式輸出。 ( 6 分)
    #include <unistd.h>
    #include <signal.h>
    int ntimes=0;
    main(int argc, char argv[]) {
    int pid,ppid;
    int p_action( ), c_action( );
    signal(SIGUSR1 , p_action); ( 1 )
    switch(pid=fork( )) { ( 2 )
    case -1: perror(“fork failed?);
    exit(1);
    case 0: signal(SIGUSR1,c_action);
    ppid=getppid( );
    for ( ; ; ) ;
    default: {
    for( ; ; ) {
    pause;
    sleep(1);
    kill(pid,SIGUSR1); ( 3 )
    }
    }
    }
    }
    p_action( ) {
    printf(” parent caught signal # %d\n",++ntimes);
    }
    c_action( ) {
    printf(" child caught signal # %d\n",++ntimes/
    , ++ltimes*/);
    int ppid;
    ppid = getppid(); ( 4 )
    kill(ppid, SIGUSR1);
    sleep(3);
    }
    答:
    ( 1 )在父程序中為訊號 SIGUSR1 繫結函式 p_action
    ( 2 )建立子程序
    ( 3 )向子程序傳送訊號 SIGUSR1
    ( 4 )獲取父程序的 PID
    父程序無線迴圈向子程序傳送訊號,子程序收到訊號後向父程序傳送相同訊號,父子程序之間各自記錄全域性變數的變化,結果如:
    child caught signal #1
    parent caught signal #1
    child caught signal #2
    parent caught signal #2
    child caught signal #3
    parent caught signal #3

  13. 在 Linux 系統中執行下面程式,最多可產生多少個程序?畫出程序家族樹。 ( 6 分)
    main()
    {
    fork();
    fork();
    fork();
    }
    答:最多可以產生 7 個程序 )(共8個)

在這裡插入圖片描述

  1. 試編寫一個 SHELL 程式,該程式能接收使用者從鍵盤輸入的 100 個整數,然後求出其總和、最大值及最小值。( 6 分)
    答:
 #!/bin/sh
read max;
min=  $ max
sum= $ max
i=1
while [$i –lt 100]
do
   read x 
sum=`expr $sum + $x`
  if [ $max –lt $x ]
     then
          max= $ x
 fi
 if [ $ x –lt $min ]
     then
          min= $ x
 fi 
    i=`expr $i + 1`
done
echo "sum = $sum ; max = $max min = $min "
  1. 建立一個 shell 指令碼,它從使用者那裡接收 10 個數,並顯示已輸入的最大的數。
    參考程式 :
#! /bin/bash
max=0
for((count=1 ; count <= 10 ; count = count+1))
do
echo -n "Enter number $count : "
read value
if [ $max -lt $value ]
then
max=$value
fi
done
  1. 設計一個 shell 程式計算 n 的階乘。要求:
    (1) 從命令列接收引數 n ;
    (2) 在程式開始後立即判斷 n 的合法性,即是否有引數,若有是否為正整數,若非法請給錯誤提示;
    (3) 最後出計算的結果。
    參考程式碼:
#!/bin/sh
if [ $# -eq 0 ]; then 
   echo -e "$0 no Params.\a\n"; 
   exit 0; 
fi
x=echo $1 | awk '/[^[:digit:]]/ { print $0 } ' 
if [ "x$x" != "x" ] ; then 
   echo -e "Input: $* error!\a"; 
   exit 1; 
fi
fact=1;
tmp=1
while [ $tmp -le $1 ]
do
    fact= $ ((fact*tmp));tmp= $ ((++tmp));
done
echo "fact= $ fact"
  1. 用 shell 編寫小九九乘法表程式,程式執行結果如下:
#! /bin/shfor i in 1 2 3 4 5 6 7 8 9
 do
   for j in 1 2 3 4 5 6 7 8 9
   do
   if ( test $j -le $i ) then
       echo -ne  `expr $i \* $j` "\t"
   else
     echo
       break 
     fi 
   done
 done