linux rpm 安装tmux,在 iTerm2 中使用 tmux

e14a90a7f244debe376ac34cf40e0ec8.png

本文1927字,需要5分钟

作为开发者,不断和服务器打交道,最烦躁的是,每次用 ssh 连接服务器时,总担心网络不稳定导致在服务器端执行耗时的任务会被中断。有时候服务器一边在执行命令,一边又想看看服务器内存、CPU 等运行情况,这时候不得不再打开一个终端执行 ssh 连接操作。

最近发现一个好工具:「tmux」,恰好能解决这些问题,今天分享出来。

首先说一说 tmux 的好处。

tmux 优点

分屏

在 Mac 上,iterm2 也是可以做到分屏,但如果结合 iterm2 与 ssh 的话,iterm2 分屏需要不断地 ssh

,导致的后果就是有多个用户连接,使用 who 命令查看登录用户数。

举个例子,如果是 iterm2 分屏三个,则用户连接数为:3

defbc928a7b598536afc5af6fb2d428f.png

但,如果是用 tmux 的话,相同的目标,用户连接数为:1

25eaa17a0f30c9303f62bda0121d71cb.png

attach

attach 可以起到保护现场的作用,不至于因 ssh 超时或者异常退出,而丧失了工作环境。

我做了一个测试,先在 tmux 环境下git clone代码。

4535ab729c44bd7b654cd1a499a9bdf4.png

接着关闭 ssh 环境一段时间,然后我重新连接服务器,这时候发现工作环境保持状态,并且持续下载中:

52c38e7a6669e8bb6eff079af644588c.png

其中原理我觉得可以这么理解:tmux 运行在远程主机上,充当中介的作用。本地终端应首先 ssh 到远程主机,然后运行一个 tmux 会话,在会话内的 shell 中运行任务。当本地切断 ssh 连接时,应当先结束 tmux 会话。由于 tmux 在远程主机上运行,它可以装作 ssh 连接从未中断过。等本地终端再次登录时,又能重新装载会话,恢复至连接切断前的状态,以达到下载从未中断的目标。

以后我们可以放心的把耗时的任务放在 tmux 下执行了,再也不用担心本地 ssh 断连的问题了!

安装 tmux

在 Mac 下,直接使用brew

brew install tmux

在 Centos 7,可以直接用yum安装 tmux:

yum install tmux -y

867c172b93f476e998394281d62d9675.png

但版本会比较低,这里我们也可以直接用源代码编译安装最新版本:

#安装 ncurses-devel 和 libevent-develyum -y install ncurses-develyum -y install libevent-devel#下载源代码git clone https://github.com/tmux/tmux.git#编译cd tmux && sh autogen.sh./configure && make#验证版本tmux -Vtmux next-3.1

注:

如果出现 aclocal: 未找到命令

c2c3f4ad370c2ffb2752648f98d5b4ab.png

则需要下载安装 automake 后再执行 autogen.sh

yum install automake -y

如果出现 make: yacc:命令未找到

则需要安装 bison:

yum install bison -y

如果 make 安装不了,可以试试 make install

连接

首先将远程连接 key 证书加入 ssh-key 中,以后访问方便。

ssh-add -k key.pem

然后,我们在 iterm2 增加一个「Profile」,在「General」加入 「Command」命令:

ssh -t username@remote_host "tmux attach -t coding01 || tmux new -s coding01"

f7ef3a96d92df8bd6a7ae47a778fdb2a.png

这个的含义是:如果远程服务器已经有coding01session,则直接tmux attach载入coding01session;如果不存在,则会创建一个coding01session。

我们可以看看一共有几个 session:

0cf87f7297592691839106dc3fad4c3d.png

总结

有了 tmux,我们可以做的还有很多,包括 tmux 的配置、快捷键的学习等等,市面上还有人把 tmux 当成艺术来学习。

最后来看看我 tmux 面板,我喜欢分成三个 pane,左边用于常规使用,右上角可以放一些实时性或者有意思的操作 (比如:显示⏲️);右下角执行top命令可以时刻关注服务器运行情况。

8d1536b73c4733ce8d458187da6e64ca.png

用好工具,提高我们的效率。

未完待续

参考

https://gitlab.com/gnachman/iterm2/wikis/tmux-Integration-Best-Practices

https://blogs.technet.microsoft.com/jessicadeen/linux/macos-ohmyzsh-tmux-vim-iterm2-powerlevel9k-badass-terminal/

https://github.com/tmux/tmux

https://medium.com/@gveloper/using-iterm2s-built-in-integration-with-tmux-d5d0ef55ec30

https://fedoramagazine.org/4-tips-better-tmux-sessions/

coding01 期待您继续关注

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值