aprende_a_usar_la_terminal

¡Esta es una revisión vieja del documento!


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 esperando órdenes. Puede aparecer de la siguiente manera:

  fulano@texto-plano.xyz:~$

(Esto significa que eres el usuario “fulano”, en el entorno “texto-plano.xyz”.).

Esto puede variar, dependiendo de cómo esté configurado tu intérprete. 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.

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

Prueba introducir tu primer órden para practicar.

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

Teclea en la terminal el comando:

whoami

…y presiona la tecla Intro (o Enter) para enviar la órden. Se transmitirá este comando al intérprete de órdenes remoto, este lo interpretará, cumplirá y devolverá el resultado en 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 conocido en nuestro entorno con este nombre de usuario, aunque en estos ejercicios usaremos el nombre de usuario “fulano” a título ilustrativo. :)

Texto-plano es un sistema de cómputo multiusuario y público. 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é usuarios 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; en lugar de utilizar el comando w (con minúscula), introdúce el comando W (con mayuú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 cuidadoso 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.

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/fulano

Directorio /home

El directorio /home contiene los directorios de todos usuarios de texto-plano.xyz, incluyendo el tuyo propio, nomenclado según tu propio nombre de usuario.

El directorio de usuario (por ejemplo /home/fulano ) es el espacio de disco que los miembros disponen dentro de texto-plano.xyz. Tu directorio de usuario puede abreviarse con el caracter de tilde “~”.

(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 en este momento. 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/fulano_ 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 específicandolo como un sufijo 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 del directorio /home. Recuerda, la / especifica al intérprete de comandos que el pedido es un directorio, y que se encuentra en el directorio raiz 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.

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/
Nota: Ten presente que estas “ramas” o directorios del sistema contienen distintos aspectos organizativos del mismo. El administrador de texto-plano.xyz suele moverse en estos directorios.

Cambiarás tu posición en la estructura de directorios a fin de trabajar en un directorio específico. Sólo puedes estar posicionado en un directorio a la vez.

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

Cambia tu localización al directorio /usr:

  cd /usr

Este directorio de sistema llamado _/usr_ contiene una serie de aplicaciones de usuario que utiliza el administrador del sistema. Puedes listar su contenido ahora con ls.

Puedes volver a tu directorio individual _/home/fulano_ mediante la abreviatura ~. Esto es muy conveniente:

  cd ~

¡Genial! Has aprendido que la ruta _/home/usuario_ es tu propio directorio de usuario, y que puedes volver a ella rápidamente mediante el comando

cd ~

. El símbolo del tilde ~ es importante pues te avita tener que escribir la ruta _/home/usuario_.

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

Puedes 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 usuario (“~”). Puedes hacerlo introduciendo el comando:

  mkdir ~/temporal

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

Por ejemplo, crea tres subdirectorios de práctica a la vez localizados dentro del directorio ~/temporal. A tal fin se separan las “ramas” de la ruta mediante la barra /. Utiliza entonces el comando:

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

En este caso, cambia tu posición al directorio llamado “temporal” que creamos dentro de nuestro directorio de usuario.

  cd ~/temporal/

Podrás comprobar que te encuentras dentro del directorio temporal ingresando nuevamente el comando pwd.

  /home/fulano/temporal

Muchas shells también indican el directorio actual en el mismo prompt, lo que permite saber en todo momento en que rama del árbol de directorio estamos localizaados, y suelen hacer innecesario utilizar el comando pwd. Por ejemplo, podría indicarnos:

  /home/usuario/temporal

…o bien:

  ~/temporal/

Al pedir un listado del contenido del directorio con ls, le sistema presentará el contenido del directorio donde estás asentado. Si estás en el directorio _~/temporal/_, podría indicarte:

  cartas/  cuentos/  poemas/

Posicionado en el directorio ~/temporal, ilsta ahora el contenido de tu directorio de usuario _/home/fulano_. Para ello puedes usar la abreviatura ~.

  ls ~

…y el sistema te podría presentar ahora:

  MailDir/  public_html/  temporal/

Para retroceder un nivel en el árbol de directorios, se usa el comando cd ..

Por lo tanto, si estabas en /home/fulano/temporal e ingresas cd .. , serás transportado a /home/fulano.

¡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 de trabajar son válidas.

Por ejemplo, asbiendo que el directorio temporal está dentro de tu /home, sin importar cual sea tu directorio actual, siempre puedes listarlo con:

  ls ~/temporal

O bien podrías cambiar tu posicionamiento actual a ~/temporal y luego listarlo:

  cd ~/temporal
  ls

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 /home/usuario/temporal/prueba1.txt 

…y repetir el proceso hasta el archivo _prueba5.txt_.

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

  cd ~/temporal/

…y a continuación 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 donde te encuentras (~/termporal), informando el 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 directorio _poemas/_. Puedes usar el comando:

  cp prueba4.txt poemas/corazon.txt

También puedes copiar directorios:

  cp poemas/ poemas_copiados/ 

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 

También 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 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

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:

<codebash > cd ~/temporal </code>

  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 incie 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/_:

  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 comandos para la terminal
  • aprende_a_usar_la_terminal.1629841466.txt.gz
  • Última modificación: 2021/08/24 21:44
  • por peron