Tutorial

Cómo invocar órdenes en Linux a través de la Shell

En este artículo vamos a ver cómo invocar órdenes en Linux a través del terminal de comandos o Shell. No solamente podremos escribir un comando a la vez en una Shell, sino que existen operadores que nos permitirán hacer interesantes combinaciones y tareas para acelerar nuestro trabajo. Vamos a ver detalladamente qué formas hay de invocar órdenes en nuestro terminal.

Invocar órdenes en Linux

Antes de saber cómo invocar ordenes en Linux, deberíamos saber de forma rápida que es realmente nuestro terminal de comandos o Shell.

Que es una Shell

Una Shell no es más que una herramienta que lee la entrada desde teclado o desde un fichero. La Shell es capaz de leer el texto escrito por un usuario e interpretarlo como una orden para ejecutar distintas funciones en el sistema. Pero no solamente es capaz de leer órdenes escritas por nosotros, sino que también podremos crear un fichero o Shell script en donde colocaremos un conjunto de órdenes que el terminal irá leyendo de forma ordenada hasta llegar al final de éste.

Cuando ejecutamos una orden en Shell, se iniciará un proceso en el que se llevará a cabo la ejecución de órdenes hasta que finalmente se muestre un resultado final. Si el resultado final muestra un 0 (no hay información) significará que el comando se ha realizado con éxito. En caso de que se muestre información significará, bien el que funcionamiento del comando implicar lista cierta información para el usuario, o que hemos obtenido un error en la ejecución.

Formas de invocar órdenes en Linux

Pero en una Shell no solamente podremos colocar una orden o comando para que el programa lo lea y ejecute, sino que tendremos la posibilidad de concatenar una serie de órdenes para que la Shell sea capaz de leerlas y ejecutarlas de forma recursiva tal y como si fuera un Shell script. Vamos a ver qué formas hay de invocar órdenes en Linux. Concretamente utilizaremos una distribución de Ubuntu.

Ejecutar proceso en segundo plano con &

Existen comandos que por defecto no muestran nada por pantalla cuando se ejecutan, debido a que son muy simples. En cambio, hay otros que, mientras se está ejecutando nos mostrará información sucesiva en el terminal y tendremos que esperar a que termine para poder ejecutar la siguiente orden.

Te recomendamos la lectura:  LibreOffice 5.4 ya está disponible como paquete Flatpak y Snap

Sabemos de sobra que Linux es un sistema multitarea, y, por ende, debe hacer alguna forma de ejecutar varias tareas simultáneamente en nuestro terminal. Efectivamente así es, en sistemas con un solo procesador, se asigna un determinado tiempo de ejecución a cada una de las tareas para que, a nuestra vista, parezca que se ejecutan al mismo tiempo.

Cuando colocamos un comando seguido del símbolo “&”, significará que éste se va a ejecutar en segundo plano y nosotros, podremos continuar ejecutando órdenes mientras que la primera se ejecuta en segundo plano.

sudo apt-get upgrade &

[1] 20682

Veremos que el comando muestra una salida con un código. Este código nos indica que hay un proceso en segundo plano con un número de asignación. Inmediatamente se nos muestra el promt de nuevo para seguir trabajando de forma normal

Traer proceso a primer plano

Para ver el estado de la orden que hemos ejecutado y enviado a segundo plano escribiremos:

jobs

[1]+ Detenido   sudo apt-get upgrade

Algo no va bien, porque el proceso se encuentra detenido, así que vamos a traerlo a primer plano de nuevo. Para ello debemos fijarnos el número que hay entre corchetes, este será el número de proceso.

fg %1

sudo apt-get upgrade

[sudo] contraseña para ayudalinux:

Vemos que el problema que había, era que no solicitaba una entrada por teclado.

Ejecutar varias órdenes de forma simultánea

En este otro caso, vamos a tratar de colocar varias órdenes en una sola línea para que se ejecuten. Para ello, utilizaremos el carácter “;”, el funcionamiento será exactamente igual que si lo hiciéramos mediante un Shell script. Cada orden se ejecutará cuando termine la anterior. Por ejemplo:

cd Escritorio/; mkdir Hola; ls

Hola

ayudalinux@ayudalinux-PC:~/Escritorio$

En este caso, estamos entrando en un directorio, creando uno nuevo y listando el contenido del anterior.

Uso de operadores condicionales

También podremos utilizar operadores condicionales a la hora de ejecutar varios comandos a la vez.

Te recomendamos la lectura:  Cómo revisar los registros del sistema en Linux

Uso de &&

Estos dos caracteres unidos significan “si y solo si”. Si colocamos: comando 1 && comando 2, el comando 2 solamente se ejecutará si y solo si el primero se ha ejecutado con éxito. Veámoslo:

mkdir /media/Nuevo && ls -l

mkdir: no se puede crear el directorio: Permiso denegado

Vemos que no se ha ejecutado el segundo comando, que sería mostrar el contenido de la carpeta actual debido a que el primero ha obtenido un error.

make && make install

Solo cuando se compile el fichero sin errores, se ejecutará el comando para instalarlo.

Uso de ||

En este caso será justo lo contrario, si colocamos: comando 1 || comando 2, solamente se ejecutará el comando 2 cuando el comando 1 haya sido erróneo.

mkdir /media/Nuevo || sudo mkdir /media/Nuevo

mkdir: no se puede crear el directorio: Permiso denegado

[sudo] contraseña para ayudalinux:

Como el comando dio error, se ha ejecutado el segundo correctamente.

Ejecutar dos órdenes simultáneamente

Finalmente vamos a ver cómo ejecutar dos órdenes de forma simultánea. Para este caso, tendremos que colocar los dos comandos entre paréntesis y seguidos de “;” el uno del otro:

(mkdir /Escritorio/Nuevo; mkdir /Escritorio/Prueba)

Por supuesto, podremos concatenar todos estos operadores a nuestro gusto para ejecutar completa sucesiones de órdenes con sonante e escribir solo una vez. Digamos que es como si creáramos un pequeño programa en Shell script con condiciones de ejecución.

Operador grave

Finalmente vamos a ver otra forma de ejecutar comandos dentro de otros comandos, es decir, la salida de un comando será la salida del comando que ejecutemos dentro de este entre tildes invertidas “`”. Por ejemplo:

echo Hoy es `date +%A` y hace frío

Hoy es domingo y hace frío

Pues éstas son todas las formas que hay de invocar órdenes en el terminal de comando de Linux. Vemos que hay muchas opciones que, combinadas creativamente, nos proporcionaran interesantes formas de ejecución. Por supuesto también podremos escribir esto en scripts y crear programas con nuestras órdenes.

Si tienes alguna duda o quieres añadir algo, escríbenos en los comentarios.

Publicaciones relacionadas

Deja una respuesta

Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar mi política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected].

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

Acepto la política de privacidad *

Botón volver arriba