Introducción
Nota: La terminal interactiva en este tutorial está actualmente desactivada mientras trabajamos en mejorar nuestras experiencias de aprendizaje interactivas. Aún puedes utilizar este tutorial para aprender sobre la línea de comandos y practicar comandos de Linux, pero necesitarás utilizar la terminal en tu computadora o una máquina virtual.
Hoy en día, muchos de nosotros estamos familiarizados con las computadoras (de escritorio y portátiles), teléfonos inteligentes y tabletas que tienen interfaces gráficas de usuario (también conocidas como GUI), lo que nos permite navegar por aplicaciones, la web y nuestros archivos (como documentos y fotos) a través de una experiencia visual. Los sistemas operativos Windows, macOS y Linux presentan cada uno variedades de un entorno de escritorio (con imágenes de carpetas y archivos, por ejemplo), y menús desplegables, todos los cuales proporcionan acceso a programas de computadora, aplicaciones y nuestros propios medios.
Aunque las GUI pueden ser una forma intuitiva de utilizar una computadora para muchos usuarios, a menudo no nos proporcionan el mayor poder sobre nuestras máquinas, y pueden impedirnos tener acceso administrativo completo en nuestras computadoras, incluida la instalación, modificación o eliminación de software o archivos. Además, como las GUI son en gran medida visuales, a menudo no son tan accesibles como podrían serlo para todos los usuarios.
Una forma de navegar tanto por tu propia computadora personal como por servidores en la nube remotos sin una GUI es a través de una terminal basada en texto o una interfaz de línea de comandos (CLI).
Las interfaces de terminal existen en casi todos los sistemas operativos de computadoras, y los emuladores de terminal también están disponibles como aplicaciones para tabletas y teléfonos inteligentes. Los terminales proporcionan a los usuarios un mayor acceso general a sus máquinas a través de un mayor acceso de administrador, una mayor capacidad para personalizar entornos y oportunidades para automatizar procesos. También proporcionan a los usuarios la capacidad de acceder a computadoras remotas, como servidores en la nube.
Este tutorial proporcionará a los usuarios que son nuevos en entornos de terminal los conceptos básicos de cómo usar una interfaz de línea de comandos a través de un terminal web incrustado en su navegador, que pueden iniciar a continuación. Si ya tiene cierta familiaridad con los terminales, puede preferir revisar nuestro tutorial Introducción al Terminal de Linux en su lugar. Una vez que complete este tutorial, debería tener una comprensión de cómo usar un terminal en una computadora o servidor Linux (o macOS).
Entendiendo la Ventana del Terminal
Cuando obtiene acceso a una nueva computadora o teléfono inteligente, probablemente quiera encenderla y familiarizarse con cómo usarla mediante la comprobación de qué aplicaciones están disponibles, y aprender dónde están las cosas para poder personalizar el dispositivo según sus necesidades. Puede familiarizarse con una computadora a través de un terminal de manera similar.
El terminal interactivo que lanzaste en esta ventana del navegador, al hacer clic en el botón ¡Iniciar un Terminal Interactivo!
arriba, muestra un rectángulo blanco en la parte inferior de la ventana del navegador:
Si no has lanzado el terminal, por favor hazlo ahora usando el botón al principio de este tutorial.
En tu terminal interactivo del navegador, debería haber un signo de dólar, $
, y un cursor parpadeante. Aquí es donde comenzarás a escribir comandos para decirle al terminal qué hacer.
El terminal que has lanzado es un terminal Ubuntu 20.04. Ubuntu es una distribución popular de Linux, que originalmente se basaba en el sistema operativo Unix. El sistema operativo macOS también se basa en Unix. Si estás leyendo este tutorial en una máquina Linux o macOS, deberías tener un terminal en tu sistema operativo que funcione de manera similar al terminal incrustado que usaremos en esta guía.
En muchos de estos sistemas operativos Unix (o basados en *nix), los símbolos al final del indicador pueden ser un símbolo $
o un símbolo #
, lo que significa lo siguiente:
$
o signo de dólar: estás conectado como un usuario regular#
o símbolo de almohadilla/numeral: estás conectado como un usuario con privilegios elevados
El usuario que se indica en el entorno #
también se conoce como usuario root, que se considera un superusuario o administrador por defecto.
Para nuestros propósitos dentro del terminal del navegador a continuación, estás conectado como un usuario regular, pero también tienes privilegios de administrador a través del comando sudo
. Como este es un terminal temporal, no necesitas preocuparte por lo que escribes en el terminal, ya que destruiremos todo una vez que hayamos terminado. De manera similar, con un servidor en la nube, es posible destruir un servidor y comenzar de nuevo si algo sale mal.
Por favor, ten en cuenta que es mejor tener más cuidado al trabajar en el terminal de una computadora local, ya que puede haber cambios que puedes hacer como administrador en el terminal que pueden hacer cambios permanentes en la computadora que estás usando.
En este punto, con tu terminal lanzado en el navegador, puedes comenzar a escribir en él usando tu computadora local. Tu texto aparecerá en el cursor parpadeante. Aprenderemos sobre lo que podemos escribir aquí en las siguientes secciones.
Familiarizándose con los directorios
Comenzaremos a trabajar con el terminal escribiendo un comando. Un comando es una instrucción que es dada por un usuario, comunicando lo que el usuario quiere que la computadora haga. Escribirás tus comandos en el terminal y luego presionarás ENTER
o RETURN
cuando estés listo para que la computadora ejecute un comando dado.
Escribe el siguiente comando seguido de ENTER
. También puedes copiar el comando o pedir que se ejecute en un terminal interactivo lanzado haciendo clic en los enlaces relevantes en el bloque de código a continuación cuando pases el ratón sobre él.
Una vez que ejecutes este comando, recibirás la siguiente salida:
Output/home/sammy
El comando pwd
significa “directorio de trabajo actual” y te permite saber dónde te encuentras dentro del sistema de archivos actual.
En este ejemplo, estás en el directorio (o carpeta) llamado /home/sammy
, que corresponde al usuario llamado sammy
. Si has iniciado sesión como root
, un usuario con privilegios elevados, entonces el directorio se llamaría /root
. En una computadora personal, este directorio puede llevar el nombre del usuario que posee la computadora. La computadora de Sammy Shark puede tener /sammy
o /sammy-shark
o /home/sammy
como su directorio de usuario principal.
En este momento, este directorio está vacío. Vamos a crear un directorio para almacenar los archivos que iremos creando a medida que avancemos en este tutorial, que podemos llamar files
, por ejemplo.
Para hacer esto, usaremos el comando mkdir
, que significa “crear directorio”. Después de escribir el comando, necesitaremos escribir el nombre de la carpeta, que pasará el valor al comando para que el comando pueda ejecutarse en la creación de este directorio. Este valor (el nombre de la carpeta) se conoce como un argumento, que es una entrada dada al comando. Si estás familiarizado con la gramática del lenguaje natural, puedes pensar en el argumento como un objeto que está siendo actuado por el verbo del comando.
Para crear un nuevo directorio llamado files
, escribiremos lo siguiente, siendo mkdir
el comando y files
el argumento:
Después de ejecutar este comando, no recibirás ninguna salida aparte de una nueva línea con un cursor parpadeante. Con esta nueva línea en tu terminal, estás listo para tu próximo comando.
Listando Contenidos y Entendiendo Permisos
Como aún no hemos recibido comentarios concretos sobre nuestro nuevo directorio, usaremos un comando para aprender más sobre lo que hay en nuestro directorio de trabajo actual. Puedes confirmar que el nuevo directorio está allí listando los archivos en el directorio, con el comando ls
(significando “listar”):
Recibirás una salida que confirma que el directorio files
está allí:
Outputfiles
Esto nos proporciona información general sobre lo que hay en nuestro directorio de trabajo actual. Si queremos tener más detalles, podemos ejecutar el comando ls
con lo que se llama un indicador. En los comandos de Linux, un indicador se escribe con un guión -
y letras, pasando opciones adicionales (y más argumentos) al comando. En nuestro ejemplo, agregaremos el indicador -l
, que —cuando se combina con ls
— indica que nos gustaría utilizar la opción para usar un formato de lista larga con nuestro comando.
Vamos a escribir este comando e indicador, así:
Al presionar ENTER
, recibiremos la siguiente salida en nuestra terminal:
Outputtotal 4
drwxr-xr-x 2 sammy sammy 4096 Nov 13 18:06 files
Aquí, hay dos líneas de salida. La primera línea se refiere a los bloques de memoria de la computadora que se asignan a este directorio, la segunda línea se refiere principalmente a los permisos de usuario en el archivo.
Para obtener una salida algo más legible para los humanos, también podemos pasar el indicador -h
o --human-readable
, que imprimirá los tamaños de memoria en un formato legible para humanos, como se muestra a continuación. Generalmente, un guión -
se refiere a opciones de una sola letra, y dos guiones --
se refieren a opciones que se escriben con palabras. Ten en cuenta que algunas opciones pueden usar ambos formatos. Podemos construir múltiples opciones en un comando encadenando indicadores, como en -lh
.
Por ejemplo, los dos comandos siguientes entregan los mismos resultados aunque estén escritos de manera diferente:
Ambos comandos devolverán la siguiente salida, similar a la salida anterior pero con un mayor contexto de los bloques de memoria:
Outputtotal 4.0K
drwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files
La primera línea de salida nos indica que se dedican 4K de memoria de la computadora a la carpeta. La segunda línea de salida tiene muchos más detalles, los cuales analizaremos con más detalle. Una referencia general de alto nivel de toda la información que cubriremos se indica en la tabla a continuación.
File type | Permissions | Link count | Owner | Group | File size | Last modified date | File name |
---|---|---|---|---|---|---|---|
d | rwxr-xr-x | 2 | sammy | sammy | 4.0K | Nov 13 18:06 | files |
Notarás que el nombre de nuestro directorio, files
, está al final de la segunda línea de salida. Este nombre indica qué elemento específico en el directorio de usuario /home/sammy
está siendo descrito por la línea de salida. Si tuviéramos otro archivo en el directorio, tendríamos otra línea de salida con detalles sobre ese archivo.
Al frente de la línea, hay una lista de caracteres y guiones. Vamos a desglosar el significado de cada uno de los caracteres:
Character | Description |
---|---|
d | directory (or folder) — a type of file that can hold other files, useful for organizing a file system; if this were - instead, this would refer to a non-directory file |
r | read — permission to open and read a file, or list the contents of a directory |
w | write — permission to modify the content of a file; and to add, remove, rename files in a directory |
x | execute — permission to run a file that is a program, or to enter and access files within a directory |
En los primeros caracteres drwx
de la cadena, la primera letra d
significa que el elemento files
es un directorio. Si este fuera un archivo que no es un directorio, esta cadena de caracteres comenzaría con un guión en su lugar, como en -rwx
, donde el primer guión significa un archivo que no es un directorio. Las siguientes tres letras, rwx
, representan los permisos para el propietario del directorio files
, y significan que el directorio files
puede ser reado, writura y executado por el propietario del archivo. Si cualquiera de estos caracteres fuera reemplazado por guiones, eso significaría que el propietario no tiene el tipo de permiso representado por ese carácter. Discutiremos cómo identificar al propietario de un archivo en un momento.
Los siguientes tres caracteres en la salida son r-x
, que representan los permisos de grupo para el directorio files
. En este caso, el grupo tiene permisos de lectura y ejecución, pero no permisos de escritura, ya que la w
está reemplazada por un -
. Discutiremos cómo identificar al grupo en un momento.
Los últimos tres caracteres de la primera cadena, r-x
, representan los permisos para cualquier otro grupo que tenga acceso a la máquina. En este caso, estos grupos de usuarios también pueden leer y ejecutar, pero no escribir.
El número 2
en la salida se refiere al número de enlaces a este archivo. En Linux, los enlaces proporcionan un método para crear accesos directos que ayudan a los usuarios a navegar por el sistema de archivos. Cuando creaste este archivo, Linux realizó un trabajo en segundo plano para crear un enlace absoluto al archivo y un enlace autorreferencial al archivo para permitir que los usuarios naveguen a lo largo de una ruta relativa. Discutiremos las rutas absolutas y relativas en la siguiente sección.
Después del número 2
, la palabra sammy
se muestra dos veces. Esta parte de la salida proporciona información sobre el propietario y el grupo asociado con el directorio files
. La primera instancia de sammy
en esta línea se refiere al propietario del directorio, cuyos permisos vimos anteriormente son rwx
. El usuario sammy
es el propietario ya que creamos el directorio files
como el usuario sammy
y somos el propietario actual del archivo. Aunque el usuario sammy
es el único usuario en nuestro entorno actual, los sistemas operativos tipo Unix a menudo tienen más de un usuario, por lo que es útil saber qué usuario es el propietario de un archivo.
La segunda instancia de sammy
se refiere al grupo que tiene acceso al directorio files
, cuyos permisos vimos anteriormente son r-x
. En este caso, el nombre del grupo es el mismo que el nombre de usuario del propietario sammy
. En entornos del mundo real, puede haber otros grupos en el sistema operativo que tengan acceso al directorio, como staff
o un nombre de usuario como admin
.
El resto de los detalles en esta línea de salida son los 4.0K
para la asignación de memoria del directorio en la máquina, y la fecha en que se modificó por última vez el directorio (hasta ahora, solo lo hemos creado).
Con este mayor entendimiento de los sistemas de archivos y permisos, podemos pasar a navegar por el sistema de archivos en nuestro terminal Linux.
Navegando por el sistema de archivos
Hasta ahora, hemos aprendido cómo determinar dónde estamos en un sistema de archivos, cómo crear un nuevo directorio, cómo listar archivos y cómo determinar permisos.
A continuación, aprendamos cómo movernos por el sistema de archivos. Hemos creado un nuevo directorio, pero aún estamos en el directorio principal de usuario /home/sammy
. Para ingresar al directorio /home/sammy/files
que hemos creado, usaremos el comando cd
y pasaremos el nombre del directorio al que queremos ingresar como argumento. El comando cd
significa “cambiar directorio”, y lo construiremos así:
Nuevamente, no recibirás otra salida que no sea una nueva línea con un cursor parpadeante, pero podemos verificar que estamos en el directorio /home/sammy/files
con el comando pwd
que usamos anteriormente:
Obtendrás la siguiente salida, confirmando dónde te encuentras:
Output/home/sammy/files
Esto valida que te encuentras en el directorio /home/sammy/files
del directorio de usuario /home/sammy
. ¿Te resulta familiar esta sintaxis? Puede recordarte a la URL de un sitio web con sus barras inclinadas, y, de hecho, los sitios web también están estructurados en servidores dentro de directorios.
Vamos al directorio principal del servidor. Independientemente de dónde estemos en el sistema de archivos, siempre podemos usar el comando cd /
para ir al directorio principal:
Para confirmar que nos hemos movido y aprender qué hay en este directorio, ejecutemos nuestro comando de listado:
Recibiremos la siguiente salida:
Outputbin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run s sbin srv sys tmp usr var
¡Hay muchos archivos ahí dentro! El directorio /
es el directorio principal de un servidor Linux, conocido como el directorio “raíz”. Ten en cuenta que el directorio raíz es diferente del usuario “root” por defecto. Puedes pensar en el directorio /
como la arteria principal de una máquina Linux, ya que contiene todas las carpetas necesarias para ejecutar la computadora. Por ejemplo, el directorio sys
contiene el kernel de Linux y la información del sistema de archivos virtual. Si deseas obtener más información sobre cada uno de estos directorios, puedes visitar la documentación de la Linux Foundation.
También notarás que hay un directorio en el que ya hemos estado, la carpeta de usuario /home
. Desde el directorio /
, podemos cambiar de directorio de regreso a /home
y luego a files
, o podemos volver directamente a esa carpeta escribiendo la ruta absoluta allí con cd
:
Ahora, si ejecutas pwd
, recibirás /home/sammy/files
como salida.
A file path is the representation of where a file or directory is located on your computer or server. You can call a path to a file or directory in either a relative or absolute way. A relative path would be when we move to a location relative to our current working directory, like we did when we were already in /home/sammy/
and then moved into files/
. An absolute path is when we call the direct line to a location, as we did above with /home/sammy/files
, showing that we started in the /
directory, called the /home/sammy/
user directory and then the nested files/
directory.
Además, Linux utiliza la notación de puntos para ayudar a los usuarios a navegar a través de rutas relativas. Un solo .
representa el directorio en el que te encuentras actualmente, y un doble ..
representa el directorio padre. Entonces, desde donde estamos actualmente (/home/sammy/files
), podemos usar dos puntos para volver al directorio padre /home/sammy
del usuario, de la siguiente manera:
Si ejecutas pwd
, recibirás /home/sammy
como salida, y si ejecutas ls
, recibirás files
como salida.
Otro símbolo importante con el que debes estar familiarizado es ~
, que representa el directorio de inicio de tu máquina. Aquí, nuestro directorio de inicio se llama /home/sammy
para el usuario sammy, pero en una máquina local puede ser tu propio nombre como en sammy-shark/
.
Puedes escribir lo siguiente desde cualquier lugar de tu máquina y volver a este directorio de inicio:
En este punto, siéntete libre de navegar por tu sistema de archivos con los comandos que has aprendido hasta ahora. En la próxima sección, comenzaremos a trabajar con archivos de texto.
Creación y Modificación de Archivos de Texto
Ahora que tenemos una base en el sistema de archivos de Linux y cómo movernos por él, empecemos a crear nuevos archivos y aprendamos cómo manipular texto en la línea de comandos.
Primero asegurémonos de estar en el directorio files/
de la carpeta de usuario /home/sammy
, lo cual podemos hacer verificando con pwd
, o cambiando de directorios en la ruta absoluta:
Ahora, crearemos un nuevo archivo de texto. Haremos un archivo .txt
, que es un archivo estándar que se puede leer en varios sistemas operativos. A diferencia de los archivos .doc
, un archivo .txt
está compuesto de texto sin formato. El texto sin formato, incluido el texto en archivos .txt
, se puede usar fácilmente en la línea de comandos, y por lo tanto se puede usar al trabajar con datos de texto de manera programática (como, por ejemplo, automatizar el análisis de texto, extraer información del texto y más).
Comenzaremos usando el comando touch
, que puede crear un nuevo archivo o modificar un archivo existente. Para usarlo, puedes utilizar el comando touch
y pasar el nombre del archivo de texto que deseas crear como argumento, como se muestra a continuación.
Una vez que presiones ENTER
, recibirás una nueva línea del indicador de comando, y puedes listar el contenido actual de files/
para asegurarte de que se haya creado.
Outputocean.txt
Hasta ahora hemos creado un archivo ocean.txt
que no contiene texto en el momento de la creación.
Si queremos crear un archivo de texto que se inicialice con texto, podemos usar el comando echo
, que se utiliza para mostrar cadenas de texto en Linux.
Podemos usar echo
directamente en la línea de comandos para que la interfaz repita lo que le decimos. El primer programa tradicional, "¡Hola, mundo!"
, puede escribirse con echo
de la siguiente manera:
OutputHello, World!
Nombrado en honor a Eco de las Metamorfosis de Ovidio, el comando echo
devuelve lo que solicitamos. En este caso, ha repetido, “¡Hola, mundo!” Sin embargo, el comando echo
por sí solo no nos permite almacenar el valor de nuestro texto en un archivo de texto. Para hacer eso, necesitaremos escribir lo siguiente:
El comando anterior utiliza echo
, luego el texto que nos gustaría agregar a nuestro archivo entre comillas, luego el operador de redirección >
, y finalmente el nombre de nuestro nuevo archivo de texto, sammy.txt
.
Podemos comprobar que nuestro nuevo archivo existe, nuevamente con ls
.
Outputocean.txt sammy.txt
Ahora tenemos dos archivos de texto en nuestra carpeta de usuario /home/sammy/files
. A continuación, podemos confirmar que el archivo sammy.txt
contiene el texto que solicitamos que el terminal repita en él. Podemos hacerlo con el comando cat
. Abreviado de concatenar, el comando cat
es muy útil para trabajar con archivos. Entre sus funciones está mostrar el contenido de un archivo.
Una vez que ejecutamos el comando, recibiremos la siguiente salida:
OutputSammy the Shark
Si ejecutáramos cat
en el archivo vacío ocean.txt
, no recibiríamos nada a cambio, ya que no hay texto en ese archivo. También podemos agregar texto a este archivo existente con echo
. Agreguemos una cita de Zora Neale Hurston al archivo.
Ahora, si ejecutamos cat
en el archivo, recibiremos la salida del texto que acabamos de ingresar.
OutputSome people could look at a mud puddle and see an ocean with ships.
Hasta ahora, hemos creado archivos de texto y hemos añadido texto a estos archivos, pero aún no los hemos modificado. Si deseamos hacerlo, podemos utilizar un editor de texto en la línea de comandos. Existen varias opciones populares, incluyendo Vim y Emacs. Para nuestros propósitos, utilizaremos nano, que es un programa de edición de texto en la CLI menos complejo que podemos usar para comenzar nuestra exploración.
El editor de texto nano se puede invocar con el comando nano
. Si queremos editar nuestro archivo existente sammy.txt
, podemos hacerlo pasando el nombre del archivo como argumento.
El archivo se abrirá en tu terminal:
Sammy the Shark
Con las teclas de flecha de tu teclado, mueve el cursor al final de la línea y comienza a escribir algunas líneas desde la perspectiva de Sammy.
Nota: En la línea de comandos, no puedes usar tu ratón u otro puntero para navegar, tanto a través del sistema de archivos como dentro de los archivos. Deberás usar tu teclado, y en particular tus teclas de flecha, para moverte por los archivos de texto.
Cuando hayas terminado con tu archivo, puede leerse algo así:
Sammy the Shark
Hello, I am Sammy.
I am studying computer science.
Nice to meet you!
Con tu archivo ahora conteniendo el texto que deseas, ahora podemos guardar y cerrar el archivo. Puedes notar que hay algunas indicaciones en la parte inferior de la ventana de tu terminal:
^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell
Porque actualmente hemos terminado de trabajar en este archivo, nos gustaría Salir
del archivo. Aquí, el símbolo ^
se refiere a la tecla Control
o CTRL
en tu teclado, y la salida anterior nos indica que necesitamos combinar esa tecla con X
(usando minúsculas, sin presionar la tecla SHIFT
) para salir del archivo. Presionemos esas dos teclas juntas:
CTRL x
Lo anterior a menudo se escribe en línea como CTRL + X
o Ctrl+x
en documentación técnica.
En este punto, recibirás el siguiente mensaje:
OutputSave modified buffer?
Y Yes
N No ^C Cancel
Para guardarlo, presionaremos la letra y
para sí:
y
Recibirás comentarios como los siguientes.
OutputFile Name to Write: sammy.txt
Hay opciones adicionales, incluida la cancelación con CTRL + C
, pero si te sientes cómodo cerrando el archivo, puedes presionar ENTER
en este punto para guardarlo y salir.
Digamos que queremos crear algunos archivos de estudiantes en la Universidad DigitalOcean. Creemos un nuevo directorio en files/
llamado students
:
A continuación, movamos sammy.txt
al nuevo directorio students/
. El comando mv
, que significa mover, nos permitirá cambiar la ubicación de un archivo. El comando se construye tomando el archivo que queremos mover como primer argumento, y la nueva ubicación como segundo argumento. Ambas ejecuciones siguientes producirán el mismo resultado.
Esta última opción sería útil si quisiéramos cambiar el nombre del archivo, como en mv sammy.txt students/sammy-the-shark.txt
.
Ahora, si ejecutamos el comando ls
, veremos que solo ocean.txt
y el directorio students/
están en nuestro directorio actual (files/
). Vamos a entrar en la carpeta students/
.
Para tener una plantilla para los otros estudiantes, podemos copiar el archivo sammy.txt
para crear más archivos. Para hacer esto, podemos usar el comando cp
, que significa copiar. Este comando funciona de manera similar al comando mv
, tomando el archivo original como el primer argumento y el nuevo archivo como el segundo argumento. Haremos un archivo para Alex el Caballito de Mar Hoja:
Ahora, podemos abrir alex.txt
e inspeccionarlo.
Hasta ahora, alex.txt
se ve idéntico a sammy.txt
. Al reemplazar algunas palabras, podemos modificar este archivo para que se vea como sigue. Ten en cuenta que puedes usar CTRL + K
para eliminar toda una línea.
Alex the Leafy Seadragon
Hello, I am Alex.
I am studying oceanography.
Nice to meet you!
Puedes guardar y cerrar el archivo presionando CTRL + X
luego y
luego ENTER
.
Si deseas practicar más con archivos de texto, considera crear archivos para Jamie el Camarón Mantis, Jesse el Pulpo, Drew el Calamar o Taylor el Atún Aleta Amarilla.
Una vez que te sientas cómodo/a con la creación, edición, copia y movimiento de archivos de texto, podemos pasar a la siguiente sección.
Autocompletado e Historial
Muchas versiones de la línea de comandos, incluyendo el terminal interactivo incorporado en este tutorial, te permiten autocompletar y reutilizar comandos a medida que avanzas. Esto te ayuda a moverte más rápidamente, ya que te ahorra tiempo de escritura.
Intenta escribir cat
junto con las primeras letras de uno de los archivos de texto en los que has estado trabajando, por ejemplo, cat sa
. Antes de terminar de escribir el nombre completo del archivo sammy.txt
, presiona la tecla TAB
en su lugar. Esto autocompletará el nombre completo del archivo, de modo que el indicador de tu terminal mostrará lo siguiente:
Ahora, si presionas ENTER
, la terminal debería devolverte el contenido del archivo en la línea de comandos.
Otro atajo es presionar la tecla de flecha UP
, que te permitirá recorrer los comandos más recientes que has ejecutado. En una nueva línea con un cursor parpadeante, presiona la tecla de flecha UP
varias veces para tener acceso rápido a tus comandos anteriores.
Si necesitas replicar todos los comandos que has realizado en tu terminal, también puedes invocar todo el historial de esta sesión con el comando adecuadamente llamado history
:
Dependiendo de cuánto hayas practicado, deberías recibir 30 o más líneas de comandos, comenzando con la siguiente salida:
Output 1 pwd
2 mkdir files
3 ls
4 ls -l
...
Familiarizarse con estos atajos te ayudará a medida que te vuelvas más competente con la interfaz de línea de comandos.
Trabajando con Archivos desde la Web
Uno de los aspectos más emocionantes de trabajar en una interfaz de línea de comandos conectada a Internet es que tienes acceso a todos los recursos en la web y puedes actuar sobre ellos de manera automatizada. Con la terminal, también puedes acceder directamente a servidores en la nube para los que tienes credenciales, gestionar y orquestar infraestructura en la nube, construir tus propias aplicaciones web, y más. Por ahora, como ya hemos aprendido cómo trabajar con archivos de texto en la terminal, repasaremos cómo descargar un archivo de texto desde la web para que la máquina que estamos usando tenga ese archivo de texto disponible para nosotros.
Volviendo al directorio files/
:
Desde aquí, utilizaremos el comando curl
para transferir datos desde la web a nuestra terminal interactiva personal en el navegador. El comando curl
significa cliente de URL (dirección web).
Hemos subido un breve pasaje de “Veinte mil leguas de viaje submarino” de Julio Verne en un servidor en la nube. Pasaremos la URL de ese archivo al comando curl
, como se muestra a continuación.
Una vez que presionemos ENTER
, recibiremos el texto del pasaje como salida en nuestra terminal (extracto a continuación)
Output"You like the sea, Captain?"
"Yes; I love it! The sea is everything. It covers seven tenths of the terrestrial globe.
...
"Captain Nemo," said I to my host, who had just thrown himself on one of the divans, "this
is a library which would do honor to more than one of the continental palaces, and I am
absolutely astounded when I consider that it can follow you to the bottom of the seas."
Si bien es interesante tener el texto mostrado en nuestra ventana del terminal, no tenemos el archivo disponible, solo hemos transferido los datos pero no los hemos almacenado. (Puedes verificar que el archivo no está ahí ejecutando ls
).
Para guardar el texto en un archivo, necesitaremos ejecutar curl
con la bandera -O
, que nos permite enviar el texto a un archivo, tomando el mismo nombre del archivo remoto para nuestra copia local.
Recibirás comentarios desde el terminal de que tu archivo ha sido descargado.
Output % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2671 100 2671 0 0 68487 0 --:--:-- --:--:-- --:--:-- 68487
Si deseas utilizar un nombre específico y alternativo para el archivo, puedes hacerlo con la bandera -o
y pasar el nombre del nuevo archivo como argumento (en este caso, jules.txt
).
Ahora podemos trabajar en este archivo exactamente como lo haríamos con cualquier otro archivo de texto. Intenta usar cat
, o editarlo con nano
.
En la siguiente sección, limpiaremos algunos de los archivos y saldremos de nuestro terminal.
Eliminación de archivos y terminación de comandos
Como en cualquier otra computadora, a veces necesitamos eliminar archivos y carpetas que ya no son relevantes, y salir del programa que estamos utilizando.
Digamos que los estudiantes que conocemos de la Universidad DigitalOcean se han graduado y necesitamos limpiar sus archivos y la carpeta relevante. Asegúrate de estar en el directorio students/
:
Si ejecutas ls
, tu carpeta puede tener algunos archivos, así:
Outputalex.txt drew.txt jamie.txt jesse.txt sammy.txt taylor.txt
Podemos eliminar archivos individuales con el comando rm
, que significa remover. Necesitaremos pasar el archivo que queremos eliminar como argumento.
Advertencia: Ten en cuenta que una vez que eliminas un archivo, no se puede deshacer. Asegúrate de que deseas eliminar el archivo antes de presionar ENTER
.
Ahora, si ejecutamos ls
, notaremos que sammy.txt
ya no está en la carpeta:
Outputalex.txt drew.txt jamie.txt jesse.txt taylor.txt
Aunque ahora sabemos que podemos eliminar archivos individuales con rm
, no es muy eficiente en términos de tiempo si queremos eliminar todo el directorio students/
y todo su contenido.
El comando que se utiliza para eliminar directorios se llama rmdir
, que significa remover directorio. Vamos a movernos al directorio padre de files
para que podamos trabajar con el directorio students/
desde allí (no podríamos eliminar una carpeta en la que nos encontramos actualmente).
Desde el directorio de usuario /home/sammy/
, podemos ejecutar rmdir
en students
.
Sin embargo, esto no funciona, ya que recibimos la siguiente retroalimentación:
Outputrmdir: failed to remove 'students': Directory not empty
El comando no funcionó porque rmdir
solo funciona en directorios vacíos y el directorio students
todavía tiene archivos en él. (Aquí, puedes crear una nueva carpeta vacía e intentar rmdir
en ella. Las carpetas vacías se pueden eliminar con rmdir
.)
Para eliminar el directorio con archivos aún dentro, necesitaremos probar una opción diferente. En informática, la recursión se utiliza comúnmente para autoreferenciarse de manera iterativa; así que podemos llamar tanto a un elemento primario como a todas sus dependencias. Usando el comando rm
, podemos eliminar de forma recursiva el directorio primario students
y todas sus dependencias de contenido. Utilizaremos la bandera -r
, que significa recursivo, y pasaremos la carpeta students
como argumento.
En este punto, si ejecutamos ls
, notaremos que students/
ya no está en nuestro directorio actual, y ninguno de los archivos que contenía está disponible, ya que todos han sido eliminados.
Cuando hayas terminado con una sesión de terminal, y especialmente cuando estés trabajando en un servidor remoto, puedes salir de la terminal con el comando exit
. Una vez que te sientas cómodo con lo que has logrado en esta sesión (ya que no podrás restaurarlo), puedes escribir lo siguiente, seguido de ENTER
para salir de la terminal.
En nuestra terminal interactiva, recibiremos la siguiente salida, confirmando que nuestra sesión ha finalizado.
OutputSession ended
Con esta sesión completa, puedes actualizar esta página y luego abrir una nueva terminal para probar comandos alternativos, o crear un nuevo sistema de archivos para explorar.
Conclusión
¡Felicidades! Ahora conoces tu camino en la interfaz de terminal y estás en buen camino para hacer más con computadoras y servidores.
Para continuar tu aprendizaje, puedes seguir un camino guiado sobre cómo configurar y administrar servidores remotos con nuestro plan de estudios de Introducción a la Computación en la Nube.
Source:
https://www.digitalocean.com/community/tutorials/a-linux-command-line-primer