Ir directamente al contenido

Ajustes de cookies

Elija por tipo qué cookies permite. Puede cambiar su elección en cualquier momento en Ajustes de cookies, al pie de cada página. Declaración de privacidad

Necesarias

Siempre activadas

Necesarias para iniciar sesión, conservar su carrito y recordar sus preferencias. Siempre están activadas.

¿Qué cookies?
  • weboke_sessie, weboke_klant, weboke_remember: su sesión y mantener la sesión iniciada
  • weboke_basket: su carrito
  • wkBtwIncl: mostrar los precios con o sin IVA
  • wok_cookies: su elección de cookies, 12 meses

Mide qué anuncio lleva a una visita o a un pedido, para no pagar por anuncios que no sirven de nada.

¿Qué cookies?
  • Google Ads a través de Google Tag Manager (_gcl_au, _gcl_aw), hasta 90 días
  • OpenAI Ads, anuncios en ChatGPT
  • wok_aff: a través de qué socio llegó a nosotros (programa de afiliados), 60 días

4,6

País e idioma

Cada país tiene su propio sitio, con los precios y el IVA de ese país.

Ver

Módulo 1 · 1.4

Explorar la línea de comandos

Módulo 1: Su primer servidor · Tiempo de lectura: 11 minutos

Objetivo de aprendizaje: Después de esta lección sabrá orientarse en un servidor Linux: recorrer carpetas, leer y editar archivos, ver cuánto disco y memoria quedan libres y buscar usted mismo ayuda sobre un comando.

Conceptos clave: shell, prompt, carpeta y ruta, ruta absoluta y relativa, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, autocompletado con Tab, uname, df, free, uptime, pipe, grep

La shell y el prompt

Después de iniciar sesión, usted habla con la shell: el programa que lee y ejecuta sus comandos. En Debian y Ubuntu suele ser bash. A la izquierda del cursor aparece el prompt:

anna@web1:~$
root@web1:~#

Este le indica tres cosas: quién es usted (anna o root), en qué servidor está (web1) y en qué carpeta se encuentra (~ es su propia carpeta personal). El último carácter es importante: $ indica un usuario normal, # indica root. Si ve #, cada comando se ejecuta con todos los permisos. Escriba ahí con calma.

Carpetas y rutas

En Linux todo cuelga de un único árbol que empieza en / (la carpeta raíz, que no debe confundirse con el usuario root). Algunas carpetas aparecerán una y otra vez en este curso:

CarpetaQué contiene
/etcConfiguración: SSH (/etc/ssh), servidor web (/etc/nginx), usuarios (/etc/passwd)
/var/logArchivos de registro (además del journal, lección 6.2)
/var/libDatos de programas, por ejemplo bases de datos y Docker
/homeCarpetas personales de los usuarios normales, como /home/anna
/rootCarpeta personal de root
/usrProgramas y bibliotecas instalados
/tmpArchivos temporales, se limpia automáticamente
/srv o /var/wwwUbicación habitual de sitios web y servicios

Una ruta absoluta empieza en /, por ejemplo /etc/ssh/sshd_config. Una ruta relativa empieza donde usted se encuentra ahora: si está en /etc, ssh/sshd_config es el mismo archivo. .. es la carpeta superior, . la carpeta actual.

anna@web1:~$ pwd
/home/anna
anna@web1:~$ cd /etc/ssh
anna@web1:/etc/ssh$ ls
moduli  ssh_config  ssh_config.d  sshd_config  sshd_config.d  ssh_host_ed25519_key  ssh_host_ed25519_key.pub ...
anna@web1:/etc/ssh$ cd ..
anna@web1:/etc$ cd
anna@web1:~$

cd sin nada detrás le devuelve a su carpeta personal.

Ver archivos

ls -l muestra algo más que los nombres:

anna@web1:/etc/ssh$ ls -l sshd_config ssh_host_ed25519_key ssh_host_ed25519_key.pub
-rw-r--r-- 1 root root 3248 Aug 12 10:01 sshd_config
-rw------- 1 root root  399 Nov  2 14:20 ssh_host_ed25519_key
-rw-r--r-- 1 root root   91 Nov  2 14:20 ssh_host_ed25519_key.pub

De izquierda a derecha: los permisos, el número de enlaces, el propietario, el grupo, el tamaño en bytes, la fecha y el nombre. Fíjese en la diferencia: la host key secreta (-rw-------) solo puede leerla root, la pública (-rw-r--r--) cualquiera. En la lección 3.1 aprenderá a leer estos permisos con precisión. ls -la muestra también los archivos ocultos: nombres que empiezan por un punto, como .ssh.

Para leer el contenido:

  • cat bestand: el archivo completo de una vez, práctico para archivos cortos;
  • less bestand: desplazarse con las flechas y la barra espaciadora, buscar con /woord, salir con q;
  • head -n 20 bestand y tail -n 20 bestand: las primeras o las últimas líneas; tail -f sigue mostrando las líneas nuevas a medida que se añaden.

Editar un archivo con nano

La configuración se modifica en un editor de texto. nano es el más sencillo:

root@web1:~# nano /etc/hosts

En la parte inferior aparecen los atajos de teclado; ^ significa Ctrl. Guardar es Ctrl+O y Enter, salir Ctrl+X, buscar Ctrl+W. Si ya trabaja con vim, puede usarlo; en una instalación mínima, vim no siempre está disponible por completo.

Tres hábitos que más adelante le ahorrarán muchos disgustos:

  1. Haga primero una copia: cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.
  2. Pruebe la configuración antes de reiniciar un servicio. Muchos programas tienen su propio comando para ello: sshd -t, nginx -t (lecciones 2.2 y 7.2).
  3. Cambie una sola cosa cada vez, para saber qué ha causado un error.

¿En qué estado se encuentra su servidor?

Algunos comandos que utilizará en cualquier situación:

anna@web1:~$ uname -a
Linux web1 6.12.0-... #1 SMP ... x86_64 GNU/Linux
anna@web1:~$ uptime
 10:12:44 up 3 days,  2:10,  1 user,  load average: 0.08, 0.05, 0.01
anna@web1:~$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        40G  3.1G   35G   9% /
anna@web1:~$ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.8Gi       412Mi       2.9Gi       1.0Mi       720Mi       3.4Gi
Swap:             0B          0B          0B
  • uname -a: qué kernel se está ejecutando.
  • uptime: cuánto tiempo lleva encendido el servidor y la load average de 1, 5 y 15 minutos. A grandes rasgos: una carga que se mantiene durante mucho tiempo por encima del número de núcleos del procesador significa que hay procesos esperando.
  • df -h: espacio libre en disco (-h significa "human readable", con G y M). Un disco lleno es una de las causas más frecuentes de que un servidor se detenga "sin motivo".
  • free -h: memoria. Fíjese en la columna available, no en free: Linux utiliza la memoria libre como caché (buff/cache) y la devuelve cuando un programa la necesita.

Y su red, de la lección 1.2: ip -brief address.

Encontrar ayuda

No necesita memorizar todas las opciones. Lo que sí debe saber es dónde encontrarlas:

  • man ssh abre el manual (manual page) de un comando. Se navega como en less y se busca con /. man sshd_config describe cada parámetro configurable de ese archivo.
  • ls --help muestra en la mayoría de los comandos una lista breve de opciones.
  • La tecla Tab completa nombres de comandos y archivos. Pulsar Tab dos veces muestra las opciones posibles. Así evita errores de escritura en rutas largas.
  • La flecha hacia arriba recupera comandos anteriores; history los muestra todos.

En una instalación mínima a veces faltan los manuales. En Debian y Ubuntu se instalan con apt install man-db (módulo 4).

Pipes y grep

Puede encadenar comandos con una pipe (|): la salida de uno es la entrada del siguiente. grep filtra las líneas que contienen una palabra:

anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | less

Las líneas que empiezan por # son comentarios: no hacen nada y a menudo muestran el valor predeterminado. En la lección 2.2 verá por qué esto puede resultar confuso en SSH.

Errores frecuentes

  • Pegar sin leer. Los comandos de internet hacen exactamente lo que dicen, aunque sea algo distinto de lo que promete el título del artículo. Lea cada comando antes de ejecutarlo, sobre todo si es usted root.
  • rm no tiene papelera. Lo borrado, borrado está. Tenga especial cuidado con rm -r (una carpeta con todo su contenido) y con comodines como *.
  • Las mayúsculas cuentan. /etc/SSH no existe; /etc/ssh sí.
  • Los espacios en las rutas deben ir entre comillas: cat "/srv/mijn site/index.html". Mejor aún: no use espacios en los nombres en un servidor.

Resumen

  • El prompt indica quién es usted, en qué servidor y dónde está; # significa root.
  • La configuración está en /etc, los registros en /var/log, los datos de programas en /var/lib y las carpetas personales en /home.
  • Lea con cat, less, head y tail; edite con nano, después de hacer una copia, y pruebe la configuración antes de reiniciar.
  • df -h, free -h, uptime y ip -brief address muestran en qué estado se encuentra su servidor.
  • La ayuda está en man y --help; Tab completa; con | y grep filtra la salida.

Cuestionario

1. Su prompt es root@web1:/var/log#. ¿Qué sabe ahora?



2. Está en /etc. ¿Qué ruta apunta al mismo archivo que /etc/nginx/nginx.conf?



3. free -h muestra free 120Mi y available 2.9Gi. ¿Tiene el servidor poca memoria?



4. ¿Qué es lo más sensato antes de modificar /etc/ssh/sshd_config?



5. ¿Dónde consulta qué parámetros admite sshd_config?



Ejercicio

Ejercicio O1.4: Conocer su servidor. Ejecute los comandos de la lección en su propio servidor y anote: distribución y versión, kernel, espacio libre en disco, memoria disponible, carga, IPv4 e IPv6, y qué archivos de /etc/ssh solo puede leer root. Después responda a dos preguntas sobre lo que ha visto.

Ejercicio O1.4: Conocer su servidor

Este ejercicio lo hace usted mismo; nadie lo revisa. Marque lo que haya hecho y señale el ejercicio como realizado.



Sus marcas y notas se quedan solo en este navegador; no las enviamos a ningún sitio. Si ha iniciado sesión, en Mis cursos solo guardamos que ha realizado el ejercicio.

Para saber más

Un momento…

Configure sus dominios

Configure para cada dominio los servidores de nombres, la vinculación a su hosting y quién será el titular.

Cargando sus dominios…