Archive for the ‘Консоль и шеллы’ Category.

Zsh. Сборка из из исходников

Ознакомившись с возможностями командной оболочки zsh и убедившись в том, что это -- очень стоящая штука, самое время опробовать её в деле. Для чего хорошо бы установить её. Continue reading ‘Zsh. Сборка из из исходников’ »

. .

Zsh. Документация

Здесь перечислена лишь небольшая часть возможностей оболочки zsh. В частности, я не останавливался на его встроенных функциях, хотя именно они и есть та база, что обеспечивает всё описанное (и не описанное) богачество возможностей этого шелла. Не говорил я и о подгружаемых модулях (по типу plug-ins) -- а ведь среди последних есть даже собственный ftp-клиент. Ибо для этого потребовалось бы пересказать всю официальную документацию к нему. Continue reading ‘Zsh. Документация’ »

. .

Zsh. Вопросы совместимости

Легко видеть, что все изобилие возможностей zsh далеко выходит за рамки стандарта POSIX для командных оболочек. Однако, в подтверждение своего соответствия оному, zsh, наступая на горло собственной песне, способен к эмуляции POSIX Shell. Continue reading ‘Zsh. Вопросы совместимости’ »

. .

Zsh. Прочие возможности

Очень интересна (и удобна) в zsh работа с командными конструкциями перенаправления. Здесь и

  • множественное перенаправление вывода, когда результат выполнения команды направляется сразу в несколько файлов, и
  • множественное перенаправление ввода -- когда команда, напротив, получает аргументы последовательно из более чем одного файла, и
  • перенаправление без команды, когда конструкция типа
    $ < filename
  • просто выведет на экран содержимое указанного файла -- без привлечения команд типа cat или less.

При перенаправлении возможна группировка команд и использование шаблонов. Так, файлы с именами вида file1 и file2 можно просмотреть одной командой

$ < file{1,2}

Перенаправление ввода/вывода может иногда заменять конвейеризацию команд. Так, конструкция вида

$ sort < file{1,2}

отсортирует содержимое обоих файлов точно так же, как это сделал бы конвейер команд

$ cat file1 file2 | sort

Наконец, ещё одна специфическая особенность zsh -- так называемая пред-исполнимая модификация команд (precommand modifier), осуществляющаяся перед их интерпретацией. Именно таким образом можно отменить чрезмерно навязчивую автокоррекцию аргументов для одной отдельно взятой команды, например, копирования:

$ nocorrect cp file1 file2

Это запретит попытки коррекции имени вновь создаваемого файла file2 похожим из числа существующих. Причём, занеся в профильный файл псевдоним для команды cp как самой себя с таким премодификатором

alias cp='nocorrect cp'

от нежелательной для определённых команд автокоррекции можно избавиться раз и навсегда.

. .

Zsh. Встроенные команды

Надеюсь, что мне удалось убедить читателя в превосходных интерактивных возможностях оболочки zsh. Теперь стоит поговорить о функциональности, которая проявляется не только в интерактивной работе (но и, скажем, при сочинении скриптов). Continue reading ‘Zsh. Встроенные команды’ »

. .

Zsh. Варианты приглашений

В качестве приглашений командной строки могут использоваться:
Continue reading ‘Zsh. Варианты приглашений’ »

. .

Zsh. Настройка приглашения

Важный момент облегчения существования пользователя в любом шелле -- вид приглашения командной строки, должная настройка которого может часто избавить от лишнего набора команд (уж от команды pwd я по возможности стараюсь избавиться именно таким образом). Continue reading ‘Zsh. Настройка приглашения’ »

. .

Zsh. Псевдонимы

И, наконец, такое мощное средство минимизации пользовательского ввода, как псевдонимы команд (aliases). Разумеется, в zsh (как и в bash или tcsh) псевдоним может быть присвоен любой команде со сколь угодно длинным набором опций. Так, куда как проще раз и навсегда определить команду ls как псевдоним самой же себя, но с опциями -FG, нежели каждый раз вспоминать, как отличить в ее выводе каталоги от обычных файлов. Continue reading ‘Zsh. Псевдонимы’ »

. .

Zsh. История команд

Оболочка zsh обладает всеми стандартными средствами доступа к буферу истории команд -- перехода к началу и концу буфера истории, просмотра оного вперед и назад (как клавишами управления курсором, так и соответствующими управляющими последовательностями), обычного и т.н. наращиваемого поиска в обоих направлениях, исполнения выуженной из буфера команды с автоматическим переходом к следующей.

Плюс к этому -- поддерживаются весьма изощренные способы вывода в строку отдельных фрагментов команд из буфера истории. Например, отдельного командного "слова", начиная с последнего, с дальнейшим перебором "слов" буферизованных команд назад. Или -- вывод полного списка команд из буфера с их последовательным перебором в том или ином направлении.Автодополнение в zsh гармонично сочетается с автокоррекцией (т.н. spelling командной строки). Конечно, и это само по себе не уникально. Однако проверка правильности ввода и автокоррекция в zsh распространяются не только на встроенные (как в bash) и даже внешние (как в tcsh) команды, но даже на пути и аргументы. Причём если автокоррекция становится назойливой (например, для команд типа cp или mv она порывается исправить вновь создаваемые аргументы на имена существующих файлов), её можно отключить -- и именно только для определённых команд.

. .

Zsh. Навигация и редактирование

Средства навигации по командной строке и ее автоматического редактирования -- необходимое условие комфорта в интерактивной работе внутри оболочки. Здесь говорить, казалось бы, не о чем -- управляющие клавишные последовательности для таких действий давно уже вошли в обиход всех командных оболочек, претендующих на развитость. Однако и в этой области zsh есть чем похвастаться -- в нем задействованы все комбинации клавиш для перемещения и удаления (как посимвольного, так и командными "словами" и фрагментами строки), которые существуют в bash и tcsh. Continue reading ‘Zsh. Навигация и редактирование’ »

. .

Zsh. Автокоррекция

Автодополнение в zsh гармонично сочетается с автокоррекцией (т.н. spelling командной строки). Конечно, и это само по себе не уникально. Continue reading ‘Zsh. Автокоррекция’ »

. .

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

Автодополнением клавишей Tab команд, частично введённых в ответ на приглашение оболочки, трудно удивить пользователей bash или tcsh. Столь же естественно, что при возможности безальтернативного дополнения именно оно и происходит, а при наличии некоторых альтернатив выводятся возможные варианты. Однако zsh идёт дальше -- и после вывода таковых в ответ на последующие нажатия клавиши табулятора начинает автоматический их перебор. Continue reading ‘Zsh. Автодополнение’ »

. .

Zsh. Представление героя

Итак, zsh (или Z-shell) -- оболочка из клана sh-совместимых, первоначально разрабатывавшаяся Паулем Фальстадом (Paul Falstad), начиная с 1990 года. Буква Z в названии этого шелла происходит от логина учётной записи Zhong, принадлежавшей одному из аспирантов Принстонского университета (Zhong Shao), в котором в то время обучался Пауль, и, видимо, появилась тут "для прикола". Однако Z в данном контексте может символизировать и последнее слово в развитии командных оболочек вообще. Continue reading ‘Zsh. Представление героя’ »

. .

Zsh. Вступление

Как уже говорилось во вступительном цикле , одной из причин для смены шелла, принятого в данном дистрибутиве или ОСи по умолчанию, является поиск идеала. И в поиске этом пользователь никак не может пройти мимо командной оболочки под именем Z-shell (или, по простому, zsh). Continue reading ‘Zsh. Вступление’ »

. .

Zsh — лучший в мире шелл

Это начало цикла заметок про Z-shell (zsh), в котором предполагается дать всестороннее описание самой мощной и функциональной командной оболочки. Continue reading ‘Zsh — лучший в мире шелл’ »

. .

Tcsh: последние штрихи настройки

В заключение -- пара слов о том, что можно внести в файл ~/.logout. Во-первых, можно вообще обойтись без него. А можно вписать в него нечто вроде таких строк: Continue reading ‘Tcsh: последние штрихи настройки’ »

. .

Tcsh: особенности конфига администратора

На этом можно закончить настройку пользовательского файла ~/.tcshrc. Конфигурационный файл администратора (/root/.tcshrc) можно построить аналогично, с некоторыми отличиями. Continue reading ‘Tcsh: особенности конфига администратора’ »

. .

Tcsh: пример пользовательского конфига

Основываясь на "рыбе", доставшейся нам в комплекте, попробуем составить собственный файл ~/.tcshrc. Для начала создаём его в своём домашнем каталоге, например, командой Continue reading ‘Tcsh: пример пользовательского конфига’ »

. .

Tcsh: эталонный конфиг

Однако в нашем распоряжении после создания пользовательского аккаунта, использующего регистрационный шелл /bin/tcsh, и авторизации под новым именем имеется только файл ~/.cshrc с некоторыми минимальными, но вполне разумными настройками, который выглядит так: Continue reading ‘Tcsh: эталонный конфиг’ »

. .

Принципы настройки tcsh

Возникает вопрос: как при таком обилии конфигурационных файлов производить настройку tcsh, и в каком порядке это делать? Ответить на него несложно, ибо изобилие это кажущееся, и на самом деле какое-то действительно серьёзное редактирование необходимо будет выполнить только в отношении одного-единственного файла. Continue reading ‘Принципы настройки tcsh’ »

. .