我知道您可以通过编辑〜/ .bashrc文件中的PS1变量来永久编辑bash提示,我的看起来像这样:
PS1="\[\e[0;31m\]<HERP(._.)DERP>\[\e[0;0m\]";
但是你可以在那里设置一个小小的图像吗?例如,如果我想在“HERP(._。)DERP”之前添加一个小的美国国旗图标,我可以这样做吗?
答案 0 :(得分:9)
实际上,是的,你可以。
在最近的Bash版本中,至少有4个(我可以在4.2和4.3中完成), 你可以用十六进制渲染表情符号。
使用echo -e
标志。
粘贴emoji you looked up并执行hexdump以查看其内容:
plasmarob ~ $ echo -n ""| hexdump
0000000 f0 9f 87 ba f0 9f 87 b8
0000008
然后使用该顶行并使用\ x:
转义每个十六进制对plasmarob ~ $ echo -e 'See? \xf0\x9f\x87\xba\xf0\x9f\x87\xb8'
See?
我实际上将我的修改为:
plasmarob~⚡
所以是的,想出这样一个并尝试将其添加到.bashrc
或.bash_profile
。
答案 1 :(得分:5)
如今,如果您有表情符号字体,可以添加表情符号。我想在问题最初发布时,这不是一个容易可行的选择
几年前I wrote this blog post about it。
我不了解美国国旗,但export PS1="\360\237\232\251 > "
在你的提示中得到了一面旗帜。
我还编写了一个shell工具,使echo或shell提示的转义更容易打印。它被称为emo
答案 2 :(得分:3)
抱歉,没有。终端不做图形。
有关您可以做什么的完整说明,请参阅bash(1)手册页的 PROMPTING 部分:
PROMPTING
当以交互方式执行时,bash在准备好读取命令时显示主提示PS1,在需要更多输入以完成命令时显示辅助提示PS2。 Bash允许通过插入一些反斜杠转义的特殊字符来自定义这些提示字符串,这些特殊字符按如下方式解码:
\a an ASCII bell character (07) \d the date in "Weekday Month Date" format (e.g., "Tue May 26") \D{format} the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation. The braces are required \e an ASCII escape character (033) \h the hostname up to the first ‘.’ \H the hostname \j the number of jobs currently managed by the shell \l the basename of the shell’s terminal device name \n newline \r carriage return \s the name of the shell, the basename of $0 (the portion following the final slash) \t the current time in 24-hour HH:MM:SS format \T the current time in 12-hour HH:MM:SS format \@ the current time in 12-hour am/pm format \A the current time in 24-hour HH:MM format \u the username of the current user \v the version of bash (e.g., 2.00) \V the release of bash, version + patch level (e.g., 2.00.0) \w the current working directory, with $HOME abbreviated with a tilde (uses the value of the PROMPT_DIRTRIM variable) \W the basename of the current working directory, with $HOME abbreviated with a tilde \! the history number of this command \# the command number of this command \$ if the effective UID is 0, a #, otherwise a $ \nnn the character corresponding to the octal number nnn \\ a backslash \[ begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt \] end a sequence of non-printing characters
命令编号和历史编号通常不同:命令的历史编号是其在历史列表中的位置,可能包括从历史文件中恢复的命令(参见下面的历史记录),而命令编号是位置在当前shell会话期间执行的命令序列中。解码字符串后,它会通过参数扩展,命令替换,算术扩展和引用删除进行扩展,具体取决于promptvars shell选项的值(请参阅下面SHELL BUILTIN命令下的shopt命令说明)。
\e
,\[
和\]
转义序列值得特别关注。使用这些,您可以插入ANSI escape codes命令终端更改前景色,背景色,移动光标,擦除部分屏幕,以及做其他花哨的技巧。
也就是说,例如,提示如何改变颜色。 \[\e[0;31m\]
将前景色设置为红色,\[\e[0;0m\]
将其重置为默认值。
答案 3 :(得分:0)