终极Shell:Zsh(CentOS7 安装 zsh + Oh my zsh + tmux)

CentOS7 安装 zsh 及 配置 Oh my zsh

我们在通过Shell操作linux终端时,配置、颜色区分、命令提示大都达不到我们预期的效果或者操作较为繁琐。

今天就来介绍一款终极一个及其好用的类Linux系统中的终端软件,江湖称之为马车中的跑车,跑车中的飞行车,史称『终极 Shell』。

1 安装zsh并更改默认终端

①安装软件包

yum -y install zsh git

②更改默认终端

chsh -s /bin/zsh

这时候打开终端软件,应该就会默认进入 zsh 了。

2 配置oh-my-zsh

①从igt仓库中拉取oh-my-zsh

git clone https://gitee.com/mirrors/oh-my-zsh.git ~/.oh-my-zsh

②默认配置

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

3 安装高亮、自动补全插件

①安装高亮插件:zsh-syntax-highlighting

git clone https://gitee.com/dawnwords/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

②安装自动补全:zsh-autosuggestions

git clone https://gitee.com/lhaisu/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

③安装autojump目录跳转

git clone https://gitee.com/gentlecp/autojump.git
cd autojump
./install.py

4 插件配置

同样是打开.zshrc文件,找到plugins=(git),在这里增加自己想要的插件即可,多个插件名称之间使用空格或者换行分开(不能使用逗号)

vim ~/.zshrc
plugins=(
        git
        sudo
        zsh-autosuggestions
        zsh-syntax-highlighting
        autojump
)

每次修改完.zshrc都需要我们:

source ~./zshrc

如果提示的是你要的那句命令,按右箭头(→ )就可以补全命令了。
在这里插入图片描述

5 效果

在这里插入图片描述

如果该zsh主题不习惯,可以修改

vim ~/.zshrc

找到ZSH_THEME,将其改为自己喜欢的主题,比如maran
在这里插入图片描述

#刷新zsh配置文件
source ~/.zshrc

效果:
在这里插入图片描述

6 tmux:配置终端管理

有时候我们在通过终端跑脚本命令的时候,不希望我们退出终端的时候,脚本程序随之退出。

  • 这个时候就有必要用到tmux,这个终端管理神器了。

6.1 概念:workspace、window、pane

  1. 工作空间(Workspace):工作空间是tmux的最高层级,它可以包含多个窗口。每个工作空间都有一个唯一的名称,您可以根据需要创建和管理多个工作空间。
  2. 窗口(Window):窗口是工作空间的子级,它可以包含一个或多个窗格。每个窗口都有一个编号和一个可选的名称。您可以在窗口之间切换,每个窗口可以运行不同的应用程序或命令。
  3. 窗格(Pane):窗格是窗口的子级,它是tmux中的可视区域。每个窗格可以显示不同的命令行界面或终端会话。窗格可以垂直或水平分割,并且可以在窗格之间进行导航和调整大小。

6.2 安装使用

此处采用v3.3版本

  1. 更新软件包并下载tmux
# 如果已经安装了tmux且不是3.3版本的,那么可以通过下面命令卸载
sudo yum remove tmux
# 更新软件包并安装
sudo yum install http://galaxy4.net/repo/galaxy4-release-7-current.noarch.rpm
sudo yum install -y tmux

# 查看版本
tmux -V
  1. 编辑配置文件~/.tmux.conf
vim ~/.tmux.conf
#输入:set paste 进入粘贴模式
:set paste
# 输入i进入插入(粘贴)模式
i

将下面内容复制到tmux.conf中:

tmux默认命令前缀是control + B,我们可以根据unbind-key C-b来解绑,bind-key C-a send-prefix来重新绑定自己习惯的按键

set-option -g prefix C-b
# unbind-key C-b
bind-key C-b send-prefix
bind-key s setw synchronize-panes

# Use Alt-arrow keys to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window

# Mouse mode
set-option -g mouse on

# # Set easier window split keys
bind-key v split-window -h
bind-key h split-window -v
#
# # Easy config reload
bind-key r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded"

set -g default-terminal "screen-256colour"
set -g status-style fg=white  # 前景色
set -g status-style bg=black  # 背景色
setw -g window-status-style fg=cyan  # 活动窗口颜色为蓝绿色
setw -g window-status-current-style fg=white
setw -g window-status-current-style bg=red
set -g message-style fg=white
set -g message-style bg=black
set -g message-style bright
set -g pane-border-style fg=white
set -g pane-border-style bg=green

set -g status-left "#[fg=green]#S#[fg=yellow]-#I#[fg=cyan]-#P"
set -g status-utf8 on
set -g status-interval 60s
setw -g monitor-activity on
set -g visual-activity on
  1. 配置环境变量
# 使tmux.conf文件生效
tmux source-file ~/.tmux.conf
# 配置zsh环境变量
vim ~/.zshrc
#在.zshrc文件底部添加如下配置
export TERM=xterm

6.3 设置自己的工作空间

  1. 创建一个名为workspace的工作空间
tmux new-session -s workspace-demo -d
# 如果要删除某个命名空间,通过下面命令进入该空间
# tmux attach-session -t workspace-demo
# 进入该空间后输入exit,即可删除,或者直接执行kill-session
# tmux kill-session -t workspace-demo
  1. tmux ls查看是否创建成功
# 查看所有的命名空间
tmux ls

在这里插入图片描述

  1. 进入工作空间,创建自己的window
# 进入workspace-demo工作空间
tmux attach-session -t workspace-demo
# 新建一个window-demo-1窗口
tmux new-window -n window-demo-1

在这里插入图片描述

  1. 在window-demo-1窗口下,创建两个pane(两个ssh会话)
# 登录到145这台机器
ssh root@192.168.16.145

# 新建一个ssh会话(命令快捷键前缀我这里以C-B为例)
control + B,按完松开之后,再按H(新建一个水平窗口)
# 我在新窗口连接到我146的机器上
ssh root@192.168.16.146

在这里插入图片描述

当然我们还可以继续开更多的shell窗口

注意📢:
①如何保证下次登录的时候保留当前的session会话状态呢?

# 注意先按control+B,松开之后,然后再按D(不是三个按钮一起按)
control + B, 然后再按下D(detach)

在这里插入图片描述
②配置alias,方便下次登录终端时,直接进入我们的window

比如,我们要在192.168.16.145这台机器上设置alias为dev,下次我们登录到192.168.145这台机器(需要有tmux环境)上时,直接输入dev就可以进入tmux中的workspace-demo工作空间

# 修改~/.bashrc或者~/.bash_profile文件
vim ~/.bashrc
# 在alias部分添加如下命令(=之间不要有空格)
alias dev='tmux attach-session -t workspace-demo'

在这里插入图片描述

# 输入:wq保存退出
:wq
# 刷新配置文件
source ~/.bashrc

测试:

ssh登录到145这台机器之后,输入dev
在这里插入图片描述

在这里插入图片描述

6.4 常用命令

- 使用control + b 然后按[ 使用鼠标选中文本进行复制
- 使用control + b 然后按] 即可粘贴
- `Control+B`,然后按下`空格键`:更改窗格布局。
- `Control+B`,然后按下`Z`:切换当前窗格的全屏模式。
- `Control+B`,然后按下`&`:关闭当前窗口。
- `Control+B`,然后按下`L`:在窗口之间切换,返回上一个窗口。
- `Control+B`,然后按下`$`:重命名当前窗口。
- `Control+B`,然后按下`?`:显示tmux快捷键帮助。
- `Control+B`,然后按下`C`:创建一个新窗口。
- `Control+B`,然后按下`N`:切换到下一个窗口。
- `Control+B`,然后按下`P`:切换到上一个窗口。
`Control+B`,然后按下`0-9`:切换到指定编号的窗口。

在这里插入图片描述

- `Control+B`,然后按下`%`或者V(vertical):在当前窗口中创建一个新的垂直分割窗格。
- `Control+B`,然后按下`"`或者H:在当前窗口中创建一个新的水平分割窗格。
- `Control+B`,然后按下`方向键`:在窗格之间进行导航。(option+方向键,也能实现效果)
- `Control+B`,然后按下`x`:关闭当前窗格(pane)。

问题

①zsh粘贴慢问题:一个字符一个字符粘贴

我在macOS环境中使用的是iterm2终端,每次在粘贴大量命令的时间,明显感觉粘贴速度慢。就感觉粘贴也是一个字一个字粘贴的。在命令过长时由为明显。

  • 最初以为是iterm2的问题,后来发现是zsh导致

解决:

修改zsh配置:vim ~/.zshrc,增加如下代码:

pasteinit() {
  OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]}
  zle -N self-insert url-quote-magic # I wonder if you'd need `.url-quote-magic`?
}

pastefinish() {
  zle -N self-insert $OLD_SELF_INSERT
}
zstyle :bracketed-paste-magic paste-init pasteinit
zstyle :bracketed-paste-magic paste-finish pastefinish
# 刷新zsh配置
source ~/.zshrc

最后才重新尝试,会发现瞬间就完成了粘贴动作。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值