SHELL十三問之二:shell prompt(PS1) 與 Carriage Return(CR)

當你成功登錄進一個文字界面之後,大部份情形下,你會在熒幕上看到一個不斷閃爍的方塊或底線(視不同版本而別),我們稱之爲*遊標*(coursor)遊標的作用就是告訴你接下來你從鍵盤輸入的按鍵所插入的位置,且每輸入一鍵遊標便向右邊移動一個格子,若連續輸入太多的話,則自動接在下一行輸入。BSD愛好者樂園$XfPF0M

假如你剛完成登錄還沒輸入任何按鍵之前,你所看到的遊標所在位置的同一行的左邊部份,我們稱之爲*提示符號*(prompt)。提示符號的格式或因不同系統版本而各有不同,

I y4o~sm'P1

FreeBSD,只需留意最接近遊標的一個可見的提示符號,通常是如下兩者之一:
9O3j M];^1
$:給一般使用者帳號使用BSD愛好者樂園nE[u3c%Y }"V
#:給root (管理員)帳號使用

P`@ XT.K U1

 BSD愛好者樂園 B0P C6O�pEQ�p5@

事實上,shell prompt的意思很簡單:
[p^;E-r1^1   
*shell告訴使用者:您現在可以輸入命令行了。我們可以說,使用者只有在得到shell prompt才能打命令行,而cursor是指示鍵盤在命令行所輸入的位置,使用者每輸入一個鍵,cursor就往後移動一格,直到碰到命令行讀進CR(Carriage Return,由Enter鍵產生)字符爲止。BSD愛好者樂園7["f$M7b/j
CR的意思也很簡單:BSD愛好者樂園S ]g6vo1D
   
*是使用者告訴shell:老兄你可以執行我的命令行了。嚴格來說:
yg1_N ME.M`1
   *所謂的命令行,就是在shell promptCR字符之間所輸入的文字。(思考:爲何我們這裏堅持使用CR字符而不說Enter鍵呢?答案在後面的學習中揭曉。)BSD愛好者樂園+TYf.f2]8C,[){7RY

 

I!Qode(^k�i$Q1

不同的命令可接受的命令行格式或有不同,一般情況下,一個標準的命令行格式爲如下所列command-name options argumentBSD愛好者樂園/N ` pZ+Z9b]t

若從技術細節來看,shell會依據IFS(Internal Field Seperator)command line所輸入的文字給拆解爲"字段"(word)。然後再針對特殊字符(meta)先作處理,最後再重組整行command line

5{(e.P(y x9X_b R#d#?1

 BSD愛好者樂園u Fb;_8B5R

其中的IFSshell預設使用的字段分隔符,可以由一個及多個如下按鍵組成:BSD愛好者樂園^ I%a/d;|B
*空格鍵(White Space)
nW s7V/|D/1
*表格鍵(Tab)
'i(JnG,U/Jn2w m1
*回車鍵(Enter)BSD愛好者樂園:o�uB }2T&kY�j1G]

BSD愛好者樂園&duf4t;T&gA
系統可接受的命令名稱(command-name)可以從如下途徑獲得:
G&l/x.] I*eP1
*明確路徑所指定的外部命令BSD愛好者樂園*cv'{ go
*命令別名(alias)
3s-/wWP)s1
*自定義功能(function)
-}(t�YXj Vn3a%N.yTB1
* shell內建命令(built-in)
*N*oy!bNlb/1
* $PATH之下的外部命令BSD愛好者樂園2ZNX t1Ad4vz

每一個命令行均必須含有命令名稱,這是不能缺少的。

發佈了42 篇原創文章 · 獲贊 5 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章