Ejercicios Resueltos de Comandos Linux

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 8,18 KB

1) Escribir el comando Linux que permita listar todos los archivos del directorio actual que tengan permiso de ejecución habilitado para el dueño y el grupo.

Respuesta:

Una forma de hacerlo es usando ls y filtrando con grep por los permisos:

ls -l | grep '^...x...x'

Otra forma más precisa, usando find:

find . -maxdepth 1 -type f -perm /u+x,g+x

2) Escribir el comando Linux que permita encontrar y borrar uno a uno todos los archivos .avi en el directorio actual y que pesen más de 10MB.

Respuesta:

Utilizando find con la opción -size y la acción -exec rm {} \;:

find . -name "*.avi" -size +10M -exec rm {} \;

Nota: +10M especifica archivos de más de 10 Megabytes. La opción -exec rm {} \; ejecuta rm para cada archivo encontrado.

3) Utilizando piping, escribir el comando Linux que permita listar del directorio /root/examen todos los archivos cuyos nombres tengan 5 caracteres, comiencen con la letra 'h' (minúscula o mayúscula), y que terminen con la letra 's' (minúscula). Guardar el resultado en un archivo llamado listado en la raíz de la cuenta y desestimar los mensajes de errores que pudieran producirse.

Respuesta:

Combinando ls, grep y redirección:

ls /root/examen | grep -i '^[hH]..s$' > /root/listado 2>/dev/null
  • ls /root/examen: Lista el contenido del directorio.
  • |: Envía la salida de ls a la entrada de grep.
  • grep -i '^[hH]..s$': Filtra las líneas (nombres de archivo) que cumplen el patrón:
    • -i: Ignora mayúsculas/minúsculas para la 'h'.
    • ^: Inicio de la línea.
    • [hH]: La letra 'h' o 'H'.
    • ..: Exactamente dos caracteres cualesquiera.
    • s: La letra 's'.
    • $: Fin de la línea.
    • Este patrón asegura 5 caracteres en total (h/H + 2 cualesquiera + s).
  • > /root/listado: Redirecciona la salida estándar (los nombres encontrados) al archivo /root/listado.
  • 2>/dev/null: Redirecciona la salida de error estándar (stderr) a /dev/null, descartando los mensajes de error.

4) Especificar el comando Linux que permita crear el alias listar que permita limpiar la pantalla, poner la hora del día en formato HH:MM, y listar solo los archivos del directorio actual cuyos nombres empiezan con 'a' y listar solo los archivos que terminan en '1'.

Respuesta:

Definición del alias:

alias listar='clear; date +%H:%M; ls a*; ls *1'
  • alias listar='...': Define un alias llamado listar. Las comillas simples son necesarias porque la definición contiene espacios y puntos y coma.
  • clear: Limpia la pantalla.
  • ;: Separa comandos para ejecutarlos secuencialmente.
  • date +%H:%M: Muestra la hora actual en formato HH:MM.
  • ls a*: Lista archivos en el directorio actual cuyos nombres empiezan con 'a'.
  • ls *1: Lista archivos en el directorio actual cuyos nombres terminan en '1'.

5) Explicar brevemente cómo podría interpretarse el siguiente comando Linux: foo < archivo > archivo2

Respuesta:

Este comando ejecuta el programa o script llamado foo. La entrada estándar (stdin) de foo es redirigida para leer desde el archivo llamado archivo. La salida estándar (stdout) de foo es redirigida para escribir en el archivo llamado archivo2. Si archivo2 ya existe, su contenido será sobrescrito; si no existe, será creado.

En resumen, foo procesa el contenido de archivo y guarda el resultado en archivo2.

6) Dado el siguiente contenido de la variable de entorno PATH: /usr/local/bin:..:/bin:/usr/bin
Si tengo un comando llamado lista en el directorio actual y otro llamado de la misma forma en el directorio /usr/bin, ¿cuál sería el seleccionado al ejecutar lista simplemente en el prompt?

Respuesta:

Al ejecutar un comando sin especificar su ruta completa, el shell busca un ejecutable con ese nombre en los directorios listados en la variable de entorno PATH, en el orden en que aparecen. En este caso, la variable PATH es /usr/local/bin:..:/bin:/usr/bin.

El directorio actual (.) no está incluido en esta variable PATH. Por lo tanto, el shell no buscará el comando lista en el directorio actual. Buscará primero en /usr/local/bin, luego en .. (el directorio padre), luego en /bin, y finalmente en /usr/bin.

El primer ejecutable llamado lista que encuentre en esta secuencia será el que se ejecute. Dado que hay un lista en /usr/bin y /usr/bin está en el PATH, y asumiendo que no hay otro lista en /usr/local/bin, .., o /bin que aparezca antes, el comando ejecutado será el de /usr/bin.

Para ejecutar el comando lista del directorio actual cuando . no está en el PATH, se debería especificar la ruta explícitamente, por ejemplo: ./lista.

7) Describir brevemente lo que permite realizar el siguiente comando Linux: find . -size 0 -type f -name '*[1-2,5]?'

Respuesta:

Este comando utiliza la utilidad find para buscar archivos y directorios. Desglosando las opciones:

  • find .: Inicia la búsqueda en el directorio actual (.) y sus subdirectorios.
  • -size 0: Filtra por archivos que tienen un tamaño de 0 bytes (archivos vacíos).
  • -type f: Filtra para incluir solo archivos regulares (excluye directorios, enlaces, etc.).
  • -name '*[1-2,5]?': Filtra por nombres de archivo que coinciden con el patrón '*[1-2,5]?'. Este patrón significa:
    • *: Cero o más caracteres cualesquiera al principio.
    • [1-2,5]: Un solo carácter que sea '1', '2', ',', o '5'.
    • ?: Un solo carácter cualquiera después del anterior.
    Por lo tanto, busca archivos vacíos y regulares cuyos nombres terminan con uno de los caracteres '1', '2', ',', '5' seguido inmediatamente por cualquier otro carácter único.

En resumen, el comando busca archivos regulares vacíos en el directorio actual y sus subdirectorios, cuyos nombres cumplen el patrón especificado.

8) Suponga se ha creado el enlace simbólico llamado liga, el cual apunta al archivo arch1. Si se elimina el archivo arch1, explique breve y justificadamente lo que sucede.

Respuesta:

Si el archivo original (el destino del enlace simbólico), arch1, es eliminado, el enlace simbólico liga se convierte en un "enlace roto" o "enlace colgante" (dangling link). El archivo liga en sí mismo no se elimina automáticamente; sigue existiendo en el sistema de archivos como un archivo de tipo enlace simbólico.

Sin embargo, cualquier intento de acceder al contenido o ejecutar el enlace liga fallará, ya que el sistema operativo intentará seguir el enlace a su destino original (arch1) y no lo encontrará. El resultado será un error, típicamente "No such file or directory" (No existe el archivo o directorio).

El enlace liga seguirá existiendo hasta que sea eliminado explícitamente (por ejemplo, con rm liga).

Entradas relacionadas:

Etiquetas:
foo < archivo1 > archivo2 almacenar lista de archivos en una variable linux como hacer un alias de un ejecutable en linux eliminar contenido del path especificar comando linux que permite crear alias listar que permite limpiar la pantalla dado el siguiente contenido de la variable de ambiente path: /usr/local/bin:.:/bin:/usr/bin 6. suponga se ha creado el enlace simbólico llamado liga, el cual apunta al archivo arch1. si se elimina el archivo arch1. explique breve y justificadamente lo que sucede. comando que permite encontrar y borrar uno a uno todos los archivos .avi dado el siguiente contenido de la variable de ambiente path www.wikiteca.com/documents/cacl-3/ foo archivo2 suponga se ha creado el enlace simbólico llamado liga, el cual apunta al archivo arch1. listar variables de ambiente linux -entorno escribir el comando linux que permite encontrar y borrar uno a uno todos los archivoa .avi como se a que apunta una liga en linux permita listar directorio /root/examen todos los archivos cuyos nombres ls -l | grep - como puedo conocer el fichero al que apunta una liga en linux listar archivos avi comando Linux que permita crear el alias “listar” que permita limpiar la pantalla, poner la fecha, y listar solo los archivos del directorio actual cuyos nombres empiezan con a y terminan en 1. comando que permite listar los archivos del directorio actual linux todos los archivos cuyos nombres tengan 6 caracteres, comiencen con la letra “a” (mayúscula), y que terminen con un número. guardar el resultado en un archivo llamado “listado” en la raíz de la cuenta y desestime los mensajes de errores que pudieran como crear un alias que permita limpiar pantalla en linux especificar el comando linux que permite crear el alias “usuarios” que permita 10.- Describir brevemente lo que permite realizar el siguiente comando Linux: find . –empty –type d –name “*[1-2,5]”? tengo un comando llamado lista en el directorio actual y otro llamado de la misma forma en el directorio /usr/bin Dado el siguiente contenido de la variable de ambiente PATH: /usr/local/bin:.:/bin:/usr/bin Si tengo un comando llamado lista en el directorio actual y otro llamado de la misma forma en el directorio /usr/bin ¿cuál sería el seleccionado al escribir l Especificar el comando LINUX que permite crear el alias “listar” que permita limpiar la pantalla y poner la fecha comando linux que permite crear el alias y poner la hora /usr/local/bin:.:/bin:/usr/bin