Navegación y gestión de archivos en Linux

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.

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 pwdcomando. 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 cdpara moverte a este directorio. Después, usarás pwdpara 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 lscomando:

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 -lindicador (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 -abandera. Como no hay archivos ocultos reales en el /usr/sharedirectorio, volvamos a tu directorio de inicio y probemos ese comando. Puedes volver al directorio de inicio escribiendo cdsin 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 lsen la sección anterior. Analicemos el comando con más detalle.

Comience volviendo al /usr/sharedirectorio:

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 localedirectorio desde /usr/sharesu 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_MESSAGESdirectorio dentro del endirectorio 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_MESSAGESdirectorio. Para subir un nivel, puede escribir:

cd ..

Esto nos lleva al /usr/share/locale/endirectorio.

Siempre puedes regresar a tu directorio de inicio ejecutando cdsin 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 lscomando 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 lesscomando. 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, lessesta aplicación seguirá ejecutándose y ocupando la pantalla hasta que salga.

Abrirá el /etc/servicesarchivo, 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-fatajo de teclado.

Para desplazarse hacia arriba, puede utilizar el botón “Re Pág” o el CTRL-batajo 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 Nen su lugar:

N

Para salir del lessprograma, puede escribir qpara salir:

q

Hay muchas otras maneras de ver un archivo que resultan útiles en ciertas circunstancias. El catcomando muestra el contenido de un archivo y regresa al prompt inmediatamente. headPor defecto, el comando muestra las primeras 10 líneas de un archivo. Asimismo, tailmuestra 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 touchcomando. 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” file1escribiendo:

cd
touch file1

Ahora, si ves los archivos en el directorio, podrás ver el archivo recién creado:

ls

Outputfile1

Si usa el touchcomando 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 touchcomando, el mkdircomando 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 testdirectorio llamado exampleescribiendo:

mkdir test/example

Para que el comando anterior funcione, el testdirectorio ya debe existir. Para indicar mkdirque debe crear los directorios necesarios para construir una ruta de directorio determinada, puede usar la -popción. Esto le permite crear directorios anidados en un solo paso. Puede crear una estructura de directorios similar some/other/directoriesa la siguiente:

mkdir -p some/other/directories

El comando creará someprimero el directorio, luego creará el otherdirectorio dentro de él y, finalmente, creará el directoriesdirectorio dentro de esos dos directorios.

Mover y renombrar archivos y directorios con “mv”

Puedes mover un archivo a una nueva ubicación usando el mvcomando. Por ejemplo, puedes moverte file1al testdirectorio 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 mvcomando:

cd
mv test/file1 .

El mvcomando 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 testdirectorio 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 mvcomando, se podía mover o renombrar un archivo o directorio, pero no duplicarlo. El cpcomando permite crear una nueva copia de un elemento existente.

Por ejemplo, puedes copiar file3a un nuevo archivo llamado file4:

cp file3 file4

A diferencia de una mvoperación, después de la cual file3ya no existiría, ahora tienes ambos file3y file4.

Nota : Al igual que con el mvcomando, 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 file4ya existía en el ejemplo anterior, su contenido se reemplazaría completamente por el de file3.

Para copiar directorios completos, debe incluir la -ropción en el comando. Esto significa “recursivo”, ya que copia el directorio y todo su contenido.

Por ejemplo, para copiar la someestructura 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 file1y la colocará dentro del againdirectorio.

Eliminar archivos y directorios con “rm” y “rmdir”

Para eliminar un archivo, puede utilizar el rmcomando.

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 rmcomando:

cd
rm file4

Del mismo modo, para eliminar directorios vacíos, puede usar el rmdircomando. Esto solo funcionará si no hay nada en el directorio en cuestión. Por ejemplo, para eliminar el exampledirectorio dentro del testingdirectorio:

rmdir testing/example

Para eliminar un directorio que no esté vacío, utilizará el rmcomando con la -ropción , que elimina todo el contenido del directorio de forma recursiva, más el directorio en sí.

Por ejemplo, para eliminar el againdirectorio 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.

nanoEs 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 lessprograma mencionado anteriormente, ya que ocupa toda la terminal mientras se usa.

El nanoeditor puede abrir archivos existentes o crear uno nuevo. Si decide crear un archivo nuevo, puede asignarle un nombre al abrir el nanoeditor o más adelante, al guardar el contenido.

Puede abrir el file1archivo para editarlo escribiendo:

cd
nano file1

La nanoaplicació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 CTRLtecla.

Para obtener ayuda desde el editor, presione Ctrl+G.

Cuando haya terminado de explorar la ayuda, escriba Ctrl+Xpara 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 nanopulsando 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 Ypara guardar los cambios, Ndescartarlos y salir, o Ctrl+Ccancelar 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 Enterpara guardar el archivo y salir del editor.

Puedes ver el contenido del archivo que creaste usando el catprograma para visualizarlo o lesspara abrirlo. Después de verlo con [Nombre del archivo] less, recuerda que debes presionar [Nombre qdel 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 vimor 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 vimor 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 nanotexto.

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 .

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post