使用 Ubuntu 22.04 运行 Amazon EC2 实例。弹性ip地址为52.120.94.72。
我希望 bash 提示符这样读(没有空格)
[email protected]:~/working_directory$
根据网上的一些建议,我像这样编辑了 /etc/hosts 文件的顶部
127.0.0.1 localhost 52.120.94.72
甚至将以下行添加到 .bashrc
export PS1='\[\033[0;32m\]\u@\h:\[\033[36m\]\W\[\033[0m\] \$ '
但它不起作用,目前,bash 提示看起来像
della@52:~ $
这太荒谬了。如何让它看起来像我想要的。此外,$HOSTNAME 环境变量在此上下文中是否重要?特别是,如果我在这种情况下运行一些网络服务器,我可以只使用 ip 地址进行调用,对吧?不需要主机名。
据我所知,让您的提示实际上得出该 IP 地址是相当困难的。根据此处带有特殊字符的列表,Bash 不提供现成的变量供其使用。
我认为最简单的方法是简单地硬编码您希望在提示定义中看到的 IP 地址:
其中
\u
,\$
和是根据此处\w
的定义由 bash shell 扩展的一些特殊字符:\u
当前用户的用户名。
\w
PWD shell 变量 ($PWD
) 的值,$HOME
缩写为波浪号~
(使用$PROMPT_DIRTRIM
变量)。\$
如果有效 uid 为 0,
#
,否则$
。在您引用的示例中使用其他转义符:
你会得到一个用 ANSI 转义序列/代码格式化的提示,它指示你正在使用的终端程序应用特定的格式和颜色。
有关详细概述,请参阅https://stackoverflow.com/questions/4842424/list-of-ansi-color-escape-sequences 。
您当然可以依靠外部助手来获取您的 IP,例如查询实例元数据 URI: