Алексей Федорчук - Linux Mint и его Cinnamon. Очерки применителя
- Название:Linux Mint и его Cinnamon. Очерки применителя
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Алексей Федорчук - Linux Mint и его Cinnamon. Очерки применителя краткое содержание
Linux Mint и его Cinnamon. Очерки применителя - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Конструкция далеко не столь проста, как в sh-совместимых оболочках типа Bash. Кроме того, для просмотра «полезного» вывода она потребует ещё одной команды — вызова какого-либо пейджера вроде less:
% (command > out)>& err ; less out
А вот применителям Zsh — проще всех. Им достаточно задать такой глобальный псевдоним:
$ alias -g N='2>/dev/null'
где -g указывает, что следующий символ (или символы) являют собой на простой псевдоним, а глобальный, N — его имя, а следующая после равенства последовательность в строгих кавычках — подменяемое им выражение. После чего можно практиковать такое:
$ find path3 -name [filename] N
И больше не заботиться о фильтрации зёрен от плевел.
Глобальные псевдонимы очень полезны в командных конструкциях перенаправления по конвейеру, например, для поэкранного вывода:
$ alias -g L='|less'
Пример для «пролистывания» вывода команды dmesg:
$ dmesg L
Для фильтрации по вхождению «слова» можно задать такой глобальный псевдоним:
alias -g G='|grep'
После чего использовать его в конструкциях, подобных такой:
$ dmesg G raid
что выведет нечто вроде
[ 1.434246] md: raid0 personality registered for level 0
[ 1.434376] md/raid0:md0: md_size is 390742016 sectors.
...
Мне весьма полезен глобальный псевдоним вида
alias -g W='|wc -m'
Поскольку часто требуется прибегать к такой конструкции
$ cat filename W
которая в данном случае выведет число символов в текстовом файле — для меня оно важнее числа байт (а при использовании 16-битной кодировки для преимущественно кириллического текста эти значения не совпадают).
К именам глобальных псевдонимов применяются те же требования, что и к именам псевдонимов обычных: они должны быть по возможности короткими, мнемонически прозрачными. И, разумеется, определения всех постоянно используемых глобальных псевдонимов следует занести в свой кондуитик — то есть в ~/.zshrc.
Разумеется, здесь не описаны все возможные случаи употребления глобальных псевдонимов — они лимитируются только потребностями применителя и его фантазией. И, конечно, наказом, который дал атаман Платов небезызвестному Левше:
Не пей мало, не пей много, а пей средственно.
То есть — не придумывайте глобальных псевдонимов больше, чем сможете запомнить.
Псевдонимы-суффиксы
Кроме обычных и глобальных псевдонимов, в Zsh существует ещё одна их разновидность — псевдонимы «суффиксные», более удачного определения на языке родных осин я не придумал, псевдонимы.
Подобно тому, как добаление к команде alias опции -g с помощью магии превращает обычный псевдоним в глобальный, так и опция -s делает обычный псевдоним «суффиксным». То есть привязывает суффикс имени файла (те, кто, подобно автору этих строк, затронуты порчей чёрным DOS'ом, до сих пор часто называют его «расширением») к некоей программе, которая может сотворить над ним нужное действо. Например, если задать псевдоним такого вида
$ alias -s html=links
а затем набрать в CLI такое
$ path3/некто.html
то этот самый некто.html будет открыт в текстовом браузере Links.
Чем, разумеется, возможности «суффиксных» псевдонимов не исчерпываются — как всегда, предел им ставит только фантазия применителя применительно к его задачам. Ограничусь одним примером.
Какой же русский не любит Командера-полуночника? В том числе и потому, что он — один из сыновей прославленного командера Нортона, имя которого, в свою очередь, не более чем alias незабвенного лейтенанта Шмидта (история его чудесного спасения из лап царской охранки и последующей блестящей карьере сначала в ВМС Пендостана, а затем в интернациональном софтверном бузиненсе реконструирована нашими замечательными историкамииз славного Екатеринбурга). Впрочем, со временем наш русский применитель, не смотря на весь свой патриотизм, начинает понимать, что слепая любовь к MC связывает ему руки в операциях с возлюбленной CLI, и хорошо бы с командиром расстаться, как это делают цивилизованные люди — без скандалов и истерик.
Но тут возникает проблема: MC — один из самых удобных способов просмотра того, из чего состоят файлы пакетов (будь то deb, rpm или что ещё из tar.*z-серии). Так вот, механизм «суффиксных» псевдонимов Zsh предлагает нам адекватную замену: если дать команду, например,
$ alias -s deb='dpkg -c'
а затем набрать в командной строке такое:
$ path3/opera-beta_25.0.1614.11_amd64.deb
то мы сразу увидим, что же припасли для нас разработчики этого многими любимого браузера в своём полуподпольном пре-релизе за нумером 25 (впрочем, за время сочинения этой книги он стал вполне официальным, приобретя номер версии 27):
drwxr-xr-x root/root 0 2014-09-13 03:54 ./
drwxr-xr-x root/root 0 2014-09-13 03:54 ./usr/
drwxr-xr-x root/root 0 2014-09-13 03:54 ./usr/bin/
drwxr-xr-x root/root 0 2014-09-13 03:54 ./usr/lib/
drwxr-xr-x root/root 0 2014-09-13 03:54 ./usr/lib/x86_64-linux-gnu/
...
Понятное дело, что аналогичные псевдонимы можно придумать и для всяких rpm-и tgz-пакетов. И, разумеется, наиболее востребованные из них занести в кондуит... то есть в ~/.zshrc.
Конфигурирование
В качестве обобщения всего сказанного выше в заключение этого очерка я размещаю свой конфигурационный файл ~/.zshrc, прокомментированный, по мере сил, подробно. Этот конфиг существует с 2001 года, кочуя с машина на машину, из системы в систему, постоянно модернизируюсь в соответствие с изменениями моих потребностей и возможностей Zsh. И в текущем состоянии он обеспечивает все функции и особенности, о которых я говорил ранее, и некоторые другие, которые станут понятными после знакомства с Mint-утилитой пакетного менеджмента apt.
Данный конфиг может быть использован полностью или фрагментарно всеми заинтересованными лицами: блоки, заключённые в теги
, пригодны для прямого копирования, за одним исключением, о котором будет сказано в своё время. Однако я отнюдь не призываю к этому, напротив: настоятельно рекомендую, используя данный конфиг и аналогичные, которые можно найти в Сети, по мере сил и возможности создавать конфиг собственный. Ибо хороший (для конкретного применителя) ~/.zshrc — это не результат, а процесс, и причём процесс преувлекательный.Как и большинство уважающих себя конфигов, мой начинается с секции, закрытой комментариями, в которой сообщается, что:
• это ~/.zshrc — то есть «домашний» конфигурационный файл для командной оболочки Zsh;
• используется только в интерактивных её экземплярах;
• содержит крманды для определения псевдонимов, функций, опций и прочих кейбиндингов;
• укладывается в последовательность считывания конфигов таким образом: zshenv, zprofile, zshrc, zlogin.
Всё это потибреноунаследовано от прототипа, распространяющегося разрабочиками Zsh. От себя я добавил лишь такую строку:
#
# Alv's edition for Mint
#
Это не значит, что данный конфиг нельзя использовать вне Mint: подавляющая часть его строк будет иметь силу в любых дистрибутивах Linux'а или в BSD-системах. Но отдельные его блоки (специально оговоренные) в них просто не будут иметь смысла.
Читать дальшеИнтервал:
Закладка: