Linux Mint и его Cinnamon. Очерки применителя
Шрифт:
Или наоборот, таким:
[zshuser]$=> [/home/data/current]
Добиться этого можно, как вы понимаете, редактированием файла ~/.zshrc. До сих пор он у нас содержал единственную строку комментария:
# Created by newuser for 5.0.2
Теперь же добавляем в него сторки для получения приглашения первого вида:
## Prompt
PROMPT='%~ $=> '
RPROMPT=' [%n] '
Или второго:
## Prompt
PROMPT='[%n]$=> '
RPROMPT=' [%~] '
Раньше мне больше нравился первый вариант, но ныне я перешёл на второй.
Кроме
PROMPT2='%i%U> '
В результате в нём выводится номер «вторичной» строки в данном сеансе шелла, указывается стрелкой на то, что ввод следует в ней продолжить, а сам ввод даётся подчёркнутым шрифтоначертанием. Вживе это выглядит так:
[zshuser]$=> echo $USER \ [~]
33> echo $SHELL \
34> echo $PATH
zshuser echo /bin/zsh echo /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Что же до коррекции ошибок, у меня она отключена (к этому вопросу мы ещё вернёмся).
А вообще, как можно увидеть в файле zshexports.gz, в любом из видов приглашения командной строки могут фигурировать:
• полное или сокращенное имя хост-машины;
• путь к текущему каталогу в различных формах;
• номер текущей команды в буфере истории или строки в данном сеансе работы;
• имя пользователя;
• название командной оболочки;
• номер виртуальной консоли или текущего терминала;
• дата и время в разных форматах;
• индикация работы от лица суперпользователя;
• любые символы типа стрелок, крышечек, скобочек;
• текстовые сообщения (например, поздравление с началом трудового процесса);
• и многое другое.
Кроме того, приглашение могут быть оформлены визуально различно: выделением жирным шрифтом (boldface mode), инвертированием текста/фона (standout mode), полчёркиванием (underline mode), а также цветами. «Раскрашенный» шелл мне нравится не больше, чем «раскрашенный» Штирлиц, инвертирование также вызывает раздражение, а вот выделение полужирным шрифтоначертанием и подчёркиванием я использую. В результате секция настройки вида приглашения в моём ~/.zshrc выглядит так:
# Left prompt
PROMPT='%B[%n]$=>%b '
PROMPT2='%i%U> '
#
# Right prompt
RPROMPT=' %B[%~]%b '
Как уже говорилось, я не призываю к подражательству, а лишь предлагаю поэкспериментировать, чтобы добиться максимальной информативности приглашения и его внешней выразительности.
Темы приглашений
Только что речь шла о том, как оформить приглашение командной строки Zsh своими руками, в соответствие с собственными вкусами и предпочтениями. Однако можно пойти другим путём, и воспользоваться уже готовыми темами приглашений.
Они входят в пакет zsh-common, который всегда, насколько я знаю, устанавливается как зависимость пакета zsh. После установки местоположение готовых тем — каталог /usr/share/zsh/functions/Prompts.Сами по себе темы приглашения — файлы вида prompt_themename_setup, представляющие собой функции Zsh, описывающие как вид приглашения, так и, часто, некоторый его декор, типа расцветки, которая может быть нескольких видов. Однако разбираться в устройстве этих функций не обязательно — с ними можно ознакомиться визуально.
Знакомство это начинается с запуска функций управления видом приглашений:
$ autoload -U promptinit && promptinit
После чего можно давать команду на «смотрины невест»:
$ prompt -p
которая выведет их все (в моей системе — около двух десятков, плюс цветовые вариации) примерно в таком виде:
Среди «невест» можно видеть весьма пёстро наряженных:
Но и одетых весьма скромно также есть:
Выбрав подходящую
$ prompt имя_темы
при желании — с указанием цветовых параметров, например:
$ prompt fade white grey blue
Что в «живом» терминальном окне (терминал Sakura) будет выглядеть так:
А в выпадающем терминале Guake — несколько иначе:
Кстати, а в «голой» консоли вид этой же темы будет существенно скромнее — разбираться с программами для изготовления скриншотов консоли мне было лень, так что прошу поверить на слово.
Установленная таким образом тема будет функционировать только в данном терминальном окне в течении текущего сеанса. Чтобы увековечить её, необходимо вписать в файл ~/.zshrc такие строки:
autoload -Uz promptinit
promptinit
prompt clint
В примере приведена тема, пожалуй, наиболее информативного приглашения, которое «вживе» вылядит так:
Большое количество тем можно при желании отыскать на сайте Oh My ZSH!, но эти я уже заниматься не стал.
Приёмы навигации
Сознательные граждане, активно применяющие CLI, используют множество команд, как встроенных в их любимый шелл, так и внешних. Но, думаю, что самыми употребимыми в повседневной жизни являются такие:
• pwd для определения своего текущего положения на файловом древе — да-да, иногда, после многократных переходов между подкаталогами, забываешь, не только кто я, но и где я (уж не в Тимирязском ли?);
• ls — для просмотра содержимого текущего каталога;
• cd — для перехода в определённый каталог.
Однако здесь Zsh вносит свои коррективы, здорово облегчающие жизнь его применителя. Только что было показано, как фактическим можно избавиться от команды pwd, выведя путь к текущему каталогу в качестве RPROMPT. Без команды ls, конечно, не обойтись и Zsh. А вот команда cd в Zsh просто… не нужна.