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, debe asegurarse de que estén vacíos antes de emitir el comando rmdir [directorio] , o use el más poderoso (¡manipúlelo 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. La entrada estándar (también conocida como stdin) se adjunta de forma predeterminada al teclado. En otras palabras, el teclado es el dispositivo de entrada estándar para ingresar comandos en la línea de comandos.
  2. La salida estándar (también conocida como stdout) se adjunta de forma predeterminada a la pantalla, el dispositivo que "recibe" la salida de los comandos y los muestra en la pantalla.
  3. Error estándar (también conocido como stderr), es el lugar al que se envían los mensajes de estado de un comando de forma predeterminada, que también es la pantalla.

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 fundamental que hay que entender es que estos archivos, al igual que otros, se pueden redirigir. 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. La redirección se usa para enviar la salida de un comando a un archivo o para enviar un archivo como entrada a un comando.
  2. La canalización se usa para enviar la salida de un comando a otro comando como entrada.

Habrá ocasiones en las que necesitará 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