Командная строка

Командная строка

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

Командная строка — визуальное представление среды, в которой задаются основные элементы командного интерфейса: командные директивы с их аргументами и опциями.

Командная директива (или просто команда) — основная единица, посредством которой пользователь взаимодействует с шеллом. Она образуется по определенным правилам, именуемым синтаксисом. Синтаксис командной директивы определяется, в первую очередь, языком, принятым в данной командной оболочке. Кроме того, некоторые команды (не очень многочисленные, но весьма употребимые) имеют собственный, нестандартный синтаксис.

Однако в целом базовые правила построения команд имеют много общего. И именно эти базовые правила станут предметом данного раздела. Синтаксические особенности отдельных нестандартных команд будут оговариваться по ходу изложения.

Итак, командная директива образуется:

   • именем команды, однозначно определяющим ее назначение,

   • опциями, определяющими условия выполнения команды, и

   • аргументами — объектами, над которым осуществляются действия.

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

ещё один непременный компонент командной директивы — это специальный невидимый символ конца строки: именно его ввод отправляет команду на исполнение. В обыденной жизни этот символ вводится нажатием и отпусканием клавиши Enter. Почему обычно и говорят: для исполнения команды нажмите клавишу Enter. Тот же эффект, как правило, достигается комбинацией клавиш Control+M. Символа конца командной строки, знаменующего исполнение команды, мы на экране не видим. Однако важно, что это — такой же символ, как и любой другой (хотя и имеющий специальное значение).

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

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

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

$ time search for Mint in path2/

вызовет для определения времени выполнения команды search (о ней будет рассказываться в следующем очерке) встроенную команду time. А в форме

$ /usr/bin/time search for Mint in path2/

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

Определить, является ли данная команда встроенной в оболочку или внешней, можно с помощью встроенных команд type или which. Для встроенных команд вывод их будет таким:

$ type which

which is a shell builtin

$ which type

type: shell built-in command

Или, в некоторых случаях, таким:

$ which time

time: shell reserved word

$ type time

time is a reserved word

Для внешних команд любой из этих вариантов даст в выводе путь к исполняемому файлу:

$ which date

/bin/date

$ type date

/bin/date

Некоторые команды могут выступать под несколькими именами. Это связано с тем, что исторически в различных Unix-системах команды, исполнявшие одинаковые функции, могли получать разные названия. В каждой конкретной системе обычно используется только одна из таких команд-дублеров. Но при этом имена дублирующих команд также могут присутствовать в системе — для совместимости. Не следует думать, что это две различные программы одного назначения: как правило, такая синонимичность команд реализуется посредством механизма ссылок (links) или псевдонимов (alias), о которых речь пойдёт позднее.

Иногда команда, вызванная через имя своего синонима, может отличаться по своей функциональности от самой же себя, вызванной под родным именем. В этом случае говорят о эмуляции одной команды другой. Типичный пример — командная оболочка /bin/bash в большинстве дистрибутивов Linux имеет своего дублера — /bin/sh; вызванная таким образом, она воспроизводит базовую функциональность стандарта POSIX-шелла.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Командная строка и горячие клавиши

Из книги автора

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


Командная строка

Из книги автора

Командная строка Рядовые пользователи нечасто пользуются данной программой, это, скорее, инструмент для специалистов и системных администраторов. Режим командной строки – это прямой потомок операционных систем DOS (рис. 6.32). Во времена данных систем пользователям


1.3 Почему командная строка?

Из книги автора

1.3 Почему командная строка? Существует широко распространенное заблуждение, согласно которому графический интерфейс якобы представляет собой высшую и последнюю стадию развития пользовательских интерфейсов, а «командная строка» – это нечто примитивное и малополезное,


Командная строка

Из книги автора

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


Командная строка

Из книги автора

Командная строка Запрет на режим командной строки и обработки файлов CMD и BATСуществует возможность запрета на режим командной строки ( cmd.exe ) и обработки файлов BAT и CMD . Для этого найдите или создайте параметр типа DWORD DisableCMD в разделе HKCUSoftwarePoliciesMicrosoftWindowsSystem . Данный параметр


В начале была командная строка...

Из книги автора

В начале была командная строка... ***Предисловие технического редактора: по нашим компьютерным меркам данное эссе было опубликовано давным-давно, в 1999 году — в то время, когда все знали, что такое MS-DOS, когда одними из основных операционок были Windows 95, MacOS версии 9, Linux 2.2, когда


Командная строка

Из книги автора

Командная строка Изменение вида приглашенияВы можете изменить вид приглашения для командной строки. Как правило используется формат типа C:> (текущий диск и угловая скобка). Откройте раздел HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironmentи создайте параметр °PROMPT° типа REG_EXPAND_SZ,


1.3 Почему командная строка?

Из книги автора

1.3 Почему командная строка? Существует широко распространенное заблуждение, согласно которому графический интерфейс якобы представляет собой высшую и последнюю стадию развития пользовательских интерфейсов, а «командная строка» — это нечто примитивное и малополезное,


Командная панель

Из книги автора

Командная панель В 3ds Max 2008, как и в предыдущих версиях программы, командная панель имеет шесть вкладок: Create (Создание), Modify (Изменение), Hierarchy (Иерархия), Motion (Движение), Display (Отображение) и Utilities (Утилиты). Командная панель располагается в правой части окна программы (может


Командная строка

Из книги автора

Командная строка Командная строка (рис. 1.16) расположена ниже графической области программы и позволяет вводить команды с клавиатуры. В ранних версиях AutoCAD она была основным инструментом диалога пользователя и программы, однако с выходом новых релизов значение данного


Командная строка

Из книги автора

Командная строка Вы можете запретить доступ к командному процессору cmd.exe. Для этого нужно воспользоваться параметром REG_DWORD-типа DisableCMD. Он расположен в ветви реестра HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowssystem.Если значение данного параметра равно 1, то запуск программы cmd.exe, а также


15 Командная политика

Из книги автора

15 Командная политика Этот проект по разработке программного обеспечения был чрезвычайно успешным. Команда разработчиков приобрела известность созданием потрясающей системы с усовершенствованными сервисами и отличным графическим интерфейсом. По каким-то причинам


Софтерра: Командная строка для дизайнера

Из книги автора

Софтерра: Командная строка для дизайнера Автор: Сергей ТокаревАнекдот, вынесенный в эпиграф, неплохо описывает современное состояние открытого векторного редактора Inkscape. При всем уважении к проекту нельзя не заметить, что работает он не слишком шустро, и объекты


2.6.4. Командная строка

Из книги автора

2.6.4. Командная строка MS-DOS — это операционная система, разработанная, так же как и Windows, корпорацией Microsoft. В отличие от Windows, MS-DOS не имеет графического интерфейса, и все действия в ней выполняются с помощью команд. На практике большинство из них вам не потребуется — разве что