3  Mis primeros pasos en Bash

3.1 Entorno de Bash

El signo $ es un prompt, que nos muestra que la terminal está esperando una entrada; tu terminal puede usar un carácter diferente como prompt y puede agregar información antes de él. Al teclear comandos, ya sea a partir de estas lecciones o de otras fuentes, no escribas el prompt ($), sólo los comandos que le siguen.

3.2 Estructura de un comando

Cada comando en Bash sigue una estructura general formada por tres partes principales:

comando [opciones] [argumentos]
  • comando: la acción que Bash ejecutará (por ejemplo, ls, cp, grep)

  • opciones: modificadores que cambian el comportamiento del comando; suelen comenzar con - o -- .

  • argumentos: los objetos sobre los que el comando actuará (archivos, directorios, patrones, etc.)

Por ejemplo:

ls -l /home/usuario/

  • ls → lista el contenido de un directorio

  • -l → opción que muestra la lista en formato largo

  • /home/usuario/ → argumento que indica el directorio a listar

Otro ejemplo:

grep -i "gene" genes.gtf # este es un ejemplo
  • grep → busca texto dentro de los archivos

  • -i → opción que ignora mayúsculas y minúsculas

  • "gene" → patrón a buscar

  • genes.gft → archivo donde se buscará

Note

NOTA: Algunos comandos permiten combinar varias opciones

Por ejemplo:

ls -lah

Aquí -l, -a y -h se aplican simultáneamente:

  • -l → formato largo

  • -a → muestra los archivos ocultos

  • -h → tamaños legibles para humanos (por ejemplo, “5K” en lugar de “5120”)

3.4 Conocer mi dirección / ubicación

El comando pwd (que significa “imprime directorio de trabajo” – print working directory) muestra el directorio actual, es decir, la ubicación en la que te encuentras dentro del sistema de archivos. Por defecto, los comandos que ejecutes actúan sobre este directorio, a menos que especifiques otra ruta.

pwd # /c/Users/emilio

En la computadora de Emilio, el sistema de archivos se ve así:

En la parte superior se encuentra el directorio raíz (/), que contiene todo lo demás.

Dentro de él se ubican otros directorios comunes:

  • bin: programas del sistema
  • data: archivos de datos
  • Users: directorios personales de los usuarios
  • tmp: archivos temporales
Ejercicio 1

A partir de /Users/emilio/data/, ¿Cuál de los siguientes comandos lleva al directorio de inicio, que es /Users/emilio

  1. cd .

  2. cd /

  3. cd /home/emilio

  4. cd ../..

  5. cd ~

  6. cd home

  7. cd ~/data/..

  8. cd

  9. cd ..

    1. No: . indica el directorio actual.

    2. No: / es el directorio raíz.

    3. No: El directorio home es /Users/emilio.

    4. No: sube dos niveles, quedando en /Users.

    5. Sí: ~ representa el directorio home del usuario, en este caso /Users/emilio.

    6. No: buscaría un directorio home dentro del actual (si existiera).

    7. Sí: sube un nivel desde ~/data .

    8. Sí: cd sin argumentos te lleva al home

    9. Sí: sube un nivel desde el directorio actual.

Ejemplo de rutas:

3.5 Explorar y obtener información

Comandos para mirar que hay, dónde estás y conocer detalles de los archivos o del sistema

Comandos Información Ejemplo de uso
pwd Muestra el directorio actual pwd
history Muestra el historial de comandos history
ls Observar el contenido de los archivos en un directorio ls mi_directorio
file Muestra el tipo de archivo (texto, binario, etc.) file documento.txt
whoami Muestra el usuario actual whoami
which Muestra la ubicación del ejecutable de un comando which python

3.6 Moverse en el sistema de archivos

Comandos para navegar entre directorios y rutas

Comando Descripción Ejemplo
cd Cambia de directorio cd ~/Documentos
cd .. Sube un nivel en la jerarquía de directorios cd ..
cd ~ Va al directorio personal del usuario cd ~
cd - Vuelve al directorio anterior cd -

3.7 Transferencia de archivos entre sistemas

Comando Descripción Ejemplo
ssh Conecta de forma segura a otro sistema remoto ssh usuario@servidor
scp Copia archivos entre equipos a través de SSH scp archivo.txt usuario@servidor:/home/usuario/
scp -r Copia recursivamente directorios completos scp -r datos/ usuario@servidor:/home/usuario/backup/
rsync Sincroniza directorios locales o remotas, copiando solo los archivos nuevos o modificados rsync -av datos/ usuario@servidor:/home/usuario/backup/

3.8 Información del sistema

Para conocer recursos o procesos en ejecución

Comando Descripción Ejemplo
df -h Muestra espacio en el disco df -h
top Muestra procesos activos top
uname -a Información del sistema operativo uname -a

3.9 Comandos de ayuda

Para explorar y aprender sobre otros comandos

Comando Descripción Ejemplo
man Muestra el manual de un comando man ls
-h/--help Muestra ayuda rápida ls -h/ls --help

3.10 Consultar información sobre archivos y directorios

3.10.1 Información contenida

Tras listar los elementos de un directorio usando el comando ls -l, cada linea muestra información detallada acerca de un archivo o directorio. La primera columna corresponde a los permisos, que indican que puede hacer cada tipo de usuario con ese archivo

Los permisos se representan con tres letras:

  • r : lectura (Read)

  • w : escritura (Write)

  • x : ejecución (eXecute)

Cada archivo tiene tres grupos de permisos:

  • usuario (u): el dueño del sistema

  • grupo (g): usuarios que pertenecen al mismo grupo

  • otros (o): cualquier otro usuario del sistema

En el siguiente ejemplo, el usuario cuenta con todos los permisos activos, mientras que el grupo y otros tienen solo permisos de lectura y ejecución.

En la gráfica se muestran visualmente las partes principales:

  • Permisos

  • Número de enlaces

  • Usuario propietario

  • Tamaño

  • Fecha y hora de última modificación

  • Nombre del archivo o directorio

Esta información permite entender no solo los permisos, sino también quién es el dueño del archivo, cuándo fue modificado por última vez y si se trata de un archivo o un directorio.

3.11 chmod: Cambiar permisos

La representación octal de chmod es muy sencilla

  • r = Lectura tiene el valor de 4

  • w = Escritura tiene el valor de 2

  • x = Ejecución tiene el valor de 1

Permisos Valor Significado
rwx 7 Lectura, escritura y ejecución
rw- 6 Lectura, escritura
r-x 5 Lectura y ejecución
r-- 4 Lectura
-wx 3 Escritura y ejecución
-w- 2 Escritura
--x 1 Ejecución
--- 0 Sin permisos

Por lo tanto:

Forma larga Forma Octal
chmod u=rwx,g=rwx,o=rx chmod 775
chmod u=rwx,g=rx,o= chmod 760
chmod u=rw,g=r,o=r chmod 644
chmod u=rw,g=r,o= chmod 640
chmod u=rw,go= chmod 600
chmod u=rwx,go= chmod 700

3.12 Material suplementario