2021/6/6追記
現行バージョンでは、のCisco IOS XR/XRvで動作するカーネルおよびOSはQNXではなくLinuxに変わっております。
Cisco IOS XR/IOS XRvのマイクロカーネルはQNXである。
そのQNXで動作しているシェルはksh。1980年代初期にベル研のDavid Kornにより開発されたシェルで、現在はbashに対し上位互換性を持つ。
IOS-XEやNX-OSのマイクロカーネルはLinuxが採用されているが、システム稼働中の状態ではシェルのモードに移行する事は出来ない。
しかし、IOS XR/IOS XRvではrunコマンド1つでkshのモードに移行する。
カーネル部分の不具合を起因とするシステム障害のトラブルシューティングの際にkshに入る事があるが、IOS XR/IOS XRvにおけるkshは、hostnameやinterfaceや各通信プロトコルの設定や確認をする為のツールではない為、商用環境ではkshに触れる機会は滅多に無いだろう。
今回は、ksh環境とvimの設定を少しだけいじってみた。
以下は、.profileの内容。このファイルは元々ホームディレクトリに存在しないので、新規作成。
.kshrcを読み込む為の1行が記載されているのみ。
export ENV=$HOME/.kshrc
以下は、.kshrcの内容。
このファイルも元々ホームディレクトリに存在しないので、新規作成
IOS XRv上でプログラミングする訳でもない上、システムへ影響を及ぼさないようにする為、設定内容は最低限なものに留めている。
下記設定後、kshと打つと.kshrcの内容が読み込まれる。
export PS1='$(pwd)$ 'の設定が記述されている為、プロンプトが/disk0:/usr$に変化する。
#!/pkg/bin/ksh # .kshrc file (2016/3/12) ### Environment export EDITOR=vim # 環境変数設定用のエディタとしてvimを指定 export PAGER=less # ファイルの内容をlessで出力する export LANG=C # 言語環境はデフォルト設定のものを使用 export PS1='$(pwd)$ ' # プロンプトをカレントディレクトリに変更 export HISTSIZE=100 # kshコマンドの履歴数を100に変更 export HISTFILESIZE=100 # ~/.ksh_historyファイルに残すkshコマンドの履歴数を100に変更 ### Aliases alias ls='ls -la' # ファイル名だけでなくアクセス権やファイルサイズも出力 alias df='df -k' # ファイルシステムの情報をキロバイト単位で出力 alias vi='vim' # つい、viと打ってしまうので... #EOL
ちなみに、QNXのバージョンおよびkshのバージョンは、以下のコマンドで確認可。
/disk0:/usr$ echo $KSH_VERSION @(#)PD KSH v5.2.14 99/07/13.2 /disk0:/usr$ uname -a QNX node0_0_CPU0 6.4.0 2015/10/01-12:54:29PDT xrvr x86 /disk0:/usr$
以下は、.vimrcの内容。
このファイルも新規作成となる。
これも最低限且つ自分の好み(tabstop=4)を記述。
set ruler ; カーソルの位置を出力する set showmode ; 現在のモード(コマンドor入力)を出力する set wrapscan ; 検索をファイル最後で終わらせない set tabstop=4 ; タブ幅を4文字に指定
http://www.kornshell.org/ ksh
https://blackberry.qnx.com/en/products/foundation-software/qnx-rtos QNX Neutrino