Нужна помощь с такими переменными, как $current_dir, $user_host и т. Д.

Я довольно новичок в Linux, поэтому, пожалуйста, потерпите меня здесь:)

Я хочу настроить приглашение оболочки (в 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 ~$

Символы, которые начинаются с % в приведенных выше кодах приведены специальные последовательности "escape", которые используются для указания различных видов информации. В переменной PROMPT любое возникновение этих % последовательности заменяются информацией, которую они представляют. В приведенных выше кодах:

  • %n представляет имя пользователя и эквивалентно $USERNAME
  • %m представляет имя хоста до первого .
  • %~ представляет собой $PWD, но сделаю два типа замен. Если названный каталог X это префикс текущего каталога, то ~X отображается. Если текущий каталог является вашим домашним каталогом, $HOME, просто ~ отображается.

Теперь у вас есть различные варианты отображения данных / времени:

  • %t - Текущее время дня в 12-часовом формате в формате am/pm.
  • %T - Текущее время дня в 24-часовом формате.
  • %* - Текущее время суток в 24-часовом формате, с секундами.
  • %w - Дата в формате день-дд.
  • %W - Дата в формате мм / дд / гг.
  • %D - Дата в формате гг-мм-дд.

Так,

PROMPT="${USER_HOST} ${CURRENT_DIR}%t$ "

выдаст подсказку вроде:

ron@ron ~9:11AM$

См. "Расширение последовательностей подсказок" в man zshmisc или посмотрите на это или это для большего количества доступных вариантов.

Другие вопросы по тегам