Пакет coreutils
содержит множество
маленьких утилит, которые могут применяться и по
отдельности, но особую мощь они обретают будучи объединены
между собой и с другими утилитами. Ниже рассмотрены
большинство из них (не все). Этот текст не является заменой
руководств по этим утилитам, а всего лишь краткой справкой
по их возможностям.
Здесь рассмотрены утилиты, работающие с объектами файловой системы: файлами, каталогами, устройствами, а также с файловыми системами в целом.
копирует файлы и каталоги;
перемещает (переименовывает) файлы;
удаляет файлы и каталоги;
выводит отчёт об использовании дискового пространства;
оценивает место на диске занимаемого файлами и каталогами;
создаёт ссылки между файлами;
выводит список файлов в каталоге в различных форматах;
создаёт каталоги;
изменяет метки времени (последняя модификация, последний доступ) файла;
вычисляет абсолютное имя файла по относительному;
удаляет из полного имени файла путь;
удаляет из полного имени файла имя файла;
выводит имя текущего каталога;
Пример 1. Использование команды du для проверки выявления каталогов, занимающих много места на диске
du -b | sort -n
Команды test, date и expr совершают вычисления над своими аргументами, остальные могут быть также использованы как фильтры в потоке.
сравнивает типы файлов и значения;
выводит и устанавливает системную дату, кроме того может быть использована для вычислений над датами;
вычисляет выражения;
подсчитывает контрольную сумму по алгоритму MD5;
подсчитывает контрольную сумму по алгоритму SHA1;
подсчитывает количество строк, слов и символов в файле;
разлагает числа на простые множители;
Пример 2. Использование команды test для проверки существования файла
if test -e /bin/bash; then echo "bash существует"; else echo "bash не существует, странно"; fi;
Пример 3. Использование команды test для сравнения чисел
if test 5 -gt 7; then echo "5 > 7"; else echo "7 > 5"; fi;
Пример 4. Использование команды wc для подсчёта суммы строк во всех файлах на языке C в текущем каталоге
cat *.[ch] | wc -l
Приведённые в этом разделе команды, как правило, используются как фильтры в потоке, хотя многие из них могут работать и непосредственно с файлами.
объединяет файлы и выводит их на стандартный вывод;
объединяет файлы и выводит их на стандартный вывод, начиная с конца;
сортирует строки;
удаляет дублирующиеся строки из отсортированных файлов;
выполняет транслитерацию, сжатие и/или удаление символов из файла;
вырезает части из каждой строки файла;
делит файлы на части по шаблону;
преобразует табуляции в пробелы;
преобразует пробелы в табуляции;
форматирует текст по ширине;
переносит слишком длинные текстовые строки на следующую строку;
нумерует строки файла;
выводит файл в восьмеричном, шестнадцатеричном и других подобных формах;
читает стандартный вход и выводит и в стандартный выход и в файлы;
Пример 6. Использование команд cat, sort и uniq для получения списка адресов писавших вам людей
cat *| grep ^From: |sort |uniq
Пример 7. Получение списка слов, содержащихся в тексте с количеством вхождений
cat big.text.file | tr '[:space:][:punct:]' "\n" |sort |uniq -c |sort -n -r |less
выводит часть файла заданного размера, начиная с начала;
выводит часть файла заданного размера, начиная с конца, также используется для слежения за файлом и вывода добавляющихся в него строк;
выводит на стандартный вывод текст, заданный в аргументе;
всегда возвращает код ошибки;
всегда возвращает код успеха;
выводит строку (по умолчанию - «yes») бесконечно, пока не прервут.
выводит последовательность номеров;
создаёт паузу заданной продолжительности (в секундах);
создаёт паузу заданной продолжительности (в миллисекундах);
построчно сравнивает 2 отсортированных файла;
объединяет строки двух файлов по общему полю;
объединяет строки двух файлов по порядку;
разбивает файл на части по размеру;
Ну и в завершение:
rpm -ql coreutils | grep man | xargs -n1 basename | sed 's/.1.gz//' | xargs man