终端 zsh 配置指南
一、终端代理设置
建议加上,在进行通过终端的下载、更新系统、conda
下载或者git clone
时,能走代理来提高下载速度。但是docker
需要单独配置一套代理。zsh
和bash
都可以用这种方式。
1 | kate ~/.zshrc |
bash
需要在.bashrc
中修改。
- 在
.zshrc
中添加以下内容:
1 | # where proxy |
根据实际情况填写自己的代理端口。
1 | source ~/.zshrc |
通过在终端输入proxy
或者noproxy
来开启或关闭代理。
输入下面指令,可以查看终端代理地址:
1 | env | grep -i proxy |
二、zsh配置
2.1 切换 zsh 为默认终端
要确保已经安装了zsh
:
1 | chsh -s $(which zsh) |
通常要重启系统才会生效。
验证默认shell
1 | echo $SHELL |
2.2 zsh prompt
Code | Info |
---|---|
%T | 系统时间(时:分) |
%* | 系统时间(时:分:秒) |
%D | 系统日期(年-月-日) |
%n | 用户名称(即:当前登陆终端的用户的名称,和whami命令输出相同) |
%B | 开始到结束使用粗体打印 |
%b | 开始到结束使用粗体打印 |
%U | 开始到结束使用下划线打印 |
%u | 开始到结束使用下划线打印 |
%d | 你当前的工作目录 |
%~ | 你目前的目录相对于~的相对路径 |
%M | 计算机的主机名 |
%m | 计算机的主机名(在第一个句号之前截断) |
%l | 你当前的tty |
%F{色码} | 用来设定某个颜色的开始 |
%f | 用来设定成预设的样式, 也可以说是设定好的颜色结束 |
2.2.1推荐配置
关于自定义git prompt
。参考这两篇文章:
关于自定义conda prompt
。参考这篇论坛:
- how to modify the anaconda environment prompt in zsh?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32# ~/.zshrc
# Find and set branch name var if in git repository.
function git_branch_name()
{
branch=$(git symbolic-ref HEAD 2> /dev/null | awk 'BEGIN{FS="/"} {print $NF}')
if [[ $branch == "" ]];
then
:
else
echo '- ('$branch')'
fi
}
# Enable substitution in the prompt.
setopt prompt_subst
precmd_get_conda_env_name() {
if [[ -n $CONDA_PREFIX ]]; then
if [[ $(basename $CONDA_PREFIX) == "miniconda3" ]]; then
CONDA_ENV="base"
else
CONDA_ENV="$(basename $CONDA_PREFIX)"
fi
else
CONDA_ENV=""
fi
}
precmd_functions+=( precmd_get_conda_env_name )
precmd_update_prompt() {
PROMPT=$'\n'"%B%F{119}[%F{green}%D{%m/%d %H:%M}%F{119}] %F{red}%n%F{blue}@%F{yellow}%m%F{black}:%F{cyan}%~%B%F{70}$(git_branch_name)"$'\n'"%F{magenta}$CONDA_ENV%F{119} ➜ %f%b"
}
precmd_functions+=( precmd_update_prompt )
2.3 插件配置
备份(避免配置失败,最好备份下):
1
cp ~/.zshrc ~/.zshrc.backup
创建配置文件夹:
1 | mkdir -p .zsh/plugins |
1 | mv .zshrc .zsh/ |
1 | mv .zsh_history .zsh/ |
注:若没有.zsh_history
,那么需要用touch
指令创建。
1 | touch .zsh_history |
然后编辑文件夹
.zsh
中的.zshrc
,加上:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17### ZSH HOME
export ZSH=$HOME/.zsh
### ---- history config ----------
export HISTFILE=$ZSH/.zsh_history
# How many commands zsh will load to memory.
export HISTSIZE=10000
# How maney commands history will save on file.
export SAVEHIST=10000
# History won't save duplicates.
setopt HIST_IGNORE_ALL_DUPS
# History won't show duplicates on search.
setopt HIST_FIND_NO_DUPS安装插件:
进入安装插件的目录:
1 | cd ~/.zsh/plugins |
插件一:
1 | git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git |
插件二:
1 | git clone https://github.com/zsh-users/zsh-autosuggestions.git |
插件三:
1 | git clone https://github.com/zsh-users/zsh-completions.git |
在
.zshrc
copy中添加:1
2
3
4
5
6
7
8
9
10source $ZSH/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh
fpath=($ZSH/plugins/zsh-completions/src $fpath)
# zsh-autosuggestions:config
source $ZSH/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#ff00ff,bg=cyan,bold,underline"
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20
# end config链接:
最后就是创建符号链接,这样我们就可以通过更改~/.zshrc
Copy来同步更改.zsh/.zshrc
Copy配置文件了。首先需要确认~
目录下没有.zshrc
文件,如果有,就rm .zshrc
。
此时可以开始创建符号链接了:
1 | ln -s ~/.zsh/.zshrc ~/.zshrc |
重新加载配置文件:
1 | source ~/.zshrc |
可以通过ls -la
来查看是否链接成功。
三、问题汇总
3.1 历史命令问题
出现这种情况zsh: corrupt history file /home/sky/.zsh/.zsh_history
。有的时候系统因为默写原因强行启动的时候会破坏zsh的历史文件。
解决办法:
1 | cp ~/.zsh_history ~/.zsh_history_backup |
如果上述步骤没有解决问题,可能是因为.zsh_history文件严重损坏。在这种情况下,需要放弃旧的历史记录并创建一个新的文件。
3.2 安装 oh my zsh 可能会出现的问题
注意: 如果是安装oh my zsh
可能会出现下面的问题:
1.发现安装完oh my zsh
后终端中有些命令不能使用:
编辑.zshrc
发现里面内容都被替换掉了,之前的配置内容都被转移到一个叫.zshrc.pre-oh-my-zsh
文件中。
- Title: 终端 zsh 配置指南
- Author: loskyertt
- Created at : 2024-07-19 21:40:05
- Updated at : 2024-11-13 03:07:10
- Link: https://redefine.ohevan.com/2024/07/19/zsh配置/
- License: This work is licensed under CC BY-NC-SA 4.0.