Enstringmiento de comandos en Linux

El enstringmiento de comandos en Linux nos permite ejecutar múltiples comandos al mismo tiempo y directamente a través de la terminal. Es como scripts de shell cortos que se pueden ejecutar a través de la terminal directamente. El enstringmiento de comandos de Linux es una técnica de combinación de varios comandos de modo que cada uno de ellos pueda ejecutarse en secuencia dependiendo del operador que los separe y estos operadores deciden cómo se ejecutarán los comandos. Nos permite ejecutar múltiples comandos en sucesión o simultáneamente.

Algunos operadores de enstringmiento comúnmente utilizados son los siguientes:

Operadores

Función

& (y comercial) Este comando envía un proceso/script/comando al fondo. 
&& ( Y lógico) El comando que sigue a este operador solo se ejecutará si el comando que precede a este operador se ha ejecutado correctamente. 
; (Punto y coma) El comando que sigue a este operador se ejecutará incluso si el comando que precede a este operador no se ejecuta correctamente.
|| (OR lógico) El comando que sucede a este operador solo se ejecuta si el comando que lo precede ha fallado.
| (Tubo) La salida del primer comando actúa como entrada del segundo comando.
! (NO) Niega una expresión dentro de un comando. Es muy parecido a una declaración de «excepto».
>,>>, < (Redirección) Redirige la salida de un comando o un grupo de comandos a un archivo o secuencia.
&&-|| (Y-O) Es una combinación del operador AND OR y es similar a la instrucción if-else.
\ (Concatenación) Se usa para concatenar comandos grandes en varias líneas en el shell.
() (Precedencia) Permite que el comando se ejecute en orden de precedencia.
{} (combinación) La ejecución del comando que sigue a este operador depende de la ejecución del primer comando.

Trabajar con operadores de enstringmiento

1. Operador Ampersand (&): se utiliza para ejecutar un comando en segundo plano para que se puedan ejecutar otros comandos. Envía un proceso/script/comando al fondo para que otros comandos puedan ejecutarse en primer plano. Aumenta la utilización efectiva de los recursos del sistema y acelera la ejecución del script. Esto también se denomina creación de procesos secundarios o bifurcación en otros lenguajes de programación. El signo Ampersand se puede utilizar de la siguiente manera:

ping -cl google.com & #change the command before &
ping -c1 google.com & ping -c1 geeksforgeeks.org &

2. Operador AND (&&): el comando que sucede a este operador solo se ejecutará si el comando que lo precede se ejecuta con éxito. Es útil cuando queremos ejecutar un comando si el primer comando se ha ejecutado con éxito.

echo "hello there" && echo "this is gfg"
apt update && echo "hello"

AND chaining operator

3. Operador de punto y coma (;): se utiliza para ejecutar varios comandos secuencialmente de una sola vez. Pero es importante tener en cuenta que los comandos enstringdos por el operador (;) siempre se ejecutan secuencialmente. Si el operador separa dos comandos, el segundo comando siempre se ejecutará independientemente del estado de salida del primer comando. A diferencia del operador ampersand, la ejecución del segundo comando es independiente del estado de salida del primer comando. Incluso si el primer comando no se ejecuta con éxito, es decir, el estado de salida es distinto de cero, el segundo comando siempre se ejecutará.

who;pwd;ls

semi colon chaining operator

Los tres comandos se ejecutarán secuencialmente. Pero la ejecución del comando que precede al operador ( ; ) se ejecutará incluso si la ejecución del primer comando no tiene éxito.

4. Operador lógico OR (||): el comando que sucede a este operador solo se ejecutará si falla la ejecución del comando que lo precede. Es muy parecido a una declaración else. Si el estado de ejecución del primer comando es distinto de cero, se ejecutará el segundo comando.

echo "hello there" || echo "This is gfg"
apt update || echo "hello"

or chaining operator

5. Operador de tubería (|): este operador envía la salida del primer comando a la entrada del segundo comando.

ls -l | wc -l

En el comando anterior muestra el número de líneas. muestra las listas de archivos en el sistema. El primer comando muestra el número de archivos en el directorio. ls – l enumera los nombres de los archivos y esta salida se envía al siguiente comando que cuenta el número de líneas en la entrada. Como resultado, al usar pipe obtenemos la cantidad de archivos en el directorio.

piping operator

6. Operador NOT (!): Se utiliza para negar una expresión en command/. Podemos usarlo para eliminar todos los archivos excepto uno en un directorio.

touch a.txt b.txt c.txt d.txt e.txt
rm -r !(a.txt)

Este comando eliminará todos los archivos en el directorio excepto En la imagen a continuación, creamos algunos archivos usando el comando táctil dentro de un directorio. ls muestra los archivos en el directorio. ¡Para eliminar todos los archivos, excepto ‘a.txt’, usamos! Operador. Si volvemos a enumerar los archivos, podemos ver que se eliminan todos los archivos excepto a.txt.

NOT operator

7. Operadores de redirección (‘<‘,’>’,’>>’): este operador se utiliza para redirigir la salida de un comando o un grupo de comandos a una secuencia o archivo. Este operador se puede utilizar para redirigir la entrada estándar o la salida estándar o ambas. Casi todos los comandos aceptan entradas con operadores de redirección.

cat >>file_name
sort <file_name

El primer comando crea un archivo con el nombre ‘file_name’ (El operador de redirección >> nos permite dar entrada en el archivo) mientras que el segundo comando ordenará el contenido del archivo. Consulte la imagen a continuación, primero creamos un archivo con números y luego usamos este comando. Esto ordena el contenido de los archivos.

8. Operadores AND, OR como una condición if-else: Este comando se puede utilizar como una declaración if-else. Es una combinación de operadores lógicos AND y OR lógicos.

[ ! -d ABC ] && mkdir ABC || cd ABC

Este comando primero verificará si el directorio ‘ABC’ existe o no. Si no existe, se crea un nuevo directorio; de lo contrario, ‘ABC’ se convierte en el directorio actual. Consulte la imagen a continuación, el directorio llamado ‘ABC’ no existe y, por lo tanto, se crea. Cuando se ejecuta el mismo comando por segunda vez, el directorio ya existe y, por lo tanto, ‘ABC’ se convierte en el directorio actual.

9. Operador de concatenación (\):   se utiliza para concatenar comandos grandes en varias líneas en un shell. También mejora la legibilidad para los usuarios. Un comando grande se divide en varias líneas y, por lo tanto, se usa para ejecutar comandos grandes.

gedit text\(1\).txt

Se abrirá un archivo llamado texto (1).

10. Precedencia: este comando se usa para establecer un valor precedente para que varios comandos puedan ejecutarse en un orden determinado.

cmd1 && cmd 2 || cmd3
( cmd1 && cmd 2 ) || cmd3

En el primer caso, si el primer comando es exitoso, el segundo se ejecutará pero el tercer comando no se ejecutará. Pero en el segundo caso, el tercer comando se ejecutará ya que la prioridad se establece mediante el operador(). Consulte la imagen a continuación: si el directorio existe (el primer comando), entonces el directorio actual se convierte en PQR (segundo comando), pero en el primer caso, el tercer comando no se ejecuta, mientras que en el segundo caso, cuando se usa el operador de precedencia, entonces el tercer comando también se ejecuta.

precendence chaining operator

11. Operador de combinación ({}): la ejecución del comando que sigue a este operador depende de la ejecución del primer comando. El conjunto de comandos combinados con el operador {} se ejecuta cuando el comando que lo precede se ha ejecutado correctamente.

[ -f hello.txt ] && echo "file exists" ; echo "hello"
[ -f hello.txt ] && { echo "file exists" ; echo "hello"; }

En el primer caso, hola siempre se imprimirá. Si el archivo existe, el comando se ejecutará ya que precede al operador &&. Si queremos ejecutar los comandos segundo y tercero solo si el archivo existe, entonces usamos los operadores {} para combinar los comandos.

Publicación traducida automáticamente

Artículo escrito por mharshita31 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *