不想了解的读者可直接跳过
学过操作系统的读者可能知道,shell提供了一个连接操作系统的接口,它从我们这里收集输入并且根据输入执行程序。当一个程序执行完成时,它会显示程序的输出。也就是说,shell相当于一个“壳子”,用于人机交互。我们常见的shell有:
那zsh有什么优点呢?
兼容bash,熟悉bash的用户可以轻松上手
有精彩绝伦的高亮功能
对颜值党来说,有诸多惊艳的主题(最吸引笔者这个菜鸡的地方)
自动更正
脚本语法相对简单
等等
查看当前的shell
echo $SHELL
安装zsh
这里使用 -y
,比如我们在安装的时候 需要我们输入 y 确认,这里就直接一行命令过了
apt update
// 如果有sudo的话跳过这一步
apt install sudo
sudo apt install zsh -y
切换到zsh, 同理,如果我们想要重新bash shell,chsh -s /bin/bash
可以切换到bash shell
chsh -s /bin/zsh
重启
reboot
但是有可能你重启之后发现,界面很丑,甚至不如原来的bash shell 好用,因此我们可以下载oh-my-zsh来借此美化我们的shell
oh-my-zsh的优点:
可以配置诸多主题,和便捷的插件
// 安装git,已有的可以跳过
apt install git
apt install curl
sh -c "$(curl -fsSL https://gitee.com/shmhlsy/oh-my-zsh-install.sh/raw/master/install.sh)"
如果这个主题你觉得不错,那就不用换了,但是下面这个p10k主题是目前最受欢迎的之一。
安装 p10k主题
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
在用户的home目录下修改.zshrc
文件, 修改主题"powerlevel10k/powerlevel10k", 保存并退出
// 有vim可以跳过
apt install vim
vim .zshrc
生效文件
source .zshrc
这个配置根据自己的喜好,可以去去Google或者Bing搜索自己喜欢的主题,b站也有响应的教程,尽量一次配置好。这里我展示一个简介的配置
至此完成oh-my-zsh的配置,当然读者也可以选择花哨一点的,但是个人比较喜欢简洁风格
如果读者不喜欢简洁风,我们可以使用命令重新对我们的powerlevel10k主题进行修改
p10k configure
prezto是oh-my-zsh的一个分支,基本上已对其重写,以使所有内容都更加干净和整洁,所以更加轻量(个人一直在使用)。
这个安装教程在github上也有我直接给出地址:
https://github.com/sorin-ionescu/prezto
按照相应的步骤操作即可(前提是安装了zsh),由于是github,可能需要科学上网,读者如果对自己的网络非常自信的话,直接去github。这里笔者给出搬运的教程
在用户的home目录下
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
chsh -s /bin/zsh
新建一个zsh terminal 查看结果,也是相对比较简洁好用,而且相对于oh-my-zsh
既然我们换了一种shell外壳,环境变量的配置也会有些许相应的改变,这里以配置golang语言的环境变量等为例
在用户的home目录下
sudo wget https://golang.google.cn/dl/go1.17.5.linux-amd64.tar.gz
sudo tar xfz go1.18.5.linux-amd64.tar.gz -C /usr/local
sudo vim .zshrc
,在后面添加以下代码,保存退出export GOROOT=/usr/local/go
export GOPATH=$HOME/gowork
export GOBIN=$GOPATH/bin
export PATH=$GOPATH:$GOBIN:$GOROOT/bin:$PATH
.zshrc
文件中配置的环境变量生效 source .zshrc
go env
重启一个zsh 终端,再次输入go env
命令测试
新建一个main.go
touch main.go
vim main.go
代码如下
package main
import "fmt"
func main() {
fmt.Println("hello, 你好")
}
go run main.go
至此,我们完成了Ubuntu对zsh的一些相应的配置