From 7029c11abca98eea9a4fb95e90b012325aad4162 Mon Sep 17 00:00:00 2001 From: Francisco Fuentes Date: Wed, 24 Mar 2021 22:14:12 -0300 Subject: tutorial terminal y contribuir.md --- _posts/2021-03-24-aprende-a-usar-la-terminal.md | 336 ++++++++++++++++++++++++ 1 file changed, 336 insertions(+) create mode 100644 _posts/2021-03-24-aprende-a-usar-la-terminal.md (limited to '_posts') 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: + +
fulano@texto-plano.xyz:~$
+ +(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_). + +
 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
+
+ +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). 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: + +
/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). + +### 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: + +
+
+> 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. + +### 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**. + +
/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. + +### 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: + +
cartas/   poemas/      prueba2.txt  prueba4.txt
+cuentos/  prueba1.txt  prueba3.txt  prueba5.txt
+ +### 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 -- cgit v1.2.3