1) 請問 hard quote 與 soft quote 的符號分別是甚麼?
hard: ‘ ‘(在hard quote裡頭,所有的meta都會被關掉)
soft: “”(在soft quote裡頭,部分的meta會被關掉)
這兩種 quoting 有何差別?請以下面的例子來說明:
VAR=value
echo "the value is $VAR" 因為””為soft_quote,又剛好$不會被””關掉,
所以會得到 the value is value嚕
echo 'the value is $VAR' 其實看到’’’就可以偷笑啦,一定關掉$嚕,
所以會得到the value is $var
若不用 hard/soft quoting ,那你會用甚麼符號來跳脫(escape)?
符號: \
能否舉一個例子來說明?
例: cd /home/user \<CR> 你跳脫了<CR>如此一來,enter不再是<CR>,而是new_line換行符號嚕!
2) 請問 command substitution 的作用是甚麼?用一個範例來說明。
範例: 一般來說有兩種形式 $ $(command_line) <CR>
$ `command_line` <CR>注意喔!這裡的單引號是在tab的下面喔!
Ex:
在進行多重 command substitution 的時後,請問下兩種方法有何差異?
(sorry: 這部份這次課堂上沒講清楚, 下次請提醒我講一下!)
` ` :
$( ) :
3) 請說說為何我們一定要用 vi 的三個理由:
1: 所有的linux系統裡頭都有vi編輯器
2: 他在轉換字元裡頭最為標準
3:
4) 請說明 vi 的三個模式的名稱:
1: command_mode(就是你一進去vi那時候啦)
2: INSERT(按下a 或 i都可以喔,不過好像不只這兩個,a跟i也有一點點不一樣)
3: ext_mode(按下:你就可以進入嚕)
並說明在三個模式中切換的按鍵:
command to insert: i 或a
insert to command: Esc
command to ext: :
ext to command: Esc
最好能畫一幅圖來說明。
5) 當你用 vi 開啟一份檔案,並按 i 進入 insert mode ,
請問你要如何做到如下目的:
存檔並離開: :wq (加上!就強制囉。)
不存檔離開: :q(加上!就是強制離開嚕。)
6) 在 command mode 中,請問如下的指令作啥用途:
G gg :G是到最後一行的字首 ,gg是到第一行的字首(也可以打1G)
0 ^ $ :0是到行首,^是會跑到一行中的第一個character,$是會跑到行的最後一個character
w b e :w是會跑到下一個詞的字首,b會跑到上一個詞的字首,e會跑到詞的字尾
h j k l :依序分別是←↓↑→
除 gg 與 ^ 外,若在命令前加上數字呢? 一加上數字就會依倍數跑嚕!
請用實作方式加以體會。
ex:5gg 就會跑到第五行嚕(空行也算行喔!)
ex:5^似乎沒有作用(@_@”跟打一個^相同呢??)
7) 請問如下指令的作用是甚麼?
d dd D :d(就是delet嚕),dd會殺掉一行喔,D也是會殺掉一行
y yy Y :y(就是copy),yy會複製一行喔=Y,數字+Y(yy)就會複製數字的行數
p P :p(小寫的,會往下貼上,往右貼上),P(大寫的,會往上貼上,往左貼上)
c cc C :c(就是charge) cc
請以實作方式,配答上一題所列的指令加以理解。
若我要修改一個 IP 值,其位置在第 6 行的第二個詞開始,
請問您會如何執行命令?(提示:一個 IP 剛好是 7w )
命令: 6G (跑到第六行) w(跑到下一個word,因為原來在第一個)c7w(替換ip嚕,所以還要輸入ip)
假如我將剛才修改的那行及其後兩行(共三行)複制起來,
並貼到最後一行之下,命令要如何下:
命令: 3yy(複製三行),o跑到下一行,p(注意!要小寫喔,因為往下貼)
若貼到第一行之上呢?
命令: 3yy(複製三行),1G跑到第一行),P(大寫嚕,因為要往上貼)

請問如下指令的作用是甚麼?
/ ? n N :/是用來往下找字串,?是用來往上找字串,n是順勢往下找字串,N是順勢往上找
u ctrl-r :u(undo)是用來回去上一步,^r(redo)是再做一次
請以實作來加深理解。
9) 請問如下指令的作用是甚麼?
i I :i是是在游標處可以輸入character(類似a),I會移動到行首輸入character
a A :a類似i會在游標後面輸入character,A會在行尾輸入character
o O :o會在下一行,O會在上一行
請以實作來加深理解。
10) 我有一個純文字檔案叫 text.file,其內容如下:
110
12
%@#!
abc
ABD
請問下面兩個命令有何不同:
sort text.file :沒有預設的option所以會以最小編碼的值依序排列
sort -n text.file :會直接看值來比較,小的值會在前面
為甚麼?
說明:
11) 若執行 wc text.file 指令,你會看到三組數字,請問各自是啥意思?
第一組: 行數(空行也會算喔)
第二組: 字數
第三組: 總character
若我只想顯示其中一組的話,分別用甚麼參數?
第一組: -l
第二組: -w
第三組: -c
12) 能否說說 nl 這個命令是做甚麼用的?
說明: 就是去算有幾行阿,不過預設上空行不算喔)
如何操作才能看到空行的行號?
說明: 加上-ab的option吧
13) 請問 cat 與 tac 有甚麼相同跟不同之處?
相同: 都是用來看文件
不同: 跟他的字面意思有關嚕,一個是由前往後看(cat),一個是由後往前看(tac)
14) 若想將 nl /etc/passwd 產生的結果顛倒過來顯示,除了用 pipe (|)接到 tac 指令外,
能否用 sort 來做到同樣的效果?
命令: nl /etc/passwd | sort –n(加上n這個option就會依照值來排序嚕)
15) 請問 more 與 less 有甚麼相同跟不同之處?
相同: 都是用來read
不同: more模式下,按enter會跳到下一行,按space會跑到下一頁
less模式下,就比較人性化,直接用↑↓就可以嚕!
16) 請問 head 與 tail 有甚麼相同跟不同之處?
相同: head就是頭啦,預設上會看前面十行
不同: tail就是尾巴,預設上回看最後面十行
ex:head /etc/passwd ;ex: tail /etc/passwd
請問 tail +2 與 tail -2 有何不同?
說明: 首先注意一下head可沒有 + 喔
tail +2 就是重第二行不要,其他都要嚕,tail -2 就是看最後兩行嚕
17) 若我只讓你用 cat, tac, head, tail 這幾個命令,
請問你要怎樣做才能將一個文字檔的第一行及最後一行拿掉?
(注:可用 pipe line(|),最終顯示的句子順序不能改變。)
命令: cat /etc/passwd | tail +2 我只想到這裡>”<
我偷看tedntsc同學的cat 檔名 | tail +2 | 檔名 |tac|tail+2|tac
若,我只想抓到第 15 行呢?(最少有兩種方法)
方法 1: cat /etc/passwd | head -15 | tail -1
方法 2: cat /etc/passwd | head -15 | tail +15
18) 請問 od 命令的全稱是甚麼?
全稱: octal display(用八進位去display)
請問用 -a 參數跟用 -c 參數時,如下字符的顯示有何不同?
字符................ -a ..................-c
空白鍵: sp
tab 鍵: tab \t
Enter 鍵: nl(new_line) \n
19) 請問 expand 與 unexpan 的作用是甚麼?
作用: charge <tab> to <space>
請問你如何驗證?(提示:上一習題)
方法: expand file | od –a
unexpand -a file | od -a
20) 請問如下命令的意思是甚麼?
tr A-Z a-z 大小換成小寫嚕
tr -d abc 刪除所有abc
tr -s ' ' #註:’’是hard_quote 所以變成一般的space 然後壓縮連續space變成一個
21) 如何將一個混用了 <tab> 與 <space> 作分隔符號的檔案, 轉換為用單一逗號(,)作分隔符呢?
方法:cat file | tr ‘ ’ ,
辛苦老師了@_@"