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
查看当前已安装shell

cat /etc/shells

当前已安装shell

安装zsh(如果上面显示没有安装)

apt install zsh -y

查看并记录zsh安装路径

cat /etc/shells

zsh安装路径

设置zsh为默认shell

chsh -s /bin/zsh

重启系统

reboot

查看当前shell

echo $SHELL

成功更改为zsh
可以看到默认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退出,根据提示按yEnter保存

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

效果

语法高亮效果

参考链接

Logo

更多推荐