Библиотека сайта rus-linux.net
Введение в GNU Core Utilities
Оригинал: An introduction to the GNU Core Utilities
Автор: David Both
Дата публикации: 24 апреля 2018 года
Перевод: А. Кривошей
Дата перевода: сентябрь 2018 г.
Два набора утилит - GNU Core Utilities и util-linux - содержат большинство основных и регулярно используемых инструментов системного администратора Linux. Их основные возможности позволяют системным администраторам выполнять многие задачи, необходимые для администрирования компьютера Linux, включая управление текстовыми файлами, каталогами, потоками данных, носителями данных, элементами управления процессами, файловыми системами и многое другое.
Эти инструменты незаменимы, потому что без них невозможно выполнять любую полезную работу на компьютере Unix или Linux. Учитывая их важность, давайте рассмотрим их подробнее.
GNU coreutils
Чтобы понять происхождение GNU Core Utilities, нам нужно совершить короткую поездку на машине времени в ранние дни Unix в Bell Labs. Unix была написана так, что Кен Томпсон, Деннис Ричи, Дуг Макилрой и Джо Оссанна могли продолжать использовать что-то, что они начали писать, работая над большой многозадачной и многопользовательской операционной системой под названием Multics. Это что-то было игрой под названием Space Travel. Как и сегодня, геймеры продвигали технологии вычислений. Эта новая операционная система была намного более ограниченной, чем Multics, поскольку только два пользователя могли войти в систему одновременно, поэтому ее называли Unics. Это имя позднее было изменено на Unix.
Со временем Unix оказалась настолько успешной, что Bell Labs начала по сути отдавать ее университетам, а затем компаниям за стоимость носителя и пересылки. В те времена программное обеспечение на системном уровне распространялось между организациями и программистами, поскольку они работали над достижением общих целей в контексте системного администрирования.
В конце концов, PHB и AT&T решили, что они должны делать деньги на Unix и начали использовать более ограниченные и дорогостоящие лицензии. Это происходило в то время, когда программное обеспечение становилось все более проприетарным, ограниченным и закрытым. Становится невозможным совместное использование программного обеспечения с другими пользователями и организациями.
Некоторым людям это не нравилось, и они боролись с бесплатным программным обеспечением. Ричард Столлман, также известный как RMS, возглавил группу повстанцев, которые пытались написать открытую и свободно доступную операционную систему, которую они назвали операционной системой GNU. Эта группа создала GNU Utilities, но не создала жизнеспособного ядра.
Когда Линус Торвальдс впервые написал и скомпилировал ядро Linux, ему понадобился набор очень простых системных утилит, чтобы начать выполнять хоть какую-то полезную работу. Ядро не предоставляет команды или командную оболочку, например Bash. Оно бесполезно само по себе. Итак, Линус использовал свободно доступные GNU Core Utilities и перекомпилировал их для Linux. Это дало ему полную, если и достаточно примитивную, операционную систему.
Вы можете узнать обо всех отдельных программах, входящих в Утилиты GNU, введя команду info coreutils в командной строке терминала. Приведенный ниже список основных утилит является частью этой информационной страницы. Утилиты сгруппированы по функциям, чтобы облегчить их поиск; в терминале выделите группу, по которой вы хотите получить дополнительную информацию, и нажмите клавишу Enter.
* Output of entire files:: cat tac nl od base32 base64 * Formatting file contents:: fmt pr fold * Output of parts of files:: head tail split csplit * Summarizing files:: wc sum cksum b2sum md5sum sha1sum sha2 * Operating on sorted files:: sort shuf uniq comm ptx tsort * Operating on fields:: cut paste join * Operating on characters:: tr expand unexpand * Directory listing:: ls dir vdir dircolors * Basic operations:: cp dd install mv rm shred * Special file types:: mkdir rmdir unlink mkfifo mknod ln link readlink * Changing file attributes:: chgrp chmod chown touch * Disk usage:: df du stat sync truncate * Printing text:: echo printf yes * Conditions:: false true test expr * Redirection:: tee * File name manipulation:: dirname basename pathchk mktemp realpath * Working context:: pwd stty printenv tty * User information:: id logname whoami groups users who * System context:: date arch nproc uname hostname hostid uptime * SELinux context:: chcon runcon * Modified command invocation:: chroot env nice nohup stdbuf timeout * Process control:: kill * Delaying:: sleep * Numeric operations:: factor numfmt seq
В этом списке 102 утилиты. Они охватывают многие функции, необходимые для выполнения основных задач на хосте Unix или Linux. Однако многие базовые утилиты здесь отсутствуют. Например, команды mount и umount не входят в этот список. Их, и многие другие команды, которых нет в GNU coreutils, можно найти в коллекции util-linux.
util-linux
Утилиты util-linix содержат многие другие базовые команды, которые используют системные администраторы. Эти утилиты распространяются организацией Linux Kernel, и практически каждая из этих 107 команд изначально входила в одну из трех отдельных коллекций - fileutils, shellutils и textutils - которые были объединены в единый пакет util-linux в 2003 году.
agetty fsck.minix mkfs.bfs setpriv blkdiscard fsfreeze mkfs.cramfs setsid blkid fstab mkfs.minix setterm blockdev fstrim mkswap sfdisk cal getopt more su cfdisk hexdump mount sulogin chcpu hwclock mountpoint swaplabel chfn ionice namei swapoff chrt ipcmk newgrp swapon chsh ipcrm nologin switch_root colcrt ipcs nsenter tailf col isosize partx taskset colrm kill pg tunelp column last pivot_root ul ctrlaltdel ldattach prlimit umount ddpart line raw unshare delpart logger readprofile utmpdump dmesg login rename uuidd eject look renice uuidgen fallocate losetup reset vipw fdformat lsblk resizepart wall fdisk lscpu rev wdctl findfs lslocks RTC Alarm whereis findmnt lslogins runuser wipefs flock mcookie script write fsck mesg scriptreplay zramctl fsck.cramfs mkfs setarch
Некоторые из этих утилит устарели и, скорее всего, будут удалены из коллекции в какой-то момент в будущем. Вы можете проверить
Заключение
Эти две коллекции утилит Linux, GNU Core Utilities и util-linux, вместе предоставляют основные команды, необходимые для администрирования систем Linux. Когда я писал эту статью, я нашел несколько интересных утилит, о которых я никогда не знал. Многие из этих команд требуются редко, но когда вы в них нуждаетесь, они незаменимы.
Всего в этих двух коллекциях имеется более 200 утилит. Хотя в Linux есть еще много команд, это команды, которые необходимы для управления базовыми функциями типичного хоста Linux.