Linux命令:zsh

Linux命令:zsh

zsh 命令

基本介绍

zsh(Z Shell) 是一款功能强大的 Unix shell,兼容 bash 并提供了许多高级特性,如命令补全、命令别名、路径扩展、拼写纠正、主题定制等。zsh 因其丰富的插件系统和高度可定制性而受到开发者和高级用户的喜爱。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://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 支持丰富的插件生态,如:

  • Oh My Zsh
  • Prezto
  • Antigen

实用技巧

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 的区别

特性zshbash
命令补全更强大、智能基本补全
路径扩展支持 ** 递归匹配有限支持
拼写纠正支持不支持
插件系统丰富有限
主题定制高度可定制基本定制
性能稍慢较快
兼容性兼容 bash标准

相关命令

命令说明
bashBourne-Again Shell
shBourne Shell
cshC Shell
tcshTENEX C Shell
kshKorn Shell

注意事项

  1. 安装:部分系统需要先安装 zsh(apt install zshdnf install zsh
  2. 配置文件:首次使用需要配置~/.zshrc
  3. 兼容性:zsh 兼容 bash 脚本,但某些 bash 特性可能需要调整
  4. 性能:zsh 的高级特性可能导致启动速度较慢
  5. 插件管理:建议使用 Oh My Zsh 管理插件和主题

总结

zsh是一款功能强大且高度可定制的 Unix shell,提供了命令补全、拼写纠正、插件系统等高级特性。它是开发者和高级用户的首选 shell,通过配置和插件可以打造个性化的开发环境。