写点什么

Kubectl_ 好用的命令行工具:oh-my-zsh_ 技巧和窍门

作者:琦彦
  • 2022 年 7 月 24 日
  • 本文字数:3970 字

    阅读完需:约 13 分钟

Kubectl_好用的命令行工具:oh-my-zsh_技巧和窍门

Zsh 技巧和窍门

在 unix/linux 操作系统环境中,我们会经常讨论 shell、终端和命令行接口。Bash 可能是最有名的 shell,但在 Mac 电脑中,Zsh 可能是最为流行的 shell 了。

什么是 Zsh?

Zsh 也被称为 z Shell,它扩展了 Bourne Shell (sh)的功能,提供了更新的特性以及对插件和主题的更多支持。从 2019 年的 MacOS Catalina 开始,Zsh 成为 Mac 电脑中默认的登录和交互式 shell。

安装 Zsh

安装 Oh My Zsh 前提条件:必须已安装 zsh

Mac

在 Mac 电脑上,你可以使用 Homebrew 来安装 Zsh。brew install zsh

Linux(Ubuntu)

# 1. 安装zshsudo apt-get install zsh# 2. 确认是否安装成功zsh --version# 3. 设置zsh为默认shellsudo chsh -s (which zsh)# 4. 注销重新登录
复制代码

Linux(Centos)

# 1. 安装zshsudo yum install zsh# 2. 确认是否安装成功zsh --version# 3. 设置zsh为默认shellsudo chsh -s (which zsh)# 4. 注销重新登录
# 查看系统当前 shellcat /etc/shells
复制代码


通过 yum 安装的 zsh 的版本是 5.0.2 的,而很多主题都要用到更高版本的 zsh,需要高版本可以使用源码安装


首先卸载 zsh


yum remove zsh
复制代码


然后编译吧


sudo yum update -ysudo yum install -y git make ncurses-devel gcc autoconf mangit clone -b zsh-5.7.1 https://github.com/zsh-users/zsh.git /tmp/zshcd /tmp/zsh./Util/preconfig./configuresudo make -j 20 install.bin install.modules install.fns
复制代码


设置成默认 shell


command -v zsh | sudo tee -a /etc/shellssudo chsh -s /usr/local/bin/zsh
复制代码


当安装完 Zsh 后,你也可以安装最流行的 Zsh 插件,oh-my-Zsh,这个插件有很多内置插件和主题,使用如下安装脚本:


sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
复制代码

手动安装

1.1 卸载低版本

# 卸载当前版本 sudo yum remove zsh
复制代码

1.2 下载源码

  • 源码:https://zsh.sourceforge.io/Arc/source.html


# 下载wget https://sourceforge.net/projects/zsh/files/zsh/5.8/zsh-5.8.tar.xz/download
# 解压tar xvf zsh-5.8.tar.xz
复制代码

1.3 编译安装

# 安装编译工具yum install gcc perl-ExtUtils-MakeMakeryum install ncurses-devel
# 进入源码目录cd zsh-5.8
# 执行配置# 默认安装在:/usr/local/bin/zsh./configure
# 编译和安装make && make install
# 添加信息 vim /etc/shells# 在最后一行加上:/usr/local/bin/zsh
复制代码

1.4 验证结果

# 切换shellchsh -s /usr/local/bin/zsh
# 查看版本信息 zsh --version# zsh 5.8 (x86_64-pc-linux-gnu)
复制代码

Zsh 基本命令

6 个鲜为人知的 Zsh 技巧和窍门

  1. take 命令

  2. 这个命令是 mkdir 和 cd 两个命令的组合。也可以根据需要生成中间目录。

  3. 指定命令查看历史

  4. 输入指定命令,再按向上箭头,可循环遍历以该命令开头的历史记录

  5. zmv

  6. 用 zmv 重命名大量文件。首先,运行 autoload zmv 来安装 zmv。然后执行如下命令:


   zmv '(*).(jpg|jpeg)' 'demo-1.2'
复制代码


  1. zcalc

  2. 在命令行中打开计算器,首先,运行 autoload zcalc 来安装 zcalc 。然后就可以执行 zcalc 命令。

  3. Ctrl-q

  4. 当你输入了一条长的命令,发现需要在其之前先执行一条命令时,就可以按 Ctrl-q 暂存当前命令,然后输入另外一条命令,当另外这条命令执行结束后,会自动重新填充好暂存的命令。

  5. ctrl-x-e

  6. 当你输入了一条很长的命令,发现命令中间有地方输入错误时,可以按 ctrl-x-e 将该命令拷贝到编辑器中进行编辑,编辑完后,保存退出即可。

好用的插件

要启用 zsh 的插件, 在~/.zshrc 中设置:


plugins=(git autojump last-working-dir tmux tmuxinator web-search fancy-ctrl-z themes)
复制代码


  • autojump

  • last-working-dir

  • tmux

  • tmuxinator

  • web-search

  • fancy-ctrl-z

安装 oh-my-zsh

  • 可以通过 curl 或 wget 两种方式来安装,用一条命令即可安装。



curl 安装

GitHub:

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
复制代码

Gitee ( 国内镜像 )

sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"
复制代码



wget 安装

GitHub:

sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
复制代码

Gitee ( 国内镜像 )

sh -c "$(wget -O- https://gitee.com/pocmon/mirrors/raw/master/tools/install.sh)"
复制代码




[root@master]/fly/k8s/shell/ohmyzsh# ./install.sh           Cloning Oh My Zsh...remote: Enumerating objects: 1280, done.remote: Counting objects: 100% (1280/1280), done.remote: Compressing objects: 100% (1236/1236), done.remote: Total 1280 (delta 24), reused 1230 (delta 24), pack-reused 0Receiving objects: 100% (1280/1280), 1.06 MiB | 1.23 MiB/s, done.Resolving deltas: 100% (24/24), done.From https://github.com/ohmyzsh/ohmyzsh * [new branch]      master     -> origin/masterBranch master set up to track remote branch master from origin.Already on 'master'/fly/k8s/shell/ohmyzsh
Looking for an existing zsh config...Found ~/.zshrc. Backing up to /root/.zshrc.pre-oh-my-zshUsing the Oh My Zsh template file and adding it to ~/.zshrc.
__ __ ____ / /_ ____ ___ __ __ ____ _____/ /_ / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ / /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / \____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ /____/ ....is now installed!

Before you scream Oh My Zsh! look over the `.zshrc` file to select plugins, themes, and options.
• Follow us on Twitter: https://twitter.com/ohmyzsh• Join our Discord community: https://discord.gg/ohmyzsh• Get stickers, t-shirts, coffee mugs and more: https://shop.planetargon.com/collections/oh-my-zsh
复制代码

升级 oh-my-zsh

要升级 oh-my-zsh, 终端输入:

获取更新

默认情况下,系统会提示您每 2 周检查一次更新。在 Oh My Zsh 加载之前~/.zshrc,您可以通过在文件中添加一行来选择其他更新模式:


  1. 自动更新无确认提示:


   zstyle ':omz:update' mode auto
复制代码


  1. 如果有可用更新,请每隔几天提供一次提醒:


   zstyle ':omz:update' mode reminder
复制代码


  1. 要完全禁用自动更新:


   zstyle ':omz:update' mode disabled
复制代码


注意:您可以使用以下设置控制 Oh My Zsh 检查更新的频率:


# This will check for updates every 7 dayszstyle ':omz:update' frequency 7# This will check for updates every time you open the terminal (not recommended)zstyle ':omz:update' frequency 0
复制代码

手动更新

如果您想随时更新(也许有人刚刚发布了一个新插件而您不想等待一周?)您只需要运行:


omz update
复制代码

卸载 Oh My Zsh

Oh My Zsh 并不适合所有人。我们会想念你,但我们想让分手变得轻松。


如果要卸载oh-my-zsh,只需从命令行运行uninstall_oh_my_zsh。它将自行删除并恢复您以前的bashzsh配置。

使用 Oh My Zsh

插件

Oh My Zsh 附带大量插件供您使用。您可以查看插件目录和/或wiki以查看当前可用的内容。

启用插件

一旦您发现一个(或多个)您想与 Oh My Zsh 一起使用的插件,您需要在.zshrc文件中启用它们。您将在您的$HOME目录中找到 zshrc 文件。用你最喜欢的文本编辑器打开它,你会看到一个列出你想要加载的所有插件的地方。


vim ~/.zshrc
复制代码


例如,这可能开始看起来像这样:


plugins=(  git  bundler  dotenv  macos  rake  rbenv  ruby)
复制代码


请注意,插件由空格分隔(空格、制表符、新行...)。不要在它们之间使用逗号,否则会中断。


# 刷新配置source ~/.zshrc
复制代码

使用插件

每个内置插件都包含一个 README,用于记录它。此自述文件应显示该特定插件中包含的别名(如果插件添加了任何别名)和额外的好东西。

主题

我们会承认的。在 Oh My Zsh 世界的早期,我们可能有点太高兴了。我们现在捆绑了超过 150 个主题。他们中的大多数人在 wiki 上都有截图(我们正在努力更新这个!)。去看一下!

选择主题

Robby 的主题是默认主题。这不是最花哨的。这不是最简单的。这是正确的(对他来说)。


找到要使用的主题后,您需要编辑该~/.zshrc文件。您将在其中看到一个环境变量(全部大写),如下所示:


ZSH_THEME="robbyrussell"
复制代码


要使用不同的主题,只需更改值以匹配所需主题的名称。例如:


ZSH_THEME="agnoster" # (this is one of the fancy ones)# see https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#agnoster
复制代码


注意:许多主题需要安装电力线字体书呆子字体才能正确呈现。没有它们,这些主题将呈现奇怪的提示符号


打开一个新的终端窗口,您的提示应如下所示:



如果您没有找到适合您需求的主题,请查看 wiki 了解更多主题。


如果你觉得很烦,你可以让电脑在你每次打开一个新的终端窗口时为你随机选择一个。


ZSH_THEME="random" # (...please let it be pie... please be some pie..)
复制代码


如果您想从您最喜欢的主题列表中选择随机主题:


ZSH_THEME_RANDOM_CANDIDATES=(  "robbyrussell"  "agnoster")
复制代码


如果您只知道不喜欢哪些主题,则可以将它们类似地添加到忽略列表中:


ZSH_THEME_RANDOM_IGNORED=(pygmalion tjkirch_mod)
复制代码

异常问题

1. 卸载 zsh 后无法登陆 root 账户的解决方案

#在终端中输入sudo vim /etc/passwd#将第一行root:x:0:0:root:/root:/bin/zsh#改为root:x:0:0:root:/root:/bin/bash# 将最后一行username:x:1000:1000:username,,,:/home/username:/username/local/bin/zsh# 改为username:x:1000:1000:username,,,:/home/username:/username/local/bin/bash# 保存就可以登录root了
复制代码

参考链接:

zsh


ohmyzsh更新


ohmyzsh插件清单

发布于: 2022 年 07 月 24 日阅读数: 53
用户头像

琦彦

关注

孤独的技术没有价值 2019.08.24 加入

还未添加个人简介

评论

发布
暂无评论
Kubectl_好用的命令行工具:oh-my-zsh_技巧和窍门_Shell_琦彦_InfoQ写作社区