Archivos y Directorios
En Linux, todo es un archivo: dispositivos, directorios, enlaces, etc.
Tipos de archivos:
-Archivo regular (texto o binario)dDirectoriolEnlace simbólicocDispositivo de caracteresbDispositivo de bloques
# Ver tipo de archivo
file archivo.txt
# Muestra tipo: ASCII text, executable, etc.
# Información detallada
stat archivo.txt
# Muestra: inodo, permisos, tamaño, fechas
Editores desde Terminal
Nano (Recomendado para principiantes):
# Abrir archivo con nano
nano archivo.txt
# Atajos principales:
# Ctrl+O: Guardar (Write Out)
# Ctrl+X: Salir
# Ctrl+G: Ayuda
# Ctrl+W: Buscar
Vim (Para usuarios avanzados):
# Abrir archivo con vim
vim archivo.txt
# Modos:
# i: Insertar texto
# ESC: Volver a modo normal
# :wq: Guardar y salir
# :q!: Salir sin guardar
Para ver contenido sin editar: Usa cat, less, head, tail
Permisos y Propiedad
Linux usa un sistema de permisos basado en tres categorías:
# Ejemplo de permisos: -rwxr-xr--
# Posición 1: Tipo de archivo (- = archivo regular)
# Posiciones 2-4: Permisos del usuario (rwx = leer, escribir, ejecutar)
# Posiciones 5-7: Permisos del grupo (r-x = leer, ejecutar)
# Posiciones 8-10: Permisos de otros (r-- = solo leer)
Cambiar permisos (chmod):
# Modo numérico (octal)
chmod 755 script.sh
# 7 = rwx (usuario), 5 = r-x (grupo), 5 = r-x (otros)
chmod 644 config.txt
# Solo dueño puede escribir
# Modo simbólico
chmod u+x script.sh
# Añadir ejecución al usuario
chmod g-w archivo.txt
# Quitar escritura al grupo
chmod o=r archivo.txt
# Otros solo lectura
Cambiar propiedad (chown):
sudo chown usuario:grupo archivo.txt
# Cambiar usuario y grupo
sudo chown usuario archivo.txt
# Solo cambiar usuario
sudo chgrp grupo archivo.txt
# Solo cambiar grupo
Enlaces de Archivos
| Característica | Enlace Simbólico | Enlace Duro |
|---|---|---|
| Crear | ln -s origen destino |
ln origen destino |
| Inodo | Diferente al original | Mismo que el original |
| Si se borra original | Enlace roto | Sigue funcionando |
| Entre sistemas de archivos | Sí | No |
# Ejemplos prácticos
ln -s /var/log/syslog ~/syslog_link
# Enlace simbólico para acceso rápido
ln archivo.txt backup_hardlink.txt
# Enlace duro como backup
ls -i archivo.txt backup_hardlink.txt
# Mismo número de inodo para enlaces duros
Búsqueda en la Terminal
Buscar por nombre (find):
find . -name "*.txt"
# Buscar archivos .txt en directorio actual
find /home -type f -name "*.jpg"
# Archivos .jpg en /home
find . -size +100M
# Archivos mayores a 100MB
find . -mtime -7
# Modificados en últimos 7 días
find . -user juan
# Archivos del usuario juan
Buscar por contenido (grep):
grep "error" archivo.log
# Buscar "error" en archivo
grep -r "function" ./src/
# Buscar recursivamente en directorio
grep -i "ERROR" archivo.log
# Case insensitive
grep -n "texto" archivo.txt
# Mostrar número de línea
grep -A 3 -B 3 "error" log.txt
# Mostrar 3 líneas antes y después
Práctica Guiada: Organizador de Archivos
Crea un script que organice automáticamente tus descargas:
#!/bin/bash
# organizador_descargas.sh
# -------------------------------------------------
DIR_DESCARGAS="$HOME/Downloads"
DIR_ORGANIZADO="$HOME/Documents/Organizado"
# Crear directorios por tipo
mkdir -p "$DIR_ORGANIZADO"/{Documentos,Imagenes,Musica,Videos,Comprimidos}
# Mover documentos
find "$DIR_DESCARGAS" -name "*.pdf" -exec mv {} "$DIR_ORGANIZADO/Documentos/" \;
find "$DIR_DESCARGAS" -name "*.doc" -o -name "*.docx" -exec mv {} "$DIR_ORGANIZADO/Documentos/" \;
# Mover imágenes
find "$DIR_DESCARGAS" \( -name "*.jpg" -o -name "*.png" -o -name "*.gif" \) \
-exec mv {} "$DIR_ORGANIZADO/Imagenes/" \;
# Establecer permisos adecuados
chmod -R 755 "$DIR_ORGANIZADO"
# Crear enlace simbólico para acceso rápido
ln -s "$DIR_ORGANIZADO" "$HOME/Desktop/Organizado"
echo "Organización completada. Revisa $DIR_ORGANIZADO"
Para ejecutar:
chmod +x organizador_descargas.sh./organizador_descargas.sh