CygwinでZshを使う
最近、Windows側の操作は専らCygwinを使っています。
僕の基本ツールの中でもTmuxとVim,Gitはもう入れていたのですが、Zshはまだ入れていなかったので、ササッと入れるつもりで挑んでみました。
パッケージ管理ツールとしてapt-cygコマンドが入っていれば、以下のコマンドでインストールできます。
$ apt-cyg install zsh
何事もなく導入が終わりました。
早速、ログインシェルに設定しようとchshコマンドを叩いてみると・・
$ chsh -l bash: chsh: コマンドが見つかりません
な、なんだと・・
まあ、これはあるある問題みたいで"/etc/passwd"ファイルを直接編集したらいいとのこと(そらそうか)
しかし、
$ ls /etc/passwd ls: /etc/passwd にアクセスできません: No such file or directory
何故か存在しない"/etc/passwd"ファイルorz
なんでだろう、セットアップのときにJust Meにしたからだろうか・・
ファイルがない原因は調べてないので分かりませんが、生成する方法はあるらしく、以下のコマンドで無事に生成されました。
$ mkpasswd > /etc/passwd
よかったよかった。
しかし、ログインしたユーザが辿り着いた先は、何故か"/cygdrive/c/Windows/system32/"ディレクトリであった・・
ホームディレクトリの設定は変えていないのに・・そしてBashに戻すと何事もなかったようにホームディレクトリに辿り着く。
結局、めんどうくさくなっちゃって、下記を"/etc/zprofile"ファイルに記述して暫定対応しちゃったんだけど、ログインのときにホームディレクトリに移動する仕組が分かれば解決はできそうですね(ログインシェルで"/etc/passwd"ファイルに書かれたパスに移動しているのだろうか・・)
# For Cygwin. if [ "$( uname -o )" = 'Cygwin' ]; then # Is not changed home directory for some reason, when login shell is Zsh. cd fi
参考URL
DY - Re: No etc/passwd (was) Re: (everything!) command not found