当前位置: 首页 > article >正文

Linux运维——oh-my-zsh

oh-my-zsh

  • 一、Zsh简介
  • 二、Zsh安装
    • 2.1、环境
    • 2.2、安装 zsh
    • 2.3、安装git
    • 2.4、安装oh-my-zsh
    • 2.5、配置oh-my-zsh
      • 2.5.1、插件
        • 1.启动插件
        • 2.查看插件数
        • 3.zsh-autosuggestions
        • 4. zsh-syntax-highlighting
        • 5. autojump
      • 2.5.2、主题
        • 1. 查看主题数
        • 2. 配置主题
  • 三、快捷键

一、Zsh简介

使用 Linux 的人都知道:*Shell_ 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 的类型有很多种,linux 下默认的是 bash,虽然 bash 的功能已经很强大,但对于以懒惰为美德的程序员来说,bash 的提示功能不够强大,界面也不够炫,并非理想工具。

Zsh (opens new window) 也是一种 Shell(据传说 99% 的 Bash 操作 和 Zsh 是相同的),它的功能极其强大,只是配置过于复杂,起初只有极客才在用。后来,出现了一个名叫 oh-my-zsh (opens new window) 的开源项目,使用 zsh 就变得十分简易了。

二、Zsh安装

2.1、环境

  • CentOS 8.2
  • root用户

2.2、安装 zsh

先看下你的 CentOS 支持哪些 shell:cat /etc/shells,正常结果应该是这样的:

/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

如果已经有 zsh ,那么我们就不必安装了。

  • CentOS 安装:sudo yum install -y zsh
  • Ubuntu 安装:sudo apt-get install -y zsh
  • 检查系统的 shell:cat /etc/shells,你会发现多了一个:/bin/zsh

2.3、安装git

yum install -y git 

2.4、安装oh-my-zsh

curl或wget下载:

# wget
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

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

手动下载:

GitHub:https://github.com/ohmyzsh/ohmyzsh

Gitee:https://gitee.com/mirrors/oh-my-zsh/

将下载好的压缩包上传到服务器并解压:

yum install -y unzip
unzip oh-my-zsh-master.zip

运行脚本:

cd oh-my-zsh-mater/tools
./install.sh

2.5、配置oh-my-zsh

2.5.1、插件


oh-my-zsh插件列表

1.启动插件
# 编辑配置文件
vim ~/.zshrc

# 在配置文件中找到 类似如下结构:
plugins=(git)
# ()中的就是启用的插件
# 多个插件可以如下配置
plugins=(
  git
  bundler
  dotenv
  macos
  rake
  rbenv
  ruby
)
2.查看插件数
# /root/soft/oh-my-zsh 为安装位置
ls -l /root/soft/oh-my-zsh/plugins |grep "^d"|wc -l
3.zsh-autosuggestions

这个插件会对历史命令一些补全。

# 安装
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-\~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# 编辑:
vim ~/.zshrc

# 找到如下这行,后面括号里面的后面添加:
plugins=( 前面的一些插件名称,换行,加上:zsh-autosuggestions)

# 刷新配置
source \~/.zshrc

安装并配置完成后,当你在命令行中输入命令时,zsh-autosuggestions 会自动显示建议。你可以通过按 → 键或 End 键来接受建议。

4. zsh-syntax-highlighting

这个插件会对终端命令高亮显示,比如正确的拼写会是绿色标识,否则是红色,另外对于一些 shell 输出语句也会有高亮显示,算是不错的辅助插件。

# 安装
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-\~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# 编辑
vim \~/.zshrc

# 找到这一行,后括号里面的后面添加
plugins=( 前面的一些插件名称,换行,加上:zsh-syntax-highlighting)

# 刷新配置
source \~/.zshrc
5. autojump

这个插件会记录你常去的那些目录,然后做一下权重记录,你可以用这个命令看到你的习惯:j --stat,如果这个里面有你的记录,那你就只要敲最后一个文件夹名字即可进入,比如我个人习惯的 program:j program,就可以直接到:/usr/program

# 下载
wget https://github.com/downloads/wting/autojump/autojump_v21.1.2.tar.gz

# 解压
tar zxvf autojump_v21.1.2.tar.gz

# 进入解压目录后安装
cd autojump_v21.1.2/
./install.sh

# 刷新
source /etc/profile.d/autojump.sh

# 编辑配置文件
vim /root/.zshrc

2.5.2、主题


主题列表

1. 查看主题数
ls -l /root/.oh-my-zsh/themes |grep "^-"|wc -l
2. 配置主题

个人推荐的主题:

  • ys
  • agnoster
  • avit
  • blinks
# 编辑配置文件
vim ~/.zshrc

# 填写要应用的主题
ZSH_THEME="ys"

# 刷新配置
source ~/.zshrc

三、快捷键

  • 使用 ctrl-r 来搜索命令历史记录。按完此快捷键后,可以输入关键命令词语,如果历史记录有含有此词语会显示出来。
  • 命令别名: - 在命令行中输入 alias 可以查看已经有的命令别名 - 自己新增一些别名,编辑文件:vim ~/.zshrc,在文件加入下面格式的命令,比如以下是网友提供的一些思路:
alias cls='clear'
alias ll='ls -l'
alias la='ls -a'
alias grep="grep --color=auto"
alias -s html='vim'   # 在命令行直接输入后缀为 html 的文件名,会在 Vim 中打开
alias -s rb='vim'     # 在命令行直接输入 ruby 文件,会在 Vim 中打开
alias -s py='vim'      # 在命令行直接输入 python 文件,会用 vim 中打开,以下类似
alias -s js='vim'
alias -s c='vim'
alias -s java='vim'
alias -s txt='vim'
alias -s gz='tar -xzvf' # 在命令行直接输入后缀为 gz 的文件名,会自动解压打开
alias -s tgz='tar -xzvf'
alias -s zip='unzip'
alias -s bz2='tar -xjvf'

http://www.kler.cn/a/579178.html

相关文章:

  • 高效处理 List<T> 集合:更新、查找与优化技巧
  • 《A++ 敏捷开发》- 18 软件需求
  • HTML 文本格式化
  • Python爬取咸鱼Goodfish店铺所有商品接口的详细指南
  • Android中的Fragment是什么以及它有哪些生命周期方法
  • unity学习64,第3个小游戏:一个2D跑酷游戏
  • react基本功
  • 【漫话机器学习系列】121.偏导数(Partial Derivative)
  • 【springcloud】快速搭建一套分布式服务springcloudalibaba(二)
  • 前端常用布局
  • Deeplabv3+改进4:在主干网络中添加GAMAattention|助力涨点!
  • Python实现鼠标点击获取窗口进程信息
  • Android FragmentContainerView如何使用
  • Oracle 字符类型对比
  • Manus AI Agent 技术解读:架构、机制与竞品对比
  • React 中 Hooks 函数及作用
  • 玛卡巴卡的k8s知识点问答(一)
  • 《打破常规:量子比特如何同时“是0又是1”》
  • 基于Spring Boot的多级缓存架构实现
  • 【vscode编辑器配置】