tmux 介绍与使用
tmux有什么用
1.关闭终端时,在终端运行着的程序不会一起被关闭。
比如,我在终端命令行执行htop。当我关闭这个终端时,htop进程也随着这个终端的关闭而结束。我在终端运行着一个程序,它应该一直运行着。我一不小心把终端关闭了,这个程序也随之停止了。tmux就是用来解决这个问题的。即终端关闭,在终端运行着的程序不会关闭。
2.终端分屏
我希望一个终端同时显示htop,还有我的程序。就可以用tmux实现。tmux可以把屏幕无限拆分。
tmux 概念
1. 会话 session
我们与系统的交互上下文就是会话。在没有tmux的时候,每次打开终端就建立一个新的会话,关闭这个终端时,会话结束。如果关闭终端时,会话中还有正在运行的进程,那么这个进程也关闭。没有tmux的时候,终端-会话-会话中的进程生命周期绑定。终端死亡意味着会话和会话中的进程死亡。
tmux 可以使得终端与会话隔离。一个终端可以有多个会话,可以切换会话。终端关闭后,会话不会结束。重新打开终端,可以选择回到之前的会话中,或者开启一次新的会话。
2. 窗口
窗口是用来显示会话的。一个窗口一个时间内只显示一个会话。会话与窗口的关系就像主机与显示屏。一个会话可以由多个窗口显示(一台主机可以连接多个显示屏)。窗口与终端的生命周期绑定。一个会话可以同时运行多个进程(主机可以运行多个程序),这些进程可以由多个窗口显示,互不占用彼此的显示空间。窗口死亡时,会话不会结束(显示屏坏了,主机不会关机,换个显示屏就能接着使用)
3.窗格
窗格是窗口的分屏。把窗口分成一个个格子,可以在每个格子显示一个程序,窗格间显示的内容互不干扰。
tmux使用
tmux 有命令和快捷键。
tmux 快捷键,都是先按ctrl+b。然后松开,然后再输入指令。
先按ctrl+b,告诉tmux现在我要控制你。后面跟着的输入就是控制内容。
未处于tmux会话中
终端输入 tmux 新建并加入到新建的会话。
tmux ls 查看还未关闭的会话
tmux new -s 会话名 新家一个会话,命名为会话名,并加入到新建的会话。
tmux kill-session -t 会话名 删除会话
tmux attach -t 会话名 加入到会话中。
处于tmux会话中
ctrl+b , d (先按ctrl+b。然后松开,然后再输入d) 离开当前会话
ctrl+b, s 切换到另一个会话中
ctrl+b,? 打印快捷键 按q退出显示的快捷键菜单。
ctrl+b,c 创建一个新的窗口
ctrl+b,n 切换到下一个窗口
ctrl+b,1-9 切换到标号为指定数字的窗口(下方有窗口编号)
ctrl+b,& 删除当前窗口
ctrl+b," (先按ctrl+b。然后松开,然后再输入双引号,注意是双引号(shift+‘)而不是’)垂直分屏。
ctrl+b,% (注意是%,不是5)水平分屏
ctrl+b,方向键 移动窗格焦点
ctrl+b,x 删除焦点窗格
tmux 配置文件
它可以定制化tmux
创建
在用户主目录下创建.tmux.conf文件
vim ~/.tmux.conf
比较常用的配置
set -g mouse on
这个开启鼠标功能。可以用鼠标选中窗格,可以拖动改变窗格大小。
可以长按鼠标右键进入右键菜单。