Home > Shell, Tips, Unix, Техноблог > Магия в zsh

Магия в zsh

November 4th, 2008 Leave a comment Go to comments

Захотелось мне в этот чудесный выходной понедельник поагитировать за свой любимый шелл. Чем, кстати, вообще может похвастаться какой-либо шелл, имея в конкурентах такого монстра, как bash? Ведь в bash есть все, что может только пожелать обычный пользователь. А, собственно, и нечем. Поэтому разработчикам zsh пришлось пойти на хитрость и добавить в свое детище некоторое количество магии :)

Большая ее порция досталась подсистеме автодополнения. Вот таким можно сделать дополнение имен файлов:
zsh menu completion
(выбрать нужный вариант можно табом по старинке, курсорными клавишами или стандартными emacs-хоткеями)

А вот так – дополнение опций:

Еще одна моя любимая магическая штуковина в автодополнении выглядит так: допустим, нужно подправить файл /usr/local/etc/rc.d/mysql. Пользователь bash бы ввел такую команду:

vim /usr/l[TAB]/e[TAB]/r[TAB]/m[TAB]

В zsh все несколько проще, а именно:

vim /u/l/e/r/m[TAB]

После нажатия [TAB] все элементы пути будут дополнены. Если вариантов несколько, можно будет вручную выбрать нужный.

Ну вот, я вам передал примерно 0.65 процента магии zsh. Помимо автодополнения, ее залежи находятся в подсистеме подстановок (man zshexpn), но там я сам не очень уверенно ориентируюсь. Все-таки одна из прелестей zsh заключается в том, что мне необязательно учиться им пользоваться – для начала можно ограничиться только bash-совместимым подмножеством функций, регулярно натыкаясь на приятные мелочи в реализации привычных вещей.

Дальнейшее чтение:
обзор zsh от Алексея Федорчука,
Собрание хаков и идиом zsh: zsh lovers.

Categories: Shell, Tips, Unix, Техноблог Tags: ,
  1. January 9th, 2010 at 13:45 | #1

    Всем хорош zsh, но только вот скрипты на нем не попишешь :( Ибо нестандартен

  2. elf1423
    September 2nd, 2011 at 21:26 | #2

    Как в Slitaz 2.0, который уже установлен на HDD, заменить ash на bash?

  3. Alexey Sveshnikov
    September 17th, 2011 at 00:32 | #3

    Не знаю..

  1. No trackbacks yet.