我对 Linux 还很陌生,所以请耐心等待 :)
我想自定义我的 shell 提示符(在 中zsh
)。现在它看起来像这样(不是我写的):
PROMPT="${user_host} ${current_dir} ${rvm_ruby}
%B$%b "
现在这些变量等被称为什么${user_host}
,在哪里可以看到它们的列表,以便我可以在提示中包含诸如当前时间之类的内容?
答案1
可以将诸如此类的变量${user_host}
设置为.zshrc
文件内的所需值。
例如在您的中添加以下几行.zshrc
:
local USER_HOST="${_prompt_colors[4]}%n@%m"
local CURRENT_DIR="${_prompt_colors[5]}%~"
PROMPT="${USER_HOST} ${CURRENT_DIR}$ "
会给出如下提示:
ron@ron ~$
以上代码中以 开头的字符%
是特殊的“转义”序列,用于指定不同类型的信息。在 PROMPT 变量中,这些%
序列的任何出现都会被它们所代表的信息替换。在上述代码中:
%n
表示用户名,相当于$USERNAME
%m
表示第一个主机名.
%~
代表$PWD
,但会进行两种类型的替换。如果命名目录X
是当前目录的前缀,则~X
显示 。如果当前目录是您的主目录,$HOME
则只~
显示 。
现在,您有多种选项来显示数据/时间:
%t
- 当前时间,采用 12 小时制,上午/下午格式。%T
- 当前时间,采用 24 小时格式。%*
- 当前时间采用 24 小时格式,带秒。%w
- 日-日格式的日期。%W
- 日期格式为 mm/dd/yy。%D
- 日期格式为 yy-mm-dd。
所以,
PROMPT="${USER_HOST} ${CURRENT_DIR}%t$ "
会给出如下提示:
ron@ron ~9:11AM$