tmux使用简介——如何解决使用linux远程终端的掉线问题(保存远程服务器工作现场)

tmux终端复用实战
本文介绍了一款名为tmux的终端复用软件,它可以帮助用户在远程服务器上保持会话,即使网络连接中断也能轻松恢复工作。文章详细阐述了tmux的安装步骤及基本使用方法,包括如何创建和管理会话、窗口以及面板等。

概述:在使用linux远程登录的时候,我们经常需要在远程使用ssh登录到服务器上进行工作,此时,经常会碰到这样的问题:我们需要运行一个需要较长时间的测试,然后我们本地机器休眠导致连接断开,此时我们无法判断刚才那个测试是否进行完毕。2)由于本地终端和远程主机的连接断开,我们又需要重新输入很长的命令到原来的工作目录下 那么有什么好的软件能够保存我们在远程服务器的工作限长呢?本文介绍一款这样的软件——tmux


1.软件简介:


       tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;当然其功能远不止于此。

安装 可以使用Ports安装tmux,位置在/usr/ports/sysutils/tmux/;tmux仅有一个依赖包libevent,位于/usr/ports/devel/libevent/。
安装完成后输入命令tmux即可打开软件,界面十分简单,类似一个下方带有状态栏的终端控制台;但根据tmux的定义,在开启了tmux服务器后,会首先创建一个会话,而这个会话则会首先创建一个窗口,其中仅包含一个面板;也就是说,这里看到的所谓终端控制台应该称作tmux的一个面板,虽然其使用方法与终端控制台完全相同。
tmux使用C/S模型构建,主要包括以下单元模块:
server
服务器。输入tmux命令时就开启了一个服务器。
session
会话。一个服务器可以包含多个会话。
window
窗口。一个会话可以包含多个窗口。
panel
面板。一个窗口可以包含多个面板。


2.软件使用


操作 类似各种平铺式窗口管理器,tmux使用键盘操作,常用快捷键包括:
Ctrl+b
激活控制台;此时以下按键生效
系统操作
?
列出所有快捷键;按q返回
d
脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话
D
选择要脱离的会话;在同时开启了多个会话时使用
Ctrl+z
挂起当前会话
r
强制重绘未脱离的会话
s
选择并切换会话;在同时开启了多个会话时使用
:
进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器
[
进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出
~
列出提示信息缓存;其中包含了之前tmux返回的各种提示信息
窗口操作
c
创建新窗口
&
关闭当前窗口
数字键
切换至指定窗口
p
切换至上一窗口
n
切换至下一窗口
l
在前后两个窗口间互相切换
w
通过窗口列表切换窗口
,
重命名当前窗口;这样便于识别
.
修改当前窗口编号;相当于窗口重新排序
f
在所有窗口中查找指定文本
面板操作
将当前面板平分为上下两块
%
将当前面板平分为左右两块
x
关闭当前面板
!
将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板
Ctrl+方向键
以1个单元格为单位移动边缘以调整当前面板大小
Alt+方向键
以5个单元格为单位移动边缘以调整当前面板大小
Space
在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled
q
显示面板编号
o
在当前窗口中选择下一面板
方向键
移动光标以选择面板
{
向前置换当前面板
}
向后置换当前面板
Alt+o
逆时针旋转当前窗口的面板
Ctrl+o
顺时针旋转当前窗口的面板

重新登录以后,输入tmux attach就可以重新登入刚才脱离的远程工作现场。

<think>嗯,用户的问题是如何在Mac终端使用SSH远程连接服务器。看起来用户之前没有操作过这个功能,需要一个清晰的步骤说明。根据引用[1]和[2],Mac系统自带了SSH客户端,直接在终端输入命令即可。不过用户可能是第一次操作,所以需要把前提条件说清楚。我得先提醒用户需要准备好的三项信息:服务器IP、用户名和密码(或密钥)。这点在引用[2]的问题排查部分也有提及,如果缺失这些肯定会连接失败。基本命令格式两个引用都提到了:sshusername@ip。但引用[2]给了更详细的分步指引,包括打开终端的具体位置(应用程序/实用工具),这个路径信息对新手很重要。密钥登录的部分要特别注意文件路径的写法,引用[1]给的命令示范很清晰,直接采用。用户可能遇到的常见问题其实引用[2]已经列得很全了:连接超通常IP不对;权拒绝可能是密码错误或密钥配置问题。引用[3]提到的SSH协议加密特性虽然重要,但用户当前更需要的可能是操作指引而非原理,所以简要提一句安全性即可。考虑到用户使用的是Mac终端,文件路径的书写方式要特别说明(如波浪符~代替/home目录)。在生成相关问题,可以延伸端口修改和连接管理这类进阶操作。</think> 以下是基于 macOS 系统通过终端使用 SSH 连接服务器的完整指南,结合引用内容整理: ### 🔑 基础连接步骤(密码登录) 1. **打开终端** 进入「应用程序」→「实用工具」→ 双击打开「终端」应用[^2]。 2. **执行连接命令** 输入格式:`ssh 用户名@服务器IP地址` ✅ 示例:连接用户名为 `ubuntu`、IP为 `192.168.1.100` 的服务器 ```bash ssh ubuntu@192.168.1.100 ``` 3. **验证与登录** - 首次连接会提示保存主机指纹,输入 `yes` 确认 - 输入该用户对应密码(输入光标无反馈,输完直接回车) 4. **连接成功** 终端提示符变为 `用户名@服务器主机名` 即表明已登入远程服务器[^2]。 ### 🔐 密钥登录(更安全) 1. **前提条件** 需事先将公钥(`id_rsa.pub`)导入服务器 `~/.ssh/authorized_keys` 文件中 2. **执行命令** ```bash ssh -i /path/to/私钥文件 用户名@服务器IP ``` ✅ 示例(私钥存储在桌面): ```bash ssh -i ~/Desktop/my_key.pem ubuntu@192.168.1.100 ``` ### ⚙️ 常用参数扩展 | 参数 | 作用 | 使用示例 | |------------|-----------------------|------------------------------| | `-p 端口号` | 指定非默认端口(22) | `ssh -p 2222 user@ip` | | `-v` | 显示详细连接过程(调试) | `ssh -v user@ip` | | `-C` | 启用数据传输压缩 | `ssh -C user@ip` | ### ⚠️ 常见问题排查 1. **连接超** - 检查 IP 是否正确 - 确认服务器防火墙开放 SSH 端口(默认 22)[^2] 2. **权拒绝(Permission denied)** - 密码/密钥错误 → 重新核对认证信息 - 服务器未添加公钥 → 检查 `authorized_keys` 文件[^2] 3. **提示 `ssh: connect to host port 22: Connection refused`** - 目标服务器 SSH 服务未运行 → 联系管理员确认服务状态[^3] ### 📍 连接管理 - **退会话**:输入 `exit` 或 `logout` - **保持会话**:使用 `tmux` 或 `screen` 防止网络中断导致断开 > 💡 技术原理:SSH(Secure Shell) 通过非对称加密技术建立安全通道,所有传输数据均加密(包括密码),彻底取代了明文传输的 Telnet[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值