- •Работа с командной строкой
- •Командные оболочки (shells) Общая информация об оболочках
- •Командная оболочка bash
- •Базовые команды
- •Пакет coreutils Антон Бояршинов
- •Операции над файлами и каталогами
- •Фильтры
- •Поиск по атрибутам
- •Выражения
- •Вычисления
- •Поиск Антон Бояршинов
- •Действия
- •Параметры
- •Терминалы
- •Работа с файлами
Вычисления
Помимо простых операций со строками (ввод/вывод и объединение) нередко требуется выполнять некоторые вычисления над имеющимися данными. Ниже перечислены утилиты, которые выполняют вычисления над числами, датами, строками.
test
возвращает значения «истина» или «ложь» в зависимости от значения аргументов; команду test удобно использовать в сценариях для проверки условий;
date
выводит и устанавливает системную дату, кроме того может быть использована для вычислений над датами;
expr
вычисляет выражения;
md5sum
подсчитывает контрольную сумму по алгоритму MD5;
sha1sum
подсчитывает контрольную сумму по алгоритму SHA1;
wc
подсчитывает количество строк, слов и символов в файле;
factor
разлагает числа на простые множители;
Пример 7.4. Проверка наличия файла при помощи команды test
if test -e /bin/bash; then echo "bash присутствует";
else echo "bash отсутствует, странно"; fi;
Пример 7.5. Сравнение чисел при помощи команды test
if test 5 -gt 7; then echo "5 > 7"; else echo
"7 > 5"; fi;
Пример 7.6. Подсчёт суммы строк во всех файлах на языке C в текущем каталоге при помощи команды wc
cat *.[ch] | wc -l
Пример 7.7. Получение вчерашней даты при помощи команды date
date -d yesterday
Ну и в завершение не будет лишним почитать полную документацию по всем утилитам, входящим в пакет coreutils:
rpm -ql
coreutils | grep man | xargs -n1 basename | sed 's/.1.gz//' |
xargs man
Поиск Антон Бояршинов
Поиск информации в файловой системе можно условно разделить на поиск по атрибутам файла (понимая их расширительно, то есть включая имя, путь и т. п.) и поиск по содержимому. Для этих видов поиска как правило используются программы find и grep соответственно. Благодаря удобным средствам межпроцессного взаимодействия, эти два вида поиска легко объединить, то есть искать нужную информацию только в файлах с нужными атрибутами[28].
Поиск по атрибутам
Основным средством поиcка по атрибутам файла является программа find. Обобщенный вызов find выглядит так: find путь выражение, где путь — это список каталогов, в которых надо искать, а выражение — набор выражений, описывающих критерии отбора файлов и действия, которые надо произвести над найденными файлами. По умолчанию имена найденных файлов просто выводятся на стандартный вывод, но это можно переопределить и передавать список имён найденных файлов любой команде для обработки. По умолчанию find ищет во всех подкаталогах каталогов, заданных в списке путей.
Выражения
Выражения, определяющие критерии поиска файлов, состоят из пар ключ — значение. Ниже перечислены некоторые из возможных параметров поиска:
-amin, -anewer, -atime
Время последнего доступа к файлу. Позволяет искать файлы, которые были открыты в некоторый период времени, или наоброт, файлы, к которым никто не обращался в течение некоторого периода.
-cmin, -cnewer, -ctime
Время последнего изменения статуса файла.
-fstype
Тип файловой системы, на которой расположен файл.
-gid, -group
Пользователь и группа, которым принадлежит файл.
-name, -iname
Соответствие имени файла заданному шаблону.
-regex, -iregex
Соответствие имени файла регулярному выражению.
-path, -ipath
Соответствие полного имени файла (с путём) заданному шаблону.
-perm
Права доступа.
-size
Размер файла.
-type
Тип файла.
