Introducción
Hoy en día, muchos de nosotros estamos familiarizados con las computadoras (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 brindan acceso a programas de computadora, aplicaciones y nuestros propios medios.
Aunque las GUI pueden ser una forma intuitiva de usar una computadora para muchos usuarios, a menudo no nos brindan el mayor poder sobre nuestras máquinas y pueden evitar que tengamos acceso administrativo completo a nuestras computadoras, incluida la instalación, modificación o eliminación software o archivos. Además, como las GUI son en gran medida visuales, a menudo no son tan accesibles como podrían ser para todos los usuarios.
Una forma de navegar tanto en su propia computadora personal como en servidores remotos en la nube sin una GUI es a través de una terminal basada en texto o una interfaz de línea de comandos (CLI). Puede iniciar uno en el navegador haciendo clic en el azul Launch an Interactive Terminal!
boton de abajo:
¡Lanzamiento de una terminal interactiva!
Existen interfaces de terminal en casi todos los sistemas operativos de computadora, y los emuladores de terminal también están disponibles como aplicaciones para tabletas y teléfonos inteligentes. Los terminales brindan 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 brindan 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 los entornos de terminal los conceptos básicos para usar una interfaz de línea de comandos a través de un terminal web integrado en su navegador, que puede iniciar a continuación. Si ya está familiarizado con las terminales, es posible que prefiera seguir nuestro tutorial de Introducción a la terminal de Linux. Una vez que complete este tutorial, debe comprender cómo usar una terminal en una computadora o servidor Linux (o macOS).
Comprender la ventana de terminal
Cuando tenga acceso por primera vez a una nueva computadora o teléfono inteligente, es probable que desee encenderlo y tener una idea de cómo usarlo verificando qué aplicaciones están disponibles y para saber dónde están las cosas para que pueda personalizar el dispositivo para adaptarse tus necesidades. Puede familiarizarse con una computadora a través de una terminal de manera similar.
La terminal interactiva que inició en esta ventana del navegador, haciendo clic en el Launch an Interactive Terminal!
botón de arriba, muestra un rectángulo negro en la parte inferior de la ventana de su navegador:
Si no ha iniciado el terminal, hágalo ahora:
¡Lanzamiento de una terminal interactiva!
En su terminal de navegador interactivo, debería haber un signo de dólar, $
y un cursor parpadeante. Aquí es donde comenzará a escribir comandos para decirle al terminal qué hacer.
El terminal que ha lanzado es un terminal Ubuntu 20.04. Ubuntu es una distribución popular de Linux, que originalmente se basó en el sistema operativo Unix. El sistema operativo macOS también está basado en Unix. Si está leyendo este tutorial en una máquina Linux o macOS, debe tener una terminal en su sistema operativo que funcione de manera similar a la terminal incorporada 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, que significa lo siguiente:
$
o signo de dólar: ha iniciado sesión como usuario habitual#
o símbolo de hashtag / libra: ha iniciado sesión como usuario con privilegios elevados
El usuario que se indica en el #
El entorno también se conoce como usuario root, que se considera un superusuario o administrador de forma predeterminada.
Para nuestros propósitos dentro del terminal del navegador a continuación, ha iniciado sesión como un usuario regular, pero también tiene privilegios de administrador. Como se trata de una terminal temporal, no necesita preocuparse por lo que escriba en la terminal, ya que lo 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.
tenga en cuenta que es mejor tener más cuidado cuando se trabaja en la terminal de una computadora local, ya que puede haber cambios que puede realizar como administrador en la terminal que pueden realizar cambios permanentes en la computadora que está utilizando.
En este punto, con su terminal iniciada en el navegador, puede comenzar a escribir en ella usando su computadora local. Su texto aparecerá en el cursor parpadeante. Aprenderemos sobre lo que podemos escribir aquí en las siguientes secciones.
Familiarizarse con los directorios
Comenzaremos a trabajar con la terminal escribiendo un comando. UNA mando es una instrucción que da un usuario, que comunica qué es lo que el usuario quiere que haga la computadora. Estará escribiendo sus comandos en la terminal y luego presionando ENTER
o RETURN
cuando esté listo para que la computadora ejecute un comando determinado.
Escribamos el siguiente comando seguido de ENTER
. También puede copiar el comando o pedirle que se ejecute en una terminal interactiva iniciada haciendo clic en los enlaces relevantes en el bloque de código a continuación cuando pasa el mouse sobre él.
Una vez que ejecute este comando, recibirá el siguiente resultado:
Output
/root
los
pwd
comando significa «pagresentirse de working reirectory ”, y le permite saber dónde se encuentra dentro del sistema de archivos actual.
En este ejemplo, se encuentra en el directorio (o carpeta) llamado /root
, que significa el usuario llamado root
, un usuario con privilegios elevados. En una computadora personal, este directorio puede denominarse con el nombre del usuario propietario de la computadora. La computadora de Sammy Shark puede tener /sammy
o /sammy-shark
como su directorio de usuario principal.
En este momento, este directorio está vacío. Creemos un directorio para almacenar los archivos que crearemos a medida que avanzamos en este tutorial, al que podemos llamar files
, por ejemplo.
Para hacer esto, usaremos el mkdir
comando, que significa «metrounakmi directory «. 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 al crear este directorio. Este valor (el nombre de la carpeta) se conoce como argumento, que es una entrada que se le da al comando. Si está familiarizado con la gramática del lenguaje natural, puede pensar en el argumento como un objeto sobre el que actúa el verbo del comando.
Para crear un nuevo directorio llamado files
escribiremos lo siguiente, con mkdir
siendo el mando y files
siendo el argumento:
Después de ejecutar este comando, no recibirá ningún resultado más que una nueva línea con un cursor parpadeante. Con esta nueva línea en su terminal, está listo para su próximo comando.
Listado de contenidos y comprensión de los 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. Puede confirmar que el nuevo directorio está allí enumerando los archivos en el directorio, con el ls
comando (que significa «lyost ”):
Recibirá un resultado que confirma la files
directorio está ahí:
Output
files
Esto nos da información general sobre lo que hay en nuestro directorio de trabajo actual. Si queremos tener más detalles, podemos ejecutar el ls
comando con lo que se llama una bandera. En los comandos de Linux, un bandera está escrito con un guion -
y letras, pasando opciones adicionales (y más argumentos) al comando. En nuestro ejemplo, agregaremos el -l
bandera, que – cuando se combina con ls
– denota que nos gustaría usar la opción para usar un formato de lista larga con nuestro comando.
Escribamos este comando y marcamos, así:
Al presionar ENTER
, recibiremos el siguiente resultado en nuestra terminal:
Output
total 4
drwxr-xr-x 2 root root 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 por humanos, también podemos pasar el -h
o --human-readable
bandera, que imprimirá tamaños de memoria en un formato legible por humanos, como se muestra a continuación. Generalmente, un guion -
se refiere a opciones de una sola letra y dos guiones --
consulte las opciones escritas con palabras. Tenga en cuenta que algunas opciones pueden usar ambos formatos. Podemos construir múltiples opciones en un comando encadenando banderas, como en -lh
.
Por ejemplo, los dos comandos siguientes ofrecen 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:
Output
total 4.0K
drwxr-xr-x 2 root root 4.0K Nov 13 18:06 files
La primera línea de salida nos permite saber que 4K de memoria de la computadora está dedicada a la carpeta. La segunda línea de salida tiene muchos más detalles, que repasaremos con más detalle. En la tabla siguiente se indica una referencia general de alto nivel de toda la información que cubriremos.
Tipo de archivo | Permisos | Recuento de enlaces | Propietario | Grupo | Tamaño del archivo | Fecha de última modificación | Nombre del archivo |
---|---|---|---|---|---|---|---|
re | rwxr-xr-x | 2 | raíz | raíz | 4.0K | 13 de noviembre 18:06 | archivos |
Observará 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 /root
El directorio de usuario se describe mediante 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 principio de la línea, hay una lista de caracteres y guiones. Analicemos el significado de cada uno de los caracteres:
Personaje | Descripción |
---|---|
re | reirectorio (o carpeta): un tipo de archivo que puede contener otros archivos, útil para organizar un sistema de archivos; si esto fuera - en su lugar, esto se referiría a un archivo que no es de directorio |
r | read: permiso para abrir y leer un archivo o enumerar el contenido de un directorio |
w | writo – permiso para modificar el contenido de un archivo; y para agregar, eliminar, renombrar archivos en un directorio |
X | miXecute: permiso para ejecutar un archivo que es un programa o para ingresar y acceder a archivos dentro de un directorio |
En el primero drwx
caracteres de la cadena, la primera letra d
significa que el artículo files
es un directorio. Si este fuera un archivo que no sea un directorio, esta cadena de caracteres comenzaría con un guión, como en -rwx
, donde el primer guión significa un archivo que no es de directorio. Las siguientes tres letras, rwx
, representan los permisos para el propietario del directorio files
y significa que el directorio files
puede ser read, written, yeXEcutado por el titular del archivo. Si alguno de estos caracteres fuera reemplazado por guiones, eso significaría que el propietario no tiene el tipo de permiso representado por ese carácter. Analizaremos cómo identificar al propietario de un archivo en un momento.
Los siguientes tres caracteres de la salida son r-x
, que representan el grupo permisos para el files
directorio. En este caso, el grupo tiene permisos de lectura y ejecución, pero no permisos de escritura, ya que w
se reemplaza con un -
. Discutiremos cómo identificar al grupo en un momento.
Los últimos tres caracteres de la primera cadena, r-x
representa 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, Enlaces proporcionar un método para crear accesos directos que ayuden a los usuarios a navegar por el sistema de archivos. Cuando creó este archivo, Linux hizo un trabajo en segundo plano para crear un enlace absoluto al archivo y un enlace autorreferencial al archivo para permitir que los usuarios naveguen por una ruta relativa. Discutiremos las rutas absolutas y relativas en la siguiente sección.
Después del número 2
, la palabra root
se muestra dos veces. Esta parte de la salida proporciona información sobre el propietario y el grupo asociado con el files
directorio. La primera instancia de root
en esta línea se refiere al propietario del directorio, cuyos permisos que vimos anteriormente son rwx
. los root
el usuario es el propietario ya que creamos el files
directorio como el root
usuario y es el propietario actual del archivo. Aunque el root
El usuario 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 tiene la propiedad de un archivo.
La segunda instancia de root
se refiere al grupo que tiene acceso a la files
directorio, cuyos permisos vimos anteriormente son r-x
. En este caso, el nombre del grupo es el mismo que el nombre de usuario del propietario. root
. 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 sammy
.
El resto de los detalles de 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 el directorio fue modificado por última vez (hasta ahora, lo acabamos de crear).
Con esta mayor comprensión de los sistemas de archivos y los permisos, podemos pasar a navegar por el sistema de archivos en nuestra 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 enumerar los archivos y cómo determinar los permisos.
A continuación, aprendamos a movernos por el sistema de archivos. Hemos creado un nuevo directorio, pero todavía estamos en el principal /root
directorio de usuario. Para entrar en el /files
directorio que hemos creado, usaremos el cd
comando y pasar el nombre del directorio al que queremos movernos como argumento. El comando cd
representa «Ccolgar reirectory «, y lo construiremos así:
Nuevamente, no recibirá más salida que una nueva línea con un cursor parpadeante, pero podemos verificar que estamos en el /files
directorio con el pwd
comando que usamos anteriormente:
Obtendrá el siguiente resultado, confirmando dónde se encuentra:
Output
/root/files
Esto valida que estás en el /files
directorio del /root
directorio de usuario. ¿Le resulta familiar esta sintaxis? Puede recordarle la URL de un sitio web con sus barras diagonales y, de hecho, los sitios web también están estructurados en servidores dentro de directorios.
Pasemos al directorio principal del servidor. Independientemente de dónde estemos en un sistema de archivos, siempre podemos usar el comando cd /
para moverse al directorio principal:
Para confirmar que nos hemos movido y saber qué hay en este directorio, ejecutemos nuestro comando list:
Recibiremos el siguiente resultado:
Output
bin 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í! los /
directorio es el directorio principal de un servidor Linux, denominado directorio «raíz». Tenga en cuenta que el directorio raíz es diferente del usuario «raíz» predeterminado. 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 sys
El directorio contiene el kernel de Linux y el sistema de archivos virtual de información del sistema. Si desea obtener más información sobre cada uno de estos directorios, puede visitar el Documentación de Linux Foundation.
También notará que hay un directorio en el que ya hemos estado, el /root
carpeta de usuario. Desde el /
directorio, podemos volver a cambiar los directorios a /root
luego de vuelta a /files
, o podemos volver directamente a esa carpeta escribiendo la ruta absoluta allí con cd
:
Ahora, si corres pwd
recibirás /root/files
como su salida.
UNA ruta de archivo es la representación de dónde se encuentra un archivo o directorio en su computadora o servidor. Puede llamar a una ruta a un archivo o directorio de forma relativa o absoluta. UNA camino relativo sería cuando nos movemos a una ubicación relativa a nuestro directorio de trabajo actual, como lo hicimos cuando ya estábamos en root/
y luego se mudó a files/
. Un camino absoluto es cuando llamamos a la línea directa a una ubicación, como hicimos anteriormente con /root/files
, mostrando que empezamos en el /
directorio, llamado el root/
directorio de usuario y luego el anidado files/
directorio.
Además, Linux aprovechanotación de puntos para ayudar a los usuarios a navegar por rutas relativas. Un solo .
representa el directorio en el que se encuentra actualmente, y un doble ..
representa el directorio principal. Entonces, desde donde estamos actualmente (/root/files
), podemos usar dos puntos para volver al padre root/
directorio de usuario, así:
Si tu corres pwd
, recibirás /root
como su salida, y si ejecuta ls
, recibirás files
como su salida.
Otro símbolo importante con el que estar familiarizado es ~
que representa el directorio de inicio de su máquina. Aquí, nuestro directorio de inicio se llama root/
para el usuario root, pero en una máquina local puede ser su propio nombre como en sammy-shark/
.
Puede escribir lo siguiente desde cualquier lugar de su máquina y volver a este directorio de inicio:
En este punto, siéntase libre de navegar por su sistema de archivos con los comandos que ha aprendido hasta ahora. En la siguiente sección, comenzaremos a trabajar con archivos de texto.
Crear y modificar archivos de texto
Ahora que tenemos una base en el sistema de archivos de Linux y cómo solucionarlo, comencemos a crear nuevos archivos y aprendamos a manipular texto en la línea de comandos.
Primero asegurémonos de que estamos en el files/
directorio del root/
carpeta de usuario, lo que podemos hacer verificando con pwd
, o cambiando directorios en la ruta absoluta:
Ahora crearemos un nuevo archivo de texto. Haremos un .txt
file, que es un archivo estándar que se puede leer en todos los sistemas operativos. diferente a .doc
archivos, un .txt
el archivo se compone de sin formato texto. Texto sin formato, incluido el texto en.txt
archivos, se pueden usar fácilmente en la línea de comandos y, por lo tanto, se pueden usar cuando se trabaja con datos textuales mediante programación (como en, para automatizar el análisis de texto, para extraer información del texto, etc.
Comenzaremos usando el touch
comando, que puede crear un nuevo archivo o modificar un archivo existente. Para usarlo, puede usar el comando touch
y pase el nombre del archivo de texto que desea crear como argumento, como se muestra a continuación.
Una vez que presione ENTER
, recibirá una nueva línea del símbolo del sistema y podrá enumerar el contenido actual de files/
para asegurarse de que fue creado.
Output
ocean.txt
Hasta ahora hemos creado un ocean.txt
archivo 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 echo
comando, que se utiliza para mostrar cadenas de texto en Linux.
Nosotros podemos usar echo
directamente en la línea de comando para que la interfaz se repita después de nosotros. El primer programa tradicional, "Hello, World!"
, se puede escribir con echo
al igual que:
Output
Hello, World!
Llamado así por el eco de Ovid Metamorfosis, la echo
comando devuelve lo que solicitamos. En este caso, se hizo eco, «¡Hola, mundo!» Sin embargo, por sí solo, echo
El comando no nos permite almacenar el valor de nuestro texto en un archivo de texto. Para hacer eso, necesitaremos escribir lo siguiente:
- echo «Sammy the Shark» > sammy.txt
El comando anterior usa 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, de nuevo con ls
.
Output
ocean.txt sammy.txt
Ahora tenemos dos archivos de texto en nuestro root/
carpeta de usuario. A continuación, podemos confirmar que el archivo sammy.txt
tiene el texto que le pedimos a la terminal que haga eco en él. Podemos hacer eso con el cat
mando. Abreviatura de estafagatoenate, el cat
El comando es muy útil para trabajar con archivos. Entre sus funciones está mostrar el contenido de un archivo.
Una vez que ejecutemos el comando, recibiremos el siguiente resultado:
Output
Sammy the Shark
Si tuviéramos que correr cat
en el archivo vacío ocean.txt
, no recibiríamos nada a cambio ya que no hay texto en ese archivo. Podemos agregar texto a este archivo existente con echo
también. Agreguemos una cita de Zora Neale Hurston al archivo.
- echo «Some people could look at a mud puddle and see an ocean with ships.» > ocean.txt
Ahora, si corremos cat
en el archivo, recibiremos la salida del texto que acabamos de ingresar.
Output
Some people could look at a mud puddle and see an ocean with ships.
Hasta ahora, hemos creado archivos de texto y hemos agregado texto a estos archivos, pero aún no los hemos modificado. Si quisiéramos hacer eso, podemos usar un editor de texto de línea de comandos. Existen varias opciones populares, incluidas Vim y Emacs. Para nuestros propósitos, usaremos nano, que es un programa editor de texto CLI menos complejo que podemos usar para comenzar nuestra exploración.
El editor de texto nano se puede invocar con el nano
mando. Si queremos editar nuestro existente sammy.txt
file, podemos hacerlo pasando el nombre del archivo como argumento.
El archivo se abrirá en su terminal:
sammy.txt
Sammy the Shark
Con las teclas de flecha de su teclado, mueva el cursor al final de la línea y comience a escribir algunas líneas desde la perspectiva de Sammy.
Nota: En la línea de comando, no puede usar el mouse u otro puntero para navegar, tanto a través del sistema de archivos como dentro de los archivos. Deberá usar su teclado y, en particular, las teclas de flecha para moverse por los archivos de texto.
Cuando haya terminado con su archivo, puede leer algo como esto:
sammy.txt
Sammy the Shark
Hello, I am Sammy.
I am studying computer science.
Nice to meet you!
Ahora que su archivo contiene el texto que le gustaría, ahora podemos guardar y cerrar el archivo. Puede notar que hay una guía en la parte inferior de la ventana de su 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
Debido a que actualmente hemos terminado de trabajar en este archivo, nos gustaría Exit
el archivo. Aquí el ^
símbolo se refiere a la Control
o CTRL
en su teclado, y la salida anterior nos dice que necesitamos combinar esa tecla con X
(use esta minúscula, sin presionar el SHIFT
clave) para dejar el 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á el siguiente mensaje:
Output
Save modified buffer?
Y Yes
N No ^C Cancel
Para guardarlo, presionaremos la letra y
por si:
y
Recibirá comentarios como los siguientes.
Output
File Name to Write: sammy.txt
Hay opciones adicionales, incluida la cancelación con CTRL + C
, pero si se siente cómodo cerrando el archivo, puede presionar ENTER
en este punto para guardar el archivo y salir de él.
Supongamos que queremos crear algunos archivos de estudiantes de DigitalOcean University. Creemos un nuevo directorio en files/
llamado students
:
A continuación, movámonos sammy.txt
en lo nuevo students/
directorio. los mv
comando, que significa metroove, 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. Las dos ejecuciones siguientes producirán el mismo resultado.
- mv sammy.txt students/sammy.txt
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 ls
comando, veremos que solo ocean.txt
y el students/
directorio están en nuestro directorio actual (files/
). Pasemos al students/
carpeta.
Para tener una plantilla para los otros estudiantes, podemos copiar el sammy.txt
archivo para crear más archivos. Para hacer esto, podemos usar el cp
comando, que significa Copagy. Este comando funciona de manera similar al mv
comando, tomando el archivo original como primer argumento y el nuevo archivo como segundo argumento. Haremos un archivo para Alex the Leafy Seadragon:
Ahora podemos abrir alex.txt
e inspeccionarlo.
Hasta aquí, alex.txt
parece idéntico a sammy.txt
. Reemplazando algunas de las palabras, podemos modificar este archivo para que se lea como se muestra a continuación. Tenga en cuenta que puede usar CTRL + K
para eliminar una línea completa.
alex.txt
Alex the Leafy Seadragon
Hello, I am Alex.
I am studying oceanography.
Nice to meet you!
Puede guardar y cerrar el archivo presionando CTRL + X
entonces y
entonces ENTER
.
Si desea practicar más con archivos de texto, considere la posibilidad de crear archivos para Jamie the Mantis Shrimp, Jesse the Octopus, Drew the Squid o Taylor the Yellowfin Tuna.
Una vez que se sienta cómodo 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, incluida la terminal interactiva incluida en este tutorial, le permiten autocompletar y reutilizar comandos sobre la marcha. Esto le ayuda a moverse más rápido ya que le ahorra tiempo de escritura.
Intenta escribir cat
junto con las primeras letras de uno de los archivos de texto en los que ha estado trabajando, por ejemplo, cat sa
. Antes de terminar de escribir el nombre de archivo completo de sammy.txt
, presione el TAB
clave en su lugar. Esto debería autocompletar el nombre completo del archivo, de modo que su terminal muestre lo siguiente:
Ahora, si presiona ENTER
, el terminal debe devolver el contenido del archivo a la línea de comando.
Otro atajo es presionar el UP
tecla de flecha, que le permitirá recorrer los comandos más recientes que haya ejecutado. En una nueva línea con un cursor parpadeante, presione el UP
la tecla de flecha varias veces para tener acceso rápido a sus comandos anteriores.
Si necesita replicar todos los comandos que ha hecho en su terminal, también puede invocar el historial completo de esta sesión con el nombre apropiado history
mando:
Dependiendo de cuánto haya practicado, debería recibir 30 o más líneas de comandos, comenzando con el siguiente resultado:
Output
1 pwd
2 mkdir files
3 ls
4 ls -l
...
Familiarizarse con estos atajos le ayudará a medida que se vuelva más competente con la interfaz de línea de comandos.
Trabajar con archivos de la web
Uno de los aspectos más interesantes de trabajar en una interfaz de línea de comandos conectada a Internet es que tiene acceso a todos los recursos de la web y puede actuar sobre ellos de forma automatizada. Con la terminal, también puede acceder directamente a los servidores en la nube para los que tiene credenciales, administrar y orquestar la infraestructura de la nube, crear sus propias aplicaciones web y más. Por ahora, como ya hemos aprendido a trabajar con archivos de texto en la terminal, repasaremos cómo extraer un archivo de texto de la web para que la máquina que estamos usando tenga ese archivo de texto disponible para nosotros.
Volvamos al files/
directorio:
Desde aquí, usaremos el curl
comando para transferir datos desde la web a nuestro terminal interactivo personal en el navegador. El comando curl
representa Cliente URL (dirección web).
Hemos subido un breve pasaje de Jules Verne Veinte mil leguas de viaje submarino en un servidor en la nube. Pasaremos la URL de ese archivo a la curl
comando, como se muestra a continuación.
- curl https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt
Una vez que presionamos ENTER
, recibiremos el texto del pasaje como salida a nuestra terminal (extraído 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 que el texto se muestre en la ventana de nuestra terminal, no tenemos el archivo disponible, solo hemos transferido los datos pero no los hemos almacenado. (Puede verificar que el archivo no está allí ejecutando ls
).
Para guardar el texto en un archivo, necesitaremos ejecutar curl
con el -O
flag, que nos permite enviar el texto a un archivo, tomando el mismo nombre del archivo remoto para nuestra copia local.
- curl -O https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt
Recibirá comentarios de la terminal sobre la descarga de su archivo.
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 desea utilizar un nombre específico y alternativo del archivo, puede hacerlo con el -o
marcar y pasar el nombre del nuevo archivo como argumento (en este caso, jules.txt
).
- curl -o jules.txt https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.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 nuestra terminal.
Eliminación de archivos y terminación de comandos
Al igual que con cualquier otra computadora, a veces necesitamos eliminar archivos y carpetas que ya no son relevantes y salir del programa que estamos usando.
Supongamos que los estudiantes que conocemos de DigitalOcean University se han graduado y necesitamos limpiar sus archivos y la carpeta correspondiente. Asegúrese de estar en el students/
directorio:
Si tu corres ls
, su carpeta puede tener algunos archivos, así:
Output
alex.txt drew.txt jamie.txt jesse.txt sammy.txt taylor.txt
Podemos eliminar archivos individuales con el rm
comando, que significa rmimetroove. Tendremos que pasar el archivo que queremos eliminar como argumento.
Advertencia: Tenga en cuenta que una vez que elimina un archivo, no se puede deshacer. Asegúrese de que desea eliminar el archivo antes de presionar ENTER
.
Ahora, si corremos ls
, notaremos que sammy.txt
ya no está en la carpeta:
Output
alex.txt drew.txt jamie.txt jesse.txt taylor.txt
Si bien ahora sabemos que podemos eliminar archivos individuales con rm
, no es muy eficiente en el tiempo si queremos eliminar todo students/
directorio y todo su contenido.
El comando que se usa para eliminar directorios se llama rmdir
, Lo que significa rmimetroove directory. Pasemos a la carpeta principal de files
para que podamos trabajar con el students/
directorio desde allí (no podríamos eliminar una carpeta en la que estamos actualmente).
Desde el root/
directorio de usuario, podemos ejecutar rmdir
en students
.
Sin embargo, esto no funciona, ya que recibimos los siguientes comentarios:
Output
rmdir: failed to remove 'students': Directory not empty
El comando no funcionó como rmdir
solo funciona en directorios vacíos y el students
directorio todavía tiene archivos en él. (Aquí puede crear una nueva carpeta vacía y probar rmdir
en eso. Las carpetas vacías se pueden eliminar con rmdir
.)
Para eliminar el directorio con archivos que aún están dentro, tendremos que probar una opción diferente. En informática, recursividad se utiliza comúnmente para autorreferenciar iterativamente; por lo que podemos llamar tanto a un elemento principal como a todas sus dependencias. Utilizando la rm
comando, podemos eliminar de forma recursiva el students
directorio y todas sus dependencias de contenido. Usaremos el -r
bandera, que significa recursive y pasa la carpeta students
como argumento.
En este punto, si corremos 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 haya terminado con una sesión de terminal, y especialmente cuando esté trabajando en un servidor remoto, puede salir del terminal con el exit
mando. Una vez que se sienta cómodo con lo que ha logrado en esta sesión (ya que no podrá restaurarlo), puede escribir lo siguiente, seguido de ENTER
para salir de la terminal.
En nuestra terminal interactiva, recibiremos el siguiente resultado, confirmando que nuestra sesión ha finalizado.
Output
The environment has expired.
Please refresh to get a new environment.
Con esta sesión completa, puede actualizar esta página y luego iniciar una nueva terminal para probar comandos alternativos o crear un nuevo sistema de archivos para explorar.
Conclusión
¡Felicidades! Ahora conoce la interfaz de la terminal y está en camino de hacer más con las computadoras y los servidores.
Para continuar con su aprendizaje, puede realizar una ruta guiada sobre la configuración y administración de servidores remotos con nuestro plan de estudios Introducción a la computación en la nube.