Archive for the ‘Субпроекты’ Category.
Март 18, 2011, 17:06
Простейшая командная конструкция -- это выполнение команды в фоновом режиме, что вызывается вводом символа амперсанда после списка опций и (или аргументов): Continue reading ‘Командные конструкции. Совместное выполнение’ »
. .
Март 18, 2011, 17:03
Надеюсь, из того, что было рассказано на предшествующмх страницах, посвящённых CLI, читателю стало ясно, что подавляющее большинство команд в POSIX-системах очень просты по сути и предназначены для выполнения какого-либо одного элементарного действия. Continue reading ‘Командные конструкции. Вступление’ »
. .
Март 18, 2011, 17:02
Переходим к рассмотрению командных конструкций -- одной из тех особенностей конадного интерфейса UNIX-подобных систем, которая определяет его мощь и универсальность. Continue reading ‘Командные конструкции’ »
. .
Март 18, 2011, 15:29
Есть и экраны, распространяемые на все, что заключено внутри них. Это -- кавычки, двойные и одинарные: большая часть символов между ними утрачивает свое специальное значение, Continue reading ‘Тема о кавычках’ »
. .
Март 18, 2011, 15:27
Из приведённых примеров можно видеть, что метасимволы, образующие регулярные выражения, интерпретируются командной оболочкой особым образом, не так, как обычные алфавитно-цифровые символы, составляющие, скажем, имена файлов. Continue reading ‘Экранирование’ »
. .
Март 18, 2011, 15:26
Как известно, все пользователи-POSIX'ивисты должны быть в обязательном порядке привержены одному из семи смертных грехов. И грех этот -- леность, можно сказать, показатель профессиональной пригодности линуксоида. Continue reading ‘Регулярные выражения’ »
. .
Март 18, 2011, 14:48
Во всех современных "развитых" шеллах предусмотрены средства поиска команды в буфере истории -- простым перебором (обычно Meta+P -- назад и Meta+N -- вперед).
Впрочем, не смотря на громкое название, обычный поиск ничем практически не отличается от обычного пролистывания исторического списка курсорными стрелками. Что при обширной истории команд может быть весьма утомительным. И потому для ее облегчения предусмотрена такая интересная возможность, как наращиваемый поиск (incremental search) нужной команды в буфере истории по одному (или нескольким) из составляющих ее символов.
Выполняется инкрементный поиск так: после нажатия (при пустой командной строке) клавишной комбинации Control+R появляется предложение ввести алфавитный символ (или -- последовательность символов произвольной длины), заведомо входящий в состав требуемой команды:
$ bck-i-search: _
Ввод такого символа выведет последнюю из команд, его содержащих. При этом введенный символ будет отмечен знаком курсора. Он не обязан входить в имя команды, но может быть составляющим ее опций или аргументов (имени файла или пути к нему, например). Следующее нажатие Control+R зафиксирует курсор на предыдущем символе, в пределах этой же или более ранней по списку команды, и т.д. Однако вместо этого в строке поиска можно вводить дополнительные символы, детализирующие условия поиска команды (или -- ее опций и аргументов).
Процедуру поиска можно продолжать вплоть до достижения требуемого результата -- то есть нахождения той команды, которая нужна именно сейчас. Нажатие клавиши Enter в любой из этих моментов запускает найденную (то есть помещенную в командную строку) команду на исполнение, с завершением поиска. Поиск обрывается также и нажатием комбинации Control+C. Перед запуском найденная команда может быть отредактирована стандартными средствами -- с использованием управляющих последовательностей.
Некоторые шеллы допускают чрезвычайно изощренные средства обращения с буфером истории команд. Например, в командной оболочке zsh
предусмотрены способы извлечения из него отдельных командных "слов", входящих в сложные конструкции, о чем я расскажу в свое время.
. .
Март 18, 2011, 14:46
Возможности навигации и редактирования строки особенно ярко проявляются в сочетании с другой замечательной особенностью, предоставляемой командными оболочками -- доступом к истории команд. Continue reading ‘История команд’ »
. .
Март 18, 2011, 14:42
Основные управляющиеся клавиши, которые используются в таких последовательностях (и имеются на клавиатурах почти любых машин -- как говорят в таких случаях, в любых типах терминалов) -- это клавиши Control и Meta. Continue reading ‘Управляющие последовательности’ »
. .
Март 18, 2011, 14:38
Имя команды, ее опции и аргументы образуют т.н. командные "слова". В качестве словоразделителей выступают пробелы. Кроме того, как разделители "слов" интерпретируется ряд специальных символов -- прямой слэш (/
) -- элемент пути к файлу, обратный слэш (\
), служащий для экранирования специальных символов, и операторы командных конструкций, о которых будет сказано ниже. Continue reading ‘Навигация и редактирование’ »
. .
Март 18, 2011, 14:32
Переменные играют для аргументов команд примерно такую же роль, что и псевдонимы -- для команд. То есть избавляют от необходимости мрачного ввода повторяющихся последовательностей символов. Конечно, это -- далеко не единственное (а может быть, и не главное) назначение переменных, однако на данном этапе для нас наиболее существенное. Continue reading ‘Переменные’ »
. .
Март 18, 2011, 14:28
Вернемся на минуту к команде ls
. У читателя может возникнуть вполне резонный вопрос: а если я всегда хочу видеть ее вывод в цвете, да еще с символическим различением типов файлов, да еще в "длинном" формате? Ну и без вывода скрытых файлов мне никак не прожить. И что же -- мне каждый раз вводить кучу опций, чтобы получить столь элементарный эффект? Continue reading ‘Псевдонимы’ »
. .
Март 18, 2011, 14:23
Итак, типичная форма POSIX-команды в обобщенном виде выглядит следующим образом: Continue reading ‘Кое-что об исключениях’ »
. .
Март 18, 2011, 14:21
Для правильного построения аргументов команды требуется рассмотрение ещё одного понятия -- пути к файлу. Путь -- это точное позиционирование файла в файловой системе относительно ее корня (обозначаемого символом прямого слэша -- /
) или нашего в ней положения -- текущего каталога (который, напомню, символически обозначается единичной точкой -- .
). Continue reading ‘Пути к файлам’ »
. .
Март 18, 2011, 14:17
Таким образом мы подобрались к понятию аргументов командной директивы. Аргументами определяется, как правило, объект (или объекты) действия команды. В большинстве случаев в качестве аргументов команд выступают имена файлов и (или) пути к ним. Continue reading ‘Аргументы’ »
. .
Март 18, 2011, 13:46
Опции определяют условия выполнения команды. На предыдущей странице был приведён пример команды ls
без опций. Однако на самом деле отсутствием опций при ней определяется вид выводимого списка по умолчанию -- как многоколочночного списка, состоящего из имен файлов без учета т.н. скрытых файлов (а таковыми являются файлы, имена которых начинаются с символа точки, почему они еще называются dot-файлами), без каких-либо их атрибутов и без визуального различения файлов различных типов. Continue reading ‘Пример: опции команды ls’ »
. .
Март 18, 2011, 13:45
Как уже говорилось, указания имени достаточно для выполнения некоторых команд. Типичный пример -- команда ls
(от list), предназначенная для просмотра имен файлов (строго говоря, содержимого каталогов). Данная без аргументов, она выводит список имен файлов, составляющих текущий каталог, представленный в некоторой форме по умолчанию, например, в домашнем каталоге пользователя это будет выглядеть примерно так: Continue reading ‘Опции’ »
. .
Март 18, 2011, 13:44
Для правильного применения команд, конечно же, нужно знать их имена и назначение. Однако нас никто не заставляет напрягать пальцы вводом имени команды полностью. Потому что тут на помощь приходит великий метод автодополнения. Continue reading ‘Автодополнение’ »
. .
Март 14, 2011, 15:44
Основой командного интерфейса является командная строка, начинающаяся с приглашения для ввода. Далее он будет обозначаться милым сердцу россиянина символом длинного зеленого друга -- $
, если речь идёт о сеансе обычного пользователя, или символом решётки -- #
, для приглашения строки в сеансе администратора. Continue reading ‘Командная строка’ »
. .
Март 14, 2011, 15:40
Мир FOSS не обделён визуальными, или графическими (по нашему, по бразильскому, -- Гуёвым) интерфейсами. Однако роль CLI от этого меньше не становится. Ибо CLI а) исконен в Unix'ах, б) универсален, и в) представляет собой базу, для которой GUI всякого рода являют лишь оболочку. Continue reading ‘Введение в CLI’ »
. .