配置工具篇(tmux+ranger+lazygit)

简介: 配置工具篇(tmux+ranger+lazygit)

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 窗口,底部有一个状态栏。状态栏的左侧是窗口信息(编号和名称),右侧是系统信息。

image-20230523160429119

按下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 $:重命名当前会话。

最简流程

  1. 新建会话tmux new -s my_session
  2. 在 Tmux 窗口运行所需的程序。
  3. 按下快捷键Ctrl+b d将会话分离。
  4. 下次使用时,重新连接到会话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即可打开程序了

image-20230523164316992

使用

使用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
效果

image-20230523171348133

配置文本编辑器

设置默认为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预览

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

效果

image-20230523222702767

可以使用数字键或是tab或是hl切换标签

之后在对应tab中使用?查看帮助文档学习相应操作

参考链接:

https://www.ruanyifeng.com/blog/2019/10/tmux.html

https://www.zssnp.top/2021/06/03/ranger/#post-comment

目录
相关文章
Zeppelin安装与配置
本文介绍zeppelin安装与配置指南
Zeppelin安装与配置
|
9月前
|
PHP
phpstudy集成环境设置环境变量启用PhpStorm中的命令行工具的解决方案
phpstudy集成环境设置环境变量启用PhpStorm中的命令行工具的解决方案
150 0
|
缓存 Linux 网络安全
OushuDB 安装与升级之命令行安装准备(上)
OushuDB 安装与升级之命令行安装准备(上)
73 0
|
网络协议 Java 网络安全
OushuDB 安装与升级之命令行安装准备(下)
OushuDB 安装与升级之命令行安装准备(下)
59 0
|
Linux 数据安全/隐私保护
常用命令大全(权限管理命令)
常用命令大全(权限管理命令)
125 0
常用命令大全(权限管理命令)
|
数据安全/隐私保护
ovirt如何使用命令行管理用户和用户组
ovirt如何使用命令行管理用户和用户组
258 0
|
Ubuntu Shell
Tmux常用功能总结
Tmux 的快捷键前缀(Prefix) 为了使自身的快捷键和其他软件的快捷键互不干扰,Tmux 提供了一个快捷键前缀。当想要使用快捷键时,需要先按下快捷键前缀,然后再按下快捷键。Tmux 所使用的快捷键前缀默认是组合键 Ctrl-b(同时按下 Ctrl 键和 b 键)。
Tmux常用功能总结
安装 OushuDB Ambari 插件
我们假设用户已经安装了HDP Ambari,并且已经安装了HDFS和Zookeeper。安装步骤可以参考: ● https://docs.hortonworks.com/HDPDocuments/Ambari/Ambari-2.4.2.0/index.html ● https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.5.3/index.html
138 0
安装 OushuDB Ambari 插件
|
缓存 网络协议 Java
OushuDB 安装与升级之命令行安装的准备
OushuDB 安装与升级之命令行安装的准备:配置YUM源及安装方式;交换公钥,设置无密码登陆;安装其他节点YUM源;关闭selinux;关闭防火墙;安装配置NTP;安装java;关于数据目录;关于IPV6
112 0
OushuDB 安装与升级之命令行安装的准备