【Linux】新手还在用bash?老手已经用zsh起飞了!新手必看的zsh命令大全

以下是 zsh 中一些常用命令和功能,这些命令可以帮助你更高效地使用 zsh,提升你的命令行体验。


zsh入门

1. 基本命令

1.1 文件和目录操作
  • cd:切换目录。

    cd /path/to/directory
    cd ..          # 返回上一级目录
    cd -           # 返回上一个工作目录
    
  • ls:列出目录内容。

    ls -l          # 以长格式列出文件和目录
    ls -a          # 列出所有文件(包括隐藏文件)
    ls -h          # 以易读格式显示文件大小
    
  • mkdir:创建目录。

    mkdir mydir
    mkdir -p mydir/subdir  # 创建多级目录
    
  • rm:删除文件或目录。

    rm file.txt
    rm -r directory  # 递归删除目录
    
  • cp:复制文件或目录。

    cp file.txt /path/to/destination
    cp -r dir1 dir2  # 复制目录
    
  • mv:移动或重命名文件。

    mv file.txt /path/to/destination
    mv oldname newname  # 重命名文件
    

1.2 文件查看
  • cat:显示文件内容。

    cat file.txt
    
  • less:分页查看文件内容。

    less file.txt
    
  • head:显示文件的前几行。

    head -n 10 file.txt  # 显示前10行
    
  • tail:显示文件的最后几行。

    tail -n 10 file.txt  # 显示最后10行
    tail -f logfile.log  # 实时查看文件更新
    

1.3 系统信息
  • pwd:显示当前工作目录。

    pwd
    
  • df:显示磁盘使用情况。

    df -h
    
  • du:显示文件或目录的磁盘占用情况。

    du -sh directory  # 显示目录的总大小
    
  • ps:显示当前进程。

    ps aux
    
  • top:实时显示系统进程和资源使用情况。

    top
    
  • free:显示系统内存使用情况。

    free -h
    

2. zsh 特有功能

2.1 命令补全

zsh 提供了强大的命令补全功能,可以通过以下快捷键使用:

  • Tab:自动补全命令、文件名或路径。
  • Ctrl+X,然后按 Tab:显示所有可能的补全选项。
  • Ctrl+X,然后按 ?:显示当前命令的补全帮助。
2.2 历史命令
  • UpDown:浏览历史命令。
  • Ctrl+R:反向搜索历史命令。
  • Ctrl+G:退出搜索模式。
  • history:显示历史命令列表。
    history
    
2.3 别名和函数
  • 定义别名

    alias ll='ls -l'
    alias grep='grep --color=auto'
    
  • 定义函数

    my_function() {
        echo "Hello, $1!"
    }
    
2.4 插件和主题

如果你使用了 Oh My Zsh,可以通过插件和主题增强 zsh 的功能:

  • 插件:在 ~/.zshrc 中启用插件:

    plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
    
  • 主题:设置 zsh 的提示符主题:

    ZSH_THEME="robbyrussell"
    

3. 高级功能

3.1 管道和重定向
  • 管道:将一个命令的输出传递到另一个命令的输入。

    cat file.txt | grep "pattern" | sort
    
  • 重定向:将输出保存到文件。

    cat file1.txt > file2.txt  # 覆盖文件
    cat file1.txt >> file2.txt  # 追加到文件
    
3.2 背景任务
  • 后台运行命令

    command &
    
  • 查看后台任务

    jobs
    
  • 将任务放到后台

    Ctrl+Z  # 暂停当前任务
    bg      # 将任务放到后台
    
3.3 条件语句
  • if 语句

    if [ -f file.txt ]; then
        echo "File exists!"
    else
        echo "File does not exist!"
    fi
    
  • for 循环

    for file in *.txt; do
        echo $file
    done
    

4. 常用快捷键

以下是一些在 zsh 中常用快捷键,可帮助你更高效地操作命令行:

4.1 行编辑快捷键
  • Ctrl+A:光标移动到行首。
  • Ctrl+E:光标移动到行尾。
  • Ctrl+B:光标向左移动一个字符。
  • Ctrl+F:光标向右移动一个字符。
  • Ctrl+P:向上历史命令。
  • Ctrl+N:向下历史命令。
  • Ctrl+D:删除当前光标后的字符。
  • Ctrl+K:从光标位置到行尾的内容被删除。
  • Ctrl+U:删除从光标位置到行首的内容。
  • Ctrl+W:删除光标前的一个单词。
  • Ctrl+Y:粘贴之前删除的内容。
  • Ctrl+T:交换光标前的两个字符。
4.2 命令历史快捷键
  • Ctrl+R:反向搜索历史命令。
  • Ctrl+G:退出搜索模式。
  • Ctrl+P:向上历史命令。
  • Ctrl+N:向下历史命令。
4.3 文件和目录操作快捷键
  • Ctrl+XCtrl+L:列出当前目录下的所有文件和文件夹。
  • Ctrl+XCtrl+D:列出当前目录下的所有文件和文件夹,并显示详细信息。
  • Ctrl+XCtrl+I:显示当前目录下文件和文件夹的简要列表。
  • Ctrl+XCtrl+C:显示当前目录下隐藏文件和文件夹的简要列表。
  • Ctrl+XCtrl+S:拼写检查当前路径。
  • Ctrl+XCtrl+P:显示当前路径的绝对路径。
  • Ctrl+XCtrl+Q:显示当前路径的权限。
  • Ctrl+XCtrl+W:显示当前路径的所有者。
  • Ctrl+XCtrl+G:显示当前路径的组。
  • Ctrl+XCtrl+T:显示当前路径的类型。
  • Ctrl+XCtrl+K:显示当前路径的大小。
  • Ctrl+XCtrl+M:显示当前路径的修改时间。
4.4 其他快捷键
  • Ctrl+L:清屏。
  • Ctrl+C:终止当前运行的命令。
  • Ctrl+Z:暂停当前运行的命令。
  • Ctrl+XCtrl+U:打开或关闭自动补全。
  • Ctrl+XCtrl+R:重新读取当前目录下的所有文件和文件夹。
  • Ctrl+XCtrl+H:显示当前目录下文件和文件夹的隐藏属性。
  • Ctrl+XCtrl+B:显示当前目录下文件和文件夹的基本属性。
  • Ctrl+XCtrl+Y:显示当前目录下文件和文件夹的类型。
  • Ctrl+XCtrl+N:显示当前目录下文件和文件夹的所有属性。
  • Ctrl+XCtrl+E:使用编辑器打开当前路径。

5. 实用命令组合

5.1 查找文件
find . -name "*.txt"  # 查找当前目录下所有扩展名为 .txt 的文件
5.2 替换文件内容
sed -i 's/old/new/g' file.txt  # 替换文件中的内容
5.3 监控文件变化
watch "ls -l"  # 定期刷新命令的输出
5.4 批量重命名文件
for file in *.txt; do
    mv "$file" "${file%.txt}.md"
done

6.命令自动纠正

6.1 启用自动纠正功能

在 zsh 中,correction 功能用于自动纠正拼写错误的命令或路径。它通过 setopt 命令来启用或配置:

setopt correct
启用自动纠正功能,但会在纠正前提示用户是否接受纠正。例如:

zsh: correct 'eixt' to 'exit' [nyae]?

在 zsh 中,nyae 是一个提示符,用于命令自动纠正功能。当 zsh 检测到你输入的命令可能存在拼写错误时,它会提示你是否需要更正命令。nyae 是一个选项提示,具体含义如下:

  • n:表示“no”,拒绝更正。
  • y:表示“yes”,接受更正。
  • a:表示“abort”,中止当前命令。
  • e:表示“edit”,进入编辑模式,手动修改命令。

例如,如果你输入了一个错误的命令 lls,zsh 会提示:

zsh: correct 'lls' to 'ls' [nyae]?

你可以根据提示选择操作:

  • 输入 y,接受更正并执行 ls 命令。
  • 输入 n,拒绝更正并保留原命令。
  • 输入 a,中止当前命令。
  • 输入 e,进入编辑模式,手动修改命令。

setopt correctall
启用自动纠正功能,但不会提示用户,直接执行纠正后的命令。例如:

zsh: correct 'eixt' to 'exit'? y

它会直接执行 exit 命令,而不会等待用户确认。

永久启用 correction 功能
~/.zshrc 文件中,添加以下内容之一:

setopt correct       # 启用纠正功能,但会提示用户

或者:

setopt correctall    # 启用纠正功能,不会提示用户
6.2 如何禁用 correction 功能?

禁用 correction 功能
如果你不想使用纠正功能,可以在 ~/.zshrc 文件中添加以下内容:

unsetopt correct

或者直接删除或注释掉 setopt correctsetopt correctall


6.3 关于 ENABLE_CORRECTION="true"

ENABLE_CORRECTION="true" 并不是 zsh 或 Oh My Zsh 的标准配置选项。如果你在某些地方看到这个配置,可能是某些自定义脚本或主题中使用的变量,而不是 zsh 的内置功能。

在标准的 zsh 和 Oh My Zsh 配置中,应该使用 setopt correctsetopt correctall 来启用或禁用纠正功能。


zsh进阶

Oh My Zsh

1. 安装 Oh My Zsh

Oh My Zsh 是一个开源的 zsh 配置管理框架,提供了丰富的插件和主题,可以显著提升 zsh 的使用体验。安装 Oh My Zsh 的命令如下:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

如果你在国内,可以使用 Gitee 的镜像:

sh -c "$(curl -fsSL https://gitee.com/shmhlsy/oh-my-zsh-install.sh/raw/master/install.sh)"
2. 配置主题

Oh My Zsh 提供了许多主题,可以通过编辑 ~/.zshrc 文件来启用。例如,启用默认的 robbyrussell 主题:

ZSH_THEME="robbyrussell"

如果你想要一个更高级的主题,比如 powerlevel10k,可以先安装它:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

然后在 ~/.zshrc 文件中设置:

ZSH_THEME="powerlevel10k/powerlevel10k"

保存后,运行 source ~/.zshrc 使配置生效。

3. 安装插件

Oh My Zsh 的插件可以扩展 zsh 的功能,以下是一些常用的插件:

  • 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://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
    
  • zsh-completions:增强命令补全功能。

    git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-completions
    

~/.zshrc 文件中启用插件:

plugins=(git zsh-autosuggestions zsh-syntax-highlighting zsh-completions)
4. 自动补全功能

Oh My Zsh 提供了强大的自动补全功能,可以通过以下方式使用:

  • Tab 键:自动补全命令、文件名或路径。
  • Ctrl+X,然后按 Tab:显示所有可能的补全选项。
5. 其他常用命令
  • 更新 Oh My Zsh
    upgrade_oh_my_zsh
    
  • 查看主题列表
    cat ~/.oh-my-zsh/themes/* | grep ZSH_THEME
    
  • 配置 Powerlevel10k 主题
    p10k configure
    
    这个命令会启动一个交互式配置向导,帮助你自定义提示符的外观。
6. 注意事项
  • 如果主题或插件显示不正确,可能需要安装支持的字体,如 Nerd Fonts
  • 在 VSCode 中使用 zsh 时,可以通过设置 terminal.integrated.defaultProfile.linuxzsh 来将 zsh 设置为默认终端。

通过以上配置,你可以充分利用 Oh My Zsh 的强大功能,提升你的终端使用体验。

快速启动

在 zsh 中,直接在 .zshrc 文件中使用 source 命令加载插件(如 zsh-autosuggestions)和将插件名称添加到 Oh My Zsh 的 plugins 数组中,这两种方法都可以加载插件,但它们在启动速度上可能会有所不同。

1. 直接在 .zshrc 文件中使用 source 命令

直接在 .zshrc 文件中使用 source 命令加载插件,可以更早地加载插件,从而在 zsh 启动时立即生效。这种方法的优点是:

  • 启动速度快:插件在 zsh 启动时直接加载,不需要等待 Oh My Zsh 的初始化过程。
  • 灵活性高:你可以更精细地控制插件的加载顺序和方式。

示例:

# Enable command autosuggestions
source ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh

# Enable syntax highlighting
source ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
2. 将插件名称添加到 Oh My Zsh 的 plugins 数组中

将插件名称添加到 Oh My Zsh 的 plugins 数组中,Oh My Zsh 会在其初始化过程中自动加载这些插件。这种方法的优点是:

  • 简化配置:你只需要在 plugins 数组中添加插件名称,而不需要手动指定插件的路径。
  • 兼容性好:Oh My Zsh 会处理插件的加载和初始化,确保插件与 Oh My Zsh 的其他功能兼容。

示例:

plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
性能比较
  • 直接使用 source 命令:这种方法通常会稍微快一些,因为插件在 zsh 启动时直接加载,不需要等待 Oh My Zsh 的初始化过程。
  • 使用 plugins 数组:这种方法可能会稍微慢一些,因为 Oh My Zsh 需要额外的时间来解析和加载插件。
推荐做法

如果你希望插件在 zsh 启动时立即生效,并且希望有更高的灵活性,建议直接在 .zshrc 文件中使用 source 命令加载插件。

如果你希望简化配置,并且希望 Oh My Zsh 处理插件的加载和初始化,建议将插件名称添加到 Oh My Zsh 的 plugins 数组中。

总结

直接在 .zshrc 文件中使用 source 命令加载插件通常会比将插件名称添加到 Oh My Zsh 的 plugins 数组中启动更快。然而,这种差异通常很小,可以根据你的个人偏好和需求选择合适的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁星知微

能帮助到你是我最大的荣幸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值