Shell
您如何在 Ubuntu 中找到“擦除”和“行終止”字元的鍵?
我是 Unix 新手,今天買了一本《Unix 程式環境》。我正在嘗試書中的內容。但是其中一些沒有按預期工作:要刪除一行並再次重新輸入,應該使用**@字元:**
書
$ ddtae@ date Thu Nov 28 18:12:47 IST 2013
我的終端
$ ddtae@ ddtae@: command not found
另一個例子是使用**#**刪除最後一個字元
書
$ dd#att#e#e
它作為日期出來並列印出來。
我的終端
$ dd#att#e#e dd#att#e#e: command not found
在我的系統中 # 用於評論
儘管他們已經提到這些字元是系統相關的。我怎樣才能找到我的系統執行上述兩個任務的字元。
終端線路控制可以通過 查詢和/或設置
stty
。要查看目前設置,請使用stty -a
。聯機幫助頁提供了詳細資訊。例如,
stty -a
您可能會發現這個殺戮線控制:kill = ^U
插入符號表示按住控制鍵 (
Ctrl
),然後鍵入顯示的字元 (U
)。要更改 line-kill 序列,您可以執行以下操作:$ stty kill \@
**注意:**反斜杠是一個轉義符,表示後面的字元將由 shell 逐字解釋。
將 line-kill 更改為此(文字
@
)後,您現在可以刪除如下所示的行:$ ddtae@
**注意:**在上面的場景中,當您鍵入
ddtae
時,當您鍵入字元@
時,整行將被刪除。恢復預設設置的一種方法(當您無意更改設置時這非常有用)是簡單地執行以下操作:
$ stty sane
另一個用途
stty
是控製字元回顯。例如,在使用者鍵入時隱藏使用者密碼的一種簡單方法是:#!/bin/sh echo "Enter password" stty -echo read PWORD stty echo echo "You entered '${PWORD}'"