今天要教別人一些SA的東西,趁睡覺前把以前寫的script重新順過一次
我在ubuntu 16.04 安裝zsh的指令如下
sudo apt install -y zsh git-core
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O – | zsh
chsh -s `which zsh`
sudo reboot
發現在執行到 sudo chsh -s which zsh
時會噴出以下錯誤
chsh: PAM: Authentication failure
這行指令目的是修改使用者的預設 shell 為 zsh,在網路上找到了各式各樣的解法
有人在bashrc內跑 exec zsh、也有人直接改 /etc/passwd的shell
這裡我採用的解法,是從zsh官方issue中一位開發者提供的解法
sudo vim /etc/pam.d/chsh
將 auth required pam_shells.so 這行註解掉後,再次執行 sudo chsh -s which zsh
重新ssh 登入後,預設shell就會變成zsh了!
–2017.03更新–
上面是舊的安裝方式,官方Repo有新的Script可以進行部屬
sudo apt install -y zsh
sh -c “$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
使用這份Script 即可順利安裝zsh ( 親測on Ubuntu 16.04 )
也不必將 /etc/pam.d/chsh 的 so檔註解掉囉
–2017.10更新–
如果是在AWS的環境,或者是每次重開都還是跳bash而非zsh的話
可以參考這個答案,如果還是不行的話
有一招很暴力的作法(不建議但有效) – 直接修改 /etc/passwd
sudo vim /etc/passwd
把使用者的預設登入shell改成zsh即可
your_username:x:1000:1000:,,,:/home/your_username:/usr/bin/zsh