保证解决一切bug的命令行美化教程!
效果展示
先给大家看一下最终效果吧
emoji美化、每次打开时的欢迎语,anaconda环境提醒,还可以播报天气,是不是实用且美观?Linux(包括Windows Subsystem for Linux)和MacOS都能做到哦,下面我就来讲一下具体的步骤
配置过程
1.安装zsh
使用自己系统的包管理器安装zsh即可,例如ubuntu使用
sudo apt-get install zsh
CentOS使用
sudo yum -y install zsh
2.设置默认shell
不同用户的默认shell,是由/etc/passwd文件控制的,所以可以通过编辑passwd文件来改变默认的shell。
sudo vim /etc/passwd
在文件中修改root行和自己用户那一行,将/bin/bash修改为/bin/zsh,然后Esc,输入:wq,回车保存即可。
3.安装oh-my-zsh
oh-my-zsh是github上的一个开源项目,它可以方便的管理zsh的主题,插件,美化等等,但是由于raw.github.com经常因为一些DNS问题打不开,在这步推荐采用本地安装的方式。首先前往该项目的github地址:https://github.com/ohmyzsh/ohmyzsh/,下载zip文件或者使用git clone下载源码。
下载后进入ohmyzsh文件夹下的tools文件夹,可以看到有几个sh文件,对于没有安装的执行
sudo chmod a+x *.sh
./install.sh
即可。
安装完ohmyzsh时,如果你没有设置过默认的shell,会提醒你是否将默认shell切换为zsh,完成后就可以看到ohmyzsh的默认界面了。
4.安装字体
关于字体,大部分的文章都没有描述。问题出现在安装主题的时候,如果你是Ubuntu/CentOS,一定会出现这种情况
这 像 钻 石 吗?
这 像 锁 吗?
像个*哦!为了这个我特意仔细学习了Unicode的相关知识,出现这种情况是因为你的电脑上缺少包含这些图标的字体。不过我发现我的macbook一开始就能良好的显示这些图标,于是我开始从macOS的字体册里一个一个寻找,最终让我找到这个名为MesloLGS NF的字体,这个字体包含了许多常见的小图标,抱着在里面我也找到了锁、钻石等powerlevel10k所需要的图标。这个字体文件百度下载一个即可,我也把该文件上传到了百度网盘,有需要的也可以下载
(链接:https://pan.baidu.com/s/1a8tCsDDW1917Ce3fcgkxag 提取码:zxy1 )。
将该字体文件在你的linux系统中安装,如果是图形界面直接双击安装即可,如果是远程服务器的话,在本地windows上安装即可(毕竟一直用ssh进行连接)。
5.安装powerlevel10k主题
powerlevel10k是oh-my-zsh的一个主题,它是上个版本powerlevel9k的升级版,保留功能的同时响应更快速。它的github项目地址是https://github.com/romkatv/powerlevel10k,下载powerlevel10k到你的oh-my-zsh主题目录下
cd ~/.oh-my-zsh
git clone https://github.com/romkatv/powerlevel10k.git
现在修改ohmyzsh的配置文件
vim ~/.zshrc
将ZSH_THEME行修改为powerlevel10k/powerlevel10k(因为主题是在powerlevel10k文件夹下的powerlevel10k.zsh-theme),如下图所示。
保存并退出,刷新zsh配置文件
source ~/.zshrc
这个时候应该就会出现下图的界面,按照自己的喜好进行配置就可以了。如果一不小心关掉了这个界面,或者后面想重新修改也没关系,随时可以输入
p10k configure
来重新进行偏好设置。
6.anaconda部分(视情况配置)
如果之前就已经安装过anaconda,想达到文章开头显示当前环境的功能,只需要输入
conda init zsh
source ~/.zshrc
即可完成配置。
7.今天天气(视情况配置)
这部分内容属于我自己添加的,其实就是一个简单的curl来进行API调用。代码如下,需要手动修改的部分已经标注了出来
城市ID可从https://blog.youkuaiyun.com/wu9797/article/details/78768938 查找
#!/bin/zsh
#表示使用的是zsh命令行
weather_json=$(curl -s http://www.tianqiapi.com/api\?version=v61\&appid="你的APP ID"\&appsecret="你的API ID,需要在tianqiapi.com申请"\&cityid="你想要的城市ID,可以在百度查找")
#使用curl命令找到成都的天气,-s表示静默模式
name=`whoami`
city=`echo $weather_json | jq -r '.city'`
weather=`echo $weather_json | jq -r '.wea'`
temp_high=`echo $weather_json | jq -r '.tem1'`
temp_low=`echo $weather_json | jq -r '.tem2'`
wind_direction=`echo $weather_json | jq -r '.win'`
wind_speed=`echo $weather_json | jq -r '.win_speed'`
wet=`echo $weather_json | jq -r '.humidity'`
word="您好,$name,欢迎回来.今天$city的天气是$weather,气温最高是$temp_high度,最低是$temp_low度.风向是$wind_direct ion,风速是$wind_speed,湿度是$wet,希望您的工作顺心哦"
echo $word
编辑好这个文件,将其命名为begin.sh 将其放置在/usr/local/bin文件夹下,给该文件加上可执行权限
sudo chmod a+x begin.sh
然后再次编辑zshrc文件,在文件的末尾添加一行begin.sh
保存再次打开命令行即可。