Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 2

Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 2

En esta serie estamos explorando varios ejemplos de línea de comandos, trucos y bash de la línea que lo ayudarán a convertirse en un usuario y codificador de bash más avanzados. Bash proporciona un rico lenguaje de secuencia de comandos y codificación que pone el poder en manos del usuario y el desarrollador. Bash también te permite aprender a medida que avanzas, lo que lo convierte en una experiencia más agradable. Para el primer artículo de nuestra serie, consulte nuestro artículo Consejos de comandos y trucos de Bash útil Ejemplos Parte 1.

En esta serie tutorial aprenderás:

  • Consejos, trucos y métodos de comandos de comandos útiles
  • Cómo interactuar con la línea de comandos de Bash de manera avanzada
  • Cómo afilar sus habilidades de Bash en general y convertirse en un usuario bash más competente
Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 2

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Independiente de la distribución de Linux
Software Línea de comando bash, sistema basado en Linux
Otro Cualquier utilidad que no esté incluida en el shell bash de forma predeterminada se puede instalar utilizando sudo apt-get instalación de utilidad de utilidad (o yum instalación para sistemas basados ​​en redhat)
Convenciones # - requiere que los comandos de Linux se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
$-Requiere que los comandos de Linux se ejecuten como un usuario regular no privilegiado

Ejemplo 1: Captura de esa dirección IP ilusora



A veces, nuestros scripts necesitan saber qué dirección IP es nuestra máquina. Hay algunos métodos diferentes, aunque ninguno de ellos es completamente infalible. Por ejemplo, tener varios adaptadores de red en una computadora puede crear cambios en la salida mediante varios comandos. Además, algunos comandos tienen limitaciones.

Por ejemplo, el nombre de host el comando establece claramente en su manual (para el -I opción) que mostrará todas las direcciones de red del host, pero para no hacer ninguna suposición sobre el orden de la salida. Por lo tanto, parece que usar nombre de host puede no ser la mejor opción.

Los ejemplos proporcionados aquí son para capacitarlo y proporcionar algunas sugerencias para una mayor exploración y una mejora general específica y/o general. El conocimiento de la máquina que se está consultando, o la red que se utiliza permitirá transformar estos comandos en scripts de recuperación de la dirección IP más estable.

$ Myip = "$ (ip a | grep 'inet.*Global '| GREP -V Docker | sed 's |.*inet || ' | Grep -O "^[\.0-9] \+")"; echo "$ myip" 10.10.0.20 $ myip = "$ (ruta ip -s obtiene 1 | grep -o" src [\.0-9] \+"| Grep -o" [\.0-9] \+")"; echo "$ myip" 10.10.0.20 

En el primer comando, usamos el ip a (dirección IP) comando para recuperar una lista de todas las direcciones IP asignadas a esta máquina. Puedes escribir el ip a comando directamente en la línea de comandos de Bash para ver cómo se ve la salida.

A continuación se produjo todos los globales inet adaptadores, y eliminó cualquier conexión de red de Docker de la lista (puede ver que esto no es perfecto; otros software pueden crear otras interfaces de red, por ejemplo ssh u otros programas de virtualización como virtualbox, que también requeriría filtrar).

Luego procesamos más la entrada con sed Para eliminar la información a inet. Finalmente, nos quedamos con la IP real con un solo grep i.mi. Grep -O Comando que usa una expresión regular para obtener la dirección IP completa (IPv4).

Para obtener más información sobre las expresiones regulares, consulte nuestros bash regexps para principiantes con ejemplos y avanzado bash regex con artículos de ejemplos.

También puede notar nuevamente cómo hay limitaciones aquí; Cómo incorporar direcciones IP IPv6, cómo averiguar cuál es la dirección IP principal cuando hay múltiples adaptadores, etc.

En el segundo comando, buscamos la primera ruta en la máquina con ruta IP -S obtiene 1 y luego procesar la salida de manera similar. Esto es potencialmente más estable para al menos encontrar la dirección IPv4 principal de la máquina.

Háganos saber su mejor método para obtener la IP, y tal vez la dirección IPv4 primaria utilizando scripting bash en los comentarios a continuación!

Ejemplo 2: Los riesgos de los globos y la necesidad de citar correctamente

$ touch a b c $ echo "$ (echo"*")"*$ echo $ (echo "*") a b c 


En este ejemplo, primero creamos 3 archivos, a, b y C, y a continuación corremos dos eco. El primer eco cita adecuadamente el * resultante de la eco "*" Dentro de la subshell ps, resultando en un literal * ser emitido por el primer eco en el comando. El segundo comando de eco no cita correctamente el * y como tal Bash Globbing tiene lugar; el * se ve como un identificador de nombre de archivo, y los archivos se enumeran y pasan al Echo FIST. Para aclarar esto, considere:

$ echo * a b c 

Por lo tanto, vemos la necesidad de citar siempre correctamente cualquier texto que pueda interpretarse como un nombre de archivo, incluso si dicho texto ya se cita correctamente dentro de la subshell, como es el caso aquí ($ (echo "*"): Tenga en cuenta el citado *).

Conclusión

En este artículo, observamos cómo obtener una dirección IP utilizando varios métodos y consideramos expandir esto para adaptarse a varios entornos. También exploramos Bash Globbing y la necesidad de citar textos que pueden interpretarse como nombres de archivo correctamente, para evitar el globo.

  • Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 1
  • Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 2
  • Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 3
  • Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 4
  • Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 5

Tutoriales de Linux relacionados:

  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Mastering Bash Script Loops
  • Cosas para instalar en Ubuntu 20.04
  • Bucles anidados en guiones Bash
  • Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 1
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Ubuntu 20.04 Guía
  • Ubuntu 20.04 trucos y cosas que quizás no sepas
  • Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 3
  • Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 4