aboutsummaryrefslogtreecommitdiffstats
path: root/_posts/2021-03-24-aprende-a-usar-la-terminal.md
diff options
context:
space:
mode:
Diffstat (limited to '_posts/2021-03-24-aprende-a-usar-la-terminal.md')
-rw-r--r--_posts/2021-03-24-aprende-a-usar-la-terminal.md336
1 files changed, 336 insertions, 0 deletions
diff --git a/_posts/2021-03-24-aprende-a-usar-la-terminal.md b/_posts/2021-03-24-aprende-a-usar-la-terminal.md
new file mode 100644
index 0000000..acd9a01
--- /dev/null
+++ b/_posts/2021-03-24-aprende-a-usar-la-terminal.md
@@ -0,0 +1,336 @@
+---
+layout: post
+title: Aprende a usar la terminal
+date: 2021-03-24 21:52 -0300
+category: ayuda
+tags: shell interprete terminal consola comandos
+---
+
+## Ejercicios
+
+¡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.
+
+### La Shell o "Intérprete de Comandos"
+
+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 el "intérprete de órdenes", o en la jerga, una _shell_.
+
+Esta shell es un programa capaz reaccionar a las instrucciones que le proporcionas, llamadas "órdenes" o "comandos". La shell también muestra en tu pantalla una señal llamada _prompt_, que demuestra que el sistema está a tu disposición.
+
+El prompt puede aparecer de la siguiente manera:
+
+<pre>fulano@texto-plano.xyz:~$</pre>
+
+(Esto significa que eres el usuario "fulano", en el entorno "texto-plano.xyz". El signo $ indica el final del prompt).
+
+### Ejercicio 1: Comandos básicos
+
+#### ¿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** 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_).
+
+<pre> 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
+</pre>
+
+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:
+
+<pre>
+
+> bash: comando no encontrado: W
+
+</pre>
+
+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). 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 especialmnente las contraseñas.
+
+## Directorios y archivos
+
+Texto-plano.xyz se basa en un _sistema de archivado_ 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:
+
+<pre>/home/fulano</pre>
+
+#### 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).
+
+### Ejercicio 2: Listar el contenido de directorios con ls
+
+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:
+
+<pre>
+
+> MailDir/ public_html/
+
+</pre>
+
+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.
+
+<pre>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/</pre>
+
+> 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.
+
+### Ejercicio 3: Cambiar de Directorio: cd
+
+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_.
+
+### Ejercicio 4: Crear Directorios con mkdir
+
+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**
+
+#### Tutoral: Desplazarnos en la estructura.
+
+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**.
+
+<pre>/home/fulano/temporal</pre>
+
+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:
+
+<pre>**/home/usuario/temporal**</pre>
+
+...o bien:
+
+<pre>~/temporal/</pre>
+
+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:
+
+<pre>cartas/ cuentos/ poemas/</pre>
+
+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:
+
+<pre>MailDir/ public_html/ temporal/</pre>
+
+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.
+
+### Ejercicio 5: Crear archivos con touch
+
+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:
+
+<pre>cartas/ poemas/ prueba2.txt prueba4.txt
+cuentos/ prueba1.txt prueba3.txt prueba5.txt</pre>
+
+### Ejercicio 6: Copiar con cp
+
+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/**
+
+### Ejercicio 7: Mover o renombrar con mv
+
+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**
+
+### Ejercicio 8: Borrar con rm
+
+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 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/**
+
+## Conclusión
+
+¡Felicitaciones! Ya conoces los rudimentos básicos de un sistema similar a UNIX.
+
+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! \ No newline at end of file
Un proyecto texto-plano.xyz