
Hace unos días publicamos algunos métodos efectivos. Recupere fácilmente comandos del historial de comandos de Linux Como un profesional. Crear scripts para comandos de Linux es uno de ellos.
Usar scripts de comandos de Linux es como tener un asistente inteligente. Le ahorra tiempo ya que no tiene que ingresar comandos largos una y otra vez. Simplemente ejecuta el script y éste hace el trabajo por usted.
De esta manera, cometerá menos errores y realizará el trabajo más rápido. Además, puede compartir este script con otras personas para que puedan realizar fácilmente las mismas acciones.
En este breve tutorial, explicaré mediante ejemplos cómo crear scripts de comandos en Linux.
Crear scripts para comandos de Linux
¡Escribir comandos complejos en Linux es fácil! Aquí hay instrucciones paso a paso sobre cómo escribir un comando:
1. Seleccione un editor de texto:
Puedes utilizar cualquier editor de texto como nano
, vim
o gedit
. Para principiantes, nano
Suele ser más fácil.
2. Cree un nuevo archivo de secuencia de comandos:
Abra la terminal.tipo nano myscript.sh
(o reemplazar nano
con tu editor preferido también myscript.sh
con el nombre de archivo que desee).
3. Escribe la línea Shebang:
Escribe en la parte superior del archivo. #!/bin/bash
. Esta línea le dice al sistema que el script debe ejecutarse en el shell Bash.
4. Añade tus instrucciones:
Debajo de la línea shebang, escriba el comando como lo haría en la terminal. Por ejemplo, quiero agregar el siguiente comando:
cat ostechnix.txt | tr '|' '\n' | sort | tr '\n' '|' | sed "s/.$/\\n/g"
Como puede ver, el comando anterior es un poco largo y difícil de recordar. Para aquellos que se preguntan, este comando toma un archivo con elementos separados por tuberías, los clasifica y luego los genera como líneas individuales separadas por tuberías, pero elimina la última tubería y finaliza la línea correctamente con una nueva línea.Por ejemplo, si el archivo ostechnix.txt
Incluir c|a|b
el resultado después de ejecutar este comando será a|b|c
.
Si tiene varios comandos, puede colocarlos en líneas separadas o usar punto y coma ;
Sepáralos en la misma línea.
También puede agregar un nuevo comentario comenzando una línea de la siguiente manera #
. Esto no se ejecuta y es útil para comentarios o explicaciones.
5.Haga que el script sea ejecutable:
Guarde el archivo y salga del editor de texto.
Ejecute los siguientes comandos para que el script sea ejecutable:
$ chmod +x myscript.sh
6. Ejecute el script:
Para ejecutar su script, use ./myscript.sh
desde su directorio.
$ ./myscript.sh
Si está en tu directorio PATH
(Por ejemplo. /usr/bin/
o cualquiera de tus PATH
Si), solo entras myscript.sh
.
Este enfoque suele ser eficaz para la mayoría de las necesidades. Sin embargo, existen otras formas de gestionar comandos complejos:
- Alias: Para comandos más cortos o de uso común, puede establecer alias en sus comandos
~/.bashrc
o~/.bash_aliases
documento. - función de golpe:tu función Bash
~/.bashrc
Más flexible que los alias y útil para tareas un poco más complejas. - herramientas externas: Para tareas muy complejas, especialmente aquellas que involucran automatización entre sistemas, podría considerar usar algo como ansipur, cocineroo marioneta.
La elección entre estas opciones depende de la complejidad de su tarea y de sus necesidades personales u organizativas. Para la mayoría de los casos de uso individuales, será suficiente un script Bash simple como el descrito anteriormente.
Cree rápidamente un script utilizando el último comando ejecutado
¿Cómo crear un script del último comando ejecutado? ¡Es fácil!Recuerda que usamos «!!
« ¿Repetir el último comando?Entonces puedes usar echo
El comando agrega el último comando ejecutado al script como se muestra a continuación.
$ echo "!!" > script-name-here.sh
Tenga cuidado al utilizar «!!
«.Verifique dos veces su último comando antes de ejecutar este comando.
A continuación, abra el archivo de secuencia de comandos y agregue el shebang apropiado (p. ej. /bin/bash
o /bin/sh
) al comienzo del guión. Guarde el archivo y ciérrelo.
Establezca los permisos ejecutables del script:
$ chmod +x script-name-here.sh
Ahora ejecute el script usando el comando:
$ ./script-name-here.sh
¿Por qué es importante el Shebang en los guiones?
A menudo se recomienda agregar un tinglado al comienzo de un guión por varias razones. Analicemos algunos puntos clave.
Sherbón (#!
) seguido de la ruta al intérprete (p. ej. /bin/bash
o /bin/sh
) es una parte clave de un guión bien escrito. Garantiza que el script se ejecute en el entorno correcto, independientemente del shell en el que se encuentre actualmente el usuario.
1. ¿Por qué incluir Shebang?
La línea shebang le dice al sistema qué intérprete usar para ejecutar el script. Sin él, el sistema podría utilizar un shell o intérprete diferente al esperado, lo que podría provocar errores o comportamientos inesperados.
2. Seleccione #!/bin/bash
y #!/bin/sh
:
#!/bin/bash
: utilice esta opción si su secuencia de comandos se basa en una funcionalidad o sintaxis específica de Bash. Bash tiene más funciones que el shell estándar (sh
), como ciertas operaciones de matrices o técnicas de manipulación de cadenas.#!/bin/sh
: Esto es adecuado para scripts que solo usan sintaxis de shell estándar, lo que lo hace más portátil entre diferentes sistemas tipo Unix. Sin embargo, en muchos sistemas (como Ubuntu),/bin/sh
realmente vinculado a/bin/dash
un shell que es más rápido y eficiente que Bash, pero tiene menos funciones.
3. ¿Cuál elegir?
Si está escribiendo un script para uso personal en un sistema donde sabe que se puede usar Bash (como la mayoría de las distribuciones de Linux), use #!/bin/bash
En general no está mal.
Si su objetivo es la portabilidad o está escribiendo un script que debería ejecutarse en una variedad de sistemas tipo Unix, incluidos sistemas que podrían no tener Bash instalado de forma predeterminada (como en algunas imágenes mínimas de Docker), entonces #!/bin/sh
es una opción más segura.
La inclusión de líneas shebang se considera una de las mejores prácticas en secuencias de comandos y es especialmente importante para garantizar que las secuencias de comandos se comporten de manera consistente en todos los entornos.
Como principiante, apégate a #!/bin/bash
Esta es una buena opción para scripts personales en Linux, especialmente si desea utilizar funciones específicas de Bash.
¿Qué pasa si el intérprete no está instalado en la ruta predeterminada?
Si el intérprete que desea utilizar para su secuencia de comandos no está instalado en la ruta preestablecida (p. ej. /bin/bash
o /bin/sh
), puede tomar los siguientes métodos:
1. uso env
encontrar un intérprete:
Un enfoque más flexible es utilizar env
En la línea Sherbon.Esto es útil porque hace que el script sea más portátil, p. env
El intérprete se encontrará en el sistema. PATH
.
Por ejemplo, si está escribiendo un script Bash y desea utilizar cualquiera de las versiones de Bash predeterminadas por el usuario, puede utilizar #!/usr/bin/env bash
.
Este enfoque es particularmente común en entornos donde el intérprete puede estar ubicado en diferentes ubicaciones en diferentes sistemas.
2. Especifique la ruta completa al intérprete.:
Si conoce la ruta exacta al intérprete, puede especificarla en la línea shebang.Por ejemplo, si su intérprete de Python se encuentra /usr/local/bin/python3
puedes comenzar tu script con #!/usr/local/bin/python3
.
3. Modificación PATH
variables ambientales:
Si el intérprete se encuentra en una ubicación distinta a su ubicación actual PATH
y no desea (o no puede) especificar la ruta completa en cada script, puede modificar PATH
Variables de entorno para contener el directorio donde se encuentra el intérprete.
Puedes hacer esto agregando una nueva línea, por ejemplo export PATH=$PATH:/path/to/interpreter-directory
En tu .bashrc
, .bash_profile
o .profile
archivo, dependiendo de la configuración de su sistema.
De esta manera puedes usar #!/bin/bash
, #!/usr/bin/env python3
Espera, en tu guión.
4. Instale el intérprete en la ruta predeterminada.:
Otra solución, especialmente si tiene derechos administrativos y está configurando un sistema para un uso constante, es instalar el intérprete en una ubicación estándar (p. ej. /usr/bin/
o /usr/local/bin/
).
Esto puede implicar el uso de un administrador de paquetes para instalar el intérprete (generalmente colocándolo en una ubicación estándar) o crear un enlace simbólico desde la ubicación real a un directorio. PATH
.
5. Manejo de errores en scripts:
En algunos casos, es posible que desee agregar manejo de errores a su secuencia de comandos para verificar si el intérprete o comando requerido está disponible. Puede hacer esto haciendo una simple verificación en su secuencia de comandos para ver si el comando salió con un error y luego imprimir un mensaje informativo.
Tenga en cuenta que el método que elija debe adaptarse a sus necesidades específicas y a las limitaciones de su entorno.Para uso personal o de desarrollo, modifique su PATH
o usar env
Normalmente eso es suficiente. Para entornos más controlados o entornos de producción, normalmente es mejor asegurarse de que el intérprete esté instalado en una ubicación estándar.
Espero que esto ayude.