GUI «Graphical User Interface»
Si eres como la mayoría de las personas, probablemente estés familiarizado con el uso de la Interfaz Gráfica de Usuario (o GUI «Graphical User Interface») para controlar tu computadora. La GUI proporciona una forma fácil de descubrir y administrar tu sistema. Sin una GUI, algunas herramientas para gráficos y video no serían prácticas. Antes de la popularidad de la GUI, la Interfaz de Línea de Comandos (o CLI «Command Line Interface») era la forma preferida para controlar una computadora. La CLI se basa únicamente en la entrada por teclado. Todo lo que quieres que tu computadora haga, se retransmite escribiendo comandos en lugar de ir haciendo clics en los iconos.
¿Te gustaría enterarte de cuando lanzamos descuentos al Máximo o Nuevos Cursos?
CLI «Command Line Interface»
Si nunca has usado una CLI, al principio puede resultar difícil porque requiere de memorizar comandos y sus opciones. Sin embargo, la CLI proporciona un control más preciso, una mayor velocidad y capacidad para automatizar fácilmente las tareas a través del scripting. Aunque Linux tiene muchos entornos GUI, podrás controlar Linux mucho más eficazmente mediante la Interfaz de Línea de Comandos. Mediante la comprensión de los fundamentos de Linux , tienes la capacidad de trabajar en CUALQUIER distribución de Linux.
Una terminal virtual puede ejecutarse al mismo tiempo que una GUI, pero requiere que el usuario se conecte o inicie sesión a través de la terminal virtual antes de que pueda ejecutar los comandos (como lo haría antes de acceder a la interfaz GUI). La mayoría de los sistemas tienen múltiples terminales virtuales que se pueden acceder pulsando una combinación de teclas, por ejemplo: Ctrl-Alt-F1
Prompt
Una ventana del terminal muestra un prompt; el prompt aparece cuando no se ejecutan ningún comando y cuando la salida completa del comando se ha desplegado en la pantalla. El prompt está diseñado para decirle al usuario que introduzca un comando. La estructura del prompt puede variar entre las distribuciones, pero por lo general contiene información sobre el usuario y el sistema como: laprovittera@DESKTOP-1GB29SV:~$
El prompt anterior proporciona el nombre del usuario registrado en (laprovittera), el nombre del sistema (DESKTOP-1GB29SV) y el directorio actual (~). El símbolo ~ se utiliza como abreviación para el directorio principal del usuario (el directorio principal del usuario viene bajo el directorio /home y con el nombre de la cuenta de usuario, por ejemplo: /home/sysadmin).
Funciones
Un shell es el intérprete que traduce los comandos introducidos por un usuario en acciones a realizar por el sistema operativo. El shell más comúnmente utilizado para las distribuciones de Linux se llama el BASH shell. Es un shell que ofrece muchas funciones avanzadas, tales como el historial de comandos, que te permite fácilmente volver a ejecutar comandos previamente ejecutados.
El BASH shell tiene también otras funciones populares:
• Scripting: La capacidad de colocar los comandos en un archivo y ejecutar el archivo, resultando en todos los comandos siendo ejecutados. Esta función también tiene algunas características de programación, tales como las instrucciones condicionales y la habilidad de crear funciones.
• Los Alias: La habilidad de crear “nicknames” (o «sobrenombres» en español) cortos para más comandos más largos.
• Las Variables: se utilizan para almacenar información para el BASH shell. Estas variables pueden utilizarse para modificar cómo las funciones y los comandos trabajan y proporcionan información vital sobre el sistema.
Nota: La lista anterior es sólo un breve resumen de algunas de las muchas funciones proporcionadas por el BASH shell.
El formato
Muchos comandos se pueden utilizar por sí mismos sin más entradas. Algunos comandos requieren entradas adicionales para funcionar correctamente. Esta entrada adicional viene en dos formas: opciones y argumentos. El formato típico de un comando es el siguiente:
comando [opciones] [argumentos]
Las opciones se utilizan para modificar el comportamiento básico de un comando y los argumentos se utilizan para proporcionar información adicional (tal como un nombre de archivo o un nombre de usuario). Cada opción y argumento vienen normalmente separados por un espacio, aunque las opciones pueden a menudo ser combinadas. Recuerda que Linux es sensible a mayúsculas y minúsculas. Comandos, opciones, argumentos, variables y nombres de archivos deben introducirse exactamente como se muestra.
Argumentos
El comando ls proporciona ejemplos útiles. Por sí mismo, el comando ls listará los archivos y directorios contenidos en el directorio de trabajo actual.
Un argumento lo puedes pasar también al comando ls para especificar contenido de qué directorio hay que listar. Por ejemplo, el comando ls /etc/ppp listará el contenido del directorio /etc/ppp en lugar del directorio actual
Puesto que el comando ls acepta múltiples argumentos, puede listar el contenido de varios directorios a la vez, introduciendo el comando ls /etc/ppp /etc/ssh
Opciones
Las opciones pueden utilizarse con comandos para ampliar o modificar el comportamiento de un comando. Las opciones son a menudo de una letra; sin embargo, a veces serán “palabras”. Por lo general, los comandos viejos utilizan una letra, mientras los comandos nuevos utilizan palabras completas para las opciones. Opciones de una letra son precedidas por un único guión -. Opciones de palabra completa son precedidas por dos guiones –.
Puedes utilizar la opción -l con el comando ls para ver más información sobre los archivos que se listan. El comando ls -l lista los archivos contenidos dentro del directorio actual y proporciona información adicional, tal como los permisos, el tamaño del archivo y otra información.
En la mayoría de los casos, las opciones pueden utilizarse conjuntamente con otras opciones. Los comandos ls -l -h o ls -lh listarán los archivos con sus detalles, pero se mostrará el tamaño de los archivos en formato de legibilidad humana en lugar del valor predeterminado (bytes). Se pueden combinar opciones de una letra: -lh . El orden de las opciones combinadas no es importante.
La opción -h también tiene la forma de una palabra completa: –human-readable (–legibilidad-humana). Las opciones a menudo pueden utilizarse con un argumento. Algunas de las opciones requieren sus propios argumentos. Puedes utilizar los argumentos y las opciones con el comando ls para listar el contenido de otro directorio al ejecutar el comando ls -l/etc/ppp.
Historial de los Comandos
Al ejecutar un comando en una terminal, el comando se almacena en “history list”. Esto está diseñado para que más adelante puedas ejecutar el mismo comando más fácilmente puesto que no necesitarás volver a introducir el comando entero. Para ver la lista de historial de una terminal, utiliza el comando history. Pulsando la tecla de Flecha Hacia Arriba ↑ se mostrará el comando anterior en tu línea de prompt. Puedes presionar arriba repetidas veces para moverte a través del historial de comandos que hayas ejecutado. Presionando la tecla Entrar se ejecutará de nuevo el comando visualizado.
Cuando encuentres el comando que quieres ejecutar, puedes utilizar las teclas de Flecha Hacia Izquierda ← y Flecha Hacia Derecha → para colocar el cursor para edición. Otras teclas útiles para edición incluyen Inicio, Fin, Retroceso y Suprimir. Si ves un comando que quieres ejecutar en la lista que haya generado el comando history, puedes ejecutar este comando introduciendo el signo de exclamación y luego el número al lado del comando, por ejemplo: !3
Algunos ejemplos adicionales del history:
Ejemplo | Significado |
history 5 | Muestra los últimos cinco comandos de la lista del historial |
!! | Ejecuta el último comando otra vez |
!-5 | Ejecuta el quinto comando desde la parte inferior de la lista de historial |
!ls | Ejecuta el comando ls más reciente |
Variables del BASH shell
Una variable del shell BASH es una función que te permite a ti o al shell almacenar los datos. Esta información puede utilizarse para proporcionar información crítica del sistema o para cambiar el comportamiento del funcionamiento del shell BASH (u otros comandos).
Las variables reciben nombres y se almacenan temporalmente en la memoria.
Al cerrar una ventana de la terminal o shell, todas las variables se pierden. Sin embargo, el sistema automáticamente recrea muchas de estas variables cuando se abre un nuevo shell.
Para mostrar el valor de una variable, puedes utilizar el comando echo. El comando echo se utiliza para mostrar la salida en la terminal; en el ejemplo siguiente, el comando mostrará el valor de la variable HISTSIZE.
La variable HISTSIZE define cuántos comandos anteriores se pueden almacenar en la lista del historial. Para mostrar el valor de la variable debes utilizar un carácter del signo de dólar $ antes del nombre de la variable. Para modificar el valor de la variable, no se utiliza el carácter $.
Variable PATHPATH
El término path se refiere a una lista que define en qué directorios el shell buscará los comandos. Si introduces un comando y recibes el error “command not found”, es porque el shell BASH no pudo localizar un comando por ese nombre en cualquiera de los directorios en la ruta. El comando echo $PATH muestra la ruta del shell actual.
Basado en la anterior salida, cuando intentas ejecutar un comando, el shell primero busca el comando en el directorio /home/sysadmin/bin. Si el comando se encuentra en ese directorio, entonces se ejecuta. Si no es encontrado, el shell buscará en el directorio /usr/local/sbin. Si el comando no se encuentra en ningún directorio listado en la variable PATH, (lol en el ejemplo) entonces recibirás un error, command not found.
Si en tu sistema tienes instalado un software personalizado, puede que necesites modificar la ruta PATH para que sea más fácil ejecutar estos comandos. Por ejemplo,
PATH=/usr/bin/custom:$PATH
agregará el directorio /usr/bin/custom a la variable PATH.
Comando export
Hay dos tipos de variables utilizadas en el shell BASH, la local y la de entorno. Las variables de entorno, como PATH y HOME, las utiliza el BASH al interpretar los comandos y realizar las tareas. Las variables locales son a menudo asociadas con las tareas del usuario y son minúsculas por convención. Para crear una variable local, simplemente introduce:
sysadmin@localhost:~$ var1=’Laprovittera’
Para ver el contenido de la variable, te puedes referir a ella iniciando con el signo de $:
sysadmin@localhost:~$ echo $var1
Laprovittera
Para ver las variables de entorno, utiliza el comando env (la búsqueda a través de la salida usando grep, tal como se muestra. En este caso, la búsqueda para variable1 en las variables de entorno resultará en una salida nula:
sysadmin@localhost:~$ env | grep var1
sysadmin@localhost:~$
Después de exportar var1 llegará a ser una variable de entorno. Observa que esta vez, se encuentra en la búsqueda a través de las variables de entorno:
sysadmin@localhost:~$ export var1
sysadmin@localhost:~$ env | grep var1
var1=Laprovittera
El comando export también puede utilizarse para hacer una variable de entorno en el momento de su creación:
sysadmin@localhost:~$ export var2=’Carlos’
sysadmin@localhost:~$ env | grep var2
variable2=Carlos
Para cambiar el valor de una variable de entorno, simplemente omite el $ al hacer referencia a tal valor:
sysadmin@localhost:~$ var1=$var1′ ‘$var2
sysadmin@localhost:~$ echo $var1
Laprovittera Carlos
Las variables exportadas pueden eliminarse con el comando unset:
sysadmin@localhost:~$ unset var3
Comando which
Puede haber situaciones donde diferentes versiones del mismo comando se instalan en un sistema o donde los comandos son accesibles para algunos usuarios y a otros no. Si un comando no se comporta como se esperaba o si un comando no está accesible pero debería estarlo, puede ser beneficioso saber donde el shell encuentra tal comando o que versión está utilizando. Sería tedioso tener que buscar manualmente en cada directorio que se muestra en la variable PATH
. En su lugar, puedes utilizar el comando which
para mostrar la ruta completa del comando en cuestión. El comando which
busca la ubicación de un comando buscando en la variable PATH
.
Comando type
El comando type
puede utilizarse para determinar la información acerca de varios comandos. Algunos comandos se originan de un archivo específico.
sysadmin@localhost:~$ type which which is hashed (/usr/bin/which)
Esta salida sería similar a la salida del comando which
muestra la ruta completa del comando).
sysadmin@localhost:~$ which which /usr/bin/which
El comando type
también puede identificar comandos integrados en el bash (u otro) shell:
sysadmin@localhost:~$ type echo echo is a shell builtin
En este caso, la salida es significativamente diferente de la salida del comando which
:
sysadmin@localhost:~$ which echo /bin/echo
Usando la opción -a
, el comando type
también puede revelar la ruta de otro comando:
sysadmin@localhost:~$ type -a echo echo is a shell builtin echo is /bin/echo
El comando type
también puede identificar a los aliases para otros comandos:
sysadmin@localhost:~$ type ll ll is aliased to `ls -alF' sysadmin@localhost:~$ type ls ls is aliased to `ls --color=auto'
La salida de estos comandos indican que ll
es un alias para ls - alF
, incluso ls
es un alias para ls --color=auto
. Una vez más, la salida es significativamente diferente del comando which
:
sysadmin@localhost:~$ which ll sysadmin@localhost:~$ which ls /bin/ls
El comando type
soporta otras opciones y puede buscar varios comandos al mismo tiempo. Para mostrar sólo una sola palabra que describe al echo
, ll
, y a los comandos which
, utiliza la opción -t
:
sysadmin@localhost:~$ type -t echo ll which builtin alias file
Aprende Linux desde 0
Si quires aprender todo, en video, totalmente práctico para desarrollarte en el ambiente profesional y aprobar el examen de la Certificación LPIC-1 te recomendamos iniciar por este curso: Aprende Linux desde 0 y prepara la Certificación LPIC-1. Inicia desde 0 en Linux. Prepara la Certificación LPIC-1 con todo el contenido Teórico, practica y modelos de Examen.