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.

Note¿Cuándo usar esta sección?

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.
TipBuen hábito

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:

pwd

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

ls

Para ver detalles como permisos, propietario, tamaño y fecha de modificación:

ls -lh

Para incluir archivos ocultos:

ls -lah

En 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/proyecto

Para regresar a tu carpeta personal:

cd ~

Para subir un nivel:

cd ..

Para regresar a la carpeta anterior:

cd -
TipAutocompletado

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_proyecto

La 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
ImportantNo mezcles todo en una sola carpeta

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.txt

Esto 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.txt

Para copiar un archivo a otra carpeta:

cp archivo.txt results/

Para copiar una carpeta completa:

cp -r carpeta_original/ carpeta_copia/
NoteCopias de seguridad rápidas

Antes de modificar un archivo importante, puedes hacer una copia:

cp archivo.tsv archivo.tsv.bak

Mover o renombrar archivos

El comando mv sirve tanto para mover como para renombrar.

Renombrar un archivo:

mv viejo_nombre.txt nuevo_nombre.txt

Mover 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.txt

Para 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 -lh

Si 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.txt

No uses cat para archivos muy grandes, como FASTQ, BAM, VCF grandes o logs extensos.

Ver las primeras líneas

head archivo.txt

Para mostrar un número específico de líneas:

head -n 20 archivo.txt

Ver las últimas líneas

tail archivo.txt

Para ver las últimas 50 líneas:

tail -n 50 archivo.txt

Seguir 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.out

Para salir:

Ctrl + c

Leer archivos largos página por página

less archivo.txt

Dentro 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.txt

Para contar solo líneas:

wc -l archivo.txt

Ejemplo útil para contar secuencias en un FASTA:

grep -c "^>" secuencias.fasta

Buscar texto dentro de archivos

Para buscar una palabra o patrón dentro de un archivo:

grep "patron" archivo.txt

Ejemplo:

grep "error" logs/analisis.err

Para ignorar mayúsculas y minúsculas:

grep -i "error" logs/analisis.err

Para mostrar el número de línea donde aparece el texto:

grep -n "error" logs/analisis.err

Para 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 +1G

Revisar espacio en disco

Para ver el espacio disponible en los discos o particiones:

df -h

La 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 -h
TipArchivos grandes en bioinformática

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

lscpu

Para revisar memoria RAM disponible:

free -h

Para ver procesos en tiempo real:

top

Para salir de top:

q

Si está disponible, htop muestra una vista más cómoda:

htop
WarningRecursos en un clúster con Slurm

Aunque 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 $USER

Una salida más útil ordenada por uso de CPU:

ps -u $USER -o pid,ppid,cmd,%cpu,%mem,etime --sort=-%cpu | head -n 20

Para buscar un proceso por nombre:

pgrep -a nombre_programa

Ejemplo:

pgrep -a mafft

Detener procesos

Primero identifica el proceso y su PID:

ps -u $USER

Después intenta detenerlo de forma normal:

kill PID

Ejemplo:

kill 12345

Si no se detiene, como último recurso:

kill -9 PID

Usa 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.txt

Para crear un script:

nano scripts/mi_script.sh

Atajos 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
NoteOtros editores

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.sh

Contenido de ejemplo:

#!/bin/bash

pwd
ls -lh
du -sh *

Guarda el archivo y dale permiso de ejecución:

chmod +x scripts/revisar_archivos.sh

Ejecútalo:

./scripts/revisar_archivos.sh
ImportantScripts y Slurm

Un 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 -l

Ejemplo 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.sh

Permisos comunes:

Permiso Uso común
644 Archivos de texto o datos
755 Carpetas o scripts ejecutables

Ejemplos:

chmod 644 archivo.txt
chmod 755 script.sh

Comprimir 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.gz

Comprimir con gzip

gzip archivo.txt

Esto genera:

archivo.txt.gz

Descomprimir con gunzip

gunzip archivo.txt.gz

Comprimir más rápido con pigz

Si pigz está disponible, puede comprimir usando varios hilos:

pigz archivo_grande.fastq

Para descomprimir:

unpigz archivo_grande.fastq.gz
TipNo siempre hay que descomprimir

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

history

Tambié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.sbatch

Ejemplos de tareas que deben enviarse por Slurm:

sbatch scripts/mi_trabajo.sbatch
squeue -u $USER
sacct -j JOBID
ImportantNo uses la terminal de acceso para análisis pesados

Aunque 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 de logs/ o results/.
  • 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