Comandos básicos de Linux
Esta sección presenta los comandos mínimos para trabajar en BEAGLE desde la terminal. Está pensada como una guía práctica para personas que empiezan a usar Linux en un servidor de cómputo: moverse entre carpetas, organizar archivos, revisar resultados, consultar espacio en disco y trabajar con scripts sencillos.
No es necesario memorizar todos los comandos. Lo más importante es entender qué hace cada uno, revisar siempre en qué carpeta estás trabajando y evitar comandos destructivos sin verificar antes.
Esta página es útil después de ingresar al servidor por SSH y antes de trabajar con Apptainer o enviar análisis mediante Slurm.
Para análisis largos, pesados o que usen muchos recursos, no ejecutes el programa directamente en la terminal de acceso. Prepara un script y envíalo a la cola con Slurm.
La terminal y la ruta de trabajo
Cuando entras al servidor por SSH, normalmente llegas a tu carpeta personal. En Linux, las carpetas se organizan como rutas. Por ejemplo:
/home/usuario/proyecto/data
En esta ruta:
/home/usuario/es la carpeta personal del usuario.proyecto/es una carpeta de trabajo.data/puede contener archivos de entrada.
Antes de copiar, mover o borrar archivos, revisa siempre tu ubicación actual con pwd y el contenido de la carpeta con ls.
Saber dónde estás
Para mostrar la carpeta actual:
pwdEjemplo de salida:
/home/usuario
El comando pwd significa print working directory y sirve para confirmar desde dónde estás ejecutando los comandos.
Listar archivos y carpetas
Para ver el contenido de la carpeta actual:
lsPara ver detalles como permisos, propietario, tamaño y fecha de modificación:
ls -lhPara incluir archivos ocultos:
ls -lahEn Linux, los archivos o carpetas que comienzan con punto (.) son ocultos. Algunos ejemplos comunes son:
.bashrc
.ssh/
.config/
Cambiar de carpeta
Para entrar a una carpeta:
cd carpeta/Para entrar usando una ruta completa:
cd /home/usuario/proyectoPara regresar a tu carpeta personal:
cd ~Para subir un nivel:
cd ..Para regresar a la carpeta anterior:
cd -Usa la tecla Tab para autocompletar nombres de archivos y carpetas. Esto ayuda a evitar errores al escribir rutas largas.
Crear una estructura de proyecto
Una forma ordenada de iniciar un análisis es crear una carpeta de proyecto con subcarpetas separadas para datos, scripts, resultados y logs.
mkdir -p mi_proyecto/{data,scripts,results,logs,metadata}Después entra al proyecto:
cd mi_proyectoLa estructura creada será:
mi_proyecto/
├── data/
├── scripts/
├── results/
├── logs/
└── metadata/
Uso sugerido:
| Carpeta | Uso recomendado |
|---|---|
data/ |
Archivos de entrada, como FASTA, FASTQ, VCF, CSV o XML |
scripts/ |
Scripts de Bash, Slurm, R o Python |
results/ |
Resultados finales o intermedios importantes |
logs/ |
Archivos de salida y error de Slurm o programas |
metadata/ |
Tablas de muestras, notas, parámetros o archivos de diseño |
Separar datos, scripts, logs y resultados facilita revisar errores, repetir análisis y compartir el proyecto con otras personas.
Crear archivos vacíos
Para crear un archivo vacío:
touch notas.txtEsto también puede usarse para comprobar que tienes permiso de escritura en una carpeta.
Copiar archivos y carpetas
Para copiar un archivo:
cp archivo_original.txt copia.txtPara copiar un archivo a otra carpeta:
cp archivo.txt results/Para copiar una carpeta completa:
cp -r carpeta_original/ carpeta_copia/Antes de modificar un archivo importante, puedes hacer una copia:
cp archivo.tsv archivo.tsv.bakMover o renombrar archivos
El comando mv sirve tanto para mover como para renombrar.
Renombrar un archivo:
mv viejo_nombre.txt nuevo_nombre.txtMover un archivo a otra carpeta:
mv archivo.txt results/Mover una carpeta completa:
mv carpeta/ /otra/ruta/Borrar archivos y carpetas
Para borrar un archivo:
rm archivo.txtPara borrar una carpeta completa:
rm -r carpeta/Cuidado con rm
El comando rm borra directamente. En la terminal no hay papelera de reciclaje.
Antes de borrar, revisa con:
ls -lhSi vas a borrar una carpeta, revisa primero su contenido:
ls -lah carpeta/Ver archivos de texto
Ver un archivo completo
Para archivos pequeños:
cat archivo.txtNo uses cat para archivos muy grandes, como FASTQ, BAM, VCF grandes o logs extensos.
Ver las primeras líneas
head archivo.txtPara mostrar un número específico de líneas:
head -n 20 archivo.txtVer las últimas líneas
tail archivo.txtPara ver las últimas 50 líneas:
tail -n 50 archivo.txtSeguir un archivo en tiempo real
Esto es útil para revisar archivos .log, .out o .err mientras un proceso escribe resultados:
tail -f logs/mi_trabajo.outPara salir:
Ctrl + c
Leer archivos largos página por página
less archivo.txtDentro de less:
| Acción | Tecla |
|---|---|
| Avanzar | Espacio |
| Retroceder | b |
| Buscar texto | /texto |
| Salir | q |
Contar líneas, palabras y caracteres
Para contar líneas, palabras y caracteres:
wc archivo.txtPara contar solo líneas:
wc -l archivo.txtEjemplo útil para contar secuencias en un FASTA:
grep -c "^>" secuencias.fastaBuscar texto dentro de archivos
Para buscar una palabra o patrón dentro de un archivo:
grep "patron" archivo.txtEjemplo:
grep "error" logs/analisis.errPara ignorar mayúsculas y minúsculas:
grep -i "error" logs/analisis.errPara mostrar el número de línea donde aparece el texto:
grep -n "error" logs/analisis.errPara buscar dentro de varios archivos:
grep -n "error" logs/*Buscar archivos y carpetas
Para buscar archivos por nombre desde la carpeta actual:
find . -name "*.fasta"Buscar archivos .log dentro de una carpeta:
find logs/ -name "*.log"Buscar carpetas llamadas results:
find . -type d -name "results"Buscar archivos mayores a 1 GB:
find . -type f -size +1GRevisar espacio en disco
Para ver el espacio disponible en los discos o particiones:
df -hLa opción -h muestra tamaños en formato legible, por ejemplo G o T.
Para revisar cuánto ocupa una carpeta:
du -sh carpeta/Para revisar el tamaño de todo lo que está en la carpeta actual:
du -sh *Para ordenar por tamaño:
du -sh * | sort -hLos archivos FASTQ, BAM, SAM, VCF, ensamblajes, alineamientos y resultados intermedios pueden ocupar mucho espacio. Revisa tu uso de disco antes y después de análisis grandes.
Revisar CPU y memoria
Para ver información general del procesador:
lscpuPara revisar memoria RAM disponible:
free -hPara ver procesos en tiempo real:
topPara salir de top:
q
Si está disponible, htop muestra una vista más cómoda:
htopAunque lscpu o free -h muestren muchos recursos disponibles en el nodo, tus análisis deben usar los recursos que solicitaste en Slurm. No asumas que todo el servidor está disponible para una sola persona.
Ver procesos de tu usuario
Para listar procesos asociados a tu usuario:
ps -u $USERUna salida más útil ordenada por uso de CPU:
ps -u $USER -o pid,ppid,cmd,%cpu,%mem,etime --sort=-%cpu | head -n 20Para buscar un proceso por nombre:
pgrep -a nombre_programaEjemplo:
pgrep -a mafftDetener procesos
Primero identifica el proceso y su PID:
ps -u $USERDespués intenta detenerlo de forma normal:
kill PIDEjemplo:
kill 12345Si no se detiene, como último recurso:
kill -9 PIDUsa kill -9 solo si es necesario
kill -9 fuerza el cierre inmediato del proceso. Puede dejar archivos incompletos, resultados corruptos o carpetas temporales sin limpiar.
Editar archivos con nano
nano es un editor sencillo para crear o modificar archivos desde la terminal.
Para abrir un archivo:
nano archivo.txtPara crear un script:
nano scripts/mi_script.shAtajos básicos:
| Acción | Atajo |
|---|---|
| Guardar | Ctrl + O, luego Enter |
| Salir | Ctrl + X |
| Buscar texto | Ctrl + W |
| Cortar línea | Ctrl + K |
| Pegar línea | Ctrl + U |
También existen editores como vim o emacs, pero nano suele ser más sencillo para comenzar.
Crear y ejecutar scripts sencillos
Un script de Bash permite guardar comandos en un archivo para ejecutarlos después.
Crea un script:
nano scripts/revisar_archivos.shContenido de ejemplo:
#!/bin/bash
pwd
ls -lh
du -sh *Guarda el archivo y dale permiso de ejecución:
chmod +x scripts/revisar_archivos.shEjecútalo:
./scripts/revisar_archivos.shUn script de Bash no es lo mismo que un script de Slurm, pero la base es similar. En la sección de Slurm se explica cómo agregar directivas #SBATCH para enviar trabajos a la cola.
Permisos de archivos
Para ver permisos:
ls -lEjemplo de salida:
-rw-r--r-- 1 usuario grupo 1200 Jun 8 archivo.txt
Los permisos se leen así:
rw- r-- r--
│ │ │
│ │ └── otros usuarios
│ └────── grupo
└────────── dueño
Significado:
| Letra | Significado |
|---|---|
r |
lectura |
w |
escritura |
x |
ejecución |
Para dar permiso de ejecución a un script:
chmod +x script.shPermisos comunes:
| Permiso | Uso común |
|---|---|
644 |
Archivos de texto o datos |
755 |
Carpetas o scripts ejecutables |
Ejemplos:
chmod 644 archivo.txt
chmod 755 script.shComprimir y descomprimir archivos
Crear un .tar.gz
Para empaquetar y comprimir una carpeta:
tar -czvf proyecto.tar.gz proyecto/Extraer un .tar.gz
tar -xzvf proyecto.tar.gzComprimir con gzip
gzip archivo.txtEsto genera:
archivo.txt.gz
Descomprimir con gunzip
gunzip archivo.txt.gzComprimir más rápido con pigz
Si pigz está disponible, puede comprimir usando varios hilos:
pigz archivo_grande.fastqPara descomprimir:
unpigz archivo_grande.fastq.gzMuchas herramientas bioinformáticas pueden leer archivos .fastq.gz directamente. Antes de descomprimir archivos grandes, revisa si el programa acepta archivos comprimidos.
Historial de comandos
Para ver comandos usados anteriormente:
historyTambién puedes recuperar comandos previos usando las flechas del teclado.
Para buscar en el historial:
Ctrl + r
Después escribe una parte del comando que quieres encontrar.
Trabajo interactivo y trabajos largos
La terminal de acceso debe usarse principalmente para tareas ligeras: crear carpetas, revisar archivos, editar scripts, preparar datos pequeños y consultar resultados.
Los análisis largos, pesados o que requieran varios CPU, mucha RAM o GPU deben enviarse mediante Slurm. Esto permite que el clúster administre los recursos de forma ordenada y evita que una sesión SSH dependa de que tu computadora permanezca conectada.
Ejemplos de tareas adecuadas para la terminal:
pwd
ls -lh
head archivo.txt
grep -n "error" logs/analisis.err
nano scripts/mi_trabajo.sbatchEjemplos de tareas que deben enviarse por Slurm:
sbatch scripts/mi_trabajo.sbatch
squeue -u $USER
sacct -j JOBIDAunque un comando pueda ejecutarse directamente en la terminal, en BEAGLE los análisis computacionales deben prepararse como scripts y enviarse a la cola con Slurm.
Nombres recomendados para archivos
Evita espacios, acentos y caracteres especiales en nombres de archivos o carpetas. Esto reduce errores al trabajar en la terminal y en scripts.
Recomendado:
muestras_2026.tsv
alineamiento_ITS.fasta
beast2_gtr_cpu.sbatch
Evita:
mis muestras final.tsv
alineación versión buena.fasta
script final bueno.sh
Buenas prácticas:
- Usa nombres cortos pero descriptivos.
- Usa guion bajo
_en lugar de espacios. - Incluye fechas o versiones cuando sea necesario.
- Mantén extensiones claras:
.fasta,.fastq.gz,.tsv,.csv,.log,.err,.sbatch.
Comandos que debes usar con cuidado
| Comando | Riesgo |
|---|---|
rm |
Borra archivos sin papelera |
rm -r |
Borra carpetas completas |
rm -rf |
Fuerza borrado recursivo sin preguntar |
mv |
Puede sobrescribir archivos si el destino ya existe |
chmod -R |
Cambia permisos de muchas carpetas y archivos |
kill -9 |
Fuerza procesos y puede dejar resultados incompletos |
Evita copiar comandos destructivos sin entenderlos
Nunca ejecutes comandos como rm -rf * si no tienes absoluta certeza de la carpeta donde estás y de los archivos que serán eliminados.
Buenas prácticas en BEAGLE
- Trabaja dentro de tu carpeta personal o en las rutas asignadas por la administración del clúster.
- Mantén cada proyecto en una carpeta separada.
- Guarda scripts dentro de
scripts/y salidas de programas dentro delogs/oresults/. - No instales software con
sudo. - Usa Apptainer para ejecutar software especializado.
- Usa Slurm para análisis largos, pesados o que requieran CPU, RAM o GPU.
- Revisa el espacio disponible antes de generar archivos grandes.
- No borres archivos de otras personas usuarias.
- No compartas tu cuenta ni tus llaves SSH.
Resumen de comandos
| Tarea | Comando |
|---|---|
| Ver ubicación actual | pwd |
| Listar archivos | ls -lh |
| Listar archivos ocultos | ls -lah |
| Cambiar de carpeta | cd carpeta/ |
| Ir a carpeta personal | cd ~ |
| Subir un nivel | cd .. |
| Crear carpeta | mkdir carpeta |
| Crear estructura de proyecto | mkdir -p proyecto/{data,scripts,results,logs,metadata} |
| Crear archivo vacío | touch archivo.txt |
| Copiar archivo | cp origen destino |
| Copiar carpeta | cp -r carpetaA/ carpetaB/ |
| Mover o renombrar | mv origen destino |
| Borrar archivo | rm archivo.txt |
| Ver primeras líneas | head archivo.txt |
| Ver últimas líneas | tail archivo.txt |
| Seguir log en tiempo real | tail -f archivo.log |
| Leer archivo largo | less archivo.txt |
| Contar líneas | wc -l archivo.txt |
| Buscar texto | grep "patron" archivo.txt |
| Buscar archivos | find . -name "*.fasta" |
| Ver espacio libre | df -h |
| Ver tamaño de carpeta | du -sh carpeta/ |
| Ver CPU | lscpu |
| Ver RAM | free -h |
| Ver procesos | top o htop |
| Ver tus procesos | ps -u $USER |
| Buscar proceso | pgrep -a nombre |
| Detener proceso | kill PID |
| Editar archivo | nano archivo.txt |
| Dar permiso de ejecución | chmod +x script.sh |
Crear .tar.gz |
tar -czvf archivo.tar.gz carpeta/ |
Extraer .tar.gz |
tar -xzvf archivo.tar.gz |
| Ver historial | history |