Dos conjuntos de utilidades: GNU Core Utilities y util-linux
— comprenden muchas de las herramientas más básicas y de uso regular del administrador del sistema Linux. Sus funciones básicas permiten a los administradores de sistemas realizar muchas de las tareas necesarias para administrar una computadora Linux, incluida la administración y manipulación de archivos de texto, directorios, flujos de datos, medios de almacenamiento, controles de procesos, sistemas de archivos y mucho más.
Estas herramientas son indispensables porque, sin ellas, es imposible realizar cualquier trabajo útil en una computadora Unix o Linux. Dada su importancia, vamos a examinarlos.
GNU coreutils
La terminal de Linux
- Los 7 mejores emuladores de terminal para Linux
- 10 herramientas de línea de comandos para el análisis de datos en Linux
- Descargar ahora:hoja de referencia de SSH
- Hoja de trucos de comandos avanzados de Linux
- Tutoriales de línea de comandos de Linux
Para comprender los orígenes de GNU Core Utilities, debemos hacer un viaje corto en la máquina Wayback a los primeros días de Unix en Bell Labs. Unix se escribió para que Ken Thompson, Dennis Ritchie, Doug McIlroy y Joe Ossanna pudieran continuar con algo que habían comenzado mientras trabajaban en un gran proyecto informático multitarea y multiusuario llamado Multics. Ese algo pequeño era un juego llamado Space Travel. Como sigue siendo cierto hoy en día, siempre parecen ser los jugadores los que impulsan la tecnología informática. Este nuevo sistema operativo era mucho más limitado que Multics, ya que solo dos usuarios podían iniciar sesión a la vez, por lo que se llamó Unics. Este nombre se cambió posteriormente a Unix.
Con el tiempo, Unix resultó ser un éxito tan grande que Bell Labs comenzó esencialmente a regalárselo a las universidades y luego a las empresas por el costo de los medios y el envío. En aquellos días, el software a nivel del sistema se compartía entre organizaciones y programadores mientras trabajaban para lograr objetivos comunes dentro del contexto de la administración del sistema.
Eventualmente, los PHB de AT&T decidieron que deberían ganar dinero con Unix y comenzaron a usar licencias más restrictivas y costosas. Esto estaba ocurriendo en un momento en que el software se estaba volviendo más propietario, restringido y cerrado. Se estaba volviendo imposible compartir software con otros usuarios y organizaciones.
A algunas personas no les gustó esto y lo combatieron con software libre. Richard M. Stallman, también conocido como RMS, dirigió un grupo de rebeldes que intentaban escribir un sistema operativo abierto y de libre acceso al que llamaron Sistema Operativo GNU. Este grupo creó GNU Utilities pero no produjo un kernel viable.
Cuando Linus Torvalds escribió y compiló por primera vez el kernel de Linux, necesitaba un conjunto de utilidades de sistema muy básicas para incluso comenzar a realizar un trabajo marginalmente útil. El núcleo no proporciona comandos ni ningún tipo de shell de comandos como Bash. Es inútil por sí mismo. Entonces, Linus usó GNU Core Utilities disponibles gratuitamente y las recopiló para Linux. Esto le proporcionó un sistema operativo completo, aunque bastante básico.
Puede obtener información sobre todos los programas individuales que componen las utilidades GNU ingresando el comando info coreutils
en una línea de comando de terminal. La siguiente lista de las principales utilidades es parte de esa página de información. Las utilidades están agrupadas por función para que las específicas sean más fáciles de encontrar; en la terminal, resalte el grupo sobre el que desea obtener más información y presione la tecla Intro.
* 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
Hay 102 utilidades en esta lista. Cubre muchas de las funciones necesarias para realizar tareas básicas en un host Unix o Linux. Sin embargo, faltan muchas utilidades básicas. Por ejemplo, el mount
y umount
los comandos no están en esta lista. Esos y muchos de los otros comandos que no están en GNU coreutils se pueden encontrar en util-linux
colección.
util-linux
El util-linux
El paquete de utilidades contiene muchos de los otros comandos comunes que usan los administradores de sistemas. Estas utilidades son distribuidas por la Organización del Kernel de Linux, y prácticamente cada uno de estos 107 comandos eran originalmente tres colecciones separadas:fileutils
, shellutils
y textutils
—que se combinaron en el paquete único util-linux
en 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
Algunas de estas utilidades han quedado obsoletas y es probable que se eliminen de la colección en algún momento en el futuro. Debería consultar util-linux
de Wikipedia página para obtener información sobre muchas de las utilidades, y las páginas man también brindan detalles sobre los comandos.
Resumen
Estas dos colecciones de utilidades de Linux, GNU Core Utilities y util-linux
, juntos proporcionan las utilidades básicas necesarias para administrar un sistema Linux. Mientras investigaba este artículo, encontré varias utilidades interesantes que no conocía. Muchos de estos comandos rara vez se necesitan, pero cuando los necesitas, son indispensables.
Entre estas dos colecciones, hay más de 200 utilidades de Linux. Si bien Linux tiene muchos más comandos, estos son los necesarios para administrar las funciones básicas de un host típico de Linux.