全局安装oh-my-zsh保姆教程

我的系统是CentOS 7.6,按流程走完后可以实现系统内所有用户都默认使用zsh且插件配置共享省去重复编写配置或软连接的烦恼

1 安装git

bash 复制代码
yum -y install git

2 安装zsh

bash 复制代码
yum -y install zsh

3 更改root的默认shell

bash 复制代码
#查看当前可用shell列表
cat /etc/shells
#更改root的默认shell
hsh -s /bin/zsh

4 安装oh-my-zsh

bash 复制代码
mkdir /usr/share/zsh.d
#克隆项目到/usr/share/zsh.d/.oh-my-zsh,后期oh-my-zsh下载的插件也都会放到这里
git clone https://github.com/ohmyzsh/ohmyzsh.git /usr/share/zsh.d/.oh-my-zsh
#根据模版创建一个基本的zsh配置
cp /usr/share/zsh.d/.oh-my-zsh/templates/zshrc.zsh-template /usr/share/zsh.d/.zshrc

5 修改配置

bash 复制代码
cd /usr/share/zsh.d
vi .zshrc
#找到'export ZSH=$HOME/.oh-my-zsh'改为'export ZSH=/usr/share/zsh.d/.oh-my-zsh'
#找到'# alias zshconfig="mate ~/.zshrc"'改为'alias zshconfig="vi /usr/share/zsh.d/.zshrc"'
#找到'# alias ohmyzsh="mate ~/.oh-my-zsh""'改为'# alias ohmyzsh="cd /usr/share/zsh.d/.oh-my-zsh"'
#三处都设置好后即可保存:wq

上边三行注释分别是修改ZSH环境变量指向的位置和设置快速编辑的别名命令,之后可以通过zshconfig命令直接编辑.zshrc也可以通过ohmyzsh快速跳转到.ohmyzsh文件夹

保存后先执行'source ./.zshrc'看看效果

6 修改全局配置使其对所有用户生效

bash 复制代码
echo "source /usr/share/zsh.d/.zshrc" >> /etc/zshrc

7 更改新用户的默认shell

bash 复制代码
vi /etc/default/useradd
#'SHELL=/bin/bash'改为'SHELL=/bin/zsh',修改后保存,之后创建的用户也会默认使用zsh

8 修改主题及插件使用

zsh安装后默认使用'robbyrussell'主题,插件只有一个git插件,这里演示一下如何修改主题及配置插件,主题将切换为'ys'主题,插件将安装一个高亮插件作为演示

bash 复制代码
#之前有配置过别名所以直接通过别名编辑zshrc
zshconfig
#配置主题
#ZSH_THEME="robbyrussell" 替换为 ZSH_THEME="ys" 或其他你喜欢的主题
#保存后重启或手动执行一下'source /usr/share/zsh.d/.zshrc'

#安装插件
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
#ZSH_CUSTOM默认位置为$ZSH/.oh-my-zsh,前边指定过ZSH所以插件会放到/usr/share/zsh.d/.ohh-my-zsh下
#下载完成后打开配置文件添加插件配置
zshconfig
#找到"plugins=(git)"这一行,plugins中填入将要启动的插件
plugins=(
 git
 zsh-syntax-highlighting
)
#保存后source一下即可

9 完成

如果发现root的vi没有应用配置但是其他用户有是因为zsh的root没有给vim映射别名,执行 echo "alias vi='vim'" >> /etc/zshrc 即可

相关推荐
HalvmånEver12 分钟前
Linux:线程同步
linux·运维·服务器·线程·同步
Zach_yuan14 分钟前
自定义协议:实现网络计算器
linux·服务器·开发语言·网络
wdfk_prog30 分钟前
[Linux]学习笔记系列 -- [drivers][I2C]I2C
linux·笔记·学习
VekiSon40 分钟前
Linux内核驱动——杂项设备驱动与内核模块编译
linux·c语言·arm开发·嵌入式硬件
Y1rong1 小时前
linux之网络
linux
寄存器漫游者1 小时前
Linux 软件编程 - IO 编程
linux·运维·spring
_别来无恙_1 小时前
TFTP的使用Linux
linux·服务器
Zaralike2 小时前
Linux 服务器网络不通排查 SOP(标准操作流程)
linux·服务器·网络
getapi2 小时前
注塑件的费用构成
linux·服务器·ubuntu
郝学胜-神的一滴3 小时前
深入解析C/S模型下的TCP通信流程:从握手到挥手的技术之旅
linux·服务器·c语言·网络·网络协议·tcp/ip