Чтение онлайн

на главную - закладки

Жанры

Linux Mint и его Cinnamon. Очерки применителя

Федорчук Алексей Викторович

Шрифт:

Сами по себе темы приглашения — файлы вида 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 просто… не нужна.

Да, дорогие мои болельщики, в среде Zsh без этой команды не просто можно обойтись, а жить куда комфортней, нежели с ней. Ведь давайте вспомним, что такое переход в каталог имя_рек? Для типа файлов, именуемого каталогом (directory) это то же самое, что исполнение для обычного (ordinary) файла, будь он откомпилированным бинарником или интерпретируемым сценарием.

И потому более чем логично то, что как для запуска

скрипта оболочки не требуется никакой внешней команды (хотя и не возбраняется что-нибудь типа . или /bin/sh), так и для перехода в каталог, к которому данный юзер имеет доступ (то есть попадает в число тех, для кого у этого каталога установлен бит исполнения), ему достаточно указать полный путь к нему, без всяких команд. Например, введя к командной строке что-нибудь вроде

$ /usr/share/fonts/truetype/

можно сразу оказаться в каталоге с TTF-шрифтами.

«Бескомандный» переход в каталоги распространяется и на «символические» обозначения последних. Так, команда

$ ~

переместит пользователя в его домашний каталог. Как, кстати, и команда

$ $HOME

Хотя практического смысла последний вариант не имеет. Зато директива

$ ..

волшебным образом ознаменует переход в каталог, родительский относительно текущего.

Правда, всё это происходит не само собой: для практического воплощения этого волшебства в общесистемном конфиге /etc/zsh/zshrc или пользовательском ~/.zshrc должна присутствовать строка

setopt autocd

В пару к ней можно добавить ещё и такую строку:

cdpath=(~/ /home/current/ /home/data/)

где в скобках перечислены каталоги, к подкаталогам которых чаще всего требуется быстрый доступ. И теперь, где бы в пределах файлового древа ни находился пользователь, ввод им директивы

$ Documents

нечувствительно сделает текущим каталогом /home/username/Documents.

То есть опция autocd и массив переменных cdpath отнюдь не исключают, а прекрасно дополняют друг друга.

Автодополнение

Волшебное свойство клавиши Tab, вызывающей автодополнение — одно из первых, с чем знакомится применитель CLI. Хотя при этом часто забывается, что когда-то, в перворождённом шелле Борна, никакого автодополнения не было. Оно появилось в Csh — и сначала только для путей, но не для команд. Тем не менее, ныне представить себе интерактиную работу в командной строке без автодополнения невозможно (да и не нужно).

Однако в Zsh клавиша Tab волшебна дважды: она не только дополняет пути и команды после их частичного ввода, но и способна развернуть аббревиатуры для тех и других. Например, нажатие клавиши табулции после набора последовательности

$ /u/s/f/tr

развернёт её в полный путь к каталогу со шрифтами TrueType

$ /usr/share/fonts/truetype

а после нажатия клавиши Enter сделает этот каталог текущим, как мы только что видели.

Правда, само по себе развёртывание аббревиатур работать не будет — его надо активизировать такими строками в файле ~/.zshrc:

 autoload -Uz compinit

compinit

Можно пойти дальше, и не просто разворачивать безальтернативные аббревиатуры, типа приведённый выше, но и выбирать стрелками, как в меню, подкаталги или файлы среди предлагаемый альтернатив. Например, если набрать ту же самую последовательность символов:

Поделиться:
Популярные книги

Брак по принуждению

Кроу Лана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Брак по принуждению

Потусторонний. Книга 2

Погуляй Юрий Александрович
2. Господин Артемьев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Потусторонний. Книга 2

Его маленькая большая женщина

Резник Юлия
Любовные романы:
современные любовные романы
эро литература
8.78
рейтинг книги
Его маленькая большая женщина

Господин следователь. Книга 4

Шалашов Евгений Васильевич
4. Господин следователь
Детективы:
исторические детективы
5.00
рейтинг книги
Господин следователь. Книга 4

Жандарм 4

Семин Никита
4. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 4

Офицер империи

Земляной Андрей Борисович
2. Страж [Земляной]
Фантастика:
боевая фантастика
попаданцы
альтернативная история
6.50
рейтинг книги
Офицер империи

Возвышение Меркурия. Книга 4

Кронос Александр
4. Меркурий
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Возвышение Меркурия. Книга 4

Ученик

Губарев Алексей
1. Тай Фун
Фантастика:
фэнтези
5.00
рейтинг книги
Ученик

Хозяйка заброшенного поместья

Шнейдер Наталья
1. Хозяйка
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка заброшенного поместья

Внебрачный сын Миллиардера

Громова Арина
Любовные романы:
современные любовные романы
короткие любовные романы
5.00
рейтинг книги
Внебрачный сын Миллиардера

Изгой Проклятого Клана

Пламенев Владимир
1. Изгой
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Изгой Проклятого Клана

Изгой Проклятого Клана. Том 2

Пламенев Владимир
2. Изгой
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Изгой Проклятого Клана. Том 2

Девушка без репутации

Усова Василиса
1. Месть попаданки
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Девушка без репутации

(Не)зачёт, Дарья Сергеевна!

Рам Янка
8. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
(Не)зачёт, Дарья Сергеевна!