正文:
zsh
是一种类似于 bash
、sh
、csh
等命令行解释器的 Unix
shell
。它是一种交互式的 shell
,用户可以在终端中输入命令并与操作系统进行交互。zsh
最初是为了扩展 bash
的功能而创建的,但现在已经成为了一种非常受欢迎的 shell
。
与 bash
相比,zsh
有许多优点,包括以下几个方面:
1. 自动补全:zsh
的自动补全功能比 bash
更强大。它可以根据当前光标位置和历史记录,自动推测出用户想输入的命令或参数,极大地提高了操作效率。
2. 主题和插件:zsh
具有丰富的主题和插件库,用户可以通过这些扩展来改善其外观和功能。
3. 强大的别名:zsh
支持复杂的别名,这些别名可以包含参数、条件和内嵌命令。
4. 可定制性:zsh
允许用户自定义其外观、行为和键绑定,以满足个人偏好和需求。
5. 强大的历史命令:zsh
的历史命令比 bash
更强大,可以实现更高级的搜索和过滤功能。
1、安装
运行如下命令即可安装。
apt
install
git
zsh
-y
刚刚安装的 zsh
非常简单,功能也比较有限。因此,我们需要安装 oh
-my
-zsh
,它提供了一套预先配置好的Zsh
配置文件、主题和插件,使得我们可以轻松地定制和管理 zsh
。
# curl
安装
sh
-c
"$(curl
-fsSL
https
://raw
.githubusercontent
.com
/ohmyzsh
/ohmyzsh
/master
/tools
/install
.sh
)"
# wget
安装
sh
-c
"$(wget
-O
- https
://raw
.githubusercontent
.com
/ohmyzsh
/ohmyzsh
/master
/tools
/install
.sh
)"
# fetch
安装
sh
-c
"$(fetch
-o
- https
://raw
.githubusercontent
.com
/ohmyzsh
/ohmyzsh
/master
/tools
/install
.sh
)"
# 卸载
# uninstall_oh_my_zsh
如果你的网络不好,可能无法下载以上命令。毕竟,这些命令是从 GitHub
上获取的。这种情况下,你可以在一台可以访问脚本的机器上将内容复制到一个新建的脚本中,然后进行安装。
2.配置
所有的配置修改后都需要执行:
source
~/.zshrc
其他配置
为了更好的使用 zsh
的功能,准备将历史记录的条数增大一点,编辑 ~/.zshrc
文件,添加如下内容。
# 修改 zcompdump
生成的文件目录
source
/etc
/profile
export
ZSH_COMPDUMP
=$ZSH
/cache
/.zcompdump
-$HOST
# 记录历史命令的文件
HISTFILE
=~/.history
# 内存中记录历史命令条数
HISTSIZE
=10000
# 历史文件中保存的历史命令数
SAVEHIST
=10000
# 不同的终端会话历史命令合并到同一历史文件
setopt
appendhistory
# 在 source
$ZSH
/oh
-my
-zsh
.sh
之前配置升级相关内容
# 始终回复否从不升级,可以通过 omz
update
进行更新
DISABLE_AUTO_UPDATE
=true
# 始终回复是并自动升级
#DISABLE_UPDATE_PROMPT
=true
使用 history
-f
可以查看命令运行的时间。
修改主题
zsh
有很多主题可选择,主题链接:https
://github
.com
/ohmyzsh
/ohmyzsh
/wiki
/Themes
选择 ~/.zshrc
文件,修改主题名称即可。
#ZSH_THEME
="robbyrussell
"
ZSH_THEME
="agnoster
"
这里可能报错:
anon
):12: character
not
in
range
在 ~/.zshrc
文件添加如下内容即可:
export
LC_ALL
=C
.UTF
-8
export
LANGUAGE
=C
.UTF
-8
export
LANG
=C
.UTF
-8
此外,可能还需要修改命令行的用户名或主机名。
全部隐藏
prompt_context
(){}
只隐藏主机
prompt_context
() {
if
[[ "$USER
" != "$DEFAULT_USER
" || -n
"$SSH_CLIENT
" ]]; then
prompt_segment
black
default
"%(!.%{%F
{yellow
}%}.)$USER
"
fi
}
只隐藏用户名
prompt_context
() {
if
[[ "$USER
" != "$DEFAULT_USER
" || -n
"$SSH_CLIENT
" ]]; then
prompt_segment
black
default
"%(!.%{%F
{yellow
}%}.)$HOST
"
fi
}
还可以限制显示的目录数,比如最大只显示三个:
prompt_dir
() {
prompt_segment
blue
$CURRENT_FG
'%3~'
}
添加插件
插件列表:https
://github
.com
/ohmyzsh
/ohmyzsh
/wiki
/Plugins
-Overview
这里只安装比较重要的两个插件:
zsh
-autosuggestions
插件:根据已经输入的命令,自动显示可能的补全建议
zsh
-syntax
-highlighting
插件:高亮显示命令行语句
# 安装 zsh
-autosuggestions
git
clone
https
://github
.com
/zsh
-users
/zsh
-autosuggestions
${ZSH_CUSTOM
:-~/.oh
-my
-zsh
/custom
}/plugin
s
/zsh
-autosuggestions
# 安装 zsh
-syntax
-highlighting
git
clone
https
://github
.com
/zsh
-users
/zsh
-syntax
-highlighting
.git
${ZSH_CUSTOM
:-~/.oh
-my
-zsh
/custom
}/plugins
/zsh
-syntax
-highlighting
然后编辑 ~/.zshrc
文件,找到 plugins
选项:
plugins
=(
zsh
-autosuggestions
zsh
-syntax
-highlighting
docker
z
per
-directory
-history
colored
-man
-pages
)
命令别名
以下是我的重命名,请根据自己需要进行设置。
# system
ctl
alias
syse
='sudo
systemctl
enable
--now
'
alias
sysd
='sudo
systemctl
disable
--now
'
alias
sysr
='sudo
systemctl
restart
'
alias
syss
='sudo
systemctl
status
'
# tmux
alias
tl
='tmux
ls
'
alias
tlw
='tmux
list
-windows
'
alias
tlp
='tmux
list
-panes
'
alias
tka
='tmux
kill
-server
'
alias
tks
='tmux
kill
-session
'
alias
ta
='tmux
a
-t
dev
|| tmux
new
-t
dev
'
# docker
alias
dp
='docker
ps
'
alias
dr
='docker
restart
'
alias
dl
='docker
logs
'
alias
dlf
='docker
logs
-f
'
alias
dei
='docker
exec
-it
'
alias
din
='docker
inspect
-f
"{{range
.NetworkSettings
.Networks
}}{{.IPAddress
}}{{end
}}"'
alias
runlike
='docker
run
--rm
-v
/var
/run
/docker
.sock
:/var
/run
/docker
.sock
assaflavie
/runlike
-p
'
# 清理相关
alias
dsd
='docker
system
df
'
alias
dcp
='docker
container
prune
'
alias
dvp
='docker
volume
prune
'
alias
dip
='docker
image
prune
'
alias
dsp
='docker
system
prune
'
alias
dspa
='docker
system
prune
-a
'
# other
alias
dh
='du
-h
./ -d
1' # 查看当前目录占用
alias
psg
='ps
aux
| grep
'
alias
ng
='netstat
-autnp
| grep
'
alias
wget
='wget
-c
' # 支持断点续传
alias
now
='date
"+%Y
-%m
-%d
%H
:%M
:%S
"' # 查看并格式化当前时间
alias
size
='f
(){ du
-sh
$1* | sort
-hr
; }; f
' # 查看文件/目录大小 - size
/
alias
sek
='f
(){ find
/ -name
$1; }; f
' # 在根目录查找文件 - sek
test
alias
sekc
='f
(){ find
./ -name
$1; }; f
' # 在当前目录查找文件 - sekc
test
alias
ipe
='curl
ipinfo
.io
/ip
' # 查看当前公网 ip
转载请注明:汇站网 » Zsh
安装与配置,是一项重要的任务