Shell十三問之二:shell prompt(PS1) 與Carriage Return(CR) 的關係

來源:互聯網
上載者:User

當你成功登入進一個文字介面之後,大部份情形下,

你會在熒幕上看到一個不斷閃爍的方塊或底線(視不同版本而別),

我們稱之為*遊標*(cursor)。

遊標的作用就是告訴你接下來你從鍵盤輸入的按鍵所插入的位置,

且每輸入一鍵遊標便向右邊移動一個格子,若連續輸入太多的話,則自動接在下一行輸入。

假如你剛完成登入還沒輸入任何按鍵之前,你所看到的遊標所在位置的同一行的左邊部份,

我們稱之為*提示符號*(prompt)。

提示符號的格式或因不同系統版本而各有不同,在Linux 上,只需留意最接近遊標的一個可見的提示符號,通常是如下兩者之一:

$:給一般使用者帳號使用

#:給 root (管理員)帳號使用

事實上,shell prompt 的意思很簡單:

* 是shell 告訴使用者:您現在可以輸入命令列了。

我們可以說,使用者只有在得到shell prompt 才能打命令列,

而cursor 是指示鍵盤在命令列所輸入的位置,使用者每輸入一個鍵,cursor 就往後移動一格,

直到碰到命令列讀進CR(Carriage Return,由Enter 鍵產生)字元為止。

CR 的意思也很簡單:

* 是使用者告訴shell:老兄你可以執行我的命令列了。

嚴格來說:

* 所謂的命令列,就是在shell prompt 與CR 字元之間所輸入的文字。

(思考:為何我們這裡堅持使用CR 字元而不說Enter 鍵呢?答案在後面的學習中揭曉。)

不同的命令可接受的命令列格式或有不同,一般情況下,一個標準的命令列格式為如下所列:

command-name options argument

若從技術細節來看,shell 會依據IFS(Internal Field Seperator) 將command line 所輸入的文字給拆解為"欄位"(word)。

然後再針對特殊字元(meta)先作處理,最後再重組整行command line 。

(注意:請務必理解上兩句話的意思,我們日後的學習中會常回到這裡思考。)

其中的IFS 是shell 預設使用的欄位分隔字元號,可以由一個及多個如下按鍵組成:

* 空白鍵(White Space)

* 表格鍵(Tab)

* 斷行符號鍵(Enter)

系統可接受的命令名稱(command-name)可以從如下途徑獲得:

* 明確路徑所指定的外部命令

* 命令別名(alias)

* 自定功能(function)

* shell 內建命令(built-in)

* $PATH 之下的外部命令

每一個命令列均必需含用命令名稱,這是不能缺少的

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.