通过ssh或putty设置自定义bash提示符


1

当登录到服务器时,我希望在我的bash提示符上显示时间,所以当我检查以前的事情时,我可以看到我什么时候做了。我认为在尝试调试时这是一个特别有用的功能。
它看起来像这样:

[root@server 11:46:02 ~]# ls
file1 file2
[root@server 11:47:50 ~]# whoami
root

我发现我可以这样做ssh

ssh root@server -t "export PS1='[\u@\h $(date +%H:%M:%S) \W]\$ '; exec bash"

ssh root@server -t "export PS1='[\u@\h \t \W]\$ '; exec bash"

但显然每次输入新内容时,日期都不会更新。
我根本没想过如何从PuTTY中做到这一点 - 我看到Connections - > Data中有一个设置将环境变量发送到服务器,但这不起作用。

请注意,我不想在服务器端更改任何内容(没有sshd更改,没有bashrc或配置文件更改):)


你不要改变服务器端的东西吗?但是如何添加一个纯粹的脚本呢?我对这个主题进行了很长时间的尝试,并且在没有配置sshd的情况下也没有解决方案。
h0ch5tr4355 2015年

我不想改变任何服务器端或添加脚本的原因是我管理了很多服务器,这样做太不方便了。此外,我有时连接到不是由我“拥有”的服务器并且留下脚本并不好。BTW你尝试过什么?腻子还是什么?
2015年

Answers:


3

我不能帮你用腻子,但请注意,bash有对当前时间的代码,这样就可以代替$(date +%H:%M:%S)通过\t


嘿那太好了!感谢您的建议,它的确有效。
2015年

0

虽然我实际上没有找到PuTTY的答案,但我找到了一个更好的选择:
1。安装Cygwin(并享受更高的生产力)
2。将Cygwin快捷方式添加到我的PATH中,这样我就可以做WIN + R并输入cyg来打开终端
3.在Cygwin~ / .bashrc中添加此函数:

ssh () { /usr/bin/ssh "$@" -t "export PS1='[\t \u@\h \W]\$ '; exec bash"; }

重新打开Cygwin或者source ~/.bashrcssh user@server提示是我想要的*:
[12:03:08 user@server ~]$

*适用于CentOS或AWS Linux。没有在Ubuntu上工作,因为它会覆盖$ PS1。

免责声明:卡在Windows上,无法安装Ubuntu也不能双启动。VM不是一个选项。/哭

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.