GNU Coreutils
GNU Coreutils — это набор программного обеспечения GNU, реализующий множество стандартных команд Unix-подобной операционной системы, используемых в командной оболочке. Утилиты обычно предоставляют совместимый с POSIX интерфейс при установленной переменной окружения POSIXLY_CORRECT, однако по умолчанию реализуют надмножество стандартного интерфейса. Например, эти утилиты поддерживают длинные параметры командной строки и параметры после позиционных аргументов. Для BSD переменная POSIXLY_CORRECT переключает отдельные аспекты поведения.
Схожие по функциональности сборники существуют и в экосистеме FOSS, хотя они могут отличаться по набору команд, функциям или лицензии. Среди них — BusyBox, распространяемый под лицензией GPL-2.0-only, и Toybox, лицензированный под 0BSD.
Общие сведения
| GNU Coreutils | |
|---|---|
| Тип | набор утилит |
| Разработчик | GNU Project |
| Написана на | C, shell script[1] |
| Операционная система | Unix-подобные |
| Последняя версия | |
| Репозиторий | git.savannah.gnu.org/cgi… |
| Лицензия |
2007, GPL 3.0 или новее с версии 6.10; 2002, GPL 2.0 или новее до версии 6.9 |
Команды
Команды, реализованные в coreutils, приведены ниже. В данной статье, как принято в Unix-подобных системах, термин «файл» применяется ко всем объектам файловой системы, включая обычные файлы и специальные типы, такие как каталоги.
chcon— Изменить контекст безопасности файла (SELinux)chgrp— Изменить группу файлаchown— Изменить владельца файлаchmod— Изменить права доступа к файлуcp— Копировать файлыdd— Копировать и преобразовывать содержимое файловdf— Отображать свободное место на файловой системеdir— Аналогls -C -b; по умолчанию выводит список файлов в колонках, отсортировано по вертикалиdircolors— Настроить цветовую схему выводаlsinstall— Копировать файлы и назначать им атрибутыln— Создать ссылку на файлls— Показать список файловmkdir— Создать каталогmkfifo— Создать именованный канал (FIFO)mknod— Создать специальные файлы устройств (блочные или символьные)mktemp— Создать временные файлы или каталогиmv— Переместить или переименовать файлrealpath— Получить абсолютный или относительный путь к файлуrm— Удалить файлыrmdir— Удалить пустой каталогshred— Перезаписать файл для скрытия содержимого и, при необходимости, удалить егоsync— Сбросить буферы файловой системыtouch— Изменить временные метки файлов, создать файл, если его не существуетtruncate— Изменить размер файла за счёт усечения или расширенияvdir— Аналогls -l -b; выводит список файлов в расширенном формате
b2sum— Вычислить и проверить контрольную сумму BLAKE2bbase32— Кодировать или декодировать данные в формате base32base64— Кодировать или декодировать данные в формате base64basenc— Кодировать или декодировать различные форматы, включая шестнадцатеричный, base32, base64 и Z85cat— Склеить (конкатенировать) файлыcksum— Посчитать или проверить контрольную сумму файлаcomm— Построчное сравнение двух отсортированных файловcsplit— Разделить файл на части по строкам-контекстамcut— Удалить указанные участки строк файловexpand— Преобразовать табуляции в пробелыfmt— Форматировать текстfold— Переносить строки текста по ширинеhead— Вывести начало файлаjoin— Объединить строки двух файлов по общему полюmd5sum— Подсчитать и проверить MD5-хешnl— Пронумеровать строки файлаnumfmt— Форматировать числаod— Дамп файлов в восьмеричном или других форматахpaste— Объединить строки файловptx— Формировать переставленный индекс содержимого файловpr— Разбивать или колоновать вывод для печатиsha1sum,sha224sum,sha256sum,sha384sum,sha512sum— Вычислить и проверить контрольные суммы SHA-1/SHA-2shuf— Генерировать случайные перестановкиsort— Сортировать строки файлаsplit— Разделить файл на частиsum— Контрольная сумма и подсчёт блоков в файлеtac— Склеить файлы в обратном порядке (построчно)tail— Вывести конец файлаtr— Преобразовать или удалить символыtsort— Выполнить топологическую сортировкуunexpand— Преобразовать пробелы в табуляцииuniq— Удалить дублирующиеся строки в отсортированном файлеwc— Подсчитать количество байт, слов и строк в файле
arch— Показать архитектуру машины (аналогuname -m)basename— Убрать путь из имени файлаchroot— Изменить корневой каталогdate— Показать или установить текущие дату и время системыdirname— Убрать недиректориальную часть имени файлаdu— Показать использование места на файловой системеecho— Напечатать текстenv— Показать или изменить переменные окруженияexpr— Вычислять выраженияfactor— Разложить число на множителиfalse— Завершить выполнение с ошибочным статусомgroups— Показать группы, к которым принадлежит пользовательhostid— Показать числовой идентификатор текущего компьютераid— Показать реальный и эффективный UID и GIDlink— Создать жёсткую ссылку на файлlogname— Отобразить имя пользователяnice— Изменить приоритет выполнения процессаnohup— Позволяет выполнять команду после выхода из системыnproc— Определить число доступных процессоровpathchk— Проверить имена файлов на корректность и переносимостьpinky— Облегчённая версия fingerprintenv— Показать переменные окруженияprintf— Форматировать выводpwd— Показать текущий рабочий каталогreadlink— Показать путь, на который указывает символическая ссылкаruncon— Выполнить команду в заданном контексте безопасностиseq— Сгенерировать последовательность чиселsleep— Задержка выполнения на указанное времяstat— Показать информацию об inodestdbuf— Выполнить команду с переназначением буферизации потоковstty— Изменить или показать параметры терминалаtee— Записать вывод в несколько файловtest— Проверить логическое выражениеtimeout— Выполнить команду с ограничением времениtrue— Завершить выполнение с успешным статусомtty— Показать имя терминалаuname— Показать сведения о системеunlink— Удалить файл через функциюunlink()uptime— Показать время работы системыusers— Показать имена пользователей, подключённых к системеwho— Показать список залогиненных пользователейwhoami— Показать эффективный UID текущего пользователяyes— Многократно выводить заданную строку[— Синоним для test; используется в выражениях вида[ выражение ]
История
В 1990 году Дэвид МакКензи объявил о выпуске набора GNU fileutils[3].
В 1991 году МакКензи анонсировал GNU shellutils и GNU textutils[4].[5] Джим Майеринг стал сопровождающим этих пакетов (ныне известных как coreutils) и продолжает их поддерживать[6].
В сентябре 2002 года GNU coreutils были объединены из ранее существовавших пакетов textutils, shellutils и fileutils, а также ряда других вспомогательных программ[7].
В июле 2007 года лицензия GNU coreutils была обновлена с GPL-2.0 или новее на GPL-3.0 или новее[8].
Примечания
Ссылки
- Официальный сайт
- Руководство пользователя
- The Heirloom Toolchest — альтернативный набор командных утилит
- Статья на opensource.com: gnu-core-utilities, 4 апреля 2018 года, Дэвид Боут
- Rosetta Stone For *Nix — настраиваемый список аналогичных программ для *nix-систем
- The Unix Acronym List — объясняет происхождение названий многих Unix-команд