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

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

Bash es una interfaz de shell variada con muchas opciones de programación y un rico lenguaje de instrucción. Es fácil perderse las características y la dinámica de Bash, por lo que esta serie presenta una serie de consejos, trucos, ejemplos y gotchas cuando se trata de usar Bash. Para los dos primeros artículos de esta serie, consulte nuestro artículo Consejos y trucos de comandos útiles Ejemplos de la línea de comandos Parte 2 y útiles de la línea de comandos Bash Bash Ejemplos Parte 3.

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 3

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: Verificar correctamente la existencia de archivos y directorios

Podemos verificar la presencia de un directorio con bastante facilidad utilizando el -d (¿Existe un directorio con el nombre especificado) Cláusula en un si declaración:

$ MypathtoCheckfeforexistence = "$ pwd" $ echo "$ myPathtoCheckforexistence"/home/roel/iamhappy $ if [-d $ myPathToCheckforexistence]; Entonces Echo "existe!"; Fi existe! 


Sin embargo, es igualmente fácil cometer un error difícil de debilitar en algunas áreas de Bash. Por ejemplo, consideremos (y veamos si puede encontrar el error);

$ MyPathTcheckfeforexistance = "/doesnotReallyExist" $ if [-d $ myPathtoCheckforexistence]; Entonces Echo "existe!"; Fi existe! $ ls /doesnotreallyExist ls: no se puede acceder ' /doesnotRealLyExist': no ​​hay dicho archivo o directorio 

¿Por qué hace el si verificar llegar a la conclusión de que el /no esotrealyexist El directorio existe? ¿Puedes ver el error??

El problema aquí es que hay un error tipográfico en el nombre de la variable. Existencia VS EXISTENCIA

Quizás un poco descarado, pero con toda seriedad esto también debería ser muy fácil de encontrar con Gotcha:

$ if [-d]; Entonces Echo "existe!"; Fi existe! 

Y más significativamente;

$ Var1 = "; if [-d $ var1]; entonces echo" existe!"; Fi existe! 

Por lo tanto, si olvida la inicializar la variable de nombre del directorio que posteriormente está revisando, o el nombre de la variable está mal escrito, entonces el resultado será que la fiesta si declaraciones devueltas que existe el directorio! No hay más mención sobre esta interesante excepción en el manual (reflex Hombre Bash) que solo aclara que -d es Verdadero si el archivo existe y es un directorio..

Entonces, ¿cómo podemos arreglar esto??

Ejemplo 2: Una mejor manera de verificar la existencia de archivos y directorios

La solución es fácil; Podemos citar nuestra variable con cotizaciones dobles ("), que luego hará el si no es predeterminado al resultado siempre-verdad. Como una nota al margen interesante para un mejor pensamiento, y tal vez su comentario conocedor a continuación en el mismo efecto, uno tiene que preguntarse por qué se implementó así y cuál es la implementación subyacente siempre en realidad.

$ Var1 = "; if [-d" $ var1 "]; entonces echo" existe!"; fi $ 


Una solución simple y elegante. En vez de si declaración ahora siendo analizada como Si [-d] que, como hemos visto, siempre se evalúa de verdad, ahora se analiza como (siempre que Var1 está vacío al menos) if [-d ""] que resulta en falso y, por lo tanto, el entonces La cláusula no se ejecuta.

Ejemplo 3: Alguna vez quería extraer el contenido de un .archivo deb?

A veces, algo se rompe en un sistema, y ​​es posible que deseemos obtener un solo archivo de un .debutante paquete. .debutante Los paquetes (paquetes de instalación de estilo Debian, como lo utilizan Ubuntu y Mint) se pueden encontrar fácilmente en línea, pero no siempre es tan evidente como para extraer archivos de él. Para hacerlo, podemos:

ar x some_deb_file.deb DAR -XF Datos.alquitrán.xz 

Arkansas es una herramienta para crear, modificar y extraer de los archivos, como el manual (hombre ar) explica. Estos comandos producirán los archivos dentro del .debutante paquete. Cada .debutante El archivo tendrá dos archivos de archivo, a saber control.alquitrán.xz y datos.alquitrán.xz (un estándar común) y, como puede ver en el ejemplo, es el datos.alquitrán.xz Archivo que debe ampliarse para ver los archivos dentro del .debutante paquete.

Conclusión

En este artículo, exploramos formas de verificar correctamente la existencia de archivos y directorios mediante el uso de cotizaciones adecuadas, y ejemplificamos cómo es fácil cometer errores en esta área. Siempre pruebe sus scripts y pruebe una variedad de situaciones y escenarios diferentes. También analizamos cómo podemos extraer contenido de un .debutante archivo usando el Arkansas y alquitrán comandos. Como siempre, disfruta de la codificación de bash y déjanos un comentario a continuación con tus hallazgos!

  • 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
  • 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 4
  • Cosas para instalar en Ubuntu 20.04
  • Ubuntu 20.04 trucos y cosas que quizás no sepas
  • Bucles anidados en guiones Bash
  • Ubuntu 20.04 Guía
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux