同一服务器上两个账户的 PuTTY 终端行为不同

同一服务器上两个账户的 PuTTY 终端行为不同

我使用 PuTTY 连接到我的服务器,我有两个帐户。一个帐户给我一个彩色终端并正确响应 home/end 键,而另一个帐户给我一个黑白提示符,home/end 键产生~s。两个帐户都有相同的 .bashrc 文件,并且除了指定的用户名外,PuTTY 设置完全相同。

有人能帮助我了解这是什么原因造成的吗?

编辑
为了修复 Home/End 键,我需要添加/etc/inputrc/lib/x86_64-linux-gnu/libreadline.so。* 到监狱中的可用文件,感谢 grawity 的指示。

要修复颜色提示问题,请使用标准.bashrc,我需要补充/usr/bin/tput也进监狱了。

答案1

终端的行为方式相同。但按键的解释和提示不是由终端本身,而是由运行在终端中的程序(主要是

您的两个帐户可能设置为使用不同的登录 shell - 一个使用 bash(或者可能是 zsh),另一个可能设置为普通的 /bin/sh。

用于getent passwd USERNAME检查该帐户配置的shell,并chsh进行设置。


另外,即使在 bash/zsh 中,提示格式和关键信息也是从外部文件读取的。

  • 提示符以及启用“ls”颜色的别名在“profile”和“bashc”文件中配置。即/etc/bashrc(或类似)和~/.bashrc

  • 密钥被识别阅读行,它主要使用 ncurses 的“terminfo”数据库/usr/share/terminfo,但也有各种自定义设置/etc/inputrc

    (Zsh 使用自己的 zshzle,我不知道它需要哪些文件,但我确信它无论如何都需要 terminfo DB。)

对于被监禁的账户,请确保所有这些文件都可用。如有必要,使用 strace 或类似工具(truss 等)查看 shell 加载了哪些文件。

相关内容