За что я люблю Zsh. Ещё немного о псевдонимах

Алексей Федорчук

Об одной, но ответственной фиче Zsh мне напомнил джуйковец @kapsh. Она действительно сравнима с честью открытия Дворца бракосочетания спортсменкой, комсомолкой, отличницей и, наконец, просто красавицей Наталией Варлей. Фича эта — «суффиксные», более удачного определения на языке родных осин я не придумал, псевдонимы. что это?

Подобно тому, как добаление к команде alias опции -g с помощью магии превращает обычный псевдоним в глобальный (о разоблачении этой магии я уже имел удовольствие рассказывать), так и опция -s «суффиксным». То есть привязывает суффикс имени файла (те, кто, подобно автору этих строк, затронуты порчей чёрным DOS’ом, до сих пор часто называют его «расширением») к некоей программе, которая может сотворить над ним нужное действо. Например, если задать псевдоним такого вида

$ alias -s html=links

а затем набрать в CLI такое

$ path2/некто.html

то этот самый некто.html будет открыт в текстовом браузере Links.

Чем, разумеется, возможности «суффиксных» псевдонимов не исчерпываются — как всегда, предел им ставит только фантазия применителя применительно к его задачам. Ограничусь одним примером.

Какой же русский не любит Командера-полуночника? В том числе и потому, что он — однин из сыновей незабвенного командера Нортона, имя которого, в свою очередь, не более чем alias незабвенного лейненанта Шмидта (история его чудесного спасения из лап царской охранки и последующей блестящей карьере сначала в ВМС Пендостана, а затем в интернациональном софтверном бузиненсе реконструирована нашими замечательными историками из славного Екатеринбурга). Впрочем, со временем наш русский применитель, не смотря на весь свой патриотизм, начинает понимать, что слепая любовь к MC связывает ему руки в операциях с возлюбленной CLI, и хорошо бы с командиром расстаться, как это делают цивилизованные люди — без скандалов и истерик.

Но тут возникает проблема: MC — один из самых удобных способов просмотра того, из чего состоят файлы пакетов (будь то deb, rpm или что ещё из tar.*z-серии). Так вот, механизм «суффиксных» псевдонимов Zsh предлагает нам адекватную замену: если дать команду, например,

$ alias -s deb='dpkg -c'

а затем набрать в командной строке такое:

$ path2/opera-beta_25.0.1614.11_amd64.deb

то мы сразу увидим, что же припасли для нас разработчики этого многими любимого браузера в своём полуподпольном пре-релизе за нумером 25:

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.

Содержание

Добавить комментарий