zsh 命令
基本介绍
zsh(Z Shell) 是一款功能强大的 Unix shell,兼容 bash 并提供了许多高级特性,如命令补全、命令别名、路径扩展、拼写纠正、主题定制等。zsh 因其丰富的插件系统和高度可定制性而受到开发者和高级用户的喜爱。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a
语法
zsh[选项][脚本文件]
启动选项
| 选项 | 说明 |
|---|
-c <command> | 执行指定的命令后退出 |
-i | 启动交互式 shell |
-l | 作为登录 shell 启动 |
-r | 启动受限 shell |
-s | 从标准输入读取命令 |
-v | 显示读取的输入行 |
-x | 执行命令前显示命令及其参数 |
-f | 不读取启动文件 |
-o <option> | 设置 shell 选项 |
常用内置命令
文件和目录操作
| 命令 | 说明 |
|---|
cd <dir> | 切换目录 |
pwd | 显示当前目录 |
mkdir <dir> | 创建目录 |
rmdir <dir> | 删除空目录 |
rm <file> | 删除文件或目录 |
cp <src> <dst> | 复制文件 |
mv <src> <dst> | 移动或重命名文件 |
变量和环境
| 命令 | 说明 |
|---|
export <var>=<value> | 设置环境变量 |
set | 显示所有变量和函数 |
unset <var> | 删除变量 |
env | 显示环境变量 |
echo <text> | 输出文本 |
read <var> | 读取用户输入 |
流程控制
| 命令 | 说明 |
|---|
if ... then ... fi | 条件判断 |
case ... esac | 多条件分支 |
for ... do ... done | 循环 |
while ... do ... done | 条件循环 |
until ... do ... done | 直到条件满足 |
break | 跳出循环 |
continue | 继续下一次循环 |
高级特性
| 命令 | 说明 |
|---|
alias <name>=<command> | 设置别名 |
unalias <name> | 删除别名 |
functions <name> { ... } | 定义函数 |
autoload <function> | 自动加载函数 |
compdef | 定义补全规则 |
使用示例
1. 启动交互式 shell
zsh
2. 执行单个命令
zsh-c"echo 'Hello World'"
3. 执行脚本文件
zshscript.sh
4. 作为登录 shell 启动
zsh-l
5. 调试脚本(显示执行的命令)
zsh-xscript.sh
6. 不读取启动文件启动
zsh-f
7. 设置别名
aliasll='ls -la'aliasgst='git status'
8. 路径扩展
echo~/Documents/*.txt
9. 递归路径匹配
echo**/*.py
10. 拼写纠正
sl# 自动纠正为 ls
配置文件
系统级配置
/etc/zsh/zshrc- 全局 zsh 配置/etc/zsh/zshenv- 全局环境变量配置
用户级配置
~/.zshrc- 用户 zsh 配置~/.zshenv- 用户环境变量配置~/.zprofile- 用户登录 shell 配置~/.zlogin- 用户登录时执行的命令~/.zlogout- 用户退出时执行的命令
特殊变量
| 变量 | 说明 |
|---|
$0 | 脚本名 |
$1-$9 | 位置参数 |
$* | 所有位置参数(作为单个字符串) |
$@ | 所有位置参数(作为独立字符串) |
$# | 参数数量 |
$$ | 当前进程 ID |
$? | 上一条命令的退出状态 |
$PATH | 命令搜索路径 |
$HOME | 用户主目录 |
高级特性
命令补全
zsh 提供强大的命令补全功能,支持:
路径扩展
*- 匹配任意字符**- 递归匹配任意目录~<user>- 匹配指定用户的主目录
别名系统
- 简单别名:
alias ll='ls -la' - 全局别名:
alias -g ... - 后缀别名:
alias -s ...
插件系统
zsh 支持丰富的插件生态,如:
实用技巧
1. 安装 Oh My Zsh
sh-c"$(curl-fsSLhttps://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
2. 设置默认 shell
chsh-s/bin/zsh
3. 查看命令历史
history
4. 反向搜索命令历史
Ctrl+R
5. 目录跳转
cd~/Documentscd..# 返回上级目录cd-# 返回上一次所在目录
6. 命令替换
echo"当前目录:$(pwd)"
7. 管道和重定向
ls-la|grep".txt">output.txt
与 bash 的区别
| 特性 | zsh | bash |
|---|
| 命令补全 | 更强大、智能 | 基本补全 |
| 路径扩展 | 支持 ** 递归匹配 | 有限支持 |
| 拼写纠正 | 支持 | 不支持 |
| 插件系统 | 丰富 | 有限 |
| 主题定制 | 高度可定制 | 基本定制 |
| 性能 | 稍慢 | 较快 |
| 兼容性 | 兼容 bash | 标准 |
相关命令
| 命令 | 说明 |
|---|
bash | Bourne-Again Shell |
sh | Bourne Shell |
csh | C Shell |
tcsh | TENEX C Shell |
ksh | Korn Shell |
注意事项
- 安装:部分系统需要先安装 zsh(
apt install zsh或dnf install zsh) - 配置文件:首次使用需要配置
~/.zshrc - 兼容性:zsh 兼容 bash 脚本,但某些 bash 特性可能需要调整
- 性能:zsh 的高级特性可能导致启动速度较慢
- 插件管理:建议使用 Oh My Zsh 管理插件和主题
总结
zsh是一款功能强大且高度可定制的 Unix shell,提供了命令补全、拼写纠正、插件系统等高级特性。它是开发者和高级用户的首选 shell,通过配置和插件可以打造个性化的开发环境。