Tmux简单使用

为什么要用Tmux

有时候需要SSH或者telent远程登录到Linux服务器上执行一个长时间运行的命令,但是网络断开或者窗口关闭都会导致任务的退出了

 

这是因为我们打开一个终端程序(xshell/CRT/Item2),连接本机或者远程就创建一个会话

典型的场景就是:有时候需要SSH或者telent远程登录到Linux服务器上执行一个长时间运行的命令,但是网络断开或者窗口关闭都会导致任务的退出了

我们执行的命令就是在这个会话内执行的,当我们退出终端或者网络断开后,就会给会话发送中断的指令,又因为我们运行的命令是通过这个会话创建的,退出指令会传递给我们会话创建的进程

 

我们常见的操作使用nohub,nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号或者使用更方便功能更强大的tmux

Tmux作用

  • 它允许在单个窗口中,同时访问多个会话。这对于同时干多件事有很大用处
  • 可以在不同的窗口中,访问已存在的会话。并可以进行实时共享会话
  • 它不会随着窗口关闭或者Session端口而关闭会话统一由Tmux维护

 

Tmux安装

# CentOS
yum install tmux

# Mac
brew install tmux

 

Tmux常用命令

查看有那些tmux会话: [tmux ls]

tmux ls
# or
tmux list-session

栗子:

[@js_27_144 ~]# tmux ls
rsync_big_file: 1 windows (created Wed Jan 15 17:04:41 2020) [114x58]
[@js_27_144 ~]#

创建新tmux会话

# 默认(使用的是tmux默认的id不容易识别到底是干什么的)
tmux new

# 使用-s参数指定名称
tmux new -s rsync_file

进入存在的tmux会话:[tmux at -t session-name]

# 使用会话id
tmux attach -t 0

# 使用会话名称
tmux attach -t <session-name>

栗子

[@js_27_144 ~]# tmux ls
1: 1 windows (created Wed Jan 15 17:08:30 2020) [114x58]
rsync_big_file: 1 windows (created Wed Jan 15 17:04:41 2020) [114x58]
[@js_27_144 ~]#
[@js_27_144 ~]# tmux at -t rsync_big_file

 挂起tmux会话,退出tmux并且tmux会话保持后台运行

# 调出命令行输入
detach

# 或者使用快捷键
ctrl+b d

杀死tmux会话

# 使用会话编号
tmux kill-session -t 0

# 使用会话名称
tmux kill-session -t <session-name>

 

会话快捷键

[ctrl+b d] 挂起会话保持后台运行:按住ctrl不放同时按b,所有按键松开在按d

[ctrl+b s] 在tmux窗口列出当前tmux会话:按住ctrl不放同时按b,所有按键松开在按s,然后就可以按上下键切换会话,回车进入,按:q退出选择界面

[ctrl+b $] 在tmux窗口重命名当前会话按住ctrl不放同时按b,所有按键松开在按$

[ctrl+b 0] 在tmux窗口切换会话:按住ctrl不放同时按b,所有按键松开在按0是选择id为0个session会话,ctrl+b 1 是选择id为1的会话

[ctrl+b :]在tmux窗口调出命令行:按住ctrl不放同时按b,所有按键松开在按:(冒号)

[ctrl+b ?]在tmux窗口调出帮助菜单里面有各种快捷键提示:按住ctrl不放同时按b,所有按键松开在按?(问好)

 

tmux问题

1 默认不能滚动窗口上下翻看历史输出的内容

 

 

启用滚轮查看日志

# 允许使用鼠标控制,选中复制(想翻看记录直接调出命令行接口然后输入就行,或者直接写到配置文件 ~/.tmux.conf)
setw -g mode-mouse on



# 如果只想通过鼠标选中复制内容或者翻看历史屏幕输入或输出内容,启用上面一条就可以了,下面的东西我个人感觉属于锦上添花有没有都行


# 允许鼠标选择窗口(在多窗口下使用更好)
set -g mouse-select-pane on

# 允许鼠标调整窗口的大小(多窗口下可以使用鼠标调整窗口大小)
set -g mouse-resize-pane on

# 允许鼠标选择tmux打开的session列表可以替代ctrl+b 0 / ctrl+b 1
set -g mouse-select-window on
posted @ 2020-01-15 18:09  天帅  阅读(1462)  评论(0编辑  收藏  举报