私はUnixを初めて使用し、Sun Solaris(v10だと思います)を使用しています。シェルをKornShell(ksh)に設定しています。
コマンドラインで矢印キーとDeleteキーを機能させる方法を知りたいです。 set -o emacsを実行し、バックスペースは機能しますが、矢印キーと削除キーは機能しません。
また、コマンドライン履歴を循環するように上下の矢印キーを設定することは可能ですか?
矢印キーの場合、これをホームディレクトリの.kshrcファイルに入れることができます。
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
等号の左側の文字の前に2つの下線文字があることに注意してください。イコールの右側の目標は、エイリアスに割り当てられた適切な制御文字を取得することです。このスクリプトがそれを行う方法は、コマンドを実行することです(バックチックを介して)
echo "\020"
__Bに割り当てられたcontrol-n文字を取得します。
私は以下を使用し、正常に動作しています:
set -o emacs
注:これらは実際の制御文字です。 viで、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
それと戦わないでください。管理者にデフォルトのシェルをbashに変更してもらうだけです。 bashはSolaris10に含まれており、kshとの互換性が高く、必要なキーマッピングをサポートします。次のように入力するだけでbashを起動できます。
$ bash
管理者が役に立たない場合は、.profileからbashを実行できます。管理者がuser1をbash(rootとして)に変更するために行うことは次のとおりです。
# 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
デフォルトのkshはksh88である可能性があります。これは、エイリアス__キーボードマクロをサポートしていません。 Ksh93はそうします。基本的に、それが機能しない場合は、おそらくksh88を使用しています。