Módulo 1 — Operación de Sistemas Operativos GNU/Linux
Al finalizar esta clase vas a poder:
Por qué vemos este tema: ya podemos ingresar al servidor por SSH. Antes de administrar servicios y configuraciones necesitamos aprender a ubicarnos y operar con archivos desde la línea de comandos.
Terminal → Bash → comando → resultado
SSH aporta la conexión; la terminal permite interactuar; Bash interpreta lo que escribimos.
| Shell | Característica |
|---|---|
sh | Shell histórica y referencia para una sintaxis común de scripts. |
| Bash | Bourne Again Shell. Es la que utilizaremos en el curso. |
| Zsh | Orientada al uso interactivo y muy configurable. |
| Fish | Interfaz amigable, con algunas diferencias de sintaxis. |
| Dash | Pequeña y rápida; Debian suele usarla como /bin/sh. |
Los ejemplos del curso estarán escritos para Bash.
echo "$SHELL" # shell configurada para el usuario
bash --version # versión instalada
comando [opciones] [argumentos]
ls -la /var/log
ls: comando.-la: opciones cortas -l y -a./var/log: argumento; en este caso, una ruta.Las opciones cambian el comportamiento. Los argumentos indican sobre qué objeto trabajar.
ls -l /etc
ls --format=long /etc
cp origen.txt destino.txt
-; las largas, con --.--help, help y man
ls --help # resumen rápido
help cd # orden interna de Bash
man ls # página de manual
man 5 passwd # sección 5 del manual
--help: confirma rápidamente opciones y sintaxis.help: documenta órdenes internas de Bash.man: documentación completa instalada en el sistema.Dentro de man: Espacio avanza, b retrocede, /texto busca, n repite la búsqueda y q sale.
sudo apt update
sudo apt install man-db manpages manpages-es
LANG=es_AR.UTF-8 man ls
No todas las páginas están traducidas. Si no existe una versión en español, se utiliza la original.
man(1) en español: alternativa rápida con distintas fuentes e idiomas.
mkdir "Documentos del curso"
ls Documentos\ del\ curso
Los espacios separan argumentos. Las comillas o la barra invertida permiten tratarlos como parte del nombre. Su funcionamiento se retomará junto con los comodines.
Para archivos de administración suele ser más práctico usar nombres comodocumentos-cursoodocumentos_curso.
Terminal → shell → Bash → opciones y argumentos
cd /etc/sys<Tab>
Tab evita errores de escritura; no confirma que la operación sea correcta.
history
El historial persistente se guarda habitualmente en ~/.bash_history.
clear
Limpiar la pantalla no es lo mismo que limpiar el historial.
history -c # limpia la lista de esta sesión
history -w # sobrescribe ~/.bash_history
No elimina logs ni prepara por sí solo una plantilla segura. Los logs son parte de la auditoría.
Tab → historial → Ctrl + R → clear / Ctrl + L
La shell siempre está ubicada en algún directorio del árbol.
cristian@lab2-vm:~$
pwd
# /home/cristian
ls
ls /etc
ls -l /etc
ls -la
ls -lh /var/log
ls -ld /etc
-l: listado largo.-a: incluye nombres ocultos.-h: tamaños legibles junto con -l.-d: muestra el directorio, no su contenido.
cd /etc # ir a /etc
cd .. # subir al directorio padre
cd ~ # ir al home
cd # también vuelve al home
cd - # volver al directorio anterior
cd es una orden interna: cambia el directorio de la shell actual.
| Componente | Significado |
|---|---|
/ | Raíz del árbol. |
. | Directorio actual. |
.. | Directorio padre. |
~ | Home del usuario. |
- | Directorio anterior, usado por cd. |
/es la raíz./rootes el home del usuario root.
Absoluta: comienza en / y expresa la ubicación completa.
/home/cristian/documentos/informe.txt
Relativa: comienza desde el directorio de trabajo actual.
documentos/informe.txt
Si estamos en /home/cristian, ambas apuntan al mismo objeto.
El sistema de archivos distingue mayúsculas de minúsculas:
informe.txt, Informe.txt e INFORME.txt son nombres diferentes./home/Cristian y /home/cristian no son equivalentes.. se oculta en listados normales.pwd → ls → cd → rutas
cd /tmp
mkdir laboratorio-clase5
mkdir laboratorio-clase5/config
mkdir laboratorio-clase5/logs laboratorio-clase5/datos
Se pueden crear uno o varios directorios. El directorio padre debe existir.
mkdir laboratorio-clase5/backup/diario
# Error: falta backup
mkdir -p laboratorio-clase5/backup/diario
mkdir -p laboratorio-clase5/clientes/norte
mkdir -p laboratorio-clase5/clientes/sur
-p crea los componentes intermedios que faltan.
cd ~/laboratorio-clase5
touch config/servidor.conf
touch logs/acceso.log logs/error.log
ls -l config logs
touch crea uno vacío.touch -c nombre evita crear un archivo inexistente.touch no es un editor.
mkdir → mkdir -p → touch
cp config/servidor.conf backup/servidor.conf
cp config/servidor.conf backup/
cp logs/acceso.log logs/error.log backup/diario/
cp -r config backup/config-copia
cp -iv config/servidor.conf backup/
-r: copia directorios recursivamente.-i: pregunta antes de sobrescribir.-n: no sobrescribe.-v: muestra cada operación.Una copia en el mismo servidor no es, por sí sola, un backup.
mv logs/acceso.log logs/acceso-anterior.log
mv logs/error.log backup/diario/
mv clientes/norte datos/
mv mueve directorios sin necesitar -r.-i, -n y -v ayudan a controlar la operación.Por eso mover un archivo grande entre discos puede tardar y requiere espacio en el destino.
Antes y después: listar el origen y el destino.
Origen → destino → copiar → mover → renombrar
mkdir directorio-vacio
rmdir directorio-vacio # solo si está vacío
rm archivo.txt # elimina un archivo
rm -i archivo.txt # pregunta
rm -r arbol-de-prueba # elimina el árbol
La terminal no envía estos objetos a una papelera. La recuperación no es sencilla.
whoami
pwd
ls -la arbol-de-prueba
rm -ri arbol-de-prueba
rm -rf no debería convertirse en una receta automática.
| Mensaje | Qué revisar |
|---|---|
command not found | Nombre, instalación o PATH. |
No such file or directory | Ruta, ubicación o componente faltante. |
Permission denied | Permisos del objeto y de la ruta. |
File exists | El destino ya existe. |
Not a directory | Un componente de la ruta es un archivo. |
Directory not empty | rmdir recibió un directorio con contenido. |
missing operand: falta un argumento obligatorio.invalid option: la opción no existe o un nombre comenzó con -.
touch -- -informe
rm -- -informe
-- marca el final de las opciones. Lo que sigue se interpreta como argumento.
comando --help.sudo por reflejo.El comando puede terminar bien y aun así actuar sobre un destino equivocado.
Eliminar → verificar → leer errores → corregir la causa
--help, help y man permiten consultar documentación.history -c y history -w limpian el historial de Bash.pwd, ls y cd permiten ubicarnos y recorrer el árbol./; una relativa depende del directorio actual.mkdir y touch crean la estructura de trabajo.cp copia, mv mueve y rm elimina.sudo.Organización de archivos desde una sesión SSH
--help, help y man.~/laboratorio-clase5..., ~ y cd -.