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 ejemplogrep→ busca texto dentro de los archivos-i→ opción que ignora mayúsculas y minúsculas"gene"→ patrón a buscargenes.gft→ archivo donde se buscará
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/emilioEn 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 sistemadata: archivos de datosUsers: directorios personales de los usuariostmp: archivos temporales
A partir de /Users/emilio/data/, ¿Cuál de los siguientes comandos lleva al directorio de inicio, que es /Users/emilio
cd .cd /cd /home/emiliocd ../..cd ~cd homecd ~/data/..cdcd ..
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 4w= Escritura tiene el valor de 2x= 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
- Software Carpentry (2023). La terminal de Unix
- RSG Ecuador (2020). GNU/Linux para bioinfomatica
- Harris, R. (2016). Introduction to the Unix Shell for Transcriptomics Tutorial.
