Introducción
Navegar y manipular archivos y carpetas en el sistema de archivos es fundamental para trabajar con la mayoría de las computadoras. Los servidores en la nube suelen utilizar los mismos shells y comandos comunes de Linux para trabajar con archivos y carpetas. Esta terminal presentará algunas habilidades fundamentales para usar estos comandos.
Prerrequisitos y objetivos
Para seguir esta guía, necesitará tener acceso a un servidor Linux. Si necesita información sobre cómo conectarse a su servidor por primera vez, puede consultar nuestra guía sobre cómo conectarse a un servidor Linux mediante SSH .
También querrás comprender cómo funciona la terminal y cómo se ven los comandos de Linux. Esta guía ofrece una introducción a la terminal .
Todo el material de esta guía se puede completar con una cuenta de usuario normal, no root (no administrativa). Puede aprender a configurar este tipo de cuenta de usuario siguiendo la guía de configuración inicial del servidor de su distribución, como la de Ubuntu 22.04 .
Cuando esté listo para comenzar, conéctese a su servidor Linux usando SSH y continúe a continuación.
Navegación y exploración
Las habilidades más fundamentales que debes dominar son navegar por el sistema de archivos y comprender lo que te rodea. En esta sección, revisarás las herramientas que te permiten hacerlo.
Cómo encontrar tu ubicación con el comando “pwd”
Al iniciar sesión en su servidor, normalmente se le redirige al directorio de inicio de su cuenta de usuario . Un directorio de inicio es un directorio reservado para que su usuario almacene archivos y cree directorios. Es la ubicación en el sistema de archivos donde tiene pleno dominio.
Para saber dónde se encuentra su directorio personal en relación con el resto del sistema de archivos, puede usar el pwd
comando. Este comando muestra el directorio en el que se encuentra actualmente:
pwd
Output/home/sammy
El directorio de inicio recibe el nombre de la cuenta de usuario. Este directorio se encuentra dentro de un directorio llamado /home
, que a su vez está dentro del directorio de nivel superior, generalmente llamado directorio raíz, y se representa con una sola barra diagonal /
.
Mirando el contenido de los directorios con “ls”
Ahora que sabe cómo mostrar el directorio en el que se encuentra, puede ver el contenido de un directorio.
Actualmente, tu directorio personal no tiene mucho que ver, así que puedes ir a otro directorio con más usuarios para explorar. Usa cd
para moverte a este directorio. Después, usarás pwd
para confirmar que la migración se realizó correctamente:
cd /usr/share
pwd
Output/usr/share
Ahora que estás en un nuevo directorio, veamos su contenido. Para ello, puedes usar el ls
comando:
ls
Outputadduser groff pam-configs
applications grub perl
apport grub-gfxpayload-lists perl5
apps hal pixmaps
apt i18n pkgconfig
aptitude icons polkit-1
apt-xapian-index info popularity-contest
. . .
Como puede ver, este directorio contiene muchos elementos. Puede agregar indicadores opcionales al comando para modificar el comportamiento predeterminado. Por ejemplo, para listar todo el contenido de forma extendida, puede usar el -l
indicador (para una salida “larga”):
ls -l
Outputtotal 440
drwxr-xr-x 2 root root 4096 Apr 17 2022 adduser
drwxr-xr-x 2 root root 4096 Sep 24 19:11 applications
drwxr-xr-x 6 root root 4096 Oct 9 18:16 apport
drwxr-xr-x 3 root root 4096 Apr 17 2022 apps
drwxr-xr-x 2 root root 4096 Oct 9 18:15 apt
drwxr-xr-x 2 root root 4096 Apr 17 2022 aptitude
drwxr-xr-x 4 root root 4096 Apr 17 2022 apt-xapian-index
drwxr-xr-x 2 root root 4096 Apr 17 2022 awk
. . .
Esta vista nos proporciona abundante información. El primer bloque describe el tipo de archivo (si la primera columna es “d”, el elemento es un directorio, y si es “-“, es un archivo normal) y los permisos. Cada columna subsiguiente, en orden, describe el número de enlaces físicos a ese archivo en otras partes del sistema, el propietario, el propietario del grupo, el tamaño del elemento, la fecha de la última modificación y el nombre del elemento.
Para obtener una lista de todos los archivos, incluyendo los archivos y directorios ocultos , puedes agregar la -a
bandera. Como no hay archivos ocultos reales en el /usr/share
directorio, volvamos a tu directorio de inicio y probemos ese comando. Puedes volver al directorio de inicio escribiendo cd
sin argumentos:
cd
ls -a
Output. .. .bash_logout .bashrc .profile
Como puede ver, hay tres archivos ocultos, junto con .
y ..
, que son indicadores especiales. Verá que, a menudo, los archivos de configuración se almacenan como archivos ocultos, como en este caso.
Las entradas con punto y doble punto no son exactamente directorios, sino métodos integrados para hacer referencia a directorios relacionados. El punto simple indica el directorio actual y el doble punto indica el directorio principal de este directorio. Esto será útil en la siguiente sección.
Moverse por el sistema de archivos con “cd”
Ya has realizado dos cambios de directorio para demostrar algunas propiedades ls
en la sección anterior. Analicemos el comando con más detalle.
Comience volviendo al /usr/share
directorio:
cd /usr/share
Este es un ejemplo de cómo cambiar un directorio proporcionando una ruta absoluta . En Linux, cada archivo y directorio se encuentra bajo el directorio raíz, al que se hace referencia con una sola barra diagonal inicial, «/». Una ruta absoluta indica la ubicación de un directorio en relación con este directorio de nivel superior. Esto nos permite hacer referencia a directorios de forma inequívoca desde cualquier lugar del sistema de archivos. Toda ruta absoluta debe comenzar con esa barra diagonal.
La alternativa es usar rutas relativas . Estas rutas se refieren a directorios en relación con el directorio actual. Para directorios cercanos al directorio actual en la jerarquía, esto suele ser más corto, y a veces resulta beneficioso no tener que hacer suposiciones sobre la ubicación de un directorio en el sistema de archivos. Cualquier directorio dentro del directorio actual puede referenciarse por su nombre sin una barra diagonal inicial. Puede cambiar al locale
directorio desde /usr/share
su ubicación actual escribiendo:
cd locale
También puede mover varios niveles de directorio con rutas relativas proporcionando la parte de la ruta que viene después de la ruta del directorio actual. Desde aquí, puede acceder al LC_MESSAGES
directorio dentro del en
directorio escribiendo:
cd en/LC_MESSAGES
Para retroceder, yendo al directorio principal del directorio actual, puede usar el indicador especial de doble punto. Por ejemplo, ahora se encuentra en el /usr/share/locale/en/LC_MESSAGES
directorio. Para subir un nivel, puede escribir:
cd ..
Esto nos lleva al /usr/share/locale/en
directorio.
Siempre puedes regresar a tu directorio de inicio ejecutando cd
sin especificar un directorio. También puedes usar “ ~
en lugar de tu directorio de inicio“ en cualquier otro comando:
cd ~
pwd
/home/sammy
Para obtener más información sobre cómo utilizar estos tres comandos, puede consultar nuestra guía sobre cómo explorar el sistema de archivos de Linux .
Visualización de archivos
En la sección anterior, aprendiste a navegar por el sistema de archivos. Probablemente viste algunos archivos al usar el ls
comando en varios directorios. A diferencia de algunos sistemas operativos, Linux y otros sistemas operativos tipo Unix dependen de archivos de texto sin formato para gran parte del sistema.
La forma principal de visualizar archivos en este tutorial es con el less
comando. Esto se denomina “paginador”, ya que permite desplazarse por las páginas de un archivo. Si bien los comandos anteriores se ejecutaban inmediatamente y regresaban a la línea de comandos, less
esta aplicación seguirá ejecutándose y ocupando la pantalla hasta que salga.
Abrirá el /etc/services
archivo, que es un archivo de configuración que contiene información de servicio que el sistema conoce:
less /etc/services
El archivo se abrirá en less
, lo que le permitirá ver la parte del documento que cabe en el área de la ventana del terminal:
Output# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, officially ports have two entries
# even if the protocol doesn't support UDP operations.
#
# Updated from http://www.iana.org/assignments/port-numbers and other
# sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services .
# New ports will be added on request if they have been officially assigned
# by IANA and used in the real-world or are needed by a debian package.
# If you need a huge list of used numbers please install the nmap package.
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
. . .
Para desplazarte, puedes usar las flechas arriba y abajo del teclado. Para avanzar página, puedes usar la barra espaciadora, la tecla “Av Pág” o el CTRL-f
atajo de teclado.
Para desplazarse hacia arriba, puede utilizar el botón “Re Pág” o el CTRL-b
atajo de teclado.
Para buscar texto en el documento, puede escribir una barra diagonal “/” seguida del término de búsqueda. Por ejemplo, para buscar “correo”, escribiría:
/mail
Esto buscará hacia adelante en el documento y se detendrá en el primer resultado. Para acceder a otro resultado, puede escribir la tecla en minúscula n
:
n
Para retroceder al resultado anterior, utilice mayúscula N
en su lugar:
N
Para salir del less
programa, puede escribir q
para salir:
q
Hay muchas otras maneras de ver un archivo que resultan útiles en ciertas circunstancias. El cat
comando muestra el contenido de un archivo y regresa al prompt inmediatamente. head
Por defecto, el comando muestra las primeras 10 líneas de un archivo. Asimismo, tail
muestra las últimas 10 líneas. Estos comandos muestran el contenido del archivo de una forma útil para la comunicación con otros programas. Este concepto se aborda más adelante en esta serie de tutoriales.
Manipulación de archivos y directorios
En esta sección, creará y manipulará archivos y directorios.
Crear un archivo con “touch”
Muchos comandos y programas pueden crear archivos. El método más sencillo es con el touch
comando. Esto creará un archivo vacío con el nombre y la ubicación especificados.
Primero, asegúrate de estar en tu directorio personal, ya que es una ubicación donde tienes permiso para guardar archivos. Luego, puedes crear un archivo llamado “.exe” file1
escribiendo:
cd
touch file1
Ahora, si ves los archivos en el directorio, podrás ver el archivo recién creado:
ls
Outputfile1
Si usa el touch
comando en un archivo existente, se actualiza la fecha de última modificación asociada a ese archivo. Puede ser útil tener esto en cuenta.
También puedes crear varios archivos a la vez. También puedes usar rutas absolutas. Por ejemplo, podrías escribir:
touch /home/sammy/file2 /home/sammy/file3
ls
Outputfile1 file2 file3
Crea un directorio con “mkdir”
Similar al touch
comando, el mkdir
comando le permite crear directorios vacíos.
Por ejemplo, para crear un directorio dentro de su directorio de inicio llamado test
, podría escribir:
cd
mkdir test
Puedes crear un directorio dentro del test
directorio llamado example
escribiendo:
mkdir test/example
Para que el comando anterior funcione, el test
directorio ya debe existir. Para indicar mkdir
que debe crear los directorios necesarios para construir una ruta de directorio determinada, puede usar la -p
opción. Esto le permite crear directorios anidados en un solo paso. Puede crear una estructura de directorios similar some/other/directories
a la siguiente:
mkdir -p some/other/directories
El comando creará some
primero el directorio, luego creará el other
directorio dentro de él y, finalmente, creará el directories
directorio dentro de esos dos directorios.
Mover y renombrar archivos y directorios con “mv”
Puedes mover un archivo a una nueva ubicación usando el mv
comando. Por ejemplo, puedes moverte file1
al test
directorio escribiendo:
mv file1 test
Puedes mover ese archivo de vuelta a tu directorio de inicio usando la referencia de punto especial para hacer referencia al directorio actual. Asegúrate de estar en tu directorio de inicio y luego ejecuta el mv
comando:
cd
mv test/file1 .
El mv
comando también se usa para renombrar archivos y directorios. En esencia, mover y renombrar consisten simplemente en ajustar la ubicación y el nombre de un elemento existente.
Entonces, para cambiar el nombre del test
directorio a testing
, puedes escribir:
mv test testing
Nota : El shell no impedirá que realices acciones destructivas accidentales. Si renombras un archivo y eliges un nombre ya existente, el archivo anterior se sobrescribirá con el archivo que estás moviendo. No hay forma de recuperar el archivo anterior si lo sobrescribes accidentalmente.
Copiar archivos y directorios con “cp”
Con este mv
comando, se podía mover o renombrar un archivo o directorio, pero no duplicarlo. El cp
comando permite crear una nueva copia de un elemento existente.
Por ejemplo, puedes copiar file3
a un nuevo archivo llamado file4
:
cp file3 file4
A diferencia de una mv
operación, después de la cual file3
ya no existiría, ahora tienes ambos file3
y file4
.
Nota : Al igual que con el mv
comando, es posible sobrescribir un archivo si no se tiene cuidado con el nombre de archivo que se utiliza como destino de la operación. Por ejemplo, si file4
ya existía en el ejemplo anterior, su contenido se reemplazaría completamente por el de file3
.
Para copiar directorios completos, debe incluir la -r
opción en el comando. Esto significa “recursivo”, ya que copia el directorio y todo su contenido.
Por ejemplo, para copiar la some
estructura del directorio a una nueva estructura llamada again
, podría escribir:
cp -r some again
A diferencia de los archivos, en los que un destino existente provocaría una sobrescritura, si el destino es un directorio existente, el archivo o directorio se copia en el destino:
cp file1 again
Esto creará una nueva copia file1
y la colocará dentro del again
directorio.
Eliminar archivos y directorios con “rm” y “rmdir”
Para eliminar un archivo, puede utilizar el rm
comando.
Nota : Tenga mucho cuidado al usar cualquier comando destructivo como rm
. No existe el comando “deshacer” en el shell, por lo que es posible destruir accidentalmente archivos importantes de forma permanente.
Para eliminar un archivo normal, simplemente páselo al rm
comando:
cd
rm file4
Del mismo modo, para eliminar directorios vacíos, puede usar el rmdir
comando. Esto solo funcionará si no hay nada en el directorio en cuestión. Por ejemplo, para eliminar el example
directorio dentro del testing
directorio:
rmdir testing/example
Para eliminar un directorio que no esté vacío, utilizará el rm
comando con la -r
opción , que elimina todo el contenido del directorio de forma recursiva, más el directorio en sí.
Por ejemplo, para eliminar el again
directorio y todo lo que contiene, puedes escribir:
rm -r again
Edición de archivos
Actualmente, sabes cómo manipular archivos como objetos, pero no has aprendido cómo editarlos y agregarles contenido.
nano
Es uno de los pocos editores de texto de línea de comandos comunes en Linux y un excelente punto de partida para principiantes. Su funcionamiento es similar al del less
programa mencionado anteriormente, ya que ocupa toda la terminal mientras se usa.
El nano
editor puede abrir archivos existentes o crear uno nuevo. Si decide crear un archivo nuevo, puede asignarle un nombre al abrir el nano
editor o más adelante, al guardar el contenido.
Puede abrir el file1
archivo para editarlo escribiendo:
cd
nano file1
La nano
aplicación abrirá el archivo (actualmente en blanco). La interfaz se verá así:
GNU nano 4.8 file1
[ New File ]
^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
En la parte superior, se muestran el nombre de la aplicación y el nombre del archivo que se está editando. En el centro, se muestra el contenido del archivo, actualmente en blanco. En la parte inferior, se muestran varias combinaciones de teclas que indican algunos controles del editor. Para cada una de ellas, el ^
carácter representa la CTRL
tecla.
Para obtener ayuda desde el editor, presione Ctrl+G
.
Cuando haya terminado de explorar la ayuda, escriba Ctrl+X
para volver a su documento.
Para este ejemplo, puedes simplemente escribir estas dos oraciones: archivo1
Hello there.
Here is some text.
Para guardar su trabajo, presione Ctrl+O
.
File Name to Write: file1
^G Get Help M-D DOS Format M-A Append M-B Backup File
^C Cancel M-M Mac Format M-P Prepend
Como puedes ver, las opciones en la parte inferior también han cambiado. Son contextuales, lo que significa que cambiarán según lo que intentes hacer. Para confirmar la escritura file1
, pulsa Enter
.
Después de guardar, si realiza más cambios e intenta salir del programa, verá un mensaje similar. Añada una nueva línea y luego intente salir nano
pulsando Ctrl+X
.
Si no ha guardado, se le pedirá que guarde las modificaciones realizadas:
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
Y Yes
N No ^C Cancel
Puede presionar Y
para guardar los cambios, N
descartarlos y salir, o Ctrl+C
cancelar la operación. Si elige guardar, se le mostrará el mismo mensaje que antes, confirmando que desea guardar los cambios en el mismo archivo. Presione Enter
para guardar el archivo y salir del editor.
Puedes ver el contenido del archivo que creaste usando el cat
programa para visualizarlo o less
para abrirlo. Después de verlo con [Nombre del archivo] less
, recuerda que debes presionar [Nombre q
del archivo] para volver a la terminal.
less file1
OutputHello there.
Here is some text.
Another line.
Otro editor que puede que veas referenciado en algunas guías es vim
or vi
. Este es un editor más avanzado y muy potente, pero requiere un aprendizaje más complejo. Si alguna vez te indican que uses vim
or vi
, no dudes en usarlo nano
. Para aprender a usar vim
, lee nuestra guía de introducción a vim .
Conclusión
A estas alturas, ya deberías saber cómo navegar por tu servidor Linux y ver los archivos y directorios disponibles. También deberías conocer los comandos de manipulación de archivos que te permitirán verlos, copiarlos, moverlos o eliminarlos. Finalmente, deberías sentirte cómodo con la edición de nano
texto.
Con estas pocas habilidades, debería poder continuar con otras guías y aprender a sacar el máximo provecho de su servidor. En nuestra próxima guía, comprenderá cómo ver y comprender los permisos de Linux .