作者 主題: 2004-09-07 台南班(3)  (閱讀 25287 次)

0 會員 與 1 訪客 正在閱讀本文。

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17375
    • 檢視個人資料
    • http://www.study-area.org
2004-09-07 台南班(3)
« 於: 2004-09-15 00:15 »
2004-09-14(星期二)

* 溫習重點:
- shell
quoting
command substitution

- vi
mode
cursor movement
command
exit
ext settings

- text filter
 sort
 wc
 nl
 fmt / pr
 cat / tac
 more / less
 head / tail
 od
 expand
 tr


* 思考:

1) 請問你忘了多少?
若你還沒按照老師在第一節課所講的溫習去做,
請問你願意去做嗎?
   Yes   No

若是 No,請問你的理由是甚麼?
並將理由 email 給老師。



* 練習題:

1) 請問 hard quote 與 soft quote 的符號分別是甚麼?
   hard:
   soft:
這兩種 quoting 有何差別?請以下面的例子來說明:
   VAR=value
   echo "the value is $VAR"
   echo 'the value is $VAR'

若不用 hard/soft quoting ,那你會用甚麼符號來跳脫(escape)?
   符號:
能否舉一個例子來說明?
   例:

2) 請問 command substitution 的作用是甚麼?用一個範例來說明。
   範例:

在進行多重 command substitution 的時後,請問下兩種方法有何差異?
(sorry: 這部份這次課堂上沒講清楚, 下次請提醒我講一下!)
   ` ` :
   $( ) :


3) 請說說為何我們一定要用 vi 的三個理由:
   1:
   2:
   3:

4) 請說明 vi 的三個模式的名稱:
   1:
   2:
   3:

並說明在三個模式中切換的按鍵:
   command to insert:
   insert to command:
   command to ext:
   ext to command:
最好能畫一幅圖來說明。

5) 當你用 vi 開啟一份檔案,並按 i 進入 insert mode ,
請問你要如何做到如下目的:
   存檔並離開:
   不存檔離開:

6) 在 command mode 中,請問如下的指令作啥用途:
   G   gg
   0           ^   $
   w   b   e
   h   j   k   l
除 gg 與 ^ 外,若在命令前加上數字呢?
請用實作方式加以體會。

7) 請問如下指令的作用是甚麼?
   d   dd   D
   y   yy   Y
   p      P
   c   cc   C
請以實作方式,配答上一題所列的指令加以理解。
若我要修改一個 IP 值,其位置在第 6 行的第二個詞開始,
請問您會如何執行命令?(提示:一個 IP 剛好是 7w )
   命令:

假如我將剛才修改的那行及其後兩行(共三行)複制起來,
並貼到最後一行之下,命令要如何下:
   命令:
若貼到第一行之上呢?
   命令:

8) 請問如下指令的作用是甚麼?
   /   ?   n   N
   u   ctrl-r
請以實作來加深理解。

9) 請問如下指令的作用是甚麼?
   i   I
   a   A
   o   O
請以實作來加深理解。


10) 我有一個純文字檔案叫 text.file,其內容如下:
   110
   12
   %@#!
   abc
   ABD
請問下面兩個命令有何不同:
   sort text.file
   sort -n text.file

為甚麼?
   說明:

11) 若執行 wc text.file 指令,你會看到三組數字,請問各自是啥意思?
   第一組:
   第二組:
   第三組:

若我只想顯示其中一組的話,分別用甚麼參數?
   第一組:
   第二組:
   第三組:

12) 能否說說 nl 這個命令是做甚麼用的?
   說明:
如何操作才能看到空行的行號?
   說明:

13) 請問 cat 與 tac 有甚麼相同跟不同之處?
   相同:
   不同:

14) 若想將 nl /etc/passwd 產生的結果顛倒過來顯示,除了用 pipe (|)接到 tac 指令外,
能否用 sort 來做到同樣的效果?
   命令:

15) 請問 more 與 less 有甚麼相同跟不同之處?
   相同:
   不同:

16) 請問 head 與 tail 有甚麼相同跟不同之處?
   相同:
   不同:

請問 tail +2  與 tail -2 有何不同?
   說明:   

17) 若我只讓你用 cat, tac, head, tail 這幾個命令,
請問你要怎樣做才能將一個文字檔的第一行及最後一行拿掉?
(注:可用 pipe line(|),最終顯示的句子順序不能改變。)
   命令:

若,我只想抓到第 15 行呢?(最少有兩種方法)
   方法 1:
   方法 2:

18) 請問  od 命令的全稱是甚麼?
   全稱:

請問用 -a 參數跟用 -c 參數時,如下字符的顯示有何不同?
   字符................ -a ..................-c
   空白鍵:
   tab 鍵:
   Enter 鍵:

19) 請問 expand 與 unexpan 的作用是甚麼?
   作用:

請問你如何驗證?(提示:上一習題)
   方法:

20) 請問如下命令的意思是甚麼?
   tr A-Z a-z
   tr -d abc
   tr -s ' '   #註:單引號中是一個空白鍵

21) 如何將一個混用了 <tab> 與 <space> 作分隔符號的檔案, 轉換為用單一逗號(,)作分隔符呢?
   方法:



* 補充第一節的習題:

1) 請問啥是 Wildcard 或  Filename Expention?
   說明:

請問如下的 Wildcard 的意思是甚麼?
   * :
   ? :
   [ ] :
   [! ] :

2) 若我要執行 ls -ad 命令,但不想在結果中看到當前及上一級目錄(即 . 跟 ..),
但普通的檔案及 .a, .b, .abc 等隱藏檔卻必須看得到。請問您的 wildcard 要如何運用?
   指令:


* next:
http://phorum.study-area.org/viewtopic.php?t=26159

eajean

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
搶到第一個...YA!
« 回覆 #1 於: 2004-09-15 14:05 »
* 思考:

1) 請問你忘了多少? 既然都忘了 怎麼還知道多少呢??
若你還沒按照老師在第一節課所講的溫習去做,
請問你願意去做嗎? Yes



* 練習題:

1) 請問 hard quote 與 soft quote 的符號分別是甚麼?
hard: 全部meta的功能都取消
soft: 部分meta功能取消;部分保留
這兩種 quoting 有何差別?請以下面的例子來說明:
VAR=value
echo "the value is $VAR" the value is value
echo 'the value is $VAR' the value is $VAR

若不用 hard/soft quoting ,那你會用甚麼符號來跳脫(escape)?
符號: \
能否舉一個例子來說明?
例:
VAR=value
echo \$VAR
$VAR

2) 請問 command substitution 的作用是甚麼?用一個範例來說明。
範例:
命令的替代……希望有同學能更進一步解釋..^^
例子
who | wc –l 是用來看有多少人登入 並將行數,數出來
假如說現在共有5人登入
就會回應是5

echo there are $( who | wc –l) people
就會得到回應there are 5 people

在進行多重 command substitution 的時後,請問下兩種方法有何差異?
(sorry: 這部份這次課堂上沒講清楚, 下次請提醒我講一下!)
` ` :
$( ) :
嗯嗯…先跳過..下次再聽老師講

3) 請說說為何我們一定要用 vi 的三個理由:
1: 最普遍 很多平台都有
2: ??
3: 功能最齊全

4) 請說明 vi 的三個模式的名稱:
1: command
2: insert
3: ext

並說明在三個模式中切換的按鍵:
command to insert: i,c
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到第一行  
0 ^ $   0 該行的最前面最左邊(不縮行)  ^該行第一字的位置  $行尾
w b e   w到下一個詞首  b到上一個詞首   e 到下一個詞尾
h j k l   分別為 左下上右移動
除 gg 與 ^ 外,若在命令前加上數字呢?就像倍數關係  比如5h表示游標向左移五個字
請用實作方式加以體會。

7) 請問如下指令的作用是甚麼?
d dd D  刪除
y yy Y   複製
p P     貼上
c cc C  變更
請以實作方式,配答上一題所列的指令加以理解。
若我要修改一個 IP 值,其位置在第 6 行的第二個詞開始,
請問您會如何執行命令?(提示:一個 IP 剛好是 7w )
命令:
6G
w
c7w
輸入ip

假如我將剛才修改的那行及其後兩行(共三行)複制起來,
並貼到最後一行之下,命令要如何下:
命令:
Esc
0(是數字)
3yy
G
p(小寫)
若貼到第一行之上呢?
命令:
Esc
0(是數字)
3yy
gg
P(大寫)

8 請問如下指令的作用是甚麼?
/ ? n N    向下(上)尋找 下(上)一個
u ctrl-r    u復原動作 ctrl-r取消復原
請以實作來加深理解。

9) 請問如下指令的作用是甚麼?
i I     i在游標所在位置插入文字             I由游標所在該行的行首插入文字
a A   a在游標所在位置後一格開始插入文字   A由游標所在該行的行尾插入文字
o O   o在游標所在之上新建一行             O在游標所在之下新建一行
請以實作來加深理解。

10) 我有一個純文字檔案叫 text.file,其內容如下:
110
12
%@#!
abc
ABD
請問下面兩個命令有何不同:為甚麼?並說明
sort text.file       按順序排列(但是順序是按什麼標準定出來的呢???)
sort -n text.file    參數n會將數字的部分做大小的比較
*原本不加n時:110會在12之前
原因為  110
12
先比第一位數都是1平手
再比第二位數 1按排序要在2之前
所以 110會在12之前
*加了參數n後:12會在110之前
因為此刻數字已視為數值..不再是文字..有大小的關係..在數字中 12當然在110之前囉
*-* 以上純屬小妹個人的理解…老師不是這樣解釋的….這樣解釋不知是否行的通!?
我是以excel中儲存格格式的概念來解釋…講錯了請多多指教喔…^^

 
11) 若執行 wc text.file 指令,你會看到三組數字,請問各自是啥意思?
第一組: 行數lines
第二組: 詞數words
第三組: 字數characters

若我只想顯示其中一組的話,分別用甚麼參數?
第一組: l
第二組: w
第三組: c

12) 能否說說 nl 這個命令是做甚麼用的?
說明: 列出行號
如何操作才能看到空行的行號?
說明: 加上參數ba

13) 請問 cat 與 tac 有甚麼相同跟不同之處?
相同: 都是直接呈現檔案內容
不同: cat是原貌   tac是把行序顛倒呈現

14) 若想將 nl /etc/passwd 產生的結果顛倒過來顯示,除了用 pipe (|)接到 tac 指令外,
能否用 sort 來做到同樣的效果?
命令: 可以
nl /etc/passwd | sort -r

15) 請問 more 與 less 有甚麼相同跟不同之處?
相同: 皆用來閱覽篇幅超過一頁的檔案
不同: more功能較陽春簡單 只能按space往下頁看…space按到底就會自動離開檔案
less功能較多 可搭配:G   :/xxx等命令使用 往上往下翻頁都行..最後以q離開

16) 請問 head 與 tail 有甚麼相同跟不同之處?
相同: 用來看檔案內容的部分幾行
不同: head是前幾行  tail是後面幾行

請問 tail +2 與 tail -2 有何不同?
說明: +2   由第2行~到底…也就是只有前面的第1行不看
       -2    看倒數的2行

17) 若我只讓你用 cat, tac, head, tail 這幾個命令,
請問你要怎樣做才能將一個文字檔的第一行及最後一行拿掉?
(注:可用 pipe line(|),最終顯示的句子順序不能改變。)
命令: cat 檔名 | tail +2 |……還沒想出來…@-@

若,我只想抓到第 15 行呢?(最少有兩種方法)
方法 1:cat 檔名 | head -15 | tail -1
方法 2:cat 檔名 | head -15 | tail +15

18 請問 od 命令的全稱是甚麼?
全稱: octal display  八進位顯示

請問用 -a 參數跟用 -c 參數時,如下字符的顯示有何不同?
字符................ -a ..................-c
空白鍵:       sp         
tab 鍵:       ht         \t
Enter 鍵:    nl         \n

19) 請問 expand 與 unexpan 的作用是甚麼?
作用:
expand     把tab換成space
unexpand   把space換成tab
請問你如何驗證?(提示:上一習題)
方法:
建立一文字檔
abc   xyz   123  
abc   xyz   123
一行的間隔以tab區隔
另一行以space區隔
expand 檔名 | od-a   …….原來的ht都變成sp
unexpand 檔名 | od-a ….. 原來的sp都變成ht

20) 請問如下命令的意思是甚麼?
tr A-Z a-z                  將大寫字母改為小寫
tr -d abc                   砍掉abc
tr -s ' ' #註:單引號中是一個空白鍵      將連續的空白壓縮成一個空白

21) 如何將一個混用了 <tab> 與 <space> 作分隔符號的檔案, 轉換為用單一逗號(,)作分隔符呢?
方法:
expand 檔名 | tr –s ‘ ’ ,



* 補充第一節的習題:
1) 請問啥是 Wildcard 或 Filename Expention?
說明:
擴充多條路徑

請問如下的 Wildcard 的意思是甚麼?
* : 零個或多個字元
? : 一個
[ ] : 表單中的一個
[! ] :非表單中的任一個

2) 若我要執行 ls -ad 命令,但不想在結果中看到當簽及上一級目錄(即 . 跟 ..),
但普通的檔案及 .a, .b, .abc 等隱藏檔卻必須看得到。請問您的 wildcard 要如何運用?
指令:ls –ad .*[a-zA-Z0-9]* *

 :D 哈哈...可以交差了...第一次交作業....

eajean

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
第二次上課的問題
« 回覆 #2 於: 2004-09-15 14:21 »
問題一
上次上課說的運用定義變數來擴充PATH
比如 PATH=$PATH:/mypath
為什麼系統預設的path只有幾個
不乾脆一開始就設定好
跟執行的速度有關嗎?
路徑越多執行指令會越慢嗎?

問題二
man -k keyword 是根據Whatis資料庫來找
記得上課時老師先執行一個指令 makewhatis &
這是做什麼用的呢....
後來自己練習的時候
沒有做這道手續
man -k keyword 還是能執行啊
 ??不懂耶

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17375
    • 檢視個人資料
    • http://www.study-area.org
2004-09-07 台南班(3)
« 回覆 #3 於: 2004-09-15 14:24 »
不錯!
10)
排序預設議 ascii 編碼大小為依據.
你的理解不錯, 用數字跟文字作識別也通... ^_^

14)
差了一點: 補上 -n 參數才行...

17)
這個可以一試:
tail +2 file | tac | tail +2 | tac

19)
unexpand 別漏了 -a 參數.

20)
tr -d abc 砍掉"所有的"a, b, c 這三個字母

補2)
若有一個 .+@ 的 file 呢?
還有, abc 這個 file 也要看得到哦..
(再想想..,)

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17375
    • 檢視個人資料
    • http://www.study-area.org
2004-09-07 台南班(3)
« 回覆 #4 於: 2004-09-15 14:27 »
問一:
因為 shell 可以讓使用者自行調整其環境(日後學了 shell script 後再說),
若先行定議了, 就失去了彈性了...

問二:
就是要更新 whatis databas 用的...

tedntsc

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
我也來做作業了!!!!
« 回覆 #5 於: 2004-09-15 17:05 »
* 思考:

1) 請問你忘了多少? 既然都忘了 怎麼還知道多少呢??
若你還沒按照老師在第一節課所講的溫習去做,
請問你願意去做嗎?會


* 練習題:

1) 請問 hard quote 與 soft quote 的符號分別是甚麼?
hard: '  ':  全部meta的功能都取消
soft: "  " :部分meta功能取消;部分保留
這兩種 quoting 有何差別?請以下面的例子來說明:
VAR=value
echo "the value is $VAR" -> the value is value
echo 'the value is $VAR' ->the value is $VAR

若不用 hard/soft quoting ,那你會用甚麼符號來跳脫(escape)?
符號: \
能否舉一個例子來說明?
例:
VAR=value
echo \$VAR

$VAR

2) 請問 command substitution 的作用是甚麼?用一個範例來說明。
將指令command的結果替換出來再重組command
範例:
$date -d "last monday" "+%y-%m-%d"
2004-09-06
$echo xxxx$(date -d "last monday" "+%y-%m-%d") xxxx
xxxx 2004-09-06 xxxx

在進行多重 command substitution 的時後,請問下兩種方法有何差異?
(sorry: 這部份這次課堂上沒講清楚, 下次請提醒我講一下!)
` ` :
$( ) :
 

3) 請說說為何我們一定要用 vi 的三個理由:
1: 普遍 很多平台都有
2: 功能齊全
3:  

4) 請說明 vi 的三個模式的名稱:
1: command  mode  指令列命令模式
2: insert  mode  編輯模式
3: ext  mode  一般模式

並說明在三個模式中切換的按鍵:
command to insert: i,c
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 到第一行
0 ^ $  0 該行的最前面最左邊(不縮行)  ^該行第一字的位置   $行尾
w b e   w到下一個詞首  b到上一個詞首  e 到下一個詞尾
h j k l   分別為 左下上右  是4個方向的移動

除 gg 與 ^ 外,若在命令前加上數字呢?就像倍數關係

比如5h表示游標向左移五個字
請用實作方式加以體會。

7) 請問如下指令的作用是甚麼?
d dd D: d是刪除  dd,D(d$) 刪除一行
y yy Y : y是複製   yy,Y 複製一行
p P : 貼上  P是往上 往左貼  p是往下 往右貼
c cc C : c是置換  cc,C(c$)置換一行  
請以實作方式,配答上一題所列的指令加以理解。
若我要修改一個 IP 值,其位置在第 6 行的第二個詞開始,
請問您會如何執行命令?(提示:一個 IP 剛好是 7w )
命令:
6G  
w
c7w
輸入ip

假如我將剛才修改的那行及其後兩行(共三行)複制起來,
並貼到最後一行之下,命令要如何下:
命令:
Esc
0(是數字)
3yy
G
p(小寫)
若貼到第一行之上呢?
命令:
Esc
0(是數字)
3yy
gg
P(大寫)

8 請問如下指令的作用是甚麼?
/ ? n N 向下(上)尋找 下(上)一個
u ctrl-r u復原動作 ctrl-r取消復原
請以實作來加深理解。

9) 請問如下指令的作用是甚麼?
i I i在游標所在位置插入文字 I由游標所在該行的行首插入文字
a A a在游標所在位置後一格開始插入文字 A由游標所在該行的行尾插入文字
o O o在游標所在之上新建一行 O在游標所在之下新建一行
請以實作來加深理解。

10) 我有一個純文字檔案叫 text.file,其內容如下:
110
12
%@#!
abc
ABD
請問下面兩個命令有何不同:為甚麼?並說明
sort text.file 按順序排列(但是順序是按什麼標準定出來的呢???)
sort -n text.file 參數n會將數字的部分做大小的比較
排序預設 以ASCII編碼大小為準.
1.原本不加n時:
110會在12之前
原因為 110
          12
先比第一位數都是1  一樣
再比第二位數 1按排序要在2之前
所以 110會在12之前

2.加了參數-n後:
12則會在110之前
此時數字已視為數值....在數值中 12排在110之前
 


11) 若執行 wc text.file 指令,你會看到三組數字,請問各自是啥意思?
第一組: 行數lines
第二組: 詞數words
第三組: 字數characters

若我只想顯示其中一組的話,分別用甚麼參數?
第一組: l
第二組: w
第三組: c

12) 能否說說 nl 這個命令是做甚麼用的?
說明: 列出行號
如何操作才能看到空行的行號?
說明: 加上參數ba

13) 請問 cat 與 tac 有甚麼相同跟不同之處?
相同: 都是直接呈現檔案內容
不同: cat是將檔案內容 依原順序逐行列出
             tac是把行序顛倒呈現

14) 若想將 nl /etc/passwd 產生的結果顛倒過來顯示,除了用 pipe (|)接到 tac 指令外,能否用 sort 來做到同樣的效果?
命令: 可以
nl /etc/passwd | sort -r -n

15) 請問 more 與 less 有甚麼相同跟不同之處?
相同: 皆用來閱覽篇幅超過一頁的檔案
不同: more功能較陽春簡單 只能按space往下頁看…space按到底就會自動離開檔案
less功能較多 可搭配:G   :/xxx等命令使用 往上往下翻頁都行.(不會自動離開).離開時需以q離開

16) 請問 head 與 tail 有甚麼相同跟不同之處?
相同: 用來看檔案內容的部分幾行
不同: head是前幾行           tail是後面幾行

請問 tail +2 與 tail -2 有何不同?
說明: +2 由第2行~到底…也就是只有前面的第1行不看
-2 看倒數的2行

17) 若我只讓你用 cat, tac, head, tail 這幾個命令,
請問你要怎樣做才能將一個文字檔的第一行及最後一行拿掉?
(注:可用 pipe line(|),最終顯示的句子順序不能改變。)
命令: cat 檔名 | tail +2 | 檔名 |tac|tail+2|tac

若,我只想抓到第 15 行呢?(最少有兩種方法)
方法 1:cat 檔名 | head -15 | tail -1
方法 2:cat 檔名 | head -15 | tail +15

18 請問 od 命令的全稱是甚麼?
全稱: octal display 八進位顯示

請問用 -a 參數跟用 -c 參數時,如下字符的顯示有何不同?
字符................ -a ..................-c
空白鍵:sp\
tab 鍵: ht \t
Enter 鍵: nl \n

19) 請問 expand 與 unexpan 的作用是甚麼?
作用:
expand 把tab換成space
unexpand 把space換成tab
請問你如何驗證?(提示:上一習題)
方法:
建立一文字檔
abc xyz 123
abc xyz 123
一行的間隔以tab區隔
另一行以space區隔
expand 檔名 | od -a …….原來的ht都變成sp
unexpand 檔名 | od -a -a ….. 原來的sp都變成ht

20) 請問如下命令的意思是甚麼?
tr A-Z a-z  將大寫字母改為小寫
tr -d abc  砍掉全部的a,b,c三個字母
tr -s ' ' #註:單引號中是一個空白鍵 將連續的空白壓縮成一個空白

21) 如何將一個混用了 <tab> 與 <space> 作分隔符號的檔案, 轉換為用單一逗號(,)作分隔符呢?
方法:
expand 檔名 | tr –s ‘ ’ ,



* 補充第一節的習題:
1) 請問啥是 Wildcard 或 Filename Expention?
說明:
擴充多條路徑

請問如下的 Wildcard 的意思是甚麼?
* : 零個或多個字元
? : 一個
[ ] : 表單中的一個
[! ] :非表單中的任一個

2) 若我要執行 ls -ad 命令,但不想在結果中看到當簽及上一級目錄(即 . 跟 ..),
但普通的檔案及 .a, .b, .abc 等隱藏檔卻必須看得到。請問您的 wildcard 要如何運用?
指令:等等~我先想想!再上來補做


麻煩老師了!!!! :roll:

birdo

  • 可愛的小學生
  • *
  • 文章數: 10
    • 檢視個人資料
2004-09-07 台南班(3)
« 回覆 #6 於: 2004-09-15 22:50 »
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(大寫嚕,因為要往上貼)

8) 請問如下指令的作用是甚麼?
/ ? 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  ‘ ’  ,
辛苦老師了@_@"

eajean

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
2004-09-07 台南班(3)
« 回覆 #7 於: 2004-09-18 00:52 »
* 補充第一節的習題(2)
ls -ad * .[!.]*

這樣對了嗎?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17375
    • 檢視個人資料
    • http://www.study-area.org
2004-09-07 台南班(3)
« 回覆 #8 於: 2004-09-18 01:05 »
引述: "eajean"
* 補充第一節的習題(2)
ls -ad * .[!.]*

這樣對了嗎?


bingo!   ^_^

Yeh Dan kie

  • 懷疑的國中生
  • **
  • 文章數: 40
    • 檢視個人資料
2004-09-07 台南班(3)
« 回覆 #9 於: 2005-01-14 12:43 »
1) 請問你忘了多少?
若你還沒按照老師在第一節課所講的溫習去做,
請問你願意去做嗎?
Yes


* 練習題:

1) 請問 hard quote 與 soft quote 的符號分別是甚麼?
hard:  ' '
soft:   " "
這兩種 quoting 有何差別?請以下面的例子來說明:
VAR=value
echo "the value is $VAR"
echo 'the value is $VAR'
hard quote 能將所有meta關閉所以echo 'the value is $VAR' 中的$會被關閉 結果: the value is $VAR
soft quote 只能將部分meta關閉,$並沒有辦法被關閉所以 echo "the value is $VAR" 結果: the value is value

若不用 hard/soft quoting ,那你會用甚麼符號來跳脫(escape)?
符號: \
能否舉一個例子來說明?
例:
如上題:echo "the value is $VAE" soft quote 無法將$關閉
則可以使用escape將$關閉
ex:echo "the value is \$VAR" 結果: the value is $VAR
2) 請問 command substitution 的作用是甚麼?用一個範例來說明。
範例:

在進行多重 command substitution 的時後,請問下兩種方法有何差異?
(sorry: 這部份這次課堂上沒講清楚, 下次請提醒我講一下!)
` ` :
1.容易混淆:'' 與`` 不易分辨
2.範圍不易判斷: 如: 1xxx'2xxx`3`xxxx`
$( ) :
1.較舊的版本無法支援
2.不易混淆
3.範圍判斷容易:如:1xxx$(2xxx$(3)xxx)


3) 請說說為何我們一定要用 vi 的三個理由:

1:顯示編碼符合標準
2:功能強(多)
3:多平台支援

4) 請說明 vi 的三個模式的名稱:
1:command mode
2:insert mode
3:ex mode

並說明在三個模式中切換的按鍵:
command to insert: press i or insert
insert to command: press ESC
command to ext: press :
ext to command: press ESC
最好能畫一幅圖來說明。

5) 當你用 vi 開啟一份檔案,並按 i 進入 insert mode ,
請問你要如何做到如下目的:
存檔並離開:wq
不存檔離開:q!

6) 在 command mode 中,請問如下的指令作啥用途:
G gg
0 ^ $
w b e
h j k l
除 gg 與 ^ 外,若在命令前加上數字呢?
請用實作方式加以體會。

G 移至行首,當不指定數字時,移至最後一行行首 gg移至第一行行首
(加數字,G gg會移至指定數字行行首)
0 移至最左邊 ^移至該行行首 $移至該行行尾
w 移至field的字首(順向) b移至field 的字首(逆向) e移至field的字尾
h往左 j往下 k往上 l往右
除了0不能與數字合用,加上數字,G gg ^移至指定行行首, $移至指定行行尾
w往順向移n個field的字首(n為指定數字),b往逆向移n個字首,e移n個field字尾
h往左移n個字,j往下移n個,k往上移n個,往右移n個

7) 請問如下指令的作用是甚麼?
d dd D
y yy Y
p P
c cc C
請以實作方式,配答上一題所列的指令加以理解。
若我要修改一個 IP 值,其位置在第 6 行的第二個詞開始,
請問您會如何執行命令?(提示:一個 IP 剛好是 7w )
命令:
6Gw7cl 輸入IP

假如我將剛才修改的那行及其後兩行(共三行)複制起來,
並貼到最後一行之下,命令要如何下:
命令:3YGp
若貼到第一行之上呢?
命令:3Y1GP

8) 請問如下指令的作用是甚麼?
/ ? n N
u ctrl-r
請以實作來加深理解。
/test 向下搜尋test字串
?test 向上搜尋test字串
n 往下移至下一個搜尋字串
N往上移至下一個搜尋字串
u undo
Ctrl-r redo
9) 請問如下指令的作用是甚麼?
i I :i由cursor的左邊插入,I由該行行首左邊插入
a A :a由cursor的右邊插入,A由該行行尾右邊插入
o O : o往下新增一行,O往上新增一行
請以實作來加深理解。




10) 我有一個純文字檔案叫 text.file,其內容如下:
110
12
%@#!
abc
ABD
請問下面兩個命令有何不同:
sort text.file
排列由上而下為:數字、符號、文字(ASCII字碼的排列)
sort -n text.file
-n 將整個數字字串當成數值比對,其餘文字、符號以ASCII排序,並將數字移至最下方排列
所以上面的結果會變成:(以數值來比對12<100,以ASCII字碼比對12會排在110之前)
%@#!
abc
ABD
12
110

11) 若執行 wc text.file 指令,你會看到三組數字,請問各自是啥意思?
第一組:行數
第二組:words or fields
第三組:Charactors

若我只想顯示其中一組的話,分別用甚麼參數?
第一組:-l
第二組:-w
第三組:-c

12) 能否說說 nl 這個命令是做甚麼用的?
說明:
用來將內容做行號的編碼
如何操作才能看到空行的行號?
說明:
加上-ba 這個option

13) 請問 cat 與 tac 有甚麼相同跟不同之處?
相同:將file內容做STDOUT
不同:cat為正向順序,tac顛倒

14) 若想將 nl /etc/passwd 產生的結果顛倒過來顯示,除了用 pipe (|)接到 tac 指令外,
能否用 sort 來做到同樣的效果?
命令:
$nl /etc/passwd |sort -r

15) 請問 more 與 less 有甚麼相同跟不同之處?
相同:皆是以畫面分頁
不同:less可以捲動,more不行

16) 請問 head 與 tail 有甚麼相同跟不同之處?
相同:去得內容的某幾行
不同:haed由第一行開始 tail由最後一行開始

請問 tail +2 與 tail -2 有何不同?
說明:+2是指定第2行開始取至最後一行,-2是由最後一行開始,向上取2行

17) 若我只讓你用 cat, tac, head, tail 這幾個命令,
請問你要怎樣做才能將一個文字檔的第一行及最後一行拿掉?
(注:可用 pipe line(|),最終顯示的句子順序不能改變。)
命令:tail +2 | tac | tail +2 | tac

若,我只想抓到第 15 行呢?(最少有兩種方法)
方法 1:tail +15 | head -1
方法 2:head -15|tail -1

18) 請問 od 命令的全稱是甚麼?
全稱:octal display

請問用 -a 參數跟用 -c 參數時,如下字符的顯示有何不同?
字符................ -a ..................-c
空白鍵:-a:sp -c: 空格(不顯示字符)
tab 鍵:-a:ht -c:\t
Enter 鍵:-a:nl -c\n

19) 請問 expand 與 unexpan 的作用是甚麼?
作用:
expand 是將tab轉成space
unexpand 是將space轉成tab

請問你如何驗證?(提示:上一習題)
方法:$expand file | od -a會看出原本的tab(ht字符)變成space(sp字符)

20) 請問如下命令的意思是甚麼?
tr A-Z a-z :將大寫upper case全部換成小寫lower case
tr -d abc :將字元含有a或b或c的字元
tr -s ' ' #註:單引號中是一個空白鍵 :將連續空白壓縮成一個空白

21) 如何將一個混用了 <tab> 與 <space> 作分隔符號的檔案, 轉換為用單一逗號(,)作分隔符呢?
方法:
tr '\t ' , <filename (\t後面接了一個空白)


* 補充第一節的習題:

1) 請問啥是 Wildcard 或 Filename Expention?
說明:

請問如下的 Wildcard 的意思是甚麼?
* :
? :
[ ] :
[! ] :

2) 若我要執行 ls -ad 命令,但不想在結果中看到當前及上一級目錄(即 . 跟 ..),
但普通的檔案及 .a, .b, .abc 等隱藏檔卻必須看得到。請問您的 wildcard 要如何運用?
指令:

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17375
    • 檢視個人資料
    • http://www.study-area.org
2004-09-07 台南班(3)
« 回覆 #10 於: 2005-01-14 13:47 »
這位同學真是好榜樣!
下次上課出來報個名號, 以後有好康的, 先介紹給你...  ^_^

Anonymous

  • 訪客
2004-09-07 台南班(3)
« 回覆 #11 於: 2005-01-16 23:47 »
引述: "netman"
這位同學真是好榜樣!
下次上課出來報個名號, 以後有好康的, 先介紹給你...  ^_^

老師..
先跟您說聲..謝拉....我是誰不重要嘛...^^
真的有需要老師幫忙..我會去找老師您的..XD

老師..我有個wildcard的問題請教..
除上課提到的
* ? [] [!]之外..還有其他的規則嗎?例如:第一個char所有的char都可以,但出現 . 的時候第二個char必須為a 這樣有辦法表示出來嗎?還是必須搭配RE 去表示..?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17375
    • 檢視個人資料
    • http://www.study-area.org
2004-09-07 台南班(3)
« 回覆 #12 於: 2005-01-16 23:52 »
好啊, 那你有好康的也別忘了我哦~~~  ^_^

能說說 . 出現在哪個位置呢?

Yeh Dan kie

  • 懷疑的國中生
  • **
  • 文章數: 40
    • 檢視個人資料
2004-09-07 台南班(3)
« 回覆 #13 於: 2005-01-17 00:53 »
引述: "netman"
好啊, 那你有好康的也別忘了我哦~~~  ^_^

能說說 . 出現在哪個位置呢?

恩恩.當然...^^"

就是您補充的題目,除了./ 與.. 之外,要印出普通檔案與隱藏檔.a .ab .abc
暫時不考慮./與../的話,我要印出普通檔案與隱藏檔.a開頭的隱藏檔,其餘皆不印出
這樣我該如何表示?
因為* ? [] [!] 並沒辦法彼此判斷...所以我才會有這樣的疑問..@@"
麻煩老師拉..^^"

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17375
    • 檢視個人資料
    • http://www.study-area.org
2004-09-07 台南班(3)
« 回覆 #14 於: 2005-01-17 01:31 »
呵, 若一個 path expansion 不行, 那就用兩個如何:
ls * .[!.]*
當然, 你的 ls 要是支援的話, ls -A 也行, 呵~~~
假如你說只要 .a 的話, 那就更簡單:
ls .a*

若你要用 RE , 那請記住: RE 不是用在 path expansion 上, 而是用在 string processing 上!
如:
ls -a | grep -E '^.?[^.].*'

Anonymous

  • 訪客
2004-09-07 台南班(3)
« 回覆 #15 於: 2005-01-17 11:46 »
引述: "netman"
呵, 若一個 path expansion 不行, 那就用兩個如何:
ls * .[!.]*
當然, 你的 ls 要是支援的話, ls -A 也行, 呵~~~
假如你說只要 .a 的話, 那就更簡單:
ls .a*

若你要用 RE , 那請記住: RE 不是用在 path expansion 上, 而是用在 string processing 上!
如:
ls -a | grep -E '^.?[^.].*'

恩...我知道了...謝謝..^^"

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17375
    • 檢視個人資料
    • http://www.study-area.org
2004-09-07 台南班(3)
« 回覆 #16 於: 2005-01-17 12:42 »
啊, RE 那裡有點錯誤, 要改為:
^\.?[^.].*

Anonymous

  • 訪客
2004-09-07 台南班(3)
« 回覆 #17 於: 2005-01-17 14:02 »
1) 請問啥是 Wildcard 或 Filename Expention?
說明:

請問如下的 Wildcard 的意思是甚麼?
* : zero or more (any charactor)
? : only one (any charactor)
[ ] : only one of list
[! ] :only one of non-list

2) 若我要執行 ls -ad 命令,但不想在結果中看到當前及上一級目錄(即 . 跟 ..),
但普通的檔案及 .a, .b, .abc 等隱藏檔卻必須看得到。請問您的 wildcard 要如何運用?
指令:
我用RE來寫..因為wildcard 想不出來..orz
ls -a | grep -E '^[^.] | ^(.a)$|^(.ab)$|^(.abc)$'
這樣觀念不知道對不對..@@"

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17375
    • 檢視個人資料
    • http://www.study-area.org
2004-09-07 台南班(3)
« 回覆 #18 於: 2005-01-17 14:26 »
".a, .b, .abc 等"....

也就是說, 不止這幾個.

Yeh Dan kie

  • 懷疑的國中生
  • **
  • 文章數: 40
    • 檢視個人資料
2004-09-07 台南班(3)
« 回覆 #19 於: 2005-01-17 18:41 »
引述: "netman"
".a, .b, .abc 等"....

也就是說, 不止這幾個.

原來是我想太多..orz
ls -a | grep -Ev '^\.$|^(\.\.)$'
wildcard也懂了..@@"

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17375
    • 檢視個人資料
    • http://www.study-area.org
2004-09-07 台南班(3)
« 回覆 #20 於: 2005-01-18 14:42 »
very good!
懂得變通, 能運用不同的技巧來做同樣的事情, 非常好!

最後那行的 RE , 也可如此表示: '^\.\.?$'