zshをログインシェルっぽくする
大したネタじゃないけど「毎回zshって打つのがヤダ!!」っていってる人に教えてあげたら,なんかウケがよかったのでメモ
下記のような理由で,「メインで使うシェルはzshやけど,ログインシェルにはできないと」いう人は以外と多いのではないでしょうか?
- LDAPで複数のサーバのアカウントを管理していると,zshが入っていないサーバにログインできない
- まだ枯れていないので更新頻度が高く,もし失敗するとログインできず悲惨
- 特にBSD系などで,ユーザランドにあるシェルをログインシェルにすることに抵抗がある
自分もcshしか入っていないサーバを管理する必要があって,デフォルトはcshです
とはいえ毎回ログインするたびにzshと入力するのはあまりにも面倒なので,ログイン後zshがあればzshを起動するようにしましょう
~/.login を次のような感じにします
下記はzshがあればzshを,zshがなければbashを,bashもなければcshで我慢という例です
(NetBSDで使っているものから拝借)
if ( -x `which zsh` ) then
exec zsh
else if ( -x `which bash` ) then
exec bash
else
if ( ! $?SHELL ) then
setenv SHELL /bin/csh
endif
# cshの設定
# ・・・
endif
忘れずに,~/.zshenv で環境変数SHELLを設定しておきましょう
~/.zshenv に書いておけば,シェルスクリプトを引数に渡された時にも読み込まれます
export SHELL=`which zsh`
コメントはまだありません »
RSS feed for comments on this post. TrackBack URL
