Comandos Basicos Linux

March 21, 2018 | Author: Guiñez Boris | Category: Free Software, Linux Distribution, Unix, Computer File, Kernel (Operating System)


Comments



Description

Bitácora GNU/LINUX de Juaramir.com Comandos GNU/Linux, Paquetes escenciales y Configuración Documento Elaborado por Juan José Ramírez Lama Versión 2.0 @Juaramir 2013 Índice general 1. Introducción 1.1. Sistemas Operativos . . . . . . . . . . 1.1.1. UNIX . . . . . . . . . . . . . . 1.1.2. LINUX . . . . . . . . . . . . . Distribución . . . . . . . . . . . 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. Clasificación . . . . . . . . . . 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 Términos . . . . . . . . . . . 1.5. Distribución 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 Gráfica de Usuario . . Manejo Básico 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 Pequeños . . . . . . . . . . . . . . En Sistemas Grandes . . . . . . . . . . . . . . . 1.7. Sistemas de Archivos y Jerarquía . . . . . . . . . . . . 1.7.1. Organización de sistema de archivos . . . . . . El Directorio Raíz / . . . . . . . . . . . . . . . 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 Manager’s . . . . . . . . . . . . . . . . 2. Interprete de Comandos 2.1. Bash . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Comandos Básicos 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 globalización (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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . du (disk usage) . . . . . . .14. . . .15. . . . . . . . . . . . . Empaquetado . . . . .13. . . . . . . .5. . . . . . . . sort . . . . . . .3. . . . . . . . . . . . . 2. . . . . . . .3. . . .7. . . . . . . . . . . .3. . . . . date . . . . . . . . Mostrar contenido de un archivo: . . . . . . . . . . . . . . .3. . . . . . . . . . . . . .rar (rar) . . . . . . . . . . . . . . . . . 2. . . . . . . . . . . . . . . . . . . 2. . . . . . . . . . . . . . .3. . . . . . . . . . . .1. . . 2. 2. . . .3. . . . . . . . . . . . . . . . . 2. . . . . . . . . . . 2. . . . . . . . . . . . . . . . . grep y egrep . . .9. . . .14. . . . . . . . . . .tar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . 3. . Unir dos vídeos en unos solo: .3. . . . . . . . . . . . . . . . . . . . . . . . . . 3.bz2 (tar con bzip2) 3. . . . . . . . . . . . . . . . 2. . . . sleep . . .3. . . . . . . . . . . . . . . . . . . . . . . .17. . . . . . . . . .3. . 2. . . finger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. . . . . . . . . . . . . . . . . . . . . . 2. . . 2. . . . . . . 2. 2. . . . . . . 3. . . .3. . . . . . . . . . .3. . .3. time .4. . . . . . . . . . . . . . . . . . . . Lectura de archivos . . . . . . . .3. . . 3. . . . . . . . . . . . . . .. . . . . . . . . . . . .3. who . . . . . . . . . . .gz (gzip) . . . . . .3. . . . .3. . . . . . . . . . . . .3. . . . . . . . . . . . df . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . 2. . . . . .2. . Comandos Avanzados . . . . . . . . . . . . . 2. . . 3. . . . . . . . Compresión y Empaquetado 3. host . . . . . . . . . . . . . .21. . Cambiar permisos sin código octal (chmod) 2. . . .3. . . 3. .1. . . . . . . . . . . . . . . . . .tar . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5. . . . . . . .tar. . . 2.20. . . . . . . . . . . . . . . .2. . . . . . . . . wc (word counter) . .6. . . ip . . . . . . . . . . . . . . . . . . .10. . . . uname . . . . . . . . . . . . . . . . . . 2. . . .4. . . . . . . . . . . . . . . . .z . . . . .tar. . . . . . . . . . . . . . . . . . . . . . . . . . .3. .3. . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . .7. . . . . . . . .2. . . . . . . . . . .15. .16. . . .18. . . .. . . . . . . . . . . . Compresión . . . . . .16. . . . 3. . . . 3. . Compresión . . . . . . . . . . . . . . . . . . . . . . .3. . . .zoo (zoo) . . . 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. . . . . . . .19. . . . . . . . . . .3. . . . . .3. . . . . . . . . . . . . . . . . which . . .bz2 (bzip2) . . . . . . . .zip (zip) . . . . . . find . . . . con gzip) . . . . . . . . . . . . .gz .3. . . whereis . . . . . .12. . . cal . .2. . . . . . . . . . . . . . . . . . . . . . . .11. . . . . . . .3. . . . .1. . . . . . . . . . . . . . 2. . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . .8. . . . .3. . . . . . .3. . . . .13. . . . . . . . . . . . . . . .3. . . . . . . . . . .Índice general iv 2. . . . . 2. . . . . . . .3. cat: Manejo de archivos . . . . . . .lha (lha) . . . . . . . . . . . . . . . 2.2. . . . . . . . . file . . . . . . Concatenar archivos: .2. . . . . . . . alias . . . . . . .tgz (tar 3. . . . ln (enlace simbólico) . 2. . . . . . . . . . . . . . split . . . . . . . . . . . . . . . . . . . . . . . . . Cambiar permisos (chmod) . . . . . . . . . 5. . . . . . . 5. . . . . 7. . . . . Para ejecutarlo . . . . . .7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.4. . . . 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. . . . . CRON: 8. . . Configuración de CUPS . . . . . . . Ejecución de un comando en bash . . . . . . . .4. . . . . .1. . . . . . . . Comandos y programas útiles al hacer scripts . . . . . . . . . . . . . . . . . . . . . . 8. . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . CRON: 8. Comandos para Administrar Grupos: . . 5. .2. . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . Borrar todas tus tareas del crontab ahorrar tiempo .1. . . . . . . . . . . . . . . . . . . . . . . Acceso Remoto Gráfico (SSH) . . . . . CRON: 8. . . . . . . .1. . . . . . . . . Ejercicios: Scripts básicos para bash . . . . CRON: . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instalación . . 4. . . . . . .2. . . . . . . . . . . . . . . . . . . Shell Scripts 7. . Acceso remoto a terminal (SSH) 4. Sistema de paquetes DEB: . . . . . . . .5. . . . . . . . . . . . . . .5. . . . .3. Operadores . .3. . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . .2. . . . .1. . . . . . . . . . . . . APT: . . . . 7.1. . . . . . . . . . . . . . . . . . crontab . . . . . . . . . . . . . . . .2.2. Instalación . . . . . . . . . . . . . . Administración Básica 5. . . . . . 7. . . . . . . . . . . . . . . . . . . . . . Expansiones . Algunos Ejemplos . . . . . . 4. . . . . . . . . . . .1. . . . . . . . . . .5. . . . . .5. . . . . . . . . .8. . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . CRON: 8. . . . . . . . . Ambiente y variables de ambiente . . . . . . Instalación . . . . CRON 8. . 7. . . . . . Acceso Remoto: Envio/Recepción 4. . . . . . . . . . . . 5. CRON: 8. .2. .1. . . . . . Servicio de Impresoras (CUPS) 6. . . Listar todas tus tareas del crontab . . 7. . . Cómo Crear un script sencillo . . . . . . . . . . . . Otros Comandos: . . . . . . . . . . 5. . . . . 6. . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Acceso Remoto . Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . Administración de Aplicaciones . ¿Que es? . . . . . . . . . . . . . . . . . . .7. . . 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . .2. . . ahorrar tiempo .1. . . . . . . . . . . Comandos para Administrar Usuarios: 5. . . . . . . . . . . . . . . . Script Basico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . .3. . . . . . . .Índice general v 4. . . . . . .6. . . . . .2. . . . . . . . . . . . . . 5. . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . 6.1. . . . .3. . . . . . . . . . . . . . . . . 7. . .5. . . Configuración de clientes de CUPS . . . 7. . . de Archivos . . . . . . . . Administración de Usuarios . . . . . . Lecturas recomendadas: Scripts básicos para bash 7. . . . . . . . . . . . . . . . . 4. . . Administración de Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CRON: 8. . . . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9. . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Servidor FTP . . . . . . . . . .1. . . . . . . . . 10. . . . . . . . . . . . .1. 10. . . . . Dominios . 9. . . . . Identificar tu Partición o Disco . . . 9. . . . . . . . . . . . . . NTFS . . . . . . . . . . . . Lecturas Recomendadas . . . . . . . . . . 10. . . . . . . . .2. . . . . . . . . . . . . . . . ext4 . . . . . . . . .8. . .Añadir Host Personalizado . . . . . . .Índice general vi 8. . . . . 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Manejo de Nuevo Hardware 9. . . . . .3. . . . Particionamiento ***(Pendiente)*** .4. . . . Sistema Operativo . . . . . . . . . . . . . . . . . .8.6. . . Configuración Samba sin Entorno Grafico ***(pendiente)*** 10. . . . .2. . . . . 10. . . . . . . . . . . . .Otros Servidores . . . . . . . . . Servidor Web con LAMP . . . . . . . . . . . . . . . .10. . 10. . . . . . . . 10. . . . . . . . 8. . . . . . . . . . . . . . . . 9. . . . CRON: Creación de un crontab para un usuario . . . . . .5. . . 9. . . . . Montar Partición de Manera Definitiva 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . 9. . . . . . . . .9. . . . . . . . . . . . . . . . . . . . Blog con Wordpress . . . . . . . . . 9. . . . . . . . . . . . 9. . . . 9. . .3. . . . . . . . . . . . . . . .8. . . . . Hardware . . . . . . . . . . .6. . . 9. . . . . . . . . . . . . . . . . 10. . . . . . . . . . . Fat . . . . . . . . . . Crear un sistema de archivos .2. . . . . . . . . . . .1. . . . . . . . 9. . . . . . . .1. . . . . . . . . ext . . . . . . . . . . . . .10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10. . . . . . . . . . . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . . . . . . PhpMyAdmin .Bloquear Ataques de Fuerza Bruta . . . Identificar tu Partición o Disco . . . . . . 10.6. . Preparar la Ubicación para Montar . . . . . . . . . 10. . . 10. . . . . .10. . . . . . . . . . . . . . . . . Montar Partición de Manera Temporal 9. . . . . . . . . .1. . . . . . . . . . . . . .3. . . . . Servidor de archivos Samba . . . Configuración de Red . Instalación . . . . . . 10. . . . . . .5. . . . . . . . . . . . . . . . . . .4.3. . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. Montar la partición . . 10. . . . . .4. Configurar MySQL . . . .4. . . . . . . . . .2. . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.3. . . . . . . . . . . . . . . . . Ejemplos . . . . . . . . . . . . . . . . .Servidor GNU/Linux 10. . . . . . . . . . . Entorno Gráfico . . . . . . Asignando IP Estática . . . . . . .10. . . . . . . . . . .6. . . .1. . . . . . . . . . . . . . . NTFS . . Herramientas Gráficas .7. . . . . . 9. . . .1. . . . 10.1. .1. . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.2. Fat . . .7. . . . . . . . 10. . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11. . . . . . . . 11. . . . .Punto de Restauración con Clonezilla 11. . . . . . Restauración de Imagen .4. Crear Imagen para Respaldo . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . .2. . 11. . . . .4. . . . . . . . . . . 11.4. . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . Utilizar Imagen para Restaurar . . . . . . . . . . . . . . . . . . Resumen . . . Inicio . . . . . 108 108 111 113 114 114 115 . . .1. . . 11. . . . . . . . . . . . . . . . . .Índice general vii 11. . . . . Creación de Imagen . . Ubuntu. NetBSD. XP. Fedora. 2000.Capítulo 1 Introducción 1. Mac OSx Microsoft: D.O.11.1.O. 95. Mandrake. Pearlinux. Solaris. 98. Windows 3.1. 7. HP-UX.1.): Conjunto de programas destinados a permitir la comunicación del usuario con un computador y gestionar sus recursos de manera eficiente. Vista. AIX. Mandriva. la compañia General Electric (GE) y los Laboratorios de Telefonía de Bell (BTL) inician el proyecto MULTICS. Linux Mint. Slackware. Sistemas Operativos ¿Que es un Sistema Operativo? Sistema Operativo (S. Archlinux. Ejemplo 1. Sistema operativo interactivo/multiusuario.S. Mac OS.1 Ejemplos de Sistemas Operativos Unix: System V. 1 . Slax. Suse. 8. OpenSuse. 2 1. Red Hat. UNIX 1965 Instituto de Tecnología de Massachussets (MIT). GNU/Linux (Distribuciones): Debian. 3.1.FreeBSD. org. Ritchie y K. aunque a menudo incorporan aplicaciones o controladores propietarios. Thompson trabajan en un nuevo S.1. Incluye determinados paquetes de software para satisfacer las necesidades de un grupo específico de usuarios. En 1994 libera la versión 1. Se publica POSIX. Linus Torvalds se basa en minix para crear un kernel para i386 (procesadores de 32 bits). Todas las versiones creadas debían pagar licencia AT&T. HP-UX (HP). Debido a problemas Judiciales AT&T. 1. Cumple con el estándar Posix. Compuestas. Comienza en 1991 con la versión 0. Se crea un compilador para el Lenguaje C. basado en Unix. La primera versión fue escrita en asembler para una DEC PDP-7.1 Actualmente existen versiones de Unix: 1.O. LINUX Andrew Tanenbaum crea Minix. se ofrece una licencia de Unix la que no ofrece soporte. La Universidad de Berkley desarrolla una versión de Unix (Unix BSD).(1973).kernel. para x86 Lo usa para sus clases ya que no es posible estudiar el código fuente de UNIX. Distribución Coloquialmente llamada “distro”. 2. En 1969 D. Contribuciones de todo el mundo.O. Solaris (Sun Microsystem). Se une a las aplicaciones GNU + kernel Linux. Existen ediciones domésticas. . Lo diseña para x86 ya que es una plataforma económica. total o mayoritariamente. www. 3.02.2. Se reescribe el núcleo de Unix en C. Distribución de software basada en el núcleo Linux. empresariales y para servidores. bajo licencia GPL. Es el kernel de un S. Linux es sólo el kernel de un S. Introducción 2 No llego a finalizarse pero dio los fundamentos necesarios para la creación de un Sistema Operativo.O.0. que luego pasaría a llamarse UNIX (1970). de software libre. UNICS. esto permite utilizar Unix en otras arquitecturas de HW.Capítulo 1. AIX (IBM). GNU es un acrónimo recursivo que significa GNU No es Unix (GNU is Not Unix). GNU/Linux es la referencia a la combinación del Kernel Linux. 1. en sentido estricto. La historia del núcleo Linux está fuertemente vinculada a la del proyecto GNU. Richard Stallman: «Se puede pronunciar de cualquier forma.1. parte fundamental de la interacción entre el núcleo y el usuario (o los programas de aplicación) se maneja usualmente con las herramientas del proyecto GNU o de otros proyectos como GNOME. el sistema operativo.3.1: quitectura de GNU/Linux 1. Linus Torvalds. Linux es un núcleo de sistema operativo libre tipo Unix. que es usado con herramientas de sistema GNU.1. En 1991 Linus Torvalds empezó a trabajar en un reemplazo no comercial para MINIX9 que más adelante acabaría . que se inició en 1983 por Richard Stallman.4. en 1991. Fue concebido por el entonces estudiante de ciencias de la computación finlandés. GNU/Linux El proyecto GNU fue iniciado por Richard Stallman con el objetivo de crear un sistema operativo completamente libre: el sistema GNU. Historia de GNU/Linux El proyecto GNU. la única pronunciación errónea es decirle ‘linux’».Capítulo 1. Introducción 3 Figura 1. A pesar de que Linux es. tiene como objetivo el desarrollo de un sistema operativo Unix completo y compuesto enteramente de software libre. 2. Entonces. comenzaron a usar a Linux a modo de continuar desarrollando el proyecto GNU. y este aún no era lo suficiente maduro para usarse. Compativilidad Ninguno de los dos sistemas operativos son totalmente compatibles con el Hardware. el llamado Hurd. incluyendo un intérprete de comandos. 1. Permite personalizar los paquetes a instalar. Software Linux al tener menos software en algunos campos sufre una menor aceptación por parte de las empresas.1. 1. Cuando Torvalds liberó la primera versión de Linux. siguiendo la tradicional filosofía de mantener cooperatividad entre desarrolladores. posee una gran cantidad de software. El día en que se estime que Hurd es suficiente maduro y estable. llenó el “espacio” final que había en el sistema operativo de GNU. Windows al ser parte de Microsoft intenta ofrecer una gran cantidad de drivers ya que su gran poder económico hace que las empresas mismas de hardware creen sus propios drivers. 1. ¿Diferencias con Windows? Windows pertenece a una empresa llamada MICROSOFT: Debemos pagar una licencias por su instalación y uso. el proyecto GNU ya había producido varias de las herramientas fundamentales para el manejo del sistema operativo. No permite utilizar el Sistema Operativo mientras se instala. Introducción 4 siendo Linux. actualizaciones frecuentes.Capítulo 1. será llamado a reemplazar a Linux.2. Aunque Linux no esta detrás de ninguna casa comercial gracias a su elevada popularidad ofrece una alta compatibilidad ofreciendo. En algunas distribuciones su instalación es muy sencilla. Al instalar LINUX no tendrá nunca problemas de legalidad.2. aunque gracias a los apoyos de empresas como Sun Microsystems o IBM se ha logrado muchos avances. Windows al ser el mas fácil de usar en las empresas. a pesar de que Windows se acerca más. una biblioteca C y un compilador. pero como el proyecto contaba con una infraestructura para crear su propio núcleo (o kernel). . Permite utilizar el sistema operativo mientras se instala (LiveCD). los dos están cerca de conseguirlo. Es TOTALMENTE GRATUITO. GNU/Linux es libre y le pertenece a la comunidad: No debemos pagar licencias. el núcleo creado por Linus Torvalds.2. La instalación es mínimamente configurable aunque es muy sencilla. quien se encontraba por entonces estudiando en la Universidad de Helsinki. además. también si una aplicación falla simplemente no bloquea totalmente al equipo. Este contrato no vende ninguno de los derechos de software al usuario. Introducción 5 1. Clasificación De acuerdo a las licencias de software podemos clasificarlas en: Licencia de Software Propietario. denominado “Derecho de Autor”. Todo software tiene asociado una licencia. En Windows siempre hay que reiniciar cuando se cambia la configuración del sistema. un derecho de propiedad exclusivo y oponible a todos.3. Licencias de Software Las Licencias de Software están ligadas a los derechos de autor o Copyright.2. . los cuales le dan al autor de una obra. Una licencia de software establece un contrato legal entre el/los autor/es del software y el usuario de dicho software. por el hecho de haberla creado. Licencia de Software Libre.Capítulo 1. Robustez Linux se ha caracterizado siempre por la robustez de su sistema ya que pueden pasar meses e incluso años sin la necesidad de apagar o reiniciar el equipo. EULA (End User License Agreement). se bloquea fácilmente cuando ejecuta operaciones aparentemente simples por lo que hay que reiniciar el equipo.3.3. el cual establece los derechos y obligaciones contraídos al momento de adquirir el software. 1. además de promover el comercio honesto que contribuirá al desarrollo económico y social. Propiedad intelectual Necesidad de dar una expresión estatutaria a los derechos morales y económicos de los creadores sobre sus creaciones. CLUF (Contrato Licencia de Usuario Final). 1. sino que concede el derecho a hacer uso de él normado por las cláusulas indicadas en la licencia de software. Necesidad de promover la creatividad y divulgar sus resultados.1. Clausulas Esto se basa en las cláusulas de la licencia del software. también se llama: Licencia del programa. 1.2.3. Se aprecia que no se hace referencia alguna al valor del software. Normalmente vienen acompañados de publicidad. 0. pero no se puede obtener el código fuente: Freeware: Permiten la redistribución pero no la modificación (y su código fuente no está disponible). modificado o no. FSF www.fsf. Estos últimos dos puntos deben tener una restricción: Si redistribuye el programa. Además.org El software libre no solo se refiere a aspectos legales de su licencia. Existen diversos documentos que reflejan dicha filosofía. 3. Esta cláusula es la que garantiza la libertad del programa. y hacer públicas tus mejoras. No se puede hacer ingeniería inversa ni descompilar el programa ejecutable para acceder al código fuente. Garantía Limitada: El software se proporciona çomo está"sin garantía de ninguna clase.3. impidiendo que alguien tome un desarrollo libre y lo transforme (o incluya) en un desarrollo propietario. Raymond. Shareware: autorizado para redistribuir copias. 1. Introducción 6 1. Libertad para ejecutar el programa con cualquier propósito. limitando alguna de las libertades citadas.3. Son 4 las características / propiedades o libertades fundamentales para que un software sea "Software Libre". la “empresa de software” no garantiza ni hace representación alguna con respecto al uso o a los resultados del uso del software. debe hacerse bajo las mismas condiciones.Capítulo 1.4. pero tampoco se puede obtener el código fuente. Libertad de copiar el programa de manera que puedas ayudar a tu vecino. Libertad de mejorar el programa. de forma que se beneficie toda la comunidad. Existe también software que no es tan restrictivo. Libertad para estudiar y modificar el programa. 1997). Restricción de copias: Sólo se permite una copia para efectos de respaldo Restricciones sobre uso: No se autoriza el uso para algo que no este contemplado. quien creó la fundación de software libre (Free Software Foundation. como la catedral y el bazar (Eric S. 1. sino también a la forma de hacer las cosas. por lo tanto: “SOFTWARE LIBRE” distinto “SOFTWARE GRATIS” . Software Libre El Software libre nace de la mano de Richar Stallman.3. Software Propietario Se refiere al software que tiene licencias de software con las siguientes características: Conseción de licencia: En consideración del pago de la cuota por concepto de LICENCIA. Normalmente solo se puede utilizar un porcentaje de toda su funcionalidad o viene con fecha de expiración. 2. Capítulo 1. Introducción 7 Nótese 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 sostén legal al software libre. Actualmente se define la GPL ver. 3 del 29 de junio del 2007. Garantiza las 4 libertades. Incluye una “Ausencia Total de Garantía”. Cualquier modificación 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 documentación GFDL: Similar a la GPL, pero orientada a la documentación. 1.3.5. Comparativa S.L. y S.P. S. Libre Ilimitadas Cualquiera Siempre estará disponible Sin Garantía Se Permite S. Propietario Solo 1 para efectos de respaldo Solo lo que indica la licencia No se entrega Garantía Limitada No se permite Características Copias Uso Código Fuente Garantías Modificación 1.4. Algunos Términos Consola: Es un programa para ingresar comandos vía teclado. Estos comandos sirven para decirle al sistema operativo que realice determinada acción. Los comandos se ingresan uno a la vez. Por lo general la consola se encuentra ubicada en Aplicaciones->Accesorios>Terminal. Distribución: Linux en sí es sólo el núcleo del sistema operativo. Una distribución Linux es el núcleo más un montón de herramientas para que sea más fácil configurar el sistema operativo y otro montón de aplicaciones que pueden variar de una distribución a otra. Ejemplos de distribuciones Linux son: Ubuntu, Fedora, Arch, Mandriva. Existen cientos, pueden elegirse de acuerdo a simples gustos o a complejas necesidades. Capítulo 1. Introducción 8 Distro: Diminutivo de distribución. 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 más fácil localizar, bajar e instalar todos los programas que usamos en linux. Terminal: Consola de comandos al estilo DOS. GRUB: (GRand Unifier Bootloader) es un gestor de arranque: es lo primero que se carga cuando se inicia la computadora. Kernel: núcleo del sistema. La parte más básica del sistema operativo. El resto de elementos son añadidos para aumentar la funcionalidad y usabilidad. Gestor de paquetes: Aplicación ya sea en modo gráfico o consola que nos permite buscar, instalar y desinstalar aplicaciones junto con sus dependencias. Superusuario: Root. GUI: Interfaz Gráfica de Usuario, del inglés 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, sólo se puede solucionar con el reinicio, algo así como la Pantalla Azul de la Muerte de Hasefroch (Microsoft), aunque es muy difícil que nos salga este error. 1.5. Distribución 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 instalación y administración (creadas por la distribución). 4. Recopilación de Software Libre (aplicaciones de usuario) De lo anterior lo que diferencia a cada distribución es 3 Una distribución de Linux es: Sistema Operativo + Aplicaciones. Por lo tanto una Distribución de Linux es más que un Sistema Operativo (S.O.). 1.5.1. Arquitectura Capítulo 1. Introducción 9 Figura 1.2: Arquitectura GNU/Linux 1.5.2. Distribuciones Distribución 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 distribución tiene cualidades propias. El usuario final no nota la diferencia. Existen diferencias notables en Instalación, configuración y administración. Gran Avance hacia usuarios finales. • Automatiza el proceso de instalación y actualización. • Todo esta integrado. Ventajas: • Costo 0. • Seguro (casi no existen virus). • Independencia de proveedores. • Tecnologia Libertaria. • Especial provecho para la educación. Desventajas: 1.04 LTS). Oneiric Ocelot (11.04).10).10). Lucid Lynx (10.04). .04). • Baja disponibilidad de Juegos. 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 oficial Multiverse Contiene aplicaciones sin s 1.n.04 LTS). 1.) (13. • En desarrollo: (n. 5. Cada 4 versiones de Ubuntu se libera una versión con soporte técnico extendido a la que se añade la terminación LTS.ubuntu.04).5.5. Profesional)? Basada en la distribución Debian GNU/Linux. Maverick Meerkat (10.3.10).04).06 LTS). a diferencia de los otros lanzamientos de Ubuntu que sólo cuentan con 18 meses de soporte.10).10). Sistema Ubuntu Inicio del Sistema Al instalar un sistema operativo Gnu/Linux. • Con Soporte: Natty Narwhal (11. Jaunty Jackalope (9. Esto significa que los lanzamientos LTS contarán con actualizaciones de seguridad de paquetes de software durante tres años en entorno de escritorio y cinco años en servidor por parte de Canonical. normalmente se configura un gestor de arranque LILO o GRUB (Ubuntu instala GRUB) Normalmente se encuentra instalado junto a otros sistemas operativos.10).Capítulo 1. Dapper Drake (6. Feisty Fawn (7. Gutsy Gibbon (7.10).10). 3. Precise Pangolin (12. Hardy Heron (8. Quantal Quetzal (12. Ubuntu GNU/Linux ¿Qué es Ubuntu? ¿Cuál es la versión actual? ¿Cada cuanto tiempo aparece una nueva versión? ¿Cuanto Tiempo dura el soporte para una versión? ¿Existen distintas ediciones (Empresas.10). Hogar.04 LTS). • En Actual: Raring Ringtail (13. • Ausencia de soporte técnico para usuario domestico.4. Edgy Eft (6.com Política de versión cada 6 meses. Intrepid Ibex (8. Hoary Hedgehog (5. 2. Versiones: • Sin Soporte: Warty Warthog (4. Introducción 10 • Casi nulo soporte comercial. Karmic Koala (9. Información www. Breezy Badger (5. 4.10). • .Capítulo 1.. tty2). tty1). Introducción 11 Se instala en el MBR (Main Boot Record). A esto se le conoce como consola de Unix/Linux. Es del tipo Cliente/Servidor.. En los inicios de Unix no existían las interfaces gráficas. Sólo se podía utilizar el “Modo Texto”. Figura 1. Debido a que es un sistema multiusuario se debe ingresar con una cuenta de usuario (login : contraseña). Xorg GNU/Linux . Selecciona el sistema que se quiere utilizar. Es altamente configurable.3: LILO LILO GRUB Interfaz Gráfica de Usuario En Unix/Linux se utiliza el sistema gráfico X-Window. • Control + Alt + F7 (Modo Gráfico). El usuario/cuenta más importante es root o Super Usuario. La implementación para GNU/Linux es Xorg. Actualmente es posible utilizarlo en Linux con las siguientes combinaciones de teclas: • Control + Alt + F1 (Consola Virtual 1. • Control + Alt + F2 (Consola Virtual 2. Introducción 12 Figura 1. Botón Derecho (Opciones). 2. • Idioma. Gnome Xorg GNU/Linux Para ingresar el sistema gráfico se debe indicar: • Login y Contraseña. . after step. xfce).Capítulo 1. Las 2 principales y más completas son: KDE y Gnome. Ambos Botones o Scroll (Pegar). Algunas son Simples o Minimalistas (fluxbox. 3. Botón Izquierdo (Selección/Acción).4: GRUB Existen varias GUIs para Linux. F1 Ayuda del Programa F11 Maximiza/Restaura Alt+F1 Abre Menú Aplicaciones Abre Dialogo Ejecutar Aplicación Atajos de teclado: Alt+F2 Alt+F4 Cierra Programa Alt+Tab Cambiar entre Aplicaciones Abiertas Control+Alt + Arrow Cambia entre escritorios Mayor información Sistema->Ayuda->Documentación del sistema : Otras categorías documentales -> Escritorio. • Se puede Reiniciar o apagar el equipo. • Seleccionar el GUI (depende de lo que este instalado en el equipo). Manejo Básico de GNU/Linux Manejo del Mouse: 1. • Con Ctrol+H.). Área 1.ssh.” es oculto (. Introducción 13 Figura 1.” al comienzo del nombre. ó • Ver -> Mostrar archivos ocultos. Sobre Dicho applet se pueden modificar las preferencias (Botón derecho).bash profile).5: Ingreso al Sistema Áreas de Trabajo En los sistemas Unix/Linux se puede tener más de un escritorio o área de trabajo (virtual). Para cambiarse de Áreas de trabajo se debe seleccionar el applet Selector de áreas de trabajo (por defecto son 4. Todo archivo/directorio que comienza con “.Capítulo 1. En un escritorio se puede ejecutar un conjunto de aplicaciones y pasar a otro escritorio que no tendrá nada ejecutado. Para ejecutarlo: Lugares -> Carpeta personal. . Nautilus En los Sistemas Unix/Linux existen archivos y directorios ocultos.. El objetivo es identico al Explorer de Windows. Área 2 . Al volver al escritorio anterior se aprecia que las aplicaciones ejecutas se mantienen. Explorador de Archivos El explorador de archivos de Gnome se denomina Nautilus. En Nautilus se debe activar la vista de archivos ocultos. Para crear un archivo/directorio oculto solo se debe agregar “. .. ext3 versión mejorada de Ext2. rápido acceso para grandes cantidades de datos y altas velocidades. pero lento en archivos pequeños. aunque esto quizá necesite actualizar las herramientas del sistema.1. para los temporales o para los datos personales. o cualquier otro directorio importante. Introducción 14 Configuración Nautilus en : Editar -> Preferencias Para ahorrar espacio u ordenar varios archivos se comprimen. Los formatos que soporte dependerá de los programas instalados (en realidad es un frontend).Capítulo 1. arj.6. Para Descomprimir : Botón derecho -> Extraer Aquí (para un archivo comprimido). gz. ampliamente utilizada en distribuciones Linux.2. rar. Para comprimir: Seleccionar archivos/directorios a comprimir. XFS Implementado para sistemas Unix. Es soportado por Linux y otros sistemas operativos (algunos a través de implementaciones muy inestables). 1. puede convertirse en algo problemático. liderado por Hans Reiser. cuando tenemos espacio de sobra en alguna otra. ReiserFS Sistema de archivos diseñado e implementado por la empresa Namesys.6. /usr. es bastante común que nos quedemos sin espacio en estas particiones. por lo que muchos usuarios optan por crear una partición que ocupe todo el disco y allí introducir los datos. Comprimir. La necesidad de estimar cuanto espacio será necesario para el sistema. Aún habiendo estimado correctamente cuánto espacio se necesita para /home. ext4 nuevo sistema de archivos para Linux evolucionado de Ext3 algunas de sus ventajas con respecto a este último son: aumento del tamaño del sistema de archivos a 1 Exabay = 220 Tb y del tamaño máximo por archivo (16 Tb). bz2 Gnome incluye la herramienta file-roller que permite: Descomprimir. Sistemas de archivos LVM LVM es el acrónimo de Logical Volume Manager. Los volúmenes de almacenamiento bajo el control de LVM pueden ser redimensionados y movidos a voluntad. Existen diversos formatos de compresión : zip. número ilimitado de directorios frente a los 32. Filesystems Sistemas de archivos soportados por Linux ext2 el primer sistema de archivos diseñado expresamente para Linux. Se utiliza en grandes servidores y donde se maneje mucha información. mayor velocidad en la creación y borrado de archivos y menor uso del CPU. /tmp. Botón derecho -> Crear archivador 1. .000 de Ext3. 1. En Sistemas Pequeños Una de las decisiones que afronta un usuario instalando GNU/Linux es cómo particionar el disco duro.6. En Unix/Linux se utiliza una estructura jerárquica tipo árbol. existe soporte para sistemas de archivos adicionales ajenos. expandir el volumen. pasando por la impresora. etc. En Sistemas Grandes Administrar un sistema con muchos discos es un trabajo que consume tiempo. xfs. o tienen curiosas limitaciones. podríamos redimensionar /home y /opt y usar el espacio que le hemos quitado a /opt y añadírselo a /home. ext4. FHS detalla los nombres. Desde el ratón. ext2. que para realizar esto. Todo en un sistema Linux es un archivo. Vista. el monitor. tanto el Software como el Hardware. ubicaciones. Estos sistemas de archivos ajenos funcionan exactamente como los propios.Capítulo 1. Adicionalmente. ReiserFS. de forma totalmente transparente al usuario. un subdirectorio y un archivo de texto. Hay que tener en cuenta. jfs. Otra alternativa sería dejar una cierta cantidad de espacio del disco sin asignar y cuando fuera necesario. . Los grupos de usuarios (llamémosles por ejemplo administración. También se pueden migrar los datos de discos antiguos a otros nuevos. por ejemplo. u otros inconvenientes. en /home. Sistemas de Archivos y Jerarquía Un sistema Linux reside bajo un árbol jerárquico de directorios bajo el estandar FHS. ext3. Equilibrar los requerimientos de almacenamiento de distintos usuarios (a menudo conflictivos) puede ser una tarea muy laboriosa y compleja. el disco completo puede ser asignado a un único grupo lógico y definir distintos volúmenes lógicos para almacenar /home u otros directorios. ntfs. Es la forma en como se organiza la información en el computador. como ReiserFS.) pueden tener sus volúmenes lógicos y éstos pueden crecer lo que sea necesario. Cuando un nuevo disco se añade al sistema. no es necesario mover los datos de los usuarios. 1. Simplemente se añade el nuevo disco al grupo lógico correspondiente y se expanden los volúmenes lógicos todo lo que se considere adecuado. nuestro sistema de archivos debe soportar el redimensionado por arriba y por abajo. contenidos y permisos de los archivos y directorios. 7 y 8. NTFS: sistema de archivos implementado para los sistemas operativos Windows Xp/2000/2003 server. excepto que pueden carecer de características usuales UNIX . desarrollo. Fat16/Fat32: Sistemas Dos/Windows 95. Windows 98. y el administrador puede realizar las operaciones oportunas sobre dichos volúmenes. para facilitar el intercambio de archivos con otros sistemas operativos. Introducción 15 Con el uso de un administrador de volúmenes lógicos. En el caso que nos quedemos sin espacio. un directorio. Existen diversos sistemas de archivos: fat16. este sistema de archivos produce una gran fragmentación del disco. el reproductor de DVD. y se hace particularmente complejo si el sistema contiene discos de distintos tamaños.7. y tenemos espacio en /opt. fat32. este debe que ser el único directorio en el nivel superior del árbol jerárquico de archivos y. Organización de sistema de archivos Figura 1. El Directorio Raíz / El contenido de este directorio debe ser el adecuado para reiniciar.Capítulo 1. es deseable que se mantenga los más razonablemente pequeño como sea posible por cuestión de funcionamiento y de seguridad.. /home/linux/Desktop/unidad1. recuperar y/o reparar el sistema. Archivos Almacena datos o instrucciones (programa).txt Cada directorio puede almacenar subdirectorios y archivos.7..pdf se encuentra dentro del directorio Desktop. Por último. Además. Cada directorio y archivo debe tener un directorio padre. 1.6: Árbol de Directorios El directorio principal “/” se denomina directorio raíz. Ejemplo 1. El nombre de archivos y directorios es sensible a mayúscula. debe proporcionar métodos.2 $ ls -F / 2 . es decir.1.pdf indica que unidad1. no es lo mismo hola. Introducción 16 Se compone de: Directorios Sirve para almacenar archivos y directorios.txt que Hola. el que se encuentra a su vez dentro de linux . restaurar. herramientas y utilidades necesarias para cumplir estas especificaciones. en Windows se le conoce como Carpetas. tiene que ser imposible moverse más allá del mismo. Directorio /home Directorio que contiene los subdirectorios que son directorios origen para cada uno de los usuarios del sistema. Introducción 17 Directorio /bin En este directorio se ubica el código binario o compilado de los programas y comandos que pueden utilizar todos los usuarios del sistema. El administrador tiene su propio directorio home. Directorio /boot Este directorio contiene todo lo necesario para que funcione el proceso de arranque del sistema. Directorio /etc El directorio /etc contiene archivos necesarios para configuración del sistema. Como se ha mencionado.Capítulo 1. La denominación es clara. El núcleo del sistema operativo (normalmente se guarda en el disco duro como un archivo imagen llamado vmlinuz-versión_núcleo) se debe situar en este directorio o. Directorio /dev Este directorio almacena las definiciones de todos los dispositivos. No debe haber subdirectorios en /bin. en el directorio raíz. cada dispositivo tiene asociado un archivo especial. /boot almacena los datos que se utilizan antes de que el kernel comience a ejecutar programas en modo usuario. bin de BINARY (binario en castellano). que es /root. Cada subdirectorio /home/user de cada usuario proporciona el lugar para almacenar sus archivos. así como los archivos de configuración propios de cada uno. Deben ser archivos estáticos y nunca pueden ser archivos binarios y/o ejecutables. . Archivos que son propios del computador y que se utilizan para controlar el funcionamiento diversos programas. Capítulo 1. El resto de directorios /media : Este directorio contiene los subdirectorios que se utilizan como puntos del montaje para los medios de almacenamiento. se almacena aquí el software instalado en el sistema. Las entidades que aparecen dentro de /mnt representan recursos externos a los que se puede acceder a través de este directorio. . Estos datos además deben ser inalterables. Este directorio está pensado para almacenar datos que se puedan compartir con otros hosts. u opciones en castellano) se suelen instalar complementos o add-ons de los programas. /usr/sbin y /usr/local/sbin. /bin. Introducción 18 Directorio /lib El directorio /lib contiene librerías compartidas (similar a las dll’s para los usuarios de Windows) necesarias para arrancar el sistema y para los archivos ejecutables contenidos en. sólo de lectura. /root : Este directorio es el directorio /home del administrador del sistema (root). Normalmente las librerías son archivos binarios escritos en lenguaje C. recuperación y reparación del sistema. CD-ROM y memorias USB. Normalmente. este directorio tiene su partición propia. También contiene módulos del kernel esenciales que permiten el funcionamiento de muchos elementos Hardware. Las aplicaciones crean un subdirectorio dentro de /opt denominado con el mismo nombre del programa. /srv : Contiene los archivos de datos específicos para cada servicio instalado en el sistema. Comúnmente. /tmp /usr Es la segunda sección más grande o estructura jerár quica (después del directorio raíz) del sistema de archivos. es decir. /opt : En este directorio (/opt de options. por ejemplo. /sbin únicamente contiene los ejecutables esenciales para el arranque. /mnt : Este directorio contiene sistemas de archivos externos que hayan sido montados. /sbin : Los programas y comandos que se utilizan para la administración del sistema se almacenan en /sbin. tales como disquetes. : En este directorio se guardan los archivos temporales. 1. se mantiene el la memoria RAM. (X-window o simplemente las X) se trata de la herramienta de software para el desarrollo de interfaces gráficas de usuario (GUI’s) para estaciones de trabajo. el núcleo e información relativa al sistema.8. Sistema X-Window El sistema X-Window. Directorio /lost+found. X-window para linux y para todos los sistemas más basados es UNIX lo que MS Windows es para los sistemas basados en DOS. Una GUI es en pocas palabras una interfaz usuario / computadora que se ejecuta en modo gráfico. que X-Window es un estándar para los sistemas de ventanas basados en UNIX. se ubican dentro de la estructura jerárquica de /var. Este directorio existe sólo en distribuciones que tengan como sistemas de archivos ext2. Introducción 19 Directorio /var Este directorio va ha contener archivos de datos variables y temporales. normalmente en cada partición que creemos existirá un /lost+found en el nivel superior. Es el sistema quien lo crea y lo destruye. no se mantiene en el disco duro. así como archivos spool (archivos almacenados en fila que esperan a ejecutarse. como por ejemplo colas de impresión). Esto quiere decir que el tamaño global de este directorio va ha crecer constantemente. ext3 o ext4. Es aconsejable montar en una nueva partición este directorio. Se genera y actualiza dinámicamente. es decir. Con una gran diferencia. Todos los log del sistema y los generados por los servicios instalados. Directorio /proc /proc es un sistema de archivos virtual. Si no se pudiera. Esta estandarización supone que cualquier interfaz GUI puede ser ejecutada en cualquier computadora e incluso en varias a la vez. Fijémonos que. Este directorio contiene información sobre los procesos. La utilidad de /var radica en poder detectar problemas para prevenirlos y solucionarlos. es preferible ubicar /var fuera de la partición raíz y de la partición /usr. Es un espacio temporal donde se guardan los datos que se recuperan después de una caída del sistema. Perdidos y encontrados Las herramientas y utilidades para restaurar y/o reparar el sistema de archivos almacenan los datos en este directorio. .Capítulo 1. Esto permite que cualquier Cliente X sea capaz de comunicarse a través de Red (TCP/IP) con un servidor X . esto es. pero es de extrema importancia conocer que existe una división Cliente | Servidor aunque se este trabajando en el mismo “Host”. esto es. seguridad. requisiciones. La comunicación entre el cliente y el servidor sistema X-Window se realizan mediante el denominado protocolo X (X protocol).1. Este protocolo X permite definir el número exacto de bytes necesarios para definir una ventana. . El detalle técnico más importante que hay que reconocer de X es que utiliza una metodología cliente-servidor. Arquitectura Cliente / Servidor X-Window permite utilizar un ambiente gráfico bajo Unix (Linux). El problema es que la programación con este lenguaje es extremadamente complicada y laboriosa.Capítulo 1. existe un servidor X que es el encargado de generar y procesar gráficas. el Cliente X y Servidor X operan en la misma computadora física.etc. inclusive casi todos los ambientes gráficos son llevados acabos en un mismo “Host”.8. a diferencia de la clásica Terminal ASCII que es conocida para todos los sistemas operativos *nix. Introducción 20 Figura 1.7: Procesos gráficos en Linux y arquitectura cliente sevidor en una máquina 1. no implica que este proceso no pueda ser llevado acabo en el mismo “Host” (computadora física). y un cliente X que solicita y recibe todas las requisiciones del servidor X. Referente al hardware necesario para poder ejecutar el X-window. Introducción 21 Figura 1. XFree86 soporta la mayoría de tarjetas que hay en el mercado. Hay un par de maneras principalmente de iniciar el X-window. implica que se ha de cargar tanto el servidor X como algunos clientes para poder empezar a utilizar el entorno gráfico.2.8. En cuanto a memoria y procesador XFree86 corre en un simple intel 386 con al menos 16 MB de ram. 1. Las principales causas que dificultan el desarrollo de XFree86 para algunas tarjetas es que como se distribuye el código fuente. Arranque del sistema X-Window El inicio del sistema X window. Esta es una versión gratuita de la distribución oficial de UNIX que funciona en procesadores compatibles con la tecnología x86 como (AMD. inicializa algunos recursos para que serán utilizados por los clientes y también conecta al servidor algún cliente. .3. Otra más común es que suele pasar un tiempo desde que sale un producto hasta que esta listo el desarrollo correspondiente. XFree86 La versión que Linux utiliza del sistema X Window es XFree86.Capítulo 1. Esta memoria puede ser 8 MB mínimo de principal y 8 MB de memoria virtual o de intercambio (SWAP).8: Procesos gráficos y arquitectura cliente / servidor en una red 1. Ya que el código cuesta de escribir y de comprobar. Este programa no es más que un guión de comandos que ejecuta el Servidor X.8. Que se ejecuta en cualquiera de las consolas en modo texto. algunas empresas no están dispuestas a mostrar el funcionamiento de su tarjeta.Ciryx o Intel). Quizá la más usada sea mediante el guión de inicio llamado starx. 9: Gnome Logo GNOME Sistema Gráfico. 1. dotándolas de un interfaz de uso común. ya este en el disco o en otro lugar de la red. Distingue entre aplicaciones abiertas y enlaces a recursos.Capítulo 1. Con lo que se consigue una gran personalización del entorno gráfico. Esto implica que el sistema en si. Esto tiene el inconveniente de que cambia totalmente la manera de de interpretar las pulsaciones del ratón o del teclado. Este ultimo tiene las siguientes ventajas con respecto al gestor de ventanas: Provee de un aspecto uniforme a todas las aplicaciones gráficas.5. ya que se trata del programa que da el aspecto a todo el entorno gráfico y que controla todas las operaciones relativas al dibujo de ventanas. no esta ligado a ningún gestor de ventanas en particular. 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. que es el gestor que se distribuye con las versiones oficiales de X-window y por tanto con XFree86. Gestores de ventanas El gestor de ventanas es uno de las aplicaciones X más importantes. son a su vez derivados del twm(tab window manager). Podemos marcar un objeto con el ratón y arrastrarlo hasta cualquier aplicación y ver su contenido allí. Escritorio del proyecto GNU (GNu Object Model Enviroment). Ofrece un interfaz gráfico para configurar y personalizar todos los aspectos del entorno gráfico. Esto se subsana al pasar del gestor de ventanas al gestor de escritorio (Desktop manager). Desktop Manager’s Figura 1.4. Fvwm(Fine Virtual Window Manager) y todos sus derivados. . Introducción 22 1. Fvwm es una de las familias de gestores de ventanas más usadas dentro de entornos Linux. Permite el acceso transparente a cualquier recurso.8.8. En linux un gestor de ventanas es un cliente más que está conectado al servidor X. Capítulo 1. Introducción 23 Se compone de Paneles + Escritorio. Cada panel puede contener applets (Lanzadores o aplicaciones). Basado en GTK. Política de liberación cada 6 meses aprox. Existe la Fundación Gnome (Ambiente totalmente libre). Desarrolladores Gnome en Chile (Concepción). Figura 1.10: Gnome Desktop GNOME3 Figura 1.11: Gnome 3 Desktop KDE Sistema Gráfico. Capítulo 1. Introducción 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 Gráfico. Lanzado en Ubuntu 10.10. Licencia GPL v3, LGPL v3. Programado en C++ y Vala. Desarrollado por Canonical. Capítulo 1. Introducción 25 Figura 1.14: Unity Logo Figura 1.15: Unity Desktop es un programa informático que tiene la capacidad de traducir las órdenes que introducen los usuarios. Bash Este shell es desarrollado por el proyecto GNU por lo que es liberado bajo la licencia GPL. bash usuario Prompt de csh1 usuario Prompt de Superusuario (root) 26 . 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. Se debe tener presente que el prompt puede ser modificado por el usuario. la mayoría de los comandos funcionaran sin problemas en otro shell (siempre y cuando sean de Unix/Linux). también conocido como shell o terminal.1 Las órdenes se introducen siguiendo la sintaxis incorporada por dicho intérprete. Cuando se ejecuta una consola aparece un símbolo denominado prompt el que indica que la shell esta preparada para recibir ordenes $.1. Dependiendo del shell utilizado y del usuario puede aparecer un prompt diferente por defecto. mediante un conjunto de instrucciones facilitadas por él mismo directamente al núcleo y al conjunto de herramientas que forman el sistema operativo. $ % # Prompt de sh. A pesar de existir diferencias entre cada uno de los shell.Capítulo 2 Interprete de Comandos Un intérprete de órdenes o de comandos. en especial si se trata de un usuario ($) o superusuario (#). en este modo se autocompletan las ordenes que se encuentren en el historial de comandos Retrocede en una página la salida del shell. Listar archivos (ls) El comando “ls” lista el contenido de un directorio imprimiéndolo en pantalla. y el nombre del archivo. donde los directorios aparecen con un carácter “/” al final del nombre. M:Megabytes.2. el nombre del propietario. el del grupo al que pertenece. los archivos ejecutables con un “*” y los enlaces simbólicos con una “@”. Como se podrá apreciar en los comandos siguientes se puede modificar la funcionalidad de cada uno de ellos con las opciones que se indican en la instrucción pero precedida del signo “-” (conocidos como parámetros).”) h Human-readable. G:Gigabytes F Permite diferenciar los tipos archivos de los directorios. el tamaño (en bytes). cumpla la misma función que la barra Scroll que tienen algunos terminales Avanza en una página la salida del shell Autocompletar comandos Shortcuts CTRL + l CTRL + d flecha arriba flecha abajo CTRL + r SHIFT + RePag SHIFT + AvPag TAB 2.1. R Realiza un listado recursivo dentro de cada directorio Ejemplo 2. Comandos Básicos UNIX Descripción Limpia la pantalla. pudiendo ser K: Kilobytes. la marca de tiempo que se muestra es la de la última modificación a Incluye en el listado archivos ocultos (cuyos nombres comienzan con “.2. De forma predeterminada. indica una letra al lado del tamaño.Capítulo 2. tiene el mismo efecto del comando clear Finaliza el shell. el número de enlaces que tiene. Opción Descripción l Escribe (en formato de una sola columna) los permisos del archivo. Interprete de Comandos 27 2. tiene el mismo efecto del comando exit Retrocede en el historial de comandos Avanza en el historial de comandos Entra al modo búsqueda historial. una marca de tiempo.1 $ ls -lhR Cuando se utiliza el parámetro “l” el formato de salida es el siguiente: Permisos enlaces dueño grupo tamaño fecha nombre 2 . 2.”.3 $ mkdir micarpeta Para crear toda un ruta completa de directorios debe utilizarse la opción p. Para volver a un directorio anterior debe usarse el parámetro “. $ cd /etc/X11 2 2. 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”). .. Ejemplo 2. Las nueve letras siguientes se dividen en tres conjunto de tres caracteres cada uno (rwx donde r = lectura.2 $ cd .4.2.2. Cambio de directorio (cd) El comando “cd” cambia el directorio de trabajo al directorio indicado como parámetro.2. Crear Directorios (mkdir) El comando “mkdir” crea directorios con el nombre ingresado por parámetro. donde el primer conjunto representa los permisos para el propietario.= sin permiso). 2. Ejemplo 2. “d”(directorio) o “l” (enlace simbólico). Interprete de Comandos 28 Donde: Ítem Permisos enlaces dueño grupo tamaño fecha Descripción El Primer carácter indica el tipo de archivo el que puede ser “-”(archivo).Capítulo 2.. Ejemplo 2. x = ejecución.4 $ mkdir -p linux/carpeta/subcarpeta 2 2 .3. Imprimir directorio actual (pwd) El comando “pwd” (print work directory) imprime en pantalla el directorio actual de trabajo. Numero de enlaces Nombre del usuario propietario del archivo Grupo al que pertenece el archivo Tamaño del archivo en bytes Fecha y hora de creación del archivo o de la última modificación 2. si el parámetro se omite lleva al Inicio (HOME) de la cuenta de usuario. w = escritura. cp copia cada fichero fuente a ese directorio (manteniendo el mismo nombre). directorios). Ejemplo 2. Para lograr copiar un directorio completo se debe usar la opción “r” (recursivo): Ejemplo 2. Crear archivos (touch) El comando “touch” crea archivos vacíos.2.8 $ cp -r carpeta/ /home/usuario/Descargas 2 2 2. Copiar archivos o directorios (cp) El comando “cp” copia archivos (u opcionalmente. o copiar arbitrariamente varios archivos a un directorio destino.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.2.5 $ rmdir subcarpeta 2 2. copia el primero sobre el segundo.6 $ touch arch1 arch2 2 2.5. Mover archivos o directorios (mv) El comando “mv” mueve o renombra archivos o directorios.8.6.Capítulo 2. Borrar directorios (rmdir) El comando “rmdir” borra directorios vacíos. $ mv -i carpeta/ /home/usuario/Descargas #mueve un directorio y su contenido 2 .9 $ mv arch1 archivo1 # renombra el “arch1” $ mv arch1 linux/carpeta #mueve “arch1” desde el directorio actual a la carpeta indicada. Ejemplo 2. los mueve con todo su contenido. Interprete de Comandos 29 2. si sólo se dan dos archivos.2. En otro caso. el directorio a borrar es ingresado por parámetro. Ejemplo 2. Uno puede bien copiar un fichero a un destino dado. Ejemplo 2.7. Al mover directorios.2. Si el último argumento se refiere a un directorio existente. 2 y 3.txt def_456. Renombrar varios archivos a la vez (mmv) Es un comando que combina los comandos rename y mv .Capítulo 2. en este caso 1.png Si ejecutamos este comando: $ mmv “foo*.png #1 en el destino hace referencia a todo lo que incluya el comodín (*) en el origen. Su utilidad.png foo3.png” “bar#1. Pongamos un ejemplo.txt Es decir hemos intercambiado el contenido del primer comodín (*) por el segundo (*) ya que en el destino #1 hace referencia al primero y #2 al segundo.txt 789_ghi.png bar3. pero haciendo algunas pruebas se va entendiendo.#1. con otros elementos básicos de bash. Imagina que tienes estos archivos: foo1. nada que no se pueda hacer con los comandos de siempre.png” Obtenemos los archivos: bar1.jpg” 2 .txt 456_def.jpg” “2006-09-15.png bar2. pues por ejemplo para renombrar conjuntos de fotografías cuando tenemos varias. Puede copiar/mover/agregar/enlazar.9.txt” “#2_#1.txt Si ejecutamos: $ mmv “*_*. 2 Ejemplo 2. Pero lo que hace a mmv especial es la sencillez en su uso al enfocarse en las expresiones regulares (requiere instalación desde repositorios).txt ghi_789.jpg.jpg.11 Tenemos los archivos: abc_123. Cuesta un poco al principio de seguir. Si tenemos varias fotos del tipo: dcim_01. etc y las quisiéramos organizar por fechas podríamos hacer: $ > mmv “dcim_*.txt” Obtendríamos: 123_abc. Requiere ser instalado: # apt-get install mmv Ejemplo 2. Interprete de Comandos 30 2.2.png foo2. dcim_02.10 Funciona a base de comodines y el uso de patrones. png creada.png pgadmin31. el #1 pone en la posición donde se indica el texto original que no desea cambiar y así solo se cambia la extensión. dicho patrón es reemplazado automáticamente por los nombres de archivos existentes que lo cumplan antes de llamar al comando.png 2 . Para borrar directorios con todos los archivos o directorios que contenga (utilizar con mucho cuidado) se utiliza el parámetro “r” (recursivo).png $ ls *a. Ejemplo 2.rar y deseas pararlos todos a . ? : Se reemplaza por un carácter cualquiera.). Eliminar archivos o directorios (rm) El comando “rm” elimina un archivo especificado por parámetro. 2. Caracteres de globalización (comodines) Los caracteres de globalización son caracteres que Unix utiliza para que el usuario pueda señalar un grupo de archivos que cumplan con un cierto patrón.png creada.2. rm .10. Estos caracteres pueden ser utilizados con cualquier comando que interactúe con archivos (cp.png $ ls cr??d?.png creada.etc. * : Se reemplaza por cualquier secuencia de caracteres.Capítulo 2.cbr para poder visualizarlos en un lector de comic.rar” ”#1.11.png conexion. Ejemplo 2.png $ ls * conexion.png Carga. Este comando debe ser utilizado con cuidado ya que no hay forma de recuperar los archivos borrados.2.14 $ ls Carga.13 $ rm arch1 $ rm -r carpeta/ 2 2. 2 2. el proceso es el siguiente: $ mmv ”*.png creada. Los caracteres de globalización (Wilcards o Metacaracteres) más simples son: 1. Interprete de Comandos 31 Ejemplo 2. ls.png creada.12 Si posees por ejemplo muchos comic y los tienes comprimidos en .png $ ls cr?ada.cbr” Este comando mantiene lo que aparezca con asterisco (*) tal cual este escrito y reemplaza el resto. y se sale del programa con la tecla Q. un vez dentro de more en el modo de visualización.2. De este modo cuando es necesario aprender más sobre el uso de un comando o simplemente saber para qué sirve se puede ejecutar el comando man ingresando como parámetro el nombre del comando. Ayuda (man. more Muestra el archivo por ventanas. buscar texto introduciendo la palabra a buscar después de un slash (/texto_abuscar). .16 Uso de apropos $ apropos mkdir mkdir (1) . como que por ejemplo se puede mover por el texto por medio de las flechas. por defecto muestra las primeras 10 líneas. Lectura de archivos En Unix la mayoría de los archivos contienen texto plano. tail Muestra la cola de un archivo (el final). Para salir basta presionar la tecla “q”. less Al igual que more ofrece la misma funcionalidad. Además existe otra herramienta “apropos” la que nos entrega información de los tópicos (o comandos) relacionados a un comando o palabra clave ingresada por parámetro. una linea a la vez con la tecla enter. Se puede navegar por la documentación avanzando de una linea a la vez presionando la tecla “enter” o de una pagina a la vez presionando la barra de espacio.13. apropos) El comando “man” nos permite acceder a la ayuda y documentación (manuales) de todos los comandos. es posible avanzar por páginas presionando la barra de espacio.15 Uso de man $ man ls #Retorna el manual del comando ls Ejemplo 2. desde su inicio hasta el final.Capítulo 2.create a directory mkdirat (2) .2. por defecto muestra las ultimas 10 lineas. el resto de las teclas funcionan exactamente igual que en more. con unos ciertos cambios. Comando Descripción cat Concatena un archivo en pantalla (lo imprime en pantalla). volver una página con la tecla B. es por ello que existen una infinidad de herramientas para ver archivos (leerlos sin modificarlos) las que son llamadas con el archivo por parámetro. Ejemplo 2. head Muestra el encabezado de un archivo. Interprete de Comandos 32 2.make directories mkdir (2) .create a directory relative to a directory file descriptor 2 2 2.12. Ejemplo 2. Interprete de Comandos 33 2.2. de este modo los valore numéricos serían: Tipo de Permiso Sin Permiso Permiso de ejecución (x) Permiso de escritura (w) Permiso de lectura (r) Código Octal 0 1 2 4 De este modo al asignar los permisos se suman los valores numéricos para los diferentes permisos y se asigna la suma a cada grupo.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.pdf las sumas y el permiso final seria: Ejemplo 2. siendo su idea similar a un acceso directo. Lectura y Ejecución al grupo y Lectura al resto de los usuarios al archivo arch1. estos permisos pueden ser cambiados por medio del comando chmod. Cambiar permisos (chmod) Como se explico en el punto anterior todo archivo o directorio posee permisos.2. Escritura y Ejecución al usuario. Existen varias formas de asignar permisos. Por ejemplo si se quiere dar los permisos de Lectura.14. nos centraremos en los permisos según su valor numérico los que serán entregados como parámetro a chmod.18 Propietario Lectura = 4 Escritura = 2 Ejecución = 1 Suma = 7 La asignación seria: $ chmod 754 arch1.pdf Grupo Lectura = 4 Escritura = 0 Ejecución = 1 Suma = 5 Otros Lectura = 4 Escritura = 0 Ejecución = 0 Suma = 4 2 .15. ln (enlace simbólico) Sirve para crear un enlace(link) simbólico. Permite apuntar a un archivo como a un directorio con un nombre simbólico.Capítulo 2. incluyendo usuarios de sistema. la opción −R sigue disponible en caso que deseemos hacerlo recursivamente para una carpeta. Interprete de Comandos 34 2. la forma para hacerlo es alias comandoa lias = comandooriginal . 2. usuario y grupo dueños.Capítulo 2.19 # chmod a+x archivo aquí le hemos asignado permisos de ejecución para todos los usuarios en el archivo de prueba que utilizamos. Ejemplo 2. a todos los usuarios permisos de lectura.16. “g” para el grupo dueño.3. cat: Manejo de archivos Mostrar contenido de un archivo: El comando cat por si solo muestra todo el contenido de un archivo en terminal.o. En [permiso] podremos colocar: lectura (r).bashrc 2.1. “o” para el resto de los usuarios. y estas serán “u” para el usuario dueño.3. por ejemplo se puede utilizar un alias para listar en formato largo (ls − l) Ejemplo 2. ejecución (x).a). por lo que para no tener que ejecutarlos se incluyen en la configuración personal en el archivo . en forma recursiva.2. Además como en el método anterior.3. que seria así: $ chmod [quien][+/-][permiso] [archivo o carpeta] donde en [quien] es alguno de los parámetros anteriormente explicados (u. Cambiar permisos sin código octal (chmod) Vamos a utilizar unas opciones según nuestras necesidades. $ chmod -R a+rwx carpeta/ aquí le asignamos. escritura (w).2. 2 2. $ cat nombreArchivo .20 $ alias ls=’ls -lh’ $ alias rm=’rm -i’ $ alias borrar=’rm -rf’ $ alias instalar=’sudo apt-get -y install’ 2 Al terminar la sesión se pierden todos los alias.g. escritura y ejecución sobre el fichero “carpeta”. Comandos Avanzados alias Sirve de bastante ya permite ejecutar una instrucción con un nombre o alias. y “a” para todos los usuarios. [+/-] es para asignar o quitar el permiso que elijamos. Sabiendo esto estamos en condiciones de entender esta forma de usar chmod. pero no se numeran las líneas vacías (en blanco) -s Suprime las múltiples líneas vacías contiguas a una sola línea en blanco La instrucción cat admite como argumentos una lista de ficheros que hay que enlazar. Su sintaxis es la siguiente: $ cat -opciones ficheros Opción Descripción -n Numera las líneas mostradas (Desde 1) -b Numera las líneas mostradas. se utiliza el video resultante para sincronizar el audio. Unir dos vídeos en unos solo: Para este proceso es necesario tener instalada la librería “mencoder” # apt-get -y install mencoder Luego desde la terminal hacer lo siguiente: $ cat parte1.avi > final. sería de la siguiente manera: $ cat A B Obteniendo el siguiente resultado: Esta es la primera línea Esta es la segunda línea 2 Si sólo se llegase a especificar un sólo archivo.Capítulo 2. Estos se encadenarán en el mismo orden en el cual fueron especificados.avi -o final_con_sonido_bueno.21 Suponga que posee los siguientes archivos: Archivo A cuyo contenido es “ Esta es la primera línea” Archivo B cuyo contenido es “ Esta es la segunda línea” Si se quisiera concatenar los archivos. cat tomará el contenido desde el teclado. Admite como argumentos la lista de ficheros que hay que enlazar.22 $ cat A Desplegando como resultado: Esta es la primera línea 2 Si no se especifica ningún argumento. hasta que este presione Ctrl D.avi NOTA: la ultima linea se escribe después de haber unido el video.avi Ahora si en el vídeo final se desfasa el audio debemos hacer: $ mencoder -forceidx -oac copy -ovc copy final. Ejemplo 2. Ejemplo 2. Interprete de Comandos 35 Concatenar archivos: El comando cat sirve para concatenar varios archivos para posteriormente desplegarlos en pantalla.avi parte2. el resultado del comando sería el contenido del archivo mismo. desplegando la información que el usuario ingrese. . df Obtiene el uso de disco para cada una de las particiones del sistema.avi parteN. Interprete de Comandos 36 O también podemos optar.Capítulo 2..23 $ date $ date -u $ date + %a $ date + %A $ date + ’ %a %d %h’ $ date +’ %a– %d– %h’ 2 2.3.4. formato de 3 letras %h Muestra el año.avi .avi parte1. Opción Descripción u Usa horario universal GMT +formato Indica que se da nuevo formato %a Muestra el día. quizás más fiable. por dejar que lo haga todo el mencoder: $ mencoder -oac copy -ovc copy -idx -o final.25 $df -hT 2 . en formato de últimos 2 dígitos Ejemplo 2.3. du (disk usage) Sirve para entregar el tamaño de cada uno de los archivos y subdirectorios dentro del directorio indicado algunas de sus opciones son: Opción Descripción s Muestra el resumen del tamaño (tamaño total) h Muestra la información HumanReadable Ejemplo 2. puede utilizarse cualquier formato tomando las siguientes opciones. 2.3.avi parte2.24 $ du $ du -s $ du -h $ du-sh 2 2. date Muestra fecha y hora actual.5.3.. Opción Descripción T Muestra el tipo de partición h Muestra la información HumanReadable Ejemplo 2. indicando la cantidad utilizada y la disponible. fecha de compilación del kernel (con la opción -a).google.179 www.3.com has address 74.google. Ejemplo 2.125.177 www.30 $ uname -r 3.229.google. su dirección IP asociada.178 www.com www.com has address 74.27 $ time ls -l $ time sleep 3 2 2.l. Ejemplo 2.125. www.3.Capítulo 2.0. de usuario y de sistema.google. uname Comando para determinar información del sistema.com has address 74.google. Ejemplo 2.3.7.10. time Muestra el tiempo usado por un determinado programa.com has address 74. Ejemplo 2.google.125.3.l.6.229.176 www.com is an alias for www.0-13-generic-pae 2 .google.com has address 74. sleep Comando que duerme la shell por un tiempo determinado segundos.com.125.229.28 $ host www.29 $ ip addr $ ip monitor $ ip link $ ip addrlabel 2 2.180 2 2. Ejemplo 2.l. entre otros.26 $ sleep 20 2 2.l. Interprete de Comandos 37 2.3. ip Es un comando que permite ver la MAC de los dispositivos.229. indicando Sistema. indicando el tiempo real. Kernel.l.229.8.9. host Comando para determinar la dirección ip asociada a un nombre de dominio.google.l.125. which Muestra la ruta de un ejecutable.tar.tar. Ejemplo 2. cal Muestra un calendario. Ejemplo 2. Opción Descripción m La semana comienza en lunes 3 Muestra mes anterior.13.3.1.Capítulo 2.31 $ which ls /bin/ls $ which nautilus /usr/bin/nautilus $ which libreoffice /usr/bin/libreoffice 2 2.gz 2 2.gz arch1.32 $ whereis ls ls: /bin/ls /usr/share/man/man1/ls. actual y siguiente Ejemplo 2.11.3.gz-salida 2 Opción b bytes d Descripción Indica el tamaño de salida de cada uno de los archivos en bytes. Ejemplo 2.3.1. es posible utilizar sufijos k (Kb A cada uno de los archivos de salida le agrega un sufijo numerico .12.3.34 $ split -d -b 500k arch1. manual y código fuente (si estuviese presente).gz $ whereis nautilus nautilus: /usr/bin/nautilus /usr/lib/nautilus /usr/share/nautilus /usr/share/man/man1/nautilus.14. split Comando que permite dividir un archivo en varios archivos de tamaños predeterminados. Interprete de Comandos 38 2. whereis Localiza el comando.33 $ cal $ cal -m enero $ cal -m enero 2020 $ cal -3 2 2. file Indica el tipo de archivo en base a su número mágico Ejemplo 2. wc (word counter) Comando para contar palabras en un archivo l:lineas. non-interlaced 2 2.Capítulo 2. 1024 x 768. Descripción Ordena de forma inversa Muestra una ocurrencia si es que se repite Ignora diferencias entre Mayúsculas y minúsculas Muestra el Opción r u f Ejemplo 2. sort contenido de un archivo ordenado.iso linuxmint-201109-gnome-dvd-32bit. finger Muestra información del usuario.35 $ short nombres $ short -u nombres $ short -uf nombres 2 2.18.36 $ wc nombres $ wc -l nombres $ wc -c nombres $ wc -w nombres 2 2.3. (no por defecto con Ubuntu Gnu/Linux) Ejemplo 2.17.png: PNG image data.37 $ file linuxmint-201109-gnome-dvd-32bit.38 $ finger juaramir 2 .3.iso: # ISO 9660 CD-ROM filesystem data ’Linux Mint Gnome 32-bit ’(bootable) $ file menos1bit. 8-bit/color RGB. Interprete de Comandos 39 2.3. w:palabras.15.3.16.png menos1bit. c: bytes Opción Descripción l Muestra la cantidad de lineas w Muestra la cantidad de palabras c Muestra la cantidad de bytes Ejemplo 2. grep y egrep La utilidad grep muestra en pantalla las ocurrencias de una expresión regular que se encuentra dentro de un texto.20.19. Interprete de Comandos 40 2. who Comando que muestra quienes están conectados al sistema. Se utiliza $find ruta opciones Opción Descripción 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 expresión regular print Muestra en pantalla los resultados type tipo Busca el tipo que puede ser d: solo directorios. find El comando find busca recursivamente dentro de un directorio archivos y directorios que cumplan los requisitos especificados. Algunos de las opciones mas comunes para ambos son: Opción Descripción i Ignorar mayúsculas c Muestra solo la cantidad de lineas que contienen la expresión regular v Muestra solo las lineas que no contienen la expresión regular l Muestra el numero de linea y la linea en la que se encuentra la expresión regular n Muestra los nombres de archivos en los que se encontró la expresión regular Ejemplo 2. 2 2. 2.3. egrep a su vez permite buscar más de una expresión regular.c’ 2 . Posee una gran variedad de parámetros de búsqueda.Capítulo 2. l: solo enlaces simbólicos Ejemplo 2.40 $ find ∼/Descargas -name ’*.3. f : solo archivos.3.21.39 $ grep chile paises $ grep -i Chile paises $ grep Denis nombres $ grep -n Chile * En egrep para indicar mas de una expresión se realiza de la siguiente forma: $ egrep “exp1|exp2|exp3” archivo Esto significa que se cumpla la exp1 o exp2 o exp3. tar El empaquetado es un proceso que solo se encarga de unificar un grupo de archivos.gz (gzip) gz solo comprime archivos. no directorios.gz” Descomprimir $ gzip -d archivo.tar 2 3. no reduciendo su tamaño.2.2. Ejemplo 3. . Compresión Es el proceso de reducir el tamaño de datos.2 Comprimir: $ gzip -q archivo #El archivo lo comprime y lo renombra como “archivo.tar Listar contenido (sin desempaquetar): $ tar tvf Fotos. 41 .Capítulo 3 Compresión y Empaquetado 3. Ejemplo 3. Empaquetado .tar /misFotos/2011/* Desempaquetar: $ tar xvf Fotos.1.gz # El archivo lo descomprime y lo deja como “archivo” 2 3. Compresión Es el proceso de reducir el tamaño de datos. 3.3.1 Empaquetar: $ tar cvf Fotos.1. .bz2 (tar con bzip2) Ejemplo 3. Ejemplo 3.gz /misFotos/2011/* Desempaquetar y descomprimir: $ tar xzvf Fotos.3.tar. no directorios.Capítulo 3.2.tar.bz2 #versiones recientes de tar Listar contenido (sin desempaquetar): $ bzip2 -dc archivo.4.5 Comprimir: $ tar -c archivos | bzip2 > archivo.bz2”) Descomprimir: $ bzip2 -d archivo.4 Comprimir: $ bzip2 archivo $ bunzip2 archivo (El archivo lo comprime y lo renombra como “archivo.zip (zip) Ejemplo 3. . .tar.3.zip .tar.tgz (tar con gzip) Para suplir el problema de no compresión de directorios por parte de gz. Compresión y Empaquetado 42 3..tar.bz2 | tar -xv $ tar jvxf archivo.bz2 (bzip2) bz2 solo comprime archivos.3 Empaquetar y comprimir: $ tar czvf Fotos.z .3.bz2 Descomprimir: $ bzip2 -dc archivo.gz 2 3.3.tar. Ejemplo 3.tar. ..1.bz2 $ bunzip2 archivo.gz .tar.tar.6 Comprimir: $ zip Fotos.3.gz.zip /misFotos/2011 Descomprimir: $ unzip Fotos.gz Listar contenido (sin desempaquetar): $ tar tzvf Fotos. se aplica tar.tar.bz2 (El archivo lo descomprime y lo deja como “archivo”) 2 3.bz2 | tar -tv 2 3. Compresión y Empaquetado 43 Listar contenido (sin descomprimir): $ unzip -v Fotos.zip 2 3.zoo $ zoo -L Fotos.rar $ rar -l Fotos.zoo 2 3.3.9 Comprimir: $ rar -a Fotos.rar (rar) Ejemplo 3.zoo /misFotos/2011 Descomprimir: $ zoo -x Fotos.6.rar Listar contenido (sin descomprimir): $ rar -v Fotos.Capítulo 3. .8 Comprimir: $ zoo -a Fotos.lha /misFotos/2011 Descomprimir: $ lha -x Fotos.lha (lha) Ejemplo 3.5.lha $ lha -l Fotos.lha Listar contenido (sin descomprimir): $ lha -v Fotos.3.7. .3.zoo Listar contenido (sin descomprimir): $ zoo -v Fotos.7 Comprimir: $ lha Fotos.lha 2 3.zoo (zoo) Ejemplo 3.rar /misFotos/2011 Descomprimir: $ rar -x Fotos.rar 2 . . que únicamente permite la transferencia de archivos (copia). Por lo tanto. aunque permite ser usado con otros protocolos de seguridad. con el SCP encontramos la expansión de comodines especificados por el cliente hasta el servidor. Esto es posible ya que SFTP está diseñado para ser un protocolo independiente. los datos del protocolo SFTP no están 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. nos dirigímos a un ‘Terminal ’y hacemos # /etc/init. En el SILC.d/ssh restart 44 . por ejemplo. ¿Que es? SSH File Transfer Protocol (también conocido como SFTP o Secure File Transfer Protocol) es un protocolo del nivel de aplicación que proporciona la funcionalidad necesaria para la transferencia y manipulación de archivos sobre un flujo de datos fiable. En comparación de capacidades con el anterior protocolo SCP. la seguridad no la provee directamente el protocolo SFTP. Se utiliza comúnmente con SSH para proporcionar la seguridad a los datos. mientras que el diseño SFTP evita este problema. SFTP intenta ser más independiente de la plataforma que SCP. El Secure Internet Live Conferencing (SILC) define el protocolo SFTP como su protocolo de transferencia de archivos por omisión. 4. Instalación 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 búsqueda puesto que los paquetes necesarios están en los repositorios. el protocolo SFTP permite una serie de operaciones sobre archivos remotos. existen servidores SFTP en la mayoría de las plataformas. P2P). Aunque SCP se aplica con más frecuencia en plataformas Unix.2.1. sino SSH o el protocolo que sea utilizado en su caso para este cometido.Capítulo 4 Acceso remoto a terminal (SSH) 4. Cerramos el Gestor y para asegurarnos de que está el servicio corriendo. Los seleccionamos y presionamos en instalar. Con SSH. Ahora llenamos los campos de manera similar a la imagen siguiente: 4. Acceso Remoto Gráfico (SSH) Desde las ultimas versiones de Gnome. en la sección “Red” una carpeta. trabajara como si fuera la del equipo al que estas accediendo. como si de un directorio local se tratase. La sintaxis en consola es la siguiente (es similar a cp). o shell) se ha de hacer lo siguiente: $ ssh login@servidor $ ssh -l login servidor Una vez iniciada la sesión la terminal local. 2. sftp. Acceso remoto a terminal (SSH) 45 4. 5. .Capítulo 4. es posible acceder a entornos remotos. por medio de SSH de forma gráfica. lo que permite visualizar gráficamente el contenido remoto.5. Acceso Remoto: Envio/Recepción de Archivos Para enviar/recibir existen diversos protocolos.4. al lado izquierdo. 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. puedes usarlos tal cual. los datos viajan encriptados y es uno de los sistemas mas seguros y usados actualmente. scp (en realidad trabajan sobre ssh).3. 4. Acceso Remoto Funciona en base a clave pública/privada. Por razones de seguridad se utiliza scp o sftp. por lo que cualquier comando ya visto anteriormente. Para ejecutar el cliente ssh en el terminal(consola. el cambio esta cuando quieres pasar archivos desde el computador local al remoto o viceversa. Seleccionamos conectar y aparecerá en Nautilus. solo debes hacer lo siguiente: 1. Abrir una ventana de Nautilus. Seleccionar Archivo/Conectarse con el Servidor 3. al igual que la conexión remota ftp. Por seguridad es preferible no seleccionar “recordad esta contraseña”. Para realizar este proceso. Acceso remoto a terminal (SSH) 46 Figura 4.1: llenado de campos para conectarse por SSH gráfico .Capítulo 4. 1. el cual presenta la información de la forma: nombre_cuenta:contraseña:UID:GID:GECOS:directorio:shell Ejemplo 5.1. 2 5.gr3 (le asigna los grupos secundarios) 47 . Cada Usuario pertenece a un grupo principal. mediante “sudo”.1. La información de los usuarios se almacena en el archivo /etc/passwd. 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. Administración de Usuarios El esquema de usuarios es Linux es: Grupos: Cada grupo tiene un nombre e identificador de grupo GID Usuarios: Cada usuario tiene un nombre e identificador de usuario UID El usuario principal es “root”. El usuario creado durante la instalación es el que puede ejecutar comandos con permisos de root.gr2. los grupos secundarios se utilizan para dar acceso al usuario. Comandos para Administrar Usuarios: 2 useradd : agrega un usuario. es quien administra el equipo (tiene todos los permisos). Ejemplo 5.2 $ useradd [opciones] usuario Las opciones son: • -u uid (le asigna el UID) • -g grupo (le asigna el grupo primario) • -G gr1. Ubuntu desactiva el usuario root por razones de seguridad.1 juaramir:x:1000:1000:Juaramir:/home/juaramir:/bin/bash La contraseña se encuentra en el archivo /etc/shadow. del segundo en adelante son los grupos secundarios.Capítulo 5 Administración Básica 5. txt” a linuxuser y grupo administracion. Comandos para Administrar Grupos: groupadd : agrega un grupo Ejemplo 5.2.6 Para cambiar el propietario del archivo “texto. Administración de Grupos La información de los grupos se almacena en el archivo /etc/group. 5.2. Los comandos chown y chgrp solo lo puede utilizar el super usuario.3 $ userdel [-r] usuario #elimina el directorio del usuario igual. Ejemplo 5. Otros Comandos: chmod : Cambia los permisos de un/os archivo/s chown : Cambia el propietario y grupo de un/os archivo/s Ejemplo 5.4 $ usermod [opciones] usuario passwd usuario : Modifica o asigna una contraseña al usuario indicado.Capítulo 5.txt 2 chgrp : Cambia el grupo de un/os archivo/S.5 # passwd usuario 2 2 2 5. usermod : Modifica las opciones del usuario 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 2 .2. $ chown linuxuser:administracion texto.1.1. Administración Básica 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.7 adm:x:4:juaramir 2 5. el cual presenta la información de la forma: nombre_grupo:contraseña:GID:lista_usuarios Ejemplo 5. Formato Interno: • Esta compuesto por el programa compilado • Archivos de CONFIGURACION • Documentación • Script de procesos • preinst: Son ejecutados antes de que el paquete sea desempaquetado. permite instalar/desisntalar/reinstalar/configurar/consultar paquetes apt: Interfaz del gestor de paquetes (resuelve dependencias) aptitude: Interfaz de alto nivel de apt dselect: Interfaz de dpkg synaptic:Interfaz gráfica para gestión de paquetes Centro de Software de Ubuntu: interfaz mas amigable de las anteriores.3. El gestor de paquetes procesas los scripts y copia los archivos donde corresponde.3. Desde un sistema de paquetes: Resuelve los problemas de la instalación de código fuente. • postint: Son ejecutados después del proceso de desempaquetado • prerm: son ejecutados antes de la eliminación de un paquete. es idéntica para todas las distribuciones. En el caso de los paquetes DEB. existen 2 formatos de paquetes • RPM: Utilizado por REDHAT y derivados. • DEB: Utilizado por Debian y derivados. • Compilar. Administración de Aplicaciones Existen 2 formas de instalar: Desde código fuente: Es la forma universal.10 $ groupmod [-g gid ] [-n nombre] grupo nombre: nuevo nombre del grupo 2 2 5. se utilizan los siguientes programas para procesar estos scripts: dpkg : Gestor de paquetes. . • Instalar.9 $ groupdel grupo groupmod: Modifica un grupo (nombre o id) Ejemplo 5.Capítulo 5.1. 5. y para utilizarlo se debe tener instalado un gestor de paquetes. Administración Básica 49 Ejemplo 5. • postrm: Son ejecutados después de la eliminación de un paquete. se compone de 3 pasos: • Configurar. Sistema de paquetes DEB: Es el sistema de paquetes utilizado por Ubuntu para la instalación. Administración Básica 50 Todas las aplicaciones anteriores.ubuntu. Lista los paquetes instalados siguiendo el patrón.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”. Desinstala y elimina los archivos de configuración. Estado de selección del paquete. Las opciones compuestos por mas de una letra usan −− − − get − selections − − set − selections Ubuntu divide el repositorio en secciones: main : Con Soporte oficial de ubuntu universe : Sin Soporte oficial restricted : Tienen licencias restrictivas soportadas por Ubuntu multiverse : Tiene licencias restrictivas y que podrían tener problemas para su redistribuciones (codecs de vídeo y audio) Los repositorios son utilizados por apt. a excepción de dpkg trabajan sobre un repositorio1 .2.Capítulo 5. Bandera del paquete. La 1 Lugar donde se encuentran los paquetes (puede ser el mismo equipo o algún lugar en la red) . APT: Apt es un conjunto de aplicaciones que permiten instalar paquetes desde un repositorio. Los repositorios tienen un formato dependiendo de la distribución: El directorio que tiene las versiones de una distribución es dist El directorio que contiene todas las aplicaciones es "pool" http://archive. Modifica la selección de paquetes. 5. Cuando aparce rc"Se ha desinstalado pero aún se mantiene sus archivos de configuración).3. Obtiene la lista de paquetes con su selección. Busca e indica los paquetes que están parcialmente instalados en el sistema. Muestra el estado del paquete Muestra a que paquete pertenece el archivo. Opciones de dpkg: Opción -i < paquete > -r < paquete > -P < paquete > − − get − selections − − set − selections -C -I < patron > -s < paquete > -S < /ruta/archivo > Descripción Instala un paquete Desinstala un paquete sin eliminar sus archivos de configuración. • apt-get dist-upgrade :Actualiza todos los paquete incluyendo los que tienen nuevas dependencias. • apt-get remove − − purge "paquete":Desinstala el paquete y sus archivos de configuración. • update-alternatives − − conf ig java • update-alternatives − − conf ig keytool • update-alternatives − − conf ig rmiregistry 2 . ya que por defecto utiliza programas provistos por gnu (openjdk). excepto 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 configuración.Capítulo 5. Administración Básica 51 configuración personal de los repositorios se encuentra en /etc/apt/sources. Su sintaxis es: • update-alternatives − − conf ig < nombre > • update-alternatives − − all Este comando debe ejecutarse al instalar java. • apt-get upgrade : Actualiza todos los paquetes.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. update-alternatives: Este programa permite definir el programa a utilizar cuando existen diversos programas para la misma tarea.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. desde matriciales hasta láser. y dispone de una sencilla herramienta basada en web para la configuración y administración. CUPS gestiona los trabajos y tareas de impresión. entonces cuando le íbamos a instalar las otras librerías sale un mensaje de que hay versiones mas recientes de esa librerías y utilidades. 6. CUPS también soporta PostScript Printer Description (PPD) y auto detección de impresoras de red. CUPS). ejecutamos los comandos apt-get update y apt-get upgrade. Este sistema de impresión es una capa de impresión libre y portable que se ha convertido en el nuevo estándar de impresión en la mayoría de las distribuciones de GNU/Linux. Es mejor ponerle a nuestro servidor de impresoras un dirección IP estática. y proporciona impresión de red utilizando el protocolo estándar de Impresión en Internet (IPP). que dispone de soporte para una gran gama de impresoras. 52 .Capítulo 6 Servicio de Impresoras (CUPS) Es el Sistema de Impresión Común de UNIX (Common UNIX Printing System. Instalación para instalar el servidor cups debemos instalar los siguientes paquetes y librerías: # 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. Si se va a utilizar el servidor de impresoras en una LAN que tenga un servidor DHCP que asigne direcciones IP dinámicas.1. 100:631 desde un navegador Web.168. administración de impresoras. Configuración Antes de empezar a editar el archivo de configuración /etc/cups/cupsd.conf que es el que almacena toda la configuración de nuestro servidor como podemos ver en la imagen lo editaremos con el edito de texto nano. solo tendríamos 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. opciones para compartir impresoras. 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 configuración de interfaz web.conf primero tenemos que saber que hay una copia de seguridad de la configuración por defecto en el archivo /etc/cups/cupsd.3). cambiando localhost por tu ip estática.2.conf Ahora lo primero que vamos hacer es añadir la dirección IP que tiene nuestro servidor de impresoras al archivo de configuración de CUPS. Ya hemos terminado la configuración con el archivo cupsd.1 el sitio indicado para colocar la dirección IP. Este archivo hay que tenerlo en cuenta por si nosotros llegamos hacer una configuración mal o de pronto alguna persona nos llegara a dañar este archivo. Servicio de Impresoras (CUPS) 53 6. Podemos ver en la Figura 6. Configuración de clientes de CUPS Para configurar 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 .default 6. Configuración de CUPS Para configurar a CUPS tenemos que ir a editar el siguiente archivo /etc/cups/cupsd.d/cups restart Ahora debe ser capaz de conectarse a la interfaz web de CUPS desde la estación de trabajo de administrador (IP 192. 6.2 en la parte donde dice Restricción de acceso al servidor permitimos el rango de dirección IP con la orden: * que significa permisos a cualquier PC que tenga esta dirección IP.conf.conf.100 en este ejemplo) apuntando desde su navegador web a http://192. # cp /etc/cups/cupsd.Capítulo 6.2. # /etc/init.168. Guardamos los cambios y reiniciamos el daemon de cups.conf /etc/cups/cupsd.3. Por ejemplo en nuestro caso seria nuestro mismo PC (ver Figura 6.1.100:631/ una vez que se abre debería ver la pantalla de la Figura 6.conf.4 En la pestaña administración podemos ver opciones como: Añadir impresoras.default. Como podemos ver en la Figura 6. No importa el numero del ultimo octeto Vamos hacer algo similar al paso anterior que es permitir que una estación de trabajo en especifico pueda tener acceso administrativo a nuestro servidor CUPS.1.1. # nano /etc/cups/cupsd.1. entre otros.168. Si no hacemos esto. Capítulo 6. Servicio de Impresoras (CUPS) 54 Figura 6.1: Archivo de Configuración de CUPS . 2: Restricción de acceso por IP de CUPS .Capítulo 6. Servicio de Impresoras (CUPS) 55 Figura 6. Capítulo 6.3: Restricción de acceso Pagina Administrador de CUPS . Servicio de Impresoras (CUPS) 56 Figura 6. 100 #Cifrado DefaultEncrytion ifRequested Ahora solo nos falta agregar la impresora en nuestro cliente entonces nos vamos para Sistemas>Administración>Impresora. Nos aparecerá un nueva ventana donde le colocaremos la dirección del servidor CUPS al cual nos queremos conectar.conf Cuando tengamos el directorio creado pasaremos a editarlo. Después de que conecte nos mostrara la impresora que esta en red. Servicio de Impresoras (CUPS) 57 Figura 6. # nano /etc/cups/client.Capítulo 6. . ya parados en esta opción no vamos para la parte donde dice archivo y damos clic en la parte donde dice Conectando.168. # touch /etc/cups/client.1.conf #Server Name ServerName 192.4: Patalla de CUPS Ahora lo que vamos hacer es crear el archivo de configuración para que el usuario pueda conectarse con el servidor. colocándole información del servidor como la dirección y el tipo de cifrado que maneja. Si la orden no va precedida de una ruta. 7.’seguido de un espacio y el nombre del archivo. Ejecución de un comando en bash Para determinar cual es la orden bash realiza varias acciones: 1. bash lo trata como un programa y lo carga a memoria para ejecutarlo. e identifica la orden.1. los parámetros y eventualmente las variables de ambiente que se den junto con la orden (en esta sección se estudiarán las expansiones y variables de ambiente). Para lograr que el intérprete de comandos intérprete las líneas de un archivo puede: Ejecutar /bin/bash seguido del nombre del archivo (o redireccionar la entrada estándar para que provenga del archivo). Emplear el caracter ’. busca un alias que pueda corresponder con la orden y si lo encuentra lo remplaza por su valor (más adelante en esta sección explicaremos como manejar alias). 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 especifican en la variable de ambiente PATH que se explicará en esta sección). 5. Si la orden no está precedida de una ruta. cuyas líneas tienen comandos que son ejecutados (interpretados) por bash. Si la ruta no conduce a un archivo ejecutable bash presenta un mensaje de error. Agregar en la primera línea del archivo la cadena #!/bin/bash. Emplear el comando source seguido del nombre del archivo. 4. Primero realiza ciertas expansiones a la línea de comando. Si la orden va precedida de una ruta se trata del nombre completo de un archivo y el archivo existe y es ejecutable. 58 . dar permiso de ejecución al archivo y teclear el nombre del archivo desde el intérprete de comandos —como si fuera un nuevo comando.Capítulo 7 Shell Scripts Un script para bash es un archivo tipo texto. determina si se trata de un comando interno de bash (como fg o bg) y en caso de serlo realiza la acción correspondiente. 3. Si la orden no esta precedida de una ruta y no es un alias. 2. El kernel podrá ejecutarlo si está en un formato reconocido (e.2. Ambiente y variables de ambiente Una variable es un nombre al cual se le puede asociar un valor. 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). Las variables de ambiente que un programa usa se especifican en la página del manual del programa. teclee el nombre de la variable. El valor puede constar de letras. En bash puede emplear el comando echo para enviar a salida estándar una cadena (por ejemplo echo tarea > porhacer. Cada programa (incluyendo al intérprete de comandos) se inicia en un ambiente el cual consta de variables. Por ejemplo para asignar el valor /home a la variable DIR: $ DIR=/home Después de asignar una variable. $HOME el nombre del directorio personal del usuario. Por ejemplo ls -l $DIR listará los archivos de la ruta asociada a la variable DIR. Si el archivo es binario lo envía al kernel para su ejecución. lo interpreta con el programa bash1 .txt una línea con la palabra tarea). Si el archivo es tipo texto y comienza con la cadena "#!"seguida del nombre de un programa. pero tenga en cuenta que hay algunos caracteres con significado especial y que es mejor evitar en sus primeros experimentos: $. Para asignar un valor a una variable de ambiente y crearla si no existe. ‘ . TERM mantiene el nombre de la terminal que está usando (ver Lectura Configuración de una sesión). Si el archivo es tipo texto pero no comienza con #!. UID con el número que identifica al usuario.out). PWD el nombre del directorio de trabajo. esto puede usarse para examinar el valor de una variable de ambiente. Es decir lo trata como un script para el intérprete de comandos. Como parámetros para el intérprete emplea los que estén en la primera línea del archivo. ’ (podrá escribirlos precedidos de \ o encerrando el valor a asignar entre apostrofes).txt dejar en el archivo porhacer.g. Puede examinar las variables de ambiente de bash con el comando set. 2. a. bash emplea tal programa como intérprete del archivo. Shell Scripts 59 6.Capítulo 7. para hacerlo emplee el nombre de la variable precedido del carácter ’$’. En otro caso bash presenta un mensaje de error. }.g el ejecutable producido por un compilador en un formato reconocido por Linux —ELF. SHELL la ruta y nombre del intérprete de comandos. bash determinará como ejecutarlo: 1. 7. puede emplear el valor asociado a la misma en comandos que de al intérprete de comandos. en seguida el carácter ’=’y después el valor. Algunas de las variables que verá son: USER y USERNAME cuyo valor es el login del usuario. 3. e. echo $DIR presentará el valor de la variable DIR. PS1 y PS2 indican a bash como presentar prompts (see Lectura Configuración de una 1 En rigor lo interpreta con /bin/sh pero en Debian /bin/sh es un enlace a /bin/bash . símbolos o números. seguidos del nombre del archivo y a continuación otros parámetros que el usuario hubiera dado desde la línea de comandos. {. tal valor puede cambiar durante la ejecución de un programa es ’variable’. variables de ambiente que hereda del programa que lo inició y que pueden tener un significado especial para el programa. . tar gzip $2 .tar. no es necesario especificar la ruta. PATH es la ruta de directorios donde bash busca archivos ejecutables. DISPLAY mantiene la dirección del servidor X-Window (see Lectura Servicios de la Intranet). Empleando sólo export o sólo declare -x puede ver los nombres y valores de variables exportables. . tar Este script recibe dos parámetros.. Shell Scripts 60 sesión). t a r .. En un script puede emplear ciertas variables especiales ($1. LANG.gz con el contenido del directorio ∼/mand con: .) para referenciar los parámetros que el usuario empleó al iniciarlo.Capítulo 7. LANGUAGE y otras variables que comienzan con el prefijo LC_ especifican el idioma en el que los programas deben interactuar con el usuario (ver Lectura Configuración de una sesión). LS_COLORS colores que emplea el programa ls. gz de $1 " mkdir $2 cp −rf $1 / ∗ $2 tar cvf $2 . MAILCHECK la frecuencia en segundos con la que bash debe revisar si ha llegado un nuevo correo a la cola de correos especificada en la variable MAIL (por defecto la del usuario). el ambiente que tendrá constará de las variables que estén marcadas como exportables y de otras variables que se especifiquen 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). Si el nombre del script es comp y tiene permiso de ejecución podría usarse para crear un paquete comprimido d. LINES y COLUMNS indican la cantidad de filas y columnas de la terminal que está usando. su tamaño lo limitan HISTFILESIZE y HISTSIZE. suponiendo que es ejecutado desde el mismo directorio donde se encuentra. se separan unas rutas de otras con el caracter ’:’. empleando el nombre de la variable que desea exportar en lugar de VAR. 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 sesión. $2. HISTFILE mantiene el nombre del archivo con la historia de comandos. el primero es una ruta y el segundo el nombre de un archivo. puede emplear bien declare -x VAR o export VAR. El siguiente script ejemplifica su uso: #! / b i n / bash echo " Creando $2 . OSTYPE el tipo de sistema operativo. Si la ruta donde está el archivo está en la variable PATH. HOSTNAME es el nombre del sistema. $2 del segundo y así sucesivamente. Cuando se inicia un programa desde bash./comp ∼/mand d Note que en el ejemplo indicamos la ruta completa del archivo comp. $1 tendrá el valor del primer paramétro. sustitución de comandos: Un comando encerrado entre apóstrofes invertidos (i. Esta expansión es la primera que se realiza cuando hay varias en un mismo comando..Capítulo 7.g. Otros nombre especiales en un script son: $# Es remplazado por la cantidad de parámetros que el script recibe. Las variables son remplazadas por su valor. y sólo surge efecto si está fuera de comillas o apóstrofes. Por ejemplo ls /home/pepe/sal{a. \t Caracter tabulador (como la tecla Tab). Expansiones bash trata algunos caracteres de forma especial: ’" $.txt’ . así el efecto del ejemplo anterior también podría lograrse con cd los amigos.Opciones que se pasaron al script durante su ejecución. Un script puede retornar un 3 en lugar de 0 con exit 3 $. Al asignar una variable o iniciar un comando bash “expande” estos caracteres y su contexto de varias formas: $var . ’comandoó $(comando) . \\ \{ \} \$ Representan los caracteres ’´ ’{”}’y ’$’respectivamente. se encierra entre comillas. En un script los parámetros se referencian con números. un parámetro se separa de otro con el valor de la variable IFS que normalmente es un espacio.3. $? Todo programa al terminar debe retornar un número al sistema operativo. por ejemplo: \n Representa el caracter fin de línea.citas: Cuando un conjunto de caracteres (incluyendo espacios). \a Caracter para emitir un sonido.. Esto es útil por ejemplo cuando el nombre de un directorio o archivo tiene espacios.. Esto es útil para producir estos caracteres sin que bash trate de interpretarlos –estos son caracteres para hacer expansiones. $1 es el primero. e. Otra forma de representar el caracter espacio es con el caracter ’śeguido de un espacio. letra2. será expandido al resultado que tal comando envíe a salida estándar cuando es ejecutado. Shell Scripts 61 7.} será remplazada por cada una de las letras. Por ejemplo TEXTOS=’ls *. bash los trata como una sola cadena. por ejemplo echo $PATH presentará el contenido de la variable PATH. “texto” .e}n se expandirá a ls /home/pepe/salan /home/pepe/salen.. } será expandida a varias cadenas similares a la inicial pero la posición de {letras1. por convención 0 significa operacióne exitosa y números diferente representan errores. $$ Identificación del proceso del intérprete de comandos.e ‘comando‘) o entre las cadenas ”$(” y ”)”.expansión de corchetes: Una cadena que contenga { letra1. Hay otros caractéres que pueden representarse con ayuda de ’´ . $0 Nombre del script o del shell. $? se expande al número retornado por el último programa ejecutado en primer plano. \b Caracter para borrar a la izquierda. . . $! Identificación del proceso del último comando que se ejecutó en segundo plano. $2 el segundo y así sucesivamente. {letras} . letra2. $* Que se expande a todos los parámetros que el script haya recibido. cd “los amigos”.Expansión de variables o parámetros: El caracter ’$és empleado para distinguir variables o bien parámetros de un script. rm *[cho ] eliminará todos los archivos que terminen con una de las letras o. & para hacer “Y” entre bits de operandos y | para efectuar “O”. <= (menor o igual).*errors presentará todos los nombres de archivos de configuración que estén en el directorio del usuario y que terminen con errors. ?.citas: Un texto que se encierra entre apóstrofes no es expandido. ’texto’.e el resultado de ls *. A continuación introducimos algunos comandos de bash y programas útiles al hacer scripts. o en otras bases empleando como prefijo del número la base seguida del caracter ’#’(también puede escribirse números en octal iniciándolos con 0 o en hexadecimal iniciándolos con 0x).txt. Esto es útil cuando se requiere una cadena que tiene algunos caracteres reservados para expansiones. 2 . ls $(cat rutas.txt) presentará los archivos de los directorios que estén en el archivo rutas.4. echo datos?. / para divir. ! = (diferentes) y pueden operarse booleanos con ! para negar. Esto es útil para agregar comentarios explicativos a los scripts.gnumeric. >= (mayor o igual). Por ejemplo N =10 echo $N es $N enviará a salida estándar $N es 10 $((expresión)) . junto con redireccionamiento. % para obtener residuo de una división. Comandos y programas útiles al hacer scripts En un script puede emplear cualquier programa o comando. 7.expansión aritmética: Una expresión aritmética2 será evaluada cuando se encierre entre $(( y )).Capítulo 7. En la expresión pueden emplearse los operadores . && como conjunción (Y) y || como disyunción.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 . + (unario y binario). echo [0-9 [a-z]*] presentará todos los archivos que comiencen con un dígito seguido de una letra. echo /. <. Shell Scripts 62 asignará a la variable TEXTOS los nombres de los documentos tipo texto (i. == (igualdad). En caso de que no haya archivos el caracter * no será expandido y será mostrado por echo. A continuación se presentan con ejemplos: echo * presentará todos los nombres de archivos del directorio de trabajo —porque * expande a todos estos y echo los presenta—. ** para elevar a una potencia. pueden compararse números con los operadores >.Expansión de rutas: Algunos caracteres y secuencias son expandidos a nombres de archivos. h o c. por ejemplo: echo " 1+2 e s $ ( (1 +2 ) ) " *. procesos y control de tareas.txt). También pueden emplearse valores booleanos — 0 se interpreta como falso y 1 como verdadero—. Hay operadores que operan a nivel de bits (representación binaria de los números que operan): ∼ para negar bits. bash ignora comandos que comienzan con el caracter ’#’. ∼ [letras] [rango(s)].(unario y binario). Los números pueden escribirse en decimal. * para multiplicar. unalias Permite eliminar alias creados con el comando alias. el programa hostname presenta el nombre completo. con -G retorna los números de todos los . por ejemplo para eliminar el alias ll se emplea: unalias ll Si se emplea la opción -a. Puede especificarse un mensaje que se presentará como prompt antes de empezar a leer con la opción -p mensaje. con la opción -a presenta nombres alternos de su máquina y con la opción -y el dominio NIS —este programa extrae parte de la información del archivo /etc/hosts y de /etc/hostname. alias Con este comando puede definir alias para comandos. pero envía a salida estándar el nombre del archivo. el comando unalias elimina todos los alias definidos. con -u retorna sólo el número del grupo principal. basename Análogo a dirname. 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 línea leída tiene más palabras que la cantidad de variables. Por ejemplo un alias para abreviar ls -l puede ser ll. Si tiene menos palabras. whoami Retorna el nombre del usuario que lo ejecuta. las primeras variables (de izquierda a derecha) serán empleadas y el resto quedarán en blanco (i. hostname Envía a salida estándar el nombre del computador en la red. después de definir un alias bash lo remplazará por el comando completo. id Retorna nombre y número del usuario que lo ejecuta. incluyendo su ruta y envía a salida estándar sólo la ruta. el resto serán ignoradas.e con la cadena vacía “”). Debian presenta en salida estándar /usr/doc/xterm. En caso de que no se den nombres de variables. con la opción -i la dirección IP. También puede verse en la variable de ambiente USER. Por ejemplo: dirname / usr / doc / xterm / README . Shell Scripts 63 read Lee una línea de entrada estándar y asigna las palabras a las variables que sigan al comando read. con la opción -d el dominio DNS. dirname Recibe como primer parámetro el nombre completo de una archivo. esto también puede verse en la variable de ambiente HOSTNAME. Con la opción -f.Capítulo 7. la línea leída quedará en la variable REPLY. así como nombre y número del grupo o grupos a los que pertenezca. que se definiría como: a l i a s ll=" l s − l " Puede listar los alias definidos con la opción -p del comando alias. Con la opción -g sólo retorna el número del grupo principal. o + para activar y desactivar) seguida del nombre de la variable. También podemos hacer el script con cualquier comando que solamos utilizar a menudo para evitarnos tener que abrir la terminal y ejecutarlo de manera manual. Los atributos pueden ser sólo lectura (opción -r). Shell Scripts 64 grupos a los que pertenece. Estas opciones pueden seguirse de n para presentar nombres en lugar de números. orientado a usuarios más novatos en esto del sistema operativo basado en Linux.5. y una variable entera sólo puede asociarse con números3 . Una variable de sólo lectura no puede ser modificada.Capítulo 7. o instalar nuestro programas favoritos tendremos que crear un nuevo archivo de texto e introducir las siguientes lineas. exportable (opción -x) y variable entera (opción -i). Script Basico En el siguiente ejercicio práctico. 7. 7. Para cambiar un atributo a una variable se emplea la opción (precedida de . por ejemplo para examinar las variables con atributo de sólo lectura declare -r. dentro 1 seg se inicia el script . Cómo Crear un script sencillo Para crear un script sencillo que ejecute un comando como el de actualizar los repositorios. Para examinar las variables que tengan un cierto atributo se emplea declare seguido del código de la opción. . por ejemplo declare -i N pone el atributo de variable entera a N. les voy a mostrar cómo realizar un sencillo script que nos ayudará a actualizar repositorios. Bash 7. que realizaremos nosotros mismos.1. o cierra la terminal sleep 1 s 3 Otros atributos pueden ser “función” -f y arreglo -a . todo lo dejo en vuestra imaginación. nos evitará tener que ir tecleando en la terminal las ordenes para instalar las diferentes aplicaciones. declare Las variables de ambiente tienen atributos que pueden examinarse o cambiarse con este comando interno de bash. actualizar todo el software o incluso instalar nuestros programas favoritos con tan solo un click y de manera automática. programas u ordenes que solemos utilizar de manera habitual. El uso de este script.5. Una de las principales utilidades que le veo yo al script que a continuación realizaremos. es la de una vez que hacemos una instalación limpia de Ubuntu.1: Script despues de instalar ubuntu #! / b i n / bash echo Despues de Instalar Ubuntu echo . con tan sólo ejecutar el script podemos actualizar e instalar todos nuestro programas favoritos sin necesidad de introducir nada en la terminal. esto se hace escribiendo en la terminal: $ chmod +x rutaAlScript 7. para así darnos tiempo a cerrar la terminal si no quisiésemos instalarlo. siempre dejando un espacio entre cada programa. echo. Lo hacemos así: . Para ejecutarlo Para ejecutarlo tan solo tendremos que abrir nautilus y desde la opción archivo/preferencias/comportamiento y activar la casilla de preguntar cada vez que está dentro de la opción de Archivos de texto ejecutables. opcional de cada uno y que describa brevemente el script. Algunos Ejemplos Bash 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 modificarla. podríamos querer que solo un usuario específico ejecute el script. Este script básico nos actualizaría la lista de repositorios. se recomienda modificarla para que así lo instale en nuestra carpeta de usuario por defecto dentro de nuestro Home.2: Que solo el usuario root ejecute el script #! / b i n / bash i f [ [ $EUID −ne 0 ] ] . actualizaríamos todo el software instalado y después instalaría todos los programas incluidos después del comando sudo apt-get install. si estamos sin entorno grafico lo que hay que hacer es cambiarle los permisos al archivo para que sea un ejecutable.2.5. Aquí le podemos decir lo que tarda el script en ejecutarse una vez abierta la terminal.6. 7. Ahora. 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. 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 código anterior. 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.Capítulo 7. Las demás partes las que podemos modificar a nuestro antojo sabiendo lo siguiente: echo Le daremos el nombre que queramos. 7: Crear un archivo de bloqueo #! / b i n / bash . La que considero más sencilla y concisa es esta: Bash 7.4: Verificar 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 . 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 algún servicio o programa ejecutándose podríamos usar este script (en este caso verifica que el demonio de Apache esté corriendo): Bash 7. si esto no se cumple. Esta es una versión sencilla de un script que nos permite hacer esto: Bash 7.5: Verificar 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 verifica si una variable existe y tiene datos.3: Permitir la ejecucion del script solo a un usuario especifico #! / 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 ] .Capítulo 7. el script se cierra. sin importar si tiene datos o no: Bash 7. Podemos usar esta variación en donde solo comprobamos que la variable exista.6: Verificar 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 más veces simultáneas. Para ello podemos hacer uso de los archivos de bloqueo. El s e r v i c i o $SERVICE e s t a d e t e n i d o " fi Para verificar que una variable esté asignada/tenga datos hay bastantes maneras de hacer esto en shell script. Shell Scripts 66 Bash 7. podríamos hacer uso del comando trap que nos permite ejecutar comandos en caso que nuestro script termine de manera inesperada.Capítulo 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 " . Para hacer un menú en donde permitimos al usuario seleccionar una serie de opciones podemos usar el siguiente esquema: Bash 7. crea el archivo. Para cubrir esos casos. Si no existe. TERM (terminación producida por el comando kill) y EXIT (terminación normal de un script.. esto no es del todo fiable. no nos permitiría ejecutar el script de nuevo. bien sea porque ya no hay más líneas que ejecutar o porque se encuentra con el comando exit). y por lo tanto.]. Pero. Shell Scripts 67 lockfile =/ var / lock / loquesea . echo " $$ " > " $ l o c k f i l e " ) 2> / dev / null . el script NO ejecuta sus tareas. ejecuta las tareas que deba ejecutar y lo elimina. Esta es una versión más avanzada que además guarda dentro del archivo de bloqueo el PID del script que lo ejecuta: Bash 7. Para el caso anterior se usaron los signals INT (captura la terminación producida por un Ctrl + c). En caso de que exista.lock exista. lock i f [ ! −e $lockfile ] . donde signal es la señal de terminación que quieres atrapar. lock i f ( set −o noclobber . then trap rm −f " $ l o c k f i l e " .8: Crear un archivo de bloqueo #! / b i n / bash lockfile =/ var / lock / loquesea .. Si quieres ver una lista de los signals disponibles puedes ejecutar el comando kill -l. La sintaxis del mismo es básicamente esta: trap comando signal [signal . 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. ¿Qué pasaría si mientras nuestro script se está ejecutando es cerrado abruptamente (con Ctrl+c por ejemplo)? En ese caso el archivo de bloqueo no se borraría. 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 verifica que el archivo loquesea. un predecesor de bash —la mayoría de características de csh están disponibles en bash. case. . 2 ) echo " t i e n e s e s t o " . whoami . . Hay algunas partes que complementan lo que se ha presentado en esta guía: • bash puede hacer más expansiones de parámetros. El intérprete de comandos es una parte importante de la filosofía Unix. . esac done A veces es útil hacer que el usuario confirme la ejecución de un lote de sentencias.} —por ejemplo sustituciones en el valor de una variable—. Kernighan y Rob Pike “El Entorno de Programación UNIX”. 3 ) uname −r . Shell Scripts 68 echo " 1 . . con la sintaxis ${. .10: Pedir confirmacion antes de ejecutar un script #! / b i n / bash while true . " . ∗ ) echo " $opc e s una o p c i o n i n v a l i d a . . 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 .. Lecturas recomendadas: Scripts básicos para bash Recomendamos de forma especial consultar la página del manual de bash. el libro clásico sobre este tema es de Brian. . 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 : " . 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 . • Pueden hacerse scripts para bash con otras características que no se han presentado en esta guía: if. 4 ) echo " chao pues p a r c e r o " .Capítulo 7. 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 " . exit 1 . . q u i e n s o y ? " echo " 2 . Puede consultar la información completa sobre este tema en la sección “expansión de parámetros”. . . for. read foo . Este libro explica y muestra el uso de csh. Es tan d i f i c i l ? " . el típico mensaje que pide al usuario escribir yes o no. function. . Prentice-Hall Hispanoamericana. Esto lo podemos hacer así: Bash 7. df .. while. 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. es decir.7. W. 2.Capítulo 7. Ayuda: Puede emplear la opción -R de ls para listar subdirectorios.COMO de introducción http://goo. Modifique y exporte la variable PAGER para que man emplee el programa more para presentar información y pruebe el cambio. que al ejecutarse busque entre sus directorios. 7. using Bash” de Mendel Cooper. 5. 4.8. la resta. Cree un script que sea interpretado por bash. Haga un script que después de ejecutarse pida al usuario 2 números y después presente la suma. compruébela empleando un intérprete de comandos.gl/HS4pB 7. empleando el programa especificado en la variable de ambiente PAGER o en su defecto con el programa less (ver Lectura bash y el juego de herramientas). Cree un script que al ser ejecutado.org/LDP/abs/html/index. Ayuda: source. Ejercicios: Scripts básicos para bash 1. todos los archivos. Después cambie esta variable y explique que ocurre con el comodín ’ ’. Haga un script que cada 90 minutos presente el mensaje “Hacer tareas”. disponible en: http://linuxdoc. ¿Qué hace el comando echo ‘ls’? (note que se usan apóstrofes invertidos). 3. el producto y la división. El archivo script2 creado debe poner la variable PATH en el valor que tenga cuando el primer script sea ejecutado. cree un archivo script2. Comprúebelo y después empleela para cambiarse a su directorio. ¿Qué hace el comando N=6 echo “’1+$N’= $((1+$N))”? Después de dar su respuesta. 8. La variable de ambiente HOME contiene el nombre de su directorio personal.html o Programación en BASH . Shell Scripts 69 En Internet puede consultar “Advanced Bash-Scripting Guide: A complete guide to shell scripting. . y la opción -u de sort. El programa man presenta páginas del manual. 6. añadir a tal variable la ruta /opt/bin y debe crear un alías que cuando se ejecute muestre el contenido de la variable PATH (no olvide cambiar el modo del archivo script2 generado para que sea ejecutable). ordene los nombres alfabéticamente y le envíe un correo con esa información. además. 8. $ crontab -e Ejemplo 8. asimismo. hay que escribir lo siguiente en el prompt shell de Linux / Unix. y por un usuario con los privilegios necesarios para poder programarlas. el demonio cron siempre está arrancado. CRON: crontab Para editar el archivo crontab. La función básica de cron es la de ejecutar tareas programadas para un determinado momento. es importante conocer cuál es el paquete que provee dicha funcionalida.sh Donde: 1: Minuto (0-59) (* cualquier minuto) 2: Horas (0-23) (* cualquier hora) 3: Día (0-31) (* cualquier día) 4: Mes (0-12 [12 == diciembre]) (* cualquier mes) 5: Día de la semana (0-7 [7 or 0 == domingo]) (* cualquier dia) 70 2 . que el sistema siempre está en funcionamiento.2. CRON: Instalación Aunque ya se ha mencionado que los sistema Debian GNU/Linux tienen instalado este servicio de serie.1. De hecho.1 (Sintaxis del Crontab) 1 2 3 4 5 /ruta/al/comando arg1 1 2 3 4 5 /root/backup. # apt-get install cron 8. dicho servicio asume.Capítulo 8 CRON Se trata de unos de los servicios básicos de los sistemas GNU/Linux. 14.sh 2 Ejemplo 8. .4.8..3 Para ejecutar /path/to/unixcommand 5 minutos después de las 4am cada domingo. El guión (-) Este operador especifica una serie de valores. será equivalente a cada hora. añadimos: 5 4 * * sun /path/to/unixcommand 2 8.5 # crontab -r # crontab -r -u username 2 . CRON: Listar todas tus tareas del crontab Ejemplo 8. un asterisco en el campo mes será equivalente a cada uno de los meses. CRON 71 /ruta/al/comando – Ruta del script o comando a programar Un cron job del sistema luce como la siguiente línea: Ejemplo 8. lo que equivale a escribir “5.5.5. .20.7. Existen tres operadores: El asterisco (*) Este operador abarca a todos los valores posibles en un campo.6.4 # crontab -l # crontab -u username -l 2 8.15” usando el operador coma.2 (Sintaxis del Crontab) 1 2 3 4 5 USERNAME /path/to/script. un asterisco en el campo de hora. Por ejemplo.13.15. CRON: Borrar todas tus tareas del crontab Ejemplo 8. por ejemplo: “1. La coma (. o. CRON: Operadores Un operador nos permite especificar múltiples valores en un campo. 25”..Capítulo 8.) Este operador especifica una lista de valores. por ejemplo: “5-15” días.9.3. 8.10. daily/”. CRON 72 8. 5. “0 * * * *” Cadena especial @reboot @yearly @annually @monthly @weekly @daily @midnight @hourly 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 " . Ejecutar una vez al año. 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.daily/clean. CRON: ahorrar tiempo Significado Ejecutar una vez. creamos con gedit un archivo de texto.sh 8.9. por ejemplo: “/etc/cron. “0 0 * * *”.8. “0 0 * * 0” Ejecutar una vez al día.6. con el texto: SHELL=/bin/bash DISPLAY=:0 2.cache) para limpiar los archivos almacenados en la caché cada 10 días. Ejemplos Este es un shell script (clean. CRON: ahorrar tiempo 2 Ejemplo 8. “0 0 1 * *” Ejecutar una vez a la semana. Guardamos este archivo con el nombre: cron-usuario . 4. en el inicio. “0 0 1 1 *” (igual que @yearly) Ejecutar una vez al mes. CRON: Creación de un crontab para un usuario 1.Capítulo 8.6 @daily /path/to/backup/script. Este script se crea directamente en el directorio “/etc/cron. 3. (igual que @daily) Ejecutar a cada hora.7.cache”: Bash 8. Comprimimos en tar el archivo BDMSQLbackup.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 . 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 . Nos movemos al directorio recién creado. Hacemos una pausa de 5 segundos. 5. 9. tgz BDMSQLbackup . 8. se crea un directorio donde almacenaremos el respaldo.sql Nombre del archivo de respaldo que se creara automaticamente.com 11. BDMSQL Nombre de la base de datos de la que se hará el respaldo. 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 dificultades con una base de datos MySQL grande y activa es la de realizar respaldos limpios sin tener que desconectar el servidor. Utilizando el comando mysqldump creamos el respaldo aquí ten en cuenta lo siguiente: root Nombre de usuario de la base de datos. .sql y por ultimo el directorio. Lo primero es asegurarnos de tener instalado el paquete mailx indispensable para poder enviar el respaldo que se creara por correo. el script y la explicación a continuación: Bash 8. sql ~/ −R −f BDMSQL Comenzamos a partir de la linea #4: 4. el archivo . com sleep 5 rm rm cd rm ∗ . sql tar zcvf BDMSQLbackup − date + % d −% m −% y . 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 ∗ . aunque si solo quieres crear el respaldo y almanacenerlo localmente no sera necesario.Capítulo 8. 7. tgz BDMSQLbackup . Estos valores tendras que cambiarlos con los que tu tienes correspondientes a los de tu base de datos. tgz micorreo @gmail . admin Contraseña para conectarnos a la base de datos. Mandamos por correo el archivo recién comprimido a la dirección micorreo@gmail. sumado a esto esta la necedidad de guardar ese respaldo correctamete. BDMSQLbackup. esto incluye el archivo comprimido.sql recién creado. En las siguientes lineas lo que se hace es eliminar todo archivo que se creo. A modo de prueba inmediata puedes ejecutarlo y revisar el correo a donde fue enviado. /etc/cron. . CRON 74 Por qué las ultimas 4 lineas? La idea del script (a parte de enseñar) es que este se este ejecutando en un momento determinado. Hacer que se ejecute automáticamente.weekly/ si quieres que se ejecute semanalmente. Para hacer que el script se ejecute automáticamente lo único que hay que hacer es meterlo dentro de directorio /etc/cron. /etc/cron. puesto que el respaldo se estará enviando por correo electronico esta de más tenerlo almacenado localmente sobre todo si el servidor se encuentra de forma remota.monthly/ para hacerlo mensualmente.daily/ si quieres que lo haga diariamente.Capítulo 8. no olvides cambiarle los permisos al archivo con chmod antes de ejecutarlo. Identificar tu Partición o Disco Lo que necesitamos identificar es el nombre del dispositivo. /dev/sda2 (Segunda partición primaria del disco duro uno). 75 . para ello tecleamos: # blkid /dev/sdb1 lo cual nos entregará los siguientes datos: El punto de montaje es UUID=“XXXXXXXXXXXXX”. normalmente Linux maneja las particiones con nombres como: /dev/sda1 (primera partición primaria del disco duro uno).1. detectamos cual es la nueva que deseamos añadir (asumamos que es sdb1) Ahora necesitamos conocer cual es el punto de montaje de nuestra unidad. Identificar tu Partición o Disco Lo primero que debemos hacer es identificar donde esta “físicamente” nuestro disco para linux. /dev/sda5 (primera partición secundaria del disco duro uno).2. esto lo hacemos mediante el comando f disk # fdisk -l 9. /dev/sdb1 (primera partición primaria del segundo disco duro).Capítulo 9 Manejo de Nuevo Hardware 9. De la lista que nos entrega f disk . 3. Particionamiento ***(Pendiente)*** END. Existen en realidad programas separados para cada tipo de sistemas de archivos.4. con el comando mkfs.2. El tipo se selecciona con la opción -t fstype. Llamaremos a esta partición “datos” Para poder montar datos. Respecto al nombre. Preparar la Ubicación para Montar Aquí tenemos que hacer un par de decisiones: ¿como llamaremos a nuestra partición? ¿donde la ubicaremos? En el caso de la ubicación. Otra alternativa de encontrar el punto de montaje es mediante el comando: $ ls -l /dev/disk/byuuid 9. así como dar el formato deseado a cada una de ellas. . eso corresponde completamente a nosotros. existen herramientas en los entornos gráficos que facilitan esa labor. por omisión ubuntu monta discos duros y dispositivos en: /media .4. Manejo de Nuevo Hardware 76 El tipo de unidad que queremos montar es NTFS/vfat/extx .Capítulo 9. Crear un sistema de archivos Un sistema de archivos se crea. así como con las particiones. mkfs es únicamente una careta que ejecuta el programa apropiado dependiendo del tipo de sistemas de archivos deseado.1. para eso ejecutamos el siguiente comando en la terminal: # mkdir /media/datos 9. -t fstype Selecciona el tipo de sistema de archivos. así que es buena idea seguir esta costumbre. y en los escritorios GNOME la herramienta Gparted. se inicia. Juaramir: Esta sección pronto se completará 9. si es un disco que contiene archivos de musica o vídeo. -l filename Lee la lista inicial de bloques defectuosos del archivo dado. Las opciones más comunes e importantes se resumen más abajo. Herramientas Gráficas Para poder trabajar con los sistema de archivos. Todas ellas son capaces de manejar el sistema de particionado de los discos. Para el escritorio KDE encontramos la utilidad QtParted. Los programas a los que -t fstype llama tienen líneas de comando ligeramente diferentes. -c Busca bloques defectuosos e inicia la lista de bloques defectuosos en consonancia. puede ser buena opción llamarla “media” o “datos”. necesitamos crear una carpeta en la cual montarse.4. esto es. 9. Fat Si la partición que queremos montar fuera FAT. Manejo de Nuevo Hardware 77 9. es necesario instalar el paquete ntfs-3g para poder escribir en este tipo de particiones.5.5. 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 añadir la siguiente linea: # mount -t ntfs-3g /dev/sdb1 /media/datos -o force o # mount -t ntfs /dev/sdb1 /media/datos -o force 9.1. 9.5.2. entonces tendríamos que cambiar algunas cosas. Montar Partición de Manera Temporal NTFS Para montar una partición NTFS en algunas distribuciones como debian. la linea de fstab quedaría de esta forma: # mount -t vfat /dev/sdb1 /media/datos -o force o # mount -t /dev/sdb1 /media/datos -o force .Capítulo 9. gid=1000.6.umask=0222. ya que eso podría traer consecuencias indeseables al sistema).1. Montar Partición de Manera Definitiva Ya esta lista la ubicación.Capítulo 9. NTFS Para montar una partición NTFS en algunas distribuciones como debian.6.locale=es_ES. pero necesitamos montar en si la partición.uid=1000. para esto. que es donde se almacenan las direcciones donde se montan nuestros discos duros.umask=000. . de lo contrario funcionará de solo lectura.locale=es_ES.UTF-8 0 0 9. ext Si la partición que queremos montar fuera ext4. la linea de fstab quedaría de esta forma (más simple que las anteriores): UUID=XXXXXXXXXXXXX /media/datos ext4 errors=remount-ro 0 1 Guardar los cambios y cerrar. entonces tendríamos que cambiar algunas cosas.6. 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.2.UTF800 Otra forma puede ser: /dev/sdb1 /media/datos vfat iocharset=utf8. es necesario instalar el paquete ntfs-3g para poder escribir en este tipo de particiones. Manejo de Nuevo Hardware 78 9.locale=es_ES. editaremos el archivo /etc/fstab.3.UTF800 Otra forma puede ser: /dev/sdb1 /media/datos ntfs nls=utf8. la linea de fstab quedaría de esta forma: UUID=XXXXXXXXXXXXX /media/datos vfat rw. ext4 Si la partición que queremos montar fuera ext4.uid=1000. la siguiente línea: 9. # apt-get install ntfs-3g Una vez abierto el archivo si queremos montar nuestra unidad del tipo NTFS debemos añadir la siguiente linea: UUID=XXXXXXXXXXXXX /media/datos ntfs-3g default_permissions.6. la linea de fstab quedaría de esta forma (más simple que las anteriores): # mount -t /dev/sdb1 /media/datos -o force 9.5.UTF-8 0 0 9. Lo que haremos será agregar al final del archivo (procurando no mover el resto.locale=es_ES. Fat Si la partición que queremos montar fuera FAT.3.uid=1000. Montar la partición Ya hemos hecho todo lo necesario para montar nuestra partición. podemos reiniciar para que los cambios tengan efecto o simplemente volver a montar nuestras particiones con el siguiente comando: # mount -a .Capítulo 9.7. Manejo de Nuevo Hardware 79 9. Necesitamos: Placa base (2 Puertos USB mínimo) Microprocesador (mínimo 500 Mhz Intel o AMD) Tarjeta gráfica Tarjeta de red 80 . Estos tipos de servidores los podemos usar solos en una maquina o en conjunto para que nuestro servidor sea más o menos completo. servidor de correo.FTP .1. Hardware Podemos llamar servidor a toda maquina que este conectada a la red y ofrezca diferentes servicios a los usuarios de la misma. servidor SSH. servidor DNS. Servidor Web . Recuerda que cuantos mas servicios vallamos a ofrecer más potente tiene que ser la maquina para poder dar a basto con todo. servidor MySQL. servidor de impresión y servidor de archivos entre otros servicios. Para esto necesitamos Hardware suficiente para montar un computador que pueda cumplir nuestras necesidades.SSH 10.Archivos .Capítulo 10 Servidor GNU/Linux Con GNU/Linux Ubuntu Server podemos montarnos un servidor que ofrezca varios servicios a terceros como por ejemplo servidor Web. La primera pantalla que aparece nada más arrancar nos pregunta el lenguaje que queremos para la instalación y seleccionaremos nuestro idioma. Si ya tienes una maquina preparada para que funcione como servidor lo primero que vamos a necesitar es el CD/Pendrive de instalación de Ubuntu Server. SSh. Instalación 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.2.2. Sistema Operativo Si hay algo que caracteriza a Ubuntu frente a otras distribuciones Linux es que está es la más sencilla de instalar y esto lo notaremos tan solo con instalar el sistema operativo. Respecto a la compatibilidad de este frente a clientes con Linux. Impresión y compartición de archivos.Capítulo 10. 10. . Durante su instalación (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. 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. Servidor GNU/Linux 81 Memoria Ram (mínimo 128 Mb) Fuente de poder (alimentación) Disco duro (10Gb mínimo recomendado) Lector de CD o usb libres para cargar el SO. directorioso particiones que compartamos con nuestra red.1. 10. Este lo podemos descargar de su web oficial Una vez nos descarguemos el archivo de imagen ISO necesitamos grabarlo en un CD o en un Pendrive. En la siguiente instalación que haremos bajo el sistema operativo Ubuntu Server vamos a indicarle que nos active servicios Web. Capítulo 10. Servidor GNU/Linux 82 Seleccionamos Install Ubuntu Server Seleccionamos el país donde nos encontramos . Capítulo 10. Servidor GNU/Linux 83 A continuación necesitamos indicarle cual va a ser el nombre que le vamos a dar a la maquina (ejemplo: linuxserver) Configuramos el reloj del sistema seleccionado donde nos encontramos . . Si estamos de acuerdo seleccionamos (Si) si por el contrario no lo tienes claro siempre puede volver atrás pulsando (No) .. . (Esta es la opción mas sencilla) En mi caso voy a usar la segunda opción ya que asigna automáticamente las particiones y las acondiciona a nuestro disco duro y a nuestra memoria ram. 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. En la siguiente pantalla podemos ver todos los cambios que se van a realizar en nuestro disco duro.Capítulo 10. Servidor GNU/Linux 85 Seguidamente introduciremos un nombre para nuestro usuario (Ejemplo: Juan Ramírez) Ahora introducimos el nombre de usuario para la cuenta (Ejemplo: juaramir) .Capítulo 10. Capítulo 10. MySQL y PHP además de otros soportes con los que podremos montar webs o blogs. Servidor GNU/Linux 86 Introduce una contraseña para el usuario que anteriormente creamos y luego la verificamos. Seleccionamos LAMP server para que nos instale automáticamente el servidor web Apache. si no es tu caso sigue con el botón (Continuar) En la siguiente pantalla podemos elegir que servicios queremos que vengan instalados por defecto una vez concluya la instalación del sistema. Si nos encontramos detrás de un Proxy ahora es el momento de indicarle la dirección. Linux y Mac . Con la opción Print server podemos montar un servidor de impresión con este ordenador y una impresora a la que podremos acceder vía red desde otro ordenador e imprimir lo que queramos. También 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. Samba File server también lo activaremos ya que con el podremos compartir carpetas o particiones completas en nuestra red y serán compatibles con Windows. Arrancar nuestro servidor y accederemos a una Terminal con el usuario del sistema que creamos en la instalación de Ubuntu Server (juaramir). Una vez terminada la instalación el sistema expulsara el CD de instalación y lo extraemos de la unidad. ¿Porque? Pues muy sencillo Vamos a necesitar que nuestra tarjeta de red tenga una IP estática 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 continuación la configuraremos para que podamos hacerlo. 10. Eso esta muy bien y nos ha sido muy cómodo ya que no hemos tenido que configurar nuestra tarjeta de red para nada durante la instalación del sistema pero vamos a tener que configurarla manualmente. luego la repetimos para verificarla y continuamos.Capítulo 10.3. A continuación seleccionamos (Continuar) y la maquina se reiniciará sola. Servidor GNU/Linux 87 A continuación introducimos una contraseña para el administrador de las bases de datos MySQL (root). . Configuración de Red En la instalación del sistema operativo se nos configuró automáticamente el servicio DHCP para que nuestro router nos asigne automáticamente una IP. Servidor GNU/Linux 88 Siempre que modifiquemos un archivo del sistema para configurarlo 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.1. Asignando IP Estática 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 .Capítulo 10.3. A continuación haremos una copia del archivo llamado (interfaces) que está situado en la ruta (/etc/network) y seguidamente lo editaremos para indicarle que IP estática es la que va a tener nuestro servidor Teclea: # cp /etc/network/interfaces /etc/network/interfacesOLD 10. .Capítulo 10. mascara de subred. Además aparece la dirección ip que tenemos que escribir en el campo address. en mi caso eth0 para el puerto de red cableado y wlan0 para la wifi. Servidor GNU/Linux 89 Nuestra tarjeta de red primaria esta configurada para que se nos asigne una IP automáticamente vía DHCP. Para empezar vamos a cambiar esa palabra por (static) y a continuación especificaremos cual va a ser nuestra IP fija. Para conocer cuales son los datos a obtener que necesitaremos llenar solo debemos teclear ifconfig en la terminal y aparecera una imagen como la siguiente: Al teclear ifconfig aparecerá más a la izquierda el dispositivo de red. puerta de enlace o gateway y resolvedor de nombres DNS. la submascara de red que hay que escribir en netmask. A continuación vamos a reiniciar la red para que los cambios surjan efecto.168. Teclea: # /etc/init. Teclea: ifconfig Ahora cada vez que arranquemos tendremos la misma IP y no una dinámica como antes. después la Y y después Enter.d/networking restart Ahora deberíamos tener la IP que configuramos anteriormente. Servidor GNU/Linux 90 Gateway es la ip con la que accedes desde un navegador a tu router para configurarlo y finalmente la ip que hay que llenar en nameserver se obtiene desde opendns.101. Respecto a los servidores DNS he usado las direcciones de OpenDNS un servicio de resolvedores de nombres que nos ofrecen gratuitamente desde Internet.Capítulo 10. Esto podemos verlo ejecutando el comando ifconfig.0. Una vez hechas todas las modificaciones al archivo (interfaces) guardamos el archivo pulsando la tecla F2.org En la siguiente imagen expongo mi configuración estática que le he asignado aunque no necesariamente tiene que ser igual que la mía puede variar dependiendo de vuestro rango de IP y proveedor de internet para el apartado DNS Como vez le he asignado la IP 192. Con esto hemos guardado los cambios en el fichero y salimos del editor nano. . php con el editor nano.4. Seguidamente vamos hacia el directorio /var/www Teclea: $ cd /var/www Ahora crearemos un archivo llamado prueba.168.0. ¿Pero. Si no lo hiciste solo teclea en la terminal: # apt-get install tasksel # tasksel install lamp-server La opción LAMP Server instala automáticamente Apache HTTP Server. <?php echo ’<p>probando probando !!! php</p>’. Una vez efectuada la instalación de LAMP Server tenemos que configurar algunas cosas para que todo funcione a nuestro gusto y podamos tener control sobre ello. MySQL y soporte para PHP necesario para montar un Blog. Teclea: # nano prueba. Al seleccionar LAMP Server durante la instalación 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.101) o http://localhost. tenemos soporte para PHP? Para comprobar esto vamos a acceder a una terminal y nos identificaremos con nuestro usuario (juaramir).php Ahora tendremos que incluir el código que vez en la siguiente imagen. ?> . Veremos la siguiente pantalla: Si sale esta pantalla es que de momento todo va bien y el Servidor Web Apache funciona correctamente. Servidor GNU/Linux 91 10. Para ello abriremos un navegador e introduciremos la IP que tenga nuestro servidor.Capítulo 10. (http://192. Antes de nada vamos a comprobar que nuestro Servidor Web Apache y el soporte para PHP funcionan bien. Servidor Web con LAMP Si hay algo que caracteriza a Ubuntu de otras distribuciones Linux es su facilidad de manejo. 0.cnf Una vez editado tenemos que buscar la linea: bind-address = 127.php Ahora si que podemos estar seguros de que nuestro servidor Web funciona y tiene soporte para PHP. Servidor GNU/Linux 92 Una vez introducidas estas lineas guardamos el archivo y salimos del editor pulsando la tecla F2 -> Y -> Enter.php) o http://localhost/prueba.101) quedando así: bind-address = 192. Seguidamente instalaremos PhpMyAdmin para poder administrar nuestras bases de datos.168. Configurar MySQL Una vez visto esto vamos a configurar 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.0.101/prueba.0.php. (http://192.4. Ahora tan solo nos queda abrir ese archivo en el navegador introduciendo la dirección IP de tu servidor seguido del archivo prueba.0.Capítulo 10. Para ello lo primero que haremos es editar el archivo de configuración de MySQL llamado my.1.cnf ubicado en la ruta /etc/mysql Teclea: # nano /etc/mysql/my.1 Y la modificamos por la IP de nuestro servidor (192.0.168. 10.101 Una vez modificada esta linea guardamos el archivo y salimos del editor pulsando la tecla F2 -> Y -> Enter.168. . . Servidor GNU/Linux 93 PhpMyAdmin Instalaremos PhpMyAdmin Teclea: # apt-get install phpmyadmin Durante la instalación veremos una pantalla como esta: Marcamos la opción Apache2 y continuamos con la opción Ok.Capítulo 10. 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 instalación del sistema operativo.0. Una vez terminada la instalación abriremos un navegador e introducimos la url de nuestro servidor seguido de la ruta /phpmyadmin/ (http://192.168.101/phpmyadmin/) Una que vez veamos esta pantalla vamos a configurar el idioma y el nombre de usuario para poder acceder a PhpMyAdmin. Capítulo 10. Ahora marcamos los tres primeros usuarios llamados cualquiera y seguidamente pinchamos sobre el botón Continuar que se encuentra más abajo. Para tapar esta vulnerabilidad del sistema hacemos clic sobre la opción Privilegios. Servidor GNU/Linux 94 Si en vez de haber accedido a PhpMyAdmin con el usuario root accediéramos con el usuario admin y dejáramos la casilla para el password vacía también podríamos acceder al panel de administración aunque sin privilegios. no mostrara un mensaje de éxito como: . No es bueno que nadie pueda entrar así y ver que bases de datos tenemos en el servidor. Una vez borrados. Para ello vamos a identificarnos con nuestro usuario de sistema (juaramir) e instalaremos el software Proftpd Teclea: # apt-get install proftpd Durante la instalación veremos una pantalla como esta: .5.Capítulo 10. 10. 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. Servidor GNU/Linux 95 Ahora solo el usuario root con la contraseña que introducimos durante la instalación del sistema operativo podrá acceder a PhpMyAdmin para administrar las bases de datos que necesitemos. A continuación vamos a instalarlo y configurarlo para que podamos subir y bajar archivos de nuestro servidor en Ubuntu Server. 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. 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.conf Y agregamos al final del archivo DefaultRoot ∼ quedando así Una vez hagamos esto guardamos el fichero de configuración y salimos del editor nano pulsando la tecla F2.Capítulo 10. después la Y y el Enter. Teclea: $ mkdir /home/[tu usuario]/web Una vez creado el directorio vamos a editar el archivo default ubicado en la ruta /etc/apache2/sitesavailable/ . Esto esta muy bien pero también estaría bien el poder tener la raíz de nuestro servidor Web accesible desde el FTP para poder manejar los archivos que queremos compartir vía Web en nuestro servidor. Para esto vamos a configurar uno de los archivos de configuración de Apache Web Server y le indicaremos que la raíz de nuestro servidor Web va a ser uno de los directorios que se encuentra dentro de nuestra cuenta de usuario. No es necesario pero así nos aseguramos de que nadie nos tocará nada en el disco duro.conf Teclea: # nano /etc/proftpd/proftpd. Editamos el archivo proftpd. Servidor GNU/Linux 96 Seleccionamos la opción independiente para que nos haga funcionar el servidor FTP como servidor independiente. 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 suficientes para hacer lo que nos venga en gana. Para empezar vamos a crear un directorio dentro de nuestro home donde todo lo que copiemos lo podremos compartir vía web (Yo le voy a llamar web). Una vez instalado vamos a añadirle una linea al archivo de configuración de proftpd. 168. 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 modificar la ruta /var/www/ por la ruta de tu directorio /web.101). En mi caso Una vez hagamos esto guardamos el archivo de configuración y salimos del editor nano pulsando la tecla F2.0. Reiniciamos nuestro Servidor Web Apache para que los cambios surjan efecto.d/apache2 restart Seguidamente borramos el archivo 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. Teclea: # /etc/init. después la Y y el Enter.Capítulo 10.html de la ruta /var/www para que podamos ver todos los archivos que subamos al directorio web Teclea: # rm /var/www/index. Servidor GNU/Linux 98 10. . debes registrarte y añadir los datos de una tarjeta de crédito. una vez te inscribas. desactivas la tarjeta y automáticamente quedaras con la cuenta Free que solo permite una redirección IP por cuenta. Dominios Para todos los que no tenemos una IP estática en internet nos es necesario registrarnos en alguna web que ofrezca un servicio de redireccionamiento de DNS y ojala gratuito. En cambio. por lo que es importante que tu router tenga esta capacidad y veas cuales soporta para que te elijas crees una de esas cuentas. 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 DynDNS.homelinux. Para ello vamos a usar el servicio que nos ofrece DynDNS o No-IP. Una vez tengas lo siguientes datos Email de usuario (Nombre de usuario) Password (Contraseña) Dominio registrado (En mi caso prueba. No-IP no requiere registrar tarjeta y es mas sencillo y permite mas de una IP por cuenta.6. Lamentablemente los actualizadores de IP ya no están soportados para que ubuntu lo haga directamente.Capítulo 10. por lo general los routers mas actuales soportan DynDNS o No-IP.com) Debes procurar añadirlo 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. Necesitamos esto para que cuando nuestra IP cambie podamos localizar nuestro servidor desde Internet. .7. Teclea: $ startx Ahora estamos ante un entorno súper sencillo sin iconos y con 4 escritorios además de algunas utilidades que podremos descubrir con un solo clic con el botón derecho de tú ratón. KDE o incluso Xfce entiende que sobrecargaras el sistema y no es que se vaya a morir nuestro servidor si no que todo ira más lento. Teclea: # apt-get install xorg Ahora instalamos el entorno gráfico FluxBox Teclea: # apt-get install fluxbox Una vez terminada la instalación de Xorg y FluxBox vamos a iniciar el entorno gráfico. Antes de instalar el entorno gráfico hay que instalar el servidor gráfico Xorg. Si instalas Gnome. Si tu computador no es potente no lo instales pero si crees que está bien. La instalación de estos dos programas es muy sencilla. Entorno Gráfico Vamos a instalar un entorno gráfico minimalista como FluxBox que te instala solo lo justo para que puedas tener un entorno gráfico mas agradable que la terminal a secas.Capítulo 10. es cosa tuya.homelinux. subiendo archivos y bajando desde el FTP o imprimiendo algo con nuestra impresora. Para hacerlo accedemos a una Terminal con nuestro usuario de sistema. y más si sumamos que hay usuarios visitando nuestras paginas. 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. 10.com) con nuestra IP actual. Teclea: # apt-get install firefox Una vez instalado lo podemos ejecutar desde una Terminal con solo teclear la palabra firefox o hacer clic con el botón derecho del mouse y seguir el menú Aplicaciones -> Red -> firefox. eso si solo cuando lo necesitemos así nuestra maquina irá más ligera de recursos.8. 10. Para salir del entorno gráfico y volver al modo Terminal de siempre tan solo tendremos que hacer clic sobre el botón derecho del mouse y seleccionar Exit Ahora cuando necesitemos un entorno gráfico y ligero que nos permita navegar tan solo tendremos que teclear el comando startx y usarlo sin problemas. Servidor GNU/Linux 100 Si necesitamos una Terminal tenemos que hacer clic con el botón derecho del mouse y seguir el menú Aplicaciones -> Consolas -> Bash una vez allí podemos usarla para seguir como lo hemos estado haciendo hasta ahora. . Al marcar esta opción se instalaron automáticamente todas las aplicaciones necesarias para poder compartir archivos entre maquinas Windows y Linux. Como navegador he elegido firefox.Capítulo 10. Servidor de archivos Samba Si recordamos la instalación de Linux Ubuntu Server que hicimos al principio de este manual veremos que marcamos la opción Samba File Server. Este entorno gráfico se ha montado solo para momentos puntuales donde necesite de un navegador que pueda usarlo sin problemas. Teclea:# apt-get -y install system-config-samba python-gtk2 python-glade2 Seguidamente arrancaremos el interfaz gráfico de samba que nos acaba de instalar Teclea: # system-config-samba A continuación vamos a compartir carpetas de la forma más fácil que pueda existir sin pedir contraseñas ni usuarios a nuestros clientes. . Para hacer esto lo primero que necesitamos hacer es configurar el servidor SAMBA para que sea del mismo grupo de red que los demás equipos conectados a él con Windows. La otra manera de hacerlo es gráficamente con un interface que nos facilite esta labor. Para empezar vamos a identificarnos en el sistema con nuestro usuario e iniciaremos el entorno gráfico FluxBox. Para esto vamos a pulsar el botón Preferencias y a continuación Configuración del Servidor. teclea: # apt-get install samba samba-common smbclient libpam-smbpass Existen dos maneras de configurarlo.conf ubicado en la ruta /etc/samba y hacerlo todo a mano.Capítulo 10. Teclea: $ startx A continuación accedemos a una Terminal pulsando el botón derecho del ratón y siguiendo el menú Aplicaciones -> Consolas -> Bash Antes de tocar nada vamos a instalar la aplicación system-config-samba y un par de dependencias que necesita para poder funcionar. Servidor GNU/Linux 101 Si no lo hiciste durante la instalación. la primera configurando el archivo llamado smb. Para compartir algún directorio haremos lo siguiente. Servidor GNU/Linux 102 En la primera casilla Grupo de trabajo debemos incluir el nombre que tenemos como grupo de trabajo en Windows. Continuamos con el botón OK y ya estamos listos para compartir carpetas y archivos tanto en Windows como en Ubuntu en este caso. Ahora pulsaremos el botón Examinar . Una vez configurado lo anterior continuamos con la pestaña Seguridad y dejaremos todas las casillas tal cual ven en la imagen.Capítulo 10. Primero pulsamos el botón Añadir Recurso Compartido y veremos la siguiente ventana. Servidor GNU/Linux 103 Ahora vamos a crear una carpeta que compartiremos con todos los computadores de nuestra red con el botón Create Folder e introducimos el nombre que deseemos para ese directorio. Esto es opcional ya que no interviene en nada al funcionamiento del servidor. Marcamos las casillas Permiso de Escritura y Visible (si lo deseamos) quedándonos así A continuación pulsamos sobre la pestaña Acceso y marcamos la casilla Permitir acceso a todos (si lo deseamos) quedándonos así: . Una vez creado el directorio pulsamos el botón 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 Descripción podemos incluir una descripción de la carpeta que vamos a compartir.Capítulo 10. Servidor GNU/Linux 104 Para finalizar cerramos esta ventana con el botón OK. 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 petición al puerto 139 nuestro Router no sabrá a que maquina redireccionarla y no le devolverá respuesta alguna. Para esto vamos a abrir una Terminal pulsando con el botón derecho del ratón y siguiendo el menú Aplicaciones -> Consolas -> Bash En nuestro caso creamos una carpeta llamada almacén 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. Para finalizar la configuración de la carpeta que acabamos de crear necesitamos darle permisos para que se pueda escribir.9.1.Capítulo 10. Se pueden agregar usuarios e incluso tener que identificarse en el servidor cuando queramos acceder al recurso compartido.8. Juaramir: Esta sección se completará prontamente 10. Esta es la configuración menos segura ya que puede conectarse cualquiera a nuestro recurso compartido siempre y cuando pueda conectarse físicamente a nuestra red de área local conectando un cable de red a nuestro switch o router. borrar y leer en ella. Configuración Samba sin Entorno Grafico ***(pendiente)*** END. Blog con Wordpress . tar. Servidor GNU/Linux 105 Si han siguiendo este manual sobre como montar un servidor con Ubuntu Server tendrán una maquina preparada para funcionar y servir al publico lo que ustedes quieran.homelinux. en /home/[tu usuario]/ Teclea: $ cd /home/[tu usuario] Descargamos la ultima versión de WordPress Teclea: $ wget http://wordpress.tar. Vamos a situarnos una carpeta más arriba que la que comparte el servidor Web. Para empezar arrancamos nuestro servidor y nos identificamos con nuestro usuario de sistema. La carpeta raíz 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. soporte para PHP y bases de datos MySQL cosas que ya deberían tener funcionado a este punto. Para que funcione correctamente necesitamos un servidor Apache Web Server. Este programa para funcionar necesita una base de datos MySQL que vamos a crear a continuación. Para crear una base de datos tan solo tenemos que seleccionar el botón Base de Datos e introducir el nombre que queramos en la casilla y luego presionar crear .com que registramos anteriormente.gz Como verán se nos ha creado una carpeta llamada wordpress. A continuación vamos a instalar WordPress para montar un Blog y tenerlo como pagina principal al acceder a nuestro servidor.org/latest.Capítulo 10. Vamos a abrir un navegador desde otro computador de nuestra red y vamos a introducir la siguiente dirección http://ipdetuservidor/phpmyadmin (http://prueba.homelinux.gz Luego lo descomprimimos: $ tar xvzf latest.com/phpmyadmin) A continuación introducimos el nombre de usuario y el password. Teclea: $ cd /home/usuario/wordpress/ Creamos una copia de el archivo wp-config-sample.php Ahora vamos a editarlo con el editor nano y lo configuraremos para que WordPress lea y escriba la base de datos que creamos anteriormente Teclea: $ nano wp-config. // Password del usuario Una vez modificados estos datos en negrita por los nuestros guardamos el archivo y salimos con la tecla F2 -> Y -> Enter.php y la llamaremos wp-config. Ahora vamos a copiar todo el contenido de la carpeta wordpress a el directorio raíz 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 gráfico e introducimos http://ipdetuserver y veremos la siguiente pantalla .php wp-config. // Nombre de usuario de MySQL define(’DB_PASSWORD’. ’yourpasswordhere’). // Nombre de la base de datos define(’DB_USER’. 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. úsernamehere’).php En este archivo tan solo tenemos que modificar tres lineas para que use nuestra base de datos MySQL define(’DB_NAME’. ’putyourdbnamehere’).php Teclea: $ cp wp-config-sample.Capítulo 10. .info sobre Servidores en GNU/Linux.10. 10.Capítulo 10. Servidor GNU/Linux 107 Rellenamos las casillas con el nombre y correo electrónico y luego pulsar el botón Install WordPress Y listo!.2.10.10. Lecturas Recomendadas Bloquear Ataques de Fuerza Bruta Pueden proteger mas su servidor web siguiendo este manual: Bloquear Ataques de Fuerza Bruta 10.1. Añadir Host Personalizado Un manual bastante practico para añadir un host personalizado se encuentra regoremor.10. 10.3. ahora solo debes acceder a tu web con http://ipdetuservidor/wp-admin y comenzar a publicar.com 10. Otros Servidores Blog Forat. Capítulo 11 Punto de Restauración con Clonezilla Clonezilla es un programa que nos permite crear imágenes de nuestro disco duro, de modo que después podamos volcarlas en el mismo equipo (a modo de copia de seguridad del sistema) o en otro con iguales características (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 dónde seleccionamos qué tipo de interfaz preferimos. 108 Capítulo 11. Punto de Restauración con Clonezilla 109 Selección del Idioma: Selección del Teclado: Capítulo 11. Punto de Restauración 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 dónde 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. 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. Seleccionamos “savedisk” Le damos un nombre al Archivo que albergará nuestra imagen.Capítulo 11. . restoreparts: restaurar una partición. saveparts: salvar una partición.2. restoredisk: restaurar la imagen de todo el disco. Punto de Restauración con Clonezilla 111 11. respondemos “y” .Capítulo 11. Punto de Restauración con Clonezilla 112 Última pregunta de confirmación antes de comenzar a Crear la imagen. restoreparts: restaurar una partición. saveparts: salvar una partición. Utilizar Imagen para Restaurar Seleccionamos el modo que vamos a emplear: savedisk: salvar la imagen de todo el disco.Capítulo 11. Punto de Restauración con Clonezilla 113 11.3. restoredisk: restaurar la imagen de todo el disco. Seleccionamos “restoredisk” Selección del Disco de la Imagen: Selección del la Imagen: Selección del Disco de Destino: . Espacio y Enter) Teclea y y luego presiona Enter.4. 9. 7. 2.4. esperar a que finalice y luego presionar Enter. 8. 11. 6. 5. 4. 3. Resumen Creación de Imagen Enter Enter Enter Enter Enter Enter Seleccionar Partición del disco externo donde guardar la imagen (Flechas. 12. 10.Capítulo 11. 1. Espacio y Enter) Seleccionar el modo (savedisk o saveparts) Nombre de la imagen y Enter Seleccionar el Disco o partición(es) a respaldar (Flechas. Punto de Restauración con Clonezilla 114 Comienza el Proceso de Restauración: Presiona y para continuar (elimina todo el contenido del disco) 11.1. 11. . 4.Capítulo 11. 12. 6.2. 1. 5. Espacio y Enter) Teclea y y luego presiona Enter. 8. 3. 10. Restauración de Imagen Enter Enter Enter Enter Enter Enter Seleccionar Partición del disco externo donde esta la imagen (Flechas. esperar a que finalice y luego presionar Enter. 7. 11. Punto de Restauración con Clonezilla 115 11. . 9. Espacio y Enter) Seleccionar el modo (restoredisk o restoreparts) Selecciona la imagen y Enter Seleccionar el Disco o partición(es) a restaurar (Flechas. 2. 4.
Copyright © 2024 DOKUMEN.SITE Inc.