Saltar a contenido

Comandos Linux

Qué es la consola y cómo se escribe una orden

La terminal es la ventana; la shell (en LliureX, Bash) es el programa que interpreta lo que escribes. Un administrador trabaja aquí porque es más rápido, funciona en servidores sin escritorio y se puede automatizar.

Toda orden sigue la misma estructura:

orden   opciones   argumentos
ls      -l -a      /etc

El prompt te dice quién eres: usuario@equipo:~$. Si termina en #, eres root: cuidado.

Si no sabes algo, pregúntale al sistema:

Orden Para qué
man ls Manual completo (q para salir, / para buscar)
ls --help Resumen rápido

Atajos que ahorran horas

  • Tab autocompleta
  • ↑ repite órdenes anteriores
  • Ctrl+C cancela
  • Ctrl+L limpia la pantalla.

El árbol de directorios

En Linux no hay C:. Todo cuelga de una raíz, /:

Directorio Qué hay
/home Las carpetas de los usuarios
/etc La configuración del sistema
/var/log Los registros (logs)
/tmp Temporales
/usr/bin Los programas

Rutas:

  • Absoluta: empieza en / → /home/ana/documentos
  • Relativa: desde donde estás → documentos
  • Atajos: ~ tu carpeta personal
  • . aquí
  • .. la carpeta de arriba
Orden Hace
pwd Dónde estoy
cd ruta Ir a una carpeta
ls -la Listar todo, con detalles y ocultos

Ficheros y directorios

Orden Hace
mkdir -p a/b Crear carpetas
touch f.txt Crear un fichero vacío
cp origen destino Copiar (-r para carpetas)
mv origen destino Mover o renombrar
rm fichero Borrar (-r para carpetas)
cat, less, head, tail Ver contenido
find / -name "*.conf" Buscar ficheros
grep texto fichero Buscar dentro de ficheros

Comodines:

  • * cualquier cosa
  • ? un carácter
  • {1..5} genera 1 2 3 4 5.

Cuidado

rm -rf borra sin preguntar y para siempre.

Usuarios y permisos

Cada fichero tiene un propietario, un grupo y unos permisos:

-rwxr-x---  ana  clase  script.sh
 └┬┘└┬┘└┬┘
  │  │  └ otros
  │  └─── grupo
  └────── propietario

¿Qué quiere decir?

  • r leer (4)
  • w escribir (2)
  • x ejecutar o entrar (1)

Se suman por grupo: rwx = 7, r-x = 5, --- = 0 → 750.

Orden Hace
chmod 750 f Cambiar permisos
chown ana:clase f Cambiar propietario y grupo
sudo orden Ejecutar como administrador
adduser nombre Crear usuario
usermod -aG grupo usuario Añadir a un grupo (¡sin la a le quitas los demás!)

Redirecciones y tuberías

La salida de una orden puede ir a un fichero o a otra orden:

Símbolo Hace
> Guarda en un fichero (lo sobrescribe)
>> Añade al final del fichero
2> Guarda solo los errores
\| Pasa la salida a la siguiente orden

Con la tubería se construyen órdenes potentes juntando piezas simples:

cat acceso.log | grep FAIL | wc -l      # ¿cuántos accesos fallidos?

!!! tip "Piezas habituales":

- `grep` (filtrar)
- `sort` (ordenar)
- `uniq -c` (contar repetidos)
- `cut` (sacar columnas)
- `wc -l` (contar líneas)
- `head`/`tail` (quedarse con el principio o el final).

Procesos, servicios y programas

Orden Hace
ps aux, htop Ver procesos
kill PID Terminar un proceso
systemctl status ssh Estado de un servicio
systemctl start/stop/restart ssh Controlar un servicio
sudo apt update Actualizar la lista de programas
sudo apt install tree Instalar un programa
tar -czf copia.tar.gz carpeta Comprimir

No hay que saberlo de memoria

No hace falta memorizar todo esto. Hace falta saber que existe y cómo preguntar (man, --help). El resto se aprende usándolo.

Actividades

Leer antes de empezar

Preparación (una sola vez)

Copia y pega este bloque en la terminal de la VM cliente. Crea la carpeta de trabajo y dos ficheros de datos.

mkdir -p ~/practica && cd ~/practica

cat > empleados.csv << 'EOF'
nombre;departamento;ciudad;edad
ana;informatica;valencia;34
luis;ventas;alicante;41
marta;informatica;castellon;29
pedro;rrhh;valencia;52
lucia;ventas;valencia;38
jorge;informatica;alicante;45
sara;direccion;valencia;50
diego;ventas;castellon;27
elena;rrhh;alicante;33
raul;informatica;valencia;31
carmen;ventas;valencia;46
ivan;informatica;castellon;24
EOF

cat > acceso.log << 'EOF'
2026-10-05 08:01:12 OK ana 192.168.1.20
2026-10-05 08:03:45 FAIL root 10.0.0.66
2026-10-05 08:03:47 FAIL root 10.0.0.66
2026-10-05 08:03:49 FAIL admin 10.0.0.66
2026-10-05 08:10:02 OK luis 192.168.1.21
2026-10-05 08:15:30 FAIL marta 192.168.1.22
2026-10-05 08:15:41 OK marta 192.168.1.22
2026-10-05 09:00:00 FAIL root 10.0.0.66
2026-10-05 09:00:02 FAIL root 10.0.0.66
2026-10-05 09:12:13 OK jorge 192.168.1.25
2026-10-05 10:22:05 FAIL test 172.16.5.9
2026-10-05 10:22:07 FAIL test 172.16.5.9
2026-10-05 11:45:59 OK ana 192.168.1.20
2026-10-05 12:30:10 FAIL admin 10.0.0.66
2026-10-05 13:05:44 OK sara 192.168.1.30
EOF

ls -l

acceso.log simula el registro de accesos de un servidor. Cada línea tiene 5 campos separados por espacios: fecha, hora, resultado (OK/FAIL), usuario, IP.

  • AC 0111. Averigua con qué usuario estás trabajando, cómo se llama el equipo y en qué carpeta estás.
  • AC 0112. Muestra la fecha y hora del sistema.
  • AC 0113. Averigua qué versión de LliureX y qué versión del núcleo tiene tu VM.
  • AC 0114. Lista el contenido de /etc. Después, lístalo con detalles (permisos, tamaño, fecha).
  • AC 0115. Lista todo el contenido de tu carpeta personal, incluidos los ficheros ocultos. ¿Cómo se reconoce un fichero oculto?
  • AC 0116. Ve a /var/log usando una ruta absoluta. Después vuelve a tu carpeta personal con la orden más corta posible.
  • AC 0117. Estando en tu carpeta personal, ve a /tmp usando solo una ruta relativa.
  • AC 0118. Usando man ls, averigua qué opción de ls ordena por tamaño. Pruébala en /etc.
  • AC 0119. Muestra el historial de órdenes que has escrito. Busca una orden anterior con Ctrl+R.

Esta tanda...

Trabaja dentro de ~/practica.

  • AC 0120. Crea con una sola orden las carpetas documentos, imagenes, copias y temp.
  • AC 0121. Crea con una sola orden los ficheros informe1.txt a informe5.txt dentro de documentos.
  • AC 0122. Crea en imagenes los ficheros foto1.jpg, foto2.jpg, foto3.jpg, foto1.png y foto2.png.
  • AC 0123. Copia todos los .txt de documentos a copias, con una sola orden.
  • AC 0124. Renombra documentos/informe5.txt a documentos/final.txt.
  • AC 0125. Mueve los ficheros .png de imagenes a temp.
  • AC 0126. Lista solo los informes 1, 2 y 3 usando un comodín entre corchetes.
  • AC 0127. Escribe la frase Primera línea dentro de documentos/nota.txt sin abrir ningún editor. Después añade Segunda línea sin borrar la primera. Comprueba el contenido.
  • AC 0128. Haz una copia completa de la carpeta documentos llamada documentos_backup.
  • AC 0129. Borra la carpeta temp con todo su contenido.
  • AC 0130. Crea en tu carpeta personal un enlace simbólico llamado logs que apunte a /var/log. Entra por él y comprueba con ls -l ~ que es un enlace.
  • AC 0131. Instala tree (sudo apt install tree) y muestra la estructura de ~/practica.

Para esta tanda

Usa los ficheros empleados.csv y acceso.log.

  • AC 0132. Muestra el contenido completo de empleados.csv. Después muestra solo las 3 primeras líneas y luego solo las 2 últimas.
  • AC 0133. ¿Cuántas líneas tiene cada fichero? Hazlo con una sola orden para los dos.
  • AC 0134. Abre acceso.log con less y busca dentro la palabra FAIL. ¿Cómo pasas a la siguiente coincidencia?
  • AC 0135. Muestra todas las líneas de acceso.log en las que aparece ana.
  • AC 0136. ¿Cuántas líneas de acceso.log contienen OK? Usa una opción de grep que cuente.
  • AC 0137. Muestra los empleados de informatica. Después, solo los de informatica que viven en valencia.
  • AC 0138. Busca todos los ficheros .txt que hay dentro de ~/practica, incluidas las subcarpetas.
  • AC 0139. ¿Cuántos ficheros .conf hay dentro de /etc? (Si salen errores de permisos, ignóralos por ahora.)
  • AC 0140. ¿En qué carpeta está instalado el programa ls? ¿Y python3?
  • AC 0141. Busca en /var/log los ficheros de más de 1 MB.
  • AC 0142. Muestra tu identificador de usuario y los grupos a los que perteneces.
  • AC 0143. Muestra las 5 últimas líneas de /etc/passwd. Elige una y explica qué significa cada campo separado por :.
  • AC 0144. Crea dos usuarios: alumno1 y alumno2.
  • AC 0145. Crea el grupo clase y añade a los dos usuarios. Comprueba que están.
  • AC 0146. Cámbiate a alumno1, comprueba quién eres y vuelve a tu usuario.
  • AC 0147. Mira los permisos de documentos/nota.txt. Explica quién puede hacer qué con ese fichero.
  • AC 0148. Traduce:

    Octal rwx
    755
    644
    700
    640
    rwxr-x---
    rw-------
  • AC 0149. Crea secreto.txt y ponle permisos para que solo tú puedas leerlo y modificarlo. Comprueba con ls -l.

  • AC 0150. Crea hola.sh con el contenido echo "Hola desde un script". Intenta ejecutarlo con ./hola.sh. ¿Qué pasa? Dale el permiso necesario y vuelve a probar.
  • AC 0151. Carpeta compartida. Crea /srv/clase, haz que su grupo sea clase y ponle permisos para que el propietario y el grupo puedan hacerlo todo y el resto nada.
  • AC 0152. Comprueba que funciona:

    • Como alumno1, crea un fichero dentro de /srv/clase. Debe funcionar.
    • Como tu usuario (sin sudo), intenta entrar en /srv/clase. No debe dejarte. ¿Por qué?
  • AC 0153. Ahora, como alumno2, borra el fichero de alumno1. ¿Te ha dejado? ¿Te parece correcto?

  • AC 0154. Añade a la carpeta el sticky bit (chmod +t) y repite el ejercicio 43. ¿Qué ha cambiado? ¿Qué carpeta del sistema funciona así y por qué?
  • AC 0155. Borra el usuario alumno2 junto con su carpeta personal.
  • AC 0156. Guarda el listado de /etc en lista.txt. ¿Cuántas líneas tiene?
  • AC 0157. Ejecuta ls /etc /noexiste. Consigue que los errores vayan a errores.txt y en pantalla veas solo lo correcto.
  • AC 0158. Añade la fecha actual al final de registro.txt. Hazlo tres veces y comprueba que hay tres líneas.
  • AC 0159. Muestra solo la columna de nombres de empleados.csv, sin la cabecera y ordenados alfabéticamente.
  • AC 0160. ¿Cuántos empleados hay en cada ciudad?
  • AC 0161. ¿Quién es el empleado de más edad? ¿Y el más joven?
  • AC 0162. ¿Cuántos accesos fallidos hay en acceso.log?
  • AC 0163. Lista las IP desde las que ha habido fallos, con el número de fallos de cada una, de más a menos.
  • AC 0164. ¿Qué usuarios han entrado correctamente al menos una vez? Cada nombre una sola vez.
  • AC 0165. ¿Con qué nombres de usuario se ha intentado entrar sin éxito, y cuántas veces cada uno?
  • AC 0166. Prueba esta orden dos veces seguidas y explica por qué el resultado cambia:

    mkdir prueba && echo "Carpeta creada" || echo "No se pudo crear"
    
  • AC 0167. Mirando el resultado del ejercicio 53: ¿qué crees que está pasando con la IP 10.0.0.66? ¿Qué harías si fueras el administrador?

  • AC 0168. ¿Cuántos procesos hay ahora mismo en tu VM?
  • AC 0169. Lanza sleep 300 en segundo plano. Localiza su número de proceso (PID) de dos formas distintas y termínalo.
  • AC 0170. Abre htop. Ordena los procesos por uso de memoria y apunta cuál consume más. Sal sin cerrar la terminal.
  • AC 0171. Actualiza la lista de programas disponibles. Busca un programa llamado cowsay, instálalo y pruébalo: cowsay "Hola 2º BACH".
  • AC 0172. Averigua qué ficheros ha instalado el paquete tree. Después desinstala cowsay.
  • AC 0173. Comprime la carpeta ~/practica en practica.tar.gz. Lista su contenido sin descomprimir y después extráelo dentro de /tmp.
  • AC 0174. Compara el tamaño de la carpeta original y del fichero comprimido.

De aquí en adelante opcionales, pero tienes que saber que...

Un script es un fichero con órdenes que se ejecutan una detrás de otra. Siempre empieza con #!/bin/bash y necesita permiso de ejecución.

  • AC 0175. info.sh: un script que muestre tu usuario, el nombre del equipo, la fecha, cuánto tiempo lleva encendido y el espacio libre del disco. Hazlo ejecutable y pruébalo.
  • AC 0176. copia.sh: un script que cree en ~/copias un comprimido de ~/practica cuyo nombre incluya la fecha de hoy (por ejemplo practica-2026-10-05.tar.gz).
  • AC 0177. saluda.sh: un script que reciba un nombre al ejecutarlo (./saluda.sh Ana) y salude. Si no se le pasa ningún nombre, debe explicar cómo se usa.
  • AC 0178. seguridad.sh: un script que, a partir de acceso.log, muestre este informe:

    Accesos correctos: 6
    Accesos fallidos: 9
    IP con más fallos: 10.0.0.66 (6 intentos)
    
  • AC 0179. Programa copia.sh para que se ejecute todos los días a las 22:00 con crontab -e.