当前位置:网站首页>Kubectl 好用的命令行工具:oh-my-zsh 技巧和窍门
Kubectl 好用的命令行工具:oh-my-zsh 技巧和窍门
2022-07-07 21:53:00 【琦彦】
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. 安装zsh
sudo apt-get install zsh
# 2. 确认是否安装成功
zsh --version
# 3. 设置zsh为默认shell
sudo chsh -s (which zsh)
# 4. 注销重新登录
Linux(Centos)
# 1. 安装zsh
sudo yum install zsh
# 2. 确认是否安装成功
zsh --version
# 3. 设置zsh为默认shell
sudo chsh -s (which zsh)
# 4. 注销重新登录
# 查看系统当前 shell
cat /etc/shells
通过yum安装的zsh的版本是5.0.2的,而很多主题都要用到更高版本的zsh,需要高版本可以使用源码安装
首先卸载zsh
yum remove zsh
然后编译吧
sudo yum update -y
sudo yum install -y git make ncurses-devel gcc autoconf man
git clone -b zsh-5.7.1 https://github.com/zsh-users/zsh.git /tmp/zsh
cd /tmp/zsh
./Util/preconfig
./configure
sudo make -j 20 install.bin install.modules install.fns
设置成默认shell
command -v zsh | sudo tee -a /etc/shells
sudo 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-MakeMaker
yum install ncurses-devel
# 进入源码目录
cd zsh-5.8
# 执行配置
# 默认安装在:/usr/local/bin/zsh
./configure
# 编译和安装
make && make install
# 添加信息
vim /etc/shells
# 在最后一行加上:/usr/local/bin/zsh
1.4 验证结果
# 切换shell
chsh -s /usr/local/bin/zsh
# 查看版本信息
zsh --version
# zsh 5.8 (x86_64-pc-linux-gnu)
Zsh基本命令
6个鲜为人知的 Zsh 技巧和窍门
take
命令这个命令是 mkdir 和 cd 两个命令的组合。也可以根据需要生成中间目录。
指定命令查看历史
输入指定命令,再按向上箭头,可循环遍历以该命令开头的历史记录
zmv
用 zmv 重命名大量文件。首先,运行
autoload zmv
来安装zmv
。然后执行如下命令:zmv '(*).(jpg|jpeg)' 'demo-1.2'
zcalc
在命令行中打开计算器,首先,运行
autoload zcalc
来安装zcalc
。然后就可以执行zcalc
命令。Ctrl-q
当你输入了一条长的命令,发现需要在其之前先执行一条命令时,就可以按
Ctrl-q
暂存当前命令,然后输入另外一条命令,当另外这条命令执行结束后,会自动重新填充好暂存的命令。ctrl-x-e
当你输入了一条很长的命令,发现命令中间有地方输入错误时,可以按
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)"
[[email protected]]/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 0
Receiving 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/master
Branch 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-zsh
Using 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
,您可以通过在文件中添加一行来选择其他更新模式:
自动更新无确认提示:
zstyle ':omz:update' mode auto
如果有可用更新,请每隔几天提供一次提醒:
zstyle ':omz:update' mode reminder
要完全禁用自动更新:
zstyle ':omz:update' mode disabled
注意:您可以使用以下设置控制 Oh My Zsh 检查更新的频率:
# This will check for updates every 7 days
zstyle ':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
。它将自行删除并恢复您以前的bash
或zsh
配置。
使用 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了
参考链接:
t:/root:/bin/zsh
#改为
root0:0:root:/root:/bin/bash
将最后一行
username1000:1000:username,:/home/username:/username/local/bin/zsh
改为
username1000:1000:username,:/home/username:/username/local/bin/bash
保存就可以登录root了
## 参考链接:
[zsh](https://www.zsh.org/)
[ohmyzsh更新](https://github.com/ohmyzsh/ohmyzsh#getting-updates)
[ohmyzsh插件清单](https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins)
[ohmyzsh主题](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes)
边栏推荐
- 95. (cesium chapter) cesium dynamic monomer-3d building (building)
- Wechat applet development beginner 1
- Codeworks 5 questions per day (average 1500) - day 8
- SAP HR family member information
- postgres timestamp转人眼时间字符串或者毫秒值
- Download AWS toolkit pycharm
- 蓝桥ROS中使用fishros一键安装
- ASP. Net query implementation
- 【leetcode】day1
- C # exchange number, judge to pass the exam
猜你喜欢
C cat and dog
Traduction gratuite en un clic de plus de 300 pages de documents PDF
关于CH32库函数与STM32库函数的区别
About the difference between ch32 library function and STM32 library function
Anxinco EC series modules are connected to the multi protocol access products of onenet Internet of things open platform
c—线性表
BSS 7230 flame retardant performance test of aviation interior materials
Aitm3.0005 smoke toxicity test
Take you hand in hand to build Eureka server with idea
[stm32+esp8266 connect Tencent cloud IOT development platform 2] stm32+esp8266-01s connect Tencent cloud
随机推荐
Flash encryption process and implementation of esp32
关于CH32库函数与STM32库函数的区别
MP4文件格式解析之结合实例分析
Anxinco EC series modules are connected to the multi protocol access products of onenet Internet of things open platform
Chisel tutorial - 01 Introduction to Scala
保证接口数据安全的10种方案
企业应用需求导向开发之人力部门,员工考勤记录和实发工资业务程序案例
机器人(自动化)等专业课程创新的结果
Slam interview summary
Uic564-2 Appendix 4 - flame retardant fire test: flame diffusion
ping报错:未知的名称或服务
C - linear table
快速回复二极管整流特性
Resolve the URL of token
Take you hand in hand to build feign with idea
MySQL Architecture
[stm32+esp8266 connects to Tencent cloud IOT development platform 3] stm32+esp8266-01s dynamically registers devices on Tencent cloud (at instruction mode) -- with source code
解析token的网址
Learn about scratch
Ora-01741 and ora-01704