GNU Bash

Bash

Tutorial Bash: Comandos de navegación pwd, cd y ls

Bash y Shell: Aprende a usar los comandos pwd, cd y ls para navegar y gestionar archivos y directorios. Incluye rutas absolutas y relativas, y opciones avanzadas.

Comando pwd y las rutas absolutas y relativas

El comando pwd (print working directory) se utiliza en Bash y Shell para mostrar la ruta completa del directorio de trabajo actual. Este comando es fundamental dentro de los comandos Linux para la navegación de directorios en Bash script. Al ejecutar pwd, se obtiene una ruta absoluta, que es la ruta completa desde la raíz del sistema de archivos hasta el directorio actual.

Ejemplo de uso del comando pwd:

$ pwd
/home/usuario/proyectos

En este caso, la salida /home/usuario/proyectos es una ruta absoluta que indica la ubicación exacta del directorio de trabajo actual en el sistema de archivos.

Ruta del directorio de trabajo actual.

Rutas absolutas

Una ruta absoluta especifica la ubicación completa de un archivo o directorio desde la raíz del sistema de archivos. Comienza siempre con una barra inclinada (/). Por ejemplo:

/home/usuario/proyectos
/etc/nginx/nginx.conf
/var/log/syslog

Las rutas absolutas son útiles porque son independientes del directorio de trabajo actual. Puedes usar una ruta absoluta en cualquier contexto y siempre apuntará al mismo lugar en el sistema de archivos.

Rutas relativas

Una ruta relativa, en cambio, especifica una ubicación en relación con el directorio de trabajo actual. No comienza con una barra inclinada, y puede incluir directorios como . (el directorio actual) y .. (el directorio padre). Por ejemplo, si el directorio de trabajo actual es /home/usuario/proyectos:

# Acceder a un archivo en el directorio actual
$ cat archivo.txt

# Acceder a un subdirectorio del directorio actual
$ cd subdirectorio

# Acceder a un archivo en el directorio padre
$ cat ../otro_archivo.txt

# Volver al directorio padre
$ cd ..

Operaciones con rutas relativas.

Las rutas relativas son útiles para scripts y comandos que dependen de la estructura de directorios actual, permitiendo una navegación más flexible sin necesidad de conocer la ruta absoluta completa.

Ejemplos combinados

Para ilustrar la diferencia entre rutas absolutas y relativas, consideremos el siguiente escenario. Supongamos que estamos en el directorio /home/usuario/proyectos y queremos cambiar al directorio /var/log. Podemos hacerlo utilizando tanto una ruta absoluta como una relativa:

# Usando una ruta absoluta
$ cd /var/log

# Usando una ruta relativa (si estamos en /home/usuario/proyectos)
$ cd ../../var/log

Usando una ruta absoluta.

Usando una ruta relativa.

Ambos comandos lograrán el mismo resultado, pero el segundo depende del contexto actual del directorio de trabajo.

Entender la diferencia entre rutas absolutas y relativas es crucial para navegar eficientemente el sistema de archivos utilizando comandos Linux en Bash y Shell, y para escribir scripts de Bash script robustos y flexibles.

Comando cd y sus atajos

El comando cd (change directory) se utiliza en Bash y Shell para cambiar el directorio de trabajo actual. Este comando es esencial dentro de los comandos Linux para la navegación y gestión de archivos y directorios en Bash script. A continuación, se detallan su uso y varios atajos que pueden optimizar la navegación en la línea de comandos.

El uso básico de cd es seguido por la ruta del directorio al que se desea cambiar:

$ cd /ruta/del/directorio

Si se utiliza sin argumentos, cd cambia al directorio home del usuario actual:

$ cd

Para cambiar al directorio padre del actual, se puede utilizar ..:

$ cd ..

El uso de . mantiene el directorio actual sin cambios:

$ cd .

Atajos útiles del comando cd

  • Directorio home (~): El símbolo ~ representa el directorio home del usuario. Por lo tanto, cd ~ es equivalente a cd:
$ cd ~
  • Directorio anterior (-): El guion (-) cambia al directorio anterior en el que se encontraba el usuario:
$ cd -
  • Ruta relativa: Se pueden utilizar rutas relativas para navegar de manera más eficiente dentro de la estructura de directorios actual:
$ cd subdirectorio
$ cd ../otro_directorio
  • Combinación de rutas: Es posible combinar rutas relativas y absolutas. Por ejemplo, si el directorio de trabajo es /home/usuario/proyectos y se desea cambiar a /home/usuario/documentos, se puede hacer de la siguiente manera:
$ cd ../documentos
  • Utilización de variables de entorno: Bash permite el uso de variables de entorno para simplificar la navegación. Por ejemplo, CDPATH puede ser configurado para incluir directorios frecuentemente utilizados, permitiendo cambiar a esos directorios sin necesidad de especificar la ruta completa:
$ export CDPATH=.:/home/usuario/proyectos:/home/usuario/documentos
$ cd proyectos
  • Combinación con otros comandos: cd puede ser usado en combinación con otros comandos y scripts para realizar tareas más complejas. Por ejemplo, se puede cambiar de directorio y listar el contenido en una sola línea:
$ cd /var/log && ls

Ejemplos prácticos

Para ilustrar el uso del comando cd y sus atajos, consideremos los siguientes ejemplos prácticos:

  • Cambiar al directorio /etc y luego volver al directorio anterior:
$ cd /etc
$ cd -
  • Navegar desde /home/usuario/proyectos a /home/usuario/proyectos/subproyecto y luego volver al directorio padre:
$ cd subproyecto
$ cd ..
  • Cambiar al directorio home y luego a un subdirectorio llamado scripts dentro del home del usuario:
$ cd
$ cd scripts

Estos ejemplos muestran cómo el comando cd y sus atajos pueden ser utilizados para navegar eficazmente en el sistema de archivos en Bash y Shell, facilitando la gestión de archivos y directorios en los Bash scripts.

Comando ls y sus opciones comunes

El comando ls en Bash y Shell es fundamental para listar el contenido de directorios. Este comando es esencial dentro de los comandos Linux para la navegación y gestión de archivos y directorios en Bash script. A continuación, se describen algunas de las opciones más comunes del comando ls y su uso.

El uso básico de ls sin argumentos lista los archivos y directorios en el directorio actual:

$ ls
archivo1.txt  archivo2.txt  directorio1  directorio2

Para listar los archivos en un directorio específico, se puede proporcionar la ruta del directorio como argumento:

$ ls /ruta/del/directorio

Opciones comunes del comando ls

  • -l (lista larga): Muestra los detalles completos de los archivos y directorios en formato de lista larga, incluyendo permisos, número de enlaces, propietario, grupo, tamaño y fecha de modificación.
$ ls -l
total 8
-rw-r--r-- 1 usuario grupo  0 ene  1 00:00 archivo1.txt
-rw-r--r-- 1 usuario grupo  0 ene  1 00:00 archivo2.txt
drwxr-xr-x 2 usuario grupo 4096 ene  1 00:00 directorio1
drwxr-xr-x 2 usuario grupo 4096 ene  1 00:00 directorio2
  • -a (todos los archivos): Lista todos los archivos, incluyendo los archivos ocultos que comienzan con un punto (.).
$ ls -a
.  ..  .archivo_oculto  archivo1.txt  archivo2.txt  directorio1  directorio2
  • -h (tamaños legibles por humanos): Muestra los tamaños de los archivos en un formato legible por humanos (KB, MB, GB) cuando se usa con -l.
$ ls -lh
total 8.0K
-rw-r--r-- 1 usuario grupo    0B ene  1 00:00 archivo1.txt
-rw-r--r-- 1 usuario grupo    0B ene  1 00:00 archivo2.txt
drwxr-xr-x 2 usuario grupo 4.0K ene  1 00:00 directorio1
drwxr-xr-x 2 usuario grupo 4.0K ene  1 00:00 directorio2
  • -R (recursivo): Lista todos los archivos y directorios de manera recursiva, mostrando también el contenido de los subdirectorios.
$ ls -R
.:
archivo1.txt  archivo2.txt  directorio1  directorio2

./directorio1:
archivo3.txt

./directorio2:
archivo4.txt
  • -t (ordenar por tiempo): Ordena los archivos por la fecha y hora de modificación, mostrando primero los más recientes.
$ ls -lt
total 8
-rw-r--r-- 1 usuario grupo  0 ene  2 00:00 archivo2.txt
-rw-r--r-- 1 usuario grupo  0 ene  1 00:00 archivo1.txt
drwxr-xr-x 2 usuario grupo 4096 ene  1 00:00 directorio1
drwxr-xr-x 2 usuario grupo 4096 ene  1 00:00 directorio2
  • -r (invertir el orden): Invierte el orden de la lista. Puede combinarse con otras opciones como -t para mostrar los archivos más antiguos primero.
$ ls -ltr
total 8
drwxr-xr-x 2 usuario grupo 4096 ene  1 00:00 directorio1
drwxr-xr-x 2 usuario grupo 4096 ene  1 00:00 directorio2
-rw-r--r-- 1 usuario grupo  0 ene  1 00:00 archivo1.txt
-rw-r--r-- 1 usuario grupo  0 ene  2 00:00 archivo2.txt
  • -S (ordenar por tamaño): Ordena los archivos por tamaño, mostrando primero los más grandes.
$ ls -lS
total 8
drwxr-xr-x 2 usuario grupo 4096 ene  1 00:00 directorio1
drwxr-xr-x 2 usuario grupo 4096 ene  1 00:00 directorio2
-rw-r--r-- 1 usuario grupo    0 ene  1 00:00 archivo1.txt
-rw-r--r-- 1 usuario grupo    0 ene  1 00:00 archivo2.txt

Combinación de opciones

Las opciones del comando ls pueden combinarse para obtener listados más detallados y útiles. Por ejemplo, para listar todos los archivos (incluyendo los ocultos) en formato de lista larga y con tamaños legibles por humanos, se puede usar:

$ ls -alh
total 16K
drwxr-xr-x 3 usuario grupo 4.0K ene  1 00:00 .
drwxr-xr-x 4 usuario grupo 4.0K ene  1 00:00 ..
-rw-r--r-- 1 usuario grupo    0 ene  1 00:00 .archivo_oculto
-rw-r--r-- 1 usuario grupo    0 ene  1 00:00 archivo1.txt
-rw-r--r-- 1 usuario grupo    0 ene  1 00:00 archivo2.txt
drwxr-xr-x 2 usuario grupo 4.0K ene  1 00:00 directorio1
drwxr-xr-x 2 usuario grupo 4.0K ene  1 00:00 directorio2

La comprensión y el uso eficiente del comando ls y sus opciones comunes son cruciales para la navegación y gestión de archivos y directorios en Bash y Shell, facilitando la administración de sistemas y la creación de scripts en Bash script.

Comando --help para ver opciones de los comandos

Muchos comandos en Bash y Shell aceptan la opción --help para obtener información detallada sobre sus opciones y uso. Esta práctica es común en comandos de GNU y otros programas, y es muy útil en la creación y depuración de Bash scripts. La estructura general para utilizar --help es la siguiente:

$ <comando> --help

Cuando se ejecuta esta instrucción, se despliega una lista de todas las opciones disponibles para el comando especificado, junto con una breve descripción de cada una. Esto es particularmente útil para entender rápidamente cómo funciona un comando y cuáles son sus parámetros más relevantes.

Ejemplos prácticos

  • Visualizar la ayuda del comando ls:
$ ls --help

El resultado de este comando muestra una lista completa de las opciones que ls puede aceptar, como -l para la lista larga, -a para mostrar archivos ocultos, entre otros.

  • Ayuda para el comando pwd:
$ pwd --help

Este comando muestra las opciones disponibles para pwd, como -L para seguir enlaces simbólicos y -P para utilizar la ruta física.

  • Ayuda para el comando cd:

Para los comandos internos del Shell (built-ins), como cd, echo, exit, entre otros, se utiliza el comando interno help para obtener información sobre su uso:

$ help cd

Este comando muestra información detallada sobre cómo utilizar cd, incluyendo sus opciones y sintaxis.

  • Ayuda para otros comandos internos:
$ help alias
$ help exit
$ help read

Detalles adicionales

El uso de --help es particularmente valioso para comandos más complejos o menos conocidos. Por ejemplo, si se desea utilizar grep con varias opciones avanzadas, el comando grep --help proporciona una guía completa sobre cómo combinar diferentes opciones para realizar búsquedas más precisas.

Integración en scripts de Bash

En los Bash scripts, el uso de --help puede ser útil durante la fase de desarrollo y depuración para verificar rápidamente las opciones de los comandos que se están utilizando. Por ejemplo, un script que procesa archivos de texto puede incluir una línea comentada con grep --help para recordar todas las opciones disponibles:

#!/bin/bash
# Script de ejemplo para buscar patrones en archivos de texto

# grep --help   # Línea comentada para referencia rápida

# Buscar el patrón "error" en todos los archivos .log
grep "error" *.log

Consideraciones de uso

Es importante tener en cuenta que no todos los comandos y utilidades en Bash y Shell proporcionan información mediante --help. En algunos casos, se puede utilizar el comando man (manual) para obtener documentación más detallada:

$ man <comando>

Por ejemplo:

$ man ls

Este comando abre la página del manual para ls, proporcionando una descripción exhaustiva de sus opciones y funcionamiento.

El comando --help es una herramienta fundamental para cualquier ingeniero de software que trabaje con Bash y Shell, facilitando la comprensión y el uso eficiente de los comandos Linux en la creación y mantenimiento de Bash scripts.

Certifícate en Bash con CertiDevs PLUS

Ejercicios de esta lección Comandos de navegación pwd, cd y ls

Evalúa tus conocimientos de esta lección Comandos de navegación pwd, cd y ls con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Todas las lecciones de Bash

Accede a todas las lecciones de Bash y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Principales Distribuciones De Linux

GNU Bash

Introducción Y Entorno

Instalar Ubuntu En Windows Con Wsl

GNU Bash

Introducción Y Entorno

Introducción A Shell Y Bash

GNU Bash

Introducción Y Entorno

Comandos De Navegación Pwd, Cd Y Ls

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Manipulación De Archivos Y Directorios

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Comprimir Y Descomprimir Archivos En Bash Con Tar Y Gzip

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Manipulación De Permisos De Archivos Y Directorios Con Chmod, Chown Y Chgrp

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Enlaces Simbólicos Y Duros

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Redirección Y Tuberías

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Gestión De Procesos Con Ps, Htop Y Pgrep

GNU Bash

Gestión De Procesos Y Servicios

Gestión De Servicios Con Systemd

GNU Bash

Gestión De Procesos Y Servicios

Configuración De Bash

GNU Bash

Interacción Con El Sistema

Redes Y Comunicación Con Ifconfig, Ip Y Netstat

GNU Bash

Interacción Con El Sistema

Transferencia De Archivos Y Comunicación Remota Con Ssh

GNU Bash

Interacción Con El Sistema

Gestión De Paquetes Y Dependencias Y Actualización Del Sistema

GNU Bash

Interacción Con El Sistema

Variables Y Tipos De Datos

GNU Bash

Sintaxis Y Creación De Scripts En Bash

Operadores

GNU Bash

Sintaxis Y Creación De Scripts En Bash

Sintaxis De Control De Flujo

GNU Bash

Sintaxis Y Creación De Scripts En Bash

Expresiones Regulares Y Manipulación De Texto

GNU Bash

Sintaxis Y Creación De Scripts En Bash

Definición Y Uso De Funciones

GNU Bash

Sintaxis Y Creación De Scripts En Bash

En esta lección

Objetivos de aprendizaje de esta lección

  • Comprender el uso del comando pwd para mostrar la ruta del directorio actual.
  • Diferenciar entre rutas absolutas y relativas en Bash.
  • Utilizar el comando cd para cambiar de directorio y aplicar sus atajos.
  • Realizar listados detallados usando diferentes opciones del comando ls.
  • Utilizar el comando --help para obtener información sobre otros comandos.