Módulo 1 — Operación de Sistemas Operativos GNU/Linux
Al finalizar esta clase vas a poder:
En la clase anterior aprendimos a leer y buscar. Ahora vamos a modificar archivos sin perder de vista qué cambió.
Esta tabla sirve para ubicar las herramientas que ya vimos y las que aparecen hoy.
| Necesidad | Herramienta |
|---|---|
| Recorrer un archivo sin modificarlo | less / more |
| Editar con atajos visibles | Nano |
| Editar mediante modos y órdenes | Vi/Vim |
| Crear o agregar una línea conocida | echo con > o >> |
| Repetir una sustitución | sed |
| Comprobar qué cambió | diff -u |
Una herramienta básica para administrar el sistema
La configuración del sistema, los servicios, los usuarios y muchas aplicaciones se describen mediante archivos de texto.
También usamos texto para escribir scripts, documentar cambios y preparar datos que después leerá otro programa.
/etc/ssh/sshd_config
/etc/hosts
/etc/fstab
Administrar Linux exige poder leer y editar texto desde la terminal.
En un servidor solemos trabajar por SSH o desde una consola. En recuperación y en contenedores mínimos podemos tener todavía menos herramientas.
command -v nano vi less more
Antes de depender de una herramienta, conviene comprobar si realmente existe en ese entorno.
| Tarea | Opciones |
|---|---|
| Mostrar un archivo corto | cat |
| Recorrer un archivo largo | less o more |
| Modificar texto | Nano, Vi, Vim u otro editor |
| Escribir una línea conocida | echo y una redirección |
Primero vemos qué necesitamos hacer. Después elegimos la herramienta disponible.
Atajos y mensajes a la vista
nano archivo.txt
^ representa Ctrl. Por ejemplo, ^O significa Ctrl+O.
La ayuda cambia según la versión y el estado del editor. Por eso conviene mirar siempre las dos líneas inferiores.
| Atajo | Acción |
|---|---|
| Flechas | Mover el cursor |
Ctrl+A / Ctrl+E | Comienzo / final de la línea |
Ctrl+F o Ctrl+W | Buscar texto |
Alt+F o Alt+W | Buscar la coincidencia siguiente |
Ctrl+C | Mostrar la posición del cursor |
Desde Nano 8, Ctrl+F inicia la búsqueda hacia adelante. Ctrl+W también funciona y aparece en muchas versiones anteriores.
Después del atajo, Nano pide el texto en la barra inferior.
| Atajo | Acción |
|---|---|
Alt+A | Iniciar o finalizar una selección |
Alt+6 | Copiar la selección o la línea |
Ctrl+K | Cortar la selección o la línea |
Ctrl+U | Pegar |
Alt+U / Alt+E | Deshacer / rehacer |
Si la terminal interpreta Alt de otra manera, la ayuda visible de Nano permite confirmar el atajo.
| Atajo | Acción |
|---|---|
Ctrl+O | Guardar. Nano pide el nombre del archivo. |
Ctrl+X | Salir |
Ctrl+G | Abrir la ayuda |
Ctrl+C | Mostrar la posición del cursor |
Si hay cambios pendientes, Nano pregunta si queremos guardarlos.
Conviene leer la pregunta antes de responder. El editor indica qué acción está por realizar.
abrir → buscar → modificar → guardar → salir
Una idea de los años setenta que todavía usamos
Bill Joy desarrolló Vi en Berkeley durante la década de 1970. El programa surgió a partir de ex, un editor que trabajaba principalmente con líneas.
Las nuevas terminales permitían mover el cursor y actualizar distintas partes de la pantalla. De allí viene el nombre vi, abreviatura de visual.
:w
:q
Las órdenes con : todavía conservan la relación con ex.
vi abre Vim
vi archivo.txt
Vim significa Vi IMproved. Conserva el modelo y los comandos básicos de Vi, pero agrega funciones más modernas.
Esto puede cambiar en otro sistema. Incluso una imagen mínima como debian:latest puede no traer vi instalado.
La misma tecla puede hacer cosas distintas según el modo
| Modo | Para qué sirve | Cómo entrar | Cómo volver a Normal |
|---|---|---|---|
| Normal | Moverse y ejecutar acciones | Al abrir Vim o con Esc | Ya estamos en Normal |
| Inserción | Escribir texto | i, a u o | Esc |
| Visual | Seleccionar texto | v o V | Esc |
| Línea de órdenes | Guardar, salir y otras órdenes | : | Enter ejecuta; Esc cancela |
Vim interpreta las teclas según el modo activo. Si no sabés dónde estás, presioná Esc y volvés al modo normal.
En modo normal, escribir x borra un carácter. No escribe la letra «x».
Con i entramos en modo inserción. Vim suele mostrar -- INSERT -- en la parte inferior.
Con Esc dejamos de escribir y volvemos al modo normal.
| Comando | Dónde comienza a escribir |
|---|---|
i | Antes del cursor |
a | Después del cursor |
o | Nueva línea debajo |
Después de escribir, Esc regresa al modo normal.
“Insert mode” es un estado del editor. No es una orden que se escriba después de :.
| Comando | Movimiento |
|---|---|
| Flechas | Mover el cursor en las cuatro direcciones |
h j k l | Izquierda, abajo, arriba y derecha |
0 / $ | Comienzo / final de la línea |
gg / G | Primera / última línea |
Las flechas también funcionan. Los movimientos propios de Vi se incorporan de a poco.
| Comando | Acción |
|---|---|
x | Borrar el carácter bajo el cursor |
dd | Cortar la línea |
yy | Copiar la línea |
p | Pegar después del cursor |
u | Deshacer |
Vi llama yank a la copia. Por eso el comando comienza con y.
v selecciona caracteres y V selecciona líneas completas.y copia, d corta y Esc cancela.p pega.El modo visual no es un editor separado: es una forma de seleccionar antes de ejecutar una acción.
| Comando | Acción |
|---|---|
/texto | Buscar hacia adelante |
n | Coincidencia siguiente |
N | Coincidencia anterior |
/puerto
Buscar no modifica el contenido. Desde la coincidencia podemos movernos o iniciar una edición.
Esc vuelve al modo normal.
:q sale cuando no hay cambios pendientes.
:q! sale descartando los cambios pendientes.
| Orden | Acción |
|---|---|
:w | Guardar |
:q | Salir si no hay cambios pendientes |
:q! | Salir y descartar los cambios |
:wq | Guardar y salir |
:x | Guardar si hubo cambios y salir |
Las órdenes con : se escriben desde el modo normal y se confirman con Enter.
!fuerza una operación del editor. No concede permisos ni reemplaza asudo.
Esc volver al modo normal
i comenzar a escribir
/texto buscar
:w guardar
:q salir
:q! salir sin guardar
Con esto alcanza para abrir un archivo, hacer un cambio sencillo y salir con control.
modo normal → movimiento u operación → inserción → Esc → guardar o descartar
Leer, crear o transformar texto con lo que haya disponible
En una imagen como debian:latest podemos encontrarnos sin Nano, sin Vi y hasta sin less.
command -v nano vi less more
more /etc/os-release
more es más sencillo que less, pero alcanza para recorrer un archivo pantalla por pantalla. Para un archivo corto también podemos usar cat.
Además, la shell y sus redirecciones permiten crear o agregar contenido sin abrir un editor.
>
echo 'puerto=8080' > servidor.conf
La shell envía la salida de echo al archivo.
more servidor.conf
>>
echo 'entorno=pruebas' >> servidor.conf
echo 'registro=activo' >> servidor.conf
| Operador | Resultado |
|---|---|
> | Crea el archivo o reemplaza el contenido |
>> | Crea el archivo o agrega al final |
Antes de usar >, revisá el nombre del archivo de destino.
sed
sed 's/puerto=8080/puerto=9090/' servidor.conf
s / texto anterior / texto nuevo /
La orden muestra el resultado transformado en la terminal.
En este ejemplo, el archivo original no cambia.
sed 's/puerto=8080/puerto=9090/' servidor.conf \
> servidor.conf.nuevo
diff -u servidor.conf servidor.conf.nuevo
Si la comparación muestra exactamente lo esperado, podemos decidir si corresponde reemplazar la versión anterior.
mv servidor.conf.nuevo servidor.conf
# Incorrecto: puede vaciar el archivo
sed 's/8080/9090/' servidor.conf > servidor.conf
La shell prepara la redirección antes de iniciar sed. Por eso puede vaciar el archivo antes de que el programa alcance a leerlo.
sed 's/8080/9090/' servidor.conf > servidor.conf.nuevo
En esta clase siempre usamos un nombre nuevo y comparamos el resultado.
| Situación | Opción |
|---|---|
Solo necesitamos leer y no está less | cat o more |
| Hay que leer el contexto y hacer varios cambios | Nano o Vi/Vim |
| Conocemos todo el contenido | Redirección con > |
| Solo hay que agregar una línea | Redirección con >> |
| El reemplazo debe repetirse | sed |
| Queremos revisar antes de reemplazar | Archivo nuevo y diff -u |
:w, :q y :q! permiten guardar o salir.cat y more permiten consultar archivos sin abrir un editor.> reemplaza el contenido. >> agrega al final.sed puede producir una versión transformada sin abrir un editor.diff -u permiten revisar el cambio antes de aceptarlo.La práctica usa copias de /etc/services y /etc/hosts dentro de ~/laboratorio-clase7.