Два набора утилит - 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
* 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
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
Некоторые из этих утилит устарели и, скорее всего, будут удалены из коллекции в какой-то момент в будущем. Вы можете проверить страницу util-linux в Википедии для получения информации о многих утилитах, а man-страницы также содержат подробную информацию о командах.
Заключение
Эти две коллекции утилит Linux, GNU Core Utilities и util-linux, вместе предоставляют основные команды, необходимые для администрирования систем Linux. Когда я писал эту статью, я нашел несколько интересных утилит, о которых я никогда не знал. Многие из этих команд требуются редко, но когда вы в них нуждаетесь, они незаменимы.
Всего в этих двух коллекциях имеется более 200 утилит. Хотя в Linux есть еще много команд, это команды, которые необходимы для управления базовыми функциями типичного хоста Linux.
Комментариев нет:
Отправить комментарий