官网解释: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
。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
:光标切换到其他窗格。是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键
↓
。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+
:按箭头方向调整窗格大小。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
:切换到指定编号的窗口,其中的是状态栏上的窗口编号。
Ctrl+b w
:从列表中选择窗口。Ctrl+b ,
:窗口重命名。
下面是一些其他命令。
# 列出所有快捷键,及其对应的 Tmux 命令 $ tmux list-keys # 列出所有 Tmux 命令及其参数 $ tmux list-commands # 列出当前所有 Tmux 会话的信息 $ tmux info # 重新加载当前的 Tmux 配置 $ tmux source-file ~/.tmux.conf
官方解释: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
中生成一系列配置文件
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
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 作用一样,只显示符合条件的条目,区分大小写。 |
n N |
查找下一个搜索结果 查找上一个搜索结果 |
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预览
官方解释:git命令的简单终端UI,使用gocui库在Go中编写。
官方链接:jesseduffield/lazygit: simple terminal UI for git commands (github.com)
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