Aquí tienes 03-edicion.md, siguiendo exactamente el mismo estilo, ritmo y profundidad que Arquitectura del sistema Linux, 01-flujo.md y 02-archivos.md.
No plantilla genérica, documentación real de sysadmin.


# Edición de archivos en Linux

Este módulo explica **cómo editar archivos en Linux de forma segura**, especialmente archivos de configuración en servidores.

La edición incorrecta de un archivo es una de las **principales causas de caídas de servicios**.  
Por eso, editar bien es una habilidad crítica para cualquier sysadmin.

---

## Visión general

En Linux, prácticamente todo se configura mediante archivos de texto:

* Servicios
* Red
* Usuarios
* Seguridad
* Automatización

Editar un archivo suele implicar **impacto directo en el sistema**, por lo que no es una tarea trivial.

Un sysadmin no “abre y edita”:  
**prepara, edita, verifica y valida**.

---

## Principios básicos de edición

Antes de editar cualquier archivo:

* Saber **qué archivo vas a tocar**
* Saber **qué servicio depende de él**
* Saber **cómo volver atrás**

Regla fundamental:

> Nunca edites un archivo de configuración sin copia de seguridad.

Ejemplo:

```bash
cp sshd_config sshd_config.bak

Editores en Linux

En servidores Linux se usan editores en consola.

nano

Editor sencillo y directo.

  • Fácil de usar
  • Ideal para ediciones rápidas
  • Menos potente para archivos grandes
nano archivo.conf

Útil para tareas simples, pero limitado en entornos complejos.


vim / vi

Editor estándar en sistemas Linux.

  • Disponible en casi todos los sistemas
  • Muy potente
  • Curva de aprendizaje más alta
vim archivo.conf

Modos principales:

  • Normal → navegación
  • Insert → edición
  • Command → guardado y salida

Salir sin guardar:

:q!

Guardar y salir:

:wq

Edición en producción

Editar en producción requiere disciplina.

Buenas prácticas:

  • Cambiar una cosa cada vez
  • No mezclar cambios
  • Evitar ediciones largas
  • Saber reiniciar o recargar el servicio afectado

Ejemplo:

cp nginx.conf nginx.conf.bak
vim nginx.conf

Si algo falla, poder restaurar rápidamente es clave.


Comparar cambios

Antes de aplicar un cambio, conviene comparar versiones.

diff nginx.conf nginx.conf.bak

Esto permite:

  • Ver exactamente qué cambió
  • Detectar errores
  • Evitar cambios accidentales

En producción, ver el diff es obligatorio.


Validación de configuraciones

Muchos servicios permiten validar configuración antes de recargar.

Ejemplos comunes:

nginx -t
sshd -t

Esto evita reiniciar un servicio con una configuración inválida.

Validar antes de reiniciar ahorra caídas innecesarias.


Edición remota

La mayoría de ediciones se hacen en servidores remotos vía SSH.

Aspectos a tener en cuenta:

  • La conexión puede cortarse
  • Guardar cambios frecuentemente
  • Evitar ediciones largas sin respaldo

Herramientas como tmux ayudan a proteger sesiones largas, pero se verán más adelante.


Archivos sensibles

Algunos archivos requieren especial cuidado:

  • /etc/passwd
  • /etc/shadow
  • /etc/ssh/sshd_config
  • /etc/sudoers

⚠️ Para ciertos archivos es obligatorio usar herramientas específicas:

visudo

Esto evita dejar el sistema inaccesible.


Puntos críticos para sysadmins

Errores comunes al editar:

  • Olvidar la copia de seguridad
  • Editar directamente como root
  • No validar configuración
  • Reiniciar servicios innecesariamente
  • Cometer errores de sintaxis simples

Una coma mal puesta puede tirar un servicio completo.


Ejercicios prácticos

Crear copia antes de editar

cp /etc/hosts /etc/hosts.bak

Editar archivo

nano /etc/hosts

o

vim /etc/hosts

Comparar cambios

diff /etc/hosts /etc/hosts.bak

Mentalidad

Al editar archivos:

  • No tengas prisa
  • Asume que puedes equivocarte
  • Prepárate para volver atrás
  • Piensa en el impacto

Editar bien es una habilidad de producción, no académica.


Resumen

  • La edición es crítica en Linux
  • Siempre haz copia antes de cambiar
  • vim es una herramienta esencial
  • Verifica y valida configuraciones
  • La mayoría de errores vienen de ediciones mal hechas

Siguiente paso

En el siguiente módulo entrarás en:

Búsqueda de información (busqueda.md)

Donde verás:

  • Cómo encontrar información en el sistema
  • Cómo leer archivos grandes
  • Cómo filtrar y analizar texto como un sysadmin