冰之杍头像
关注

Ubuntu 26.04使用SecurtCrt连接后一串start-end等解决

Ubuntu 26.04 使用 SecureCRT 连接后出现 start/end 字符串的解决方法

一、问题现象

使用 SecureCRT 通过 SSH 连接 Ubuntu 26.04 后,登录界面和执行命令时出现类似以下内容:

Welcome to Ubuntu 26.04 LTS (GNU/Linux 7.0.0-31-generic x86_64)

 * Documentation:  https://docs.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.
Last login: Wed Sep 16 22:05:46 2026 from 192.168.42.1

08;start=a51ac20a-1b26-42c7-b872-8e0a704d43fa;machineid=0893f2ffaa8c4521936195cc1dbb2ae1;user=liutest;hostname=liutest;bootid=03a5ec1f-d801-4884-8955-7594778dffcb;pid=00000000000000001356;type=shell;cwd=/home/liutestliutest@liutest:~$ ls -hl

08;start=177fd498-63e5-4e30-91dd-f8b2c70afb48;machineid=0893f2ffaa8c4521936195cc1dbb2ae1;user=liutest;hostname=liutest;bootid=03a5ec1f-d801-4884-8955-7594778dffcb;pid=00000000000000001356;type=command;cwd=/home/liutesttotal 0

08;end=177fd498-63e5-4e30-91dd-f8b2c70afb48;exit=success08;start=a51ac20a-1b26-42c7-b872-8e0a704d43fa;machineid=0893f2ffaa8c4521936195cc1dbb2ae1;user=liutest;hostname=liutest;bootid=03a5ec1f-d801-4884-8955-7594778dffcb;pid=00000000000000001356;type=shell;cwd=/home/liutestliutest@liutest:~$

这些内容会影响终端显示,但通常不会影响命令的正常执行。

二、问题原因

Ubuntu 26.04 默认启用了 systemd 的 Bash/OSC(Operating System Command)终端集成功能。

该功能会通过 Bash 环境变量,在命令执行前后向终端发送包含会话信息的控制序列,例如:

PROMPT_COMMAND="__systemd_osc_context_precmdline"
PS0="\$(__systemd_osc_context_ps0)"

这些控制序列可能包含以下信息:

  • machineid:系统机器 ID
  • bootid:本次系统启动 ID
  • user:当前登录用户
  • hostname:主机名
  • pid:当前 Shell 进程 ID
  • cwd:当前工作目录
  • startend:命令开始和结束标记

部分 SecureCRT 版本无法正确解析这些终端控制序列,因此会将它们当作普通文本直接显示出来,最终就出现了 08;start=...08;end=... 等内容。

三、临时解决方法

可以先在当前 SSH 会话中执行以下命令进行测试:

PS0=''
PROMPT_COMMAND=()

然后执行一条普通命令,例如:

ls -hl

如果终端中不再出现 08;start=08;end= 等字符串,说明问题已经确认。

这种方式只对当前会话有效,断开 SSH 或重新登录后会失效。

四、永久解决方法

方法一:直接追加到 .bashrc

执行以下命令:

cat >> ~/.bashrc <<'EOF'
PS0=''
PROMPT_COMMAND=()
EOF

然后重新加载配置:

source ~/.bashrc

也可以退出当前 SSH 会话后重新登录。

方法二:手动编辑 .bashrc

使用编辑器打开当前用户的 Bash 配置文件:

nano ~/.bashrc

在文件末尾添加:

PS0=''
PROMPT_COMMAND=()

保存后执行:

source ~/.bashrc

或者重新建立 SSH 连接。

五、验证是否生效

重新登录后,执行以下命令:

echo test
pwd
ls -hl

如果输出中不再出现类似下面的内容,说明问题已经解决:

08;start=...
08;end=...
machineid=...
bootid=...

正常情况下,终端输出应类似:

liutest@liutest:~$ echo test
test

liutest@liutest:~$ pwd
/home/liutest

六、注意事项

PROMPT_COMMAND 可能被其他工具使用,例如:

  • 命令审计工具
  • Git 状态提示
  • 自动切换目录工具
  • Shell 历史记录增强工具
  • 终端集成功能

将其设置为空数组后,会关闭当前用户 Bash 的相关命令提示钩子。因此,如果 .bashrc 中原本配置了其他 PROMPT_COMMAND 功能,建议先备份配置文件:

cp ~/.bashrc ~/.bashrc.bak

如需恢复,可以编辑 ~/.bashrc,删除以下两行:

PS0=''
PROMPT_COMMAND=()

然后重新加载配置:

source ~/.bashrc

七、总结

该问题主要是 Ubuntu 26.04 的 systemd Bash 终端集成功能与 SecureCRT 的终端控制序列解析不兼容导致的。

解决步骤如下:

PS0=''
PROMPT_COMMAND=()

确认当前会话恢复正常后,将这两行加入:

~/.bashrc

即可在以后登录时自动生效。该操作只会关闭当前用户的终端标记功能,不会影响系统服务、SSH 服务或普通命令的执行。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/jxlhljh/article/details/165701882

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--