- •Работа с файлами и каталогами
- •Командная оболочка, командная строка и команды Для организации интерфейса пользователя в состав Unix входит командная оболочка, называемая shell. Она выполняет следующие функции:
- •2. Info
- •3. Использование ключей -h и --help
- •Домашние каталоги пользователей
- •Операции над файлами и каталогами
Командная оболочка, командная строка и команды Для организации интерфейса пользователя в состав 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 [номер_раздела] [имя_объекта]
Номера и названия разделов руководства:
Команды пользователя.
Системные вызовы (пользовательские функции ядра Unix; руководства рассчитаны на программиста, знающего язык С).
Библиотечные функции (функции, принадлежащие всевозможным библиотекам подпрограмм; руководства рассчитаны на программиста, знающего язык С).
Внешние устройства и работа с ними.
Форматы различных стандартных файлов системы (например, конфигурационных).
Игры, безделушки и прочие вещи, не имеющие системной ценности.
Теоретические положения, договоренности и все, что не может быть классифицировано.
Инструменты администратора (часто недоступные обычному пользователю).
Интерфейс ядра (внутренние функции и структуры данных ядра Unix, необходимые только системному программисту, исправляющему или дополняющему ядро).
Например, если нужно просмотреть справку о работе команды find, необходимо выполнить команду
man 1 find
Как правило, команда manсама находит раздел с требуемой справкой, просматривая все разделы по очереди, поэтому для получения справки по командеfind достаточно ввести
man find
Для получения списка разделов, в которых встречается требуемый термин используется ключ -l.
Страница руководства занимает, как правило, больше одной страницы экрана. Страницы перелистываются вниз с помощью клавиши пробела или клавиши [Page Down], вверх – с помощью клавиши [Page Up], для сдвига на одну строку вперед можно применять Enter или клавишу [Стрелка вниз], а на одну строку назад – клавишу [Стрелка вверх]. Переход на начало и конец текста выполняется по нажатию клавиш [g] и [G] соответственно (Go). Выход осуществляется по нажатию клавиши [q] (Quit).