概述
使用 zsh 很久了,以至于经常使用新的虚拟机都很不习惯,所以都需要设置一遍,这里就记录一下每次设置 zsh 的过程。因为我常用的机器是 Manjaro 和 CentOS,其中 CentOS 机器比较多,所以,这里就以 CentOS 为 OS 为例进行记录。
环境信息
- OS:CentOS 7
- 用户:root
安装 zsh
其实安装 zsh 都很简单,然后我平时都喜欢用 oh-my-zsh 的配置,所以一步到位直接一起安装:
[root@liqiang.io]# yum install -y zsh git
[root@liqiang.io]# sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
- 注:一般系统默认都没有 wget 的,所以我常用 curl
增加新用户
经常有个问题就是系统装完我就配置 zsh,但是,后续需要添加新用户的时候就尴尬了,因为新用户不会默认使用 zsh,但是这个过程却不是自行指定新用户的 shell 为 zsh 就可以解决的,因为还涉及到 zsh 的配置等。
所以我的操作步骤是通过一个脚本进行的:
[root@liqiang.io]# cat > zsh-add-new-user.sh << EOF
#!/bin/bash
read -p "please provide a name for a new user:" name
if [ "$name" == "" ]; then
echo "You did not entered a user name, so no user will be added."
exit;
fi
USER=$name
HOME=/home/$USER
echo "Add user $USER"
adduser $USER --disabled-login
echo "generate .ssh dir in homedir for user $USER"
mkdir $HOME/.ssh
chmod 0700 $HOME/.ssh
echo "clone zsh git repo in $USER homedir"
git clone git://github.com/robbyrussell/oh-my-zsh.git $HOME/.oh-my-zsh
chmod 0755 $HOME/.oh-my-zsh
echo "setup default zsh settings"
cp $HOME/.oh-my-zsh/templates/zshrc.zsh-template $HOME/.zshrc
chmod 0755 $HOME/.zshrc
echo "set correct permissions"
chown -R $USER:$USER /home/$USER
echo "change shell for user $USER"
chsh --shell /bin/zsh $USER
EOF
[root@liqiang.io]# echo "下面开始添加新用户"
[root@liqiang.io]# zsh-add-new-user.sh zhangsan