Linux OS #3

Category: 4.OS ROBOTICS
Views: 173

Linux OS #3

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

1.  Команды управления файлами и каталогами.
2. Фильтры.
3.  Средства разработки программ, такие как текстовые редакторы и компиляторы.
4. Текстовые процессоры.
5. Системное администрирование.
6. Разное.

Стандарт POSIX 1003.1-2008 определяет синтаксис и семантику около 150 этих программ, в основном относящихся к первым трем категориям. Идея стандартизации данных программ заключается в том, чтобы можно было писать сценарии оболочки, которые работали бы на всех системах Linux. Помимо этих стандартных утилит существует еще масса прикладных программ, таких как веб-браузеры, проигрыватели мультимедийных файлов, программы просмотра изображений, офисные пакеты и т. д.
Рассмотрим несколько примеров этих утилит, начиная с программ для управления файлами и каталогами. Команда cp a b копирует файл a в b, не изменяя исходный файл. Команда  mv a b напротив, копирует файл a в b, но удаляет исходный файл. В результате она не копирует файл, а перемещает его. Несколько файлов можно сцепить в один при помощи команды cat, считывающей все входные файлы и копирующей их один за другим в стандартный выходной поток. Удалить файлы можно командой rm. Команда chmod позволяет владельцу изменить права доступа к файлу. Каталоги можно создать командой mkdir и удалить командой rmdir. Список файлов можно увидеть при помощи команды ls. У этой команды множество флагов, управляющих видом формируемого ею листинга. При помощи одних флагов можно задать, насколько подробно будет отображаться каждый файл (размер, владелец, группа, дата создания), другими флагами задается порядок, в котором перечисляются файлы (по алфавиту, по времени последнего изменения, в обратном порядке), третья группа флагов позволяет задать расположение списка файлов на экране и т. д.

Мы уже рассматривали несколько фильтров: команда grep извлекает из стандартного входного потока (или из одного или нескольких файлов) строки, содержащие заданную последовательность символов; команда sort сортирует входной поток и выводит данные в стандартный выходной поток; команда head извлекает первые несколько строк; команда tail, напротив, выдает на выход указанное количество последних строк. 
Кроме того, стандартом 1003.2 определены такие фильтры, как cut и paste, которые позволяют вырезать из файлов и вставлять в файлы куски текста, команда od конвертирует (обычно двоичный) вход в ASCII-строку (в восьмеричный, десятичный или шестнадцатеричный формат), команда tr преобразует символы (например, из нижнего регистра в верхний), а команда pr форматирует выход для вывода на принтер, позволяя добавлять заголовки, номера страниц и т. д.

Компиляторы и программные средства включают в себя компилятор gcc с языка C и программу ar, собирающую библиотечные процедуры в архивные файлы.
Еще одним важным инструментом является команда make, используемая для сборки больших программ, исходный текст которых состоит из множества файлов. Как правило, некоторые из этих файлов представляют собой заголовочные файлы (header files),  содержащие определения типов, переменных, макросов и прочие декларации. 
Исходные файлы обычно ссылаются на эти файлы с помощью специальной директивы include. Таким образом, два и более исходных файла могут совместно использовать одни и те же декларации. Однако если файл заголовков изменен, то необходимо найти все исходные файлы, зависящие от него, и перекомпилировать их. Задача команды make заключается в том, чтобы отслеживать, какой файл от какого заголовочного файла зависит, и автоматически запускать компилятор для тех файлов, которые требуется перекомпилировать. Почти все программы в системе Linux, кроме самых маленьких, компилируются с помощью команды make.

Часть команд POSIX перечислена в следующей таблице вместе с кратким описанием. Во всех версиях операционной системы Linux есть эти программы, а также многие другие.