Очередные новости Библиотеки Блогосайта

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

Некоторое время назад мы с котом Мануалом решили понемногу претворять законченные части его «Воззрений» в электронные книги, размещаемые в Библиотеке Блогосайта. А в процессе подготовки первой из них, посвящённой deb-пакетам, открыли простой, как нам показалось, способ изготовления таких книжек — с помощью соответствующих плагинов к WordPress’у. С размещением ссылок на результаты (в форматах PDF, FB2, EPUB и MOBI) на каждой (от слова вообще) странице Блогосайта. Что, казалось бы, делало Библиотеку не нужной. И вызывало к жизни мысль о её ликвидации как класса. Читать далее «Очередные новости Библиотеки Блогосайта»

Воззрения кота Manual’а на CLI и Zsh

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

manul-logo-100Здесь кот Manual изложит свои воззрения на методы работы в командной строке (далее именуемой CLI — Command Line Interface), и на Zsh — лучшую, по его мнению, оболочку для этой цели. Читать далее «Воззрения кота Manual’а на CLI и Zsh»

Воззрения кота Manual’а. CLI и Zsh. О конфигах Zsh вообще

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

manul-logo-100

В разделе о мифологии относительно Zsh предыдущей части упоминалось про изобилие конфигурационных файлов этого шелла. И говорилось, что большая их часть совсем не обязательна для использования и, тем более, редактирования. Читать далее «Воззрения кота Manual’а. CLI и Zsh. О конфигах Zsh вообще»

Воззрения кота Manual’а. CLI и Zsh. Примеры конфигов для Zsh

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

manul-logo-100

В Части 3 был подробно описан главный настроечный файл оболочки Zsh — ~/.zshrc. И, возможно, кому-то из читателей он глянулся, однако вытаскивать из него фрагменты кода для вставки в свой конфиг — лениво. В связи с этим мы с котом Мануалом сделали маленький архивчик, включающий нашу редакцию обоих конфигов — zshrc-alv и zshen-alv. Читать далее «Воззрения кота Manual’а. CLI и Zsh. Примеры конфигов для Zsh»

Воззрения кота Manual’а. CLI и Zsh. Часть 3. Авторский ~/.zshrc

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

manul-logo-100

На этой странице кот Мануал велел мне поделиться нашим с ним главным dot-файлом для Zsh — ~/.zshrc, определяющего поведение этого шелла, запущенного в интерактивном режиме — как было сказано в предыдущей части, в большинстве случаев для настройки его достаточно. Читать далее «Воззрения кота Manual’а. CLI и Zsh. Часть 3. Авторский ~/.zshrc»

Дистрибутив Apricity: не Arch, а персик

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

Всерьёз закопавшись с Antergos’ом, мы с котом Manual’ом посматриваем на досуге, однако, и на другие клоны прародительского Archlinux’а. При условии, конечно, что в них поддерживается среда Cinnamon. Читать далее «Дистрибутив Apricity: не Arch, а персик»

Antergos — применителю: коррективы к материалам

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

Antergos. Содержание

В конце очерка о настройке консоли в Antergos’е было сказано, что попытка увековечить работу службы консольной мыши завершилась неудачей. Однако, когда мы с котом Manual’ом установили этот дистрибутив повторно, уже на ZFS, все описанные там процедуры по настройке gpm дали ожидаемый, то есть неизменно превосходный, результат. В связи с чем в указанный материал были внесены соответствующие коррективы. Читать далее «Antergos — применителю: коррективы к материалам»

Antergos и Zsh

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

antergos

В Antergos’е, как и почти во всех дистрибутивах Linux’а, в качестве регистрационной командной оболочки пользователя выступает Bash. Ну а мы-то с Manual’ом привыкли вот уже много лет всегда и везде для этой цели применяем Zsh. И определение его на роль login shell поэтому было одной из первоочередных наших задач после установки системы. А в случае использования ZFS как корня файловой иерархии — так вообще первой. Читать далее «Antergos и Zsh»

Воззрения кота Manual’а. CLI и Zsh. Часть 2. Zsh в Cintu

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

manul-logo-100

Ближайшие страницы посвящены приёмам работы к командной строке вообще и в Zsh в особенности. Именно эта командная оболочка принята в Cintu как регистрационная (login shell) по умолчанию, вместо традиционного для почти всех дистрибутивов Linux оболочки Bash. Читать далее «Воззрения кота Manual’а. CLI и Zsh. Часть 2. Zsh в Cintu»

Воззрения кота Manual’а. CLI и Zsh. Часть 1. Термоконсольное введение

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

manul-logo-100Здесь кот Manual изложит свои воззрения на методы работы в командной строке (далее именуемой CLI — Command Line Interface), и на Zsh — лучшую, по его мнению, оболочку для этой цели. Читать далее «Воззрения кота Manual’а. CLI и Zsh. Часть 1. Термоконсольное введение»

Zsh и мифы о нём

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

Вокруг командной оболочки Zsh линуксоидами создано не намного меньше легенд и мифов, чем древнеримскими греками — вокруг Троянской войны. И столь же тесно мифы эти и легенды сопряжены с типичной подменой понятий, когда тёплое смешивается с мягким, а интерактивное со скриптовым. Ибо, как «Илиада» описывает один из эпизодов осады города Илиона (который настолько не совсем Троя, что совсем даже не она), так и от прочтения всяких сетевых материалов про Zsh складывается впечатление, что говорят о какой-то другой оболочке, вовсе не той, с которой её применители имеют дело изо дня в день. Читать далее «Zsh и мифы о нём»

Cintu и Zsh. Жизнь без команд less и cat

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

Ещё одна из часто используемых команд CLI — less,относимая к семейству так называемых пейджеров (не путать с тем, чем лохи в песочницах ковыряются). То есть программ поэкранного просмотра файлов (преимущественно текстовых), в число которых входят также ветхозаветная утилита more и некогда пропагандируемая в качестве прогрессивной программа most. Читать далее «Cintu и Zsh. Жизнь без команд less и cat»

Cintu и Zsh. Жизнь без команды cd

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

Командная оболочка Zsh позволяет часто или вообще обходиться без ряда привычных команд CLI, или свести их употребление к минимуму. И дна из таких команд, необходимость в которой отпадает полностью — cd, служащая, как известно, для перехода в каталог, указанный в качестве её аргумента. Как это может быть? Читать далее «Cintu и Zsh. Жизнь без команды cd»

Cintu и Zsh. Псевдонимы глобальные и «суффиксные»

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

Псевдонимы для команд с их опциями (alias) — ещё один из простых способов минимизировать ввод командных директив, применяемый во всех оболочках. Обычно самые востребованные из них, такие, как Читать далее «Cintu и Zsh. Псевдонимы глобальные и «суффиксные»»

Cintu и Zsh. Вопросы истории (команд)

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

Извлечение ранее введённых команд из их «истории» — ещё один способ минимизации набора символов при работе в CLI (наряду с ранее рассмотренными hподстановками и автоматическим дополнением). И эта возможность существует по всех современных командных оболочках (кроме, разве что, кондового POSIX Shell, эмулируемого обычно командой /bin/sh). Однако и тут Zsh некогда выделился дополнительными функциями (правда, ныне реализованными и в Bash, хотя там они включаются несколько иным способом). Читать далее «Cintu и Zsh. Вопросы истории (команд)»

Cintu и Zsh. Содержание

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

cintu-logo-100В следующих набросках будет рассмотрена работа в командной строке (далее CLI — Command Line Interface), преимущественно в оболочке Zsh, а также некоторые связанные с этим вопросы. Что и найдёт своё отражение в представленном ниже содержании: Читать далее «Cintu и Zsh. Содержание»

Cintu и Zsh. Подстановка команд и аргументов

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

Эффективное использование любой командной оболочки предполагает минимизацию нажатия клавиш пальцами. Для этого существует несколько приёмов, одни из которых — общие для всех развитых командных оболочек, другие же специфичны для Zsh. К числу первых относится, например, повторение команд и аргументов.

Для повторения последней введённой команды служит удвоенный символ восклицательного знака — !!. Например, команда

$ ls /usr/share/fonts

выведет содержимое указанного каталога:

cmap/  fira-mono/  fira-sans/  Input-Font/ …

Если же теперь ввести

$ !!

и нажать Enter, мгновенно последует такой вывод:

ls /usr/share/fonts
cmap/  fira-mono/  fira-sans/  Input-Font/

Символ !! может быть использован как аргумент другой команды — в этом случае на его место будет подставлена предыдущая команда. Например, если по забывчивости попытаться установить какой-либо пакет от имени обычного пользователя командой

$ apt install  apt-file

последует сообщение об ошибке такого содержания:

E: Не удалось открыть файл блокировки /var/lib/dpkg/lock - open (13: Отказано в доступе)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); у вас есть права суперпользователя?

Очевидно, что для установки пакета требуются привилегии администратора, которые в данной ситуации резонно разово получить командой sudo. А чтобы не вводить вручную предыдущую конструкцию, её можно подменить !!:

$ sudo !!
sudo apt install apt-file
[sudo] пароль для alv:

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

$ ls /usr/share/fonts

сразу же набрать в просто ls последовательно клавишу Escape и клавишу символом точки ., то в командной строке появится тот же путь, что и ранее. Причём перед отправкой команды на исполнение его можно отредактировать, например, дописав в него следующий по вложенности подкаталог:

$ ls /usr/share/fonts/Input-Font/

По исполнении этой команды первое после набора ls нажатие Escape+. вызовет предыдущий аргумент, второе — предпоследний, то есть /usr/share/fonts, и так далее. Однако тут надо быть внимательным: комбинации Escape+. до лампочки, к какой команде она подставляет аргументы, и со временем в строке окажется что-то совсем не подходящее, например:

$ ls apt-file

Кстати, в приведённых выше примерах вовсе не обязательно набирать команды и тем более пути к ним целиком, поскольку существует атодополнение, о котором пойдёт речь в следующем наброске.

Моя Cintu. Оглавление

Cintu и Zsh. Автоматическое дополнение

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

Как было сказано в предыдущем наброске, набирать длинные команды и, тем более, ещё более длинные пути в х аргументах совсем не обязательно. Ибо во всех развитых шеллах с давних времён (хотя и не изначально) существует механизм их автоматического дополнения по нажатию клавиши табулятора. Механизм этот прекрасно известен всем линуксоидам по его реализации в Bash’е. Однако в Zsh обычное автоматическое дополнение можно дополнить парой полезных фич — и в Cintu в пользовательском ~/.zshrc это сделано «из коробки».

Первая из них — развёртывание аббревиатур путей в пути полные. То есть если набрать в командной строке что-то вроде

$ ls /u/s/f/I

а затем нажать клавишу табулятора, то эта, казалось бы, бессмысленная последовательность символов волшебным образом преобразуется во вполне разумный аргумент команды:

$ ls /usr/share/fonts/Input-Font/

Вторая Zsh-специфичная особенность автодополнения — вывод предлагаемых вариантов в виде менб-подобного списка. А именно, если после набора последовательности символов

$ ls /u/s/f/I

нажать клавишу табуляции дважды, произойдёт не только разворачивание аббревиатуры пути, но и вывод содержимого последнего в цепочке подкаталога в виде списка, по которому, как по любому меню, можно перемещаться до нахождения нужного:

zsh-autocomplit_001

И так — до получения «окончательного результата»:

zsh-autocomplit_002

Обе эти фичи не берутся не берутся с неба, а достигаются включением соответствующих опций в ~/.zshrc. Каких именно — расскажу в заключение подраздела про Zsh в Cintu. А следующим номером программы будут вопросы истории команд.

Моя Cintu. Оглавление

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

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

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

Эта серия набросков (или шпаргалок) посвящена приёмам работы к командной строке вообще и в Zsh в особенности. Именно эта командная оболочка принята в Cintu как регистрационная (login shell) по умолчанию, вместо традиционного для почти всех дистрибутивов Linux оболочки Bash. Причин такого выбора несколько. и основные из них — следующие: Читать далее «Cintu и Zsh. Вступление»

Управление deb-пакетами. Утилиты семейства APT: apt и zsh

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

Как говорилось в прошлой заметке, утилита apt выгодно отличается от связки из apt-get и apt-cache не только тем, что она одна, но и тем, что букв в ней меньше. Вот только внутренние её команды так и остались длинными… Читать далее «Управление deb-пакетами. Утилиты семейства APT: apt и zsh»

Интеграция apt и zsh: глобальные псевдонимы субкоманд

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

Во времена, когда я был применителем openSUSE, мне очень нравился пакетный менеджер этого дистрибутива — zypper. Помимо прочих бесчисленных достоинств (а их у него, пожалуй, побольше, чем у всех остальных, вместе взятых), он обладает свойством понимать короткие формы своих внутренних команд. То есть можно дать команду Читать далее «Интеграция apt и zsh: глобальные псевдонимы субкоманд»

Несколько мелочей для .zshrc: ещё раз о приглашениях

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

О разновидностях приглашений командной строки в Zsh и настройке их вида некогда говорилось достаточно подробно. Так что к сказанному хотелось бы добавить лишь пару слов. Читать далее «Несколько мелочей для .zshrc: ещё раз о приглашениях»

Несколько мелочей для .zshrc: навигация и редактирование

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

Как я неоднократно говорил, настройка Zsh — это занятие, от которого оторваться столь же трудно, как от созерцания текущей воды, горящего костра или прогресс-бара скачивания iso-образа дистрибутива на модемной скорости. И я время от времени натыкаюсь в его документации или в примерах из Сети на всякие мелкие полезности, которые беру на вооружение и заношу в свои шпаргалки для памяти. И добавляю к общему их списку. Читать далее «Несколько мелочей для .zshrc: навигация и редактирование»

Linux Mint и его Cinnamon. Очерки применителя. Часть 4a

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

В предыдущем очерке работа в CLI была рассмотрена на примере Bash — самой распространённой командной оболочки Linux’а. Однако о ней написаны пуды бумажной литературы и мегабайты сетевых материалов, повторять которые было бы скучно. И к тому же в реальной жизни я её практически не использую. Поэтому далее будет рассмотрена оболочка Zsh. Читать далее «Linux Mint и его Cinnamon. Очерки применителя. Часть 4a»

За что я люблю Zsh. Конфигурационные файлы

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

Да, дорогие мои читатели, больше всего я люблю Zsh за возможности конфигурирования, ограниченные только потребностями и пониманием своих действий. И в знак своей любви на этой странице размещаю свой ~/.zshrc, прокомментированный, по мере сил, подробно. Этот конфиг существует с 2001 года, кочуя с машина на машину, из системы в систему, постоянно модернизируюсь в соответствие с изменениями моих потребностей и возможностей Zsh. И в текущем состоянии он обеспечивает все функции и особенности, о которых я говорил ранее, и некоторые другие, о которых я, возможно, ещё напишу. Читать далее «За что я люблю Zsh. Конфигурационные файлы»

За что я люблю Zsh. Темы приглашений

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

В очерке о приглашении к любви речь шла о том, как оформить приглашение командной строки Zsh своими руками, в соответствие с собственными вкусами и предпочтениями. Однако можно пойти другим путём, и воспользоваться уже готовыми темами приглашений. Они входят в пакет zsh-common, который всегда, насколько я знаю, устанавливается как зависимость пакета zsh. После установки местоположение их — каталог /usr/share/zsh/functions/Prompts. Читать далее «За что я люблю Zsh. Темы приглашений»

За что я люблю Zsh. Перенаправление расширенное и множественное

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

Что такое перенаправление ввода/вывода — знают все применители CLI. Однако в Zsh возможности его очень широки, почему он и называется расширенным перенаправлением. Этот механизм позволяет в ряде случаев обходиться без некоторых команд вообще. Например, обычно для просмотра текстового файла применяют или команду cat, или команды-пейджеры типа more, less, most. Выбор между конкатенатором и одним из пейджеров определяется ситуацией, выбор внутри «тройки по борьбе с басмачами файлами» зависит от привычек или предпочтений. Однако Zsh может избавить применителя от мук буриданова осла, подменяя любую из этих команд оператором перенаправления в виде команды Читать далее «За что я люблю Zsh. Перенаправление расширенное и множественное»

За что я люблю Zsh. Рекурсивный поиск

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

Все применители CLI знают и любят утилиту find — и любят заслуженно, ибо это апофеоз командного интерфейса: с её помощью можно отыскать в файловой системе всё, что угодно — и почти всё, что нужно, с найденным сделать, конечно, с помощью некоторых дополнительных средств, вроде xargs и конвейеров. Однако для многих рутинных задач мощь этой команды кажется излишней, напоминая знаменитое упражнение по отстрелу мелких пернатых их зенитно-ракетных комплексов. И вот тут Zsh опять позволяет решать такие задачи малой кровью — то есть с минимальным ударением по клавишам. Ибо поддерживает такую штуку, как рекурсивные поиск. Читать далее «За что я люблю Zsh. Рекурсивный поиск»

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

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

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

За что я люблю Zsh. Любовь к истории

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

Возможность просмотра истории введённых ранее команд клавишами Up/Down кажется таким же неотъемлемым атрибутом CLI, как и автодополнение командной строки. И, как и последнее, напрочь отсутствовало в перворождённом шелле Борна, однако ныне имеется во всеш развитых шеллах. Причём доступ к истории команд в них не ограничивается командой history и упомянутыми стрелками. В частности, в Bash широко практикуется инкрементный поиск по клавишной последовательности Control+R и вводу последовательности символов одной из предыдущих команд или её аргументов. Читать далее «За что я люблю Zsh. Любовь к истории»