Como Usar la Terminal de Linux: Todo Lo Que Debes Saber

Muy buenas lector, si eres usuario de alguna distribución GNU/Linux y quieres profundizar mas en el uso del sistema, una de las cosas que debes aprender si o sí es a manejarte bien con la terminal o interfaz de línea de comandos, esa herramienta que al llegar a Linux siempre solemos mirar con algo de recelo y procuramos no utilizar, pero que muy pronto te darás cuenta de que, lejos de ser tu enemiga, es y será una gran aliada con la que se te abrirá un gran universo nuevo de posibilidades.

Con este primer post estreno una serie de guías dedicadas a profundizar en el uso de la consola y a explorar todas las posibilidades punto por punto. En el artículo de hoy me voy a centrar en el concepto en sí, así como en los fundamentos básicos de su uso y algunos comandos básicos para empezar a familiarizarte con ella. Sin más, te dejo con el índice de contenidos de este primer post.

En este post verás:

  1. ¿Qué es la consola o interfaz de línea de comandos?
  2. Terminales TTY y PTS
  3. Sudo y Su. Ejecutar comandos como Superusuario
  4. Algunos comandos para empezar con buen pie
  5. Esto continua: aquí tienes el resto de posts de esta serie

¿Que es la Consola o Interfaz de Línea de Comandos?

Actualmente, existen distribuciones GNU/Linux para multitud de propósitos, y muchas de ellas ofrecen un entorno gráfico suficientemente pulido como para permitir que puedas prescindir de la consola. Sin embargo, ésta es una herramienta enormemente potente, y su conocimiento te brindara una gran variedad de posibilidades.

Y es que, por muy pulidas que estén las interfaces gráficas de los escritorios más modernos, aun hay muchísimas cosas que se pueden hacer con la terminal y que no tienen réplica ni sustituto en el entorno gráfico.

La Shell

Empezando por lo más básico, podríamos decir que una shell es una interfaz que acepta ordenes en forma de comandos, y ejecuta operaciones. En este entorno, una interfaz de línea de comandos o CLI (Command Line Interface), a diferencia de una interfaz gráfica de usuario o GUI, es una shell que entiende instrucciones basadas en secuencias de caracteres alfanuméricos.

En Linux podemos interactuar con multitud de shells diferentes, tanto a nivel de interfaz de línea de comandos, léese Bash, Csh o Zsh, como a nivel de interfaz gráfica, véase GNOME, KDE o XFCE, entre otros.

Bash

Aunque como ya has visto existen multitud de intérpretes en Linux, Bash es seguramente una de los mas conocidas en GNU/Linux, y a decir verdad, la única que utilizo y conozco bien, así que para el propósito de esta guía me voy a centrar en éste.

De ahora en adelante, al hablar de la terminal de Linux, me estaré refiriendo concretamente al interprete Bash.

Bash es una herramienta Open Source perteneciente al proyecto GNU, y que fue escrita por Brian Fox. Actualmente es la interfaz de linea de comando predeterminada en la mayoría de distribuciones GNU/Linux asi como en OS X. Aunque en su esencia es una shell de Unix, puede ser portada fácilmente a entornos Windows. Pero en fin, vayamos ya al grano…

Terminales TTY y PTS

Hay básicamente dos maneras de usar la terminal en GNU/Linux. Por un lado, puedes usar las interfaces TTY, mientras que por otro lado, están los emuladores o PTS, que permiten usar una interfaz de línea de comandos de manera virtual desde la propia interfaz gráfica de usuario.

TTY es, en su esencia, un entorno que te permite interactuar directamente con el sistema operativo. Como seguramente podrás comprobar, en la gran mayoría de distribuciones basadas en Debian, como Ubuntu o Linux Mint, existen un total de 7 pantallas TTY, las cuales pueden usarse simultáneamente.

Centrándonos en el caso concreto de Debian, la TTY1 hasta la TTY6 son sesiones de interfaz de línea de comandos, mientras que la TTY7 es, de hecho, la interfaz gráfica de usuario. Las sesiones TTY se pueden acceder fácilmente usando las combinaciones de teclado ‘CTRL+ALT+F1’ hasta ‘CTRL+ALT+F7’.

PTS, por su parte, es un emulador de terminal que esta dentro de la propia interfaz gráfica. Generalmente, es usado en la mayoría de entornos de escritorio en GNU/Linux, tales como GNOME o KDE. Cada entorno utiliza su propia aplicación para emular el uso de la terminal de Linux.

Sudo y Su. Ejecutar Comandos Como Otro Usuario

Muchos comandos invocan acciones que solo pueden ser realizadas por el usuario root o superusuario. Esto significa que, si intentas instalar un paquete en tu sistema, y por ello haces un apt install <paquete>, desde la sesión de tu usuario normal no se te permitirá.

Para ello, deberías primero hacer un log-in con el usuario root (en la consola) y posteriormente realizar esta acción desde este nivel de privilegios. Para agilizar esta tarea, dispones de herramientas como sudo o su, ambas similares a la práctica pero diferentes en su concepción.

Sudo

De sudo se podrían escribir líneas y líneas, pero para lo que es el propósito de este post, quédate con la idea de que, lo que hace, es ejecutar el comando que lo sigue utilizando, temporalmente, los privilegios de otro usuario. Este usuario, en la mayoría de usuarios suele ser el superusuario, pero se puede configurar para que sea cualquier otro.

Hay distribuciones, sobretodos aquellas orientadas a usuarios con menos conocimientos técnicos (Ubuntu y gran parte de sus derivados directos son un claro ejemplo) que, por motivos de seguridad (o de simplicidad) optan por mantener la cuenta de superusuario deshabilitada. A cambio, utilizan sudo configurado de tal modo que el usuario estándar pueda utilizarlo para adquirir, temporalmente, los permisos de superusuario.

Su uso consiste únicamente en ser utilizado delante del comando en cuestión, para indicar que ese comando se va a ejecutar bajo los permisos de otro usuario (por defecto, root).

$ sudo <comando>

Su

La utilidad su (de “switch user”) es algo diferente. Como su nombre indica, lo que permite es hacer un cambio de sesión de usuario, pero sin necesidad de cerrar la sesión del usuario actual. Se utiliza seguido del nombre de usuario con el que se quiere inicial sesión.

Es muy común utilizarlo en aquellas distribuciones que prefieren mantener abierta la cuenta de superusuario para que cualquier usuario autorizado para usarlo (entendiéndose que conozca la contraseña) pueda hacer un salto de sesión y hacer un log-in como root.

En este ultimo caso, la sintaxis es muy simple. Basta con teclear la palabra su, y automáticamente el sistema te pedirá las contraseña necesaria para hacer el cambio de sesión.

$ su
#

El cambio de forma del promp es un claro indicativo que te puede servir para identificar rápidamente si estás en una sesión de usuario estándar o de root.

Al final, a nivel de uso, la diferencia más relevante es que si puedes utilizar sudo, no necesitas conocer la contraseña de superusuario (incluso puede no existir tal acceso por estar la cuenta deshabilitada), mientras que el uso de su requiere que debes poder hacer un log-in como root.

Prompt de usuario y superusuario

Como podrás advertir, dependiendo del usuario que esté logueado en la sesión de la terminal, el prompt sera ligeramente distinto. De este modo, si te encuentras logueado como usuario estándar, el prompt sera similar a éste:

user@computer:~$

Por el contrario, si haces un log-in como superusuario (a partir del comando sudo su), el prompt adoptará este formato:

root@computer:/home/user#

Ah, como curiosidad que seguramente te gustará saber, el prompt de bash es personalizable en color y estructura. Si tienes curiosidad en saber como, en este post lo tienes explicado en detalle.

De hecho no es en absoluto mala idea que, por tal de distinguir mejor el prompt de los comandos en sí, establezcas que éste se muestre en un color diferente. Verás que mejora en gran medida el aspecto general de la consola.

Dicho todo esto, y habiendo hecho una justa introducción, la mejor manera de acabar este primer post de la serie será con algunos ejemplos sencillos para empezar a practicar con los primeros comandos. Esto nos servirá para dar nuestro primer paso en el uso de la consola.

Primeros Comandos para Empezar con buen pie

Realmente existen infinidad de comandos, por lo que es importante centrarse en aquellos que te serán de mas utilidad dependiendo de tus tareas o necesidades.

Antes de nada, no quiero dejarme de comentar como puedes acceder a la línea de comandos para empezar a jugar. Tienes básicamente dos opciones:

  • Acceder a una de las terminales TTY, mediante las combinaciones de teclado ‘CTRL+ALT+F1’ hasta ‘CTRL+ALT+F7’, para acceder a cada una de las TTY.
  • Abrir una ventana desde el propio entorno de escritorio, utilizando una de las multiples aplicaciones que hacen de emulador de terminal. Aquí tienes a numerosos ejemplos y cada entorno de escritorio ya viene de forma predeterminada con el suyo. Para nombrar algunos: GNOME Terminal, Konsole, Xterm, Yakuake, Guake, etc.

Ahora ya si que puedes empezar tu mismo a practicar con los primeros casos. Para empezar a ser capaz de ejecutar acciones simples, puedes echar un rápido vistazo a los ejemplos que te propongo. Si no es tu primera vez, seguramente ya los conocerás. En este caso, no dejes de echar un vistazo al resto de posts de esta serie.

man

El comando man es una pagina de manual. Debe ir acompañado del nombre de un comando, y muestra en pantalla una completa guía sobre el uso del comando entrado. Aquí tienes la sintaxis básica, y a partir de ahí puedes ir probando ejemplos con varios comandos.

$ man <nombre del comando>

Esta es la sintaxis básica del comando, y a partir de ahí puedes desplegar el manual de casi cualquier comando que se te ocurre.

$ man uname

Imprime por pantalla el manual completo del comando uname, junto con todas sus opciones de uso.

uname

El comando uname te da información del sistema operativo usado. Puede incluir diferentes opciones, algunas de las cuales son ‘-a’, ‘-s’, ‘-p’, m’, y ‘-o’. Puedes probar de usar algunas de ellas y observar el output mostrado por pantalla.

$ uname

Formato simple del comando. Retorna solamente el nombre del sistema operativo, sin especificar mas detalles.

$ uname -a

Con esta opción, podrás visualizar el nombre del sistema operativo, junto con otros detalles básicos como la versión del kernel, la arquitectura del sistema (si es de 32 o 64 bits) o la fecha actual entre otros datos.

who

El comando who muestra los usuarios logueados en el sistema. Si lo utilizas desde la aplicación de terminal del escritorio, mostrara que tu usuario está logueado en la sesión de terminal TTY7, correspondiente a la interfaz gráfica de usuario, y en una sesión PTS, que no es más que el emulador de terminal dentro de la propia interfaz gráfica.

$ who

Esta es la sintaxis básica de #who, y muestra un listado con los usuarios logueados en el sistema junto con la fecha y hora de logueo.

$ who -b

Con esta opción obtendrás la fecha y hora del último arranque realizado en el sistema.

pwd

El comando pwd te servirá para conocer la ruta del directorio de trabajo actual. Por defecto, será el directorio personal del usuario logueado en la consola.

$ pwd

history

El comando history te imprime por pantalla un listado de los últimos comandos que se han pasado por la terminal desde la cuenta del usuario actual.

$ history

Esta es la forma básica, y muestra un listado de todos los comandos introducidos por la terminal, uno a uno.

$ history 10

Tienes también la opción de limitar el numero de resultados a visualizar. En este caso, tendrás un listado con los últimos 10 comandos introducidos.

$ history | grep ls

Como no, si deseas acotar más la búsqueda, también puedes establecer filtros por palabra contenida. En este caso, por ejemplo, se te imprimirá por pantalla un listado de todas las órdenes introducidas que contengan la palabra “ls”.

$ history -c

Si quieres borrar el historial de todos los comandos utilizados hasta el momento, puedes hacerlo con un  history -c.

!!

Y si lo que quieres es ejecutar directamente el ultimo comando utilizado, es cuestión de que teclees “!!”.

$ !!

clear

El comando clear limpia la pantalla de la terminal pero sin borrar el contenido. Básicamente hace un scroll  hacía abajo.

$ clear

ping

Con la orden ping podrás conocer si un cliente o servidor bajo una determinada dirección IP está operativo o no. También te permite conocer la latencia entre tu máquina y la IP especificada.

$ ping 192.168.1.1

En este ejemplo estamos comprobando la latencia entre nuestra máquina y el router de la red interna en la que estamos conectados (que típicamente se encuentra bajo la dirección IP 192.168.1.1).

$ ping www.google.com

También podemos comprobar si un determinado sitio web esta operativo o no a partir de su url. En este caso, comprobamos la latencia entre nuestra máquina y Google.

date

El comando date informa sobre la fecha y hora del sistema. Es un comando puramente informativo, útil si te encuentras en un entorno sin interfaz gráfica.

$ date

curl wttr.in

Con esta simple sentencia podrás consultar la previsión meteorológica directamente desde la consola, a lo Geek.

$ curl wttr.in

Esta es el modo más fácil de utilizarlo. Te entrega directamente la previsión de tu zona geográfica para los próximos tres días. Aparte de esta opción básica, puedes personalizar la salida de muchas maneras. A continuación tienes un ejemplo.

$ curl wttr.in/paris

Para consultar la previsión de una zona en concreto, basta con añadir “/” al final seguido de la zona (como datos acepta ciudad, código de aeropuerto o nombre de dominio). Tienes una ayuda rápida aquí: http://wttr.in/:help.

exit

El comando exit cierra la sesión de terminal actual del usuario logueado en ella. Si estas usando la terminal como superusuario, se cerrará la sesión y volverás a ser usuario estándar.

$ exit

Hasta aquí ya puedes empezar a practicar con algunos de los comandos más básicos. Alternativamente, con el comando ‘man‘ podrás hacer una ojeada a las distintas opciones que ofrecen los comandos tratados.

Esto Continua: Aquí Tienes El Resto de Posts de Esta Serie…

Como he dicho al principio este es solo el primer post de una seríe de artículos enfocados a sacar el máximo partido de la consola en Linux. Así que si quieres aprender más, mucho más, te iré dejando debajo los enlaces con los diferentes enlaces a medida que vaya completando los post. Espero que te sirva;)

Hay infinidad de cosas que se pueden realizar desde la terminal de Linux, así que en todos los posts de la serie trato de dar cabida al máximo de ellas, dentro de lo mejor que pueda y sepa.

Y ya para acabar por hoy, si se te ocurren comandos útiles de los que hablar, la sección de comentarios de este primer post de la serie es el mejor sitio dónde hacerlo.

Esto me puede dar ideas para otros artículos de la serie, o para completar los que llevo escritos hasta el momento. Y ya sin más, me despido con un fuerte saludo y esperando verte en los próximo post.

14 comentarios en “Como Usar la Terminal de Linux: Todo Lo Que Debes Saber

  1. Muchas gracias por el post. Instalé hace poco Linux mint sarah y con estos tutoriales estoy aprendiendo mucho. Al principio cuesta, pero este SO es lo que me hacía falta. A propósito, podrías decirme por qué me comió desde que lo instalé casi 30 gigas del disco duro?Solo me falta cambiar la cuenta de correo electrónico para deshacerme de los tentáculos de Microsof. Bueno, de nuevo gracias por publicar tus conocimientos. Un saludo.

    Me gusta

    • Hola Helmut,
      Me alegra que te sirva de ayuda el blog.

      Respecto a lo del espacio en disco, me parece algo excesivo el que te ocupe 30 gigas. A mi un Ubuntu recién instalado, actualizado y con los cuatro programas básicos instalados, me ronda los 7 u 8, aunque luego es normal que vaya creciendo a medida que lo vayas rellenando. ¿Esta cantidad que comentas es lo que te ocupa sin haber instalado aún ningún software adicional, o traspasado documentos ni nada?

      En cualquier caso, para tener una idea de por donde van los tiros, te recomiendo que eches un vistazo a la aplicación de monitorización de uso del disco que suele venir en Ubuntu, Debian, e imagino que también Linux Mint. Formalmente se llama Baobab y es una de las aplicaciones del entorno GNOME. Te dejo enlace debajo.

      https://help.ubuntu.com/community/Baobab

      Con esto podrás ver la distribución del espacio ocupado en disco, según cada directorio.

      Espero que esto te sirva de ayuda y puedas detectar la causa, sino dime algo;)

      Me gusta

  2. Me gustaria saber mas sobre la linea de comandos para instalar programas….. Enseñame a instalar programas te lo agredeceria bastante. Me desespera no poder hacer esto………..otra cosa acabe de instalar linux mint desde cero, como se que usuario es? Es root o no?

    Me gusta

    • Hola, para instalar programas en Ubuntu desde la terminal se suele utilizar ‘apt-get’:

      sudo apt-get install nombre-paquete

      La unica dificultad está a la hora de conocer el nombre del paquete, pero eso lo puedees buscar en launchpad. Por ejemplo, para instalar el navegador chromium, seria:

      sudo apt-get install chromium-browser

      Fuera de Ubuntu, cada distro tiene su propio gestor de paquetes, por ejemplo Fedora y las derivadas de RedHat usan ‘yum’.

      Espero haberte ayudado algo, más adelante tengo pensado publicar sobre comandos para instalar o desinstalar paquetes.

      El usuario root en Linux Mint por defecto está deshabilitado, y para realizar tareas administrativas se utiliza el comando ‘sudo’.

      Me gusta

      • Gracias amigo te entendi perfectamente lo de la linea para instalar aplicaciones (probe con algunas y funciono), y tienes razon con lo del usuario root si aparece deshabilitado……….de nuevo gracias por estar atento contestando comentarios… espero tu proximo tuto.

        Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s