HOW-如何使用 tmux + zhs

HOW-如何使用 tmux + zhs

数据安全、计算安全、编程安全小白

​关注他

1 人赞同了该文章

什么是Tmux

建议使用tmux:Terminal Multiplexer。

是一个类似iTerm的terminal终端工具

优点:

  1. 多个session,可以保持回话。运行中的程序不会因为网络断开连接(断网或者个人主机关机之类)而被shut down
  2. 每一个session里面可以创建不同的window。每一个window处理不同任务
  3. 每一个window里面可以创建多个pane。多端同窗口协同工作。跑多线程或者Client-Server调试时十分方便

安装

  • Mac
brew install tmux
  • Linux
sudo apt-get install tmux

到这里安装好tmux之后,命令行敲tmux进入(默认开启一个新的session)即可使用默认的tmux配置,包括快捷键等。

这里贴一个表格,涉及到常用的tmux指令:

P.S. 通常默认的$prefix 为 ctrl+a 或者 ctrl+b

优化自定义配置

可以自动修改~/.tmux.conf 来自定义tmux的配置,包括配色和快捷键等

这里推荐直接使用oh-my-tmux,如下链接

https://github.com/gpakosz/.tmux​github.com/gpakosz/.tmux

$ cd
$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s -f .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local .

按照github链接走完,需要注意额外敲一下:

tmux source-file ~/.tmux.conf

来使得配置生效

支持鼠标点击和复制

tmux可以设置允许鼠标交互,窗口切换以及log上下滑可以比较方便。可以按照如下方式设置:

  1. 进入tmux终端,敲下prefix键(我的是ctrl+a)
  2. 输入 :
  3. 输入 set -g mouse on, 回车即可

不过一个小的隐患是,上述支持鼠标后,在tmux的terminal上选择+复制文字,比如log信息,就失效了。最简单的方式是要将鼠标模式关闭。推荐大家熟练使用快捷键进行窗口切换,避免额外的操作。

P.S. 鼠标模式下,按住shift(windows)或者Option(Mac),这时就可以鼠标选中复制


进阶优化配置

按照上面的步骤,我们现在已经可以成功地启用多会话,多窗口,来进行会话的保持(避免因为断开连接而丢失历史记录或者任务中断。

但是在每一个tmux窗口中,使用的仍然是最基础的bash,如何结合更加user-friendly的zsh,并添加更加好用的插件(如自动补全zsh-autosuggestions)呢?

1. 首先需要安装zsh

用户根目录执行如下命令。具体细节可见下面的Github链接~

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

https://github.com/ohmyzsh/ohmyzsh​github.com/ohmyzsh/ohmyzsh

2. 添加喜欢的插件(这里以zsh-autosuggestions为例)

这里需要把要安装的插件的代码下载到oh-my-zsh的plugin目录中,执行下面命令即可

git clone https://github.com/zsh-users/zsh-autosuggestions ${PathToOhMyZshPlugin}
# 默认是 ~/.oh-my-zsh/custom/plugins

接着,修改~/.zshrc文件,声明上述插件:

plugins=(zsh-autosuggestions) 

最后,使上述修改生效:

source ~/.zshrc

3. 修改默认SHELL到tmux中

注意这一步如果有sudo权限,可以直接修改系统的默认SHELL

chsh -s /usr/bin/zsh

但是如果没有sudo权限,或者只是想本人生效,可以在.tmux.conf中进行添加如下:

# set shell
set -g default-shell /usr/bin/zsh # 具体路径为相应的zsh路径

使上述修改生效:

tmux source-file ~/.tmux.conf

评论
avatar
Haostart
个人学习用站点
Follow Me
公告
This is my Blog
最新文章
网站信息
文章数目 :
34
本站访客数 :
本站总浏览量 :
最后更新时间 :