You are on page 1of 122

Bitcora GNU/LINUX de Juaramir.

com

Comandos GNU/Linux, Paquetes escenciales y Configuracin


Documento Elaborado por Juan Jos Ramrez Lama Versin 2.0 @Juaramir

2013

ndice general
1. Introduccin 1.1. Sistemas Operativos . . . . . . . . . . 1.1.1. UNIX . . . . . . . . . . . . . . 1.1.2. LINUX . . . . . . . . . . . . . Distribucin . . . . . . . . . . . 1.1.3. GNU/Linux . . . . . . . . . . . 1.1.4. Historia de GNU/Linux . . . . 1.2. Diferencias con Windows? . . . . . . 1.2.1. Compativilidad . . . . . . . . . 1.2.2. Software . . . . . . . . . . . . . 1.2.3. Robustez . . . . . . . . . . . . 1.3. Licencias de Software . . . . . . . . . . 1.3.1. Propiedad intelectual . . . . . . 1.3.2. Clasicacin . . . . . . . . . . Clausulas . . . . . . . . . . . . 1.3.3. Software Propietario . . . . . . 1.3.4. Software Libre . . . . . . . . . Licencias GNU GPL . . . . . . Licencia LGPL y GFDL . . . . 1.3.5. Comparativa S.L. y S.P. . . . . 1.4. Algunos Trminos . . . . . . . . . . . 1.5. Distribucin GNU/Linux . . . . . . . 1.5.1. Arquitectura . . . . . . . . . . 1.5.2. Distribuciones . . . . . . . . . 1.5.3. Ubuntu GNU/Linux . . . . . . 1.5.4. Sistema Ubuntu . . . . . . . . Inicio del Sistema . . . . . . . . Interfaz Grca de Usuario . . Manejo Bsico de GNU/Linux reas de Trabajo . . . . . . . . Explorador de Archivos . . . . Nautilus . . . . . . . . . . . . . 1 1 1 2 2 3 3 4 4 4 5 5 5 5 5 6 6 7 7 7 7 8 8 9 10 10 10 11 12 13 13 13 ii

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ndice general

iii

1.6. Filesystems . . . . . . . . . . . . . . . . . . . . . . . . 1.6.1. Sistemas de archivos soportados por Linux . . 1.6.2. Sistemas de archivos LVM . . . . . . . . . . . . En Sistemas Pequeos . . . . . . . . . . . . . . En Sistemas Grandes . . . . . . . . . . . . . . . 1.7. Sistemas de Archivos y Jerarqua . . . . . . . . . . . . 1.7.1. Organizacin de sistema de archivos . . . . . . El Directorio Raz / . . . . . . . . . . . . . . . Directorio /bin . . . . . . . . . . . . . . . . . . Directorio /boot . . . . . . . . . . . . . . . . . Directorio /dev . . . . . . . . . . . . . . . . . Directorio /etc . . . . . . . . . . . . . . . . . . Directorio /home . . . . . . . . . . . . . . . . Directorio /lib . . . . . . . . . . . . . . . . . . El resto de directorios . . . . . . . . . . . . . . /usr . . . . . . . . . . . . . . . . . . . . . . . . Directorio /var . . . . . . . . . . . . . . . . . . Directorio /lost+found. Perdidos y encontrados Directorio /proc . . . . . . . . . . . . . . . . . 1.8. Sistema X-Window . . . . . . . . . . . . . . . . . . . . 1.8.1. Arquitectura Cliente / Servidor . . . . . . . . . 1.8.2. XFree86 . . . . . . . . . . . . . . . . . . . . . . 1.8.3. Arranque del sistema X-Window . . . . . . . . 1.8.4. Gestores de ventanas . . . . . . . . . . . . . . . 1.8.5. Gestores de escritorio . . . . . . . . . . . . . . Desktop Managers . . . . . . . . . . . . . . . . 2. Interprete de Comandos 2.1. Bash . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Comandos Bsicos UNIX . . . . . . . . . . . . . 2.2.1. Listar archivos (ls) . . . . . . . . . . . . . 2.2.2. Imprimir directorio actual (pwd) . . . . . 2.2.3. Cambio de directorio (cd) . . . . . . . . . 2.2.4. Crear Directorios (mkdir) . . . . . . . . . 2.2.5. Borrar directorios (rmdir) . . . . . . . . . 2.2.6. Crear archivos (touch) . . . . . . . . . . . 2.2.7. Copiar archivos o directorios (cp) . . . . . 2.2.8. Mover archivos o directorios (mv) . . . . . 2.2.9. Renombrar varios archivos a la vez (mmv) 2.2.10. Eliminar archivos o directorios (rm) . . . 2.2.11. Caracteres de globalizacin (comodines) . 2.2.12. Ayuda (man, apropos) . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

14 14 14 14 15 15 16 16 17 17 17 17 17 18 18 18 19 19 19 19 20 21 21 22 22 22 26 26 27 27 28 28 28 29 29 29 29 30 31 31 32

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

ndice general

iv

2.2.13. Lectura de archivos . . . . . . . . . . . . . . 2.2.14. ln (enlace simblico) . . . . . . . . . . . . . 2.2.15. Cambiar permisos (chmod) . . . . . . . . . 2.2.16. Cambiar permisos sin cdigo octal (chmod) 2.3. Comandos Avanzados . . . . . . . . . . . . . . . . 2.3.1. alias . . . . . . . . . . . . . . . . . . . . . . 2.3.2. cat: Manejo de archivos . . . . . . . . . . . Mostrar contenido de un archivo: . . . . . . Concatenar archivos: . . . . . . . . . . . . Unir dos vdeos en unos solo: . . . . . . . . 2.3.3. date . . . . . . . . . . . . . . . . . . . . . . 2.3.4. du (disk usage) . . . . . . . . . . . . . . . . 2.3.5. df . . . . . . . . . . . . . . . . . . . . . . . 2.3.6. sleep . . . . . . . . . . . . . . . . . . . . . . 2.3.7. time . . . . . . . . . . . . . . . . . . . . . . 2.3.8. host . . . . . . . . . . . . . . . . . . . . . . 2.3.9. ip . . . . . . . . . . . . . . . . . . . . . . . 2.3.10. uname . . . . . . . . . . . . . . . . . . . . . 2.3.11. which . . . . . . . . . . . . . . . . . . . . . 2.3.12. whereis . . . . . . . . . . . . . . . . . . . . 2.3.13. cal . . . . . . . . . . . . . . . . . . . . . . . 2.3.14. split . . . . . . . . . . . . . . . . . . . . . . 2.3.15. sort . . . . . . . . . . . . . . . . . . . . . . 2.3.16. wc (word counter) . . . . . . . . . . . . . . 2.3.17. le . . . . . . . . . . . . . . . . . . . . . . . 2.3.18. nger . . . . . . . . . . . . . . . . . . . . . 2.3.19. who . . . . . . . . . . . . . . . . . . . . . . 2.3.20. grep y egrep . . . . . . . . . . . . . . . . . . 2.3.21. nd . . . . . . . . . . . . . . . . . . . . . . 3. Compresin y Empaquetado 3.1. Empaquetado .tar . . . . . . . 3.2. Compresin . . . . . . . . . . . 3.2.1. .gz (gzip) . . . . . . . . 3.3. Compresin . . . . . . . . . . . 3.3.1. .tar.gz - .tar.z - .tgz (tar 3.3.2. .bz2 (bzip2) . . . . . . . 3.3.3. .tar.bz2 (tar con bzip2) 3.3.4. .zip (zip) . . . . . . . . 3.3.5. .lha (lha) . . . . . . . . 3.3.6. .zoo (zoo) . . . . . . . . 3.3.7. .rar (rar) . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32 33 33 34 34 34 34 34 35 35 36 36 36 37 37 37 37 37 38 38 38 38 39 39 39 39 40 40 40 41 41 41 41 41 42 42 42 42 43 43 43

. . . . . . . . . . . . . . . . . . . . . . . . con gzip) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

ndice general

4. Acceso remoto a terminal (SSH) 4.1. Que es? . . . . . . . . . . . . . . 4.2. Instalacin . . . . . . . . . . . . 4.3. Acceso Remoto . . . . . . . . . . 4.4. Acceso Remoto: Envio/Recepcin 4.5. Acceso Remoto Grco (SSH) . .

. . . . . . . . . . . . . . . . . . . . . de Archivos . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

44 44 44 45 45 45 47 47 47 48 48 48 49 49 50 52 52 53 53 53 58 58 59 61 62 64 64 65 65 68 69 70 70 70 71 71 71 72 72

5. Administracin Bsica 5.1. Administracin de Usuarios . . . . . . . . . . 5.1.1. Comandos para Administrar Usuarios: 5.1.2. Otros Comandos: . . . . . . . . . . . . 5.2. Administracin de Grupos . . . . . . . . . . . 5.2.1. Comandos para Administrar Grupos: . 5.3. Administracin de Aplicaciones . . . . . . . . 5.3.1. Sistema de paquetes DEB: . . . . . . . 5.3.2. APT: . . . . . . . . . . . . . . . . . . 6. Servicio de Impresoras (CUPS) 6.1. Instalacin . . . . . . . . . . . . . 6.2. Conguracin . . . . . . . . . . . . 6.2.1. Conguracin de CUPS . . 6.3. Conguracin de clientes de CUPS

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

7. Shell Scripts 7.1. Ejecucin de un comando en bash . . . . . . . . . 7.2. Ambiente y variables de ambiente . . . . . . . . . . 7.3. Expansiones . . . . . . . . . . . . . . . . . . . . . . 7.4. Comandos y programas tiles al hacer scripts . . . 7.5. Script Basico . . . . . . . . . . . . . . . . . . . . . 7.5.1. Cmo Crear un script sencillo . . . . . . . . 7.5.2. Para ejecutarlo . . . . . . . . . . . . . . . . 7.6. Algunos Ejemplos . . . . . . . . . . . . . . . . . . . 7.7. Lecturas recomendadas: Scripts bsicos para bash 7.8. Ejercicios: Scripts bsicos para bash . . . . . . . . 8. CRON 8.1. CRON: 8.2. CRON: 8.3. CRON: 8.4. CRON: 8.5. CRON: 8.6. CRON: 8.7. CRON:

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

Instalacin . . . . . . . . . . . . . . crontab . . . . . . . . . . . . . . . . Operadores . . . . . . . . . . . . . . Listar todas tus tareas del crontab . Borrar todas tus tareas del crontab ahorrar tiempo . . . . . . . . . . . . ahorrar tiempo . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

ndice general

vi

8.8. CRON: Creacin de un crontab para un usuario . . . . . . . . . . . . . . . . . . . 8.9. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9. Manejo de Nuevo Hardware 9.1. Identicar tu Particin o Disco . . . . 9.2. Identicar tu Particin o Disco . . . . 9.3. Preparar la Ubicacin para Montar . . 9.4. Particionamiento ***(Pendiente)*** . 9.4.1. Crear un sistema de archivos . 9.4.2. Herramientas Grcas . . . . . 9.5. Montar Particin de Manera Temporal 9.5.1. NTFS . . . . . . . . . . . . . . 9.5.2. Fat . . . . . . . . . . . . . . . . 9.5.3. ext . . . . . . . . . . . . . . . . 9.6. Montar Particin de Manera Denitiva 9.6.1. NTFS . . . . . . . . . . . . . . 9.6.2. Fat . . . . . . . . . . . . . . . . 9.6.3. ext4 . . . . . . . . . . . . . . . 9.7. Montar la particin . . . . . . . . . . .

72 72 75 75 75 76 76 76 76 77 77 77 78 78 78 78 78 79 80 80 81 81 87 88 91 92 93 95 98 99 100 104 104 107 107 107 107

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

10.Servidor GNU/Linux 10.1. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2. Sistema Operativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.1. Instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3. Conguracin de Red . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.1. Asignando IP Esttica . . . . . . . . . . . . . . . . . . . . . . 10.4. Servidor Web con LAMP . . . . . . . . . . . . . . . . . . . . . . . . 10.4.1. Congurar MySQL . . . . . . . . . . . . . . . . . . . . . . . . PhpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5. Servidor FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6. Dominios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7. Entorno Grco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8. Servidor de archivos Samba . . . . . . . . . . . . . . . . . . . . . . . 10.8.1. Conguracin Samba sin Entorno Graco ***(pendiente)*** 10.9. Blog con Wordpress . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.10. Lecturas Recomendadas . . . . . . . . . . . . . . . . . . . . . . . . . 10.10.1.Bloquear Ataques de Fuerza Bruta . . . . . . . . . . . . . . . 10.10.2.Aadir Host Personalizado . . . . . . . . . . . . . . . . . . . 10.10.3.Otros Servidores . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

ndice general

vii

11.Punto de Restauracin con Clonezilla 11.1. Inicio . . . . . . . . . . . . . . . . . . . 11.2. Crear Imagen para Respaldo . . . . . 11.3. Utilizar Imagen para Restaurar . . . . 11.4. Resumen . . . . . . . . . . . . . . . . . 11.4.1. Creacin de Imagen . . . . . . 11.4.2. Restauracin de Imagen . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

108 108 111 113 114 114 115

Captulo 1

Introduccin
1.1. Sistemas Operativos

Que es un Sistema Operativo? Sistema Operativo (S.O.): Conjunto de programas destinados a permitir la comunicacin del usuario con un computador y gestionar sus recursos de manera eciente. Ejemplo 1.1 Ejemplos de Sistemas Operativos Unix: System V, Solaris, HP-UX, AIX,FreeBSD, NetBSD, Mac OS, Mac OSx Microsoft: D.O.S, Windows 3.1, 3.11, 95, 98, 2000, XP, Vista, 7, 8. GNU/Linux (Distribuciones): Debian, Mandrake, Mandriva, Red Hat, Fedora, Suse, OpenSuse, Ubuntu, Archlinux, Linux Mint, Slax, Pearlinux, Slackware. 2

1.1.1.

UNIX

1965 Instituto de Tecnologa de Massachussets (MIT), la compaia General Electric (GE) y los Laboratorios de Telefona de Bell (BTL) inician el proyecto MULTICS. Sistema operativo interactivo/multiusuario. 1

Captulo 1. Introduccin

No llego a nalizarse pero dio los fundamentos necesarios para la creacin de un Sistema Operativo. En 1969 D. Ritchie y K. Thompson trabajan en un nuevo S.O. UNICS, que luego pasara a llamarse UNIX (1970). La primera versin fue escrita en asembler para una DEC PDP-7. Se crea un compilador para el Lenguaje C. Se reescribe el ncleo de Unix en C, esto permite utilizar Unix en otras arquitecturas de HW.(1973). La Universidad de Berkley desarrolla una versin de Unix (Unix BSD). Debido a problemas Judiciales AT&T, se ofrece una licencia de Unix la que no ofrece soporte. Todas las versiones creadas deban pagar licencia AT&T. Se publica POSIX.1 Actualmente existen versiones de Unix: 1. Solaris (Sun Microsystem). 2. HP-UX (HP). 3. AIX (IBM).

1.1.2.

LINUX

Andrew Tanenbaum crea Minix. Es el kernel de un S.O. basado en Unix, para x86 Lo usa para sus clases ya que no es posible estudiar el cdigo fuente de UNIX. Lo disea para x86 ya que es una plataforma econmica. Linus Torvalds se basa en minix para crear un kernel para i386 (procesadores de 32 bits), bajo licencia GPL. Linux es slo el kernel de un S.O. Comienza en 1991 con la versin 0.02. Cumple con el estndar Posix. Contribuciones de todo el mundo. En 1994 libera la versin 1.0. www.kernel.org. Se une a las aplicaciones GNU + kernel Linux. Distribucin Coloquialmente llamada distro. Distribucin de software basada en el ncleo Linux. Incluye determinados paquetes de software para satisfacer las necesidades de un grupo especco de usuarios. Existen ediciones domsticas, empresariales y para servidores. Compuestas, total o mayoritariamente, de software libre, aunque a menudo incorporan aplicaciones o controladores propietarios.

Captulo 1. Introduccin

Figura 1.1: quitectura de GNU/Linux

1.1.3.

GNU/Linux

El proyecto GNU fue iniciado por Richard Stallman con el objetivo de crear un sistema operativo completamente libre: el sistema GNU. GNU es un acrnimo recursivo que signica GNU No es Unix (GNU is Not Unix). Richard Stallman: Se puede pronunciar de cualquier forma, la nica pronunciacin errnea es decirle linux. Linux es un ncleo de sistema operativo libre tipo Unix. Fue concebido por el entonces estudiante de ciencias de la computacin nlands, Linus Torvalds, en 1991. GNU/Linux es la referencia a la combinacin del Kernel Linux, que es usado con herramientas de sistema GNU. A pesar de que Linux es, en sentido estricto, el sistema operativo, parte fundamental de la interaccin entre el ncleo y el usuario (o los programas de aplicacin) se maneja usualmente con las herramientas del proyecto GNU o de otros proyectos como GNOME.

1.1.4.

Historia de GNU/Linux

El proyecto GNU, que se inici en 1983 por Richard Stallman; tiene como objetivo el desarrollo de un sistema operativo Unix completo y compuesto enteramente de software libre. La historia del ncleo Linux est fuertemente vinculada a la del proyecto GNU. En 1991 Linus Torvalds empez a trabajar en un reemplazo no comercial para MINIX9 que ms adelante acabara

Captulo 1. Introduccin

siendo Linux. Cuando Torvalds liber la primera versin de Linux, el proyecto GNU ya haba producido varias de las herramientas fundamentales para el manejo del sistema operativo, incluyendo un intrprete de comandos, una biblioteca C y un compilador, pero como el proyecto contaba con una infraestructura para crear su propio ncleo (o kernel), el llamado Hurd, y este an no era lo suciente maduro para usarse, comenzaron a usar a Linux a modo de continuar desarrollando el proyecto GNU, siguiendo la tradicional losofa de mantener cooperatividad entre desarrolladores. El da en que se estime que Hurd es suciente maduro y estable, ser llamado a reemplazar a Linux. Entonces, el ncleo creado por Linus Torvalds, quien se encontraba por entonces estudiando en la Universidad de Helsinki, llen el espacio nal que haba en el sistema operativo de GNU.

1.2.

Diferencias con Windows?

Windows pertenece a una empresa llamada MICROSOFT: Debemos pagar una licencias por su instalacin y uso. La instalacin es mnimamente congurable aunque es muy sencilla. No permite utilizar el Sistema Operativo mientras se instala. GNU/Linux es libre y le pertenece a la comunidad: No debemos pagar licencias. Es TOTALMENTE GRATUITO. Al instalar LINUX no tendr nunca problemas de legalidad. En algunas distribuciones su instalacin es muy sencilla. Permite utilizar el sistema operativo mientras se instala (LiveCD). Permite personalizar los paquetes a instalar.

1.2.1.

Compativilidad

Ninguno de los dos sistemas operativos son totalmente compatibles con el Hardware, a pesar de que Windows se acerca ms, los dos estn cerca de conseguirlo. Aunque Linux no esta detrs de ninguna casa comercial gracias a su elevada popularidad ofrece una alta compatibilidad ofreciendo, adems, actualizaciones frecuentes. Windows al ser parte de Microsoft intenta ofrecer una gran cantidad de drivers ya que su gran poder econmico hace que las empresas mismas de hardware creen sus propios drivers.

1.2.2.

Software

Linux al tener menos software en algunos campos sufre una menor aceptacin por parte de las empresas, aunque gracias a los apoyos de empresas como Sun Microsystems o IBM se ha logrado muchos avances. Windows al ser el mas fcil de usar en las empresas, posee una gran cantidad de software.

Captulo 1. Introduccin

1.2.3.

Robustez

Linux se ha caracterizado siempre por la robustez de su sistema ya que pueden pasar meses e incluso aos sin la necesidad de apagar o reiniciar el equipo, tambin si una aplicacin falla simplemente no bloquea totalmente al equipo. En Windows siempre hay que reiniciar cuando se cambia la conguracin del sistema, se bloquea fcilmente cuando ejecuta operaciones aparentemente simples por lo que hay que reiniciar el equipo.

1.3.

Licencias de Software

Las Licencias de Software estn ligadas a los derechos de autor o Copyright, los cuales le dan al autor de una obra, por el hecho de haberla creado, un derecho de propiedad exclusivo y oponible a todos, denominado Derecho de Autor.

1.3.1.

Propiedad intelectual

Necesidad de dar una expresin estatutaria a los derechos morales y econmicos de los creadores sobre sus creaciones. Necesidad de promover la creatividad y divulgar sus resultados, adems de promover el comercio honesto que contribuir al desarrollo econmico y social. Una licencia de software establece un contrato legal entre el/los autor/es del software y el usuario de dicho software, el cual establece los derechos y obligaciones contrados al momento de adquirir el software. Este contrato no vende ninguno de los derechos de software al usuario, sino que concede el derecho a hacer uso de l normado por las clusulas indicadas en la licencia de software. Todo software tiene asociado una licencia.

1.3.2.

Clasicacin

De acuerdo a las licencias de software podemos clasicarlas en: Licencia de Software Propietario. Licencia de Software Libre. Clausulas Esto se basa en las clusulas de la licencia del software, tambin se llama: Licencia del programa. CLUF (Contrato Licencia de Usuario Final). EULA (End User License Agreement).

Captulo 1. Introduccin

1.3.3.

Software Propietario

Se reere al software que tiene licencias de software con las siguientes caractersticas: Consecin de licencia: En consideracin del pago de la cuota por concepto de LICENCIA. Restriccin de copias: Slo se permite una copia para efectos de respaldo Restricciones sobre uso: No se autoriza el uso para algo que no este contemplado. No se puede hacer ingeniera inversa ni descompilar el programa ejecutable para acceder al cdigo fuente. Garanta Limitada: El software se proporciona omo est"sin garanta de ninguna clase. Adems, la empresa de software no garantiza ni hace representacin alguna con respecto al uso o a los resultados del uso del software. Existe tambin software que no es tan restrictivo, pero no se puede obtener el cdigo fuente: Freeware: Permiten la redistribucin pero no la modicacin (y su cdigo fuente no est disponible). Normalmente vienen acompaados de publicidad. Shareware: autorizado para redistribuir copias, pero tampoco se puede obtener el cdigo fuente. Normalmente solo se puede utilizar un porcentaje de toda su funcionalidad o viene con fecha de expiracin.

1.3.4.

Software Libre

El Software libre nace de la mano de Richar Stallman, quien cre la fundacin de software libre (Free Software Foundation, FSF www.fsf.org El software libre no solo se reere a aspectos legales de su licencia, sino tambin a la forma de hacer las cosas. Existen diversos documentos que reejan dicha losofa, como la catedral y el bazar (Eric S. Raymond, 1997). Son 4 las caractersticas / propiedades o libertades fundamentales para que un software sea "Software Libre". 0. 1. 2. 3. Libertad para ejecutar el programa con cualquier propsito. Libertad para estudiar y modicar el programa. Libertad de copiar el programa de manera que puedas ayudar a tu vecino. Libertad de mejorar el programa, y hacer pblicas tus mejoras, de forma que se benecie toda la comunidad.

Estos ltimos dos puntos deben tener una restriccin: Si redistribuye el programa, modicado o no, debe hacerse bajo las mismas condiciones. Esta clusula es la que garantiza la libertad del programa, impidiendo que alguien tome un desarrollo libre y lo transforme (o incluya) en un desarrollo propietario, limitando alguna de las libertades citadas. Se aprecia que no se hace referencia alguna al valor del software, por lo tanto: SOFTWARE LIBRE distinto SOFTWARE GRATIS

Captulo 1. Introduccin

Ntese no se menciona (y por ende, no se limita) la posibilidad de que quien desarrolla o distribuye un programa libre cobre por ello un monto de dinero. Licencias GNU GPL Licencia GNU GPL (GNU General Public Licence). Se crea para darle un sostn legal al software libre. Actualmente se dene la GPL ver. 3 del 29 de junio del 2007. Garantiza las 4 libertades. Incluye una Ausencia Total de Garanta. Cualquier modicacin deber generar Software Libre. Licencia LGPL y GFDL Es utilizada para el uso de bibliotecas. Permite enlazar software libre (bibliotecas) a un Software propietario. Nace como estrategia de apoyo al S.L. Se crea licencia para documentacin GFDL: Similar a la GPL, pero orientada a la documentacin.

1.3.5.

Comparativa S.L. y S.P.


S. Libre Ilimitadas Cualquiera Siempre estar disponible Sin Garanta Se Permite S. Propietario Solo 1 para efectos de respaldo Solo lo que indica la licencia No se entrega Garanta Limitada No se permite

Caractersticas Copias Uso Cdigo Fuente Garantas Modicacin

1.4.

Algunos Trminos
Consola: Es un programa para ingresar comandos va teclado. Estos comandos sirven para decirle al sistema operativo que realice determinada accin. Los comandos se ingresan uno a la vez. Por lo general la consola se encuentra ubicada en Aplicaciones->Accesorios>Terminal. Distribucin: Linux en s es slo el ncleo del sistema operativo. Una distribucin Linux es el ncleo ms un montn de herramientas para que sea ms fcil congurar el sistema operativo y otro montn de aplicaciones que pueden variar de una distribucin a otra. Ejemplos de distribuciones Linux son: Ubuntu, Fedora, Arch, Mandriva. Existen cientos, pueden elegirse de acuerdo a simples gustos o a complejas necesidades.

Captulo 1. Introduccin

Distro: Diminutivo de distribucin. Root: Es un tipo de usuario en Linux. Es aquel que tiene permisos para realizar cualquier tipo de tareas en el sistema operativo y el hardware del PC. Repositorio: Conjunto de enlaces y paquetes de software normalmente alojados en servidores de Internet. Se usan para que sea ms fcil localizar, bajar e instalar todos los programas que usamos en linux. Terminal: Consola de comandos al estilo DOS. GRUB: (GRand Unier Bootloader) es un gestor de arranque: es lo primero que se carga cuando se inicia la computadora. Kernel: ncleo del sistema. La parte ms bsica del sistema operativo. El resto de elementos son aadidos para aumentar la funcionalidad y usabilidad. Gestor de paquetes: Aplicacin ya sea en modo grco o consola que nos permite buscar, instalar y desinstalar aplicaciones junto con sus dependencias. Superusuario: Root. GUI: Interfaz Grca de Usuario, del ingls Graphical User Interface. Demonio: Programa que arranca junto con el sistema y permanece activo todo el tiempo junto al sistema, si es matado se reinicia. Kernel Panic: Tipo de error en el que el sistema se bloquea, slo se puede solucionar con el reinicio, algo as como la Pantalla Azul de la Muerte de Hasefroch (Microsoft), aunque es muy difcil que nos salga este error.

1.5.

Distribucin GNU/Linux
Es un sistema operativo completo que incluye una gran cantidad de software Esta compuesto por: 1. Kernel Linux. 2. Herramientas GNU. 3. Herramientas de instalacin y administracin (creadas por la distribucin). 4. Recopilacin de Software Libre (aplicaciones de usuario) De lo anterior lo que diferencia a cada distribucin es 3 Una distribucin de Linux es: Sistema Operativo + Aplicaciones. Por lo tanto una Distribucin de Linux es ms que un Sistema Operativo (S.O.).

1.5.1.

Arquitectura

Captulo 1. Introduccin

Figura 1.2: Arquitectura GNU/Linux

1.5.2.

Distribuciones
Distribucin Red Hat Linux Fedora Linux Centos Linux openSUSE Linux Debian Linux Ubuntu Linux Mepis Linux Gentoo Linux Turbo Linux Knoppix Linux Kernel de Linux

URL redhat.com fedoraproject.org centos.org opensuse.com debian.org Algunas Distribuciones son: ubuntu.com mepis.org gentoo.org turbolinux.com knoppix.org kernel.org Cuantas Distribuciones de Linux Existen? www.distrowatch.com

Cada distribucin tiene cualidades propias. El usuario nal no nota la diferencia. Existen diferencias notables en Instalacin, conguracin y administracin. Gran Avance hacia usuarios nales. Automatiza el proceso de instalacin y actualizacin. Todo esta integrado. Ventajas: Costo 0. Seguro (casi no existen virus). Independencia de proveedores. Tecnologia Libertaria. Especial provecho para la educacin. Desventajas:

Captulo 1. Introduccin

10

Casi nulo soporte comercial. Ausencia de soporte tcnico para usuario domestico. Baja disponibilidad de Juegos.

1.5.3.
1. 2. 3. 4. 5.

Ubuntu GNU/Linux

Qu es Ubuntu? Cul es la versin actual? Cada cuanto tiempo aparece una nueva versin? Cuanto Tiempo dura el soporte para una versin? Existen distintas ediciones (Empresas, Hogar, Profesional)? Basada en la distribucin Debian GNU/Linux. Informacin www.ubuntu.com Poltica de versin cada 6 meses. Versiones: Sin Soporte: Warty Warthog (4.10), Hoary Hedgehog (5.04), Breezy Badger (5.10), Dapper Drake (6.06 LTS), Edgy Eft (6.10), Feisty Fawn (7.04), Gutsy Gibbon (7.10), Hardy Heron (8.04 LTS), Intrepid Ibex (8.10), Jaunty Jackalope (9.04), Karmic Koala (9.10), Lucid Lynx (10.04 LTS), Maverick Meerkat (10.10). Con Soporte: Natty Narwhal (11.04), Oneiric Ocelot (11.10), Precise Pangolin (12.04 LTS), Quantal Quetzal (12.10). En Actual: Raring Ringtail (13.04). En desarrollo: (n.n.) (13.10).

Cada 4 versiones de Ubuntu se libera una versin con soporte tcnico extendido a la que se aade la terminacin LTS. Esto signica que los lanzamientos LTS contarn con actualizaciones de seguridad de paquetes de software durante tres aos en entorno de escritorio y cinco aos en servidor por parte de Canonical, a diferencia de los otros lanzamientos de Ubuntu que slo cuentan con 18 meses de soporte. Main Contiene aplicaciones con Restricted Contiene aplicaciones con no tienen licencias libres Utiliza sistema de repositorios (al igual que Debian GNU/Linux): Universe Contiene una gran cantida ro sin soporte ocial Multiverse Contiene aplicaciones sin s

1.5.4.

Sistema Ubuntu

Inicio del Sistema Al instalar un sistema operativo Gnu/Linux, normalmente se congura un gestor de arranque LILO o GRUB (Ubuntu instala GRUB) Normalmente se encuentra instalado junto a otros sistemas operativos.

Captulo 1. Introduccin

11

Se instala en el MBR (Main Boot Record). Selecciona el sistema que se quiere utilizar. En los inicios de Unix no existan las interfaces grcas. Slo se poda utilizar el Modo Texto. Actualmente es posible utilizarlo en Linux con las siguientes combinaciones de teclas: Control + Alt + F1 (Consola Virtual 1, tty1). Control + Alt + F2 (Consola Virtual 2, tty2). ... Control + Alt + F7 (Modo Grco). A esto se le conoce como consola de Unix/Linux. Debido a que es un sistema multiusuario se debe ingresar con una cuenta de usuario (login : contrasea). El usuario/cuenta ms importante es root o Super Usuario.

Figura 1.3: LILO

LILO GRUB Interfaz Grca de Usuario En Unix/Linux se utiliza el sistema grco X-Window. Es altamente congurable. Es del tipo Cliente/Servidor. La implementacin para GNU/Linux es Xorg. Xorg GNU/Linux

Captulo 1. Introduccin

12

Figura 1.4: GRUB Existen varias GUIs para Linux. Algunas son Simples o Minimalistas (uxbox, after step, xfce). Las 2 principales y ms completas son: KDE y Gnome. Gnome Xorg GNU/Linux Para ingresar el sistema grco se debe indicar: Login y Contrasea. Seleccionar el GUI (depende de lo que este instalado en el equipo). Idioma. Se puede Reiniciar o apagar el equipo. Manejo Bsico de GNU/Linux Manejo del Mouse: 1. Botn Derecho (Opciones). 2. Botn Izquierdo (Seleccin/Accin). 3. Ambos Botones o Scroll (Pegar). F1 Ayuda del Programa F11 Maximiza/Restaura Alt+F1 Abre Men Aplicaciones Abre Dialogo Ejecutar Aplicacin Atajos de teclado: Alt+F2 Alt+F4 Cierra Programa Alt+Tab Cambiar entre Aplicaciones Abiertas Control+Alt + Arrow Cambia entre escritorios Mayor informacin Sistema->Ayuda->Documentacin del sistema : Otras categoras documentales -> Escritorio.

Captulo 1. Introduccin

13

Figura 1.5: Ingreso al Sistema

reas de Trabajo En los sistemas Unix/Linux se puede tener ms de un escritorio o rea de trabajo (virtual). En un escritorio se puede ejecutar un conjunto de aplicaciones y pasar a otro escritorio que no tendr nada ejecutado. Al volver al escritorio anterior se aprecia que las aplicaciones ejecutas se mantienen. Para cambiarse de reas de trabajo se debe seleccionar el applet Selector de reas de trabajo (por defecto son 4, rea 1, rea 2 ...). Sobre Dicho applet se pueden modicar las preferencias (Botn derecho). Explorador de Archivos El explorador de archivos de Gnome se denomina Nautilus. El objetivo es identico al Explorer de Windows. Para ejecutarlo: Lugares -> Carpeta personal. Nautilus En los Sistemas Unix/Linux existen archivos y directorios ocultos. Todo archivo/directorio que comienza con . es oculto (.ssh, .bash prole). En Nautilus se debe activar la vista de archivos ocultos. Con Ctrol+H, Ver -> Mostrar archivos ocultos. Para crear un archivo/directorio oculto solo se debe agregar . al comienzo del nombre.

Captulo 1. Introduccin

14

Conguracin Nautilus en : Editar -> Preferencias Para ahorrar espacio u ordenar varios archivos se comprimen. Existen diversos formatos de compresin : zip, rar, arj, gz, bz2 Gnome incluye la herramienta le-roller que permite: Descomprimir, Comprimir. Los formatos que soporte depender de los programas instalados (en realidad es un frontend). Para Descomprimir : Botn derecho -> Extraer Aqu (para un archivo comprimido). Para comprimir: Seleccionar archivos/directorios a comprimir, Botn derecho -> Crear archivador

1.6.
1.6.1.

Filesystems
Sistemas de archivos soportados por Linux

ext2 el primer sistema de archivos diseado expresamente para Linux. ext3 versin mejorada de Ext2, ampliamente utilizada en distribuciones Linux. ext4 nuevo sistema de archivos para Linux evolucionado de Ext3 algunas de sus ventajas con respecto a este ltimo son: aumento del tamao del sistema de archivos a 1 Exabay = 220 Tb y del tamao mximo por archivo (16 Tb), nmero ilimitado de directorios frente a los 32.000 de Ext3, mayor velocidad en la creacin y borrado de archivos y menor uso del CPU. XFS Implementado para sistemas Unix, rpido acceso para grandes cantidades de datos y altas velocidades, pero lento en archivos pequeos. Se utiliza en grandes servidores y donde se maneje mucha informacin. ReiserFS Sistema de archivos diseado e implementado por la empresa Namesys, liderado por Hans Reiser. Es soportado por Linux y otros sistemas operativos (algunos a travs de implementaciones muy inestables).

1.6.2.

Sistemas de archivos LVM

LVM es el acrnimo de Logical Volume Manager. Los volmenes de almacenamiento bajo el control de LVM pueden ser redimensionados y movidos a voluntad, aunque esto quiz necesite actualizar las herramientas del sistema. En Sistemas Pequeos Una de las decisiones que afronta un usuario instalando GNU/Linux es cmo particionar el disco duro. La necesidad de estimar cuanto espacio ser necesario para el sistema, para los temporales o para los datos personales, puede convertirse en algo problemtico, por lo que muchos usuarios optan por crear una particin que ocupe todo el disco y all introducir los datos. An habiendo estimado correctamente cunto espacio se necesita para /home, /usr, /tmp, o cualquier otro directorio importante, es bastante comn que nos quedemos sin espacio en estas particiones, cuando tenemos espacio de sobra en alguna otra.

Captulo 1. Introduccin

15

Con el uso de un administrador de volmenes lgicos, el disco completo puede ser asignado a un nico grupo lgico y denir distintos volmenes lgicos para almacenar /home u otros directorios. En el caso que nos quedemos sin espacio, por ejemplo, en /home, y tenemos espacio en /opt, podramos redimensionar /home y /opt y usar el espacio que le hemos quitado a /opt y aadrselo a /home. Hay que tener en cuenta, que para realizar esto, nuestro sistema de archivos debe soportar el redimensionado por arriba y por abajo, como ReiserFS. Otra alternativa sera dejar una cierta cantidad de espacio del disco sin asignar y cuando fuera necesario, expandir el volumen. En Sistemas Grandes Administrar un sistema con muchos discos es un trabajo que consume tiempo, y se hace particularmente complejo si el sistema contiene discos de distintos tamaos. Equilibrar los requerimientos de almacenamiento de distintos usuarios (a menudo conictivos) puede ser una tarea muy laboriosa y compleja. Los grupos de usuarios (llammosles por ejemplo administracin, desarrollo, etc.) pueden tener sus volmenes lgicos y stos pueden crecer lo que sea necesario, y el administrador puede realizar las operaciones oportunas sobre dichos volmenes. Cuando un nuevo disco se aade al sistema, no es necesario mover los datos de los usuarios. Simplemente se aade el nuevo disco al grupo lgico correspondiente y se expanden los volmenes lgicos todo lo que se considere adecuado. Tambin se pueden migrar los datos de discos antiguos a otros nuevos, de forma totalmente transparente al usuario. Adicionalmente, existe soporte para sistemas de archivos adicionales ajenos, para facilitar el intercambio de archivos con otros sistemas operativos. Estos sistemas de archivos ajenos funcionan exactamente como los propios, excepto que pueden carecer de caractersticas usuales UNIX , o tienen curiosas limitaciones, u otros inconvenientes. Fat16/Fat32: Sistemas Dos/Windows 95, Windows 98, este sistema de archivos produce una gran fragmentacin del disco. NTFS: sistema de archivos implementado para los sistemas operativos Windows Xp/2000/2003 server, Vista, 7 y 8.

1.7.

Sistemas de Archivos y Jerarqua

Un sistema Linux reside bajo un rbol jerrquico de directorios bajo el estandar FHS. FHS detalla los nombres, ubicaciones, contenidos y permisos de los archivos y directorios. Todo en un sistema Linux es un archivo, tanto el Software como el Hardware. Desde el ratn, pasando por la impresora, el reproductor de DVD, el monitor, un directorio, un subdirectorio y un archivo de texto. Es la forma en como se organiza la informacin en el computador. Existen diversos sistemas de archivos: fat16, fat32, ntfs, ext2, ext3, ext4, xfs, jfs, ReiserFS. En Unix/Linux se utiliza una estructura jerrquica tipo rbol.

Captulo 1. Introduccin

16

Se compone de: Directorios Sirve para almacenar archivos y directorios, en Windows se le conoce como Carpetas. Archivos Almacena datos o instrucciones (programa). El nombre de archivos y directorios es sensible a mayscula, no es lo mismo hola.txt que Hola.txt Cada directorio puede almacenar subdirectorios y archivos. Cada directorio y archivo debe tener un directorio padre.

1.7.1.

Organizacin de sistema de archivos

Figura 1.6: rbol de Directorios

El directorio principal / se denomina directorio raz. /home/linux/Desktop/unidad1.pdf indica que unidad1.pdf se encuentra dentro del directorio Desktop, el que se encuentra a su vez dentro de linux ... El Directorio Raz / El contenido de este directorio debe ser el adecuado para reiniciar, restaurar, recuperar y/o reparar el sistema, es decir, debe proporcionar mtodos, herramientas y utilidades necesarias para cumplir estas especicaciones. Adems, es deseable que se mantenga los ms razonablemente pequeo como sea posible por cuestin de funcionamiento y de seguridad. Por ltimo, este debe que ser el nico directorio en el nivel superior del rbol jerrquico de archivos y, tiene que ser imposible moverse ms all del mismo. Ejemplo 1.2 $ ls -F / 2

Captulo 1. Introduccin

17

Directorio /bin En este directorio se ubica el cdigo binario o compilado de los programas y comandos que pueden utilizar todos los usuarios del sistema. La denominacin es clara, bin de BINARY (binario en castellano). No debe haber subdirectorios en /bin. Directorio /boot Este directorio contiene todo lo necesario para que funcione el proceso de arranque del sistema. /boot almacena los datos que se utilizan antes de que el kernel comience a ejecutar programas en modo usuario. El ncleo del sistema operativo (normalmente se guarda en el disco duro como un archivo imagen llamado vmlinuz-versin_ncleo) se debe situar en este directorio o, en el directorio raz. Directorio /dev Este directorio almacena las deniciones de todos los dispositivos. Como se ha mencionado, cada dispositivo tiene asociado un archivo especial. Directorio /etc El directorio /etc contiene archivos necesarios para conguracin del sistema. Archivos que son propios del computador y que se utilizan para controlar el funcionamiento diversos programas. Deben ser archivos estticos y nunca pueden ser archivos binarios y/o ejecutables. Directorio /home Directorio que contiene los subdirectorios que son directorios origen para cada uno de los usuarios del sistema. Cada subdirectorio /home/user de cada usuario proporciona el lugar para almacenar sus archivos, as como los archivos de conguracin propios de cada uno. El administrador tiene su propio directorio home, que es /root.

Captulo 1. Introduccin

18

Directorio /lib El directorio /lib contiene libreras compartidas (similar a las dlls para los usuarios de Windows) necesarias para arrancar el sistema y para los archivos ejecutables contenidos en, por ejemplo, /bin. Normalmente las libreras son archivos binarios escritos en lenguaje C. Tambin contiene mdulos del kernel esenciales que permiten el funcionamiento de muchos elementos Hardware. El resto de directorios /media : Este directorio contiene los subdirectorios que se utilizan como puntos del montaje para los medios de almacenamiento, tales como disquetes, CD-ROM y memorias USB. /mnt : Este directorio contiene sistemas de archivos externos que hayan sido montados. Las entidades que aparecen dentro de /mnt representan recursos externos a los que se puede acceder a travs de este directorio. /opt : En este directorio (/opt de options, u opciones en castellano) se suelen instalar complementos o add-ons de los programas. Las aplicaciones crean un subdirectorio dentro de /opt denominado con el mismo nombre del programa. /root : Este directorio es el directorio /home del administrador del sistema (root). /sbin : Los programas y comandos que se utilizan para la administracin del sistema se almacenan en /sbin, /usr/sbin y /usr/local/sbin. /sbin nicamente contiene los ejecutables esenciales para el arranque, recuperacin y reparacin del sistema. /srv : Contiene los archivos de datos especcos para cada servicio instalado en el sistema. /tmp /usr Es la segunda seccin ms grande o estructura jerr quica (despus del directorio raz) del sistema de archivos. Este directorio est pensado para almacenar datos que se puedan compartir con otros hosts. Estos datos adems deben ser inalterables, es decir, slo de lectura. Normalmente, este directorio tiene su particin propia. Comnmente, se almacena aqu el software instalado en el sistema. : En este directorio se guardan los archivos temporales.

Captulo 1. Introduccin

19

Directorio /var Este directorio va ha contener archivos de datos variables y temporales, as como archivos spool (archivos almacenados en la que esperan a ejecutarse, como por ejemplo colas de impresin). Todos los log del sistema y los generados por los servicios instalados, se ubican dentro de la estructura jerrquica de /var. Esto quiere decir que el tamao global de este directorio va ha crecer constantemente. La utilidad de /var radica en poder detectar problemas para prevenirlos y solucionarlos. Es aconsejable montar en una nueva particin este directorio. Si no se pudiera, es preferible ubicar /var fuera de la particin raz y de la particin /usr.

Directorio /lost+found. Perdidos y encontrados Las herramientas y utilidades para restaurar y/o reparar el sistema de archivos almacenan los datos en este directorio. Es un espacio temporal donde se guardan los datos que se recuperan despus de una cada del sistema. Fijmonos que, normalmente en cada particin que creemos existir un /lost+found en el nivel superior. Este directorio existe slo en distribuciones que tengan como sistemas de archivos ext2, ext3 o ext4.

Directorio /proc /proc es un sistema de archivos virtual. Se genera y actualiza dinmicamente, es decir, no se mantiene en el disco duro, se mantiene el la memoria RAM. Es el sistema quien lo crea y lo destruye. Este directorio contiene informacin sobre los procesos, el ncleo e informacin relativa al sistema.

1.8.

Sistema X-Window

El sistema X-Window, (X-window o simplemente las X) se trata de la herramienta de software para el desarrollo de interfaces grcas de usuario (GUIs) para estaciones de trabajo. Una GUI es en pocas palabras una interfaz usuario / computadora que se ejecuta en modo grco. X-window para linux y para todos los sistemas ms basados es UNIX lo que MS Windows es para los sistemas basados en DOS. Con una gran diferencia, que X-Window es un estndar para los sistemas de ventanas basados en UNIX. Esta estandarizacin supone que cualquier interfaz GUI puede ser ejecutada en cualquier computadora e incluso en varias a la vez.

Captulo 1. Introduccin

20

Figura 1.7: Procesos grcos en Linux y arquitectura cliente sevidor en una mquina

1.8.1.

Arquitectura Cliente / Servidor

X-Window permite utilizar un ambiente grco bajo Unix (Linux), a diferencia de la clsica Terminal ASCII que es conocida para todos los sistemas operativos *nix. El detalle tcnico ms importante que hay que reconocer de X es que utiliza una metodologa cliente-servidor, esto es, existe un servidor X que es el encargado de generar y procesar grcas, requisiciones, seguridad,etc; y un cliente X que solicita y recibe todas las requisiciones del servidor X. Esto permite que cualquier Cliente X sea capaz de comunicarse a travs de Red (TCP/IP) con un servidor X , no implica que este proceso no pueda ser llevado acabo en el mismo Host (computadora fsica), inclusive casi todos los ambientes grcos son llevados acabos en un mismo Host, esto es, el Cliente X y Servidor X operan en la misma computadora fsica, pero es de extrema importancia conocer que existe una divisin Cliente | Servidor aunque se este trabajando en el mismo Host. La comunicacin entre el cliente y el servidor sistema X-Window se realizan mediante el denominado protocolo X (X protocol). Este protocolo X permite denir el nmero exacto de bytes necesarios para denir una ventana. El problema es que la programacin con este lenguaje es extremadamente complicada y laboriosa.

Captulo 1. Introduccin

21

Figura 1.8: Procesos grcos y arquitectura cliente / servidor en una red

1.8.2.

XFree86

La versin que Linux utiliza del sistema X Window es XFree86. Esta es una versin gratuita de la distribucin ocial de UNIX que funciona en procesadores compatibles con la tecnologa x86 como (AMD,Ciryx o Intel). Referente al hardware necesario para poder ejecutar el X-window. XFree86 soporta la mayora de tarjetas que hay en el mercado. Las principales causas que dicultan el desarrollo de XFree86 para algunas tarjetas es que como se distribuye el cdigo fuente, algunas empresas no estn dispuestas a mostrar el funcionamiento de su tarjeta. Otra ms comn es que suele pasar un tiempo desde que sale un producto hasta que esta listo el desarrollo correspondiente. Ya que el cdigo cuesta de escribir y de comprobar. En cuanto a memoria y procesador XFree86 corre en un simple intel 386 con al menos 16 MB de ram. Esta memoria puede ser 8 MB mnimo de principal y 8 MB de memoria virtual o de intercambio (SWAP).

1.8.3.

Arranque del sistema X-Window

El inicio del sistema X window, implica que se ha de cargar tanto el servidor X como algunos clientes para poder empezar a utilizar el entorno grco. Hay un par de maneras principalmente de iniciar el X-window. Quiz la ms usada sea mediante el guin de inicio llamado starx. Que se ejecuta en cualquiera de las consolas en modo texto. Este programa no es ms que un guin de comandos que ejecuta el Servidor X, inicializa algunos recursos para que sern utilizados por los clientes y tambin conecta al servidor algn cliente.

Captulo 1. Introduccin

22

1.8.4.

Gestores de ventanas

El gestor de ventanas es uno de las aplicaciones X ms importantes, ya que se trata del programa que da el aspecto a todo el entorno grco y que controla todas las operaciones relativas al dibujo de ventanas. En linux un gestor de ventanas es un cliente ms que est conectado al servidor X. Esto implica que el sistema en si, no esta ligado a ningn gestor de ventanas en particular. Con lo que se consigue una gran personalizacin del entorno grco. Esto tiene el inconveniente de que cambia totalmente la manera de de interpretar las pulsaciones del ratn o del teclado. Fvwm es una de las familias de gestores de ventanas ms usadas dentro de entornos Linux. Fvwm(Fine Virtual Window Manager) y todos sus derivados. son a su vez derivados del twm(tab window manager), que es el gestor que se distribuye con las versiones ociales de X-window y por tanto con XFree86.

1.8.5.

Gestores de escritorio

Un gran inconveniente de los gestores de ventanas es que las aplicaciones no tienen forma de comunicarse entre ellas ni de controlar el comportamiento del gestor de ventana s. Esto se subsana al pasar del gestor de ventanas al gestor de escritorio (Desktop manager). Este ultimo tiene las siguientes ventajas con respecto al gestor de ventanas: Provee de un aspecto uniforme a todas las aplicaciones grcas, dotndolas de un interfaz de uso comn. Podemos marcar un objeto con el ratn y arrastrarlo hasta cualquier aplicacin y ver su contenido all. Permite el acceso transparente a cualquier recurso, ya este en el disco o en otro lugar de la red. Distingue entre aplicaciones abiertas y enlaces a recursos. Ofrece un interfaz grco para congurar y personalizar todos los aspectos del entorno grco. Desktop Managers

Figura 1.9: Gnome Logo

GNOME Sistema Grco. Escritorio del proyecto GNU (GNu Object Model Enviroment).

Captulo 1. Introduccin

23

Se compone de Paneles + Escritorio. Cada panel puede contener applets (Lanzadores o aplicaciones). Basado en GTK. Poltica de liberacin cada 6 meses aprox. Existe la Fundacin Gnome (Ambiente totalmente libre). Desarrolladores Gnome en Chile (Concepcin).

Figura 1.10: Gnome Desktop

GNOME3

Figura 1.11: Gnome 3 Desktop

KDE Sistema Grco.

Captulo 1. Introduccin

24

Figura 1.12: KDE Logo

Escritorio muy completo. Basado en QT, Qt Project. restricciones en la licencia de desarrollo.

Figura 1.13: KDE Desktop

Unity Sistema Grco. Lanzado en Ubuntu 10.10. Licencia GPL v3, LGPL v3. Programado en C++ y Vala. Desarrollado por Canonical.

Captulo 1. Introduccin

25

Figura 1.14: Unity Logo

Figura 1.15: Unity Desktop

Captulo 2

Interprete de Comandos
Un intrprete de rdenes o de comandos, tambin conocido como shell o terminal, es un programa informtico que tiene la capacidad de traducir las rdenes que introducen los usuarios, mediante un conjunto de instrucciones facilitadas por l mismo directamente al ncleo y al conjunto de herramientas que forman el sistema operativo.1 Las rdenes se introducen siguiendo la sintaxis incorporada por dicho intrprete, dentro del entorno proporcionado por el emulador de terminal, mediante un inductor que espera a que le sean introducidos los comandos o instrucciones P ROM P T > nombrecomandoargumento/s/ruta/hacia/el/o/los/archivos

2.1.

Bash

Este shell es desarrollado por el proyecto GNU por lo que es liberado bajo la licencia GPL. A pesar de existir diferencias entre cada uno de los shell, la mayora de los comandos funcionaran sin problemas en otro shell (siempre y cuando sean de Unix/Linux). Cuando se ejecuta una consola aparece un smbolo denominado prompt el que indica que la shell esta preparada para recibir ordenes $. Dependiendo del shell utilizado y del usuario puede aparecer un prompt diferente por defecto, en especial si se trata de un usuario ($) o superusuario (#). Se debe tener presente que el prompt puede ser modicado por el usuario. $ % # Prompt de sh, bash usuario Prompt de csh1 usuario Prompt de Superusuario (root) 26

Captulo 2. Interprete de Comandos

27

2.2.

Comandos Bsicos UNIX


Descripcin Limpia la pantalla, tiene el mismo efecto del comando clear Finaliza el shell, tiene el mismo efecto del comando exit Retrocede en el historial de comandos Avanza en el historial de comandos Entra al modo bsqueda historial, en este modo se autocompletan las ordenes que se encuentren en el historial de comandos Retrocede en una pgina la salida del shell, cumpla la misma funcin que la barra Scroll que tienen algunos terminales Avanza en una pgina la salida del shell Autocompletar comandos

Shortcuts CTRL + l CTRL + d echa arriba echa abajo CTRL + r

SHIFT + RePag SHIFT + AvPag TAB

2.2.1.

Listar archivos (ls)

El comando ls lista el contenido de un directorio imprimindolo en pantalla. Como se podr apreciar en los comandos siguientes se puede modicar la funcionalidad de cada uno de ellos con las opciones que se indican en la instruccin pero precedida del signo - (conocidos como parmetros). Opcin Descripcin l Escribe (en formato de una sola columna) los permisos del archivo, el nmero de enlaces que tiene, el nombre del propietario, el del grupo al que pertenece, el tamao (en bytes), una marca de tiempo, y el nombre del archivo. De forma predeterminada, la marca de tiempo que se muestra es la de la ltima modicacin a Incluye en el listado archivos ocultos (cuyos nombres comienzan con .) h Human-readable, indica una letra al lado del tamao, pudiendo ser K: Kilobytes, M:Megabytes, G:Gigabytes F Permite diferenciar los tipos archivos de los directorios, donde los directorios aparecen con un carcter / al nal del nombre, los archivos ejecutables con un * y los enlaces simblicos con una @. R Realiza un listado recursivo dentro de cada directorio Ejemplo 2.1 $ ls -lhR Cuando se utiliza el parmetro l el formato de salida es el siguiente: Permisos enlaces dueo grupo tamao fecha nombre

Captulo 2. Interprete de Comandos

28

Donde: tem Permisos

enlaces dueo grupo tamao fecha

Descripcin El Primer carcter indica el tipo de archivo el que puede ser -(archivo), d(directorio) o l (enlace simblico). Las nueve letras siguientes se dividen en tres conjunto de tres caracteres cada uno (rwx donde r = lectura, w = escritura, x = ejecucin, - = sin permiso), donde el primer conjunto representa los permisos para el propietario, el segundo conjunto representa los permisos para el grupo al que pertenece el archivo y el tercer grupo representa los permisos para el resto de los usuarios del sistema (otros). Numero de enlaces Nombre del usuario propietario del archivo Grupo al que pertenece el archivo Tamao del archivo en bytes Fecha y hora de creacin del archivo o de la ltima modicacin

2.2.2.

Imprimir directorio actual (pwd)

El comando pwd (print work directory) imprime en pantalla el directorio actual de trabajo.

2.2.3.

Cambio de directorio (cd)

El comando cd cambia el directorio de trabajo al directorio indicado como parmetro, si el parmetro se omite lleva al Inicio (HOME) de la cuenta de usuario. Para volver a un directorio anterior debe usarse el parmetro ... Ejemplo 2.2 $ cd .. $ cd /etc/X11

2.2.4.

Crear Directorios (mkdir)

El comando mkdir crea directorios con el nombre ingresado por parmetro. Ejemplo 2.3 $ mkdir micarpeta Para crear toda un ruta completa de directorios debe utilizarse la opcin p. Ejemplo 2.4 $ mkdir -p linux/carpeta/subcarpeta

Captulo 2. Interprete de Comandos

29

2.2.5.

Borrar directorios (rmdir)

El comando rmdir borra directorios vacos, el directorio a borrar es ingresado por parmetro. Ejemplo 2.5 $ rmdir subcarpeta

2.2.6.

Crear archivos (touch)

El comando touch crea archivos vacos. Ejemplo 2.6 $ touch arch1 arch2

2.2.7.

Copiar archivos o directorios (cp)

El comando cp copia archivos (u opcionalmente, directorios). Uno puede bien copiar un chero a un destino dado, o copiar arbitrariamente varios archivos a un directorio destino. Si el ltimo argumento se reere a un directorio existente, cp copia cada chero fuente a ese directorio (manteniendo el mismo nombre). En otro caso, si slo se dan dos archivos, copia el primero sobre el segundo. Ejemplo 2.7 $ cp arch1 archivo1 # copia el arch1 en el mismo directorio con otro nombre $ cp arch1 linux/carpeta #copia arch1 desde el directorio actual a la carpeta indicada. Para lograr copiar un directorio completo se debe usar la opcin r (recursivo): Ejemplo 2.8 $ cp -r carpeta/ /home/usuario/Descargas

2.2.8.

Mover archivos o directorios (mv)

El comando mv mueve o renombra archivos o directorios. Al mover directorios, los mueve con todo su contenido. Ejemplo 2.9 $ mv arch1 archivo1 # renombra el arch1 $ mv arch1 linux/carpeta #mueve arch1 desde el directorio actual a la carpeta indicada. $ mv -i carpeta/ /home/usuario/Descargas #mueve un directorio y su contenido

Captulo 2. Interprete de Comandos

30

2.2.9.

Renombrar varios archivos a la vez (mmv)

Es un comando que combina los comandos rename y mv , con otros elementos bsicos de bash. Puede copiar/mover/agregar/enlazar, nada que no se pueda hacer con los comandos de siempre. Pero lo que hace a mmv especial es la sencillez en su uso al enfocarse en las expresiones regulares (requiere instalacin desde repositorios). Requiere ser instalado: # apt-get install mmv Ejemplo 2.10 Funciona a base de comodines y el uso de patrones. Pongamos un ejemplo. Imagina que tienes estos archivos: foo1.png foo2.png foo3.png Si ejecutamos este comando: $ mmv foo*.png bar#1.png Obtenemos los archivos: bar1.png bar2.png bar3.png #1 en el destino hace referencia a todo lo que incluya el comodn (*) en el origen, en este caso 1, 2 y 3. 2 Ejemplo 2.11 Tenemos los archivos: abc_123.txt def_456.txt ghi_789.txt Si ejecutamos: $ mmv *_*.txt #2_#1.txt Obtendramos: 123_abc.txt 456_def.txt 789_ghi.txt Es decir hemos intercambiado el contenido del primer comodn (*) por el segundo (*) ya que en el destino #1 hace referencia al primero y #2 al segundo. Cuesta un poco al principio de seguir, pero haciendo algunas pruebas se va entendiendo. Su utilidad, pues por ejemplo para renombrar conjuntos de fotografas cuando tenemos varias. Si tenemos varias fotos del tipo: dcim_01.jpg, dcim_02.jpg, etc y las quisiramos organizar por fechas podramos hacer: $ > mmv dcim_*.jpg 2006-09-15.#1.jpg 2

Captulo 2. Interprete de Comandos

31

Ejemplo 2.12 Si posees por ejemplo muchos comic y los tienes comprimidos en .rar y deseas pararlos todos a .cbr para poder visualizarlos en un lector de comic, el proceso es el siguiente: $ mmv *.rar #1.cbr Este comando mantiene lo que aparezca con asterisco (*) tal cual este escrito y reemplaza el resto, el #1 pone en la posicin donde se indica el texto original que no desea cambiar y as solo se cambia la extensin. 2

2.2.10.

Eliminar archivos o directorios (rm)

El comando rm elimina un archivo especicado por parmetro. Este comando debe ser utilizado con cuidado ya que no hay forma de recuperar los archivos borrados. Para borrar directorios con todos los archivos o directorios que contenga (utilizar con mucho cuidado) se utiliza el parmetro r (recursivo). Ejemplo 2.13 $ rm arch1 $ rm -r carpeta/

2.2.11.

Caracteres de globalizacin (comodines)

Los caracteres de globalizacin son caracteres que Unix utiliza para que el usuario pueda sealar un grupo de archivos que cumplan con un cierto patrn, dicho patrn es reemplazado automticamente por los nombres de archivos existentes que lo cumplan antes de llamar al comando. Los caracteres de globalizacin (Wilcards o Metacaracteres) ms simples son: 1. * : Se reemplaza por cualquier secuencia de caracteres. 2. ? : Se reemplaza por un carcter cualquiera. Estos caracteres pueden ser utilizados con cualquier comando que interacte con archivos (cp, ls, rm ,etc.). Ejemplo 2.14 $ ls Carga.png conexion.png creada.png pgadmin31.png $ ls *a.png Carga.png creada.png $ ls * conexion.png creada.png $ ls cr?ada.png creada.png $ ls cr??d?.png creada.png

Captulo 2. Interprete de Comandos

32

2.2.12.

Ayuda (man, apropos)

El comando man nos permite acceder a la ayuda y documentacin (manuales) de todos los comandos. De este modo cuando es necesario aprender ms sobre el uso de un comando o simplemente saber para qu sirve se puede ejecutar el comando man ingresando como parmetro el nombre del comando. Se puede navegar por la documentacin avanzando de una linea a la vez presionando la tecla enter o de una pagina a la vez presionando la barra de espacio. Para salir basta presionar la tecla q. Adems existe otra herramienta apropos la que nos entrega informacin de los tpicos (o comandos) relacionados a un comando o palabra clave ingresada por parmetro. Ejemplo 2.15 Uso de man $ man ls #Retorna el manual del comando ls Ejemplo 2.16 Uso de apropos $ apropos mkdir mkdir (1) - make directories mkdir (2) - create a directory mkdirat (2) - create a directory relative to a directory le descriptor

2.2.13.

Lectura de archivos

En Unix la mayora de los archivos contienen texto plano, es por ello que existen una innidad de herramientas para ver archivos (leerlos sin modicarlos) las que son llamadas con el archivo por parmetro. Comando Descripcin cat Concatena un archivo en pantalla (lo imprime en pantalla), desde su inicio hasta el nal. more Muestra el archivo por ventanas, un vez dentro de more en el modo de visualizacin, es posible avanzar por pginas presionando la barra de espacio, una linea a la vez con la tecla enter, volver una pgina con la tecla B, buscar texto introduciendo la palabra a buscar despus de un slash (/texto_abuscar), y se sale del programa con la tecla Q. less Al igual que more ofrece la misma funcionalidad, con unos ciertos cambios, como que por ejemplo se puede mover por el texto por medio de las echas, el resto de las teclas funcionan exactamente igual que en more. head Muestra el encabezado de un archivo, por defecto muestra las primeras 10 lneas. tail Muestra la cola de un archivo (el nal), por defecto muestra las ultimas 10 lineas.

Captulo 2. Interprete de Comandos

33

2.2.14.

ln (enlace simblico)

Sirve para crear un enlace(link) simblico, siendo su idea similar a un acceso directo. Permite apuntar a un archivo como a un directorio con un nombre simblico. Ejemplo 2.17 $ ln -s /etc/ hola $ ls -l hola -> /etc/ $ ln -s /usr/bin/gnome-terminal $ ls -l gnome-terminal -> /usr/bin/gnome-terminal

2.2.15.

Cambiar permisos (chmod)

Como se explico en el punto anterior todo archivo o directorio posee permisos, estos permisos pueden ser cambiados por medio del comando chmod. Existen varias formas de asignar permisos, nos centraremos en los permisos segn su valor numrico los que sern entregados como parmetro a chmod, de este modo los valore numricos seran: Tipo de Permiso Sin Permiso Permiso de ejecucin (x) Permiso de escritura (w) Permiso de lectura (r) Cdigo Octal 0 1 2 4

De este modo al asignar los permisos se suman los valores numricos para los diferentes permisos y se asigna la suma a cada grupo. Por ejemplo si se quiere dar los permisos de Lectura, Escritura y Ejecucin al usuario, Lectura y Ejecucin al grupo y Lectura al resto de los usuarios al archivo arch1.pdf las sumas y el permiso nal seria: Ejemplo 2.18

Propietario Lectura = 4 Escritura = 2 Ejecucin = 1 Suma = 7 La asignacin seria: $ chmod 754 arch1.pdf

Grupo Lectura = 4 Escritura = 0 Ejecucin = 1 Suma = 5

Otros Lectura = 4 Escritura = 0 Ejecucin = 0 Suma = 4

Captulo 2. Interprete de Comandos

34

2.2.16.

Cambiar permisos sin cdigo octal (chmod)

Vamos a utilizar unas opciones segn nuestras necesidades, y estas sern u para el usuario dueo, g para el grupo dueo, o para el resto de los usuarios, y a para todos los usuarios, incluyendo usuarios de sistema, usuario y grupo dueos. Sabiendo esto estamos en condiciones de entender esta forma de usar chmod, que seria as: $ chmod [quien][+/-][permiso] [archivo o carpeta] donde en [quien] es alguno de los parmetros anteriormente explicados (u,g,o,a), [+/-] es para asignar o quitar el permiso que elijamos. En [permiso] podremos colocar: lectura (r), ejecucin (x), escritura (w). Ejemplo 2.19 # chmod a+x archivo aqu le hemos asignado permisos de ejecucin para todos los usuarios en el archivo de prueba que utilizamos. Adems como en el mtodo anterior, la opcin R sigue disponible en caso que deseemos hacerlo recursivamente para una carpeta. $ chmod -R a+rwx carpeta/ aqu le asignamos, en forma recursiva, a todos los usuarios permisos de lectura, escritura y ejecucin sobre el chero carpeta. 2

2.3.
2.3.1.

Comandos Avanzados
alias

Sirve de bastante ya permite ejecutar una instruccin con un nombre o alias, la forma para hacerlo es alias comandoa lias = comandooriginal , por ejemplo se puede utilizar un alias para listar en formato largo (ls l) Ejemplo 2.20 $ alias ls=ls -lh $ alias rm=rm -i $ alias borrar=rm -rf $ alias instalar=sudo apt-get -y install

Al terminar la sesin se pierden todos los alias, por lo que para no tener que ejecutarlos se incluyen en la conguracin personal en el archivo .bashrc

2.3.2.

cat: Manejo de archivos

Mostrar contenido de un archivo: El comando cat por si solo muestra todo el contenido de un archivo en terminal. $ cat nombreArchivo

Captulo 2. Interprete de Comandos

35

Concatenar archivos: El comando cat sirve para concatenar varios archivos para posteriormente desplegarlos en pantalla. Admite como argumentos la lista de cheros que hay que enlazar. Su sintaxis es la siguiente: $ cat -opciones cheros Opcin Descripcin -n Numera las lneas mostradas (Desde 1) -b Numera las lneas mostradas, pero no se numeran las lneas vacas (en blanco) -s Suprime las mltiples lneas vacas contiguas a una sola lnea en blanco La instruccin cat admite como argumentos una lista de cheros que hay que enlazar. Estos se encadenarn en el mismo orden en el cual fueron especicados. Ejemplo 2.21 Suponga que posee los siguientes archivos: Archivo A cuyo contenido es Esta es la primera lnea Archivo B cuyo contenido es Esta es la segunda lnea Si se quisiera concatenar los archivos, sera de la siguiente manera: $ cat A B Obteniendo el siguiente resultado: Esta es la primera lnea Esta es la segunda lnea 2 Si slo se llegase a especicar un slo archivo, el resultado del comando sera el contenido del archivo mismo. Ejemplo 2.22 $ cat A Desplegando como resultado: Esta es la primera lnea 2 Si no se especica ningn argumento, cat tomar el contenido desde el teclado, desplegando la informacin que el usuario ingrese, hasta que este presione Ctrl D. Unir dos vdeos en unos solo: Para este proceso es necesario tener instalada la librera mencoder # apt-get -y install mencoder Luego desde la terminal hacer lo siguiente: $ cat parte1.avi parte2.avi > nal.avi Ahora si en el vdeo nal se desfasa el audio debemos hacer: $ mencoder -forceidx -oac copy -ovc copy nal.avi -o nal_con_sonido_bueno.avi NOTA: la ultima linea se escribe despus de haber unido el video, se utiliza el video resultante para sincronizar el audio.

Captulo 2. Interprete de Comandos

36

O tambin podemos optar, quizs ms able, por dejar que lo haga todo el mencoder: $ mencoder -oac copy -ovc copy -idx -o nal.avi parte1.avi parte2.avi parteN.avi ...

2.3.3.

date

Muestra fecha y hora actual, puede utilizarse cualquier formato tomando las siguientes opciones. Opcin Descripcin u Usa horario universal GMT +formato Indica que se da nuevo formato %a Muestra el da, formato de 3 letras %h Muestra el ao, en formato de ltimos 2 dgitos Ejemplo 2.23 $ date $ date -u $ date + %a $ date + %A $ date + %a %d %h $ date + %a %d %h

2.3.4.

du (disk usage)

Sirve para entregar el tamao de cada uno de los archivos y subdirectorios dentro del directorio indicado algunas de sus opciones son: Opcin Descripcin s Muestra el resumen del tamao (tamao total) h Muestra la informacin HumanReadable Ejemplo 2.24 $ du $ du -s $ du -h $ du-sh

2.3.5.

df

Obtiene el uso de disco para cada una de las particiones del sistema, indicando la cantidad utilizada y la disponible. Opcin Descripcin T Muestra el tipo de particin h Muestra la informacin HumanReadable Ejemplo 2.25 $df -hT 2

Captulo 2. Interprete de Comandos

37

2.3.6.

sleep

Comando que duerme la shell por un tiempo determinado segundos. Ejemplo 2.26 $ sleep 20 2

2.3.7.

time

Muestra el tiempo usado por un determinado programa, indicando el tiempo real, de usuario y de sistema. Ejemplo 2.27 $ time ls -l $ time sleep 3

2.3.8.

host

Comando para determinar la direccin ip asociada a un nombre de dominio. Ejemplo 2.28 $ host www.google.com www.google.com is an alias for www.l.google.com. www.l.google.com has address 74.125.229.176 www.l.google.com has address 74.125.229.177 www.l.google.com has address 74.125.229.178 www.l.google.com has address 74.125.229.179 www.l.google.com has address 74.125.229.180

2.3.9.

ip

Es un comando que permite ver la MAC de los dispositivos, su direccin IP asociada, entre otros. Ejemplo 2.29 $ ip addr $ ip monitor $ ip link $ ip addrlabel

2.3.10.

uname

Comando para determinar informacin del sistema, indicando Sistema, Kernel, fecha de compilacin del kernel (con la opcin -a). Ejemplo 2.30 $ uname -r 3.0.0-13-generic-pae

Captulo 2. Interprete de Comandos

38

2.3.11.

which

Muestra la ruta de un ejecutable. Ejemplo 2.31 $ which ls /bin/ls $ which nautilus /usr/bin/nautilus $ which libreoce /usr/bin/libreoce

2.3.12.

whereis

Localiza el comando, manual y cdigo fuente (si estuviese presente). Ejemplo 2.32 $ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz $ whereis nautilus nautilus: /usr/bin/nautilus /usr/lib/nautilus /usr/share/nautilus /usr/share/man/man1/nautilus.1.gz 2

2.3.13.

cal

Muestra un calendario. Opcin Descripcin m La semana comienza en lunes 3 Muestra mes anterior, actual y siguiente Ejemplo 2.33 $ cal $ cal -m enero $ cal -m enero 2020 $ cal -3

2.3.14.

split

Comando que permite dividir un archivo en varios archivos de tamaos predeterminados. Ejemplo 2.34 $ split -d -b 500k arch1.tar.gz arch1.tar.gz-salida 2 Opcin b bytes d

Descripcin Indica el tamao de salida de cada uno de los archivos en bytes, es posible utilizar sujos k (Kb A cada uno de los archivos de salida le agrega un sujo numerico

Captulo 2. Interprete de Comandos

39

2.3.15.

sort
contenido de un archivo ordenado. Descripcin Ordena de forma inversa Muestra una ocurrencia si es que se repite Ignora diferencias entre Maysculas y minsculas

Muestra el Opcin r u f

Ejemplo 2.35 $ short nombres $ short -u nombres $ short -uf nombres

2.3.16.

wc (word counter)

Comando para contar palabras en un archivo l:lineas, w:palabras, c: bytes Opcin Descripcin l Muestra la cantidad de lineas w Muestra la cantidad de palabras c Muestra la cantidad de bytes Ejemplo 2.36 $ wc nombres $ wc -l nombres $ wc -c nombres $ wc -w nombres

2.3.17.

le

Indica el tipo de archivo en base a su nmero mgico Ejemplo 2.37 $ le linuxmint-201109-gnome-dvd-32bit.iso linuxmint-201109-gnome-dvd-32bit.iso: # ISO 9660 CD-ROM lesystem data Linux Mint Gnome 32-bit (bootable) $ le menos1bit.png menos1bit.png: PNG image data, 1024 x 768, 8-bit/color RGB, non-interlaced 2

2.3.18.

nger

Muestra informacin del usuario. (no por defecto con Ubuntu Gnu/Linux) Ejemplo 2.38 $ nger juaramir

Captulo 2. Interprete de Comandos

40

2.3.19.

who

Comando que muestra quienes estn conectados al sistema.

2.3.20.

grep y egrep

La utilidad grep muestra en pantalla las ocurrencias de una expresin regular que se encuentra dentro de un texto. egrep a su vez permite buscar ms de una expresin regular. Algunos de las opciones mas comunes para ambos son: Opcin Descripcin i Ignorar maysculas c Muestra solo la cantidad de lineas que contienen la expresin regular v Muestra solo las lineas que no contienen la expresin regular l Muestra el numero de linea y la linea en la que se encuentra la expresin regular n Muestra los nombres de archivos en los que se encontr la expresin regular Ejemplo 2.39 $ grep chile paises $ grep -i Chile paises $ grep Denis nombres $ grep -n Chile * En egrep para indicar mas de una expresin se realiza de la siguiente forma: $ egrep exp1|exp2|exp3 archivo Esto signica que se cumpla la exp1 o exp2 o exp3.

2.3.21.

nd

El comando nd busca recursivamente dentro de un directorio archivos y directorios que cumplan los requisitos especicados. Posee una gran variedad de parmetros de bsqueda. Se utiliza $nd ruta opciones Opcin Descripcin user Busca archivos pertenecientes al usuario username group Busca archivos pertenecientes al grupo group perm ### Busca archivos con los permisos ### name Busca archivos con el nombre name o que cumplan la expresin regular print Muestra en pantalla los resultados type tipo Busca el tipo que puede ser d: solo directorios, f : solo archivos, l: solo enlaces simblicos Ejemplo 2.40 $ nd /Descargas -name *.c 2

Captulo 3

Compresin y Empaquetado
3.1. Empaquetado .tar

El empaquetado es un proceso que solo se encarga de unicar un grupo de archivos, no reduciendo su tamao. Ejemplo 3.1 Empaquetar: $ tar cvf Fotos.tar /misFotos/2011/* Desempaquetar: $ tar xvf Fotos.tar Listar contenido (sin desempaquetar): $ tar tvf Fotos.tar

3.2.

Compresin

Es el proceso de reducir el tamao de datos.

3.2.1.

.gz (gzip)

gz solo comprime archivos, no directorios. Ejemplo 3.2 Comprimir: $ gzip -q archivo #El archivo lo comprime y lo renombra como archivo.gz Descomprimir $ gzip -d archivo.gz # El archivo lo descomprime y lo deja como archivo

3.3.

Compresin

Es el proceso de reducir el tamao de datos. 41

Captulo 3. Compresin y Empaquetado

42

3.3.1.

.tar.gz - .tar.z - .tgz (tar con gzip)

Para suplir el problema de no compresin de directorios por parte de gz, se aplica tar.gz. Ejemplo 3.3 Empaquetar y comprimir: $ tar czvf Fotos.tar.gz /misFotos/2011/* Desempaquetar y descomprimir: $ tar xzvf Fotos.tar.gz Listar contenido (sin desempaquetar): $ tar tzvf Fotos.tar.gz

3.3.2.

.bz2 (bzip2)

bz2 solo comprime archivos, no directorios. Ejemplo 3.4 Comprimir: $ bzip2 archivo $ bunzip2 archivo (El archivo lo comprime y lo renombra como archivo.bz2) Descomprimir: $ bzip2 -d archivo.bz2 $ bunzip2 archivo.bz2 (El archivo lo descomprime y lo deja como archivo)

3.3.3.

.tar.bz2 (tar con bzip2)

Ejemplo 3.5 Comprimir: $ tar -c archivos | bzip2 > archivo.tar.bz2 Descomprimir: $ bzip2 -dc archivo.tar.bz2 | tar -xv $ tar jvxf archivo.tar.bz2 #versiones recientes de tar Listar contenido (sin desempaquetar): $ bzip2 -dc archivo.tar.bz2 | tar -tv

3.3.4.

.zip (zip)

Ejemplo 3.6 Comprimir: $ zip Fotos.zip /misFotos/2011 Descomprimir: $ unzip Fotos.zip

Captulo 3. Compresin y Empaquetado

43

Listar contenido (sin descomprimir): $ unzip -v Fotos.zip

3.3.5.

.lha (lha)

Ejemplo 3.7 Comprimir: $ lha Fotos.lha /misFotos/2011 Descomprimir: $ lha -x Fotos.lha Listar contenido (sin descomprimir): $ lha -v Fotos.lha $ lha -l Fotos.lha

3.3.6.

.zoo (zoo)

Ejemplo 3.8 Comprimir: $ zoo -a Fotos.zoo /misFotos/2011 Descomprimir: $ zoo -x Fotos.zoo Listar contenido (sin descomprimir): $ zoo -v Fotos.zoo $ zoo -L Fotos.zoo

3.3.7.

.rar (rar)

Ejemplo 3.9 Comprimir: $ rar -a Fotos.rar /misFotos/2011 Descomprimir: $ rar -x Fotos.rar Listar contenido (sin descomprimir): $ rar -v Fotos.rar $ rar -l Fotos.rar

Captulo 4

Acceso remoto a terminal (SSH)


4.1. Que es?

SSH File Transfer Protocol (tambin conocido como SFTP o Secure File Transfer Protocol) es un protocolo del nivel de aplicacin que proporciona la funcionalidad necesaria para la transferencia y manipulacin de archivos sobre un ujo de datos able. Se utiliza comnmente con SSH para proporcionar la seguridad a los datos, aunque permite ser usado con otros protocolos de seguridad. Por lo tanto, la seguridad no la provee directamente el protocolo SFTP, sino SSH o el protocolo que sea utilizado en su caso para este cometido. En comparacin de capacidades con el anterior protocolo SCP, que nicamente permite la transferencia de archivos (copia), el protocolo SFTP permite una serie de operaciones sobre archivos remotos. SFTP intenta ser ms independiente de la plataforma que SCP, por ejemplo, con el SCP encontramos la expansin de comodines especicados por el cliente hasta el servidor, mientras que el diseo SFTP evita este problema. Aunque SCP se aplica con ms frecuencia en plataformas Unix, existen servidores SFTP en la mayora de las plataformas. El Secure Internet Live Conferencing (SILC) dene el protocolo SFTP como su protocolo de transferencia de archivos por omisin. En el SILC, los datos del protocolo SFTP no estn protegidos con SSH pero el protocolo de paquetes seguros de SILC se utiliza para encapsular los datos SFTP dentro de los paquetes de SILC para que se la llevara de igual a igual (peer to peer, P2P). Esto es posible ya que SFTP est diseado para ser un protocolo independiente.

4.2.

Instalacin

Para poder utilizar SSH necesitaremos el paquete openssh-server y openssh-client para ello nos dirigimos al Centro de Software de Ubuntu y hacemos una bsqueda puesto que los paquetes necesarios estn en los repositorios. Los seleccionamos y presionamos en instalar. Cerramos el Gestor y para asegurarnos de que est el servicio corriendo, nos dirigmos a un Terminal y hacemos # /etc/init.d/ssh restart 44

Captulo 4. Acceso remoto a terminal (SSH)

45

4.3.

Acceso Remoto

Funciona en base a clave pblica/privada. Para ejecutar el cliente ssh en el terminal(consola, o shell) se ha de hacer lo siguiente: $ ssh login@servidor $ ssh -l login servidor Una vez iniciada la sesin la terminal local, trabajara como si fuera la del equipo al que estas accediendo, por lo que cualquier comando ya visto anteriormente, puedes usarlos tal cual, el cambio esta cuando quieres pasar archivos desde el computador local al remoto o viceversa. Con SSH, los datos viajan encriptados y es uno de los sistemas mas seguros y usados actualmente.

4.4.

Acceso Remoto: Envio/Recepcin de Archivos

Para enviar/recibir existen diversos protocolos, al igual que la conexin remota ftp, sftp, scp (en realidad trabajan sobre ssh). Por razones de seguridad se utiliza scp o sftp. La sintaxis en consola es la siguiente (es similar a cp). Copiar un archivo: $ scp login@servidor:nombre_archivo Copiar un directorio: $ scp -r login@servidor:directorio Enviar un archivo: $ scp archivo login@servidor: Enviar un directorio: $ scp -r directorio login@servidor:

4.5.

Acceso Remoto Grco (SSH)

Desde las ultimas versiones de Gnome, es posible acceder a entornos remotos, por medio de SSH de forma grca, lo que permite visualizar grcamente el contenido remoto, como si de un directorio local se tratase. Para realizar este proceso, solo debes hacer lo siguiente: 1. Abrir una ventana de Nautilus. 2. Seleccionar Archivo/Conectarse con el Servidor 3. Ahora llenamos los campos de manera similar a la imagen siguiente: 4. Por seguridad es preferible no seleccionar recordad esta contrasea. 5. Seleccionamos conectar y aparecer en Nautilus, al lado izquierdo, en la seccin Red una carpeta.

Captulo 4. Acceso remoto a terminal (SSH)

46

Figura 4.1: llenado de campos para conectarse por SSH grco

Captulo 5

Administracin Bsica
5.1. Administracin de Usuarios

El esquema de usuarios es Linux es: Grupos: Cada grupo tiene un nombre e identicador de grupo GID Usuarios: Cada usuario tiene un nombre e identicador de usuario UID El usuario principal es root, es quien administra el equipo (tiene todos los permisos). Ubuntu desactiva el usuario root por razones de seguridad. El usuario creado durante la instalacin es el que puede ejecutar comandos con permisos de root, mediante sudo. Cada Usuario pertenece a un grupo principal, y puede pertenecer a grupos secundarios Para determinar el grupo al que pertenece un usuario se hace: $ groups usuario El primer nombre es el grupo principal, del segundo en adelante son los grupos secundarios, los grupos secundarios se utilizan para dar acceso al usuario. La informacin de los usuarios se almacena en el archivo /etc/passwd, el cual presenta la informacin de la forma: nombre_cuenta:contrasea:UID:GID:GECOS:directorio:shell Ejemplo 5.1 juaramir:x:1000:1000:Juaramir:/home/juaramir:/bin/bash La contrasea se encuentra en el archivo /etc/shadow. 2

5.1.1.

Comandos para Administrar Usuarios:


2

useradd : agrega un usuario. Ejemplo 5.2 $ useradd [opciones] usuario Las opciones son: -u uid (le asigna el UID) -g grupo (le asigna el grupo primario) -G gr1,gr2,gr3 (le asigna los grupos secundarios) 47

Captulo 5. Administracin Bsica

48

-m (crea el home del usuario) -d /ruta/directorio (indica el home del usuario) -c COMENTARIO (crea el GECOS) -s /ruta/shell (indica la shell) userdel : Elimina un usuario Ejemplo 5.3 $ userdel [-r] usuario #elimina el directorio del usuario igual. usermod : Modica las opciones del usuario Ejemplo 5.4 $ usermod [opciones] usuario passwd usuario : Modica o asigna una contrasea al usuario indicado. Ejemplo 5.5 # passwd usuario 2 2 2

5.1.2.

Otros Comandos:

chmod : Cambia los permisos de un/os archivo/s chown : Cambia el propietario y grupo de un/os archivo/s Ejemplo 5.6 Para cambiar el propietario del archivo texto.txt a linuxuser y grupo administracion. $ chown linuxuser:administracion texto.txt 2 chgrp : Cambia el grupo de un/os archivo/S. Los comandos chown y chgrp solo lo puede utilizar el super usuario.

5.2.

Administracin de Grupos

La informacin de los grupos se almacena en el archivo /etc/group, el cual presenta la informacin de la forma: nombre_grupo:contrasea:GID:lista_usuarios Ejemplo 5.7 adm:x:4:juaramir 2

5.2.1.

Comandos para Administrar Grupos:

groupadd : agrega un grupo Ejemplo 5.8 $ groupadd [-g gid] grupo gid: numero del grupo [0 al 999] se reserva para el SISTEMA gruops: Muestra los grupos a los que pertenece el usuario groupdel : Borra un grupo

Captulo 5. Administracin Bsica

49

Ejemplo 5.9 $ groupdel grupo groupmod: Modica un grupo (nombre o id) Ejemplo 5.10 $ groupmod [-g gid ] [-n nombre] grupo nombre: nuevo nombre del grupo

5.3.

Administracin de Aplicaciones

Existen 2 formas de instalar: Desde cdigo fuente: Es la forma universal, es idntica para todas las distribuciones, se compone de 3 pasos: Congurar. Compilar. Instalar. Desde un sistema de paquetes: Resuelve los problemas de la instalacin de cdigo fuente, y para utilizarlo se debe tener instalado un gestor de paquetes, existen 2 formatos de paquetes RPM: Utilizado por REDHAT y derivados. DEB: Utilizado por Debian y derivados.

5.3.1.

Sistema de paquetes DEB:

Es el sistema de paquetes utilizado por Ubuntu para la instalacin. Formato Interno: Esta compuesto por el programa compilado Archivos de CONFIGURACION Documentacin Script de procesos preinst: Son ejecutados antes de que el paquete sea desempaquetado. postint: Son ejecutados despus del proceso de desempaquetado prerm: son ejecutados antes de la eliminacin de un paquete. postrm: Son ejecutados despus de la eliminacin de un paquete. El gestor de paquetes procesas los scripts y copia los archivos donde corresponde. En el caso de los paquetes DEB, se utilizan los siguientes programas para procesar estos scripts: dpkg : Gestor de paquetes, permite instalar/desisntalar/reinstalar/congurar/consultar paquetes apt: Interfaz del gestor de paquetes (resuelve dependencias) aptitude: Interfaz de alto nivel de apt dselect: Interfaz de dpkg synaptic:Interfaz grca para gestin de paquetes Centro de Software de Ubuntu: interfaz mas amigable de las anteriores.

Captulo 5. Administracin Bsica

50

Todas las aplicaciones anteriores, a excepcin de dpkg trabajan sobre un repositorio1 . Los repositorios tienen un formato dependiendo de la distribucin: El directorio que tiene las versiones de una distribucin es dist El directorio que contiene todas las aplicaciones es "pool" http://archive.ubuntu.com En ubuntu, una forma de consultar los paquetes instalados (terminal) es: $ dpkg -l $ dpkg -l gnome-terminal Estos comandos devuelven los resultados como: Estado del paquete (Un paquete esta instalado si muestra ii, Cuando aparce rc"Se ha desinstalado pero an se mantiene sus archivos de conguracin). Estado de seleccin del paquete. Bandera del paquete. Opciones de dpkg:

Opcin -i < paquete > -r < paquete > -P < paquete > get selections set selections -C -I < patron > -s < paquete > -S < /ruta/archivo >

Descripcin Instala un paquete Desinstala un paquete sin eliminar sus archivos de conguracin. Desinstala y elimina los archivos de conguracin. Obtiene la lista de paquetes con su seleccin. Modica la seleccin de paquetes. Busca e indica los paquetes que estn parcialmente instalados en el sistema. Lista los paquetes instalados siguiendo el patrn. Muestra el estado del paquete Muestra a que paquete pertenece el archivo.

Las opciones compuestos por mas de una letra usan get selections set selections Ubuntu divide el repositorio en secciones: main : Con Soporte ocial de ubuntu universe : Sin Soporte ocial restricted : Tienen licencias restrictivas soportadas por Ubuntu multiverse : Tiene licencias restrictivas y que podran tener problemas para su redistribuciones (codecs de vdeo y audio) Los repositorios son utilizados por apt.

5.3.2.

APT:

Apt es un conjunto de aplicaciones que permiten instalar paquetes desde un repositorio. La


1

Lugar donde se encuentran los paquetes (puede ser el mismo equipo o algn lugar en la red)

Captulo 5. Administracin Bsica

51

conguracin personal de los repositorios se encuentra en /etc/apt/sources.list Comandos apt: apt-cdrom : Permite agregar un CD como repositorio Ejemplo 5.11 # apt-cdrom add apt-cache : Permite consultar los paquetes de apt-cache search patron Ejemplo 5.12 apt-cache search latex 2 apt-cache show paquete apt-cache showpkg paquete apt-cache stats apt-cache depends apt-get : permite instalar/desinstalar paquetes apt-get update: Actualiza el listado de paquetes. apt-get upgrade : Actualiza todos los paquetes, excepto los que tienen nuevas dependencias. apt-get dist-upgrade :Actualiza todos los paquete incluyendo los que tienen nuevas dependencias. apt-get install paquete: instala el paquete y todas sus dependencias apt-get remove paquete : Desinstala el paquete pero no borra sus archivos de conguracin. apt-get remove purge "paquete":Desinstala el paquete y sus archivos de conguracin. update-alternatives: Este programa permite denir el programa a utilizar cuando existen diversos programas para la misma tarea. Su sintaxis es: update-alternatives conf ig < nombre > update-alternatives all Este comando debe ejecutarse al instalar java, ya que por defecto utiliza programas provistos por gnu (openjdk). update-alternatives conf ig java update-alternatives conf ig keytool update-alternatives conf ig rmiregistry 2

Captulo 6

Servicio de Impresoras (CUPS)


Es el Sistema de Impresin Comn de UNIX (Common UNIX Printing System, CUPS). Este sistema de impresin es una capa de impresin libre y portable que se ha convertido en el nuevo estndar de impresin en la mayora de las distribuciones de GNU/Linux. CUPS gestiona los trabajos y tareas de impresin, y proporciona impresin de red utilizando el protocolo estndar de Impresin en Internet (IPP), que dispone de soporte para una gran gama de impresoras, desde matriciales hasta lser. CUPS tambin soporta PostScript Printer Description (PPD) y auto deteccin de impresoras de red, y dispone de una sencilla herramienta basada en web para la conguracin y administracin.

6.1.

Instalacin

para instalar el servidor cups debemos instalar los siguientes paquetes y libreras: # apt-get install cups # apt-get install cups-common # apt-get install cups-driver-gutenprint Nota: hay muchos comandos para instalar CUPS solo utilizamos estos pocos porque antes de el empezar a instalar CUPS, ejecutamos los comandos apt-get update y apt-get upgrade, entonces cuando le bamos a instalar las otras libreras sale un mensaje de que hay versiones mas recientes de esa libreras y utilidades. Si se va a utilizar el servidor de impresoras en una LAN que tenga un servidor DHCP que asigne direcciones IP dinmicas. Es mejor ponerle a nuestro servidor de impresoras un direccin IP esttica. 52

Captulo 6. Servicio de Impresoras (CUPS)

53

6.2.

Conguracin

Antes de empezar a editar el archivo de conguracin /etc/cups/cupsd.conf primero tenemos que saber que hay una copia de seguridad de la conguracin por defecto en el archivo /etc/cups/cupsd.conf.default. Este archivo hay que tenerlo en cuenta por si nosotros llegamos hacer una conguracin mal o de pronto alguna persona nos llegara a daar este archivo. # cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.default

6.2.1.

Conguracin de CUPS

Para congurar a CUPS tenemos que ir a editar el siguiente archivo /etc/cups/cupsd.conf que es el que almacena toda la conguracin de nuestro servidor como podemos ver en la imagen lo editaremos con el edito de texto nano. # nano /etc/cups/cupsd.conf Ahora lo primero que vamos hacer es aadir la direccin IP que tiene nuestro servidor de impresoras al archivo de conguracin de CUPS. Podemos ver en la Figura 6.1 el sitio indicado para colocar la direccin IP, cambiando localhost por tu ip esttica. Luego lo que vamos hacer es darle los permisos a las estaciones de trabajo que van a tener acceso al servidor CUPS para que podemos acceder a la conguracin de interfaz web. Como podemos ver en la Figura 6.2 en la parte donde dice Restriccin de acceso al servidor permitimos el rango de direccin IP con la orden: * que signica permisos a cualquier PC que tenga esta direccin IP. No importa el numero del ultimo octeto Vamos hacer algo similar al paso anterior que es permitir que una estacin de trabajo en especico pueda tener acceso administrativo a nuestro servidor CUPS. Por ejemplo en nuestro caso seria nuestro mismo PC (ver Figura 6.3). Si no hacemos esto, solo tendramos acceso al servidor mediante la orden http://localhost:631 en cambio si colocamos una IP del computador administrativo se puede acceder al servidor mediante la orden http://192.168.1.100:631 desde un navegador Web. Ya hemos terminado la conguracin con el archivo cupsd.conf. Guardamos los cambios y reiniciamos el daemon de cups. # /etc/init.d/cups restart Ahora debe ser capaz de conectarse a la interfaz web de CUPS desde la estacin de trabajo de administrador (IP 192.168.1.100 en este ejemplo) apuntando desde su navegador web a http://192.168.1.100:631/ una vez que se abre debera ver la pantalla de la Figura 6.4 En la pestaa administracin podemos ver opciones como: Aadir impresoras, administracin de impresoras, opciones para compartir impresoras, entre otros.

6.3.

Conguracin de clientes de CUPS

Para congurar las estaciones de trabajo para que puedan hacer uso de servidor de impresoras CUPS tenemos que instalar los siguientes paquetes: # apt-get install cups-client

Captulo 6. Servicio de Impresoras (CUPS)

54

Figura 6.1: Archivo de Conguracin de CUPS

Captulo 6. Servicio de Impresoras (CUPS)

55

Figura 6.2: Restriccin de acceso por IP de CUPS

Captulo 6. Servicio de Impresoras (CUPS)

56

Figura 6.3: Restriccin de acceso Pagina Administrador de CUPS

Captulo 6. Servicio de Impresoras (CUPS)

57

Figura 6.4: Patalla de CUPS

Ahora lo que vamos hacer es crear el archivo de conguracin para que el usuario pueda conectarse con el servidor. # touch /etc/cups/client.conf Cuando tengamos el directorio creado pasaremos a editarlo, colocndole informacin del servidor como la direccin y el tipo de cifrado que maneja. # nano /etc/cups/client.conf #Server Name ServerName 192.168.1.100 #Cifrado DefaultEncrytion ifRequested Ahora solo nos falta agregar la impresora en nuestro cliente entonces nos vamos para Sistemas>Administracin>Impresora, ya parados en esta opcin no vamos para la parte donde dice archivo y damos clic en la parte donde dice Conectando. Nos aparecer un nueva ventana donde le colocaremos la direccin del servidor CUPS al cual nos queremos conectar. Despus de que conecte nos mostrara la impresora que esta en red.

Captulo 7

Shell Scripts
Un script para bash es un archivo tipo texto, cuyas lneas tienen comandos que son ejecutados (interpretados) por bash. Para lograr que el intrprete de comandos intrprete las lneas de un archivo puede: Ejecutar /bin/bash seguido del nombre del archivo (o redireccionar la entrada estndar para que provenga del archivo). Emplear el comando source seguido del nombre del archivo. Emplear el caracter .seguido de un espacio y el nombre del archivo. Agregar en la primera lnea del archivo la cadena #!/bin/bash, dar permiso de ejecucin al archivo y teclear el nombre del archivo desde el intrprete de comandos como si fuera un nuevo comando.

7.1.

Ejecucin de un comando en bash

Para determinar cual es la orden bash realiza varias acciones: 1. Primero realiza ciertas expansiones a la lnea de comando, e identica la orden, los parmetros y eventualmente las variables de ambiente que se den junto con la orden (en esta seccin se estudiarn las expansiones y variables de ambiente). 2. Si la orden va precedida de una ruta se trata del nombre completo de un archivo y el archivo existe y es ejecutable, bash lo trata como un programa y lo carga a memoria para ejecutarlo. Si la ruta no conduce a un archivo ejecutable bash presenta un mensaje de error. 3. Si la orden no va precedida de una ruta, busca un alias que pueda corresponder con la orden y si lo encuentra lo remplaza por su valor (ms adelante en esta seccin explicaremos como manejar alias). 4. Si la orden no esta precedida de una ruta y no es un alias, determina si se trata de un comando interno de bash (como fg o bg) y en caso de serlo realiza la accin correspondiente. 5. Si la orden no est precedida de una ruta, no es un alias y no es un comando interno busca en varios directorios un archivo ejecutable con el nombre dado y si lo encuentra en alguno lo carga a memoria para ejecutarlo (el orden y los directorios donde busca se especican en la variable de ambiente PATH que se explicar en esta seccin). 58

Captulo 7. Shell Scripts

59

6. En otro caso bash presenta un mensaje de error. En caso de que la orden corresponda a un archivo ejecutable (bien porque se dio la ruta completa o bien porque existe un archivo en un directorio de PATH), bash determinar como ejecutarlo: 1. Si el archivo es tipo texto y comienza con la cadena "#!"seguida del nombre de un programa, bash emplea tal programa como intrprete del archivo. Como parmetros para el intrprete emplea los que estn en la primera lnea del archivo, seguidos del nombre del archivo y a continuacin otros parmetros que el usuario hubiera dado desde la lnea de comandos. 2. Si el archivo es tipo texto pero no comienza con #!, lo interpreta con el programa bash1 . Es decir lo trata como un script para el intrprete de comandos. 3. Si el archivo es binario lo enva al kernel para su ejecucin. El kernel podr ejecutarlo si est en un formato reconocido (e.g el ejecutable producido por un compilador en un formato reconocido por Linux ELF, a.out).

7.2.

Ambiente y variables de ambiente

Una variable es un nombre al cual se le puede asociar un valor, tal valor puede cambiar durante la ejecucin de un programa es variable. Cada programa (incluyendo al intrprete de comandos) se inicia en un ambiente el cual consta de variables, variables de ambiente que hereda del programa que lo inici y que pueden tener un signicado especial para el programa. Las variables de ambiente que un programa usa se especican en la pgina del manual del programa. Para asignar un valor a una variable de ambiente y crearla si no existe, teclee el nombre de la variable, en seguida el carcter =y despus el valor. El valor puede constar de letras, smbolos o nmeros, pero tenga en cuenta que hay algunos caracteres con signicado especial y que es mejor evitar en sus primeros experimentos: $, {, }, , (podr escribirlos precedidos de \ o encerrando el valor a asignar entre apostrofes). Por ejemplo para asignar el valor /home a la variable DIR: $ DIR=/home Despus de asignar una variable, puede emplear el valor asociado a la misma en comandos que de al intrprete de comandos, para hacerlo emplee el nombre de la variable precedido del carcter $. Por ejemplo ls -l $DIR listar los archivos de la ruta asociada a la variable DIR. En bash puede emplear el comando echo para enviar a salida estndar una cadena (por ejemplo echo tarea > porhacer.txt dejar en el archivo porhacer.txt una lnea con la palabra tarea), esto puede usarse para examinar el valor de una variable de ambiente, e.g. echo $DIR presentar el valor de la variable DIR. Puede examinar las variables de ambiente de bash con el comando set. Algunas de las variables que ver son: USER y USERNAME cuyo valor es el login del usuario; UID con el nmero que identica al usuario; TERM mantiene el nombre de la terminal que est usando (ver Lectura Conguracin de una sesin); SHELL la ruta y nombre del intrprete de comandos; PWD el nombre del directorio de trabajo; $HOME el nombre del directorio personal del usuario; PS1 y PS2 indican a bash como presentar prompts (see Lectura Conguracin de una
1

En rigor lo interpreta con /bin/sh pero en Debian /bin/sh es un enlace a /bin/bash

Captulo 7. Shell Scripts

60

sesin); PATH es la ruta de directorios donde bash busca archivos ejecutables, se separan unas rutas de otras con el caracter :; OSTYPE el tipo de sistema operativo; MAILCHECK la frecuencia en segundos con la que bash debe revisar si ha llegado un nuevo correo a la cola de correos especicada en la variable MAIL (por defecto la del usuario); LS_COLORS colores que emplea el programa ls; LINES y COLUMNS indican la cantidad de las y columnas de la terminal que est usando; LANG, LANGUAGE y otras variables que comienzan con el prejo LC_ especican el idioma en el que los programas deben interactuar con el usuario (ver Lectura Conguracin de una sesin); HOSTNAME es el nombre del sistema; HISTFILE mantiene el nombre del archivo con la historia de comandos, su tamao lo limitan HISTFILESIZE y HISTSIZE; DISPLAY mantiene la direccin del servidor X-Window (see Lectura Servicios de la Intranet). Cuando se inicia un programa desde bash, el ambiente que tendr constar de las variables que estn marcadas como exportables y de otras variables que se especiquen al comienzo del comando (pueden separarse unas de otras con espacios y si el valor de alguna variable debe tener espacios puede encerrar el valor completo entre comillas), por ejemplo para iniciar el programa man en un ambiente con las variable LANGUAGE y LANG en el valor ES_es: LANG=de_DE LANGUAGE=es_ES man man Para exportar una variable y lograr as que forme parte del ambiente de procesos creados por su sesin, puede emplear bien declare -x VAR o export VAR, empleando el nombre de la variable que desea exportar en lugar de VAR. Empleando slo export o slo declare -x puede ver los nombres y valores de variables exportables. En un script puede emplear ciertas variables especiales ($1, $2, ...) para referenciar los parmetros que el usuario emple al iniciarlo. $1 tendr el valor del primer paramtro, $2 del segundo y as sucesivamente. El siguiente script ejemplica su uso:
#! / b i n / bash echo " Creando $2 . t a r . gz de $1 " mkdir $2 cp rf $1 / $2 tar cvf $2 . tar gzip $2 . tar

Este script recibe dos parmetros, el primero es una ruta y el segundo el nombre de un archivo. Si el nombre del script es comp y tiene permiso de ejecucin podra usarse para crear un paquete comprimido d.tar.gz con el contenido del directorio /mand con: ./comp /mand d Note que en el ejemplo indicamos la ruta completa del archivo comp, suponiendo que es ejecutado desde el mismo directorio donde se encuentra. Si la ruta donde est el archivo est en la variable PATH, no es necesario especicar la ruta.

Captulo 7. Shell Scripts

61

7.3.

Expansiones

bash trata algunos caracteres de forma especial: " $. Al asignar una variable o iniciar un comando bash expande estos caracteres y su contexto de varias formas: $var - Expansin de variables o parmetros: El caracter $s empleado para distinguir variables o bien parmetros de un script. Las variables son remplazadas por su valor, por ejemplo echo $PATH presentar el contenido de la variable PATH. En un script los parmetros se referencian con nmeros, $1 es el primero, $2 el segundo y as sucesivamente. Otros nombre especiales en un script son: $# Es remplazado por la cantidad de parmetros que el script recibe. $* Que se expande a todos los parmetros que el script haya recibido, un parmetro se separa de otro con el valor de la variable IFS que normalmente es un espacio. $? Todo programa al terminar debe retornar un nmero al sistema operativo, por convencin 0 signica operacine exitosa y nmeros diferente representan errores. $? se expande al nmero retornado por el ltimo programa ejecutado en primer plano. Un script puede retornar un 3 en lugar de 0 con exit 3 $- Opciones que se pasaron al script durante su ejecucin. $$ Identicacin del proceso del intrprete de comandos. $! Identicacin del proceso del ltimo comando que se ejecut en segundo plano. $0 Nombre del script o del shell. texto - citas: Cuando un conjunto de caracteres (incluyendo espacios), se encierra entre comillas, bash los trata como una sola cadena. Esto es til por ejemplo cuando el nombre de un directorio o archivo tiene espacios, e.g. cd los amigos. Otra forma de representar el caracter espacio es con el caracter eguido de un espacio, as el efecto del ejemplo anterior tambin podra lograrse con cd los amigos. Hay otros caractres que pueden representarse con ayuda de , por ejemplo: \n Representa el caracter n de lnea. \b Caracter para borrar a la izquierda. \\ \{ \} \$ Representan los caracteres {}y $respectivamente. Esto es til para producir estos caracteres sin que bash trate de interpretarlos estos son caracteres para hacer expansiones. \a Caracter para emitir un sonido. \t Caracter tabulador (como la tecla Tab). {letras} - expansin de corchetes: Una cadena que contenga { letra1, letra2, ... } ser expandida a varias cadenas similares a la inicial pero la posicin de {letras1, letra2, ...} ser remplazada por cada una de las letras. Por ejemplo ls /home/pepe/sal{a,e}n se expandir a ls /home/pepe/salan /home/pepe/salen. Esta expansin es la primera que se realiza cuando hay varias en un mismo comando, y slo surge efecto si est fuera de comillas o apstrofes. comando $(comando) - sustitucin de comandos: Un comando encerrado entre apstrofes invertidos (i.e comando) o entre las cadenas $( y ), ser expandido al resultado que tal comando enve a salida estndar cuando es ejecutado. Por ejemplo TEXTOS=ls *.txt

Captulo 7. Shell Scripts

62

asignar a la variable TEXTOS los nombres de los documentos tipo texto (i.e el resultado de ls *.txt). ls $(cat rutas.txt) presentar los archivos de los directorios que estn en el archivo rutas.txt. texto- citas: Un texto que se encierra entre apstrofes no es expandido. Esto es til cuando se requiere una cadena que tiene algunos caracteres reservados para expansiones. Por ejemplo
N =10 echo

$N

es $N

enviar a salida estndar $N es 10 $((expresin)) - expansin aritmtica: Una expresin aritmtica2 ser evaluada cuando se encierre entre $(( y )), por ejemplo:
echo " 1+2 e s $ ( (1 +2 ) ) "

*, ?, [letras] [rango(s)]- Expansin de rutas: Algunos caracteres y secuencias son expandidos a nombres de archivos. A continuacin se presentan con ejemplos: echo * presentar todos los nombres de archivos del directorio de trabajo porque * expande a todos estos y echo los presenta. En caso de que no haya archivos el caracter * no ser expandido y ser mostrado por echo. echo datos?.gnumeric se expandir a todos los nombres de archivos que comiencen por datos seguidos de un caracter arbitrario a su vez seguido de la cadena .gnumeric. echo /.*errors presentar todos los nombres de archivos de conguracin que estn en el directorio del usuario y que terminen con errors. rm *[cho ] eliminar todos los archivos que terminen con una de las letras o, h o c. echo [0-9 [a-z]*] presentar todos los archivos que comiencen con un dgito seguido de una letra.

7.4.

Comandos y programas tiles al hacer scripts

En un script puede emplear cualquier programa o comando, junto con redireccionamiento, procesos y control de tareas. bash ignora comandos que comienzan con el caracter #. Esto es til para agregar comentarios explicativos a los scripts. A continuacin introducimos algunos comandos de bash y programas tiles al hacer scripts.
En la expresin pueden emplearse los operadores - (unario y binario), + (unario y binario), ** para elevar a una potencia, * para multiplicar, / para divir, % para obtener residuo de una divisin. Hay operadores que operan a nivel de bits (representacin binaria de los nmeros que operan): para negar bits, & para hacer Y entre bits de operandos y | para efectuar O. Tambin pueden emplearse valores booleanos 0 se interpreta como falso y 1 como verdadero, pueden compararse nmeros con los operadores >, <, <= (menor o igual), >= (mayor o igual), == (igualdad), ! = (diferentes) y pueden operarse booleanos con ! para negar, && como conjuncin (Y) y || como disyuncin. Los nmeros pueden escribirse en decimal, o en otras bases empleando como prejo del nmero la base seguida del caracter #(tambin puede escribirse nmeros en octal inicindolos con 0 o en hexadecimal inicindolos con 0x).
2

Captulo 7. Shell Scripts

63

read Lee una lnea de entrada estndar y asigna las palabras a las variables que sigan al comando read. Puede especicarse un mensaje que se presentar como prompt antes de empezar a leer con la opcin -p mensaje. El siguiente ejemplo lee dos palabras en las variables NOMBRE y APELLIDO:
read p " T e c l e e nombre y a p e l l i d o : " NOMBRE APELLIDO

Si la lnea leda tiene ms palabras que la cantidad de variables, el resto sern ignoradas. Si tiene menos palabras, las primeras variables (de izquierda a derecha) sern empleadas y el resto quedarn en blanco (i.e con la cadena vaca ). En caso de que no se den nombres de variables, la lnea leda quedar en la variable REPLY. alias Con este comando puede denir alias para comandos, despus de denir un alias bash lo remplazar por el comando completo. Por ejemplo un alias para abreviar ls -l puede ser ll, que se denira como:
a l i a s ll=" l s l "

Puede listar los alias denidos con la opcin -p del comando alias. unalias Permite eliminar alias creados con el comando alias, por ejemplo para eliminar el alias ll se emplea:
unalias ll

Si se emplea la opcin -a, el comando unalias elimina todos los alias denidos. dirname Recibe como primer parmetro el nombre completo de una archivo, incluyendo su ruta y enva a salida estndar slo la ruta. Por ejemplo:
dirname / usr / doc / xterm / README . Debian

presenta en salida estndar /usr/doc/xterm. basename Anlogo a dirname, pero enva a salida estndar el nombre del archivo. hostname Enva a salida estndar el nombre del computador en la red, esto tambin puede verse en la variable de ambiente HOSTNAME. Con la opcin -f, el programa hostname presenta el nombre completo, con la opcin -i la direccin IP, con la opcin -d el dominio DNS, con la opcin -a presenta nombres alternos de su mquina y con la opcin -y el dominio NIS este programa extrae parte de la informacin del archivo /etc/hosts y de /etc/hostname. whoami Retorna el nombre del usuario que lo ejecuta. Tambin puede verse en la variable de ambiente USER. id Retorna nombre y nmero del usuario que lo ejecuta, as como nombre y nmero del grupo o grupos a los que pertenezca. Con la opcin -g slo retorna el nmero del grupo principal, con -u retorna slo el nmero del grupo principal, con -G retorna los nmeros de todos los

Captulo 7. Shell Scripts

64

grupos a los que pertenece. Estas opciones pueden seguirse de n para presentar nombres en lugar de nmeros. declare Las variables de ambiente tienen atributos que pueden examinarse o cambiarse con este comando interno de bash. Los atributos pueden ser slo lectura (opcin -r), exportable (opcin -x) y variable entera (opcin -i). Una variable de slo lectura no puede ser modicada, y una variable entera slo puede asociarse con nmeros3 . Para examinar las variables que tengan un cierto atributo se emplea declare seguido del cdigo de la opcin, por ejemplo para examinar las variables con atributo de slo lectura declare -r. Para cambiar un atributo a una variable se emplea la opcin (precedida de - o + para activar y desactivar) seguida del nombre de la variable, por ejemplo declare -i N pone el atributo de variable entera a N.

7.5.

Script Basico

En el siguiente ejercicio prctico, orientado a usuarios ms novatos en esto del sistema operativo basado en Linux, les voy a mostrar cmo realizar un sencillo script que nos ayudar a actualizar repositorios, actualizar todo el software o incluso instalar nuestros programas favoritos con tan solo un click y de manera automtica. El uso de este script, que realizaremos nosotros mismos, nos evitar tener que ir tecleando en la terminal las ordenes para instalar las diferentes aplicaciones, programas u ordenes que solemos utilizar de manera habitual. Una de las principales utilidades que le veo yo al script que a continuacin realizaremos, es la de una vez que hacemos una instalacin limpia de Ubuntu, con tan slo ejecutar el script podemos actualizar e instalar todos nuestro programas favoritos sin necesidad de introducir nada en la terminal. Tambin podemos hacer el script con cualquier comando que solamos utilizar a menudo para evitarnos tener que abrir la terminal y ejecutarlo de manera manual, todo lo dejo en vuestra imaginacin.

7.5.1.

Cmo Crear un script sencillo

Para crear un script sencillo que ejecute un comando como el de actualizar los repositorios, o instalar nuestro programas favoritos tendremos que crear un nuevo archivo de texto e introducir las siguientes lineas.

Bash 7.1: Script despues de instalar ubuntu


#! / b i n / bash echo Despues de Instalar Ubuntu echo . . dentro 1 seg se inicia el script , o cierra la terminal sleep 1 s
3

Otros atributos pueden ser funcin -f y arreglo -a

Captulo 7. Shell Scripts

65

cd ~/ sudo apt get update sudo apt get y upgrade sudo apt get y install chromium browser vlc ubuntu restricted extras

La primera linea de todas es la que tenemos que respetar ya que es la que da la orden que es un archivo de texto ejecutable en bash y no deberemos modicarla. Las dems partes las que podemos modicar a nuestro antojo sabiendo lo siguiente: echo Le daremos el nombre que queramos, opcional de cada uno y que describa brevemente el script. echo. Aqu le podemos decir lo que tarda el script en ejecutarse una vez abierta la terminal, para as darnos tiempo a cerrar la terminal si no quisisemos instalarlo. sleep Es el tiempo de espera para que se ejecute el script en la terminal cd y la ruta donde queramos instalar los programas por defecto, se recomienda modicarla para que as lo instale en nuestra carpeta de usuario por defecto dentro de nuestro Home. Este script bsico nos actualizara la lista de repositorios, actualizaramos todo el software instalado y despus instalara todos los programas incluidos despus del comando sudo apt-get install, siempre dejando un espacio entre cada programa.

7.5.2.

Para ejecutarlo

Para ejecutarlo tan solo tendremos que abrir nautilus y desde la opcin archivo/preferencias/comportamiento y activar la casilla de preguntar cada vez que est dentro de la opcin de Archivos de texto ejecutables. De este modo con tan solo clicar dos veces en un archivo de texto ejecutable nos preguntar si queremos mostrarlo con el editor de textos o ejecutarlo directamente. Ahora, si estamos sin entorno graco lo que hay que hacer es cambiarle los permisos al archivo para que sea un ejecutable, esto se hace escribiendo en la terminal: $ chmod +x rutaAlScript

7.6.

Algunos Ejemplos

Bash 7.2: Que solo el usuario root ejecute el script


#! / b i n / bash i f [ [ $EUID ne 0 ] ] ; then echo " E s t e s c r i p t debe s e r e j e c u t a d o por e l u s u a r i o r o o t " 1>&2 exit 1 fi

De manera similar al cdigo anterior, podramos querer que solo un usuario especco ejecute el script. Lo hacemos as:

Captulo 7. Shell Scripts

66

Bash 7.3: Permitir la ejecucion del script solo a un usuario especico


#! / b i n / bash A UT HO RI Z ED _U SE R=" u s u a r i o _ p e r m i t i d o " i f [ $USER != $ A U T H O R I Z E D _ US E R ] ; then echo " E s t e s c r i p t debe s e r e j e c u t a d o por e l u s u a r i o $AUTHORIZED_USER" 1>&2 exit 1 fi

Si queremos saber si existen procesos de algn servicio o programa ejecutndose podramos usar este script (en este caso verica que el demonio de Apache est corriendo): Bash 7.4: Vericar que un servicio/proceso se est ejecutando
#! / b i n / sh SERVICE = httpd i f ps ax | grep v grep | grep $SERVICE > / dev / null then echo " El s e r v i c i o $SERVICE e s t a e j e c u t a n d o s e " else echo " Vaya , El s e r v i c i o $SERVICE e s t a d e t e n i d o " fi

Para vericar que una variable est asignada/tenga datos hay bastantes maneras de hacer esto en shell script. La que considero ms sencilla y concisa es esta: Bash 7.5: Vericar que una variable este asignada/tenga datos
#! / b i n / bash FOO= : $ { FOO : ? " No e x i s t e l a v a r i a b l e FOO o no t i e n e d a t o s " } echo " e s t o nunca s e va a i m p r i m i r "

El anterior script verica si una variable existe y tiene datos; si esto no se cumple, el script se cierra. Podemos usar esta variacin en donde solo comprobamos que la variable exista, sin importar si tiene datos o no: Bash 7.6: Vericar que una variable este asignada/tenga datos
#! / b i n / bash FOO= : $ { FOO ? " No e x i s t e l a v a r i a b l e FOO" } echo " e s t o s i s e va a i m p r i m i r "

A veces debemos asegurarnos que el script no se ejecute dos o ms veces simultneas. Para ello podemos hacer uso de los archivos de bloqueo. Esta es una versin sencilla de un script que nos permite hacer esto: Bash 7.7: Crear un archivo de bloqueo
#! / b i n / bash

Captulo 7. Shell Scripts

67

lockfile =/ var / lock / loquesea . lock i f [ ! e $lockfile ] ; then touch $lockfile echo " hago muchas c o s a s i m p o r t a n t e s a q u i " rm $lockfile else echo " ya hay o t r o p r o c e s o c o r r i e n d o " fi

En este caso, se verica que el archivo loquesea.lock exista. En caso de que exista, el script NO ejecuta sus tareas. Si no existe, crea el archivo, ejecuta las tareas que deba ejecutar y lo elimina. Pero, esto no es del todo able. Qu pasara si mientras nuestro script se est ejecutando es cerrado abruptamente (con Ctrl+c por ejemplo)? En ese caso el archivo de bloqueo no se borrara, y por lo tanto, no nos permitira ejecutar el script de nuevo. Para cubrir esos casos, podramos hacer uso del comando trap que nos permite ejecutar comandos en caso que nuestro script termine de manera inesperada. Esta es una versin ms avanzada que adems guarda dentro del archivo de bloqueo el PID del script que lo ejecuta:

Bash 7.8: Crear un archivo de bloqueo


#! / b i n / bash lockfile =/ var / lock / loquesea . lock i f ( set o noclobber ; echo " $$ " > " $ l o c k f i l e " ) 2> / dev / null ; then trap rm f " $ l o c k f i l e " ; e x i t $ ? INT TERM EXIT echo " hago muchas c o s a s a q u i t r a n q u i l a m e n t e " rm f " $ l o c k f i l e " trap INT TERM EXIT else echo " Ya hay o t r o p r o c e s o de e s t e s c r i p t e j e c u t a n d o s e " echo " c o r r i e n d o con e l PID : $ ( c a t $ l o c k f i l e ) " fi

Entendamos un poco mejor el comando trap. La sintaxis del mismo es bsicamente esta: trap comando signal [signal ...]; donde signal es la seal de terminacin que quieres atrapar. Si quieres ver una lista de los signals disponibles puedes ejecutar el comando kill -l. Para el caso anterior se usaron los signals INT (captura la terminacin producida por un Ctrl + c), TERM (terminacin producida por el comando kill) y EXIT (terminacin normal de un script, bien sea porque ya no hay ms lneas que ejecutar o porque se encuentra con el comando exit). Para hacer un men en donde permitimos al usuario seleccionar una serie de opciones podemos usar el siguiente esquema:

Bash 7.9: Menu de opciones


#! / b i n / bash clear while : do echo " E s c o j a una o p c i o n "

Captulo 7. Shell Scripts

68

echo " 1 . q u i e n s o y ? " echo " 2 . cu an to e s p a c i o t e n g o " echo " 3 . que e s e s t o ? " echo " 4 . S a l i r " echo n " S e l e c c i o n e una o p c i o n [ 1 4 ] " read opcion case $opcion in 1 ) echo " e s t e e r e s : " ; whoami ; ; 2 ) echo " t i e n e s e s t o " ; df ; ; 3 ) uname r ; ; 4 ) echo " chao pues p a r c e r o " ; exit 1 ; ; ) echo " $opc e s una o p c i o n i n v a l i d a . Es tan d i f i c i l ? " ; echo " P r e s i o n a una t e c l a para c o n t i n u a r . . . " ; read foo ; ; esac done

A veces es til hacer que el usuario conrme la ejecucin de un lote de sentencias, es decir, el tpico mensaje que pide al usuario escribir yes o no. Esto lo podemos hacer as:

Bash 7.10: Pedir conrmacion antes de ejecutar un script


#! / b i n / bash while true ; do echo read p " e s t a s e g u r o de h a c e r l o que s e a que vaya a h a c e r " yn case $yn in yes ) break ; ; no ) e x i t ; ; ) echo " por f a v o r r e s p o n d a y e s o no " ; ; esac done echo " s i s e e j e c u t a e s t o e s que a c e p t a s t e "

7.7.

Lecturas recomendadas: Scripts bsicos para bash


Recomendamos de forma especial consultar la pgina del manual de bash. Hay algunas partes que complementan lo que se ha presentado en esta gua: bash puede hacer ms expansiones de parmetros, con la sintaxis ${...} por ejemplo sustituciones en el valor de una variable. Puede consultar la informacin completa sobre este tema en la seccin expansin de parmetros. Pueden hacerse scripts para bash con otras caractersticas que no se han presentado en esta gua: if, case, while, for, function. El intrprete de comandos es una parte importante de la losofa Unix, el libro clsico sobre este tema es de Brian. W. Kernighan y Rob Pike El Entorno de Programacin UNIX, Prentice-Hall Hispanoamericana. Este libro explica y muestra el uso de csh, un predecesor de bash la mayora de caractersticas de csh estn disponibles en bash.

Captulo 7. Shell Scripts

69

En Internet puede consultar Advanced Bash-Scripting Guide: A complete guide to shell scripting, using Bash de Mendel Cooper, disponible en: http://linuxdoc.org/LDP/abs/html/index.html o Programacin en BASH - COMO de introduccin http://goo.gl/HS4pB

7.8.

Ejercicios: Scripts bsicos para bash

1. Cree un script que sea interpretado por bash, que al ejecutarse busque entre sus directorios, todos los archivos, ordene los nombres alfabticamente y le enve un correo con esa informacin. Ayuda: Puede emplear la opcin -R de ls para listar subdirectorios, y la opcin -u de sort. 2. La variable de ambiente HOME contiene el nombre de su directorio personal. Comprebelo y despus empleela para cambiarse a su directorio. Despus cambie esta variable y explique que ocurre con el comodn . 3. El programa man presenta pginas del manual, empleando el programa especicado en la variable de ambiente PAGER o en su defecto con el programa less (ver Lectura bash y el juego de herramientas). Modique y exporte la variable PAGER para que man emplee el programa more para presentar informacin y pruebe el cambio. 4. Qu hace el comando echo ls? (note que se usan apstrofes invertidos). 5. Qu hace el comando N=6 echo 1+$N= $((1+$N))? Despus de dar su respuesta, comprubela empleando un intrprete de comandos. 6. Haga un script que cada 90 minutos presente el mensaje Hacer tareas. Ayuda: source. 7. Cree un script que al ser ejecutado, cree un archivo script2. El archivo script2 creado debe poner la variable PATH en el valor que tenga cuando el primer script sea ejecutado, aadir a tal variable la ruta /opt/bin y debe crear un alas que cuando se ejecute muestre el contenido de la variable PATH (no olvide cambiar el modo del archivo script2 generado para que sea ejecutable). 8. Haga un script que despus de ejecutarse pida al usuario 2 nmeros y despus presente la suma, la resta, el producto y la divisin.

Captulo 8

CRON
Se trata de unos de los servicios bsicos de los sistemas GNU/Linux. De hecho, el demonio cron siempre est arrancado; adems, dicho servicio asume, asimismo, que el sistema siempre est en funcionamiento. La funcin bsica de cron es la de ejecutar tareas programadas para un determinado momento, y por un usuario con los privilegios necesarios para poder programarlas.

8.1.

CRON: Instalacin

Aunque ya se ha mencionado que los sistema Debian GNU/Linux tienen instalado este servicio de serie, es importante conocer cul es el paquete que provee dicha funcionalida. # apt-get install cron

8.2.

CRON: crontab

Para editar el archivo crontab, hay que escribir lo siguiente en el prompt shell de Linux / Unix. $ crontab -e Ejemplo 8.1 (Sintaxis del Crontab) 1 2 3 4 5 /ruta/al/comando arg1 1 2 3 4 5 /root/backup.sh Donde: 1: Minuto (0-59) (* cualquier minuto) 2: Horas (0-23) (* cualquier hora) 3: Da (0-31) (* cualquier da) 4: Mes (0-12 [12 == diciembre]) (* cualquier mes) 5: Da de la semana (0-7 [7 or 0 == domingo]) (* cualquier dia) 70

Captulo 8. CRON

71

/ruta/al/comando Ruta del script o comando a programar Un cron job del sistema luce como la siguiente lnea:

Ejemplo 8.2 (Sintaxis del Crontab) 1 2 3 4 5 USERNAME /path/to/script.sh

Ejemplo 8.3 Para ejecutar /path/to/unixcommand 5 minutos despus de las 4am cada domingo, aadimos: 5 4 * * sun /path/to/unixcommand 2

8.3.

CRON: Operadores

Un operador nos permite especicar mltiples valores en un campo. Existen tres operadores: El asterisco (*) Este operador abarca a todos los valores posibles en un campo. Por ejemplo, un asterisco en el campo de hora, ser equivalente a cada hora; o, un asterisco en el campo mes ser equivalente a cada uno de los meses. La coma (,) Este operador especica una lista de valores, por ejemplo: 1,5,10,15,20, 25. El guin (-) Este operador especica una serie de valores, por ejemplo: 5-15 das, lo que equivale a escribir 5,6,7,8,9, ... ,13,14,15 usando el operador coma.

8.4.

CRON: Listar todas tus tareas del crontab

Ejemplo 8.4 # crontab -l # crontab -u username -l

8.5.

CRON: Borrar todas tus tareas del crontab

Ejemplo 8.5 # crontab -r # crontab -r -u username

Captulo 8. CRON

72

8.6.

CRON: ahorrar tiempo


Signicado Ejecutar una vez, en el inicio. Ejecutar una vez al ao, 0 0 1 1 * (igual que @yearly) Ejecutar una vez al mes, 0 0 1 * * Ejecutar una vez a la semana, 0 0 * * 0 Ejecutar una vez al da, 0 0 * * *. (igual que @daily) Ejecutar a cada hora, 0 * * * *

Cadena especial @reboot @yearly @annually @monthly @weekly @daily @midnight @hourly

8.7.

CRON: ahorrar tiempo


2

Ejemplo 8.6 @daily /path/to/backup/script.sh

8.8.

CRON: Creacin de un crontab para un usuario

1. creamos con gedit un archivo de texto, con el texto: SHELL=/bin/bash DISPLAY=:0 2. 3. 4. 5. Guardamos este archivo con el nombre: cron-usuario , en el directorio /home/usuario En la terminal ejecutamos: crontab cron-usuario A partir de ah puedes ejecutar en la terminal: crontab -e Al ejecutar la orden crontab -e en la terminal se abre el editor nano

Con permisos de root se puede editar los crontabs de cualquier otro usuario tecleando: # crontab -e -u nombre_del_usuario

8.9.

Ejemplos

Este es un shell script (clean.cache) para limpiar los archivos almacenados en la cach cada 10 das. Este script se crea directamente en el directorio /etc/cron.daily/, por ejemplo: /etc/cron.daily/clean.cache:

Bash 8.1: Limpiar el Cache


#! / b i n / bash # Un s h e l l s c r i p t de e j e m p l o para l i m p i a r # a r c h i v o s de l a c a c h e de un s e r v i d o r web l i g h t t p d CROOT=" /tmp/ c a c h e l i g h t t p d / " DAYS =10 LUSER=" l i g h t t p d "

Captulo 8. CRON

73

LGROUP=" l i g h t t p d " # empezar l i m p i e z a <br >/u s r / b i n / f i n d $ {CROOT} t y p e f mtime +$ {DAYS} | x a r g s r / b i n /rm # s i e l d i r e c t o r i o e s b o r r a d o por a l g u n o t r o s c r i p t , r e g r e s a r i f [ ! d $CROOT ] then / bin / mkdir p $CROOT / bin / chown $ { LUSER } : $ { LGROUP } $ { CROOT } fi

Una de las dicultades con una base de datos MySQL grande y activa es la de realizar respaldos limpios sin tener que desconectar el servidor, sumado a esto esta la necedidad de guardar ese respaldo correctamete. Lo primero es asegurarnos de tener instalado el paquete mailx indispensable para poder enviar el respaldo que se creara por correo, aunque si solo quieres crear el respaldo y almanacenerlo localmente no sera necesario, el script y la explicacin a continuacin:

Bash 8.2: Respaldar MySQL y Enviar por Correo


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

#! / b i n / bash # S c r i p t para c r e a r r e s p a l d o de una b a s e de d a t o s MySQL mkdir ~\ BDMSQL cd ~/ BDMSQL mysqldump opt u root padmin BDMSQL > BDMSQLbackup . sql tar zcvf BDMSQLbackup date + % d % m % y . tgz BDMSQLbackup . sql echo " A r c h i v o s de r e s p a l d o BDMSQL date + % d % m % y " | mailx s " Respaldo l i n u x c o n f BDMSQL date + % d % m % y " a . tgz micorreo @gmail . com sleep 5 rm rm cd rm . tgz BDMSQLbackup . sql ~/ R f BDMSQL

Comenzamos a partir de la linea #4: 4. se crea un directorio donde almacenaremos el respaldo. 5. Nos movemos al directorio recin creado. 7. Utilizando el comando mysqldump creamos el respaldo aqu ten en cuenta lo siguiente: root Nombre de usuario de la base de datos. admin Contrasea para conectarnos a la base de datos. BDMSQL Nombre de la base de datos de la que se har el respaldo. BDMSQLbackup.sql Nombre del archivo de respaldo que se creara automaticamente. Estos valores tendras que cambiarlos con los que tu tienes correspondientes a los de tu base de datos. 8. Comprimimos en tar el archivo BDMSQLbackup.sql recin creado. 9. Mandamos por correo el archivo recin comprimido a la direccin micorreo@gmail.com 11. Hacemos una pausa de 5 segundos. En las siguientes lineas lo que se hace es eliminar todo archivo que se creo, esto incluye el archivo comprimido, el archivo .sql y por ultimo el directorio.

Captulo 8. CRON

74

Por qu las ultimas 4 lineas? La idea del script (a parte de ensear) es que este se este ejecutando en un momento determinado, puesto que el respaldo se estar enviando por correo electronico esta de ms tenerlo almacenado localmente sobre todo si el servidor se encuentra de forma remota. Hacer que se ejecute automticamente. Para hacer que el script se ejecute automticamente lo nico que hay que hacer es meterlo dentro de directorio /etc/cron.weekly/ si quieres que se ejecute semanalmente, /etc/cron.daily/ si quieres que lo haga diariamente, /etc/cron.monthly/ para hacerlo mensualmente. A modo de prueba inmediata puedes ejecutarlo y revisar el correo a donde fue enviado, no olvides cambiarle los permisos al archivo con chmod antes de ejecutarlo.

Captulo 9

Manejo de Nuevo Hardware


9.1. Identicar tu Particin o Disco

Lo primero que debemos hacer es identicar donde esta fsicamente nuestro disco para linux, esto lo hacemos mediante el comando f disk # fdisk -l

9.2.

Identicar tu Particin o Disco

Lo que necesitamos identicar es el nombre del dispositivo; normalmente Linux maneja las particiones con nombres como: /dev/sda1 (primera particin primaria del disco duro uno). /dev/sda2 (Segunda particin primaria del disco duro uno). /dev/sda5 (primera particin secundaria del disco duro uno). /dev/sdb1 (primera particin primaria del segundo disco duro). De la lista que nos entrega f disk , detectamos cual es la nueva que deseamos aadir (asumamos que es sdb1) Ahora necesitamos conocer cual es el punto de montaje de nuestra unidad, para ello tecleamos: # blkid /dev/sdb1 lo cual nos entregar los siguientes datos: El punto de montaje es UUID=XXXXXXXXXXXXX. 75

Captulo 9. Manejo de Nuevo Hardware

76

El tipo de unidad que queremos montar es NTFS/vfat/extx . Otra alternativa de encontrar el punto de montaje es mediante el comando: $ ls -l /dev/disk/byuuid

9.3.

Preparar la Ubicacin para Montar

Aqu tenemos que hacer un par de decisiones: como llamaremos a nuestra particin? donde la ubicaremos? En el caso de la ubicacin, por omisin ubuntu monta discos duros y dispositivos en: /media , as que es buena idea seguir esta costumbre. Respecto al nombre, eso corresponde completamente a nosotros. si es un disco que contiene archivos de musica o vdeo, puede ser buena opcin llamarla media o datos. Llamaremos a esta particin datos Para poder montar datos, necesitamos crear una carpeta en la cual montarse, para eso ejecutamos el siguiente comando en la terminal: # mkdir /media/datos

9.4.

Particionamiento ***(Pendiente)***
END.

Juaramir: Esta seccin pronto se completar

9.4.1.

Crear un sistema de archivos

Un sistema de archivos se crea, esto es, se inicia, con el comando mkfs. Existen en realidad programas separados para cada tipo de sistemas de archivos. mkfs es nicamente una careta que ejecuta el programa apropiado dependiendo del tipo de sistemas de archivos deseado. El tipo se selecciona con la opcin -t fstype. Los programas a los que -t fstype llama tienen lneas de comando ligeramente diferentes. Las opciones ms comunes e importantes se resumen ms abajo. -t fstype Selecciona el tipo de sistema de archivos. -c Busca bloques defectuosos e inicia la lista de bloques defectuosos en consonancia. -l lename Lee la lista inicial de bloques defectuosos del archivo dado.

9.4.2.

Herramientas Grcas

Para poder trabajar con los sistema de archivos, as como con las particiones, existen herramientas en los entornos grcos que facilitan esa labor. Para el escritorio KDE encontramos la utilidad QtParted, y en los escritorios GNOME la herramienta Gparted. Todas ellas son capaces de manejar el sistema de particionado de los discos, as como dar el formato deseado a cada una de ellas.

Captulo 9. Manejo de Nuevo Hardware

77

9.5.
9.5.1.

Montar Particin de Manera Temporal


NTFS

Para montar una particin NTFS en algunas distribuciones como debian, es necesario instalar el paquete ntfs-3g para poder escribir en este tipo de particiones, de lo contrario funcionar de solo lectura. # apt-get install ntfs-3g Una vez abierto el archivo si queremos montar nuestra unidad del tipo NTFS debemos aadir la siguiente linea: # mount -t ntfs-3g /dev/sdb1 /media/datos -o force o # mount -t ntfs /dev/sdb1 /media/datos -o force

9.5.2.

Fat

Si la particin que queremos montar fuera FAT, entonces tendramos que cambiar algunas cosas, la linea de fstab quedara de esta forma: # mount -t vfat /dev/sdb1 /media/datos -o force o # mount -t /dev/sdb1 /media/datos -o force

Captulo 9. Manejo de Nuevo Hardware

78

9.5.3.

ext

Si la particin que queremos montar fuera ext4, la linea de fstab quedara de esta forma (ms simple que las anteriores): # mount -t /dev/sdb1 /media/datos -o force

9.6.

Montar Particin de Manera Denitiva

Ya esta lista la ubicacin, pero necesitamos montar en si la particin, para esto, editaremos el archivo /etc/fstab, que es donde se almacenan las direcciones donde se montan nuestros discos duros. Para ello ejecutamos este comando en la terminal: # nano /etc/fstab Se abrir una ventana del editor de textos mostrando el contenido de nuestro fstab. Lo que haremos ser agregar al nal del archivo (procurando no mover el resto, ya que eso podra traer consecuencias indeseables al sistema), la siguiente lnea:

9.6.1.

NTFS

Para montar una particin NTFS en algunas distribuciones como debian, es necesario instalar el paquete ntfs-3g para poder escribir en este tipo de particiones, de lo contrario funcionar de solo lectura. # apt-get install ntfs-3g Una vez abierto el archivo si queremos montar nuestra unidad del tipo NTFS debemos aadir la siguiente linea: UUID=XXXXXXXXXXXXX /media/datos ntfs-3g default_permissions,uid=1000,locale=es_ES.UTF800 Otra forma puede ser: /dev/sdb1 /media/datos ntfs nls=utf8,umask=0222,uid=1000,locale=es_ES.UTF-8 0 0

9.6.2.

Fat

Si la particin que queremos montar fuera FAT, entonces tendramos que cambiar algunas cosas, la linea de fstab quedara de esta forma: UUID=XXXXXXXXXXXXX /media/datos vfat rw,uid=1000,gid=1000,locale=es_ES.UTF800 Otra forma puede ser: /dev/sdb1 /media/datos vfat iocharset=utf8,umask=000,locale=es_ES.UTF-8 0 0

9.6.3.

ext4

Si la particin que queremos montar fuera ext4, la linea de fstab quedara de esta forma (ms simple que las anteriores): UUID=XXXXXXXXXXXXX /media/datos ext4 errors=remount-ro 0 1 Guardar los cambios y cerrar.

Captulo 9. Manejo de Nuevo Hardware

79

9.7.

Montar la particin

Ya hemos hecho todo lo necesario para montar nuestra particin, podemos reiniciar para que los cambios tengan efecto o simplemente volver a montar nuestras particiones con el siguiente comando: # mount -a

Captulo 10

Servidor GNU/Linux
Con GNU/Linux Ubuntu Server podemos montarnos un servidor que ofrezca varios servicios a terceros como por ejemplo servidor Web, servidor DNS, servidor de correo, servidor SSH, servidor MySQL, servidor de impresin y servidor de archivos entre otros servicios.

Estos tipos de servidores los podemos usar solos en una maquina o en conjunto para que nuestro servidor sea ms o menos completo. Recuerda que cuantos mas servicios vallamos a ofrecer ms potente tiene que ser la maquina para poder dar a basto con todo. Servidor Web - Archivos - FTP - SSH

10.1.

Hardware

Podemos llamar servidor a toda maquina que este conectada a la red y ofrezca diferentes servicios a los usuarios de la misma. Para esto necesitamos Hardware suciente para montar un computador que pueda cumplir nuestras necesidades. Necesitamos: Placa base (2 Puertos USB mnimo) Microprocesador (mnimo 500 Mhz Intel o AMD) Tarjeta grca Tarjeta de red 80

Captulo 10. Servidor GNU/Linux

81

Memoria Ram (mnimo 128 Mb) Fuente de poder (alimentacin) Disco duro (10Gb mnimo recomendado) Lector de CD o usb libres para cargar el SO.

10.2.

Sistema Operativo

Si hay algo que caracteriza a Ubuntu frente a otras distribuciones Linux es que est es la ms sencilla de instalar y esto lo notaremos tan solo con instalar el sistema operativo. Durante su instalacin (totalmente intuitiva) podremos activar varios servicios para que nuestro servidor tenga todo lo que necesitemos para montar de un PC normal un servidor que ofrezca servicios a internet y a nosotros mismos en nuestra red de rea local. En la siguiente instalacin que haremos bajo el sistema operativo Ubuntu Server vamos a indicarle que nos active servicios Web, SSh, Impresin y comparticin de archivos. Respecto a la compatibilidad de este frente a clientes con Linux, Windows o Mac va a ser total con lo que podremos compartir todos los servicios sin problemas como pueden ser la impresora o los archivos, directorioso particiones que compartamos con nuestra red. Si ya tienes una maquina preparada para que funcione como servidor lo primero que vamos a necesitar es el CD/Pendrive de instalacin de Ubuntu Server. Este lo podemos descargar de su web ocial Una vez nos descarguemos el archivo de imagen ISO necesitamos grabarlo en un CD o en un Pendrive.

10.2.1.

Instalacin

Una vez tengamos el CD con el archivo de imagen ISO grabado lo insertamos en lector y encendemos el computador haciendo que arranque desde el CD. La primera pantalla que aparece nada ms arrancar nos pregunta el lenguaje que queremos para la instalacin y seleccionaremos nuestro idioma.

Captulo 10. Servidor GNU/Linux

82

Seleccionamos Install Ubuntu Server

Seleccionamos el pas donde nos encontramos

Captulo 10. Servidor GNU/Linux

83

A continuacin necesitamos indicarle cual va a ser el nombre que le vamos a dar a la maquina (ejemplo: linuxserver)

Conguramos el reloj del sistema seleccionado donde nos encontramos

Captulo 10. Servidor GNU/Linux

84

Llegados a est punto vamos a crear las particiones para nuestro Linux Ubuntu Server y para ello vamos a usar todo el disco completo ya que se supone que esta maquina que estamos montando es un servidor y va a estar 24 horas funcionando y no la vamos a usar para otra cosa que no sea un servidor. (Esta es la opcin mas sencilla) En mi caso voy a usar la segunda opcin ya que asigna automticamente las particiones y las acondiciona a nuestro disco duro y a nuestra memoria ram.

En la siguiente pantalla podemos ver todos los cambios que se van a realizar en nuestro disco duro. Si estamos de acuerdo seleccionamos (Si) si por el contrario no lo tienes claro siempre puede volver atrs pulsando (No) ...

Captulo 10. Servidor GNU/Linux

85

Seguidamente introduciremos un nombre para nuestro usuario (Ejemplo: Juan Ramrez)

Ahora introducimos el nombre de usuario para la cuenta (Ejemplo: juaramir)

Captulo 10. Servidor GNU/Linux

86

Introduce una contrasea para el usuario que anteriormente creamos y luego la vericamos.

Si nos encontramos detrs de un Proxy ahora es el momento de indicarle la direccin, si no es tu caso sigue con el botn (Continuar)

En la siguiente pantalla podemos elegir que servicios queremos que vengan instalados por defecto una vez concluya la instalacin del sistema. Seleccionamos LAMP server para que nos instale automticamente el servidor web Apache, MySQL y PHP adems de otros soportes con los que podremos montar webs o blogs. Tambin instalaremos OpenSSH para poder conectarnos desde otro PC de nuestra red y as no necesitaremos que el ordenador que estamos montando no disponga de monitor ni teclado. Con la opcin Print server podemos montar un servidor de impresin con este ordenador y una impresora a la que podremos acceder va red desde otro ordenador e imprimir lo que queramos. Samba File server tambin lo activaremos ya que con el podremos compartir carpetas o particiones completas en nuestra red y sern compatibles con Windows, Linux y Mac

Captulo 10. Servidor GNU/Linux

87

A continuacin introducimos una contrasea para el administrador de las bases de datos MySQL (root), luego la repetimos para vericarla y continuamos. Una vez terminada la instalacin el sistema expulsara el CD de instalacin y lo extraemos de la unidad. A continuacin seleccionamos (Continuar) y la maquina se reiniciar sola.

10.3.

Conguracin de Red

En la instalacin del sistema operativo se nos congur automticamente el servicio DHCP para que nuestro router nos asigne automticamente una IP. Eso esta muy bien y nos ha sido muy cmodo ya que no hemos tenido que congurar nuestra tarjeta de red para nada durante la instalacin del sistema pero vamos a tener que congurarla manualmente. Porque? Pues muy sencillo Vamos a necesitar que nuestra tarjeta de red tenga una IP esttica ya que cuando compartamos un servicio Web o Ftp deberemos abrir y redireccionar el puerto 80 para el Web y el 21 para el Ftp hacia nuestro servidor y por consecuente a una IP que a continuacin la conguraremos para que podamos hacerlo. Arrancar nuestro servidor y accederemos a una Terminal con el usuario del sistema que creamos en la instalacin de Ubuntu Server (juaramir).

Captulo 10. Servidor GNU/Linux

88

Siempre que modiquemos un archivo del sistema para congurarlo tenemos que tener en cuenta que es necesario hacer una copia de seguridad del mismo para que podamos guiarnos de l en un momento dado. A continuacin haremos una copia del archivo llamado (interfaces) que est situado en la ruta (/etc/network) y seguidamente lo editaremos para indicarle que IP esttica es la que va a tener nuestro servidor Teclea: # cp /etc/network/interfaces /etc/network/interfacesOLD

10.3.1.

Asignando IP Esttica

Una vez creada la copia vamos a editar el archivo (interfaces) con el editor de texto que viene por defecto en Ubuntu Server llamado nano Teclea: # nano /etc/network/interfaces

Captulo 10. Servidor GNU/Linux

89

Nuestra tarjeta de red primaria esta congurada para que se nos asigne una IP automticamente va DHCP. Para empezar vamos a cambiar esa palabra por (static) y a continuacin especicaremos cual va a ser nuestra IP ja, mascara de subred, puerta de enlace o gateway y resolvedor de nombres DNS. Para conocer cuales son los datos a obtener que necesitaremos llenar solo debemos teclear ifcong en la terminal y aparecera una imagen como la siguiente:

Al teclear ifcong aparecer ms a la izquierda el dispositivo de red, en mi caso eth0 para el puerto de red cableado y wlan0 para la wi. Adems aparece la direccin ip que tenemos que escribir en el campo address, la submascara de red que hay que escribir en netmask.

Captulo 10. Servidor GNU/Linux

90

Gateway es la ip con la que accedes desde un navegador a tu router para congurarlo y nalmente la ip que hay que llenar en nameserver se obtiene desde opendns.org

En la siguiente imagen expongo mi conguracin esttica que le he asignado aunque no necesariamente tiene que ser igual que la ma puede variar dependiendo de vuestro rango de IP y proveedor de internet para el apartado DNS

Como vez le he asignado la IP 192.168.0.101. Respecto a los servidores DNS he usado las direcciones de OpenDNS un servicio de resolvedores de nombres que nos ofrecen gratuitamente desde Internet. Una vez hechas todas las modicaciones al archivo (interfaces) guardamos el archivo pulsando la tecla F2, despus la Y y despus Enter. Con esto hemos guardado los cambios en el chero y salimos del editor nano. A continuacin vamos a reiniciar la red para que los cambios surjan efecto. Teclea: # /etc/init.d/networking restart Ahora deberamos tener la IP que conguramos anteriormente. Esto podemos verlo ejecutando el comando ifcong. Teclea: ifcong Ahora cada vez que arranquemos tendremos la misma IP y no una dinmica como antes.

Captulo 10. Servidor GNU/Linux

91

10.4.

Servidor Web con LAMP

Si hay algo que caracteriza a Ubuntu de otras distribuciones Linux es su facilidad de manejo. Al seleccionar LAMP Server durante la instalacin se nos ha instalado en nuestra maquina un conjunto de aplicaciones para poder usar nuestra maquina como un autentico servidor web listo para poder ofrecer contenido Web en nuestra red de rea local o hacia internet. Si no lo hiciste solo teclea en la terminal: # apt-get install tasksel # tasksel install lamp-server La opcin LAMP Server instala automticamente Apache HTTP Server, MySQL y soporte para PHP necesario para montar un Blog. Una vez efectuada la instalacin de LAMP Server tenemos que congurar algunas cosas para que todo funcione a nuestro gusto y podamos tener control sobre ello. Antes de nada vamos a comprobar que nuestro Servidor Web Apache y el soporte para PHP funcionan bien. Para ello abriremos un navegador e introduciremos la IP que tenga nuestro servidor. (http://192.168.0.101) o http://localhost. Veremos la siguiente pantalla:

Si sale esta pantalla es que de momento todo va bien y el Servidor Web Apache funciona correctamente. Pero, tenemos soporte para PHP? Para comprobar esto vamos a acceder a una terminal y nos identicaremos con nuestro usuario (juaramir). Seguidamente vamos hacia el directorio /var/www Teclea: $ cd /var/www Ahora crearemos un archivo llamado prueba.php con el editor nano. Teclea: # nano prueba.php Ahora tendremos que incluir el cdigo que vez en la siguiente imagen. <?php echo <p>probando probando !!! php</p>; ?>

Captulo 10. Servidor GNU/Linux

92

Una vez introducidas estas lineas guardamos el archivo y salimos del editor pulsando la tecla F2 -> Y -> Enter. Ahora tan solo nos queda abrir ese archivo en el navegador introduciendo la direccin IP de tu servidor seguido del archivo prueba.php. (http://192.168.0.101/prueba.php) o http://localhost/prueba.php

Ahora si que podemos estar seguros de que nuestro servidor Web funciona y tiene soporte para PHP.

10.4.1.

Congurar MySQL

Una vez visto esto vamos a congurar MySQL que formar parte de este servidor Web en el que podremos montar un Blog como WordPress o usar las bases de datos para lo que cada uno quiera. Para ello lo primero que haremos es editar el archivo de conguracin de MySQL llamado my.cnf ubicado en la ruta /etc/mysql Teclea: # nano /etc/mysql/my.cnf Una vez editado tenemos que buscar la linea: bind-address = 127.0.0.1 Y la modicamos por la IP de nuestro servidor (192.168.0.101) quedando as: bind-address = 192.168.0.101 Una vez modicada esta linea guardamos el archivo y salimos del editor pulsando la tecla F2 -> Y -> Enter. Seguidamente instalaremos PhpMyAdmin para poder administrar nuestras bases de datos.

Captulo 10. Servidor GNU/Linux

93

PhpMyAdmin Instalaremos PhpMyAdmin Teclea: # apt-get install phpmyadmin Durante la instalacin veremos una pantalla como esta:

Marcamos la opcin Apache2 y continuamos con la opcin Ok. Una vez terminada la instalacin abriremos un navegador e introducimos la url de nuestro servidor seguido de la ruta /phpmyadmin/ (http://192.168.0.101/phpmyadmin/)

Una que vez veamos esta pantalla vamos a congurar el idioma y el nombre de usuario para poder acceder a PhpMyAdmin. Respecto al nombre de usuario y el password vamos a introducir el nombre de usuario root y el password que le dimos al administrador de las bases de datos MySQL durante la instalacin del sistema operativo.

Captulo 10. Servidor GNU/Linux

94

Si en vez de haber accedido a PhpMyAdmin con el usuario root accediramos con el usuario admin y dejramos la casilla para el password vaca tambin podramos acceder al panel de administracin aunque sin privilegios. No es bueno que nadie pueda entrar as y ver que bases de datos tenemos en el servidor. Para tapar esta vulnerabilidad del sistema hacemos clic sobre la opcin Privilegios.

Ahora marcamos los tres primeros usuarios llamados cualquiera y seguidamente pinchamos sobre el botn Continuar que se encuentra ms abajo. Una vez borrados, no mostrara un mensaje de xito como:

Captulo 10. Servidor GNU/Linux

95

Ahora solo el usuario root con la contrasea que introducimos durante la instalacin del sistema operativo podr acceder a PhpMyAdmin para administrar las bases de datos que necesitemos. Esto tan solo ha sido una medida de seguridad no necesaria para el correcto funcionamiento del servidor pero si es recomendable ya que si no hacemos esto nuestras bases de datos pueden verse comprometidas en un momento dado.

10.5.

Servidor FTP

Para poder subir y bajar archivos hacia nuestro servidor en Ubuntu Server necesitamos instalar un software que sea capaz de ofrecernos este servicio. A continuacin vamos a instalarlo y congurarlo para que podamos subir y bajar archivos de nuestro servidor en Ubuntu Server. Para ello vamos a identicarnos con nuestro usuario de sistema (juaramir) e instalaremos el software Proftpd Teclea: # apt-get install proftpd Durante la instalacin veremos una pantalla como esta:

Captulo 10. Servidor GNU/Linux

96

Seleccionamos la opcin independiente para que nos haga funcionar el servidor FTP como servidor independiente. Una vez instalado vamos a aadirle una linea al archivo de conguracin de proftpd.conf con la que aremos que cuando un usuario se conecte a nuestro servidor con una cuenta propia no pueda navegar por mas directorios que por los suyos propios. No es necesario pero as nos aseguramos de que nadie nos tocar nada en el disco duro. Editamos el archivo proftpd.conf Teclea: # nano /etc/proftpd/proftpd.conf Y agregamos al nal del archivo DefaultRoot quedando as

Una vez hagamos esto guardamos el chero de conguracin y salimos del editor nano pulsando la tecla F2, despus la Y y el Enter. Ahora solo nos queda reiniciar el servidor Proftpd y empezar a subir y bajar archivos desde donde queramos Teclea: # /etc/init.d/proftpd restart

Si accedemos a nuestra cuenta FTP con nuestro usuario podremos navegar por nuestro directorio /home/usuario y tendremos permisos sucientes para hacer lo que nos venga en gana. Esto esta muy bien pero tambin estara bien el poder tener la raz de nuestro servidor Web accesible desde el FTP para poder manejar los archivos que queremos compartir va Web en nuestro servidor. Para esto vamos a congurar uno de los archivos de conguracin de Apache Web Server y le indicaremos que la raz de nuestro servidor Web va a ser uno de los directorios que se encuentra dentro de nuestra cuenta de usuario. Para empezar vamos a crear un directorio dentro de nuestro home donde todo lo que copiemos lo podremos compartir va web (Yo le voy a llamar web). Teclea: $ mkdir /home/[tu usuario]/web Una vez creado el directorio vamos a editar el archivo default ubicado en la ruta /etc/apache2/sitesavailable/

Captulo 10. Servidor GNU/Linux

97

Teclea: # nano /etc/apache2/sites-available/default Veremos una pantalla como esta pero con /var/[tu usuario] Veremos una pantalla como esta pero con /var/www

Tan solo tenemos que modicar la ruta /var/www/ por la ruta de tu directorio /web. En mi caso

Una vez hagamos esto guardamos el archivo de conguracin y salimos del editor nano pulsando la tecla F2, despus la Y y el Enter. Reiniciamos nuestro Servidor Web Apache para que los cambios surjan efecto. Teclea: # /etc/init.d/apache2 restart Seguidamente borramos el archivo index.html de la ruta /var/www para que podamos ver todos los archivos que subamos al directorio web Teclea: # rm /var/www/index.html Ahora todo lo que subamos al directorio /web podremos verlo desde nuestro navegador simplemente con poner la ip de nuestro servidor (http://192.168.0.101).

Captulo 10. Servidor GNU/Linux

98

10.6.

Dominios

Para todos los que no tenemos una IP esttica en internet nos es necesario registrarnos en alguna web que ofrezca un servicio de redireccionamiento de DNS y ojala gratuito. Necesitamos esto para que cuando nuestra IP cambie podamos localizar nuestro servidor desde Internet. Para poder ver lo que tengamos por el apartado web o transferir archivos a nuestro FTP o conectarnos directamente por SSH y tomar el control de la maquina all donde estemos. Para ello vamos a usar el servicio que nos ofrece DynDNS o No-IP. Lamentablemente los actualizadores de IP ya no estn soportados para que ubuntu lo haga directamente, por lo que es importante que tu router tenga esta capacidad y veas cuales soporta para que te elijas crees una de esas cuentas, por lo general los routers mas actuales soportan DynDNS o No-IP. Para DynDNS, debes registrarte y aadir los datos de una tarjeta de crdito, una vez te inscribas, desactivas la tarjeta y automticamente quedaras con la cuenta Free que solo permite una redireccin IP por cuenta. En cambio, No-IP no requiere registrar tarjeta y es mas sencillo y permite mas de una IP por cuenta. Una vez tengas lo siguientes datos Email de usuario (Nombre de usuario) Password (Contrasea) Dominio registrado (En mi caso prueba.homelinux.com) Debes procurar aadirlo a tu router (necesario que el router tenga la capacidad de aceptar redireccionadores de dominio) para que se encargue de hacer el llamado a DynDNS y actualizar los datos.

Captulo 10. Servidor GNU/Linux

99

Una vez completados todos los pasos ya podemos estar seguros de que cuando nuestra IP cambie nuestro router mandar un aviso con nuestra IP hacia el servicio de DNS y relacionar el dominio que registramos (prueba.homelinux.com) con nuestra IP actual.

10.7.

Entorno Grco

Vamos a instalar un entorno grco minimalista como FluxBox que te instala solo lo justo para que puedas tener un entorno grco mas agradable que la terminal a secas. Si instalas Gnome, KDE o incluso Xfce entiende que sobrecargaras el sistema y no es que se vaya a morir nuestro servidor si no que todo ira ms lento, y ms si sumamos que hay usuarios visitando nuestras paginas, subiendo archivos y bajando desde el FTP o imprimiendo algo con nuestra impresora. Si tu computador no es potente no lo instales pero si crees que est bien, es cosa tuya. Antes de instalar el entorno grco hay que instalar el servidor grco Xorg. La instalacin de estos dos programas es muy sencilla. Para hacerlo accedemos a una Terminal con nuestro usuario de sistema. Teclea: # apt-get install xorg Ahora instalamos el entorno grco FluxBox Teclea: # apt-get install uxbox Una vez terminada la instalacin de Xorg y FluxBox vamos a iniciar el entorno grco. Teclea: $ startx Ahora estamos ante un entorno sper sencillo sin iconos y con 4 escritorios adems de algunas utilidades que podremos descubrir con un solo clic con el botn derecho de t ratn.

Captulo 10. Servidor GNU/Linux

100

Si necesitamos una Terminal tenemos que hacer clic con el botn derecho del mouse y seguir el men Aplicaciones -> Consolas -> Bash una vez all podemos usarla para seguir como lo hemos estado haciendo hasta ahora. Este entorno grco se ha montado solo para momentos puntuales donde necesite de un navegador que pueda usarlo sin problemas. Como navegador he elegido refox. Teclea: # apt-get install refox Una vez instalado lo podemos ejecutar desde una Terminal con solo teclear la palabra refox o hacer clic con el botn derecho del mouse y seguir el men Aplicaciones -> Red -> refox. Para salir del entorno grco y volver al modo Terminal de siempre tan solo tendremos que hacer clic sobre el botn derecho del mouse y seleccionar Exit Ahora cuando necesitemos un entorno grco y ligero que nos permita navegar tan solo tendremos que teclear el comando startx y usarlo sin problemas, eso si solo cuando lo necesitemos as nuestra maquina ir ms ligera de recursos.

10.8.

Servidor de archivos Samba

Si recordamos la instalacin de Linux Ubuntu Server que hicimos al principio de este manual veremos que marcamos la opcin Samba File Server. Al marcar esta opcin se instalaron automticamente todas las aplicaciones necesarias para poder compartir archivos entre maquinas Windows y Linux.

Captulo 10. Servidor GNU/Linux

101

Si no lo hiciste durante la instalacin, teclea: # apt-get install samba samba-common smbclient libpam-smbpass Existen dos maneras de congurarlo, la primera congurando el archivo llamado smb.conf ubicado en la ruta /etc/samba y hacerlo todo a mano. La otra manera de hacerlo es grcamente con un interface que nos facilite esta labor. Para empezar vamos a identicarnos en el sistema con nuestro usuario e iniciaremos el entorno grco FluxBox. Teclea: $ startx A continuacin accedemos a una Terminal pulsando el botn derecho del ratn y siguiendo el men Aplicaciones -> Consolas -> Bash Antes de tocar nada vamos a instalar la aplicacin system-cong-samba y un par de dependencias que necesita para poder funcionar. Teclea:# apt-get -y install system-cong-samba python-gtk2 python-glade2 Seguidamente arrancaremos el interfaz grco de samba que nos acaba de instalar Teclea: # system-cong-samba

A continuacin vamos a compartir carpetas de la forma ms fcil que pueda existir sin pedir contraseas ni usuarios a nuestros clientes. Para hacer esto lo primero que necesitamos hacer es congurar el servidor SAMBA para que sea del mismo grupo de red que los dems equipos conectados a l con Windows. Para esto vamos a pulsar el botn Preferencias y a continuacin Conguracin del Servidor.

Captulo 10. Servidor GNU/Linux

102

En la primera casilla Grupo de trabajo debemos incluir el nombre que tenemos como grupo de trabajo en Windows. Una vez congurado lo anterior continuamos con la pestaa Seguridad y dejaremos todas las casillas tal cual ven en la imagen.

Continuamos con el botn OK y ya estamos listos para compartir carpetas y archivos tanto en Windows como en Ubuntu en este caso. Para compartir algn directorio haremos lo siguiente. Primero pulsamos el botn Aadir Recurso Compartido y veremos la siguiente ventana.

Ahora pulsaremos el botn Examinar

Captulo 10. Servidor GNU/Linux

103

Ahora vamos a crear una carpeta que compartiremos con todos los computadores de nuestra red con el botn Create Folder e introducimos el nombre que deseemos para ese directorio. Una vez creado el directorio pulsamos el botn OK y como podemos ver ya se ha agregado ese nombre a la casilla Directorio y a la casilla Nombre de recurso compartido.

En la casilla Descripcin podemos incluir una descripcin de la carpeta que vamos a compartir. Esto es opcional ya que no interviene en nada al funcionamiento del servidor. Marcamos las casillas Permiso de Escritura y Visible (si lo deseamos) quedndonos as

A continuacin pulsamos sobre la pestaa Acceso y marcamos la casilla Permitir acceso a todos (si lo deseamos) quedndonos as:

Captulo 10. Servidor GNU/Linux

104

Para nalizar cerramos esta ventana con el botn OK. Esta es la conguracin menos segura ya que puede conectarse cualquiera a nuestro recurso compartido siempre y cuando pueda conectarse fsicamente a nuestra red de rea local conectando un cable de red a nuestro switch o router. Se pueden agregar usuarios e incluso tener que identicarse en el servidor cuando queramos acceder al recurso compartido. La nica medida de seguridad que necesitamos para que nadie pueda acceder al recurso compartido desde Internet es asegurarnos de no tener abierto el puerto para Netbios 139 en nuestro Router as cuando alguien haga desde fuera una peticin al puerto 139 nuestro Router no sabr a que maquina redireccionarla y no le devolver respuesta alguna. Para nalizar la conguracin de la carpeta que acabamos de crear necesitamos darle permisos para que se pueda escribir, borrar y leer en ella. Para esto vamos a abrir una Terminal pulsando con el botn derecho del ratn y siguiendo el men Aplicaciones -> Consolas -> Bash En nuestro caso creamos una carpeta llamada almacn y vamos a darle permisos totales para que todos puedan leer y escribir en el directorio Teclea: # chmod 777 /home/[tu usuario]/almacen Y todo listo ahora en Windows podemos ver el directorio compartido desde Mis Sitios de Red y desde Linux en Lugares -> Red

10.8.1.

Conguracin Samba sin Entorno Graco ***(pendiente)***


END.

Juaramir: Esta seccin se completar prontamente

10.9.

Blog con Wordpress

Captulo 10. Servidor GNU/Linux

105

Si han siguiendo este manual sobre como montar un servidor con Ubuntu Server tendrn una maquina preparada para funcionar y servir al publico lo que ustedes quieran. A continuacin vamos a instalar WordPress para montar un Blog y tenerlo como pagina principal al acceder a nuestro servidor. Para que funcione correctamente necesitamos un servidor Apache Web Server, soporte para PHP y bases de datos MySQL cosas que ya deberan tener funcionado a este punto. Para empezar arrancamos nuestro servidor y nos identicamos con nuestro usuario de sistema. La carpeta raz de mi servidor Web es /home/[tu usuario]/web y es justo aqu donde tenemos que montar WordPress y as lo veremos directamente al introducir la IP local o desde Internet con el dominio http://prueba.homelinux.com que registramos anteriormente. Vamos a situarnos una carpeta ms arriba que la que comparte el servidor Web, en /home/[tu usuario]/ Teclea: $ cd /home/[tu usuario] Descargamos la ultima versin de WordPress Teclea: $ wget http://wordpress.org/latest.tar.gz Luego lo descomprimimos: $ tar xvzf latest.tar.gz Como vern se nos ha creado una carpeta llamada wordpress. Este programa para funcionar necesita una base de datos MySQL que vamos a crear a continuacin. Vamos a abrir un navegador desde otro computador de nuestra red y vamos a introducir la siguiente direccin http://ipdetuservidor/phpmyadmin (http://prueba.homelinux.com/phpmyadmin)

A continuacin introducimos el nombre de usuario y el password. Para crear una base de datos tan solo tenemos que seleccionar el botn Base de Datos e introducir el nombre que queramos en la casilla y luego presionar crear

Captulo 10. Servidor GNU/Linux

106

Una vez creada la base de datos volvemos a nuestra Terminal en el servidor y vamos a acceder al directorio que se nos creo llamado wordpress al descomprimir el archivo anteriormente. Teclea: $ cd /home/usuario/wordpress/ Creamos una copia de el archivo wp-cong-sample.php y la llamaremos wp-cong.php Teclea: $ cp wp-cong-sample.php wp-cong.php Ahora vamos a editarlo con el editor nano y lo conguraremos para que WordPress lea y escriba la base de datos que creamos anteriormente Teclea: $ nano wp-cong.php En este archivo tan solo tenemos que modicar tres lineas para que use nuestra base de datos MySQL dene(DB_NAME, putyourdbnamehere); // Nombre de la base de datos dene(DB_USER, sernamehere); // Nombre de usuario de MySQL dene(DB_PASSWORD, yourpasswordhere); // Password del usuario Una vez modicados estos datos en negrita por los nuestros guardamos el archivo y salimos con la tecla F2 -> Y -> Enter. Ahora vamos a copiar todo el contenido de la carpeta wordpress a el directorio raz de nuestro servidor Web Teclea: $ cp -r /home/usuario/wordpress/* /home/usuario/web/ Ahora volvemos a abrir un navegador en un computador cliente o desde nuestro entorno grco e introducimos http://ipdetuserver y veremos la siguiente pantalla

Captulo 10. Servidor GNU/Linux

107

Rellenamos las casillas con el nombre y correo electrnico y luego pulsar el botn Install WordPress Y listo!, ahora solo debes acceder a tu web con http://ipdetuservidor/wp-admin y comenzar a publicar.

10.10.
10.10.1.

Lecturas Recomendadas
Bloquear Ataques de Fuerza Bruta

Pueden proteger mas su servidor web siguiendo este manual: Bloquear Ataques de Fuerza Bruta

10.10.2.

Aadir Host Personalizado

Un manual bastante practico para aadir un host personalizado se encuentra regoremor.com

10.10.3.

Otros Servidores

Blog Forat.info sobre Servidores en GNU/Linux.

Captulo 11

Punto de Restauracin con Clonezilla

Clonezilla es un programa que nos permite crear imgenes de nuestro disco duro, de modo que despus podamos volcarlas en el mismo equipo (a modo de copia de seguridad del sistema) o en otro con iguales caractersticas (para tener varios equipos instalados con el mismo software). Los nicos requisitos son tener un CD o USB de arranque con el sistema Clonezilla y un Disco Duro Externo.

11.1.

Inicio

Seleccionamos en nuestra bios el arranque desde el CD/USB que habremos preparado previamente con Clonezilla. Nos aparece el men inicial dnde seleccionamos qu tipo de interfaz preferimos. 108

Captulo 11. Punto de Restauracin con Clonezilla

109

Seleccin del Idioma:

Seleccin del Teclado:

Captulo 11. Punto de Restauracin con Clonezilla

110

Seleccionamos qu tipo de imagen vamos a realizar, de disco a imagen o de disco a disco. Seleccionamos de disco a imagen.

Seleccionamos dnde vamos a subir/extraer la imagen: a un disco local o externo, a un servidor nfs, ssh... Seleccionamos local_dev para utilizar el disco externo.

Captulo 11. Punto de Restauracin con Clonezilla

111

11.2.

Crear Imagen para Respaldo

Selecciona Disco externo para almacenar la imagen:

Seleccionamos el modo que vamos a emplear: savedisk: salvar la imagen de todo el disco. restoredisk: restaurar la imagen de todo el disco. saveparts: salvar una particin. restoreparts: restaurar una particin. Seleccionamos savedisk

Le damos un nombre al Archivo que albergar nuestra imagen.

Captulo 11. Punto de Restauracin con Clonezilla

112

ltima pregunta de conrmacin antes de comenzar a Crear la imagen, respondemos y

Captulo 11. Punto de Restauracin con Clonezilla

113

11.3.

Utilizar Imagen para Restaurar

Seleccionamos el modo que vamos a emplear: savedisk: salvar la imagen de todo el disco. restoredisk: restaurar la imagen de todo el disco. saveparts: salvar una particin. restoreparts: restaurar una particin. Seleccionamos restoredisk Seleccin del Disco de la Imagen:

Seleccin del la Imagen:

Seleccin del Disco de Destino:

Captulo 11. Punto de Restauracin con Clonezilla

114

Comienza el Proceso de Restauracin:

Presiona y para continuar (elimina todo el contenido del disco)

11.4.
11.4.1.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

Resumen
Creacin de Imagen

Enter Enter Enter Enter Enter Enter Seleccionar Particin del disco externo donde guardar la imagen (Flechas, Espacio y Enter) Seleccionar el modo (savedisk o saveparts) Nombre de la imagen y Enter Seleccionar el Disco o particin(es) a respaldar (Flechas, Espacio y Enter) Teclea y y luego presiona Enter. esperar a que nalice y luego presionar Enter.

Captulo 11. Punto de Restauracin con Clonezilla

115

11.4.2.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

Restauracin de Imagen

Enter Enter Enter Enter Enter Enter Seleccionar Particin del disco externo donde esta la imagen (Flechas, Espacio y Enter) Seleccionar el modo (restoredisk o restoreparts) Selecciona la imagen y Enter Seleccionar el Disco o particin(es) a restaurar (Flechas, Espacio y Enter) Teclea y y luego presiona Enter. esperar a que nalice y luego presionar Enter.

You might also like