我使用 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 加载了哪些文件。