1月
07
2009

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`
Written by h2 in: PC | タグ:

コメントはまだありません »

RSS feed for comments on this post. TrackBack URL

コメントをどうぞ

TheBuckmaker WordPress Themes Webhosting, MP3, AAC & Co