Bash
將 F1 鍵程式為 ^[[A 而不是 xterm 中的 ^[OP
出於安全原因,我被賦予了將舊的 telnet 系統轉換為 ssh 的任務。我們的員工使用的手持設備很少,可以執行到伺服器的 telnet 連接並執行 curses 程序。
我遇到的問題是,他們之前用來連接的奇怪的 telnet 軟體讀取的功能鍵與 ssh + xterm 現在讀取的功能鍵不同。
在執行的 curses 程序中,當使用者按下
F1
它應該發送^[[A
(1B 5B 5B 41
十六進制)並且程序讀取並執行操作。但是,它目前正在接收^[OP
(我認為是1B 5B 4F 50
)。我在Google搜尋這個問題時發現了各種各樣的東西,但它們似乎都不是我需要的,因為我不知道
^[[A
keysym應該是什麼。我
inputrc
試過了^[OP: ^[[A
但這只會返回一個錯誤,說明這
^[[A
是一個未知命令。
xmodmap
似乎沒有幫助凋謝,因為它正在尋找一個名字,我不知道那應該是什麼。我也必須這樣F2
做F9
。我使用的環境是一個執行 openbox 的真正受限的 Linux 設備。
xterm
允許您將鍵轉換為字元序列。這是通過設置資源來完成的,例如:XTerm*VT100.Translations: #override\n\ <Key>F1: string(0x1b) string("[A")\n\ <Key>F2: string(0x1b) string("[B")\n
通常,您可以將這些行放在
~/.Xdefaults
文件中,並在啟動時由伺服器讀取。更動態地,您可以將其載入或重新載入到正在執行的伺服器中xrdb -merge <~/.Xdefaults