Shell

您如何在 Ubuntu 中找到“擦除”和“行終止”字元的鍵?

  • November 29, 2013

我是 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}'"

引用自:https://unix.stackexchange.com/questions/102940