Ubuntu 启用 zsh 并进行美化(oh-my-zsh)
Ubuntu阿里云服务器安装Zsh,并通过oh-my-zsh美化,期间遇到不少问题,学习到了一些linux的命令以及git的特性
1. 背景
前几天在阿里云买了个云主机,安装的Ubuntu 16.04 LTS,发现默认shell是bash,决定换成zsh,并通过oh-my-zsh进行美化。在CSDN记录下来,方便下次使用
2. 清单
系统:Ubuntu 16.04 LTS
Shell:Zsh
框架:oh-my-zsh
主题:powerlevel10k
3. Zsh
查看当前shell
echo $SHELL
查看当前已安装shell
cat /etc/shells
安装zsh(如果上面显示没有安装)
apt install zsh -y
查看并记录zsh安装路径
cat /etc/shells
设置zsh为默认shell
chsh -s /bin/zsh
重启系统
reboot
查看当前shell
echo $SHELL
可以看到默认shell已经成功更改为Zsh,可以进行下一步
4. oh-my-zsh
4.1. 官方脚本安装
官网给了两种安装方法:
wget
sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
众所周知的原因,大概率是无法连接成功的
4.2. 本地下载脚本后上传至服务器执行
本地下载脚本
https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
按住 SHIFT
同时右键,在此处打开powershell/CMD窗口
$ scp ./install.sh root@110.120.119.114:/root
回车输入root密码再回车。记得110.120.119.114改成自己云主机的公网IP
注:Linux默认不允许通过
密码验证
以root身份SSH登录,如报错可参考我另外一篇文章:
【已解决】ssh 尝试以 root 账号登陆 linux 服务器时出现 “Permission denied“ 错误
回到云主机,进入脚本所在的路径
cd /root
执行脚本
source ./install.sh
如果看到这个界面就是成功了
4.3. 补充
后面整理参考链接的时候,发现官网专门为我们准备了一套资源(贴心捏),是托管在官方服务器而非Github上的,亲测有用
wget
sh -c "$(wget -O- https://install.ohmyz.sh)"
curl
sh -c "$(curl -fsSL https://install.ohmyz.sh)"
5. 主题
5.1. 官方主题
5.1.1. 挑选主题
在官方主题页面(点击此处跳转)挑选自己喜欢的主题,记住名字,比如官方默认主题robbyrussell
5.1.2. 修改配置文件
打开oh-my-zsh配置文件,修改主题为上面挑选的主题名
使用自己顺手的编辑器,将ZSH_THEME=
后面的名字替换为上面自己挑选的主题名
nano对新手更友好,这里就以nano为例
nano .zshrc
按CTRL+X
退出,根据提示按y
并Enter
保存
5.1.3. 重新加载配置文件
source .zshrc
如果提示符变成了上面你选的主题,就成功了
5.2. powerlevel10k
如果上面的官方主题满足不了你,欢迎加入powerlevel10k
装13大家庭
在这里,你可以随心挑选喜欢的样式,在各个方面进行配置,安装成功后会有配置向导
一步一步带你完成配置,只要你想的,它就有
根据官网(点此进入官网)提示
5.2.1. 安装字体
5.2.1.1. 下载字体文件
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf
基于上面同样的原因,大概率连接失败,所以我们还是客户端下载后上传
下载到本地(点击下载)
不方便访问的可以通过分享的链接下载
链接:https://pan.baidu.com/s/1KqlM23xoO06iIH4jar7DZw?pwd=font
提取码:font
上传到云主机
在字体保存的目录中打开powershell/CMD,方法见上文(点此跳转)
回到上一级目录,因为我们要把整个文件夹上传过去
cd ../
上传文件夹,这里r
表示上传整个文件夹,p
会在云主机上没有相关目录的情况下先递归创建目录
scp -rp fonts root@110.120.119.114:/usr/share
回车输入root密码再回车。记得110.120.119.114改成自己云主机的公网IP
5.2.1.2. 安装字体
安装字体配置软件
apt install fontconfig -y
安装字体
fc-cache -f -v
查看已安装字体
fc-list
可以看到四款字体已经成功安装
5.2.2. 下载主题
这里使用的是gitee链接,可以直接下载
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
修改并重新加载oh-my-zsh配置文件,忘了的可以参考上文(点此跳转)
cd /root
nano .zshrc
ZSH_THEME="powerlevel10k/powerlevel10k"
source .zshrc
出现以下配置向导界面就成功了
5.2.3. 配置主题
根据自己偏好一步步跟着配置向导走就好了,输入每个选项前括号内的字符,即可选择相应选项
主题效果
6. 安装插件
刚入坑,本人只安装了两个必备的插件自动提示
和语法高亮
,有其他需要的,可以自己前往插件库(点此跳转)进行挑选安装
6.1. 自动提示
6.1.1. 下载插件
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
同样是连接不上的,还是本地下载上传
git克隆到本地
git clone https://github.com/zsh-users/zsh-autosuggestions zsh-autosuggestions
6.1.2. 上传云主机
$ scp -rp zsh-autosuggestions root@110.120.119.114:/root/.oh-my-zsh/custom/plugins
回车输入root密码再回车。记得110.120.119.114改成自己云主机的公网IP
6.1.3. 将执行本插件脚本的代码添加到配置文件中
echo "source /root/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" >> /root/.zshrc
重新加载配置文件
source /root/.zshrc
不出意外果然出意外了
可以看到,问题出就出在这个
^M
上,经过一番高强度网上冲浪后,发现它就是天杀的CR
,也就是回车键(Carriage Return)
,感情git会根据系统不同判断换行符的使用,在Windows等dos系上默认换行符为CRLF,而Linux、MacOS等Unix系上默认换行符为LF,导致Windows系统中clone过来的代码在Linux中运行总会多出^M(Ctrl+M)命令,从而解析错误
6.1.4. 文件格式转换
dos2unix
,看名字知功能,用它可以完美解决上面的问题
下载软件包
sudo apt install dos2unix -y
进入插件所在目录
cd /root/.oh-my-zsh/custom/plugins/zsh-autosuggestions
将目录下的脚本文件都进行格式转换
find . -name "*.zsh" | xargs dos2unix -f
find . -name "*.sh" | xargs dos2unix -f
6.1.5. 重新加载配置文件
source /root/.zshrc
效果
这是效果(输入vi后按Tab)
6.2. 语法高亮
6.2.1. 插件安装
这个插件可以直接通过包管理安装
sudo apt install zsh-syntax-highlighting
6.2.2. 插件执行
将执行本插件脚本的代码添加到配置文件中
echo "source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> /root/.zshrc
6.2.3. 重新加载配置文件
source /root/.zshrc
效果
参考链接
更多推荐
所有评论(0)