概述

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

环境信息

安装 zsh

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

[[email protected]]# yum install -y zsh git
[[email protected]]# sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

增加新用户

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

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

[[email protected]]# cat zsh-add-new-user.sh
#!/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
[[email protected]]# echo "下面开始添加新用户"
[[email protected]]# zsh-add-new-user.sh zhangsan