Другие инструменты и информация

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

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

Общие средства

Инструменты в этом разделе являются общими средствами, не вписывающимися ни в какие широкие категории.

Таблица c-1  Обычно использовала общие инструменты сценариев

Инструмент

Описание

до н.э

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

ожидать

Используемый для работы с требующими трудноуправляемыми инструментами командной строки более сложное взаимодействие, чем возможно с единственным каналом. Например, Вы могли использовать expect сценарий для взаимодействия с getty по a tty или другое двунаправленное соединение для журналирования в удаленный компьютер. В целом сценарии, требующие двухстороннего взаимодействия между сценарием и программой, наиболее легко сделаны с expect сценарий.

expr

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

ложь

Возвращает (ненулевой) статус выхода отказа.

сон

Выполнение пауз сроком на время (измеренный в секундах).

истина

Возвращает успешный статус выхода (0).

Инструменты обработки текста

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

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

Таблица c-2  Обычно использовала инструменты обработки текста

Инструмент

Описание

awk

Короткий для Aho, Вайнбергера и Кернигана; язык программирования сам по себе, используемый для обработки текста с помощью регулярных выражений. Этот инструмент описан далее в Как Неловкий.

grep

Короткий для Глобальной переменной [поиск] Регулярных выражений и Печати; строки печати, соответствующие входной набор (дополнительно с конкретным количеством строк продвижения и/или запаздывающего контекста). grep команда может взять ввод от стандартного ввода или от файлов.

Общие варианты включают agrep (“приближают grep” от Унив AZ), fgrep, и egrep.

голова

Распечатывает первые несколько строк от файла (или стандартный ввод). Число строк может быть указано с -n флаг.

perl

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

sed

Короткий для потокового редактора; выполняет более сложные текстовые замены с помощью регулярных выражений.

вид

Сортирует серию строк. По умолчанию, sort чтения эти строки от его стандартного ввода. После того, как его стандартный ввод закрывается, это сортирует их и распечатывает результаты к его стандартному выводу.

хвост

Распечатывает последние несколько строк от файла (или стандартный ввод). Число строк может быть указано с -n флаг. Также можно указать стартовую позицию как байт или смещение строки или от запуска или от конца файла.

мишень

Ввод стандарта копий к стандартному выводу, сохраняя копию в файл (или многократные файлы).

TR

Замены один символ с другим.

uniq

Отфильтровывает смежные строки то соответствие.

Команды файла

Эти команды используются для управления файлами, включая переименование, перемещение, и удаление файлов, изменение полномочий, создание каталогов, перечисление файлов, и т.д.

Таблица c-3  Обычно использовала инструменты манипулирования файлом

Инструмент

Описание

CD

Изменяет текущий рабочий каталог. Команда cd .. повышает каталог, например.

chflags

Изменения отмечают на файле или каталоге. Большинство этих флагов относительно неясно. Для изменения флагов полномочий использовать chmod вместо этого.

chgrp

Изменяет группу ID, связанный с файлом или каталогом.

chmod

Режимы изменений (биты полномочий) или списки управления доступом (ACLs) на файле или каталоге.

chown

Изменяет владение файлов или каталогов. Эта команда может также изменить группу при желании.

найти

Списки или поиски файлов в каталоге и его подкаталогах.

ln

Создает символьные ссылки и жесткие ссылки на файлы или каталоги.

ls

Перечисляет файлы в текущем каталоге.

mkdir

Создает новые каталоги.

mkfifo

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

mv

Перемещения или переименовывают файлы и каталоги.

rm и rmdir

Удаляет файлы и каталоги

статистика

Печать детализировала информацию о статусе файла, такую как тип файла, даты последнего изменения, и т.д.

GetFileInfo и SetFile

Эти инструменты, установленные как часть установки Инструментов Разработчика, полезны для получения и управления вещами как расширенные атрибуты.

Знайте, что, если Вы пишете сценарий, зависящий от них, это потребует, чтобы были установлены Инструменты Разработчика.

Дисковые команды

Инструменты, перечисленные в этом разделе, выполняют операции на дисках, файловых системах, таблицах разделов и образах дисков.

Таблица c-4  Обычно использовала связанные с диском и связанные с разделом инструменты

Инструмент

Описание

diskutil

Монтирует и размонтировал объемы и диски, проверяет диски на непротиворечивость, стирает оптические диски, вытирает диски безопасностью вытрите, диски разделов, управляет наборами RAID, и т.д.

Эта утилита является дубликатом командной строки к приложению Дисковой утилиты.

fsck, fsck_msdos, fsck_hfs

Проверяет файловую систему на непротиворечивость.

hdiutil

Создает и управляет образами дисков, включая присоединение образов дисков для монтирования.

mount и umount

(Также mount_afp, mount_cd9660, mount_cddafs, mount_fdesc, mount_ftp, mount_hfs, mount_msdos, mount_nfs, mount_ntfs, mount_smbfs, mount_udf, mount_url, и mount_webdav)

Монтирует и размонтировал объемы.

При размонтировании автосмонтированных объемов за спиной дисковой арбитражной системы можно вызвать странное поведение в GUI. Используйте эти команды с осторожностью, и при попытке размонтировать автосмонтированный объем, использовать hdiutil или diskutil вместо этого.

Архивация и команды сжатия

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

Инструменты сжатия могут также обычно использоваться с каналами для сжатия данных, не храня его в файле. Архивные инструменты могут обычно использовать стандартный ввод или вывод для чтения или записи самого архива, но не содержания этого. funzip вариант инструмента архивации zip может использоваться с двумя каналами, но может только извлечь первый файл из архива.

Таблица c-5  Обычно использовала инструменты архивации и сжатия

Инструмент

Описание

bzip2, bunzip2, и bzip2recover

Сжатия и файлы распаковок с помощью текстового алгоритма сжатия блочной сортировки Нор-Wheeler и Кодирования методом Хаффмана. Этот инструмент сжатия берет несколько дольше, чем другие инструменты такой как gzip, но имеет тенденцию приводить к меньшим файлам и таким образом становится все популярнее для распределения больших файлов.

Файлы, создаваемые с этим инструментом, заканчиваются .bz2 расширение.

compress и uncompress

Сжатия и файлы распаковок с помощью алгоритма сжатия Lempel-Ziv-Welsh (LZW). Этот формат сжатия в основном упал из популярности.

Файлы, создаваемые этим инструментом, заканчиваются .Z расширение.

gzip, gunzip, zcat, и gzcat

Сжатия, распаковывает и распечатывает содержание файлов в Zip GNU (основанный на LZ77) формат. Эта схема сжатия нравится пользователям UNIX и пользователям Linux.

В то время как на основе той же базовой схемы сжатия, Zip GNU и форматы файлов ZIP не являются тем же. Формат файла ZIP может содержать многократные файлы, в то время как формат файла Gzip может только содержать единственный файл (хотя этот единственный файл может быть a tar архив).

Файлы, создаваемые этим инструментом, заканчиваются .gz расширение.

zip, unzip, и funzip

Сжатия и распаковывают файлы, и каталоги с помощью формата файла ZIP (выкачайте, на основе LZ77 и Кодирования методом Хаффмана). Этот формат файла обычно используется для обмена сжатыми файлами с пользователями Windows.

Файлы, создаваемые этим инструментом, заканчиваются .zip расширение.

tar

Создает, добавляет к и извлекает многофайловые архивы в tar (короткий для «Ленточного архива») формат. Этот формат является стандартным форматом для того, чтобы хранить многократные файлы в единственном архиве среди пользователей UNIX и пользователей Linux. Формат файла tar обычно замечается в сжатой форме, с помощью также gzip или bzip2.

Файлы, создаваемые этим инструментом, заканчиваются .tar расширение (или .tgz или .tbz расширения для архивов tar сжались с gzip или bzip2).

Для получения дополнительной информации

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

Для справки, находящей, что команда выполняет определенную задачу, можно или искать интерактивную версию страниц справочника или использовать apropos команда на командной строке.

Счастливые сценарии!