《鳥哥的linux私房菜:基礎學習篇》第3版
阿新 • • 發佈:2019-02-19
↑↑↑ 戳上面目錄,瀏覽更方便。
• Unix 與 Linux 的歷史
o Multics 系統:由 Bell(貝爾實驗室)、MIT(麻省理工學院)與 GE(美國通 用電器)合作開發的一個系統;
o 1969:K. Thompson 替 DEC 公司寫了一個簡單的 file system 系統,此為 Unix 的前身,但是 Unix 一詞尚未出現
o 1973:由 Bell 的 D. Richie 以 C 語言改寫了 Thompson 的小系統,全部以ASCII 檔案進行改寫,方便於應用!此時為第一次出現 Unix 這個作業系統的名詞,不過,由於 Unix 乃針對不同的硬體而設定,因此僅出現在大型的 Server上面看到!經過數年後,有底下幾種版本:
1. System V 來自於 ATT 公司;
2. BSD 來自於加州理工學院;
3. AIX 來自於 IBM 公司
o 1979:Richard Stallman 倡導 Open source 精神;
o 1984:GNU 與 Free Software Foundation (FSF)由 R. Stallman 倡導;
o 1986:Xfree86 出現在 Unix 上面,且在 1994 年整合於 Linux 中!
o 1991:芬蘭大學生 Linus Torvalds 在網路上首次公告 0.02 版的 Linux Kernel ,稱為 hobby。
• 簡單說明 GNU General Public License (GPL)的精神:
o GPL 的授權之軟體,乃為自由軟體 (Freeware),任何人皆可擁有他;
o 開發 GPL 的團體(或商業企業)可以經由該軟體的服務來取得服務的費用;
o 經過 GPL 授權的軟體,其屬於 Open source 開源的情況,所以應該公佈其原始碼;
o 任何人皆可修改經由 GPL 授權過的軟體,使符合自己的需求;
o 經過修改過後 Open source 應該回饋給 Linux 社群。
(PS. Open source 最大的優點為多人維護, debugs 的速度較快,程式亦較為安全,但是缺點則是缺乏"專人"維護!)
• 什麼是 Linux Distribution?
基本上 Linux 是在 1991 年由芬蘭大學生 Linus Torvalds 寫的一個核心作業系統,最早僅只是核心而已,後來由於此一核心不但可以適合於主流 PC 的 x86 架構,並且穩定,因此有相當多的團隊加入研究開發,後來某些公司將一些套件加入此一核心中,變成為完整的"安裝光碟",亦即是 Linux Distribution 了!所以才會有這麼多的 Linux 版本,各版本之間沒有所謂的誰優誰劣,而是個有其優缺點!看你適合哪一款,就用那一款吧!
開發商針對 Linux Kernel 進行開發,並加入適合該 Kernel 的套件(如 ftp, apache,mail 等等),及配合開發商本身的支援軟體,而製作出來的可安裝光碟即可稱為distribution。
• 市面上眾多的 Linux 版本當中,有何異同?
唯一相同的地方在於 Linux 的"Kernel",目前 ( 2002/06/29 ) Kernel 發展至 2.4.xx版本,至於不同點則是 Linux 開發商自行加入或者是研發的軟體。
• Linux Kernel 的功能:
o System call interface 系統呼叫介面
o Process control 程序控制
o Memory management 記憶體管理
o File System management 檔案系統管理
o Device drivers 裝置驅動
簡單的說,任何跟系統硬體資源有關的都是 Linux Kernel 管轄的範圍,所以編輯核心的時候,將核心編的越小越好!
• 試說明 Linux Kernel 與使用者之間的相關性?
硬體 <=> Kernel (Modules Loader) <=> Shell ( Terminal or GUI ) <=> Users
• 試說明什麼是 GUI
GUI 為 Graphical User Interface 的簡寫,即為使用者圖形介面,目前我們在 Linux 上面的 GUI 一般稱為 X-Window ,而其核心為 Xfree86 這個 X-Server !請注意,這個Xfree86 最大的功能即是在控制"顯示卡、硬體周邊"等跟 Window 有關的介面,所以X-Window 無法啟動時,通常是 Xfree86 這個 X-Window 的核心驅動程式設定不完全有關!
• Linux 的優點:
最大的優點來自於其良好的資源分配!所以具有:
o 良好的多人多工環境,資源分配平均;
o 除了免費之外,線上更新速度快,除錯與安全性均較佳;
o 為 Open source 的授權,故而具有 open source 的所有優缺點;
o 網路功能強大。
• Linux 是多人多工的環境,請問何謂多工(Multitask)與多人(Multiuser):
o Multitask 指的是多工環境,在 Linux 系統下, CPU 與其它例如網路資源可以同時進行多項工作, Linux 最大的特色之一即在於其多工時,資源分配較為平均!
o Multiuser 指的是 Linux 允許多人同時連上主機之外,每個使用者皆有其各人的使用環境,並且可以同時使用系統的資源!
• 一般而言, Linux 需要的配備並不需要太高階,但 Open Linux Server 3.1.1 需要?
o CPU 需要在 PII, PIII, P4 或 K7, K8 以上等級;
o RAM 至少需要 64 MB,
o 硬碟至少 550 MB,全部安裝則需要 1.7GB
• 什麼是 IDE 介面,一般而言,普通 PC 允許幾個 IDE 介面與裝置?
o IDE 為用來傳輸硬碟資料的一個匯流介面;
o 共有 IDE1, IDE2 ,分別有 master 與 slave 所以共四個 IDE 裝置支援!
• IDE2 的 master 之第一個 logical 磁碟中,其裝置代號(檔名稱)為何?
/dev/hdc5
• 在硬碟分割 (Partition)時,最多有幾個 primary + extended ?
Primary + Extended 共四個,其中 Extended 通常只有一個!
• 若在分割的時候,在 IDE1 的 slave 硬碟中,分割"六個有用"的扇區(具有 filesystem的),此外,有兩個 primary 的扇區!請問六個扇區的代號?
o /dev/hdb1(primary)
o /dev/hdb2(primary)
o /dev/hdb3(extended)
o /dev/hda5(logical 底下皆為 logical)
o /dev/hda6
o /dev/hda7
o /dev/hda8
請注意,5-8 這四個 logical 相加的總和為 3!
• 一般而言安裝 Linux 至少要有哪兩個 partition 呢?
o 根目錄 / (root)
o 虛擬記憶體 Swap
• 一般而言,在 RAM 為 64MB 或 128 MB 的系統中, swap 要開多大?
約兩倍的 RAM ,亦即為 128 MB 或 256 MB ,可獲得較佳效能!
• 光碟機與軟盤機的裝置檔案(裝置檔名稱)?
o /dev/cdrom
o /dev/fd0
• 網絡卡(Network Interface Card, NIC)的裝置檔案?
o /dev/eth0
• 預設的 Linux 檔案格式為何?又,目前常用的 Journalling 檔案格式為何?
o Ext2
o Ext3, Reseifs
• 安裝 Linux 的主要流程?
o BIOS(決定由 cdrom 或 floppy 開機,並載入 PC 硬體資訊)
o 載入 install kernel loader
o 收集硬體資訊
o Hard Disk 之 Partition
o Formation
o Softpackage 的選擇
o 開始安裝!
• 什麼是 GMT 時間?臺北時間差幾個鐘頭?
GMT 時間指的是格林威治時間,為標準的時間,而臺北時間較 GMT 快了 8 小時!
• Tap, SCSI 硬碟, RAID, printer 的裝置檔案?
o Tap : /dev/ht0 (IDE), /dev/st0 (SCSI);
o SCSI H.D.: /dev/sd[a-p],
o RAID : /dev/md[0-15];
o printer : /dev/lp[0-2]
• 若以 X-Window 為預設的登陸方式,那請問如何進入 Virtual console 呢?
可以按下 [Ctrl] + [Alt] + [F1] ~ [F6] 進入 Virtual console ( 共六個 );
而按下 [Ctrl] + [Alt] + [F8] 可回到 X-Window 的 desktop 中!
• 如何修改進入 Linux 時候的 run-level 執行等級?又 run-level 0, 1, 3, 5 各代表什麼意思?
o 修改 /etc/inittab 裡頭的設定即可;
o 0:重新開機(如 init 0 );
1:單人維護模式,沒有網路功能;
3:純文字介面登陸,多人多工環境;
5:X-Window 登陸模式,多人多工模式。
• XFree86 在 X-Window 中的角色為何?
基本角色是控制顯示相關硬體的核心角色,也可以說程式 X-Window 的 Server ,此外,KDE 這個 Window management 則是 X-Window 的 Client 呦!因此, XFree86 若死掉了,那麼 KDE 就無法被啟動!
• XFree86 的主要設定檔案在哪裡?
就是在 /etc/X11/XF86Config-4 這個檔案!
• KDE 預設提供多少個 Virtual desktops ?
預設是提供四個,就是在進入 KDE 之後,最下方的 bar 上面有 1,2,3,4 那個字樣的那個東東!
• 在 Linux 系統中,安裝的套件 (RPM 安裝) 預設的檔案資料放在那個目錄底下?
/usr/share/doc
• 檢視 Linux 系統的線上求助可以使用什麼指令?
man command
info command
• 使用 man 來查詢線上求助的時候,若要查詢類似引數檔案(如/etc/passwd)需如何?
man 5 passwd 或是例如 syslog.conf 則: man 5 syslog.conf 那個 5 即是大部分的config 檔案的查詢。
• 使用 man 查詢 command 的所有相關指令時,需要下什麼引數?
man -k command 例如 man -k passwd
• man page 的 man path 變數,記錄在那個檔案中呢?!
/etc/manpath.config
• 在 linux 底下最常使用的文書編輯器為 vi ,請問如何進入編輯模式?
o 在一般模式底下輸入: i, I, a, A 為在本行當中輸入新字元;(出現-Insert- )
o 在一般模式當中輸入: o, O 為在一個新的一行輸入新字元;
o 在一般模式當中輸入: r, R 為取代字元!(左下角出現 -Replace-)
• 如何由編輯模式跳回一般模式?
[Esc]
• 若上下左右鍵無法使用時,請問如何在一般模式移動游標?
h, j, k, l
• 若 [pagedown] [ pageup] 在一般模式無法使用時,如何往前或往後翻一頁?
[Ctrl] + [f]
[Ctrl] + [b]
• 如何到本檔案的最後一行、第一行;本行的第一個字元、最後一個字元?
G, 1G, 0, $
(大寫的G可以用快捷鍵:shift + g)
• 如何刪除一行、n 行;如何刪除一個字元?
dd, ndd, x 或 X (dG 及 d1G 分別表示刪除到頁首及頁尾)
• 如何複製一行、n 行並加以貼上?
yy, nyy, p 或 P
• 如何搜尋 string 這個字串?
o : ?string (往前搜尋)
o : /string (往後搜尋)
• 如何取代 word1 成為 word2,而若需要使用者確認機制,又該如何?
o : %s/word1/word2/g
o : %s/word1/word2/gc (需要使用者確認)
• 如何讀取一個檔案 filename 進來目前這個檔案?
:r filename
• 如何另存新檔案成為 newfilename?
:w newfilename
• 如何存檔案、離開、存檔案後離開、強制存檔案後離開?
:w; :q; :wq; :wq!
• 如何設定與取消行號?
:set nu
:set nonu
• 請問底下的目錄與主要放置什麼資料?
o /etc/:幾乎系統的所有設定檔案均在此,尤其 passwd, shadow
o /etc/rc.d/init.d:系統開機的時候載入服務的 scripts 的擺放地點
o /boot:開機設定檔案,也是預設擺放核心 vmlinuz 的地方
o /usr/bin, /bin:一般執行檔案擺放的地方
o /usr/sbin, /sbin:系統管理員常用指令集
o /dev:擺放所有系統裝置檔案的目錄
o /var/log:擺放系統登入檔案的地方
• "舊的" Unix 系統與 Linux 系統的"檔名"最多可以容許幾個字元?
14, 255
• 什麼是絕對路徑與相對路徑,要由 /usr/share/doc 進入到 /usr/share/man 由相對路徑與絕對路徑的寫法各為何?
o 絕對路徑絕對由 / 開始寫起,相對路徑則非由 / 寫起;
o cd /usr/share/man ; cd ../man
• 在非為根目錄的任何一個目錄中,下達 ls -al 時,均會有"."及".."這兩個目錄,請問分別代表什麼?
o . :代表本目錄
o .. :代表上層目錄
• 顯示、變換目錄的時候,使用什麼指令?
ls, pwd 為顯示; 變換目錄用 cd
• 新增目錄、移除目錄移動目錄與拷貝目錄有什麼指令可用?
o 新增: mkdir 目錄
o 移除: rmdir 目錄(但是該目錄內必須要已經清空了), rm -rf 目錄
o 移動: mv directory1 directory2
o 拷貝: cp -r directory1 directory2
• 如何檢視一個檔案的"內容"(不要使用 vi 的情況下)
cat, tac, more, less, head, tail, nl, od(檢視二進位制制)
• 什麼是 hard link 與 soft link 的檔案?有何不同?
o Hard Links:在做成 hard link 檔案時,系統會佔用掉一個 inode ,由連結檔案可發現其 link 欄位多使用了一個 inode ,當原始檔被刪除的時候,該原始檔的內容將繼續保留在其它的 Hard Links 檔案中;但所有 Link 佔用的硬碟總量僅佔一個檔案的容量大小!(但 Hard link 不能連結不同 ilesystem 的檔案)
o Soft Links:類似快捷方式,當原始檔案被刪除,soft link 檔案將找不到原始檔案了!
• 如何在 root 的家目錄下建立一個 /bin 的連結快捷方式
ln -s /bin /root/bin
• 若有一個連結檔案為 testing 連結到 test1.sh ,請問 copy testing 到 /tmp 底下,"cp testing /tmp"則 /tmp/testing 這個檔案會是:
(1) 連結檔案,連結到 test1.sh ;
(2) 一般檔案,為內容與 test1.sh 相同?
答案為 (2)
• 當一個檔案屬性為 -rwxrwxrwt 則表示這個檔案的意義為?
任何人皆可讀取、可寫入,但是不可刪除該檔案(或目錄),除了 root 與檔案或目錄擁有者有權可以刪除。
• 我需要將一個檔案的屬性改為 -rwxr-xr-- 請問該如何下達指令?
chmod 754 filename, chmod u=rwx,g=rx,o=r filename
• 在 /usr/bin/passwd 這個檔案的屬性為 -r-s--x--x 請問代表什麼意思(s)
那個 s 代表為 SUID ,當使用者使用這個檔案進行工作的時候,將會具有該檔案擁有者的許可權!
• 如何改出 -rwxr-sr-x 與 -rwxr-xr-t 這個屬性?
chmod 2755 filename, chmod 1755 filename
• 如何檢視一個檔案的型別 (type) 例如純文字檔案、執行檔案與 setuid 檔案等?
file filename
• 若一個使用者的 umask 為 033 ,請問他建立一個新的目錄與檔案時的預設屬性為?
o 目錄:744 ? -rwx-r--r--
o 檔案:633 ? -rw--wx-wx
• 若我需要更改一個檔案的擁有者與群組,該用什麼指令?
chown, chgrp
• 如何將一個檔案的修改日期改成目前的時間?
touch thisfilename
• 如何搜尋一個檔案?
which (僅用於指令搜尋), whereis, locate, fine
• Linux 預設的檔案系統為何?此外,常用的 Journalling 檔案格式有哪些?
Ext2, Journalling 有 ext3 及 Reiserfs 等
• less 跟 more 有什麼不同?
less 可以翻頁,但是 more 不行!
• 在比較兩個檔案的異同時,常使用的是 diff 與 cmp ,請教兩者有何不同?
diff 為一行一行比較, cmp 為一個字元(character)一個字元比較
df -k, df -i
• 我要如何檢視目前所在目錄的所有檔案佔用的硬碟空間,此外,如何僅輸出結果?
du -k, du -h, du -s
• 如果扇區 /dev/hda3 有問題,偏偏他是被掛載上的,請問我要如何修理此一扇區?
umount /dev/hda3
fsck /dev/hda3
• 承上題,那麼有問題的檔案將被移動到那個目錄下?
/lost+found/
• 試說明新增一個 partition 在 /dev/hdb 當中,且為 hdb5 時,並掛載上 /disk2 ,需要哪些步驟?
o fdisk /dev/hdb 按 n 新增,按 e 新增 extended ,再按 n 新增 logical
o mke2fs -b 2048 /dev/hdb5
o mkdir /disk2
o mount -t ext2 /dev/hdb5 /disk2
• 如何新增加 64MB 的虛擬記憶體 swap ?
o dd if=/dev/zero of=/tmp/swap bs=4k count=16384
o mkswap /tmp/swap
o swapon /tmp/swap
• 如果要設定一個新掛載上的扇區,令他可以在開機的時候被掛載上,應該編輯哪一個檔案?
o 先 /etc/fstab
o 再 mount -a
• 簡易說明 quota 的設定流程?
o 編輯 /etc/fstab, 加入 usrquota and/or grpquota
o reboot
o quotacheck -avug (會產生 aquota.user(group))
o quotaon -aug
o edquota -u username
o edquota -g groupnameo repquota -vu /dev/hd[a-d][1-16]
o 命令記憶功能 ~/.bash_history
o 命令別名功能 alias
o shell scripts 功能
o 命令與檔名稱補全功能 <tab>
o 工作控制功能 jobs
• 在設定變數中,主要的規則為何?
1. 變數與變數內容以等號來連結;
2. 等號兩邊不能直接接空格符;
3. 變數名稱只能是英文字母與數字,但是數字不能是開頭字元;
4. 若有空格符可以使用雙引號" " "或單引號" ' "來將變數內容結合起來,但須要特別留意,雙引號內可以保有變數,但是單引號則僅為一般字元;
5. 必要時需要以跳脫字元" \ "來將特殊符號(如 Enter, $, \, 空格符, ' 等)變成一般符號;
6. 若該變數為擴增變數內容時,則需以雙引號及 $變數名稱如:" "$PATH":/home"繼續累加內容;
7. 若該變數需要在其它子程式執行,則需要以 export 來使變數可以動作,如"export PATH";
8. 通常大寫字元為系統預設變數,自行設定變數可以使用小寫字元,方便判斷(純粹依照使用者興趣與嗜好);
9. 取消變數的方法為:"unset 變數名稱"
• 顯示環境變數與所有變數的指令為何?
env, set
• 在環境變數當中,"使用者家目錄、主機名稱"的變數名稱為:
HOME, HOSTNAME
• 如何讓一個變數可以持續到下一個程式 (PID) 去?
export variable
• 在變數的設定當中,雙引號與單引號有何不同?
雙引號裡面可以包含變數,單引號謹代表一般字元!
• Command1 `command2` 這個指令代表什麼意思?
在這一行當中, command2 會先執行,而輸出的結果會給 command1 當作引數。
cd /lib/modules/`uname -r`/kernel 是最常使用的一例
• 在命令重導向當中, > 與 >> 有什麼不同?
> 會將導向的 file 覆蓋,
>> 則是追加!
• 若要將錯誤的輸出導向"不見了"的裝置,該如何是好?
command 2> /dev/null
• 在管道指令中,我要將 last 輸出的結果顯示 root 的"登陸次數", 如何做?
last | grep root | cut -d " " -f 1 | wc -l
• 如何設定一個變數名稱為 name ,使其顯示為" VBird’s testing variable. "?
o name=VBird\’s\ testing\ variable.
o name=”VBird’s testing variables.”
o echo $name
• 請問 bash shell 的環境變數與自己的個人變數可以登陸便設定的檔案?
o Open Linux:
/etc/profile, /etc/config.d/shells/bashrc, ~/.profile, ~/.bashrc,
o Red Hat :
/etc/profile, ~/.bash_profile, ~/.bashrc,
• 如何查詢曾經操作過的指令?如何執行第 26 個操作過的指令?上一個操作過的指令?
o history
o !26
o !!
• 如何設定命令別名?使 lm 與 ls -al|more 功能相同
alias lm=’ls -al|more’
• 如何將 /bin 的所有資訊輸出到 /home/testing.dat 這個檔案?
ls -al /bin 1> /home/testing.dat
• 在上一題中,若還要輸出到螢幕上,要如何是好?
ls -al /bin | tee /home/testing.dat
• 執行 find ,並將正確的結果輸出到 right 而錯誤結果輸出到 error 當中?
find / -name test 1> right 2>error
• 如何在指令列模式中將 /root/.bashrc 的資料加在 /home/col/.bashrc 當中?
cat /root/.bashrc >> /home/col/.bashrc
• 不顯示執行的結果要如何操作?
command > /dev/null 2>&1
• 列出這個月曾經登陸主機的使用者資訊即可,不需要重複?
last | cut -d " " -f1 | sort | uniq
• 萬用字元當中, *, ?, [] 各代表什麼意思?
o * 代表 0 到無限多個字元;
o ? 代表一個任意字元;
o [ ] 代表一個字元,這個字元在某一個限制範圍內。
o 簡單的說, scripts 就是一個內部含有多個或複雜的 command 的純文字檔案;
o scripts 可以進行 program 的功能,但速度上較 C 慢了點!
• 要撰寫可以經由鍵盤輸入的 scripts 時,常使用到的指令?
read variable
• 在 shell script 當中,在控制式中, && 與 || 代表什麼意思?
分別代表"和(同時成立)"及"或(僅其一成立就成立)"的意思!
• 在使用迴圈的時候,常使用到的控制式為哪三個?
for, while, until
• 執行 scripts 的方法有哪兩種?
o 使用 sh script 或
o 以 chmod 增加 scripts 的屬性為可執行, chmod 777 script 並執行scripts。
• 如何宣告一個變數成為整數型態?
declare -i variable
• 為何在 shell script 前面都要宣告 shell 呢?
宣告 shell 方能讓 script 瞭解該內容需要以何種 shell 來執行!目前 Linux 通常宣告 /bin/bash 這個 shell ,然而若在非 shell 環境中,又沒有宣告 shell 型別時,可能會造成 script 無法執行的情況。
• 在判斷式中,如何判斷一個檔名是否存在?
if [ -e filename ] 若存在則回傳值為真!
• 在執行一個 scripts 時,在 scripts 內的變數, $0, $1 代表什麼?
o $0 代表 scripts 的檔名;
o $1 代表第一個 parameter,例如 /etc/rc.d/init.d/xinetd start 那個 start 的變數即為 $1
• 若要寫一個既定的 parameter (如 start ),用哪一個判斷式較簡單?
可以使用 case …. Esac 的語法較為簡單。
• 如何印出目前系統中的所有賬號,並加以排序且輸出到 /tmp/account 中?
cut -d ':' -f 1 /etc/passwd | sort > /tmp/account
• 如何在不執行 scripts 的情況中 debug ?
sh -n scripts
useradd -M username
• Linux 使用者的賬號、密碼與群組的名稱檔案放在哪裡?
/etc/passwd
/etc/shadow
/etc/group
• 建立新使用者的預設家目錄內容在那個目錄中?
/etc/skel
• 建立一個新使用者時,其使用到的相關檔案有哪些?
o /etc/default/useradd
o /etc/login.defs
o /etc/skel/
o /etc/passwd
o /etc/shadow
• root 的 UID 與 GID 各為何?
皆為 0
• 如何讓一個使用者不能登陸主機,但是可以收信?
將 /etc/passwd 最後一欄代表 shell 的名稱改為 /bin/false
• 試說明一個使用者登陸系統的流程?
1. 登陸:使用 /bin/login 程式,並輸入 ID 與 passwd ;
2. 確認密碼:搜尋 /etc/passwd, /etc/shadow 確認密碼!並取得使用者的相關訊息。
3. 查核 pam 登陸模組:這個需要視主機的設定而定!
4. 取得並執行 shell :由 /etc/passwd 取得 shell 之後,並執行 shell ,以bash 為例,將讀入: /ete/profile ? ~/.bash_profile ( 或 .bash_login或 .profile ) ? ~/.bashrc ? 登出的時候執行 ~/.bash_logout
• 在 /etc/shadow 當中的日期設定中,其數字代表的意義為何?
由 1970 年開始計算,故 1970 年 一月一日為 1 ,2002 年 1 月 1 日為 11689
• 如何變更使用者的一些屬性?
usermod, chfn, chsh, passwd
• 如何視察一個使用者 username 所擁有的群組呢?
groups username
• 試說明如何手動增加一個使用者 username 與群組 groupname?
1. 先看看 /etc/skel 當中,預設要給 user 的家目錄內容;
2. 新增 group : groupadd groupname
3. 新增 user :useradd -m -g groupname username
4. 給予密碼: passwd username
• 試說明 /etc/passwd 這個檔案的內容與格式:
賬號; 密碼; UID; GID; 說明的內容; 家目錄; SHELL
• 使用 id 這個指令時,可以顯示什麼訊息資料?
UID, GID 跟 GROUP
• 可以控制使用者使用主機資源的預設檔案在哪裡?
/etc/security/limits.conf
• 基本的壓縮指令有哪些?
tar, gzip, compress
1. BIOS
2. MBR ( boot loader )
3. Loader ( lilo or grub, stage 1 and stage 2 )
4. Kernel loader ( /boot/vmlinuz )
5. init process ( 讀取 /etc/inittab 取得 run-level )
6. 開始執行 /etc/rc.d 內的 scripts
7. 執行 /etc/modules.conf 內部的額外 kernel 模組
8. 執行 /etc/rc.d/rc[1-6].d 的這些 run-level 內的 scripts !
9. 執行 /bin/login 等待使用者登陸!
• 開機時後的載入訊息可以看哪裡?
dmesg
grep “kernel” /var/log/messages
• 改變 run-level 或關機的指令
shutdown
halt,reboot
init or telinit
• 改變登陸 Linux 時候預設的 run-level 要改那個檔案?
/etc/inittab
ps, top
• 如何檢視目前的記憶體使用狀況?
free, top
• 目前的工作如何丟到背景中?
[Ctrl] + z
• 如何取得目前背景中的工作,且將他拉回前景中?
jobs -x filename 及 fg %number
• 如何設定一個程式在開始執行時候的優先值?
nice -n [number] [command]
• 什麼指令可以修改一個正在執行的程式之 nice 值?
top, renice
• 在例行性命令中,使用的兩支 demane 是什麼?
atd, crond
• 使用 crontab 這個"指令"的時候,如何可以檢視目前的工作與刪除目前的工作?
編輯: crontab -e
檢視: crontab -l
刪除: crontab -r
• 常用的 kill 指令之 signal 當中, 1, 9, 15 代表什麼?
o 1 重新讀取一次 config file
o 9 強制刪除此一執行程式
o 15 terminal 結束的意思
一、什麼是 Linux ?
• Unix 與 Linux 的歷史
o Multics 系統:由 Bell(貝爾實驗室)、MIT(麻省理工學院)與 GE(美國通 用電器)合作開發的一個系統;
o 1969:K. Thompson 替 DEC 公司寫了一個簡單的 file system 系統,此為 Unix 的前身,但是 Unix 一詞尚未出現
o 1973:由 Bell 的 D. Richie 以 C 語言改寫了 Thompson 的小系統,全部以ASCII 檔案進行改寫,方便於應用!此時為第一次出現 Unix 這個作業系統的名詞,不過,由於 Unix 乃針對不同的硬體而設定,因此僅出現在大型的 Server上面看到!經過數年後,有底下幾種版本:
1. System V 來自於 ATT 公司;
2. BSD 來自於加州理工學院;
3. AIX 來自於 IBM 公司
o 1979:Richard Stallman 倡導 Open source 精神;
o 1984:GNU 與 Free Software Foundation (FSF)由 R. Stallman 倡導;
o 1986:Xfree86 出現在 Unix 上面,且在 1994 年整合於 Linux 中!
o 1991:芬蘭大學生 Linus Torvalds 在網路上首次公告 0.02 版的 Linux Kernel ,稱為 hobby。
• 簡單說明 GNU General Public License (GPL)的精神:
o GPL 的授權之軟體,乃為自由軟體
o 開發 GPL 的團體(或商業企業)可以經由該軟體的服務來取得服務的費用;
o 經過 GPL 授權的軟體,其屬於 Open source 開源的情況,所以應該公佈其原始碼;
o 任何人皆可修改經由 GPL 授權過的軟體,使符合自己的需求;
o 經過修改過後 Open source 應該回饋給 Linux 社群。
(PS. Open source 最大的優點為多人維護, debugs 的速度較快,程式亦較為安全,但是缺點則是缺乏"專人"維護!)
• 什麼是 Linux Distribution?
基本上 Linux 是在 1991 年由芬蘭大學生 Linus Torvalds 寫的一個核心作業系統,最早僅只是核心而已,後來由於此一核心不但可以適合於主流 PC 的 x86 架構,並且穩定,因此有相當多的團隊加入研究開發,後來某些公司將一些套件加入此一核心中,變成為完整的"安裝光碟",亦即是 Linux Distribution 了!所以才會有這麼多的 Linux 版本,各版本之間沒有所謂的誰優誰劣,而是個有其優缺點!看你適合哪一款,就用那一款吧!
開發商針對 Linux Kernel 進行開發,並加入適合該 Kernel 的套件(如 ftp, apache,mail 等等),及配合開發商本身的支援軟體,而製作出來的可安裝光碟即可稱為distribution。
• 市面上眾多的 Linux 版本當中,有何異同?
唯一相同的地方在於 Linux 的"Kernel",目前 ( 2002/06/29 ) Kernel 發展至 2.4.xx版本,至於不同點則是 Linux 開發商自行加入或者是研發的軟體。
• Linux Kernel 的功能:
o System call interface 系統呼叫介面
o Process control 程序控制
o Memory management 記憶體管理
o File System management 檔案系統管理
o Device drivers 裝置驅動
簡單的說,任何跟系統硬體資源有關的都是 Linux Kernel 管轄的範圍,所以編輯核心的時候,將核心編的越小越好!
• 試說明 Linux Kernel 與使用者之間的相關性?
硬體 <=> Kernel (Modules Loader) <=> Shell ( Terminal or GUI ) <=> Users
• 試說明什麼是 GUI
GUI 為 Graphical User Interface 的簡寫,即為使用者圖形介面,目前我們在 Linux 上面的 GUI 一般稱為 X-Window ,而其核心為 Xfree86 這個 X-Server !請注意,這個Xfree86 最大的功能即是在控制"顯示卡、硬體周邊"等跟 Window 有關的介面,所以X-Window 無法啟動時,通常是 Xfree86 這個 X-Window 的核心驅動程式設定不完全有關!
• Linux 的優點:
最大的優點來自於其良好的資源分配!所以具有:
o 良好的多人多工環境,資源分配平均;
o 除了免費之外,線上更新速度快,除錯與安全性均較佳;
o 為 Open source 的授權,故而具有 open source 的所有優缺點;
o 網路功能強大。
• Linux 是多人多工的環境,請問何謂多工(Multitask)與多人(Multiuser):
o Multitask 指的是多工環境,在 Linux 系統下, CPU 與其它例如網路資源可以同時進行多項工作, Linux 最大的特色之一即在於其多工時,資源分配較為平均!
o Multiuser 指的是 Linux 允許多人同時連上主機之外,每個使用者皆有其各人的使用環境,並且可以同時使用系統的資源!
二、Linux 的安裝與認識 Linux 支援的硬體
• 一般而言, Linux 需要的配備並不需要太高階,但 Open Linux Server 3.1.1 需要?
o CPU 需要在 PII, PIII, P4 或 K7, K8 以上等級;
o RAM 至少需要 64 MB,
o 硬碟至少 550 MB,全部安裝則需要 1.7GB
• 什麼是 IDE 介面,一般而言,普通 PC 允許幾個 IDE 介面與裝置?
o IDE 為用來傳輸硬碟資料的一個匯流介面;
o 共有 IDE1, IDE2 ,分別有 master 與 slave 所以共四個 IDE 裝置支援!
• IDE2 的 master 之第一個 logical 磁碟中,其裝置代號(檔名稱)為何?
/dev/hdc5
• 在硬碟分割 (Partition)時,最多有幾個 primary + extended ?
Primary + Extended 共四個,其中 Extended 通常只有一個!
• 若在分割的時候,在 IDE1 的 slave 硬碟中,分割"六個有用"的扇區(具有 filesystem的),此外,有兩個 primary 的扇區!請問六個扇區的代號?
o /dev/hdb1(primary)
o /dev/hdb2(primary)
o /dev/hdb3(extended)
o /dev/hda5(logical 底下皆為 logical)
o /dev/hda6
o /dev/hda7
o /dev/hda8
請注意,5-8 這四個 logical 相加的總和為 3!
• 一般而言安裝 Linux 至少要有哪兩個 partition 呢?
o 根目錄 / (root)
o 虛擬記憶體 Swap
• 一般而言,在 RAM 為 64MB 或 128 MB 的系統中, swap 要開多大?
約兩倍的 RAM ,亦即為 128 MB 或 256 MB ,可獲得較佳效能!
• 光碟機與軟盤機的裝置檔案(裝置檔名稱)?
o /dev/cdrom
o /dev/fd0
• 網絡卡(Network Interface Card, NIC)的裝置檔案?
o /dev/eth0
• 預設的 Linux 檔案格式為何?又,目前常用的 Journalling 檔案格式為何?
o Ext2
o Ext3, Reseifs
• 安裝 Linux 的主要流程?
o BIOS(決定由 cdrom 或 floppy 開機,並載入 PC 硬體資訊)
o 載入 install kernel loader
o 收集硬體資訊
o Hard Disk 之 Partition
o Formation
o Softpackage 的選擇
o 開始安裝!
• 什麼是 GMT 時間?臺北時間差幾個鐘頭?
GMT 時間指的是格林威治時間,為標準的時間,而臺北時間較 GMT 快了 8 小時!
• Tap, SCSI 硬碟, RAID, printer 的裝置檔案?
o Tap : /dev/ht0 (IDE), /dev/st0 (SCSI);
o SCSI H.D.: /dev/sd[a-p],
o RAID : /dev/md[0-15];
o printer : /dev/lp[0-2]
三、簡易 KDE 的使用( X-Window)
• 若以 X-Window 為預設的登陸方式,那請問如何進入 Virtual console 呢?
可以按下 [Ctrl] + [Alt] + [F1] ~ [F6] 進入 Virtual console ( 共六個 );
而按下 [Ctrl] + [Alt] + [F8] 可回到 X-Window 的 desktop 中!
• 如何修改進入 Linux 時候的 run-level 執行等級?又 run-level 0, 1, 3, 5 各代表什麼意思?
o 修改 /etc/inittab 裡頭的設定即可;
o 0:重新開機(如 init 0 );
1:單人維護模式,沒有網路功能;
3:純文字介面登陸,多人多工環境;
5:X-Window 登陸模式,多人多工模式。
• XFree86 在 X-Window 中的角色為何?
基本角色是控制顯示相關硬體的核心角色,也可以說程式 X-Window 的 Server ,此外,KDE 這個 Window management 則是 X-Window 的 Client 呦!因此, XFree86 若死掉了,那麼 KDE 就無法被啟動!
• XFree86 的主要設定檔案在哪裡?
就是在 /etc/X11/XF86Config-4 這個檔案!
• KDE 預設提供多少個 Virtual desktops ?
預設是提供四個,就是在進入 KDE 之後,最下方的 bar 上面有 1,2,3,4 那個字樣的那個東東!
四、線上求助 ( Help )
• 在 Linux 系統中,安裝的套件 (RPM 安裝) 預設的檔案資料放在那個目錄底下?
/usr/share/doc
• 檢視 Linux 系統的線上求助可以使用什麼指令?
man command
info command
• 使用 man 來查詢線上求助的時候,若要查詢類似引數檔案(如/etc/passwd)需如何?
man 5 passwd 或是例如 syslog.conf 則: man 5 syslog.conf 那個 5 即是大部分的config 檔案的查詢。
• 使用 man 查詢 command 的所有相關指令時,需要下什麼引數?
man -k command 例如 man -k passwd
• man page 的 man path 變數,記錄在那個檔案中呢?!
/etc/manpath.config
五、vi 的使用
• 在 linux 底下最常使用的文書編輯器為 vi ,請問如何進入編輯模式?
o 在一般模式底下輸入: i, I, a, A 為在本行當中輸入新字元;(出現-Insert- )
o 在一般模式當中輸入: o, O 為在一個新的一行輸入新字元;
o 在一般模式當中輸入: r, R 為取代字元!(左下角出現 -Replace-)
• 如何由編輯模式跳回一般模式?
[Esc]
• 若上下左右鍵無法使用時,請問如何在一般模式移動游標?
h, j, k, l
• 若 [pagedown] [ pageup] 在一般模式無法使用時,如何往前或往後翻一頁?
[Ctrl] + [f]
[Ctrl] + [b]
• 如何到本檔案的最後一行、第一行;本行的第一個字元、最後一個字元?
G, 1G, 0, $
(大寫的G可以用快捷鍵:shift + g)
• 如何刪除一行、n 行;如何刪除一個字元?
dd, ndd, x 或 X (dG 及 d1G 分別表示刪除到頁首及頁尾)
• 如何複製一行、n 行並加以貼上?
yy, nyy, p 或 P
• 如何搜尋 string 這個字串?
o : ?string (往前搜尋)
o : /string (往後搜尋)
• 如何取代 word1 成為 word2,而若需要使用者確認機制,又該如何?
o : %s/word1/word2/g
o : %s/word1/word2/gc (需要使用者確認)
• 如何讀取一個檔案 filename 進來目前這個檔案?
:r filename
• 如何另存新檔案成為 newfilename?
:w newfilename
• 如何存檔案、離開、存檔案後離開、強制存檔案後離開?
:w; :q; :wq; :wq!
• 如何設定與取消行號?
:set nu
:set nonu
六、檔案與目錄管理
• 請問底下的目錄與主要放置什麼資料?
o /etc/:幾乎系統的所有設定檔案均在此,尤其 passwd, shadow
o /etc/rc.d/init.d:系統開機的時候載入服務的 scripts 的擺放地點
o /boot:開機設定檔案,也是預設擺放核心 vmlinuz 的地方
o /usr/bin, /bin:一般執行檔案擺放的地方
o /usr/sbin, /sbin:系統管理員常用指令集
o /dev:擺放所有系統裝置檔案的目錄
o /var/log:擺放系統登入檔案的地方
• "舊的" Unix 系統與 Linux 系統的"檔名"最多可以容許幾個字元?
14, 255
• 什麼是絕對路徑與相對路徑,要由 /usr/share/doc 進入到 /usr/share/man 由相對路徑與絕對路徑的寫法各為何?
o 絕對路徑絕對由 / 開始寫起,相對路徑則非由 / 寫起;
o cd /usr/share/man ; cd ../man
• 在非為根目錄的任何一個目錄中,下達 ls -al 時,均會有"."及".."這兩個目錄,請問分別代表什麼?
o . :代表本目錄
o .. :代表上層目錄
• 顯示、變換目錄的時候,使用什麼指令?
ls, pwd 為顯示; 變換目錄用 cd
• 新增目錄、移除目錄移動目錄與拷貝目錄有什麼指令可用?
o 新增: mkdir 目錄
o 移除: rmdir 目錄(但是該目錄內必須要已經清空了), rm -rf 目錄
o 移動: mv directory1 directory2
o 拷貝: cp -r directory1 directory2
• 如何檢視一個檔案的"內容"(不要使用 vi 的情況下)
cat, tac, more, less, head, tail, nl, od(檢視二進位制制)
• 什麼是 hard link 與 soft link 的檔案?有何不同?
o Hard Links:在做成 hard link 檔案時,系統會佔用掉一個 inode ,由連結檔案可發現其 link 欄位多使用了一個 inode ,當原始檔被刪除的時候,該原始檔的內容將繼續保留在其它的 Hard Links 檔案中;但所有 Link 佔用的硬碟總量僅佔一個檔案的容量大小!(但 Hard link 不能連結不同 ilesystem 的檔案)
o Soft Links:類似快捷方式,當原始檔案被刪除,soft link 檔案將找不到原始檔案了!
• 如何在 root 的家目錄下建立一個 /bin 的連結快捷方式
ln -s /bin /root/bin
• 若有一個連結檔案為 testing 連結到 test1.sh ,請問 copy testing 到 /tmp 底下,"cp testing /tmp"則 /tmp/testing 這個檔案會是:
(1) 連結檔案,連結到 test1.sh ;
(2) 一般檔案,為內容與 test1.sh 相同?
答案為 (2)
• 當一個檔案屬性為 -rwxrwxrwt 則表示這個檔案的意義為?
任何人皆可讀取、可寫入,但是不可刪除該檔案(或目錄),除了 root 與檔案或目錄擁有者有權可以刪除。
• 我需要將一個檔案的屬性改為 -rwxr-xr-- 請問該如何下達指令?
chmod 754 filename, chmod u=rwx,g=rx,o=r filename
• 在 /usr/bin/passwd 這個檔案的屬性為 -r-s--x--x 請問代表什麼意思(s)
那個 s 代表為 SUID ,當使用者使用這個檔案進行工作的時候,將會具有該檔案擁有者的許可權!
• 如何改出 -rwxr-sr-x 與 -rwxr-xr-t 這個屬性?
chmod 2755 filename, chmod 1755 filename
• 如何檢視一個檔案的型別 (type) 例如純文字檔案、執行檔案與 setuid 檔案等?
file filename
• 若一個使用者的 umask 為 033 ,請問他建立一個新的目錄與檔案時的預設屬性為?
o 目錄:744 ? -rwx-r--r--
o 檔案:633 ? -rw--wx-wx
• 若我需要更改一個檔案的擁有者與群組,該用什麼指令?
chown, chgrp
• 如何將一個檔案的修改日期改成目前的時間?
touch thisfilename
• 如何搜尋一個檔案?
which (僅用於指令搜尋), whereis, locate, fine
• Linux 預設的檔案系統為何?此外,常用的 Journalling 檔案格式有哪些?
Ext2, Journalling 有 ext3 及 Reiserfs 等
• less 跟 more 有什麼不同?
less 可以翻頁,但是 more 不行!
• 在比較兩個檔案的異同時,常使用的是 diff 與 cmp ,請教兩者有何不同?
diff 為一行一行比較, cmp 為一個字元(character)一個字元比較
1、磁碟掛載與虛擬記憶體問題
• 我要如何檢視 Linux 系統當中所有已經掛載的硬碟容量與 inodes ?df -k, df -i
• 我要如何檢視目前所在目錄的所有檔案佔用的硬碟空間,此外,如何僅輸出結果?
du -k, du -h, du -s
• 如果扇區 /dev/hda3 有問題,偏偏他是被掛載上的,請問我要如何修理此一扇區?
umount /dev/hda3
fsck /dev/hda3
• 承上題,那麼有問題的檔案將被移動到那個目錄下?
/lost+found/
• 試說明新增一個 partition 在 /dev/hdb 當中,且為 hdb5 時,並掛載上 /disk2 ,需要哪些步驟?
o fdisk /dev/hdb 按 n 新增,按 e 新增 extended ,再按 n 新增 logical
o mke2fs -b 2048 /dev/hdb5
o mkdir /disk2
o mount -t ext2 /dev/hdb5 /disk2
• 如何新增加 64MB 的虛擬記憶體 swap ?
o dd if=/dev/zero of=/tmp/swap bs=4k count=16384
o mkswap /tmp/swap
o swapon /tmp/swap
• 如果要設定一個新掛載上的扇區,令他可以在開機的時候被掛載上,應該編輯哪一個檔案?
o 先 /etc/fstab
o 再 mount -a
• 簡易說明 quota 的設定流程?
o 編輯 /etc/fstab, 加入 usrquota and/or grpquota
o reboot
o quotacheck -avug (會產生 aquota.user(group))
o quotaon -aug
o edquota -u username
o edquota -g groupnameo repquota -vu /dev/hd[a-d][1-16]
七、BASH SHELL
• 簡單說明 bash shell 的功能特徵:o 命令記憶功能 ~/.bash_history
o 命令別名功能 alias
o shell scripts 功能
o 命令與檔名稱補全功能 <tab>
o 工作控制功能 jobs
• 在設定變數中,主要的規則為何?
1. 變數與變數內容以等號來連結;
2. 等號兩邊不能直接接空格符;
3. 變數名稱只能是英文字母與數字,但是數字不能是開頭字元;
4. 若有空格符可以使用雙引號" " "或單引號" ' "來將變數內容結合起來,但須要特別留意,雙引號內可以保有變數,但是單引號則僅為一般字元;
5. 必要時需要以跳脫字元" \ "來將特殊符號(如 Enter, $, \, 空格符, ' 等)變成一般符號;
6. 若該變數為擴增變數內容時,則需以雙引號及 $變數名稱如:" "$PATH":/home"繼續累加內容;
7. 若該變數需要在其它子程式執行,則需要以 export 來使變數可以動作,如"export PATH";
8. 通常大寫字元為系統預設變數,自行設定變數可以使用小寫字元,方便判斷(純粹依照使用者興趣與嗜好);
9. 取消變數的方法為:"unset 變數名稱"
• 顯示環境變數與所有變數的指令為何?
env, set
• 在環境變數當中,"使用者家目錄、主機名稱"的變數名稱為:
HOME, HOSTNAME
• 如何讓一個變數可以持續到下一個程式 (PID) 去?
export variable
• 在變數的設定當中,雙引號與單引號有何不同?
雙引號裡面可以包含變數,單引號謹代表一般字元!
• Command1 `command2` 這個指令代表什麼意思?
在這一行當中, command2 會先執行,而輸出的結果會給 command1 當作引數。
cd /lib/modules/`uname -r`/kernel 是最常使用的一例
• 在命令重導向當中, > 與 >> 有什麼不同?
> 會將導向的 file 覆蓋,
>> 則是追加!
• 若要將錯誤的輸出導向"不見了"的裝置,該如何是好?
command 2> /dev/null
• 在管道指令中,我要將 last 輸出的結果顯示 root 的"登陸次數", 如何做?
last | grep root | cut -d " " -f 1 | wc -l
• 如何設定一個變數名稱為 name ,使其顯示為" VBird’s testing variable. "?
o name=VBird\’s\ testing\ variable.
o name=”VBird’s testing variables.”
o echo $name
• 請問 bash shell 的環境變數與自己的個人變數可以登陸便設定的檔案?
o Open Linux:
/etc/profile, /etc/config.d/shells/bashrc, ~/.profile, ~/.bashrc,
o Red Hat :
/etc/profile, ~/.bash_profile, ~/.bashrc,
• 如何查詢曾經操作過的指令?如何執行第 26 個操作過的指令?上一個操作過的指令?
o history
o !26
o !!
• 如何設定命令別名?使 lm 與 ls -al|more 功能相同
alias lm=’ls -al|more’
• 如何將 /bin 的所有資訊輸出到 /home/testing.dat 這個檔案?
ls -al /bin 1> /home/testing.dat
• 在上一題中,若還要輸出到螢幕上,要如何是好?
ls -al /bin | tee /home/testing.dat
• 執行 find ,並將正確的結果輸出到 right 而錯誤結果輸出到 error 當中?
find / -name test 1> right 2>error
• 如何在指令列模式中將 /root/.bashrc 的資料加在 /home/col/.bashrc 當中?
cat /root/.bashrc >> /home/col/.bashrc
• 不顯示執行的結果要如何操作?
command > /dev/null 2>&1
• 列出這個月曾經登陸主機的使用者資訊即可,不需要重複?
last | cut -d " " -f1 | sort | uniq
• 萬用字元當中, *, ?, [] 各代表什麼意思?
o * 代表 0 到無限多個字元;
o ? 代表一個任意字元;
o [ ] 代表一個字元,這個字元在某一個限制範圍內。
1、SHELL scripts
• 什麼是 shell scripts ? scripts 有何功用?o 簡單的說, scripts 就是一個內部含有多個或複雜的 command 的純文字檔案;
o scripts 可以進行 program 的功能,但速度上較 C 慢了點!
• 要撰寫可以經由鍵盤輸入的 scripts 時,常使用到的指令?
read variable
• 在 shell script 當中,在控制式中, && 與 || 代表什麼意思?
分別代表"和(同時成立)"及"或(僅其一成立就成立)"的意思!
• 在使用迴圈的時候,常使用到的控制式為哪三個?
for, while, until
• 執行 scripts 的方法有哪兩種?
o 使用 sh script 或
o 以 chmod 增加 scripts 的屬性為可執行, chmod 777 script 並執行scripts。
• 如何宣告一個變數成為整數型態?
declare -i variable
• 為何在 shell script 前面都要宣告 shell 呢?
宣告 shell 方能讓 script 瞭解該內容需要以何種 shell 來執行!目前 Linux 通常宣告 /bin/bash 這個 shell ,然而若在非 shell 環境中,又沒有宣告 shell 型別時,可能會造成 script 無法執行的情況。
• 在判斷式中,如何判斷一個檔名是否存在?
if [ -e filename ] 若存在則回傳值為真!
• 在執行一個 scripts 時,在 scripts 內的變數, $0, $1 代表什麼?
o $0 代表 scripts 的檔名;
o $1 代表第一個 parameter,例如 /etc/rc.d/init.d/xinetd start 那個 start 的變數即為 $1
• 若要寫一個既定的 parameter (如 start ),用哪一個判斷式較簡單?
可以使用 case …. Esac 的語法較為簡單。
• 如何印出目前系統中的所有賬號,並加以排序且輸出到 /tmp/account 中?
cut -d ':' -f 1 /etc/passwd | sort > /tmp/account
• 如何在不執行 scripts 的情況中 debug ?
sh -n scripts
八、基本賬號管理
• 如何新增一個使用者 username,且該使用者沒有家目錄?useradd -M username
• Linux 使用者的賬號、密碼與群組的名稱檔案放在哪裡?
/etc/passwd
/etc/shadow
/etc/group
• 建立新使用者的預設家目錄內容在那個目錄中?
/etc/skel
• 建立一個新使用者時,其使用到的相關檔案有哪些?
o /etc/default/useradd
o /etc/login.defs
o /etc/skel/
o /etc/passwd
o /etc/shadow
• root 的 UID 與 GID 各為何?
皆為 0
• 如何讓一個使用者不能登陸主機,但是可以收信?
將 /etc/passwd 最後一欄代表 shell 的名稱改為 /bin/false
• 試說明一個使用者登陸系統的流程?
1. 登陸:使用 /bin/login 程式,並輸入 ID 與 passwd ;
2. 確認密碼:搜尋 /etc/passwd, /etc/shadow 確認密碼!並取得使用者的相關訊息。
3. 查核 pam 登陸模組:這個需要視主機的設定而定!
4. 取得並執行 shell :由 /etc/passwd 取得 shell 之後,並執行 shell ,以bash 為例,將讀入: /ete/profile ? ~/.bash_profile ( 或 .bash_login或 .profile ) ? ~/.bashrc ? 登出的時候執行 ~/.bash_logout
• 在 /etc/shadow 當中的日期設定中,其數字代表的意義為何?
由 1970 年開始計算,故 1970 年 一月一日為 1 ,2002 年 1 月 1 日為 11689
• 如何變更使用者的一些屬性?
usermod, chfn, chsh, passwd
• 如何視察一個使用者 username 所擁有的群組呢?
groups username
• 試說明如何手動增加一個使用者 username 與群組 groupname?
1. 先看看 /etc/skel 當中,預設要給 user 的家目錄內容;
2. 新增 group : groupadd groupname
3. 新增 user :useradd -m -g groupname username
4. 給予密碼: passwd username
• 試說明 /etc/passwd 這個檔案的內容與格式:
賬號; 密碼; UID; GID; 說明的內容; 家目錄; SHELL
• 使用 id 這個指令時,可以顯示什麼訊息資料?
UID, GID 跟 GROUP
• 可以控制使用者使用主機資源的預設檔案在哪裡?
/etc/security/limits.conf
• 基本的壓縮指令有哪些?
tar, gzip, compress
九、開機程式
• 試說明開機流程:1. BIOS
2. MBR ( boot loader )
3. Loader ( lilo or grub, stage 1 and stage 2 )
4. Kernel loader ( /boot/vmlinuz )
5. init process ( 讀取 /etc/inittab 取得 run-level )
6. 開始執行 /etc/rc.d 內的 scripts
7. 執行 /etc/modules.conf 內部的額外 kernel 模組
8. 執行 /etc/rc.d/rc[1-6].d 的這些 run-level 內的 scripts !
9. 執行 /bin/login 等待使用者登陸!
• 開機時後的載入訊息可以看哪裡?
dmesg
grep “kernel” /var/log/messages
• 改變 run-level 或關機的指令
shutdown
halt,reboot
init or telinit
• 改變登陸 Linux 時候預設的 run-level 要改那個檔案?
/etc/inittab
十、程式與資源管理
• 如何檢視目前的程式?ps, top
• 如何檢視目前的記憶體使用狀況?
free, top
• 目前的工作如何丟到背景中?
[Ctrl] + z
• 如何取得目前背景中的工作,且將他拉回前景中?
jobs -x filename 及 fg %number
• 如何設定一個程式在開始執行時候的優先值?
nice -n [number] [command]
• 什麼指令可以修改一個正在執行的程式之 nice 值?
top, renice
• 在例行性命令中,使用的兩支 demane 是什麼?
atd, crond
• 使用 crontab 這個"指令"的時候,如何可以檢視目前的工作與刪除目前的工作?
編輯: crontab -e
檢視: crontab -l
刪除: crontab -r
• 常用的 kill 指令之 signal 當中, 1, 9, 15 代表什麼?
o 1 重新讀取一次 config file
o 9 強制刪除此一執行程式
o 15 terminal 結束的意思