主要是分享Github上的一个tmux配置,我自己一直用这个配置。
直达Github oh-my-tmux

对于不了解tmux的朋友,这是简要功能介绍
多会话管理:tmux允许你在一个终端窗口中创建多个会话,每个会话可以独立运行不同的命令和程序。这样你可以同时处理多个任务,而不需要打开多个终端窗口。
会话持久性:tmux会话可以在你注销或断开连接后继续运行,这意味着你可以在不中断任务的情况下关闭终端窗口或断开SSH连接。当你再次连接到服务器时,你可以恢复之前的会话,继续你的工作。
窗格和窗口管理:tmux允许你将终端窗口分割成多个窗格,每个窗格可以显示不同的命令输出或程序界面。你可以轻松地在窗格之间切换,调整它们的大小和布局。此外,你还可以创建多个窗口,每个窗口可以包含不同的会话和窗格,以便更好地组织你的工作环境。
会话共享:tmux允许多个用户同时访问同一个会话,这对于协作工作或远程教学非常有用。多个用户可以在同一个终端窗口中共享会话,并实时查看彼此的操作。
关于安装
Github仓库的readme中就有安装教程,我也写了一个简单的脚本放在这里(贴在后面)。
配置文件可以装在这三个位置
- ~
- $XDG_CONFIG_HOME/tmux
- ~/.config/tmux
只是配置文件,所以还需要自己安装tmux。一般通过包管理器apt或yum安装。
配置文件要求的tmux版本是>=2.4,查看tmux命令: tmux -V
tmux版本低于这个的需要更新下tmux,如果包管理器里面的最新版本都低于2.4。。。。
移步到tmux编译安装https://github.com/tmux/tmux/wiki/Installing
安装前或安装后需要运行tmux kill-server关闭所有会话后再新建会话才能看到效果。记得保存会话中未保存的工作。
开始安装
按照readme
在用户目录安装:
$ cd
$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s -f .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local .
在$XDG_CONFIG_HOME/tmux安装 :
$ git clone https://github.com/gpakosz/.tmux.git "/path/to/oh-my-tmux"
$ mkdir -p "$XDG_CONFIG_HOME/tmux"
$ ln -s "/path/to/oh-my-tmux/.tmux.conf" "$XDG_CONFIG_HOME/tmux/tmux.conf"
$ cp "/path/to/oh-my-tmux/.tmux.conf.local" "$XDG_CONFIG_HOME/tmux/tmux.conf.local"
在~/.config/tmux安装:
$ git clone https://github.com/gpakosz/.tmux.git "/path/to/oh-my-tmux"
$ mkdir -p "~/.config/tmux"
$ ln -s "/path/to/oh-my-tmux/.tmux.conf" "~/.config/tmux/tmux.conf"
$ cp "/path/to/oh-my-tmux/.tmux.conf.local" "~/.config/tmux/tmux.conf.local"
自己写的一键脚本 (可以自己按需求改)
#!/bin/bash
# 检查并安装必要的工具
for tool in git awk perl sed tmux; do
if ! command -v $tool &> /dev/null; then
echo "$tool could not be found, attempting to install..."
# 尝试使用apt安装
if command -v apt &> /dev/null; then
sudo apt update
sudo apt install -y $tool
# 尝试使用yum安装
elif command -v yum &> /dev/null; then
sudo yum install -y $tool
else
echo "Package manager not supported. Please install $tool manually."
exit 1
fi
# 检查工具是否成功安装
if ! command -v $tool &> /dev/null; then
echo "Failed to install $tool. Please install it manually."
exit 1
fi
fi
done
# 检查tmux版本
TMUX_VERSION=$(tmux -V | awk '{print $2}' | sed 's/[^0-9.]*//g')
REQUIRED_VERSION="2.4"
if [[ $(echo "$TMUX_VERSION >= $REQUIRED_VERSION" | bc -l) -eq 0 ]]; then
echo "tmux version must be >= $REQUIRED_VERSION"
exit 1
fi
# 检查TERM环境变量
if [[ $TERM != "xterm-256color" ]]; then
echo "TERM must be set to xterm-256color"
exit 1
fi
# 选择安装位置
echo "Select the installation location:"
echo "1) Home directory (~)"
echo "2) XDG_CONFIG_HOME/tmux"
echo "3) ~/.config/tmux"
read -p "Enter your choice (1-3): " choice
case $choice in
1)
cd
git clone https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local .
;;
2)
INSTALL_DIR="$XDG_CONFIG_HOME/tmux"
git clone https://github.com/gpakosz/.tmux.git "$INSTALL_DIR/oh-my-tmux"
mkdir -p "$INSTALL_DIR"
ln -s "$INSTALL_DIR/oh-my-tmux/.tmux.conf" "$INSTALL_DIR/tmux.conf"
cp "$INSTALL_DIR/oh-my-tmux/.tmux.conf.local" "$INSTALL_DIR/tmux.conf.local"
;;
3)
INSTALL_DIR="$HOME/.config/tmux"
git clone https://github.com/gpakosz/.tmux.git "$INSTALL_DIR/oh-my-tmux"
mkdir -p "$INSTALL_DIR"
ln -s "$INSTALL_DIR/oh-my-tmux/.tmux.conf" "$INSTALL_DIR/tmux.conf"
cp "$INSTALL_DIR/oh-my-tmux/.tmux.conf.local" "$INSTALL_DIR/tmux.conf.local"
;;
*)
echo "Invalid choice"
exit 1
;;
esac
echo "Installation completed successfully"
echo "Please press Enter to restart tmux server, but if you have any unsaved work in tmux session, press Ctrl C to interrupt or you work will be lost!"
read -P "PRESS ENTER FOR RESTARTING; CTRL C FOR INTERRUPTING!" isEntered
tmux kill-server
tmux的一些命令和快捷键
命令
tmux当然有很多命令,这些在搜索引擎上搜到,所以只写最常用的那几个。
tmux ls列出所有会话tmux new -s [会话名]新建一个会话tmux attach -t [会话名]连接到指定会话tmux kill-session [会话名]删除指定会话tmux kill-session -a -t [会话名]删除除了指定会话外的所有会话。去掉-t [会话名]则删除所有会话
会话内快捷键
tmux的prefix仍是Ctrl-B,但Ctrl-A也可以
对于第一次使用的,prefix是一个先行指令,用来将tmux从输入模式切换到命令模式,例如从tmux切出的快捷键是prefix D(Ctrl-B D),不是Ctrl B D一起按,是先按Ctrl和B,松开这两个键后再按一下D。此外,这是会话内的键,也就是说必须先进入一个tmux会话才能用
prefix D从会话切出prefix S会话选择器prefix (上一个会话prefix )下一个会话prefix C新建一个窗口prefix &关闭当前窗口prefix p上一个窗口prefix n下一个窗口prefix [0~9]选择从0到9窗口中的一个prefix %将当前网格分为左右两个网格prefix "将网格分为上下两个网格prefix 小键盘方向键按方向切换网格prefix m激活鼠标操作模式
一些解释
会话(session):会话是一个虚拟的终端环境,可以包含多个窗口和网格。会话可以在后台运行,即使关闭终端也能保持会话的状态。一个会话可以包含多个窗口。
窗口(window):tmux的窗口是会话中的一个独立的工作区域,类似于桌面上的一个窗口。每个窗口可以运行不同的命令或应用程序,并且可以在窗口之间切换。窗口可以通过快捷键或命令来创建、关闭和切换。
网格(pane):tmux的网格是窗口中的一个分屏区域,类似于窗口中的一个小窗格。一个窗口可以分割成多个网格,每个网格可以运行不同的命令或应用程序。网格可以通过快捷键或命令来创建、关闭和切换。
鼠标操作:激活后可以使用鼠标滚轮查看缓冲区输出,也可以进行网格的选择,以及调整网格的大小(用光标拖动分界线)

还有一些自定义选项请移步原仓库吧。

看着挺高级的
有没有关于tmux套tmux相关的设置啊,用于ssh
ubuntu 这种情况怎么搞。