Está en la página 1de 32

Línea de comandos

Introducción
Introducción
La mayoría de usuarios están acostumbrados a utilizar algún tipo de entorno
GUI (Interfaz gráfico de usuario por sus siglas en inglés), principalmente en
Windows. Mediante un GUI se puede trabajar y administrar de forma sencilla
un ordenador.
Antes de existir la GUI, solamente se podía interactuar con el ordenador por
medio de una CLI (Interfaz de línea de comandos por sus siglas en inglés). La
CLI se basa en introducir ordenes mediante el teclado.
El uso de una CLI, al principio puede resultar difícil ya que se requiere
memorizar comandos y opciones. Sin embargo, proporciona un control más
preciso, mayor velocidad y capacidad de automatizar tareas por medio de
scripts. Aunque Linux dispone de muchos entornos GUI, podremos
controlarlo de forma mucho más eficaz desde la línea de comandos.
Interfaz de Línea de Comandos - CLI
La Interfaz de Línea de Comandos es una interfaz basada en texto,
donde el usuario introduce un comando y el ordenador lo ejecuta. El
entorno de la CLI lo proporciona un programa del ordenador conocido
como un terminal.
El terminal acepta lo que el usuario escribe y se lo pasa a un shell. El
shell interpreta lo que el usuario ha introducido. Si el comando produce
una salida, entonces se mostrará esa información en la terminal. Si hay
algún problema con el comando, se mostrará un mensaje de error.
Para acceder a la terminal, hacemos clic en el botón de Actividades y
escribimos el nombre terminal en el cuadro de búsqueda que aparece.
Acceso a la terminal
Para acceder a la terminal, hacemos clic en el botón de Actividades y
escribimos el nombre terminal en el cuadro de búsqueda que aparece.
Una terminal virtual se puede ejecutar a la vez que una GUI, pero se
requiere que el usuario se conecte o inicie sesión a través de la
terminal virtual antes de que pueda ejecutar los comandos. La mayoría
de los sistemas tienen múltiples terminales virtuales que se pueden
acceder pulsando una combinación de teclas, normalmente desde
CTRL+ALT+F1 hasta CTRL+ALT+F7.
Prompt
Una ventana de terminal muestra un prompt (podemos traducirlo como
símbolo o aviso en castellano) que aparece cuando no se está ejecutando
ningún comando. 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. A continuación te
mostramos una estructura común de un prompt:

El prompt anterior muestra el nombre de usuario (user1), el nombre del


equipo (ubuntus00) y el directorio actual. El carácter ~ hace referencia al
directorio personal del usuario (/home/user1 en este caso).
Shell
Un shell es el intérprete que traduce los comandos introducidos por un
usuario en acciones a realizar por el sistema operativo. Una vez ejecutado el
comando, la shell nos devolverá el resultado del mismo o un mensaje de
error en caso de que hayamos introducido algún comando que no exista o
haya algún otro tipo de error.
En Linux podemos encontrar muchos tipos diferentes de shells. El shell
utilizado de forma más habitual en Linux se llama BASH.
Para saber que shell estamos utilizando podemos usar los comandos:
echo $SHELL
ps
Existen otras shells que se pueden utilizar como, por ejemplo, la Bourne
shell. Para ello tecleamos el comando sh.
Sintaxis de los comandos
Muchos comandos se pueden utilizar por sí mismos sin más entradas.
Otros necesitan entradas adicionales para funcionar correctamente.
Estas entradas adicionales se indican en forma de opciones y
argumentos.
La sintaxis típica de un comando es la siguiente:
comando [opciones] [argumentos o parámetros]
Las opciones se utilizan para modificar el comportamiento básico de un
comando y los argumento (o parámetros) se utilizan para proporcionar
información adicional (como un nombre de fichero o de directorio).
Cada opción y argumento van normalmente separados por un espacio,
aunque las opciones se pueden combinar a menudo.
El comando ls, por sí mismo, lista los ficheros y directorios del
directorio de trabajo actual:

Podemos pasarle la opción –l para que muestre el contenido anterior


de otra forma
También podemos pasarle como argumento un directorio para que nos
muestre el contenido de dicho directorio.

También podemos pasarle a la vez opciones y argumentos


Sintaxis de los comandos - Opciones
Las opciones se escriben anteponiendo un guion, si constan de una sola
letra; o dos, si constan de varias. En casi todos los comandos (o por lo
menos en todos los comandos de sistema) todas las opciones que se
utilicen de una sola letra se pueden contraer juntando todas las letras y
usando un solo guion al principio. Esto funciona excepto cuando las
opciones necesiten, a su vez, parámetros; en este caso, el parámetro se
aplica a la última opción.
Ejemplos:
ls -a es lo mismo que ls --all -> muestra los ficheros y dir ocultos
ls -l -a es lo mismo que ls -la
Sintaxis de los comandos - Parámetros
Todos los parámetros se separan por espacios. A un comando se le
pueden pasar varios parámetros (o argumentos). Por ejemplo, el
comando cp sirve para copiar un fichero.
Historial de los comandos
Al ejecutar un comando en la terminal, el comando se almacena en la
lista de historial. Esto nos permite, más adelante, volver a utilizar el
mismo comando sin tener que escribirlo. Para ver el historial de una
terminal usamos el comando history
Para volver a ejecutar un comando que aparece en el historial debemos
introducir el carácter ! seguido del número que aparece junto al
comando que queremos, por ejemplo, !2
Variables de la shell
Las variables de la shell nos permiten almacenar datos. También nos
proporcionan información acerca del sistema.
Las variables tienen un nombre y se almacenan temporalmente en
memoria. Cuando cerramos la ventana de la terminal, todas las
variables se pierden. Sin embargo, el sistema operativo recrea
automáticamente muchas de estas variables cuando se abre un nuevo
shell.
Para mostrar el valor de una variable se utiliza el comando echo.
Además, debemos poner el carácter $ delante del nombre de la
variable.
Podemos ver un listado de las variables existentes actualmente
mediante el comando env o printenv.

Para asignar o modificar el valor de una variable no se utiliza el carácter


$

Las variables predefinidas del sistema suelen estar en mayúsculas


mientras que las que crean los usuarios, por convención, se crean en
minúsculas.
Caracteres comodín
Son símbolos que tienen un significado especial para la shell.
A diferencia de los comandos que ejecutará el shell, u opciones y
argumentos que el shell pasará a los comandos, los comodines son
interpretados por el mismo shell antes de que intente ejecutar cualquier
comando. Esto significa que los comodines pueden utilizarse con cualquier
comando.
Los comodines son poderosos porque permiten especificar patrones que
coinciden con los nombres de archivo en un directorio, así que en lugar de
manipular un solo archivo a la vez, puedes fácilmente ejecutar comandos
que afectarán a muchos archivos. Por ejemplo, utilizando comodines es
posible manipular todos los archivos con una cierta extensión o con una
longitud de nombre de archivo determinado.
Caracteres comodín - * (asterisco)
El asterisco se utiliza para representar cero o más de cualquier carácter
en un nombre de archivo. Por ejemplo, supongamos que quieres
visualizar todos los archivos en el directorio /etc que empiecen con la
letra t:

Para mostrar todos los archivos que terminan por a en el mismo


directorio anterior:
Caracteres comodín - ? (interrogación de
cierre)
El signo de interrogación representa cualquier carácter único. Cada carácter
de signo de interrogación coincide con exactamente un carácter, nada más y
nada menos.

Para ver todos los archivos en el directorio /etc que comienzan con la letra t
y que tienen exactamente 7 caracteres después del carácter de t:

Para ver todos los archivos del directorio anterior cuya extensión tenga,
exactamente, 3 caracteres:
Caracteres comodín – [] (corchetes)
Los corchetes se utilizan para coincidir con un carácter único representando
un intervalo de caracteres que pueden coincidir con los caracteres. Por
ejemplo, ls -d /etc/[gu]* imprimirá cualquier archivo que comienza con el
carácter g o u y contiene cero o más caracteres adicionales:

Los corchetes también pueden ser utilizados para representar un intervalo


de caracteres. Por ejemplo, el comando ls -d /etc/*[0-9]* mostrará todos los
archivos que tienen, al menos, un número:
Caracteres comodín – ! (exclamación de
cierre)
Se utiliza de forma conjunta con los corchetes para negar un intervalo. Por
ejemplo, el comando ls –d ![DP]* mostrará todos los archivos que NO
comiencen por D o P
Las comillas
Existen 3 tipos de comillas que tienen un significado especial para la
shell:
• Comillas dobles (“)
• Comillas simples (‘)
• Comilla invertida (`)
Las comillas – “Comillas dobles“
Indican a la shell que detenga la interpretación de algunos caracteres
especiales, incluyendo los comodines. Dentro de las comillas dobles, el
asterisco es sólo un asterisco, un signo de interrogación es sólo un
signo de interrogación y así sucesivamente.

Las comillas dobles permiten la sustitución de variables:


Las comillas – ‘Comillas simples’
Las comillas simples evitan que el shell interprete algunos caracteres
especiales. Esto incluye comodines, variables y sustitución de
comandos.
Barra diagonal inversa – backslash (\)
Este carácter colocado inmediatamente antes de cualquier otro indica a
la shell que no debe realizar ningún tipo de sustitución.
Las comillas – `Comilla invertida`
Las comillas invertidas se utilizan para especificar un comando dentro
de un comando, un proceso de sustitución del comando.

La sustitución de comandos funciona dentro de las comillas dobles


pero no dentro de las simples
La barra vertical
El carácter barra vertical | (pipeline en inglés) puede utilizarse para
enviar la salida de un comando a otro. En lugar de que se imprima en la
pantalla, la salida de un comando se convierte en una entrada para el
siguiente comando. Esto se suele utilizar para refinar el resultado de un
comando inicial.
Por ejemplo, podemos pasar la salida del comando ls como entrada del
comando head para que nos muestre solamente las primeras líneas del
resultado.
Podemos utilizar de forma consecutiva varias barras verticales en un
único comando pero debemos tener cuidado a la hora de determinar el
orden.
Por ejemplo, el comando nl numera las líneas de un fichero.
Redirección de entrada y salida
La redirección de entrada y salida (E/S) permite que la información pase de la línea
de comandos a las diferentes secuencias. En Linux existen 3 secuencias estándar:
• Entrada estándar (stdin): es la información que introduce el usuario,
normalmente, mediante teclado. Se le asocia el identificador 0
• Salida estándar (stdout): es la salida normal de los comandos. Cuando un
comando se ejecuta correctamente (sin errores), la salida que produce se le llama
stdout. De forma predeterminada se muestra por la pantalla (ventana de
terminal) en la que se ejecutó el comando. Se le asocia el identificador 1.
• Error estándar (stderr): son los mensajes de error generados por los comandos
por el motivo que sea. De forma predeterminada se muestra por la pantalla
(ventana de terminal) en la que se ejecutó el comando. Se le asocia el
identificador 2.
Redirección de la salida estándar
La salida estándar (stdout) es la salida normal de los comandos.
Cuando un comando se ejecuta correctamente (sin errores), la salida
que produce se le llama stdout. De forma predeterminada se muestra
por la pantalla (ventana de terminal) en la que se ejecutó el comando.
Se le asocia el identificador 1.
Podemos redirigir la salida estándar a un fichero utilizando los
caracteres > (sobrescribe el fichero destino si existe) o >> (añade al
fichero destino en caso de que exista). Cuando se redirige la salida a un
fichero no se muestra nada por la pantalla.
Redirección del error estándar
El error estándar (stderr) son los mensajes de error generados por los
comandos por el motivo que sea. De forma predeterminada se muestra
por la pantalla (ventana de terminal) en la que se ejecutó el comando.
Se le asocia el identificador 2.
Podemos redirigir el error estándar de forma similar a como lo
hacemos con la salida estándar utilizando en este caso el identificador
2.
Podemos redirigir en el mismo comando la salida estándar y el error
estándar.
Podemos redirigir cada una de ellas a un fichero independiente. Para
ello combinamos en el mismo los caracteres 1> y 2> o también
podemos usar el mismo fichero para redirigir las 2 secuencias. En este
último caso podemos usar el conjunto de caracteres &> (o &>>), que
indica que se redirigen las 2 secuencias al mismo fichero.
No importa el orden en que se especifique la redirección de las
secuencias, podemos poner tanto 1> fichero 2> fichero como al revés.
Redirección de la entrada estándar
Podemos redirigir la entrada estándar de un comando para que, en vez
de recibir las instrucciones desde el teclado, las obtenga por medio de
un fichero.
Para redirigir la entrada estándar a un fichero se usa el carácter <.
Es bastante raro que necesitemos hacer esto ya que la mayoría de
comandos permite usar un fichero como parámetro por lo que no es
necesario hacer esta redirección.
Algunos comandos no aceptan nombres de archivo como argumentos,
como, por ejemplo, el comando tr. Para estos comandos puede resultar
útil la redirección de la entrada a un fichero.

También podría gustarte