Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа с файлами и каталогами.doc
Скачиваний:
48
Добавлен:
20.05.2015
Размер:
258.56 Кб
Скачать

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

  • организует исполнение программ, проверяя их синтаксис, допустимость ключей и т.д.;

  • осуществляет генерацию имен файлов;

  • осуществляет переназначение ввода и вывода;

  • организует конвейеризацию;

  • осуществляет контроль среды окружения;

  • является интерпретатором развитого командного языка, позволяющего пользователю создавать сложные сценарии выполнения программ.

Существуют различные версии shell, наиболее популярными из них являютсяsh(BourneShell),bash(BourneAgainShell),csh(C-Shell),ksh(KornShell). Мы будем рассматриватьbash, обычно загружаемую ОС по умолчанию.

Командная строкаимеет следующий вид:

$ команда ключи аргументы

Символ «$» является приглашением командной оболочки, ему могут предшествовать другие символы, отмечающие, например, имя текущего каталога, имя компьютера, имя пользователя или имя ОС.

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

Внутренние команды языка shellпредставляют собой программы, находящиеся в каталоге/usr/bin. Большинство из них имеют следующий формат:

имя_команды ключи аргументы

Ключи служат для модификации режимов работы команды и представляют собой наборы определенных символов, которым предшествует символ «-» (короткие имена ключей) или комбинация «--» (длинные имена ключей). Чаще всего в качестве короткого имени ключа используется начальная буква действия, которое определяется данным ключом, например ключ -u– это сокращение отuser.

Свойство ключа быть, с одной стороны, предельно коротким, а с другой стороны – информативным, называется аббревиативностью. Не только ключи, но и имена наиболее распространенных команд Unix обладают этим свойством. Аббревиативность ключей трудно соблюсти, когда их у команды слишком много. Некоторые буквы латинского алфавита (например, s или o) используются очень часто, и могли бы служить сокращением сразу нескольких команд. На такой случай существует другой, полнословный формат: ключ начинается на два знака «-», за которыми следует полное имя ключа. Таков, например, ключ--wildcards.

А некоторые ключи могут обозначаться как коротким, так и полным именем, например ключ с коротким именем -hимеет аналог с длинным именем--help.

Аргументы команды (или параметры команды) указывают на объекты, над которыми выполняются операции. Аргументами команд в большинстве случаев являются имена файлов. Например, приведенная ниже команда означает: «Выполнить команду ls(отображение информации о файле) с ключом-l(подробная информация) для файла а.out»:

ls -l а.out

Если необходимо использовать два и более однобуквенных ключа, большинство команд позволяют объединять их. Например, две приведенные ниже команды идентичны:

ls -lg a.out

1s -l -g a.out

Некоторые ключи требуют наличия параметра. В этом случае параметр дается после ключа, в этом случае последний нельзя объединять с другим ключом.

В одной строке может содержаться несколько команд. Они отделяются друг от друга символом «;».

Одну команду можно разместить на нескольких экранных строках. Для этого перед нажатием клавиши [Enter] необходимо поставить символ «\».

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

Получение справки о командах Unix

Получить справку о работе команд Unixможно несколькими способами.

1. Страницы руководства (manpages) содержат больше всего полезной информации. Каждая страница руководства посвящена какому-нибудь одному объекту системы. Для того чтобы посмотреть страницу руководства по какой-либо команде, нужно дать команду

man [номер_раздела] [имя_объекта]

Номера и названия разделов руководства:

  1. Команды пользователя.

  2. Системные вызовы (пользовательские функции ядра Unix; руководства рассчитаны на программиста, знающего язык С).

  3. Библиотечные функции (функции, принадлежащие всевозможным библиотекам подпрограмм; руководства рассчитаны на программиста, знающего язык С).

  4. Внешние устройства и работа с ними.

  5. Форматы различных стандартных файлов системы (например, конфигурационных).

  6. Игры, безделушки и прочие вещи, не имеющие системной ценности.

  7. Теоретические положения, договоренности и все, что не может быть классифицировано.

  8. Инструменты администратора (часто недоступные обычному пользователю).

  9. Интерфейс ядра (внутренние функции и структуры данных ядра Unix, необходимые только системному программисту, исправляющему или дополняющему ядро).

Например, если нужно просмотреть справку о работе команды find, необходимо выполнить команду

man 1 find

Как правило, команда manсама находит раздел с требуемой справкой, просматривая все разделы по очереди, поэтому для получения справки по командеfind достаточно ввести

man find

Для получения списка разделов, в которых встречается требуемый термин используется ключ -l.

Страница руководства занимает, как правило, больше одной страницы экрана. Страницы перелистываются вниз с помощью клавиши пробела или клавиши [Page Down], вверх – с помощью клавиши [Page Up], для сдвига на одну строку вперед можно применять Enter или клавишу [Стрелка вниз], а на одну строку назад – клавишу [Стрелка вверх]. Переход на начало и конец текста выполняется по нажатию клавиш [g] и [G] соответственно (Go). Выход осуществляется по нажатию клавиши [q] (Quit).