メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

kshの環境設定 (Cisco IOS XRv)

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