comandos básicos de Linux ejercicios resueltos chuletario terminal

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.

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:

  1. Lista el contenido de proyecto/src/utils sin moverte de home
  2. Muestra el contenido de readme.txt sin moverte de home
  3. Copia helpers.c a proyecto/src/tests/ sin moverte de home
  4. Lista todos los ficheros .c de todo el proyecto con un solo comando usando comodines
  5. ¿Cuántos ficheros .c hay en proyecto/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:

  1. Lista solo los ficheros .txt
  2. Lista solo los ficheros .csv y .txt en un solo comando
  3. Lista los ficheros que empiezan por datos
  4. Lista los ficheros que tienen un número en el nombre
  5. Lista todos los ficheros incluyendo los ocultos que empiezan por .o
  6. Copia todos los ficheros de texto (.txt y .csv) a una nueva carpeta llamada textos
  7. ¿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:

  1. Muestra los permisos actuales de los tres ficheros con ls -l
  2. Haz privado.txt de solo lectura para todos — ni tú ni nadie puede escribir en él
  3. Haz ejecutable.sh ejecutable para el propietario
  4. Intenta escribir en privado.txt con echo "nuevo" > privado.txt — ¿qué pasa?
  5. Devuelve privado.txt a sus permisos originales

💡 Pistas:

  • Los permisos se cambian con chmod. La forma más simple es con números: chmod 444 fichero hace el fichero de solo lectura para todos, chmod 644 fichero lo vuelve a los permisos normales, chmod 744 fichero lo 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í: si privado.txt es 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 .tmp con confirmación
  • Al final muestra la estructura completa con ls -la en cada carpeta
  • No uses más de 10 comandos en total

💡 Pistas:

  • mkdir -p codigo/practicas codigo/examenes apuntes multimedia crea toda la estructura de una vez
  • mv practica*.c codigo/practicas/ mueve todos los practica con un comodín
  • Para los .tmp usa rm -i *.tmp — el -i te 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 con cat antes 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

Publicaciones Similares

Un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *