2009-10-26 40 views
15

我是Unix新手,正在使用sun solaris(我認爲是v10)。我把我的shell設置爲KornShell(ksh)。使箭頭和刪除鍵在KornShell命令行中工作

我想知道如何使箭頭鍵和刪除命令行中的關鍵工作。我已經完成set -o emacs和退格工作,但不是箭頭鍵和刪除鍵。

還有可能設置向上和向下箭頭鍵循環查看命令行歷史嗎?

回答

28

對於箭頭鍵,你可以把這個到您的.kshrc文件在你的home目錄:

set -o emacs 
alias __A=`echo "\020"`  # up arrow = ^p = back a command 
alias __B=`echo "\016"`  # down arrow = ^n = down a command 
alias __C=`echo "\006"`  # right arrow = ^f = forward a character 
alias __D=`echo "\002"`  # left arrow = ^b = back a character 
alias __H=`echo "\001"`  # home = ^a = start of line 
alias __Y=`echo "\005"`  # end = ^e = end of line 

請注意,在等號左側的字母之前有兩個下劃線字符。在等號的右側,目標是獲得分配給別名的正確控制字符。這個腳本的做法是通過運行命令(通過back-tics)

echo "\020" 

得到分配給__B的控制n字符。

+1

如果你能說出上面的內容是什麼會更有幫助嗎? – nikhil 2012-02-22 04:46:22

+0

另外,如果你沒有.kshrc文件,創建一個並添加上面的內容。使用下面的命令設置ENV 「ENV = $ HOME/.kshrc; export ENV」通過發出「printenv」命令再次確保 – 2015-12-14 20:19:46

+0

請注意,pdksh和mksh都使用'.mkshrc'文件 – thecarpy 2017-08-25 07:46:19

8

不要打它。 只需讓您的管理員將您的默認shell更改爲bash。 bash包含在Solaris 10中,與ksh兼容,並且支持您喜歡的鍵映射。 您可以只需鍵入推出的bash:

$ bash 

你可以Exec的慶典你的.profile文件,如果你的管理員是沒有幫助的。 這裏是你的管理員會做些什麼來改變USER1來砸(根):

# passwd -e user1 
Old shell: /bin/ksh 
New shell: /usr/bin/bash  <- You type this, use whence bash to look up the path 
passwd: password information changed for user1 
+0

有Solaris 10中沒有'chsh'? – 2009-12-02 00:01:01

+0

不,Solaris不支持chsh命令。 :( – 2009-12-04 15:53:20

0

默認的ksh可能是ksh88--它不支持別名__鍵盤宏。 Ksh93的確如此。基本上,如果它不起作用 - 你可能使用ksh88。

9

我用以下,並且工作正常:

set -o emacs 

注:這些都是實際控制字符。在六,I型CTRL-V再按Ctrl-P(如果想要可CTRL-P)

alias _A=^P 
alias _B=^N 
alias _D=^B 
alias _C=^F 

,並添加以下行太:

alias __A=^P 
alias __B=^N 
alias __D=^B 
alias __C=^F