Linux期末複習整理
-
下面哪個Linux命令可以一次顯示一頁內容?
A. pause
B. cat
C. more
D. grep -
怎樣更改一個檔案的許可權設定?
A. attrib
B. chmod
C. change
D. file
chmod [option] mode files
例:chmod -R 777 filename -
下面哪個引數可以刪除一個使用者並同時刪除使用者的主目錄?
A. rmuser -r
B. deluser -r
C. userdel -r
D. usermgr -r -
下面哪條命令可以把f1.txt複製為f2.txt?
A. cp f1.txt | f2.txt
C. cat f1.txt > f2.txt
D. copy f1.txt | f2.txt -
顯示一個檔案最後幾行的命令是:
A. tac
B. tail
C. rear
D. last -
如何快速切換到使用者John的主目錄下?
A. cd @John
B. cd #John
C. cd &John
D. cd ~John -
如何在檔案中查詢顯示所有以"*"打頭的行?
A. find * file
B. wc -l * < file
C. grep -n * file
D. grep ‘^*’ file -
在ps命令中什麼引數是用來顯示所有使用者的程序的?
A. a
B. b
C. u
D. x -
如何刪除一個非空子目錄/tmp?
A. del /tmp/*
B. rm -rf /tmp
C. rm -Ra /tmp/*
D. rm -rf /tmp/* -
對所有使用者的變數設定,應當放在哪個檔案下?
A. /etc/bashrc
B. /etc/profile
C. ~/.bash_profile
D. /etc/skel/.bashrc -
11.在vi中退出不儲存的命令是?
A. :q
B. :w
C. :wq
D. :q! -
使用什麼命令檢測基本網路連線或檢視網路的介面狀況?
A. ping
B. route
C. netstat -
下面哪個命令可以壓縮部分檔案:
A. tar -dzvf filename.tgz *
B. tar -tzvf filename.tgz *
C. tar -czvf filename.tgz
D. tar -xzvf filename.tgz * //解壓tar.gz -
什麼命令解壓縮tar檔案?
A. tar -czvf filename.tgz
B. tar -xzvf filename.tgz
C. tar -tzvf filename.tgz
D. tar -dzvf filename.tgz -
檔案許可權一共10位長度,分成四段,第三段表示的內容是
A 檔案型別
B 檔案所有者的許可權
C 檔案所有者所在組的許可權
D 其他使用者的許可權 -
刪除檔案命令為
A mkdir
B rmdir //刪除目錄
C mv
D rm -
改變檔案所有者的命令為:
A chmod
B touch
C chown
D cat -
在給定檔案中查詢與設定條件相符字串的命令為:
A grep
B gzip
C find
D sort -
建立一個新檔案可以使用的命令為
A chmod
B more
C cp
D touch(指令改變檔案的時間記錄.) -
在下列命令中,不能顯示文字檔案內容的命令是:
A more
B less
C tail
D join -
哪個目錄存放著Linux的原始碼.
A /etc
B /usr/src
C /usr
D /home -
對top命令描述正確的是
A 用於實時動態顯示 Linux程序 的動態資訊。
B 檢視執行緒詳情情況
C 檢視程序名稱
D 顯示記憶體情況 -
Linux系統最少的掛載點有兩個
A 一個是根掛載點home,另一個是swap
B 一個是根掛載點/,另一個是swap
C 一個是根掛載點boot,另一個是swap
D 一個是根掛載點user,另一個是boot -
顯示檔案和目錄由根目錄開始的樹形結構
A tree
B ls
C pwd
D ln -
Linux 檢視並對外開放埠
A vi /etc/profile
B cat /etc/sysconfig/net-work
C more /etc/sysconfig/iptables
D ps aux -
在建立 Linux 分割槽時,一定要建立( D )兩個分割槽
A. FAT/NTFS
B. FAT/SWAP
C. NTFS/SWAP
D.SWAP/ 根分割槽 -
在 Red Hat Linux 9 中,系統預設的( A )使用者對整個系統擁有完全的控制權。
A. root
B. guest
C. administrator
D.supervistor. -
當登入 Linux 時,一個具有唯一程序 ID 號的 shell 將被呼叫,這個 ID 是什麼 ( B )
A. NID B. PID C. UID D. CID -
下面哪個命令是用來定義 shell 的全域性變數 ( D )
A. exportfs B. alias C. exports D. export -
哪個目錄存放使用者密碼資訊 ( B )
A. /boot B. /etc C. /var D. /dev -
預設情況下管理員建立了一個使用者,就會在 ( B ) 目錄下建立一個使用者主目錄。
A. /usr B. /home C. /root D. /etc -
當使用 mount 進行裝置或者檔案系統掛載的時候,需要用到的裝置名稱位於 ( D ) 目錄。
A. /home B. /bin C. /etc D. /dev -
如果要列出一個目錄下的所有檔案需要使用命令列 ( C ) 。
A. ls –l B. ls C. ls –a( 所有 ) D. ls –d -
哪個命令可以將普通使用者轉換成超級使用者 (D )
A. super B. passwd C. tar D. su -
除非特別指定, cp 假定要拷貝的檔案在下面哪個目錄下 ( D )
A. 使用者目錄 B. home 目錄 C. root 目錄 D. 當前目錄 -
在 vi 編輯器裡,命令 “dd” 用來刪除當前的 ( A )
A. 行 B. 變數 C. 字 D. 字元 -
當執行在多使用者模式下時,用 Ctrl+ALT+F* 可以切換多少虛擬使用者終端 ( B )
A. 3 B. 6 C. 1 D. 12 -
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 -
按下 (A ) 鍵能終止當前執行的命令
A. Ctrl-C B. Ctrl-F C. Ctrl-B D. Ctrl-D -
下面哪個命令用來啟動 X Window ( C )
A. runx B. Startx C. startX D. xwin -
用來分離目錄名和檔名的字元是 ( B )
A. dash (-) B. slash (/) C. period (.) D. asterisk ( * ) -
用 “rm -i”, 系統會提示什麼來讓你確認 ( B )
A. 命令列的每個選項 B. 是否真的刪除 C. 是否有寫的許可權 D. 檔案的位置 -
以下哪個命令可以終止一個使用者的所有程序 ( D )
A. skillall B. skill C. kill D. killall -
在下列分割槽中, Linux 預設的分割槽是( B )
A. FAT32
B. EXT3
C FAT .
D NTFS -
若要將滑鼠從 VM 中釋放出來,可按 ( A )鍵來實現
A. Ctrl + Alt
B. Ctrl +Alt +Del
C. Ctrl +Alt +Enter
D Ctrl +Enter -
如果使用者想對某一命令詳細的瞭解,可用( C )
A. ls B. help (內部) C. man (列舉的資訊多) D dir -
Samba 伺服器的配置檔案是 (D ) 。
A httpd.conf
B inetd.conf
C rc.samba
D smb.conf -
在使用 mkdir 命令建立新的目錄時,在其父目錄不存在時先建立父目錄的選項是 _D 。
A. -m B. -d C. -f D. -p -
下面關於 i 節點描述錯誤的是 A_ 。
A . i 節點和檔案是一一對應的
B . i 節點能描述檔案佔用的塊數
C . i 節點描述了檔案大小和指向資料塊的指標
D .通過 i 節點實現檔案的邏輯結構和物理結構的轉換 -
在 vi 編輯器中的命令模式下,重複上一次對編輯的文字進行的操作,可使用 C_ 命令。
A. 上箭頭 B. 下箭頭 C. “ . ” D. “ * ” -
在 Redhat 公司釋出的 Linux 版本中,若要使得使用者登入驗證,需要修改以下 C 指令碼。
A. /etc/inittab
B. /etc/passwd
C. /etc/shadow
D. /etc/group -
下列不是 Linux 系統程序型別的是 D____ 。
A. 互動程序
B. 批處理程序
C. 守護程序
D. 就緒程序 -
下列關於 /etc/fstab 檔案描述,正確的是 D 。
A. fstab 檔案只能描述屬於 linux 的檔案系統
B. CD_ROM 和軟盤必須是自動載入的
C. fstab 檔案中描述的檔案系統不能被解除安裝
D. 啟動時按 fstab 檔案描述內容載入檔案系統 -
Linux 系統的開發模型是 B__ 。
A. 教堂模型 B. 集市模型 C. 層次模型 D. 網狀模型 -
在 Linux 中,程序優先順序的相關引數有多個,與實時程序優先順序相關引數是 D 。
A.policy
B.counter
C.priority
D.rt_priority -
B 屬於 SYSTEM Ⅴ程序間通訊方式。
A. 管道 B. 訊號量 C. 軟中斷訊號 D. 鎖機制 -
在 Linux 系統中,每個程序都有 4GB 的虛擬地址空間,其中核心空間佔用 C 。
A . 0 ~ 2GB-1
B . 0 ~ 3GB-1
C . 3GB ~ 4GB-1
D . 2GB ~ 4GB-1 -
Linux 檔案系統中,檔案在外存的實體地址放在 A中。
A.i 節點 B. 使用者開啟檔案表
C. 系統開啟檔案表 D. 程序控制塊 -
當字串用單引號( ’’ )括起來時, SHELL 將 C 。
A. 解釋引號內的特殊字元 B. 執行引號中的命令
C. 不解釋引號內的特殊字元 D. 結束程序
(反括號為命令) -
/etc/shadow 檔案中存放 B____ 。
A. 使用者賬號基本資訊
B. 使用者口令的加密資訊
C. 使用者組資訊
D. 檔案系統資訊 -
為解除安裝一個軟體包,應使用 _B 。
A.rpm -i
B.rpm -e
C.rpm -q
D.rpm -V -
存放 Linux 基本命令的目錄是什麼 ( ) ?
A. /bin B. /tmp C. /lib D. /root -
以下哪一個是 linux 核心的穩定版本( B )
A . 2.5.24
B. 2.6.17
C. 1.7.18
D. 2.3.20 -
怎樣顯示當前目錄 ( A ) 。
A. pwd B. cd C. who D. ls -
假設檔案 fileA 的符號連結為 fileB ,那麼刪除 fileA 後,下面的描述正確的是 ( B )
A . fileB 也隨之被刪除
B. fileB 仍存在,但是屬於無效檔案
C. 因為 fileB 未被刪除,所以 fileA 會被系統自動重新建立
D. fileB 會隨 fileA 的刪除而被系統自動刪除 -
若一臺計算機的記憶體為 128MB ,則交換分割槽的大小通常是( C )
A . 64MB
B. 128MB
C. 256MB
D. 512MB -
下列那一個指令可以顯示目錄的大小 ( C )
A . dd B . df C . du D . dw -
欲查詢 bind 套件是否有安裝 , 可用下列那一指令 ( D )
A . rpm -ivh bind*.rpm //安裝
B . rpm -q bind*.rpm
C . rpm -U bind*.rpm
D . rpm -q bind
rpm -e bind //移除 -
下列那一個指令可以用來檢視系統負載情形 ( A )
A . w B . who c C . load D . ps -
如何刪除目錄 /tmp 下的所有檔案及子目錄 ( D ) 。
A. del /tmp/*
B. rm -rf /tmp
C. rm -Ra /tmp/*
D. rm –rf /tmp/*
二 填空題( 共15題 每題2分 共計30分)
-
前臺起動的程序使用 Ctrl c 終止
-
vi編輯器具有兩種工作模式: 命令模式 和 輸入模式
-
可以用ls–al命令來觀察檔案的許可權,每個檔案的許可權都用10位表示,並分為四段,其中第一段佔 1 位,表示 檔案型別 ,第二段佔3位 ,表示 檔案所有者 第三段佔3位 表示對該檔案的許可權.
-
在Linux系統中,用來存放系統所需要的配置檔案和子目錄的目錄是 /etc .
-
在超級使用者下顯示Linux系統中正在執行的全部程序,應使用的命令及引數是 ps -aux .
-
rm命令可刪除檔案或目錄,其主要差別就是是否使用遞迴開關 -r或-R .
-
mv命令可以移動檔案和目錄,還可以為檔案和目錄重新命名.
-
增加一個使用者的命令是:adduser 或useradd .
-
進行字串查詢,使用 grep 命令
-
查詢檔案的兩種命令 locate, find
-
當前目錄 ./
上層目錄用什麼表示 …/
主目錄用什麼表示 ~/
切換目錄用什麼命令 cd -
檢視檔案內容有哪些命令可以使用
vi 檔名 #編輯方式檢視,可修改
cat 檔名 #顯示全部檔案內容
more 檔名 #分頁顯示檔案內容
less 檔名 #與 more 相似,更好的是可以往前翻頁
tail 檔名 #僅檢視尾部,還可以指定行數
head 檔名 #僅檢視頭部,還可以指定行數 -
用什麼命令對一個檔案的內容進行統計?(行號、單詞數、位元組數) wc
-
怎麼使一個命令在後臺執行 &
-
終止程序用什麼命令? 帶什麼引數? kill-9 pid
-
在 Linux 系統中,以 檔案的 方式訪問裝置
-
Linux 核心引導時,從檔案 /etc/fstad 中讀取要載入的檔案系統。
-
Linux 檔案系統中每個檔案用 i 節點 來標識。
-
某檔案的許可權為: d-rw-_r–_r-- ,用數值形式表示該許可權 644 , 該檔案屬性是 目錄 。
-
靜態路由設定後,若網路拓撲結構發生變化,需由系統管理員修改路由的設定。
-
網路管理的重要任務是: 控制 和 監控 。
-
安裝 Linux 系統對硬碟分割槽時,必須有兩種分割槽型別: 檔案系統分割槽 和 交換分割槽 。
-
編寫的 Shell 程式執行前必須賦予該指令碼檔案 執行 許可權
-
在 Linux 的兩種連結檔案中,只能實現對檔案連結的一種方式是: 軟連結 ( 符號連結 )
-
Linux 主要採用了 請求調頁 和 寫時複製 _ 兩種動態記憶體管理技術實現了實體記憶體以 On demand 方式動態分配。
-
對於 System V 型別的共享記憶體頁面, Linux 基於 Clock__ 演算法決定哪些頁面應當被換出實體記憶體。
-
將 /home/stud1/wang 目錄做歸檔壓縮,壓縮後生成 wang.tar.gz 檔案,並將此檔案儲存到 /home 目錄下,實現此任務的 tar 命令格式 tar czvf wang.tar.gz /home/stud1/wang
-
對於給定的檔案 file ,統計其中所有包含字串 ” WHU ” 的行數的一條命令是 _grep WHU file | wc -l
-
對於 Shell 指令碼程式,若輸入引數數量多於 9 個,則程式遍歷每個引數可通過使用 shift命令實現。
-
在 Linux2.4.0 版本中,程序有 6 種 狀態,程序使用 exit 系統呼叫後進入僵死狀態。
-
在 Linux 中,管道分為 2 種類型,若建立或開啟管道時獲得的描述符存放在 fd 中,則 fd[1] 是 管道寫描述符 。
-
Linux 為使用者提供的介面有 shell 、 XWINDOW 、系統呼叫
-
Linux 在 I386 體系結構中支援 兩級 分頁機構。
-
超級塊是描述 檔案系統屬性 資訊的資料結構,索引節點是描述 檔案屬性 資訊的資料結構
-
df 命令完成 顯示檔案系統空間使用情況 功能, du 命令完成 顯示目錄或檔案佔用磁碟空間容量 功能
-
命令組合(命令表)將 建立新的子程序 來執行命令
-
設定限制使用者使用磁碟空間的命令是 ( quota )
-
為指令碼程式指定執行權的命令及引數是 ( chmod a+x filename )
-
在 shell 程式設計時,使用方括號表示測試條件的規則是:方括號兩邊必有 ( 空格 )
-
結束後臺程序的命令是 ( kill )
-
當系統管理員需升級核心版本和改變系統硬體配置時,應 (重新編譯核心 )
-
關閉 linux 系統(不重新啟動)使用的命令 halt
-
要使得名為 fido 的檔案具有如下許可權 -r-xr-x—x 的命令。 chmod 551 fido
-
在 /root 資料夾下查詢字尾為 .cpp 的檔案。 *find /root –name .cpp
-
全部 Redhat 9.0 系統安裝最大大約需要多大磁碟空間 ( 5G ).
-
輸入了 Shell 命令的部分字元後按什麼鍵可補全其餘部分? ( tab )
-
要顯示記憶體用量用什麼命令? ( free )
-
完全刪除 /tmp 下的所有檔案用什麼命令及引數? ( rm –r /tmp )
-
要強制殺死某個程序用什麼命令 ( kill -9 PID )
-
要查詢檔案除了用 find 命令外還可以用什麼命令? ( locate )
-
改變命令提示符的環境變數是 ( PS1 )
-
Linux 系統中有三種基本的檔案型別: 普通檔案、目錄檔案和裝置檔案
-
觀察當前系統的執行級別可用命令: who -r 實現
-
設 C 語言程式 my.c
A. 生成目標檔案 my.o 命令是( gcc -c my.c )。
B. 生成組合語言檔案 my.s 命令是( gcc -S my.c )。
C. 生成可執行程式 myp 命令是( gcc -o myp my.c ) -
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分)
-
請簡述Linux作業系統有什麼優點?
答:Linux的主要優點包括:
· 提供了先進的網路支援:內建TCP/IP協議;
·真正意義上的多工、多使用者作業系統;
·與UNIX系統在原始碼級相容,符合IEEE POSIX標準;
·支援數十種檔案系統格式;
·開放原始碼,使用者可以自己對系統進行改進;
·採用先進的記憶體管理機制,更加有效地利用實體記憶體。 -
請簡述LAMP環境搭建和LTMJ環境搭建代表什麼?及說明LTMJ環境搭建的步驟?
答:
LTMJ測試環境搭建 Linux+Java+Tomcat+Mysql
LAMP測試環境搭建 : Linux+Apache+MySQL+PHP -
簡述在虛擬機器中安裝 Red Hat Linux 9.0 的過程
答 ;1 .下載作業系統的映象 ISO 檔案
2 .下載虛擬機器並安裝
3 .通過 ISO 檔案安裝作業系統 ]
4 .執行相關配置即可 -
論述實時訊號、非實時訊號、可靠訊號、不可靠訊號四個概念。
答:實時訊號目前未用,非實時訊號編號 1 ~ 31 、 0 表示空訊號
非實時訊號沒有排隊機制,可能丟失
不可靠訊號 0 ~ 31 、可靠訊號 32 ~ 63
不可靠訊號每次處理完訊號後,都將對訊號的響應設定為預設動作,需要在結尾再次安裝訊號;可靠訊號和不可靠訊號的安裝函式也不同。兩者的區別主要在於訊號型別取值,而不在於操縱他們的 API -
簡述 Linux 檔案系統通過 i 節點把檔案的邏輯結構和物理結構轉換的工作過程。
答: Linux 通過 i 節點表將檔案的邏輯結構和物理結構進行轉換 1
i 節點是一個 64 位元組長的表,表中包含了檔案的相關資訊,其中有檔案的大小、檔案所有者、檔案的存取許可方式以及檔案的型別等重要資訊。
在 i 節點表中最重要的內容是磁碟地址表。在磁碟地址表中有 13 個塊號,檔案將以塊號在磁碟地址表中出現的順序依次讀取相應的塊。若檔案空間大於 13 塊,則分別用 1 次、 2 次、 3 次間接塊實現對資料塊的定位。
此後, Linux 檔案系統通過把 i 節點和檔名進行連線,當需要讀取該檔案時,檔案系統在當前目錄表中查詢該檔名對應的項,由此得到該檔案相對應的 i 節點號,通過該 i 節點的磁碟地址表把分散存放的檔案物理塊連線成檔案的邏輯結構。 -
什麼是位置變數? shell 的變數型別有哪些種?
位置變數是指命令列上傳遞給程式的引數。
Shell 變數可以分為:使用者自定義變數、環境變數、位置變數、特殊變數 -
若下達 rmdir 命令來刪除某個已存在的目錄,但無法成功,請說明可能的原因。
參考答案:
此目錄可能不存在,
或者目錄不為空,或者目錄中有隱含檔案存在,
或者目錄被設定了許可權,
解決方法就是先修改許可權,在使用 rm –r 命令刪除。 -
Linux 核心主要由哪幾部分組成?每部分的作用?
參考答案:
Linux 核心主要由五個子系統組成:程序排程,記憶體管理,虛擬檔案系統,網路介面,程序間通訊。
程序排程( SCHED ) : 控制程序對 CPU 的訪問。當需要選擇下一個程序執行時,由排程程式選擇最值得執行的程序;記憶體管理( MM )允許多個程序安全的共享主記憶體區域;虛擬檔案系統( VirtualFileSystem,VFS )隱藏了各種硬體的具體細節,為所有的裝置提供了統一的介面, VFS 提供了多達數十種不同的檔案系統;網路介面( NET )提供了對各種網路標準的存取和各種網路硬體的支援;程序間通訊 (IPC) 支援程序間各種通訊機制。 -
敘述 Linux 作業系統的三個主要部分及其功能。( 6 分)
核心:核心是系統的心臟,是執行程式和管理像磁碟和印表機等硬體裝置的核心程式。
命令解釋層:是系統的使用者介面,提供了使用者與核心進行互動操作的一種介面。
檔案結構:是檔案存放在磁碟等儲存裝置上的組織方法,檔案結構的相互關聯性使共享資料變得容易。 -
敘述什麼是 shell? 什麼是 X window ? Redhat 的預設 shell 和 X window 是什麼?( 6 分)
Shell 是系統的使用者介面,提供了使用者與核心進行互動操作的一種介面。是一個命令直譯器,它可以用來啟動、掛起、停止、甚至編寫程式。
Xwindow 選擇 shell 如何進行任務控制。是否支援命令列編輯。是否支援命令列歷史記錄,環境變數有哪些,什麼是它的開機啟動檔案或者配置檔案,支援什麼樣的程式設計框架?
是 UNIX 和 Linux 系統上的圖形使用者介面系統。
Linux 的預設 shell 是 bash ,預設 XWindow 是 XFree86 -
Linux 系統有幾種型別檔案?它們分別是什麼?有哪些相同點和不同點?
答: 3 類。分別是普通檔案,目錄檔案和裝置檔案。相同是它們都是檔案,都有一個檔名和 i 節點號。不同點是,普通檔案的內容為資料,目錄檔案的內容為目錄項或檔名與 i 節點對應表,裝置檔案不佔用磁碟空間,通過其 i 節點資訊可建立與核心驅動程式的聯絡。 -
綜述 Linux 系統的檔案許可權及其管理。
答: Linux 用檔案存取控制表來解決存取許可權的控制問題。存取控制表以檔案為單位,把使用者按某種關係畫分為若干組,同時規定每組使用者的存取許可權。每個檔案都有一張存取控制表。在實現時,該表存放在檔案說明中,也就是 i 節點的檔案許可權項。
就某個檔案而言,它只對三類使用者(檔案主,同組人,其它人)分配許可權。許可權的修改或分配可通過命令 chmod 來實現。當然 chmod 和 chgrp 等命令也有著許可權控制作用,因為檔案的主和組變了,它相應的許可權也會隨之改變 -
簡述 linux 的幾個執行級別及其相應的含義。
0- 關機模式,
1- 單使用者模式,單使用者只有系統管理員可以登入。
2- 多使用者模式,但是不支援檔案共享,例如不支援 NFS 服務 . 這種模式不常用。
3- 完全的多使用者模式,支援 NFS 服務 . 最常用的使用者模式,預設登入到系統的字元介面。
4- 保留模式。
5- 完全多使用者模式,預設登入到 X-window 系統,也就是登入到 linux 圖形介面。
6- 重啟模式,也就是執行關閉所有執行的程序,然後重新啟動系統。 -
什麼 是連結?符號連結與硬連結的區別是什麼?
連結是指用一個 i 節點對應多個檔名。硬連結是把檔案的 i 節點號指向該 i 節點,
且連結計數器值加 1 。刪除連結檔案時計數器值減 1 ,當其值為 0 時, i 節點被釋放。
符號連結是隻有檔名的一個連結檔案,並不指向一個真正的 i 節點。
在刪除符號連結檔案時與硬連結檔案有區別。 -
Shell 程式中,對使用者變數賦值有哪些方式?簡要說明每種賦值方式的使用方法。
等號賦值
在等號前後均不能有空格。
當需要將一個包含空格的字串賦給使用者變數時,應用單引號將該字串括起來。
鍵盤賦值
由 read 命令來實現的。用法為: read 使用者變數名
當 shell 程式執行到該行時,將等待使用者從鍵盤輸入,
當用戶按下回車鍵時 shell 把你輸入的內容賦給使用者變數。**
命令替換賦值
用法為:使用者變數 =命令
該語句將首先執行反向單引號之間的命令,
然後將其執行後輸出的內容賦給該使用者變數,在這種賦值方式中,
等號前後同樣不能有空格,而且必須用反向單引號(即重音號)把命令括起來。
四、操作題(寫出完成下述功能的命令序列,每小題 4 分,共 20 分)
-
假設你的使用者賬號是 zheng ,現在你登入進入 linux 系統,檢視當前登入到系統中的使用者 , 檢視當前系統中執行的程序,然後再退出系統。
答:
login : zheng
Password :口令
$who
$ps
$Ctrl+D -
在當前目錄 /home/zheng 下新建一個目錄 back ,將當前目錄改為 back ,在 back 下新建 2 個長度為 0 的檔案 test1 、 test2 ,然後把 test2 移到其父目錄中並改名為 file12 。
答:
$ mkdir back
$ cd back
$ touch test1 test2
$ mv test2 …/file2 -
現在需要統計當前目錄 /home/zheng 下普通檔案的數目並顯示結果 , 如何實現?
$find – type f | wc – l -
假設你是系統管理員,需要增加一個新的使用者賬號 zheng ,為新使用者設定初始密碼,鎖定使用者賬號 uly ,並刪除使用者賬號 chang 。
答:
.#useradd zheng
#passwd zheng
#passwd – l uly
#userdel chang -
若給需要將 /home/zheng 目錄下的所有檔案打包壓縮成 /tmp/zheng.tar.gz ,你準備怎麼做?當需要從壓縮包中恢復時,又該如何處理?
答:
#tar –zcvf /tmp/zheng.tar.gz /home/zheng
#tar -zxvf /tmp/zheng.tar.gz -
將當前目錄下的 bin 目錄和 hello 、 hello.c 檔案備份並壓縮為 binzxj.tar.gz 檔案的命令是 tar –czvf binzxj.tar.gz bin hello hello.c
-
在 /home 目錄下查詢檔名為。 Profile 的檔案,找到後刪除
find /home –name . profile - exec rm{ } ; -
建立一個使用者,使用者名稱為 user02 ,所屬私有組和標準組為 stuff ,使用者家目錄為 /home/user2 ,使用者登陸 shell 為 /bin/bash
useradd –g stuff –G stuff -d /home/user2 -s /bin/bash user02 -
有一普通使用者想在每週日凌晨零點零分定期備份 /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 使生效。 -
把檔案 file1 和 file2 合併成 file3 的命令是 cat file1 file2>file3
-
下面給出了一個 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 分
程式功能:若命令列引數是一個合法目錄則顯示該目錄下所有普通檔案的內容,否則顯示錯誤的目錄名資訊 -
填寫標記程式碼行的意義,給出功能描述和前 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 -
在 Linux 系統中執行下面程式,最多可產生多少個程序?畫出程序家族樹。 ( 6 分)
main()
{
fork();
fork();
fork();
}
答:最多可以產生 7 個程序 )(共8個)
- 試編寫一個 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 "
- 建立一個 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
- 設計一個 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"
- 用 shell 編寫小九九乘法表程式,程式執行結果如下:
#! /bin/sh –
for 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