6.15. Coreutils-5.2.1

6.15. Coreutils-5.2.1

Пакет Coreutils содержит некоторые системные утилиты для показа и установки базовых системных характеристик.

Расчетное время сборки 0.9 SBU

Требуемое место на диске 69 MB

Coreutils - зависимости установки: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl и Sed

6.15.1. Инсталируем Coreutils

Нормальное функционирование программы uname из этого пакета иногда нарушается, тогда параметр -p всегда возвращает unknown. Следующий патч исправляет это для архитектуры Intel:

patch -Np1 -i ../coreutils-5.2.1-uname-2.patch

Предупредим Coreutils от инсталяции бинарников, которые будут инсталированы позднее в других пакетах:

patch -Np1 -i ../coreutils-5.2.1-suppress_uptime_kill_su-1.patch

Теперь подготавливаем Coreutils для компиляции:

DEFAULT_POSIX2_VERSION=199209 ./configure --prefix=/usr

Компилируем пакет

make

Этот пакет поддерживает тестирование для определения корректности сборки. Тем не менее, этот специфический тест использует непревилегированных пользователей и группы, которые пока не определены в нашей простой системе. Поэтому мы создадим фиктивного пользователя и две фиктивные группы для корректной работы тестов. Если вы не хотите запускать тестирование, то переходите к “установке пакета”.

Создадим фиктивных пользователя и группы:

echo "dummy1:x:1000:" >> /etc/group
echo "dummy2:x:1001:dummy" >> /etc/group
echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd

Теперь тест полностью подготовлен к запуску. Следующий тест проверит запуск от имени пользователя root:

make NON_ROOT_USERNAME=dummy check-root

Следующий тест проверит запуск от имени фиктивного пользователя dummy:

src/su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"

После окончания теста удалим фиктивные группы и пользователя:

sed -i '/dummy/d' /etc/passwd /etc/group

Устанавливаем пакет

make install

И переместим некоторые программы в их правильное место:

mv /usr/bin/{[,basename,cat,chgrp,chmod,chown,cp,dd,df} /bin
mv /usr/bin/{date,echo,false,head,hostname,install,ln} /bin
mv /usr/bin/{ls,mkdir,mknod,mv,pwd,rm,rmdir,sync} /bin
mv /usr/bin/{sleep,stty,test,touch,true,uname} /bin
mv /usr/bin/chroot /usr/sbin

И, наконец, создадим необходимые ссылки для FHS-совместимости:

ln -s ../../bin/install /usr/bin

6.15.2. Описание Coreutils

Проинсталированные программы: basename, cat, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head, hostid, hostname, id, install, join, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep, sort, split, stat, stty, sum, sync, tac, tail, tee, test, touch, tr, true, tsort, tty, uname, unexpand, uniq, unlink, users, vdir, wc, who, whoami и yes

Короткое описание

basename

Возвращает имя файла по указаному полному имени с путями и суффиксами.

cat

Суммирует содержимое файлов на стандартный вывод.

chgrp

Изменяет группу-владельца для указанного файла на заданную группу. Группа может быть определена как по имени, так и по числовому ID.

chmod

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

chown

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

chroot

Запускает указанную команду с указанной директорией в качестве корня /.

cksum

Печатает контрольную сумму CRC и количество байт в указанном файле.

comm

Сравнивает два файла и выводит в три колонки одинаковые строки и разные.

cp

Копирует файлы.

csplit

Разделяет указанный файл на несколько других файлов, разделяя их по указанному шаблону либо по номерам строк и выводит количество байт для каждого нового файла.

cut

Печатает часть строк, соответствующих заданным параметрам.

date

Показывает текущее время в указанном формате или устанавливает системное время.

dd

Копирует файл, используя указанные размеры блоков и опциональные преобразования.

df

Показывает сколько места доступно (и используется) для всех примонтированых файловых систем или только для системы, содержащей указанные файлы.

dir

Синоним команды ls.

dircolors

Выдает команду для установки переменной окружения LS_COLOR, используемой для изменения цветовой схемы для ls

dirname

Удаляет суффикс, не являющийся директорией, из имени файла.

du

Возвращает место на диске, занимаемое указанной или текущей директориями со всеми вложеными директориями или файлами.

echo

Показывает заданную строку.

env

Запускает команду в измененном окружении.

expand

Заменяет знаки табуляции пробелами.

expr

Вычисляет выражения.

factor

Выводит разложение на простые множители всех указанных целых чисел.

false

Ничего не делает, но всегда завершается со статусом ошибки.

fmt

Форматирует абзацы в указанных файлах.

fold

Переносит строки в заданных фалах.

groups

Выводит группу, к которой принадлежит пользователь.

head

Печатает первые десять строк файла (или указанное число строк).

hostid

Возвращает числовой идентификатор хоста (в шестнадчатиричном формате).

hostname

Возвращает установленное имя хоста.

id

Возвращает ID пользователя, ID группы и группу к которой принадлежит текущий или заданный пользователь.

install

Копирует файлы, устанавливая им режим доступа и, если возможно, их владельца и группу.

join

Соединяет строки двух файлов в поля.

link

Создает жесткую ссылку на указанное имя или файл.

ln

Создает жесткую или символическую ссылку на файлы.

logname

Возвращает идентификационное имя текущего пользователя.

ls

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

md5sum

Возвращает контрольную сумму MD5.

mkdir

Создает директорию с указанным именем.

mkfifo

Создает FIFO “именованный канал” UNIX способом с заданным именем.

mknod

Создает элемент устройства с заданным именем. Элемент устройства может быть специальным символьным фалом, блочным файлом или FIFO.

mv

Перемещает или переименовывает указанные файлы или директории.

nice

Запускает программу с измененным приоритетом выполнения.

nl

Возвращает количество строк в указанном файле.

nohup

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

od

Выводит дамп файла в восьмеричном или ином формате.

paste

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

pathchk

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

pinky

Упрощенный вариант finger. Возвращает некоторую информацию об указанных пользователях.

pr

Форматирует файл по страницам и колонкам для вывода на печать.

printenv

Печатает переменные окружения.

printf

Печатает заданные параметры в указанном формате - очень похож на одноименную функцию C.

ptx

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

pwd

Возвращает имя текущей директории.

readlink

Возвращает значение символической ссылки.

rm

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

rmdir

Удаляет директорию, если она пустая.

seq

Печатает ряд чисел в заданном диапазоне с заданным шагом.

sha1sum

Возвращает или проверяет контрольную сумму 160-бит SHA1.

shred

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

sleep

Пауза на указанное время (в секундах).

sort

Сортирует строки заданных файлов.

split

Разрезает указанный файл на части заданного размера или по номерам строк.

stat

Показывает статус файла или файловой системы.

stty

Устанавливает или печатает установки терминала.

sum

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

sync

Переключает буфер файловой системы. Он принудительно записывает измененные блоки на диск и обновляет super block.

tac

Выводит содержимое указанных файлов в обратном порядке.

tail

Печатает последние десять строк (или указанное их количество) заданного файла.

tee

Считывает данные со стандартного ввода и записывает их в файл, дублируя на устройстве стандартного вывода.

test

Сравнивает значения и проверяет типы файлов.

touch

Изменяет время изменения файла, устанавливает доступ к файлу. Если файл не существует, то он будет создан с нулевой длиной.

tr

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

true

Ничего не делает, но всегда возвращает результат успешно завершенной операции.

tsort

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

tty

Возвращает имя файла терминала, присоединенного к стандартному вводу.

uname

Выводит информацию о системе.

unexpand

Заменяет пробелы символами табуляции.

uniq

Удаляет все повторяющиеся строки из отсортированного файла.

unlink

Удаляет указанный файл.

users

Выводит список подключенных к системе пользователей.

vdir

Тоже самое, что ls -l

wc

Выводит количество строк, слов и байт в указанном файле и общее количество строк, если указано более одного файла.

who

Сообщает, кто сейчас подключен.

whoami

Возвращает имя пользователя, соответствующее текущему ID.

yes

Выводит циклически “y” или заданную строку, после чего завершается.