新手可通过在/etc/profile中设置TMOUT=900并export,使所有新终端空闲15分钟自动退出;需配合SSH的ClientAliveInterval与ClientAliveCountMax实现网络层超时保障。

新手可以通过在系统级 Profile 文件中设置 TMOUT 环境变量,让所有新打开的命令行交互终端在空闲指定时间后自动退出。这个方法简单、通用,不依赖额外工具,且对本地终端和 SSH 登录都生效。
确认当前是否已启用空闲超时
打开终端,运行:
echo $TMOUT
如果输出为空或 0,说明未启用;如果输出是正整数(如 900),表示已设为对应秒数(这里是 15 分钟)。默认不设置即无超时,适合新手先检查现状。
为所有用户统一配置(推荐新手起步用)
编辑全局 Profile 文件,确保每次新建登录会话都自动加载该策略:
- 用 root 权限打开:sudo nano /etc/profile
- 在文件末尾新增两行(注意拼写是 TMOUT,不是 TMOU T 或其他变体):
TMOUT=900
export TMOUT - 保存退出(Ctrl+O → Enter → Ctrl+X)
- 立即生效:source /etc/profile
其中 900 表示 15 分钟,可根据需要改为 1800(30 分钟)等值。该设置对所有普通用户、root 用户均有效,新开终端即继承。
验证是否生效及临时关闭方法
新开一个终端窗口,不输入任何命令,静待设定时间(如 15 分钟),观察是否自动退出并显示 timeout 提示。
若需临时禁用(例如执行长时脚本或 sudo 操作):
- 当前会话中运行:unset TMOUT
- 完成后恢复:TMOUT=900; export TMOUT
这个操作只影响当前终端窗口,关闭后自动失效,不影响系统级配置。
补充说明:仅靠 TMOUT 还不够?
TMOUT 控制的是 shell 层面的键盘输入空闲,但无法处理网络假活跃(如笔记本休眠后重连、防火墙中断连接等)。若主要使用 SSH 远程登录,建议同步配置 SSH 服务端参数:
- 编辑 /etc/ssh/sshd_config,确保以下两行启用:
ClientAliveInterval 300
ClientAliveCountMax 3
→ 合计 15 分钟无响应即强制断开 SSH 连接 - 重启服务:sudo systemctl restart sshd
这样可覆盖终端输入空闲与网络连接空闲两类场景,真正实现可靠自动断开。










