有很多種 shell, 你熟悉幾種? 各個 shell 的 home page 在那裡?
2. 為什麼說 zsh 是目前為止功能最為強大的 shell.
3. 為什麼說 pdksh 功能較弱?
4. ksh88 與 ksh93 有何區別?
5. 為什麼 shell 程式設計最好用 ksh?
6. 你的系統都有哪些 shell? 版本是多少?
7. 你知道 posix 嗎?最新版本是多少?和你的 shell 有什麼關係?
8. /sbin/sh 和 /bin/sh 有何區別?
9. 你分析過 1000 行以上的 shell 程式嗎?
10. 各種 shell 的變數名長度有何限制?
11. 各種 shell 的 array size 有何限制?
12. fifo 比 co-process 有什麼優點?
13. (..) 產生的 subshell 與呼叫另乙個指令碼產生的 subshell 有何不同?
14. shell 中的函式可以遞迴嗎?設計時要注意什麼?
15. 如何用 subshell 產生的多個值改變多個 shell 中的變數?
16. file pattern 與 regular expression 有什麼不同?
17. shell 中含有大量文件.不想在每行之前用 # 注釋. 有那兩種方法可以實現?
18. 用 shell 程式安裝配置乙個二進位制可執行軟體.希望將被安裝軟體含在 shell 程式中形成乙個
安裝檔案, 可以嗎?
19. 可以在乙個shell 程式裡包含 ksh 及 perl 兩種**嗎?
20. 如何保證 shell 程式只有單一 instance 執行? (有難度, 絕非乙個 ps 命令可以搞定)
21. 當有同名的 alias, function, builtin command, external command 時,如何知道並控制其執行順序?
22. 如何在自定義 function 中呼叫同名的 builtin command ?
23. 怎樣執行各種 shell 時具有 login shell 的行為?
24. 為何 ksh, rksh, pfksh 都是同乙個 hard link? 功能卻不同?
25. 當 while read .. 這樣的語句用於 pipe 右側時,需注意什麼?
26. 對於多個相連的 pipe,最後的返回碼是 pipe 中那個命令的? 如何取得所有命令的返回碼?
27. cmd >a 2>a 和 cmd >a 2>&1 為什麼不同?
28. stdin, stderr 可以關閉嗎? 有什麼結果?
29. gnu tools 與其他 unix 上的相比有什麼特點? 為什麼說不能過分依賴 gnu 擴充套件?
30. vi 及 vim 對行長度及 file size 有什麼限制?
31. 請寫出對 field 1 (數字), field 3 (數字倒序), field 3 (ascii) 進行排序的完整語句.
32. 如何用 diff 及其他工具寫乙個版本控制系統?(要有 check in, check out, file lock .. 等功能)
[color=darkblue][size=18][ shell 水平測試 ][ sed 篇 ][/size][/color]
原帖:
1. 你能看懂 sed one-lines 中的每一條語句嗎?
2. /regex/! command 與 /regex/ !command 有什麼區別?
3. 你能熟練使用 n,n, p,p,d,d,h,h,g,g,x,:,b,t 嗎?
4. 什麼是 sed 高階程式設計中的 lookup table 技術
5. sed debuger 的原理是什麼?
6. 為什麼 sed 的 guru 和 fans 比 awk 的多.(請看 yahoo groups)
下面幾題根據使用的技術,難度不同.(難度 最小:1,最大:5)
7. 將資料檔案中的每個詞的第乙個字母變成大寫. (難度: 2 - 4)
8. 在 sed 中實現記數器.可加 1 或減 1. (難度: 3 - 4)
9. 提取 html 檔案中 table 中每個單員的內容(table 可巢狀).(難度: 4 - 5)
每乙個 cell 做為乙個單員輸出:
table #1, row #1, column #1
contents .......
table #1, row #1, column #2
contents .......
10. 一般的 sed 的 regex 的匹配都是 greedy 的。如何用 sed 實現 lazy 匹配?
[color=blue][size=18][ shell 水平測試 ][ awk 篇 ][/size][/color]
原帖:
注: 很多題目在不同的 awk 中實現不同, 請註明每一種 awk 的方法.
1. awk, oawk, nawk, gawk, mawk 有什麼區別?
2. 在乙個 awk 檔案中, 第一行可以如下嗎?
#! /bin/awk -f: -f
3. awk -f"" 與 awk -f "" 有區別嗎?
4. 可以這樣設定 fs 嗎?
fs = "[ /t]+/|[ /t]+"
5. gawk 有乙個擴充套件表示式與其他 gnu 工具不同, 是哪個, 為什麼?
6. 那兩種方法可以實現大小寫無關匹配?
7. 下列兩句有何區別?
awk '$0 ~ "[ /t/n]"'
awk '$0 ~ /[ /t/n]/'
8. fs=" " 和 fs=" +" 有何區別?
9. 如何將每乙個字元作為乙個 field ?
10. 如何將整個檔案作為乙個 field ?
11. rs="" 與 rs="/n/n+" 有何區別?
12. nr 和 fnr 有何區別?
13. getline < "file" 改變那些 builtin 變數?
14. 如何不列印最後乙個 field? (不用迴圈)
15. $1 ~ /aaa/ 與 /aaa/ ~ $1 有何區別?
16. a = /a/ 是什麼意思?
17. awk 中的 array 可以排序嗎?
18. 如何將 awk 中得到的值賦給 shell 變數.
19. 如何模擬二維陣列?
20. 你的 awk 陣列最多可能的單元是多少?有限制沒有?
21. 你的 awk 中 field number, record length 及 file size 有何限制?
22. awk 中如何刪除 array 及 關閉管道?
23. 如何完成 rev 功能?
24. 如何在 awk 中使用 coprocess?
25. 你寫過 100 行以上的 awk 程式嗎?
[color=violet][size=18][ shell 水平測試 ][ regex 篇 ][/size][/color]
原帖:
1. 傳統 regex, posix regex, gnu regex, pcre 都有什麼特點及異同之處?
2. ere 是 bre 的 super set 嗎?
3. ere看起來強大,但使用 ere 有一點最不爽, 是什麼?
4. 依賴 gnu 擴充套件的危害是什麼?
5. back reference 可以巢狀嗎?
6. dfa 和 nfa 有什麼特點及區別?
7. 常用的 [e]grep, [ng]awk, [g]sed, perl 哪些是 dfa? 哪些是 nfa? 因此這些程式具有哪些相應的特點?
8. greedy regex 和 lazy regex 有何區別? 哪些工具是 lazy regex.
9. 猜一猜乙個符合 rfc 標準的 email adderss 大概需要多長的 regex 來匹配?
10. 你是否有這樣的經歷: 某個使用過的 regex, 用在另個軟體中卻不行。
也就是說你無法確定某個 regex 在同一系統的不同軟體中或在不同系統的相同軟體中肯定能用?
[size=18][color=darkred]附加題[/color][/size]
1. 為什麼說 cu 的整體較為業餘, 但 shell 版的水平相對較高?
2. 為什麼 shell 版中的大部分高手都是玩 linux 的, 而低手往往是 sco unix, hp-ux 等其他平台的?
3. 為什麼當低手怯怯地丟擲乙個問題, 高手快速地給出了漂亮的解答, 卻往往最後並沒有解決低手的問題?
相關連線 :
SHELL 水平測試
有很多種shell,你熟悉幾種?各個shell的homepage在那裡?2.為什麼說zsh是目前為止功能最為強大的shell.3.為什麼說pdksh功能較弱?4.ksh88與ksh93有何區別?5.為什麼shell程式設計最好用ksh?6.你的系統都有哪些shell?版本是多少?7.你知道posix...
2 找到瓶頸 水平測試和垂直測試
在某些時候,你可能注定需要從mysql獲得更高的效能。但是你應該通過改善什麼來提高效能呢?改進乙個特定的查詢,改進你的資料庫表結構,還是改進你的硬體?知道這些的唯一方法是測量你的系統正在做什麼,並且得到它在各種情況下的效能。這也是為什麼我們把這章放在本書開始的原因。最好的策略是找到並加強你的應用中元...
shell條件測試
shell條件測試通常都會用在for while until if等控制流結構中,用於判斷檔案的相關性質或變數的相互關係。條件測試用法 test 表示式 結果 成立返回0,不成立返回非0 檢視結果 echo 以下是幾類常用的測試表示式 1 檔案狀態測試 b filename 當filename 存在...