Comandos básicos de Linux — ejercicios para soltar la mano en la terminal
Los comandos básicos de Linux ejercicios con solución son el cierre perfecto de este primer bloque. Ya viste la teoría y practicaste con ejercicios guiados. Ahora toca resolver por tu cuenta con Fedora abierta. Cuatro ejercicios en tres niveles , con especial atención al error de confundir > con >> que destruye ficheros sin avisar. Como siempre: intenta resolverlo, usa la pista si llevas más de 10 minutos atascado, y compara con la solución al final.
Tabla de Contenidos
Antes de empezar — los comodines en Linux
Antes de los ejercicios, un concepto que no vimos en teoría pero que usarás constantemente: los comodines (wildcards). Son caracteres especiales que representan uno o varios caracteres en nombres de ficheros:
* → cero o más caracteres cualquiera ? → exactamente un carácter cualquiera [abc] → exactamente uno de los caracteres entre corchetes [a-z] → exactamente uno del rango indicado
Ejemplos prácticos:
ls *.c # lista todos los ficheros que terminan en .c ls practica?.c # lista practica1.c, practica2.c... pero no practica10.c ls [aeiou]* # lista ficheros que empiezan por vocal ls [0-9]* # lista ficheros que empiezan por número cp *.c backup/ # copia todos los .c a backup rm *.tmp # borra todos los ficheros .tmp
Los comodines funcionan con cualquier comando que acepte nombres de ficheros: ls, cp, mv, rm, cat… Son uno de los superpoderes de la terminal de Linux.
⚠️ Cuidado con rm *.extensión — revisa siempre con ls *.extensión antes de borrar. Una vez ejecutado rm no hay vuelta atrás.
Comandos básicos de Linux ejercicios — Nivel Básico
Ejercicio 1 — Encontrar ficheros perdidos con rutas
Tienes esta estructura de carpetas en tu home (créala antes de empezar):
mkdir -p proyecto/src/utils mkdir -p proyecto/src/tests mkdir -p proyecto/docs touch proyecto/src/main.c touch proyecto/src/utils/helpers.c touch proyecto/src/utils/math.c touch proyecto/src/tests/test1.c touch proyecto/docs/readme.txt touch proyecto/docs/manual.txt
Resuelve estas tareas sin usar cd, solo con rutas desde tu home:
- Lista el contenido de
proyecto/src/utilssin moverte de home - Muestra el contenido de
readme.txtsin moverte de home - Copia
helpers.caproyecto/src/tests/sin moverte de home - Lista todos los ficheros
.cde todo el proyecto con un solo comando usando comodines - ¿Cuántos ficheros
.chay enproyecto/src/utils?
💡 Pista: Para el punto 4 usa ls proyecto/src/*/*.c, el * entre las barras representa cualquier subcarpeta. Para el punto 2 recuerda que cat acepta rutas. Para contar ficheros puedes usar ls | wc -l pero eso lo veremos más adelante — por ahora cuenta visualmente.
Ejercicio 2 — Comodines en acción
Crea estos ficheros en una carpeta llamada comodines:
mkdir comodines && cd comodines touch archivo1.txt archivo2.txt archivo3.txt touch datos1.csv datos2.csv datos3.csv touch script1.sh script2.sh touch imagen.png foto.jpg video.mp4 touch .oculto1 .oculto2
Resuelve usando comodines:
- Lista solo los ficheros
.txt - Lista solo los ficheros
.csvy.txten un solo comando - Lista los ficheros que empiezan por
datos - Lista los ficheros que tienen un número en el nombre
- Lista todos los ficheros incluyendo los ocultos que empiezan por
.o - Copia todos los ficheros de texto (
.txty.csv) a una nueva carpeta llamadatextos - ¿Qué pasa si ejecutas
ls *.pdf? ¿Da error o no muestra nada?
💡 Pista — el error de > vs >>: Si en algún momento usas echo "algo" > fichero.txt para añadir contenido, recuerda que > sobreescribe el fichero completo. Si ya tenía contenido lo pierdes para siempre. Usa >> para añadir al final sin borrar. Este error silencioso destruye trabajo sin ningún aviso.
Comandos básicos de Linux ejercicios — Ninel Intermedio
Ejercicio 3 — Gestionar permisos básicos de ficheros
Los permisos en Linux los veremos en profundidad en el siguiente artículo, pero ya puedes practicar los conceptos básicos. Crea estos ficheros:
mkdir permisos && cd permisos touch publico.txt privado.txt ejecutable.sh echo "Contenido público" > publico.txt echo "Contenido privado" > privado.txt echo "#!/bin/bash" > ejecutable.sh echo "echo Hola desde el script" >> ejecutable.sh
Tareas:
- Muestra los permisos actuales de los tres ficheros con
ls -l - Haz
privado.txtde solo lectura para todos — ni tú ni nadie puede escribir en él - Haz
ejecutable.shejecutable para el propietario - Intenta escribir en
privado.txtconecho "nuevo" > privado.txt— ¿qué pasa? - Devuelve
privado.txta sus permisos originales
💡 Pistas:
- Los permisos se cambian con
chmod. La forma más simple es con números:chmod 444 ficherohace el fichero de solo lectura para todos,chmod 644 ficherolo vuelve a los permisos normales,chmod 744 ficherolo hace ejecutable para el propietario - Cuando intentas escribir en un fichero de solo lectura verás
Permission denied— ese es el error correcto, significa que los permisos funcionan - El error de
>vs>>es especialmente peligroso aquí: siprivado.txtes de solo lectura y usas>, el error te protege. Pero si tiene permisos de escritura y usas>sin querer, sobreescribes el contenido sin avisar
Comandos básicos de Linux ejercicios — Desafío Final
Ejercicio 4 — Organiza el caos
Este ejercicio simula una situación real de IC2. Tienes una carpeta caos con ficheros mezclados sin ningún orden. Tu tarea es organizarlos correctamente.
Crea primero el caos:
mkdir caos && cd caos touch practica1.c practica2.c practica3.c touch examen_final.c examen_parcial.c touch apuntes_linux.txt apuntes_c.txt apuntes_python.txt touch foto_clase.jpg foto_lab.jpg touch borrar_esto.tmp basura.tmp cache.tmp echo "// Practica 1" > practica1.c echo "// Practica 2" > practica2.c echo "Apuntes de Linux" > apuntes_linux.txt
Tu objetivo, organízalo así:
caos/ ├── codigo/ │ ├── practicas/ ← todos los practica*.c │ └── examenes/ ← todos los examen*.c ├── apuntes/ ← todos los apuntes*.txt ├── multimedia/ ← todas las imágenes └── (los .tmp borrados)
Reglas:
- Usa comodines siempre que puedas — nada de mover fichero a fichero
- Borra los
.tmpcon confirmación - Al final muestra la estructura completa con
ls -laen cada carpeta - No uses más de 10 comandos en total
💡 Pistas:
mkdir -p codigo/practicas codigo/examenes apuntes multimediacrea toda la estructura de una vezmv practica*.c codigo/practicas/mueve todos los practica con un comodín- Para los
.tmpusarm -i *.tmp— el-ite pide confirmación uno a uno - El error de
>vs>>puede aparecer si intentas redirigir algo a un fichero que ya existe y no quieres sobreescribirlo — siempre comprueba concatantes de usar>
Soluciones Comentadas
Solución Ejercicio 1:
# 1. Listar utils sin moverse ls proyecto/src/utils # 2. Ver readme.txt sin moverse cat proyecto/docs/readme.txt # 3. Copiar helpers.c a tests cp proyecto/src/utils/helpers.c proyecto/src/tests/ # 4. Listar todos los .c con comodín ls proyecto/src/*/*.c # o más completo: ls proyecto/**/*.c # 5. Contar .c en utils ls proyecto/src/utils/*.c # → helpers.c math.c (2 ficheros)
Solución Ejercicio 2:
# 1. Solo .txt
ls *.txt
# 2. .csv y .txt en un comando
ls *.txt *.csv
# o con comodín de extensión:
ls *.{txt,csv}
# 3. Empiezan por "datos"
ls datos*
# 4. Tienen número en el nombre
ls *[0-9]*
# 5. Ocultos que empiezan por .o
ls -a .o*
# 6. Copiar texto y csv a textos/
mkdir textos
cp *.txt *.csv textos/
# 7. ls *.pdf cuando no hay ninguno
# → da error: No such file or directory
# El shell intenta expandir *.pdf y al no encontrar nada da error
Solución Ejercicio 3:
# 1. Ver permisos actuales ls -l # 2. Solo lectura para todos chmod 444 privado.txt # 3. Ejecutable para propietario chmod 744 ejecutable.sh # 4. Intentar escribir en solo lectura echo "nuevo" > privado.txt # → bash: privado.txt: Permission denied ← correcto # 5. Restaurar permisos chmod 644 privado.txt
Solución Ejercicio 4:
# Crear estructura mkdir -p codigo/practicas codigo/examenes apuntes multimedia # Mover con comodines mv practica*.c codigo/practicas/ mv examen*.c codigo/examenes/ mv apuntes*.txt apuntes/ mv *.jpg multimedia/ # Borrar .tmp con confirmación rm -i *.tmp # Verificar resultado ls -la codigo/practicas/ ls -la codigo/examenes/ ls -la apuntes/ ls -la multimedia/
Chuletario — Comandos básicos de Linux
# ============================================ # CHULETARIO — Comandos básicos Linux # Sergio Learns · sergiolearns.com # ============================================ # NAVEGACIÓN pwd # dónde estoy cd carpeta # entrar en carpeta cd .. # subir un nivel cd ~ # ir a home cd / # ir a raíz cd - # carpeta anterior # LISTAR ls # contenido básico ls -l # formato largo (permisos, tamaño, fecha) ls -a # incluye ocultos (empiezan por .) ls -la # largo + ocultos — el más usado ls -lh # tamaños legibles (KB, MB) # CREAR mkdir nombre # crear carpeta mkdir -p a/b/c # crear ruta completa aunque no exista touch fichero.c # crear fichero vacío # COPIAR Y MOVER cp origen destino # copiar fichero cp -r carpeta dest # copiar carpeta completa mv origen destino # mover o renombrar # BORRAR ⚠️ rm fichero # borrar fichero (sin papelera) rm -i fichero # borrar con confirmación — recomendado rm -r carpeta # borrar carpeta y contenido rm -ri carpeta # borrar carpeta con confirmación # VER CONTENIDO cat fichero # ver contenido completo echo "texto" # imprimir texto echo "texto" > f # escribir en fichero (SOBREESCRIBE) echo "texto" >> f # añadir al fichero (no borra) # > vs >> — el error más peligroso echo "hola" > f.txt # SOBREESCRIBE — borra lo anterior echo "hola" >> f.txt # AÑADE al final — seguro # AYUDA man comando # manual completo comando --help # ayuda rápida # COMODINES * # cero o más caracteres ? # exactamente un carácter [abc] # uno de esos caracteres [a-z] # uno del rango # Ejemplos de comodines ls *.c # todos los .c ls practica?.c # practica1.c, practica2.c... mv *.c codigo/ # mueve todos los .c rm -i *.tmp # borra .tmp con confirmación # PERMISOS BÁSICOS (chmod) chmod 644 fichero # rw-r--r-- normal chmod 444 fichero # r--r--r-- solo lectura chmod 744 fichero # rwxr--r-- ejecutable chmod 755 carpeta # rwxr-xr-x carpeta normal # ATAJOS DE TECLADO Tab # autocompletar ↑ ↓ # historial de comandos Ctrl+C # cancelar comando Ctrl+L # limpiar pantalla Ctrl+A # inicio de línea Ctrl+E # fin de línea # RUTAS /ruta/absoluta # empieza en raíz — funciona siempre ruta/relativa # desde donde estás ahora ./fichero # fichero en carpeta actual ../fichero # fichero en carpeta padre ~/fichero # fichero en tu home # ERRORES TÍPICOS # 1. rm sin -i → borras sin confirmación → sin papelera # 2. > en vez de >> → sobreescribes el fichero # 3. rm /fichero en vez de rm ./fichero → muy peligroso # 4. Linux distingue mayúsculas → Docs ≠ docs # 5. Ruta relativa incorrecta → No such file or directory

Un comentario