Comandos Linux esenciales: eliminar directorios vacíos, listar GID, ordenar archivos y gestionar alumnos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 6,28 KB
¿Qué orden hay que ejecutar para borrar los directorios vacíos debajo del directorio /home/herrero?
Comando recomendado (seguro, pide confirmación antes de eliminar cada directorio):
find /home/herrero -type d -user herrero -empty -ok rm -r '{}' ;Explicación: find busca directorios (-type d) pertenecientes al usuario herrero (-user herrero) que estén vacíos (-empty) y, con -ok, solicita confirmación para ejecutar rm -r sobre cada resultado.
Liste el GID de los 10 primeros grupos creados que terminen en 'G'
Comando sugerido:
cat /etc/group | grep 'G$' | head -n 10 | cut -d: -f3 | sort -nExplicación: Se listan las entradas de /etc/group cuyo nombre termina en 'G' (grep 'G$'), se toman las primeras 10 líneas (head -n 10), se extrae el campo GID (cut -d: -f3) y se ordenan numéricamente (sort -n).
Explicación del comando
Comando dado:
find /usr -nouser -type d | sort -nrf | head -5- find /usr -nouser -type d: busca directorios (
-type d) en/usrque no pertenezcan a ningún usuario (-nouser). - sort -nrf: ordena los resultados.
-norden numérico,-rorden inverso (descendente) y-fignora mayúsculas/minúsculas (fold case). - head -5: muestra las primeras 5 líneas del resultado ordenado.
Resultados y explicaciones de comandos varios
Preguntas: ¿cuál es el resultado de los siguientes comandos?
tail -2 planetas.txt— Muestra las dos últimas líneas del fichero planetas.txt.grep -n Ana planeta.txt— Muestra las líneas que contienen "Ana" indicando el número de línea (-n).wc -l planetas.txt— Cuenta el número de líneas del fichero planetas.txt.sort -t: -k4,4 planetas.txt— Ordena planetas.txt por el campo 4, usando ':' como separador (-t:).more planetas.txt | grep 12 | sort -t: -k1 | head -2— Busca en planetas.txt las líneas que contienen "12", las ordena por el campo 1 y muestra las dos primeras.
Búsqueda de personas de 90 años y manipulaciones sobre alumnos.txt
grep -c ':90:' alumnos.txt— Cuenta cuántas líneas de alumnos.txt contienen ":90:" (personas de 90 años). Si se quiere solo el número total,grep -cya lo devuelve;| wc -lno es necesario en ese caso.- Ordenar ascendentemente el fichero alumnos.txt por el apellido 2 y extraer las personas con apellido HERRERO, luego ordenar por edad en orden descendente:
sort -t: -k3,3 alumnos.txt | grep ':HERRERO:' | sort -t: -k4,4nrNotas:
- Se asume que el formato es
campo1:campo2:campo3:campo4:campo5y que el Apellido2 es el campo 3. -k3,3ordena por el campo 3;grep ':HERRERO:'filtra las líneas con apellido HERRERO (ajustar según la posición exacta del apellido);sort -k4,4nrordena numéricamente y en orden inverso por el campo 4 (edad).
¿Cómo conocer a la persona más joven de todas?
sort -t: -k4,4n alumnos.txt | head -1Explicación: sort -t: -k4,4n ordena por el campo 4 numéricamente (edad) en orden ascendente; head -1 muestra la persona más joven.
Ejercicio completo con ALUMNOS.TXT
Enunciado: Tenemos un fichero ALUMNOS.TXT cuyo contenido sigue el esquema: (NOMBRE:APELLIDO1:APELLIDO2:EDAD:MOVIL). Se pide:
- Ordena ascendentemente por la columna Apellido2.
- De esa ordenación, extrae las personas cuyo primer apellido sea HERRERO.
- Vuelve a ordenar el resultado por la edad en orden descendente.
Comando combinado (asumiendo separador ':' y Apellido2 en campo 3):
sort -t: -k3,3 ALUMNOS.TXT | grep ':HERRERO:' | sort -t: -k4,4nr¿Cómo conocer qué persona es la más joven de todas?
sort -t: -k4,4n ALUMNOS.TXT | head -1Almacenar edades y teléfonos ordenados por edad
Para generar telefonos.txt con los campos edad y teléfono, ordenados por edad:
sort -t: -k4,4n ALUMNOS.TXT | cut -d: -f4,5 > telefonos.txtPreguntas de teoría
1ª Indica qué afirmación es verdadera
NTLDR es el archivo encargado del arranque de los sistemas operativos Windows NT, Windows 2000, Windows XP y Windows Server 2003. (Verdadero)
2ª ¿Cuáles de las siguientes son distribuciones de Linux?
SUSE, Debian, Ubuntu y Knoppix son distribuciones de Linux. (Todas las anteriores en la lista dada son distribuciones.)
3ª ¿Cuáles de las siguientes son distribuciones españolas?
Linex y Guadalinex, Max y Molinux, Lliurex y Linkat: todas las anteriores (son distribuciones con orígenes o proyectos vinculados a España).
Cómo conocer el identificador UUID de un dispositivo
Para obtener el UUID del dispositivo /dev/sdb2:
sudo blkid /dev/sdb2El comando blkid muestra, entre otros datos, el UUID y el tipo de sistema de ficheros del dispositivo.
Notas finales y recomendaciones
- En los ejemplos de
sortes importante usar-kX,Ycon los números de campo correctos y-npara orden numérico cuando se trabaja con edades. - Si la estructura de los ficheros difiere (por ejemplo, separadores distintos de ':'), ajustar
-ty los números de campo en consecuencia. - Antes de ejecutar comandos destructivos (
rm -r), pruebe con-printenfindo use-okpara confirmar cada eliminación.