Tmux
简介
官网解释:tmux是一个终端多路复用器:它允许在单个屏幕上创建、访问和控制多个终端。tmux可以从屏幕上分离出来,继续在后台运行,然后再重新连接。
此版本在Open BSD、Free BSD、Net BSD、Linux、mac OS和Solaris上运行。
官网地址:tmux/tmux: tmux source code (github.com)
基本用法
安装
# Ubuntu 或 Debian
$ sudo apt-get install tmux
# CentOS 或 Fedora
$ sudo yum install tmux
# Mac
$ brew install tmux
启动
tmux
上面命令会启动 Tmux 窗口,底部有一个状态栏。状态栏的左侧是窗口信息(编号和名称),右侧是系统信息。

按下Ctrl+d或者显式输入exit命令,就可以退出 Tmux 窗口。
前缀键
Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。
举例来说,帮助命令的快捷键是Ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。
然后,按下 ESC 键或q键,就可以退出帮助。
会话管理
新建会话
第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。
使用编号区分会话,不太直观,更好的方法是为会话起名。
tmux new -s <session-name>
分离会话
Tmux 窗口中,按下Ctrl+b d或者输入tmux detach命令,就会将当前会话与窗口分离。
$ tmux detach
上面命令执行后,就会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。
tmux ls命令可以查看当前所有的 Tmux 会话。
$ tmux ls # or $ tmux list-session
接入会话
tmux attach命令用于重新接入某个已存在的会话。
# 使用会话编号 $ tmux attach -t 0 # 使用会话名称 $ tmux attach -t <session-name>
杀死会话
tmux kill-session命令用于杀死某个会话。
# 使用会话编号 $ tmux kill-session -t 0 # 使用会话名称 $ tmux kill-session -t <session-name>
切换会话
tmux switch命令用于切换会话。
# 使用会话编号 $ tmux switch -t 0 # 使用会话名称 $ tmux switch -t <session-name>
重命名会话
tmux rename-session命令用于重命名会话。
$ tmux rename-session -t 0 <new-name>
上面命令将0号会话重命名。
会话快捷键
下面是一些会话相关的快捷键。
Ctrl+b d:分离当前会话。
Ctrl+b s:列出所有会话。
Ctrl+b $:重命名当前会话。
最简流程
- 新建会话tmux new -s my_session。
- 在 Tmux 窗口运行所需的程序。
- 按下快捷键Ctrl+b d将会话分离。
- 下次使用时,重新连接到会话tmux attach-session -t my_session。
窗格操作
划分窗格
tmux split-window命令用来划分窗格。
# 划分上下两个窗格 $ tmux split-window # 划分左右两个窗格 $ tmux split-window -h
移动光标
tmux select-pane命令用来移动光标位置。
# 光标切换到上方窗格 $ tmux select-pane -U # 光标切换到下方窗格 $ tmux select-pane -D # 光标切换到左边窗格 $ tmux select-pane -L # 光标切换到右边窗格 $ tmux select-pane -R
交换窗格位置
tmux swap-pane命令用来交换窗格位置。
# 当前窗格上移 $ tmux swap-pane -U # 当前窗格下移 $ tmux swap-pane -D
窗格快捷键
下面是一些窗格操作的快捷键。
Ctrl+b %:划分左右两个窗格。
Ctrl+b ":划分上下两个窗格。
Ctrl+b <arrow key>:光标切换到其他窗格。<arrow key>是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键↓。
Ctrl+b ;:光标切换到上一个窗格。
Ctrl+b o:光标切换到下一个窗格。
Ctrl+b {:当前窗格与上一个窗格交换位置。
Ctrl+b }:当前窗格与下一个窗格交换位置。
Ctrl+b Ctrl+o:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格。
Ctrl+b Alt+o:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格。
Ctrl+b x:关闭当前窗格。
Ctrl+b !:将当前窗格拆分为一个独立窗口。
Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。
Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小。
Ctrl+b q:显示窗格编号。
窗口管理
除了将一个窗口划分成多个窗格,Tmux 也允许新建多个窗口。
新建窗口
tmux new-window命令用来创建新窗口。
$ tmux new-window # 新建一个指定名称的窗口 $ tmux new-window -n <window-name>
切换窗口
tmux select-window命令用来切换窗口。
# 切换到指定编号的窗口 $ tmux select-window -t <window-number> # 切换到指定名称的窗口 $ tmux select-window -t <window-name>
重命名窗口
tmux rename-window命令用于为当前窗口起名(或重命名)。
$ tmux rename-window <new-name>
窗口快捷键
下面是一些窗口操作的快捷键。
Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。
Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
Ctrl+b n:切换到下一个窗口。
Ctrl+b <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号。
Ctrl+b w:从列表中选择窗口。
Ctrl+b ,:窗口重命名。
其他命令
下面是一些其他命令。
# 列出所有快捷键,及其对应的 Tmux 命令 $ tmux list-keys # 列出所有 Tmux 命令及其参数 $ tmux list-commands # 列出当前所有 Tmux 会话的信息 $ tmux info # 重新加载当前的 Tmux 配置 $ tmux source-file ~/.tmux.conf
Ranger
简介
官方解释:ranger是一个带有VI密钥绑定的控制台文件管理器。它提供了一个简洁美观的curses界面,并提供了目录层次结构视图。它配备了rifle,这是一种文件启动器,能够自动找出要用于何种文件类型的程序。
官房链接:ranger/ranger: A VIM-inspired filemanager for the console (github.com)
安装
ubuntu 安装命令如下
apt install ranger
最终在终端下输入ranger即可打开程序了

使用
使用h,j,k,l来进行光标的移动,来穿越在不同的文件夹中
使用q进行退出程序,使用S来进行当前光标所在的文件夹中(进入文件夹后终端下执行exit命令重新回到ranger程序当中去)
配置
使用ranger --copy-config=all将在~/.config/ranger中生成一系列配置文件
- rc.conf 常用于设置选项和绑定快捷键.(最常用)
- scope.sh 常用于设置文件的预览方式
- rifle.conf 常用于设置使用那个软件来打开文件
- commands.py python文件,增强和改进ranger的各种功能
ranger --copy-config=all
- rc.conf-选项设置和快捷键
- commands.py-能通过- :执行的命令
- commands_full.py-全套命令
- rifle.conf-指定不同类型的文件的默认打开程序
- scope.conf-负责各种文件预览
注意:如果要使用~/.config/ranger目录下的配置生效,需要把RANGER_LOAD_DEFAULT_RC变量设置为false
bash
echo "export RANGER_LOAD_DEFAULT_RC=false">>~/.bashrc
zsh
echo "export RANGER_LOAD_DEFAULT_RC=false">>~/.zshrc
可选配置(推荐)
修改配置文件~/.config/ranger/rc.conf
- 显示边框set draw_borders both
- 显示序号set line_numbers true
- 序号从1开始set one_indexed true
配置图标
git clone https://github.com/alexanderjeurissen/ranger_devicons ~/.config/ranger/plugins/ranger_devicons
echo "default_linemode devicons" >> $HOME/.config/ranger/rc.conf
效果

配置文本编辑器
设置默认为nvim
# bash
echo export EDITOR=/usr/bin/nvim >> ~/.bashrc
# zsh
echo export EDITOR=/usr/bin/nvim >> ~/.zshrc
快捷键
文件管理器操作
| 文件管理器操作 | 作用 | 
|---|---|
| h | 返回上一层 | 
| l | 进入文件 | 
| j | 向下 | 
| k | 向上 | 
| Enter | 打开文件 | 
| q | 退出 | 
获得帮助
您可以在使用Ranger时获得帮助
| 字符 | 作用 | 
|---|---|
| m | 打开护林员的手册页 | 
| k | 打开键绑定列表 | 
| c | 打开可用命令和描述的列表 | 
| s | 打开设置及其当前值的列表 | | 
删除
| 按键 | 说明 | 
|---|---|
| dD或者F8 | 删除条目(文件或者文件夹),或者 :+delete。 | 
| DD | 将条目移动到回收站里。 | 
新建
| 按键 | 说明 | 
|---|---|
| F7 | 新建文件夹,等同于 :mkdir 。 | 
| INSERT | 新建文件,等同于 :touch 。 | 
重命名
| 按键 | 说明 | 
|---|---|
| cw | 重命名(含后缀名) | 
| I | 重命名,光标在最前 | 
| A | 重命名,光标在最后(含后缀名) | 
| a | 重命名,光标在最后(不含后缀名) | 
复制
| 按键 | 说明 | 
|---|---|
| yy或者F5 | 复制 | 
| ya | add模式,添加光标处文件到复制队列中(文件夹无效)。 | 
| yr | remove模式,从复制队列中移除光标处文件(文件夹无效)。 | 
| yt | toggle模式,切换光标处文件是否在复制队列中(文件夹无效)。 | 
| yk | 将光标处文件和上一文件添加到复制队列中(文件夹无效)。 | 
| yj | 将光标处文件和下一文件添加到复制队列中(文件夹无效)。 | 
| ygg | 将光标处到顶端的所有文件添加到复制队列中(文件夹无效) | 
| yG | 将光标处到底端的所有文件添加到复制队列中(文件夹无效) | 
剪切
| 按键 | 说明 | 
|---|---|
| dd或者F6 | 剪切 | 
| da | add模式,同复制。 | 
| dr | remove模式,同复制。 | 
| dt | toggle模式,同复制。 | 
| dk | 同复制 | 
| dj | 同复制 | 
| dgg | 同复制 | 
| dG | 同复制 | 
| ud或者uy | 取消剪切 | 
粘贴
| 按键 | 说明 | 
|---|---|
| pp | 粘贴,默认 append模式 | 
| pP | append模式,如果该目录中有同名条目,则在条目后面加上_、_0、_1……。如果条目是文件,则在文件后缀名后加入。 | 
| po | overwrite模式,如果该目录中有同名条目,则覆盖原来的条目。 | 
| pO | append模式 +overwrite模式。 | 
| pl | 粘贴为符号链接,不在状态栏显示目标条目的相对路径。 | 
| pL | 粘贴为符号链接(相对路径),在状态栏显示目标条目的相对路径。 | 
| phl | 粘贴为硬链接 | 
| pht | 粘贴为硬链接的子目录(hardlinked subtree) | 
搜索
| 按键 | 说明 | 
|---|---|
| / | 打开搜索框,输入要搜索的字符串,回车后开始搜索。 | 
| f | 查找,等同于运行满足条件的文件或者打开满足条件的文件夹。 | 
| zf | 与命令行 filter作用一样,只显示符合条件的条目,区分大小写。 | 
| nN | 查找下一个搜索结果 查找上一个搜索结果 | 
| c+对应字母 | 通过对应属性依次遍历,如: ca:通过atime属性依次遍历cc:通过ctime属性依次遍历ci:通过mimetype属性依次遍历cm:通过mtime属性依次遍历cs:通过size属性依次遍历ct:通过tag属性依次遍历 | 
相关插件
ubuntu
sudo apt-get install caca-utils # img2txt 图片
sudo apt-get install highlight  # 代码高亮
sudo apt-get install atool     # 存档预览
sudo apt-get install w3m        # html页面预览
sudo apt-get install mediainfo  # 多媒体文件预览
sudo apt-get install catdoc     # doc预览
sudo apt-get install docx2txt   # docx预览
sudo apt-get install xlsx2csv   # xlsx预览
LazyGit
简介
官方解释:git命令的简单终端UI,使用gocui库在Go中编写。
官方链接:jesseduffield/lazygit: simple terminal UI for git commands (github.com)
安装
ubuntu
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
执行lazygit即可启动
可以添加别名
echo "alias lg='lazygit'" >> ~/.zshrc
效果:

可以使用数字键或是tab或是h和l切换标签
之后在对应tab中使用使用?查看帮助文档学习相应操作
参考链接:
https://www.ruanyifeng.com/blog/2019/10/tmux.html
https://www.zssnp.top/2021/06/03/ranger/#post-comment



















