1 安装zsh
1:检查
1、首先,查看一下你系统里所有的shell
cat /etc/shells
这里我是已经装了zsh,所以有zsh
2、安装zsh
apt install zsh #安装zsh
然后将zsh设置成默认shell,但好像没什么用,还是要输入zsh命令才会进zsh,回到bash就输入直接在终端输入bash
chsh -s /bin/zsh
2 安装oh-my-zsh
zsh是shell脚本,oh-my-zsh是zsh的配置,我们要是自己配置zsh的配置的话会比较麻烦,好在github上有大佬制作了一个配置文件,“oh-my-zsh”,这是目前zsh中最流行的一个配置了。
(如果没装git请 :apt install git)
一键式安装方法
wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
也可以去zsh的github看一下
如果安装成功出现如下:
并且会在~目录出现一个.zshrc文件,类似.bashrc文件
如果下载不成功,试试执行这个命令
然后再~目录会出现一个.zshrc文件
该文件开始只有以下几行,其他都是注释,.zshrc文件内容如下
export ZSH="$HOME/.oh-my-zsh"
# 主题
ZSH_THEME="robbyrussell"
# 插件
plugins=(git)
source $ZSH/oh-my-zsh.sh
只需注意主题和插件两行即可
主题:可以更改终端样式
默认的robbyrussell主题如下:
可以去~/.oh-my-zsh/thems目录查看已有的主题,可以替换成你想要的主题
比如换成cloud主题,就把.zshrc文件修改成:
export ZSH="$HOME/.oh-my-zsh"
# 主题
ZSH_THEME="cloud"
# 插件
plugins=(git)
source $ZSH/oh-my-zsh.sh
然后执行
source ~/.zshrc
可以看到主题已经更改
zsh插件
一般安装语法高亮zsh-syntax-highlighting 和历史命令建议zsh-autosuggestions两个插件
#zsh-autosuggestions 命令行命令键入时的历史命令建议
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
#zsh-syntax-highlighting 命令行语法高亮插件
git clone https://gitee.com/Annihilater/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
看命令可以知道,是先下载,然后把插件放到~/.oh-my-zsh/custom}/plugins这个目录下
安装完成,可以在~/.oh-my-zsh/custom/plugins目录可以看到下载好的两个主题,custom应该是我们自己额外下的插件放置目录,自带的插件在~/.oh-my-zsh/plugins目录小,比如说git
让插件生效
去.zshrc插件plugins增加如下内容:
export ZSH="$HOME/.oh-my-zsh"
# 主题
ZSH_THEME="robbyrussell"
# 插件
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
z
)
source $ZSH/oh-my-zsh.sh
一些插件介绍
1. git
- 功能:提供许多方便的别名和函数,用于常见的 Git 操作。
- 特点:例如,可以使用
gco
来代替git checkout
,gcl
代替git clone
等。
2. zsh-autosuggestions
- 功能:基于您的历史命令自动建议命令。
- 特点:当您开始输入命令时,它会显示匹配的历史命令作为建议。
3. zsh-syntax-highlighting
- 功能:为您输入的命令提供实时语法高亮。
- 特点:帮助您快速识别命令的正确性,如高亮正确的命令和未找到的命令。
4. zsh-history-substring-search
这个插件好像没啥用,前面的autosuggestions好像有他的功能
安装:git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search
- 功能:允许您通过输入部分字符串来搜索历史命令。
- 特点:使用方向键浏览匹配的历史命令。
不装这个插件可以直接输入history 列出历史用过的命令
5. z
- 功能:根据您的历史记录,快速跳转到最常访问的目录。
- 特点:无需记住长路径,只需输入部分目录名即可快速导航。
- 基本使用:一旦安装,
z
将开始跟踪您访问的目录。使用命令z [目录名的一部分]
快速跳转到该目录。例如,如果您经常访问/home/user/Documents/projects
,只需输入z proj
即可跳转到该目录。 - 选项:
z
提供了一些额外的选项,如-l
列出所有跟踪的目录及其“权重”。
在增加两个配置
# 启动错误命令自动更正
ENABLE_CORRECTION="true"
# 在命令执行的过程中,使用小红点进行提示
COMPLETION_WAITING_DOTS="true"
这两行配置是用于 Zsh 的设置,它们控制了 Zsh 的一些行为特性:
1. 启动错误命令自动更正 (ENABLE_CORRECTION="true"
)
这个设置用于启用 Zsh 的命令自动更正功能。当您设置为 true
时,如果您输入了一个拼写错误的命令,Zsh 会尝试找到最接近的正确命令,并给出建议。
- 例子: 如果您误输入
lsit
而不是ls
,Zsh 会提示是否指的是ls
。它会显示一个消息,如zsh: correct 'lsit' to 'ls' [nyae]?
,您可以选择接受更正 (y),忽略 (n),编辑命令行 (a) 或取消 (e)。
这个功能特别有用,尤其是在快速输入命令且可能出现打字错误时,它可以帮助减少错误。
2. 在命令执行的过程中,使用小红点进行提示 (COMPLETION_WAITING_DOTS="true"
)
这个设置使得在您等待一个命令的自动补全建议时,Zsh 会显示一系列小红点来表示正在进行的过程。
- 工作方式: 当您开始输入命令,并且 Zsh 正在尝试自动补全时,会出现小红点提示。这个特性在处理需要一些时间来生成补全选项的命令时特别有用,例如当有一个大型目录或复杂的补全逻辑时。
这两个选项都是为了提高 Zsh 使用的方便性和用户体验。ENABLE_CORRECTION
增加了容错性,而 COMPLETION_WAITING_DOTS
通过视觉反馈提升了用户界面的互动性。您可以根据个人喜好决定是否启用这些功能。要启用或禁用它们,只需将对应的行添加到您的 ~/.zshrc
配置文件中,并重新加载配置(source ~/.zshrc
)或重启终端。
最终.zshrc文件内容如下:
export ZSH="$HOME/.oh-my-zsh"
# 启动错误命令自动更正
ENABLE_CORRECTION="true"
# 在命令执行的过程中,使用小红点进行提示
COMPLETION_WAITING_DOTS="true"
# 主题
ZSH_THEME="robbyrussell"
# 插件
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
z
extract
)
source $ZSH/oh-my-zsh.sh
3 安装powerlevel10k
powerlevel10k是一个很强大的zsh主题,可能是zsh使用最多的主题,需要另外下载
git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
下载完,就可以看到~/.oh-my-zsh/custom/themes目录多了powerlevel10k文件夹
编辑 ~/.zshrc 设置ZSH_THEME="powerlevel10k/powerlevel10k
"
如下:
export ZSH="$HOME/.oh-my-zsh"
# 启动错误命令自动更正
ENABLE_CORRECTION="true"
# 在命令执行的过程中,使用小红点进行提示
COMPLETION_WAITING_DOTS="true"
# 主题
ZSH_THEME="powerlevel10k/powerlevel10k"
# 插件
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
z
extract
)
source $ZSH/oh-my-zsh.sh
然后source ~/.zshrc生效一下,可以看到主题已经改变,如下:
4 配置powerlevel10k
在进一步配置
输入p10k configure命令
p10k configure
会冒出一些选项让你选择,根据提示(喜好)选择1234或yes、no
比如一开始会问你能不能看见一些图标,一般是乱码,你可以选择安装额为的字体来支持显示这些图标,也可以选择输入n表示看不见这些图案,那么powerlevel10k就不会给你显示图案,图案有无问题不大
如果出现
[ERROR] p10k configure: terminal size too small; must be at least 47 columns by 14 lines
你就把终端拉的宽一点,往上拉即可
第1步:
问你能不能看到钻石,如实回答,输入y
第2步:问你像不像把锁,我这里没装字体,看不到,就输入n
3,选择自己喜欢的提示样式,prompt指的下面显示的路径~/src/master这种东西,喜欢哪个选哪个,我选的2
4,我选的1
5, 提示颜色,我选的2Light
6,时间显示,我选的n , 没必要显示
7,提示用什么划分,我选的这种三角箭头分割,选1
8,提示头,我选的1这种样式,看上去酷一点
9,提示尾部tail样式,喜欢哪个选哪个,我选的1
10,提示行数,也就是终端输入命令是用两行还是一行,我选的2,两行好一些,第一行显示当前路径提示,第二行显示自己输的命令
11, 连接样式,我选1,不连接,连的不好看我感觉
12,选1简洁点
13,选2,稍微空一点,不要太挤了
14,简洁,我选1,选2的话会多一些介词提示,什么took, on ,with之类的
15,选yes, 简洁,这个没太明白啥意思,影响不大,简洁王道
16,选1
17,输入y
大功告成!!!
此时zshrc文件会多了一些内容,~目录多了一个p10k.zsh文件,就是关于powerlevel10k的一些设置
5 安装MesloLGS NF字体
这一步可以不要,为了能显示图案可以看这一步
要在 Ubuntu 中安装 MesloLGS NF 字体,可以使用以下步骤:
-
打开终端:按下
Ctrl + Alt + T
组合键来打开终端。 -
使用以下命令创建一个目录,以便稍后存放字体文件
mkdir -p ~/.local/share/fonts
这会在你的用户主目录下创建一个名为
.local/share/fonts
的目录,用于存储用户自定义字体。不建后面也会自动创建 -
使用
wget
命令下载 MesloLGS NF 字体文件。你可以使用以下命令:wget -P ~/.local/share/fonts https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf wget -P ~/.local/share/fonts https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf wget -P ~/.local/share/fonts https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf wget -P ~/.local/share/fonts https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf
这将从 GitHub 下载 MesloLGS NF 字体的四个变体,并保存到
~/.local/share/fonts
目录中。 -
更新字体缓存:运行以下命令来更新系统的字体缓存,以使新安装的字体生效
fc-cache -f -v
-
确认字体已安装:你可以运行以下命令来检查是否成功安装了 MesloLGS NF 字体:
fc-list | grep "MesloLGS NF"
如果成功安装,你应该能够看到 MesloLGS NF 字体的信息。
现在,你已经成功在 Ubuntu 中安装了 MesloLGS NF 字体,你可以在各种应用程序中选择并使用这些字体。例如,在终端设置中,你可以选择 MesloLGS NF 字体作为终端字体。
但奇怪的是,我在vscode选择终端用这个字体,结果终端字体间距都很大,只好作罢
还是只能用默认的字体,把 MesloLGS NF删掉
5 zsh其他设置
把vscode终端改成zsh
在setting.json文件设置
"terminal.integrated.shell.linux": "/bin/zsh", // 对于 Linux
zshrc 添加环境变量
可以先进bash,输入echo $PATH 看看都有什么环境变量
然后再进zsh 输入echo $PATH 看看相对bash缺少什么环境变量,就把之添加进去
export PATH=/root/miniconda3/bin:/usr/local/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:$PATH
如果发现zsh没有ls rm 这种命令,看看是不是环境变量有问题, ls rm这种都是 /usr/bin目录下的
支持中文:
在zshrc文件添加
export LC_CTYPE="C.UTF-8"
export LC_ALL="C.UTF-8"
-----------------------------------------------------------------------------------
参考: