Serie RHCSA: Cómo realizar la administración de archivos y directorios - Parte 2


En este artículo, RHCSA Parte 2: Administración de archivos y directorios, revisaremos algunas habilidades esenciales que se requieren en las tareas diarias de un administrador de sistemas.

Crear, eliminar, copiar y mover archivos y directorios

La gestión de archivos y directorios es una competencia fundamental que todo administrador de sistemas debe poseer. Esto incluye la capacidad de crear/eliminar archivos de texto desde cero (el núcleo de la configuración de cada programa) y directorios (donde organizará archivos y otros directorios) y para averiguar el tipo de archivos existentes.

El comando táctil se puede utilizar no solo para crear archivos vacíos, sino también para actualizar los tiempos de acceso y modificación de archivos existentes.

Puede usar archivo [nombre de archivo] para determinar el tipo de archivo (esto será útil antes de iniciar su editor de texto preferido para editarlo).

y rm [nombre de archivo] para eliminarlo.

En cuanto a los directorios, puede crear directorios dentro de las rutas existentes con mkdir [directorio] o crear una ruta completa con mkdir -p [/ full/path/to/directory] .

Cuando se trata de eliminar directorios, debes asegurarte de que estén vacíos antes de ejecutar el comando rmdir [directorio] , o usa el más poderoso (¡maneja con cuidado!) rm -rf [directorio] . Esta última opción obligará a eliminar de forma recursiva el [directorio] y todo su contenido, así que utilícelo bajo su propio riesgo.

Redirección y canalización de entrada y salida

El entorno de línea de comandos proporciona dos características muy útiles que permiten redirigir la entrada y salida de comandos desde y hacia archivos, y enviar la salida de un comando a otro, llamadas redirección y canalización, respectivamente.

Para comprender estos dos conceptos importantes, primero debemos comprender los tres tipos más importantes de flujos (o secuencias) de E/S (entrada y salida) de caracteres, que de hecho son archivos especiales, en el sentido * nix de la palabra.

  1. Standard input (aka stdin) is by default attached to the keyboard. In other words, the keyboard is the standard input device to enter commands to the command line.
  2. Standard output (aka stdout) is by default attached to the screen, the device that “receives” the output of commands and display them on the screen.
  3. Standard error (aka stderr), is where the status messages of a command is sent to by default, which is also the screen.

En el siguiente ejemplo, la salida de ls/var se envía a stdout (la pantalla), así como el resultado de ls/tecmint. Pero en el último caso, se muestra stderr.

Para identificar más fácilmente estos archivos especiales, a cada uno se le asigna un descriptor de archivo, una representación abstracta que se utiliza para acceder a ellos. Lo esencial que hay que entender es que estos archivos, al igual que otros, pueden redirigirse. Lo que esto significa es que puede capturar la salida de un archivo o secuencia de comandos y enviarla como entrada a otro archivo, comando o secuencia de comandos. Esto le permitirá almacenar en disco, por ejemplo, la salida de comandos para su posterior procesamiento o análisis.

Para redirigir stdin (fd 0), stdout (fd 1) o stderr (fd 2), están disponibles los siguientes operadores.

A diferencia de la redirección, la canalización se realiza agregando una barra vertical (|) después de un comando y antes de otro.

Recuerda:

  1. Redirection is used to send the output of a command to a file, or to send a file as input to a command.
  2. Pipelining is used to send the output of a command to another command as input.

Habrá ocasiones en las que deberá iterar sobre una lista de archivos. Para hacer eso, primero puede guardar esa lista en un archivo y luego leer ese archivo línea por línea. Si bien es cierto que puede iterar sobre la salida de ls directamente, este ejemplo sirve para ilustrar la redirección.

# ls -1 /var/mail > mail.txt

En caso de que queramos evitar que tanto stdout como stderr se muestren en la pantalla, podemos redirigir ambos descriptores de archivo a /dev/null . Observe cómo cambia la salida cuando se implementa la redirección para el mismo comando.

# ls /var /tecmint
# ls /var/ /tecmint &> /dev/null

Mientras que la sintaxis clásica del comando cat es la siguiente.

# cat [file(s)]

También puede enviar un archivo como entrada, utilizando el operador de redirección correcto.

# cat < mail.txt

Si tiene un directorio grande o una lista de procesos y desea poder ubicar un determinado archivo o proceso de un vistazo, querrá canalizar la lista a grep.

Tenga en cuenta que usamos para canalizaciones en el siguiente ejemplo. El primero busca la palabra clave requerida, mientras que el segundo eliminará el comando grep real de los resultados. Este ejemplo enumera todos los procesos asociados con el usuario de apache.

# ps -ef | grep apache | grep -v grep