Apuntes DAM
Volver al inicio

Simulador de terminal Linux

Una terminal de Ubuntu en tu navegador: carpetas con permisos y propietarios, usuarios y grupos, procesos, servicios, tuberías, redirecciones y scripts. Entras como alumno, que puede usar sudo. Los mensajes son los de bash en español, y en azul te explica lo que ha pasado. Nada sale de tu navegador, así que puedes romper lo que quieras.

Misiones (0 de 21 completadas)

Primeros pasos
Archivos
Permisos
Texto y tuberías
Usuarios y grupos
Procesos y servicios
Entorno
Práctica libre

1. Muévete y crea un archivo

Entra en la carpeta web que está dentro de proyectos y crea allí un archivo vacío llamado contacto.html. Termina dentro de esa carpeta.

Pista

cd entra en una carpeta (puedes darle la ruta entera de una vez: carpeta/subcarpeta) y touch crea un archivo vacío. pwd te dice dónde estás y ls lo que hay.

Ver solución
ls
cd proyectos/web
touch contacto.html
ls

Terminal

Escribe una orden y pulsa Intro. Prueba con ls, pwd o help.

Carpeta actual

/home/alumno · usuario alumno · grupos alumno, adm, sudo

Permisos, propietario, grupo, tamaño y nombre de cada entrada
PermisosDueñoGrupoNombre
-rw-r--r--alumnoalumno
drwxr-xr-xalumnoalumno
drwxr-xr-xalumnoalumno
-rw-r--r--alumnoalumno
drwxr-xr-xalumnoalumno

Pulsa un nombre para escribirlo en la terminal. Los ocultos (empiezan por punto) también salen aquí; en la terminal, con ls -a.

Órdenes que entiende el simulador

Las mismas que en Ubuntu, con sus opciones más usadas. En la terminal, man orden enseña las opciones y ejemplos de cada una. También funcionan las tuberías (|), las redirecciones (>, >>, <, 2>, 2>&1), && y ||, los comodines (* ? [ ]), las llaves ({a,b} y {1..5}), las variables ($HOME, $?, $(orden), $((2+3))) y los scripts.

Moverse y mirar

pwd
muestra la carpeta en la que estás
cd
cambia de carpeta
ls
lista el contenido de carpetas
tree
dibuja el árbol de carpetas
cat
muestra (o concatena) archivos
less
muestra un archivo largo página a página
head
primeras líneas
tail
últimas líneas
file
dice qué tipo de archivo es por su contenido
stat
datos de un archivo: tamaño, permisos, dueño, fechas

Archivos y carpetas

mkdir
crea carpetas
touch
crea archivos vacíos o actualiza su fecha
cp
copia archivos y carpetas
mv
mueve o renombra
rm
borra archivos (y carpetas con -r). No hay papelera
rmdir
borra carpetas vacías
find
busca archivos por nombre, tipo, tamaño, dueño…
du
espacio que ocupan carpetas y archivos
df
espacio libre de los discos
tar
empaqueta (y comprime) carpetas
basename
el nombre final de una ruta
dirname
la carpeta de una ruta

Texto y tuberías

echo
escribe texto
printf
escribe texto con formato
grep
busca líneas que cumplen un patrón (expresión regular)
sort
ordena líneas
uniq
quita líneas repetidas consecutivas (ordena antes)
cut
corta columnas
tr
cambia o borra caracteres de la entrada
wc
cuenta líneas, palabras y bytes
tee
copia la entrada a la pantalla y a archivos
xargs
convierte la entrada en argumentos de otra orden
seq
escribe una secuencia de números

Permisos

chmod
cambia los permisos
chown
cambia el propietario (y el grupo). Solo root
chgrp
cambia el grupo
umask
muestra o cambia los permisos que se quitan al crear archivos

Usuarios y grupos

whoami
tu usuario
id
uid, gid y grupos de un usuario
groups
grupos de un usuario
sudo
ejecuta una orden como root (si estás en el grupo sudo)
su
cambia de usuario (pide su contraseña; desde root no)
exit
cierra la sesión abierta con sudo -i, su o bash, o termina un script
useradd
crea un usuario (orden de bajo nivel)
adduser
crea un usuario completo (Debian y Ubuntu) o lo añade a un grupo
usermod
modifica un usuario
userdel
borra un usuario
groupadd
crea un grupo
groupdel
borra un grupo
gpasswd
añade o quita usuarios de un grupo
passwd
cambia la contraseña

Procesos y servicios

ps
lista los procesos
top
procesos ordenados por CPU (en un sistema real se actualiza; sal con q)
kill
envía una señal a un proceso (por defecto SIGTERM, terminar)
killall
señal a todos los procesos con ese nombre
pkill
señal a los procesos cuyo nombre cumple un patrón
pgrep
PID de los procesos cuyo nombre cumple un patrón
systemctl
gestiona servicios (nginx, ssh, cron, mariadb)

Shell y sistema

env
variables de entorno
printenv
valor de variables de entorno
export
define una variable de entorno
unset
borra una variable
alias
define atajos de órdenes
which
ruta del programa que ejecuta una orden
type
qué es una orden: interna, alias o programa
history
órdenes que has escrito
clear
limpia la pantalla
source
ejecuta un script en la shell actual (sus variables y cd se quedan)
bash
ejecuta un script (o abre otra shell)
test
comprueba condiciones; se usa con && y ||
date
fecha y hora
uname
datos del sistema
hostname
nombre del equipo (-I: sus IP)
uptime
cuánto lleva encendido y la carga
free
memoria libre
ip
direcciones y rutas de red
apt
instala programas (en el simulador no descarga nada)
man
manual de una orden
help
lista las órdenes del simulador

La teoría está en Administración de sistemas operativos y Sistemas de ficheros (Sistemas Informáticos), y los servicios web en Servidores web (Despliegue). El simulador no tiene red, editores, enlaces ni estructuras de control (if, for) en los scripts; para scripts de verdad tienes los ejercicios de Bash.