はじめに
まあbashでもいいけど,zshのほうが何かと見栄えもいいし,なんかいいじゃないですか
gitのブランチとかも見れるし
環境
- Ubuntu 16.04
- なんか特殊(自分の所属独特の環境です......が誰かの役に立てば.)
ログインシェルもzshに変更するのに微妙に手間取ったので,その際のメモを残します.
ちょっと特殊な環境向けなので /etc/passwd を編集するのが怖い人はその部分を適宜読み替えてください.
やらかすとこうなります.気をつけて.
手順
1. インストール
入ってたらしなくていいです
% sudo apt install zsh
2. 確認
% zsh
これでzshが起動したらOK
% which zsh
これで
/usr/bin/zsh
みたいなのが出てきたらOK
3. ログインシェルの変更
うちの環境では以下はダメでした
% chsh
/etc/passwd にお前はいないぞと言われます.
というわけで/etc/passwdに追記しましょう.
自分の環境ではuseraddなどがうまく機能しないため,/etc/passwdを直接編集するという危険な行為を行いました.
くれぐれもバックアップを忘れずに...... $\tiny{バックアップしても無駄かも}$
以下のコマンドで追記できます.(-aを忘れると地獄を見ます!!!)
zsh実行してる端末でやらないとエラー出るかも.
% echo "${USER}:x:${UID}:${GID}:${USER}:${HOME}:$(which zsh)" | sudo tee -a /etc/passwd
怖い人はsudo nano /etc/passwdなどで最終行に追記しましょう.
(useradd,usermodが何故かうまく使えない環境で他に危険じゃない方法を知っている方がいたら教えて欲しいです)
あとは再起動(というかログアウト)すればログイン時に自動でzshでログインできているはずです.
4. zshの設定とか
bashでは.bashrcを編集することでエイリアスなどを設定しますが,zshでは.zshrcを編集して行います.
ところで.zshrcは有志の方が作成してくれた素晴らしい設定が既にあります.
これを使うことで現在のディレクトリや環境,gitのブランチもよくわかるようになります.
またディレクトリとコマンドを2行に分けて表示するため,pwdコマンドを二度と使わなくてよくなります.
こんな感じです.(見せられない部分が多くてすみません)

py36が環境名,@以外消されてるところが[ユーザ名@マシン名],
/git/以外が隠されているところが現在のディレクトリ,(git)-[master]って書いてあるところがブランチです.
少し凝った zshrcをお借りして,適当なテキストエディタで.zshrcに貼り付けておきましょう.
.bashrcから移行したい設定がある人はそれも追記しておきましょう.(とくにAnacondaとか入れてる人)
編集したあとは source ~/.zshrcとかすればリロードされそうです.
うまくいかなければ再起動.
終わりに
便利ですよね.
くれぐれも/etc/passwdやらかしちゃダメだからな!絶対だぞ!
こうなるぞ