LFCS Cómo usar el comando GNU 'SED' para crear, editar y manipular archivos en Linux - Parte 1

LFCS Cómo usar el comando GNU 'SED' para crear, editar y manipular archivos en Linux - Parte 1

La Fundación Linux anunció la LFCS (Sysadmin certificado por la Fundación Linux) Certificación, un nuevo programa que tiene como objetivo ayudar a las personas de todo el mundo a obtener certificación en tareas de administración de sistemas básicos a intermedios para sistemas Linux. Esto incluye el apoyo a los sistemas y servicios de ejecución, junto con la resolución de problemas y el análisis de primera mano, y la toma de decisiones inteligentes para aumentar los problemas a los equipos de ingeniería.

Sysadmin certificado de Linux Foundation - Parte 1

Mire el siguiente video que demuestre sobre el programa de certificación de la Fundación Linux.

La serie se titulará Preparación para el LFCS (Sysadmin certificado por la Fundación Linux) Partes 1 a través de 10 y cubra los siguientes temas para Ubuntu, Centos y OpenSuse:

Parte 1: Cómo usar el comando GNU 'SED' para crear, editar y manipular archivos en Linux Parte 2: Cómo instalar y usar VI/M como editor de texto completo Parte 3: Archivar archivos/directorios y encontrar archivos en el sistema de archivos Parte 4: Partitionamiento de dispositivos de almacenamiento, formateo de sistemas de archivos y configuración de la partición de intercambio Parte 5: Sistemas de archivos locales y de montura y red (Samba y NFS) en Linux Parte 6: Ensamblar particiones como dispositivos RAID - creación y administración de copias de seguridad del sistema Parte 7: Administración de procesos y servicios de inicio del sistema (Sysvinit, Systemd y Upstart Parte 8: Administrar usuarios y grupos, permisos y atributos de archivos y habilitar el acceso a sudo en las cuentas Parte 9: Linux Package Management con Yum, RPM, APT, DPKG, Aptitude y Zypper Parte 10: Aprender scripting de shell básico y solución de problemas del sistema de archivos

Importante: Debido a los cambios en los requisitos de certificación LFCS efectivos Feb. 2, 2016, Incluimos los siguientes temas necesarios para la serie LFCS publicada aquí. Para prepararse para este examen, se le recomienda altamente a usar la serie LFCE también.

Parte 11: Cómo administrar y crear LVM usando los comandos VGCreate, LVCreate y Lvextend Parte 12: Cómo explorar Linux con documentos y herramientas de ayuda instaladas Parte 13: Cómo configurar y solucionar problemas de Grand Unified Bootloader (Grub) Parte 14: Monitorear los procesos de Linux Uso de recursos y establecer límites de proceso por usuario Parte 15: Cómo establecer o modificar los parámetros de tiempo de ejecución del kernel en los sistemas Linux Parte 16: Cómo establecer listas de control de acceso (ACL) y cuotas de disco para usuarios y grupos Parte 17: Cómo instalar Cygwin, un entorno de línea de comandos similar a Linux para Windows Parte 18: Una guía final para configurar el servidor FTP para permitir inicios de sesión anónimos Parte 19: Configurar un servidor DNS de almacenamiento en caché recursivo básico y configurar zonas para el dominio Parte 20: Implementación del control de acceso obligatorio con Selinux o Apparmor en Linux

Esta publicación es parte 1 de Serie de 20 tutorios, que cubrirá los dominios y competencias necesarios que se requieren para el LFCS examen de certificación. Dicho esto, enciende tu terminal y comencemos.

Procesamiento de flujos de texto en Linux

Linux trata la entrada y la salida de los programas como secuencias (o secuencias) de caracteres. Para comenzar a comprender la redirección y las tuberías, primero debemos comprender los tres tipos más importantes de secuencias de E/S (entrada y salida), que de hecho son archivos especiales (por convención en UNIX y Linux, flujos de datos y periféricos, o archivos de dispositivos, también se tratan como archivos ordinarios).

La diferencia entre > (operador de redirección) y | (Operador de tubería) es que, mientras que el primero conecta un comando con un archivo, este último conecta la salida de un comando con otro comando.

# comando> archivo # command1 | comando2 

Dado que el operador de redirección crea o sobrescribe archivos en silencio, debemos usarlo con extrema precaución y nunca confundirlo con una tubería. Una ventaja de las tuberías en los sistemas Linux y Unix es que no hay un archivo intermedio involucrado con una tubería: el stDout del primer comando no se escribe en un archivo y luego se lee por el segundo comando.

Para los siguientes ejercicios de práctica usaremos el poema "Un niño feliz"(Autor anónimo).

Ejemplo de comando de gato

Uso de SED

El nombre sed es la abreviatura de Stream Editor. Para aquellos que no están familiarizados con el término, se utiliza un editor de transmisión para realizar transformaciones básicas de texto en un flujo de entrada (un archivo o entrada de una tubería).

El uso más básico (y popular) de SED es la sustitución de los personajes. Comenzaremos cambiando cada aparición de minúsculas Y a la mayúscula Y y redirigir la salida a AHAPPYCHILD2.TXT. El gramo La bandera indica que SED debe realizar la sustitución por todos los casos de plazo en cada línea de archivo. Si se omite esta bandera, SED reemplazará solo la primera aparición del término en cada línea.

Sintaxis básica:
Archivo # Sed 'S/Term/Reemplazo/Flag' 
Nuestro ejemplo:
# Sed 'S/Y/Y/G' AHAPPYCHILD.txt> AHAPPYCHILD2.TXT 
Ejemplo de comando SED

Si desea buscar o reemplazar un carácter especial (como /, \, Y) Debe escapar de él, en el término o las cuerdas de reemplazo, con una barra de atrás hacia atrás.

Por ejemplo, sustituiremos la palabra y por un amperandés. Al mismo tiempo, reemplazaremos la palabra I con Cuando el primero se encuentra al comienzo de una línea.

# sed 's/y/\ &/g; s/^i/you/g' AHAPPYCHILD.TXT 
Sed reemplazar cadena

En el comando anterior, un ^ (signo de caret) es una expresión regular bien conocida que se usa para representar el comienzo de una línea.

Como puede ver, podemos combinar dos o más comandos de sustitución (y usar expresiones regulares dentro de ellos) separándolos con un punto y coma y encerrando el conjunto dentro de citas individuales.

Otro uso de SED muestra (o elimina) una parte elegida de un archivo. En el siguiente ejemplo, mostraremos las primeras 5 líneas de /var/log/mensajes del 8 de junio.

# sed -n '/^jun 8/p'/var/log/mensajes | sed -n 1,5p 

Tenga en cuenta que, por defecto, SED imprime cada línea. Podemos anular este comportamiento con el -norte opción y luego decirle a sed que imprima (indicado por pag) Solo la parte del archivo (o la tubería) que coincide con el patrón (8 de junio al comienzo de la línea en el primer caso y las líneas 1 a 5 inclusive en el segundo caso).

Finalmente, puede ser útil al inspeccionar scripts o archivos de configuración para inspeccionar el código en sí y dejar de lado los comentarios. El siguiente SED One-Liner elimina (d) líneas en blanco o aquellas que comienzan con # (el | El carácter indica un booleano o entre las dos expresiones regulares).

# sed '/^# \ |^$/d' apache2.confusión 
cadena de coincidencia de SED

comando uniq

El uniq El comando nos permite informar o eliminar líneas duplicadas en un archivo, escribiendo a stdout de forma predeterminada. Debemos notar que uniq no detecta líneas repetidas a menos que estén adyacentes. De este modo, uniq se usa comúnmente junto con un anterior clasificar (que se usa para ordenar líneas de archivos de texto). Por defecto, clasificar toma el primer campo (separado por espacios) como campo clave. Para especificar un campo clave diferente, necesitamos usar el -k opción.

Ejemplos

El du -sch/path/to/directorio/* El comando Devuelve el uso del espacio de disco por subdirectorios y archivos dentro del directorio especificado en formato legible por humanos (también muestra un total por directorio), y no solicita la salida por tamaño, sino por subdirectorio y nombre de archivo. Podemos usar el siguiente comando para ordenar por tamaño.

# du -sch /var /* | sort -h 
Ejemplo de comando de clasificación

Puede contar el número de eventos en una fecha de registro por contar uniq Para realizar la comparación utilizando los primeros 6 caracteres (-W 6) de cada línea (donde se especifica la fecha) y el prefijo cada línea de salida por el número de ocurrencias (-C) con el siguiente comando.

# cat/var/log/mail.registro | uniq -c -w 6 
Cuente los números en el archivo

Finalmente, puedes combinar clasificar y uniq (como suelen ser). Considere el siguiente archivo con una lista de donantes, fecha de donación y cantidad. Supongamos que queremos saber cuántos donantes únicos hay. Usaremos el siguiente comando para cortar el primer campo (los campos están delimitados por un colon), ordenar por nombre y eliminar líneas duplicadas.

# gato sortuniq.txt | CUT -D: -F1 | ordenar | uniq 
Encuentra registros únicos en el archivo

Leer también: 13 ejemplos de comando "gato"

comando GREP

grep Busca archivos de texto o (salida del comando) para la ocurrencia de una expresión regular especificada y emite cualquier línea que contenga una coincidencia con la salida estándar.

Ejemplos

Mostrar la información de /etc/passwd Para el usuario Gacanepa, ignorando el caso.

# GREP -I GACANEPA /ETC /PASSWD 
Ejemplo de comando GREP

Mostrar todo el contenido de /etc cuyo nombre comienza con RC seguido de cualquier número único.

# ls -l /etc | Grep RC [0-9] 
Lista de contenido con GREP

Leer también: 12 ejemplos de comando "GREP"

Uso de comando TR

El TR El comando se puede usar para traducir (cambiar) o eliminar caracteres de stdin, y escribir el resultado a stdout.

Ejemplos

Cambiar todo en minúsculas a mayúsculas en sortUniq.archivo txt.

# gato sortuniq.txt | tr [: inferior:] [: superior:] 
Ordenar cadenas en el archivo

Exprimir el delimitador en la salida de LS -L a solo un espacio.

# ls -l | tr -s "
Delimitador de compresión

Cortar el uso de comandos

El cortar El comando extrae porciones de líneas de entrada (de stdin o archivos) y muestra el resultado en la salida estándar, en función del número de bytes (-b opción), caracteres (-C) o campos (-F). En este último caso (basado en campos), el separador de campo predeterminado es una pestaña, pero se puede especificar un delimitador diferente utilizando el -d opción.

Ejemplos

Extraer las cuentas de usuario y los shells predeterminados asignados a ellos desde /etc/passwd (el -d La opción nos permite especificar el delimitador de campo y el -F el interruptor indica qué campo (s) se extraerán.

# CAT /ETC /PASSWD | CUT -D: -F1,7 
Extraer cuentas de usuario

Resumiendo, crearemos un flujo de texto que consta de los primeros y terceros archivos no blancos de la salida del último dominio. Usaremos grep Como primer filtro para verificar las sesiones del usuario gacanepa, Luego aprieta los delimitadores a solo un espacio (tr -s"). A continuación, extraeremos el primer y tercer campo con cortar, y finalmente ordenar por el segundo campo (direcciones IP en este caso) que muestran.

# Último | Grep Gacanepa | tr -s "| Cut -d" -f1,3 | sort -k2 | uniq 
último ejemplo de comando

El comando anterior muestra cómo se pueden combinar múltiples comandos y tuberías para obtener datos filtrados de acuerdo con nuestros deseos. Siéntase libre de ejecutarlo también por piezas, para ayudarlo a ver el resultado que se canaliza de un comando al siguiente (esta puede ser una gran experiencia de aprendizaje, por cierto!).

Resumen

Aunque este ejemplo (junto con el resto de los ejemplos en el tutorial actual) puede no parecer muy útil a primera vista, son un buen punto de partida para comenzar a experimentar con los comandos que se utilizan para crear, editar y manipular archivos desde el Linux. línea de comando. No dude en dejar sus preguntas y comentarios a continuación: serán muy apreciados!

Enlaces de referencia
  1. Sobre el LFCS
  2. ¿Por qué obtener una certificación de la Fundación Linux??
  3. Regístrese para el examen LFCS
Convertirse en administrador del sistema certificado por Linux