02 · LINUX EN CHROMEBOOK
Preparar Linux antes de montar el servidor
Activaremos Linux, aprenderemos a abrir la Terminal, comprobaremos la arquitectura, actualizaremos el sistema y crearemos nuestros primeros alias.
> abrir Terminal
> uname -m
> actualizar
> herramientas básicas
> web
> siguiente: servidor_
1. ¿Qué es Linux en un Chromebook?
ChromeOS permite activar un entorno Linux integrado. Ese entorno nos proporciona una Terminal, aplicaciones Linux y las herramientas necesarias para preparar nuestro servidor local. ChromeOS sigue siendo el sistema principal y Linux funciona como un entorno separado e integrado dentro del Chromebook.
2. Activar Linux y abrir la Terminal
1. Activamos Linux desde Configuración. Una vez instalado, tendremos disponible la Terminal.
2. Abrimos la Terminal Linux. No confundir con Crosh.
3. Comprobar la arquitectura
El primer comando que ejecutaremos es:
uname -m
| Resultado | Significado |
|---|---|
x86_64 | Intel/AMD de 64 bits. |
aarch64 | ARM de 64 bits. |
i386 / i686 | x86 de 32 bits. |
Esta comprobación es importante porque después necesitaremos descargar software compatible con la arquitectura del Chromebook.
4. Algunos comandos básicos
| Comando | Uso |
|---|---|
pwd | Muestra la carpeta actual. |
ls | Muestra archivos y carpetas. |
cd | Cambia de carpeta. |
mkdir | Crea carpetas. |
cp | Copia archivos o carpetas. |
mv | Mueve o renombra. |
rm | Elimina archivos. Debe usarse con cuidado. |
~ representa tu carpeta personal de Linux.
5. Actualización de Linux
Es aconsejable mantener siempre todos los paquetes actualizados. Podemos hacerlo manualmente o automatizarlo más adelante.
sudo apt update
sudo apt upgrade -y
Actualización de la información de los repositorios e instalación de las nuevas versiones disponibles de los paquetes.
También existe una actualización más completa:
sudo apt full-upgrade -y
sudo apt autoremove
full-upgrade realiza una actualización más completa del sistema y autoremove elimina dependencias que ya no son necesarias.
6. Crear alias actualizar y automatizar tareas
Abrimos el archivo de configuración de Bash:
nano ~/.bashrc
Añadimos al final:
alias actualizar='sudo apt update && sudo apt upgrade -y'
alias actualizar-total='sudo apt update && sudo apt full-upgrade -y'
Guardamos con Ctrl + O, Enter, y salimos con Ctrl + X.
Recargamos la configuración:
source ~/.bashrc
Comprobamos:
type actualizar
type actualizar-total
Desde ahora podemos ejecutar:
actualizar
actualizar-total
Dejamos autoremove fuera de los alias para revisar antes qué paquetes pretende eliminar:
sudo apt autoremove
7. Herramientas básicas
Estas utilidades suelen estar disponibles o pueden instalarse fácilmente si faltan:
sudo apt install wget curl gnupg -y
| Programa | Para qué sirve |
|---|---|
wget | Descargar archivos desde Internet. |
curl | Consultar URLs y servicios desde Terminal. |
gnupg | Gestionar claves y firmas utilizadas por repositorios y paquetes. |
8. Comando web: menú para controlar el servidor
Este menú es el método interactivo. En la sección Servidor también
se documentan los alias web-on, web-off, web-restart y
web-status como alternativa directa.
En lugar de recordar varios alias separados, utilizamos una función llamada web, guardada en ~/.bashrc. Al escribir web aparece un menú desde el que controlamos XAMPP, Webmin y el Quick Tunnel de Cloudflare.
Abrimos el archivo:
nano ~/.bashrc
Añadimos al final la función completa:
web() {
while true; do
clear
echo "================================"
echo " WEB CONTROL"
echo "================================"
echo
echo "1. ENCENDER"
echo "2. APAGAR"
echo "3. ESTADO"
echo "4. RESTAURAR"
echo "5. SALIR"
echo
read -p "Elige una opción: " opcion
case "$opcion" in
1)
echo
echo "=== ENCENDIENDO SERVIDOR ==="
sudo /opt/lampp/lampp start
sudo systemctl start webmin
if ! pgrep -f "cloudflared tunnel --url http://localhost:8085" >/dev/null; then
rm -f "$HOME/.cloudflared-8085.log"
nohup cloudflared tunnel --url http://localhost:8085 \
> "$HOME/.cloudflared-8085.log" 2>&1 &
fi
echo "Esperando URL de Cloudflare..."
URL=""
for i in {1..20}; do
URL=$(grep -oE 'https://[a-zA-Z0-9-]+\.trycloudflare\.com' \
"$HOME/.cloudflared-8085.log" 2>/dev/null | tail -1)
[ -n "$URL" ] && break
sleep 1
done
echo "XAMPP: ACTIVO"
echo "Webmin: ACTIVO"
echo "Cloudflare: ACTIVO"
[ -n "$URL" ] && { echo; echo "URL PUBLICA:"; echo "$URL"; }
echo
read -p "Pulsa ENTER para volver al menú..."
;;
2)
echo
echo "=== APAGANDO SERVIDOR ==="
pkill -f "cloudflared tunnel --url http://localhost:8085" 2>/dev/null
sudo systemctl stop webmin
sudo /opt/lampp/lampp stop
echo "Cloudflare: detenido"
echo "Webmin: detenido"
echo "XAMPP: detenido"
echo "SERVIDOR DETENIDO"
echo
read -p "Pulsa ENTER para volver al menú..."
;;
3)
echo
echo "=== ESTADO DEL SERVIDOR ==="
sudo /opt/lampp/lampp status
if systemctl is-active --quiet webmin; then
echo "Webmin: ACTIVO"
else
echo "Webmin: INACTIVO"
fi
if pgrep -f "cloudflared tunnel --url http://localhost:8085" >/dev/null; then
echo "Cloudflare: ACTIVO"
URL=$(grep -oE 'https://[a-zA-Z0-9-]+\.trycloudflare\.com' \
"$HOME/.cloudflared-8085.log" 2>/dev/null | tail -1)
[ -n "$URL" ] && { echo "URL PUBLICA:"; echo "$URL"; }
else
echo "Cloudflare: INACTIVO"
fi
echo
read -p "Pulsa ENTER para volver al menú..."
;;
4)
echo
echo "=== RESTAURANDO SERVIDOR ==="
pkill -f "cloudflared tunnel --url http://localhost:8085" 2>/dev/null
sudo systemctl stop webmin
sudo /opt/lampp/lampp stop
sleep 2
sudo /opt/lampp/lampp start
sudo systemctl start webmin
rm -f "$HOME/.cloudflared-8085.log"
nohup cloudflared tunnel --url http://localhost:8085 \
> "$HOME/.cloudflared-8085.log" 2>&1 &
echo "Esperando nueva URL de Cloudflare..."
URL=""
for i in {1..20}; do
URL=$(grep -oE 'https://[a-zA-Z0-9-]+\.trycloudflare\.com' \
"$HOME/.cloudflared-8085.log" 2>/dev/null | tail -1)
[ -n "$URL" ] && break
sleep 1
done
echo "XAMPP: ACTIVO"
echo "Webmin: ACTIVO"
echo "Cloudflare: ACTIVO"
[ -n "$URL" ] && { echo; echo "NUEVA URL PUBLICA:"; echo "$URL"; }
echo
read -p "Pulsa ENTER para volver al menú..."
;;
5)
clear
echo "WEB CONTROL cerrado."
break
;;
*)
echo "Opción no válida."
sleep 2
;;
esac
done
}
Guardamos con Ctrl + O, Enter, salimos con Ctrl + X y recargamos Bash:
source ~/.bashrc
Desde ahora basta ejecutar:
web
8080 — servidor principal.Webmin: puerto
10000 — panel web.Web del proyecto: puerto
8085.
9. Instalar utilidades de red
Para comprobar conexiones, puertos y resolución de nombres instalaremos las utilidades básicas de red:
sudo apt install net-tools dnsutils iputils-ping -y
| Paquete | Herramientas principales |
|---|---|
net-tools | netstat, ifconfig y route. |
dnsutils | dig y nslookup. |
iputils-ping | ping para comprobar conectividad. |
10. Instalar PeaZip
Para trabajar gráficamente con ZIP, 7Z, TAR y otros formatos utilizaremos PeaZip. Descarga el paquete DEB adecuado a la arquitectura del Chromebook desde su página oficial.
PeaZip · Descarga oficial para Linux
Mueve el archivo descargado a Archivos de Linux y ejecuta:
cd ~
sudo apt install ./peazip*.deb
Una vez instalado, PeaZip puede abrirse desde el lanzador de aplicaciones Linux.
11. Instalar y utilizar rsync
rsync permite copiar y sincronizar carpetas. Lo utilizaremos para copias de seguridad y para actualizar una carpeta a partir de otra.
sudo apt update
sudo apt install rsync -y
Comprobamos que está disponible:
rsync --version
Copia normal o actualización
rsync -av origen/ destino/
Solo añadir archivos que faltan
rsync -av --ignore-existing origen/ destino/
No sustituir archivos más nuevos del destino
rsync -avu origen/ destino/
Crear un espejo exacto
rsync -av --delete origen/ destino/
Antes de utilizar --delete conviene simular la operación:
rsync -av --delete --dry-run origen/ destino/
-a conserva la estructura y los atributos principales, -v muestra lo que se está copiando y la barra / al final del origen indica que se copia el contenido de la carpeta.
Comprobación final
- Linux está activado y sabemos abrir la Terminal.
- Sabemos comprobar la arquitectura.
- Sabemos actualizar Linux y utilizar los alias de actualización.
- Tenemos disponibles las herramientas básicas que vamos a utilizar.
- Sabemos utilizar el comando
webpara controlar XAMPP, Webmin y Cloudflare. - Tenemos instaladas las utilidades de red.
- Tenemos PeaZip instalado para trabajar con archivos comprimidos.
- Sabemos instalar y utilizar
rsyncpara copiar y sincronizar carpetas.