概述

使用 zsh 很久了,以至于经常使用新的虚拟机都很不习惯,所以都需要设置一遍,这里就记录一下每次设置 zsh 的过程。因为我常用的机器是 Manjaro 和 CentOS,其中 CentOS 机器比较多,所以,这里就以 CentOS 为 OS 为例进行记录。

环境信息

安装 zsh

其实安装 zsh 都很简单,然后我平时都喜欢用 oh-my-zsh 的配置,所以一步到位直接一起安装:

  1. [root@liqiang.io]# yum install -y zsh git
  2. [root@liqiang.io]# sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

增加新用户

经常有个问题就是系统装完我就配置 zsh,但是,后续需要添加新用户的时候就尴尬了,因为新用户不会默认使用 zsh,但是这个过程却不是自行指定新用户的 shell 为 zsh 就可以解决的,因为还涉及到 zsh 的配置等。

所以我的操作步骤是通过一个脚本进行的:

  1. [root@liqiang.io]# cat > zsh-add-new-user.sh << EOF
  2. #!/bin/bash
  3. read -p "please provide a name for a new user:" name
  4. if [ "$name" == "" ]; then
  5. echo "You did not entered a user name, so no user will be added."
  6. exit;
  7. fi
  8. USER=$name
  9. HOME=/home/$USER
  10. echo "Add user $USER"
  11. adduser $USER --disabled-login
  12. echo "generate .ssh dir in homedir for user $USER"
  13. mkdir $HOME/.ssh
  14. chmod 0700 $HOME/.ssh
  15. echo "clone zsh git repo in $USER homedir"
  16. git clone git://github.com/robbyrussell/oh-my-zsh.git $HOME/.oh-my-zsh
  17. chmod 0755 $HOME/.oh-my-zsh
  18. echo "setup default zsh settings"
  19. cp $HOME/.oh-my-zsh/templates/zshrc.zsh-template $HOME/.zshrc
  20. chmod 0755 $HOME/.zshrc
  21. echo "set correct permissions"
  22. chown -R $USER:$USER /home/$USER
  23. echo "change shell for user $USER"
  24. chsh --shell /bin/zsh $USER
  25. EOF
  26. [root@liqiang.io]# echo "下面开始添加新用户"
  27. [root@liqiang.io]# zsh-add-new-user.sh zhangsan