ログインシェル

とりあえず、使えると思った事をメモ。

色んなOSにログインするので、ログインシェルも様々…。
bash が無難で優勢か。
zsh が個人的には面白い。
teraterm の 自動ログイン macro に組み込めば、
かなり仕事が楽になる。

bash
#プロンプト
#時間、ユーザ名、ホスト名、ディレクトリと表示。
#欠点は、深い階層に移動すると、プロンプトが長くなりすぎる事
PS1="[\t \u@\h:\w]\!\$ "
#ディレクトリを改行し見やすくしたが、2段プロンプト
PS1="{\w}\n[\t \u@\h]\!\$ "

# 1つ上の階層に移動する時に、.. だけで移動する。
alias ..=’cd ..’
#cd で移動した後に、すぐ、ls する
function cdl() { builtin cd $@ && ls; }

zsh
#プロンプト
#3行で1セット
#どっかからパクって来たヤツに時間表示機能を加えた。
#ディレクトリ表示のみ、右側に分割され、非常に見やすい。
setopt prompt_subst
PROMPT='%{[$[32+$RANDOM % 5]m%}%U%B%T $HOST'"{`whoami`}%b%%%{%}%u "
RPROMPT='%{%}[%~]%{%}'

#gd コマンド
#2行で1セット
#cd の移動履歴を記録
setopt AUTO_PUSHD
alias gd='dirs -v | head -10; echo -n "select number: "; read newdir; cd +"$newdir"'

#cd /hoge1/hoge2 ではなく、/hoge1/hoge2 で移動する。
#(cd が必要ない)
setopt auto_cd

#コマンドの打ち間違えをチェックする。
setopt CORRECT_ALL

#行の途中でも補完機能を許可する。
setopt COMPLETE_IN_WORD

#バックグラウンドジョブが終了したらすぐに知らせる。
setopt no_tify

tcsh
個人的に慣れてない。

ksh
これも使いづらい。なんで、初期設定が vi の挙動やねん。
というわけで、最低限下記は必須。

#bash みたいな挙動にする。
#Ctrl+P 1つ前のコマンド履歴
#Ctrl+N 1つ先のコマンド履歴
#backspace 入力した文字を消す
#esc esc 補完する
#esc = 次候補を表示する
set -o emacs