aprende_a_usar_la_terminal

Aprende a usar la terminal de UNIX

¡Recibe una cordial bienvenida!

Texto-plano.xyz es una comunidad de cómputo público en castellano. Sus miembros hacen uso a distancia de una computadora muy pequeña, provista del sistema operativo OpenBSD, similar a UNIX.

Debes operar este entorno por medio de una Interfaz de Línea de Comandos (CLI). Esto significa que normalmente teclearás tus órdenes en lugar de manejar aplicaciones gráficas.

Si nunca has usado una CLI, no hay problema. Estos ejercicios sencillos y explicados, te acompañarán en tu aprendizaje de los rudimentos básicos para hacer la mayoría de los trabajos que desees.

No bien accedas remotamente con tu terminal al entorno texto-plano.xyz, se te mostrará un mensaje de bienvenida con instrucciones simples, ¡y ya estarás listo para operar!.

Para ello usarás uno de los intérpretes de comandos o en la jerga, una shell. Este intérprete es un programa capaz reaccionar a las instrucciones que le proporcionas, llamadas “órdenes” o “comandos”.

El Prompt

El prompt es un indicador que el intérprete hace aparecer en tu terminal. Demuestra que el sistema está a tu disposición y aguardando tus órdenes. Puede aparecer de la siguiente manera:

  fulana@texto-plano.xyz:~$

(Esto significaría que eres “fulana”, usuari@ del entorno “texto-plano.xyz”.).

La apariencia del prompt puede variar. Si lo que ves no es como lo anterior, ¡a no asustarse! Algunos intérpretes tienen prompts más largos y elaborados, otros más exiguos y simples, dependiendo de su configuración.

¿Quién soy? ¿Cómo me llamo?

Prueba introducir tu primer orden para practicar.

Nota: Los comandos que debes utilizar se indican recuadrados en gris. Puedes teclearlos o “copiar y pegarlos” en tu terminal.

Teclea en la terminal el comando:

  whoami

O también podrías poner:

  echo $USER 

…y presiona la tecla Intro (o Enter) para enviar la orden. Se transmitirá este comando al intérprete de comandos remoto, este lo interpretará, cumplirá si puede, y devolverá el resultado a tu terminal. Como consecuencia aparecerá en tu pantalla una nueva línea con tu nombre de usuario.

¡Felicitaciones! Ahora sabes cómo te llamas. Serás conocid@ en nuestro entorno con este nombre de usuario.

En estos ejercicios usaremos el nombre de usuari@ “fulana” a título ilustrativo. :)

Texto-plano es un sistema de cómputo público y multiusuari@. Puedes saber quién más está conectado al centro de cómputo en este preciso momento, introduciendo otra orden:

  w

¡No olvides presionar la tecla Intro! El sistema podría indicar qué otros usuari@s están conectados, (columna USER) y qué están haciendo (columna WHAT).

6:01PM  up 51 days, 17:56, 8 users, load averages: 0.02, 0.07, 0.07
USER    TTY FROM            LOGIN@  IDLE WHAT
mengano p0 32.43.69.74     Tue04AM  1day -bash 
sultano pg 120.12.199.47    3:30PM  2:30 -bash 
fulano       130.123.10.90  9:48AM     0 w
mengana   po 124.24.55.11   5:01PM     0 wordgrinder
Atención al detalle

De los errores, se aprende. Intenta cometer un error a propósito para aprender de él; en lugar de utilizar el comando w (con minúscula), introduce el comando W (con mayúscula):

  W

El sistema podría indicarnos:

bash: comando no encontrado: W

Esto significa que los entornos similares a UNIX son sensibles al uso incorrecto de las mayúsculas o minúsculas. No es lo mismo w (un comando existente y válido) que W (un comando inexistente en nuestro caso).

Procura ser cuidados@ con el uso de mayúsculas y minúsculas en los nombres de los comandos, así también como los ficheros, y muy especialmente las contraseñas.

Texto-plano.xyz se basa en un sistema de archivos formado por una estructura de directorios. Deberás conocer su funcionamiento básico para ser efectivo, y a ello dedicaremos los siguientes ejercicios.

La estructura de directorios tiene forma de árbol. En su base se encuentra un directorio maestro llamado “raíz”. De su tronco, se desprenden varias “ramas” (directorios). A su vez estos directorios pueden contener múltiples ramas más pequeñas (subdirectorios).

Cada directorio puede contener tanto otros directorios como también archivos.

¿Dónde estoy?

Para conocer en qué directorio te encuentras en cualquier momento, ingresa el comando:

  pwd

Por ejemplo, ahora podrías encontrarte en tu directorio de usuario:

/home/fulana/

Directorio /home

El directorio /home forma la rama del árbol que contiene los directorios personales de todos usuarios de texto-plano.xyz, incluyendo el tuyo propio (nomenclado, claro está, según tu propio nombre de usuari@).

El directorio de usuario (por ejemplo /home/fulana/) consiste en el espacio de disco que los miembros disponen dentro de texto-plano.xyz. Tu propio directorio de usuari@ puede abreviarse con el carácter de tilde “~”, lo cual es muy conveniente para obrar de forma genérica y no tener que especificar tu nombre en los comandos (ahorrando tiempo). Pronto verás como hacerlo.

(Nota: El tilde puedes escribirlo presionando AltGr+4 en los teclados de distribución española).

Comprueba el contenido de tu directorio donde estás localizado actualmente. Para ello ingresa:

ls

El sistema te mostrará un listado con el contenido del directorio donde estés localizado. Si estás en tu directorio /home/fulana podría indicar un contenido que incluya esto:

MailDir/  public_html/

Procede a listar ahora el contenido del directorio /home, el cual se utiliza para almacenar los directorios de los usuarios de texto-plano.xyz. Podrás hacerlo indicándolo específicamente al comando ls, de esta manera:

  ls /home 
Nota: Ten en cuenta que si tipeas el comando ls home en lugar de ls /home, el intérprete considerará que le estás ordenando listar un archivo llamado home, y no el contenido de un directorio home. Recuerda, la barra / a la izquierda le indicará al intérprete de comandos que el pedido es un directorio, y que se encuentra en el directorio raíz de la estructura de directorios.

También podrás listar el contenido del directorio raíz del sistema, la cual es representado por la /.

Introduce el comando:

  ls /

…y el sistema informará ahora el contenido general del directorio raíz de texto-plano.xyz:

altroot/                                      harfbuzz-2.7.2_writes_to_HOME/
at-spi2-core-2.36.1_writes_to_HOME/           home/
atk-2.36.0_writes_to_HOME/                    lost+found/
bin/                                          mnt/
boot                                          pango-1.46.2_writes_to_HOME/
bsd*                                          pub/
bsd.booted*                                   root/
bsd.rd                                        sbin/
bsd.sp                                        strfile*
dev/                                          sys@
etc/                                          tmp/
gdk-pixbuf-2.40.0_writes_to_HOME/             usr/
gobject-introspection-1.64.1_writes_to_HOME/  var/
Estas “ramas” o directorios del sistema contienen distintos aspectos organizativos del mismo. El administrador de texto-plano.xyz suele moverse en estos directorios.

A continuación, ingresa ls con alguna de sus varios sufijos opcionales, y observar las diferencias en la información que te devolverá el sistema UNIX.

ls -l 

ls -hl 

ls -a 

ls -al 

ls -ahl

Un directorio puede contener muchos archivos diferentes en su interior, y te permitirá organizar mejor tu trabajo. Sólo puedes crear directorios dentro de tu directorio /home personal.

Podrás crear un directorio usando el comando mkdir, seguido por el nombre del directorio que quieres crear.

En este ejercicio, crearás un único directorio de trabajo llamado temporal, el cual estará localizado dentro de tu directorio /home de usuari@ (“~”). Créalo introduciendo el comando:

  mkdir ~/temporal

Los comandos UNIX te permiten ahorrar tiempo usando múltiples directorios o archivos.

Para poner esto en práctica, por ahora crearemos tres subdirectorios (llamados así pues están contenidos dentro de otro directorio, en este caso el directorio ~/temporal). Para este cometido especificaremos las “ramas” de la ruta mediante una barra /. Observa bien el comando necesario:

  mkdir ~/temporal/cartas/ ~/temporal/cuentos/ ~/temporal/poemas/ ~/temporal/planillas/

¿Porqué creamos ~/temporal/planillas/? ¡No queríamos hacerlo! Fue a propósito. :) Como es un directorio vacío, aprenderás a borrarlo tranquilamente con rmdir.

rmdir ~/temporal/planillas/

Muchas veces necesitarás trabajar en un directorio específico. Para hacerlo, deberás cambiar la posición en la que estás situad@ en la estructura de directorios. Recuerda, sólo puedes estar posicionad@ en un directorio a la vez.

Para cambiar de directorio usa el comando cd seguido del nombre del directorio al que te deseas desplazar.

Podrás retornar de forma directa a tu directorio particular de usuari@ /home/fulana utilizando la abreviatura ~ que lo denota, o directamente introduciendo cd sin ninguna otra opción. Esto es muy conveniente, sobre todo si te encuentras en una rama alejada de tu árbol de directorios. ¡Siempre podrás volver a tu directorio /home particular

Si quisieras volver al directorio en el que estabas anteriormente usarías:

    cd $OLDPWD

sin tener que escribir la ruta completa al directorio

Podrás ahora elegir qué te conviene mas: si listar directorios o moverte a ellos, o moverte a los directorios para luego listarlos. Ambas formas son válidas.

Veamos cómo hacerlo: lista el contenido de tu directorio de usuari@. Para ello puedes usar la abreviatura ~.

  ls ~

…y el sistema te podría presentar ahora:

  MailDir/  public_html/  temporal/

sabiendo que el directorio que llamamos temporal está localizado dentro de tu /home/fulana, siempre podrás ver cual es el contenido de un directorio sin importar cual sea tu directorio actual, por medio de:

  ls ~/temporal

…o bien podrías usar dos órdenes para cambiar tu posicionamiento actual a ~/temporal y a continuación solicitar el listado del directorio actual:

  cd ~/temporal
  ls

Veámoslo rápido. Usa cd para cambiar ahora tu localización al subdirectorio llamado temporal/poemas

  cd ~/temporal/poemas/

…y usa ls pero ordenando un listado específico del directorio ~/temporal/, ¡deberían aparecer los tres subdirectorios contenidos dentro del directorio ~/temporal, por más que te encuentres muy dentro de temporal/poemas/!

  cartas/  cuentos/  poemas/

Visualiza mentalmente las ramas el árbol de directorios: ¡No te marees! ¿En qué rama del árbol de directorios te encuentras? ¡Ah si! pwd te lo dirá siempre.

/-->+---- usr/    +-- mengana/   +-- MailDir/
    + --> home/ --+-> fulana/  --+-- public_html/   +-- cartas/
                  +-- sultano/   +-> temporal/    --+-- cuentos/
                                                    +-> poemas/

¡Muy bien! Estás en /home/fulana/temporal/poemas/. Como habías solicitado un listado específico de /home/fulana/temporal/; era lógico que el intérprete te mostrase los tres subdirectorios cartas. cuentos y poemas.

Vienes bien.

El comando cd pondrá a tu disposición también de unos sufijos opcionales extremadamente convenientes. Estos te permitirán “descender” de los niveles de las ramas del árbol de directorios, o bien o “retornar” a lugares anteriormente visitados en dicho árbol.

Para descender un nivel en el árbol de directorios utiliza el comando cd .. Por ejemplo, si estabas en /home/fulana/temporal/poemas, ingresa

cd ..

…y descenderás a la rama del nivel inmediato inferior: /home/fulana/temporal.

Ingresa ahora a un directorio alejado, que ni siquiera esté en la rama /home. Por ejemplo:

cd /usr/games/

Si deseas retornar a cualquier directorio en el que estuviste posicionado anteriormente (con independencia del lugar actual que ocupas en la estructura de directorios), ingresa:

cd -

El signo - hará que el intérprete recuerde cual fue tu posición anterior en el árbol de directorios, te la indique en pantalla, ¡y te retorne nuevamente allí!

Ya has aprendido los rudimentos de los directorios, cómo ingresar a ellos y cómo moverte en el árbol de directorios.

Cada archivo en el sistema tiene un nombre, y opcionalmente puede tener una extensión descriptiva.

Debes tener en cuenta una regla fundamental: no pueden existir dos archivos con el mismo nombre dentro el mismo directorio.

Dentro de tu directorio /temporal, crea cinco archivos de prueba llamados prueba1.txt, prueba2.txt, prueba3.txt, prueba4.txt y prueba5.txt.

Una forma posible pero ineficiente sería ordenar:

touch ~/temporal/prueba1.txt

…y repetir el proceso hasta el archivo prueba5.txt.

Pero escribir eso es tedioso. Simplemente usa cd para cambiar tu directorio temporal:

  cd ~/temporal/

…y luego crea los cuatro archivos que faltan de una sola vez, con el comando:

  touch prueba2.txt prueba3.txt prueba4.txt prueba5.txt

Como ves, si estás localizado dentro de un directorio, no es necesario escribir toda la ruta.

Ten en cuenta que si ahora introduces el comando ls, recibirás un listado del directorio ~/temporal/ donde te encuentras, informando su contenido:

cartas/   poemas/      prueba2.txt  prueba4.txt
cuentos/  prueba1.txt  prueba3.txt  prueba5.txt

En ocasiones puede ser útil copiar un archivo o directorio (tanto aislado como completo) en otro lugar.

Podremos realizar copias de un archivo con el comando cp.

Supongamos que queremos copiar el archivo llamado prueba5.txt en otro archivo llamado prueba5.txt.copia, usamos:

  cp prueba5.txt prueba5.txt.copia

Copia ahora el fichero prueba4.txt dentro del subdirectorio poemas/. Puedes usar el comando:

  cp prueba4.txt poemas/

Y podrás copiar directorios con sus contenidos, usando la opción -r:

  cp -r cartas/ cartas_copiadas/ 

En un entorno ideal, los archivos o directorios estarían donde los queremos y necesitamos. Pero esto no siempre es así.

Los sistemas UNIX utilizan el comando mv para mover o renombrar un archivo. Se usa la sintáxis:

  mv origen destino  

Por ejemplo renombra el archivo prueba1.txt para que se llame carta_abuelo.txt mediante el comando:

  mv prueba1.txt carta_abuelo.txt 

Puedes usar el comando para cambiar de directorio el fichero. Por ejemplo:

  mv carta_abuelo.txt cartas/

Ten en cuenta que la / es importante en UNIX. Indica que debes mover el archivo carta_abuelo.txt al interior de un directorio llamado cartas/.

Pero si olvidas la / en el directorio cartas/ y sólo indicas

  mv carta_abuelo.txt cartas

…pues el intérprete buscará un archivo llamado carta_abuelo.txt y le cambiará el nombre a cartas. ¡Recuerda!, la / al final de un nombre es importante pues indica la diferencia entre un directorio y un archivo.

Renombra ahora el archivo prueba3.txt a cenicienta.txt y muévelo al directorio cuentos/ usando un único comando:

  mv prueba3.txt cuentos/cenicienta.txt

Como ves, si lo ordenas específicamente, podrás renombrar un fichero situado en un directorio distinto al que te encuentras. Por ejemplo:

mv ~/temporal/poemas/prueba4.txt ~/temporal/poemas/corazon.txt

Si no necesitas un archivo o directorio, puedes borrarlo. Esto ahorrará recursos de cómputo en el sistema, que podremos disfrutar entre todos.

Puedes borrar archivos dentro de un directorio mediante el comando rm (“remover”).

En este tutorial, finalizaremos eliminando los archivos y directorios ya creados. Desplázate al directorio ~/temporal y borra el archivo prueba5.txt.copia con:

  cd ~/temporal 
  rm prueba5.txt.copia

Podrías repetir esto para borrar el resto de los archivos, pero podrías también usar el comodín ? para indicar “todo tipo de archivo que inicie con prueba, contenga un caracter cualquiera, y termine con .txt”. Esto se hace de la siguiente manera:

  rm prueba?.txt 

rm sólo puede borrar archivos. En caso de querer borrar un directorio, debes utilizar el modificador -r. Por ejemplo:

  rm -r cuentos/

Una página de excelencia para los menos versados, pero que estén por el camino de la experticia, es, sin duda alguna, y gracias al aporte de @igor_chubin, cheat.sh. Es una forma interactiva de recordar ciertos comandos cuando menos relevantes le parece a nuestro cerebro, pero que en la práctica, son en su contrariedad, necesarios.

Si lo deseas, puedes borrar ahora el directorio temporal/ y todo su contenido. Usa para ello el comando rm:

  rm -r ~/temporal

Vuelve a tu directorio /home con el comando:

 cd ~

…¡y continúa disfrutando de texto-plano.xyz, el entorno minimalista!


¡Felicitaciones! Ya conoces los rudimentos básicos de un sistema similar a UNIX. Ahora puedes continuar con el Tutorial de la Consola II
  • aprende_a_usar_la_terminal.txt
  • Última modificación: 2022/07/12 20:42
  • por golfyado