6.15. Coreutils-5.2.1

El paquete Coreutils contiene utilidades para mostrar y establecer las características básicas del sistema.

Tiempo estimado de construcción: 0.9 SBU
Espacio requerido en disco: 69 MB
La instalación de Coreutils depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl y Sed

6.15.1. Instalación de Coreutils

Un problema conocido en el programa uname de este paquete es que la opción -p siempre devuelve unknown (desconocido). El siguiente parche corrige este comportamiento en arquitecturas Intel:

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

Evita que Coreutils instale binarios que serán instalados más tarde por otros paquetes:

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

Prepara Coreutils para su compilación:

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

Compila el paquete:

make

El banco de pruebas de Coreutils hace ciertas suposiciones relativas a la presencia de ficheros y usuarios que no son válidos tan temprano en la construcción de LFS. Por tanto hay que preparar varias cosas antes de poder ejecutar las pruebas. Si decides no ejecutar el banco de pruebas, salta hasta “Instala el paquete”.

Crea dos grupos y un usuario ficticios:

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

Ahora todo está preparado para ejecutar el banco de pruebas. Primero ejecuta las pruebas que requieren que se ejecuten como root:

make NON_ROOT_USERNAME=dummy check-root

A continuación ejecuta el resto como usuario dummy:

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

Cuando termines con las pruebas, elimina los grupos y el usuario ficticios:

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

Instala el paquete:

make install

Mueve algunos programas a sus ubicaciones adecuadas:

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

Finalmente, crea un enlace simbólico para cumplir con el FHS:

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

6.15.2. Contenido de Coreutils

Programas instalados: 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 y yes

Descripciones cortas

basename

Elimina cualquier ruta y sufijo indicado de un nombre de fichero.

cat

Concatena ficheros en la salida estándar.

chgrp

Cambia el grupo propietario de cada fichero dado al grupo especificado. El grupo puede indicarse tanto por su nombre como por su identificador numérico.

chmod

Cambia los permisos de cada fichero dado al modo indicado. El modo puede ser una representación simbólica de los cambios a hacer o un número octal que representa los nuevos permisos.

chown

Cambia el usuario y/o el grupo al que pertenece cada fichero dado al par usuario/grupo indicado.

chroot

Ejecuta un comando usando el directorio especificado como directorio /.

cksum

Muestra la suma de comprobación CRC (Comprobación Cíclica Redundante) y cuenta los bytes de cada fichero especificado.

comm

Compara dos ficheros ordenados, sacando en tres columnas las líneas que son únicas y las líneas que son comunes.

cp

Copia ficheros.

csplit

Trocea un fichero en varios nuevos ficheros, separándolos de acuerdo a un patrón indicado o a un número de líneas, y muestra el número de bytes de cada nuevo fichero.

cut

Imprime fragmentos de líneas, seleccionando los fragmentos de acuerdo a los campos o posiciones indicadas.

date

Muestra la fecha y hora actual en un formato determinado o establece la fecha y hora del sistema.

dd

Copia un fichero usando el tamaño y número de bloques indicado, mientras que, opcionalmente, realiza conversiones en él.

df

Muestra la cantidad de espacio disponible (y usado) en todos los sistemas de ficheros montados, o solo del sistema de ficheros en el que se encuentran los ficheros seleccionados.

dir

Lista el contenido del directirio indicado (lo mismo que ls).

dircolors

Imprime comandos para modificar la variable de entorno LS_COLOR, para cambiar el esquema de color usado por ls.

dirname

Elimina los sufijos que no son directorios del nombre de un fichero.

du

Muestra la cantidad de espacio en disco usado por el directorio actual o por cada directorio indicado (incluyendo todos sus subdirectorios) o por cada fichero indicado.

echo

Muestra la cadena indicada.

env

Ejecuta un programa en un entorno modificado.

expand

Convierte las tabulaciones a espacios.

expr

Evalúa expresiones.

factor

Muestra los factores primos de los números enteros especificados.

false

No hace nada, infructuoso. Siempre termina con un código de estado que indica un fallo.

fmt

Reformatea cada párrafo de los ficheros especificados.

fold

Reajusta la longitud de línea en cada fichero dado.

groups

Muestra los grupos a los que pertenece un usuario.

head

Imprime las 10 primeras líneas (o el número de líneas indicado) de un fichero.

hostid

Muestra el identificador numérico (en hexadecimal) de la máquina actual.

hostname

Muestra o establece el nombre de la máquina actual.

id

Muestra los identificadores efectivos de usuario y grupo, y los grupos a los que pertenece, del usuario actual o de un usuario dado.

install

Copia ficheros mientras establece sus permisos y, si es posible, su propietario y grupo.

join

Une a partir de dos ficheros las líneas que tienen campos de unión idénticos.

link

Crea un enlace duro con el nombre indicado de un fichero dado.

ln

Crea enlaces duros o blandos (simbólicos) entre ficheros.

logname

Muestra el nombre de acceso del usuario actual.

ls

Lista el contenido de cada directorio indicado.

md5sum

Muestra o verifica sumas de comprobación MD5 (Mensaje de Resúmen 5).

mkdir

Crea directorios con los nombres indicados.

mkfifo

Crea tuberías (FIFO, el primero en entrar, el primero en salir) con los nombres indicados.

mknod

Crea nodos de dispositivos con los nombres indicados. Un nodo de dispositivo es un fichero especial de caracteres o un fichero especial de bloques o una tubería.

mv

Mueve o renombra ficheros o directorios.

nice

Ejecuta un programa con una prioridad distinta.

nl

Numera las líneas de los ficheros dados.

nohup

Ejecuta un comando que no se interrumpe cuando se cierra la sesión, con su salida redirigida a un fichero de registro.

od

Vuelca ficheros en octal y otros formatos.

paste

Mezcla los ficheros indicados, uniendo secuencialmente las líneas correspondientes de uno y otro, separándolas con tabulaciones.

pathchk

Comprueba si los nombres de ficheros son válidos o portables.

pinky

Es un cliente finger ligero. Muestra algo de información sobre un determinado usuario.

pr

Pagina y encolumna el texto de un fichero para imprimirlo.

printenv

Muestra el entorno.

printf

Muestra los argumentos dados de acuerdo al formato indicado. Muy parecido a la función printf de C.

ptx

Genera un índice permutado de los contenidos de un fichero, con cada palabra clave en su contexto.

pwd

Muestra el nombre del directorio de trabajo actual.

readlink

Muestra el valor del enlace simbólico indicado.

rm

Elimina ficheros o directorios.

rmdir

Elimina directorios si están vacíos.

seq

Muestra una secuencia de números, dentro de un cierto rango y con un cierto incremento.

sha1sum

Muestra o verifica sumas de comprobación SHA1 de 160 bits.

shred

Sobreescribe los ficheros indicados repetidamente con patrones extraños, haciendo realmente difícil recuperar los datos.

sleep

Hace una pausa por el tiempo indicado.

sort

Ordena las líneas de los ficheros indicados.

split

Divide un fichero en trozos, por tamaño o por número de líneas.

stat

Muestra el estado de ficheros o sistemas de ficheros.

stty

Establece o muestra los ajuste de línea del terminal.

sum

Muestra la suma de comprobación y el número de bloques para cada fichero dado.

sync

Refresca los almacenadores intermedios de los sistemas de ficheros. Fuerza el guardado de los bloques modificados al disco y actualiza el superbloque.

tac

Concatena en orden inverso los ficheros indicados.

tail

Imprime las últimas 10 líneas (o el número de líneas indicado) de cada fichero dado.

tee

Lee de la entrada estándar y escribe tanto en la salida estándar como en los ficheros indicados.

test

Comprueba el tipo de los ficheros y compara valores.

touch

Cambia las fechas de modificación o acceso de cada fichero especificado, poniéndole la fecha actual. Si un fichero no existe crea uno vacío.

tr

Convierte, altera y borra caracteres de la entrada estándar.

true

No hace nada, conseguido. Siempre termina con un código de estado que indica éxito.

tsort

Realiza una ordenación topológica. Escribe una lista totalmente ordenada de acuerdo con el orden parcial del fichero especificado.

tty

Muestra el nombre de fichero del terminal conectado a la entrada estándar.

uname

Muestra información del sistema.

unexpand

Convierte los espacios en tabulaciones.

uniq

Elimina líneas consecutivas duplicadas.

unlink

Elimina el fichero indicado.

users

Muestra los nombres de los usuarios conectados actualmente.

vdir

Es lo mismo que ls -l.

wc

Muestra el número de líneas, palabras y bytes de un fichero, y una línea con el total si se ha especificado más de uno.

who

Muestra quién está conectado.

whoami

Muestra el nombre de usuario asociado con el identificador de usuario efectivo actual.

yes

Muestra en pantalla “y” o una cadena de texto dada indefinidamente, hasta que es matado.