1. Introdución
    1. Problema
      1. Se necesita un sistema operativo que satisfasga las necesidades de los clientes
        1. Solución
          1. Windows con problemas
          2. GNU/LINUX con soluciones
          3. Comprende
          4. Núcleo del Sistema Operativo
          5. Aplicaciones
    2. Software Libre
      1. 4 libertades
        1. Libertad de Uso
        2. Libertad de Estudio
        3. Libertad de Distribución
        4. Libertad de Mejorar el Software y Publicarlo
    3. Proyecto GNU 1983
      1. Richard M. Stallman
      2. Software Libre
      3. Licencias GPL y LGPL
      4. Free Software Foundation
    4. Proyecto LINUX 1991
      1. Linus Torvalds
      2. Compatible UNIX
      3. Licenciado bajo GPL
      4. Publicado en Internet
      5. Elemento flotante
    5. No usar software privativo
      1. Seguridad
        1. Virus y fallos
        2. Actualizaciones y Ciclos de soporte
        3. Basado en formatos cerrados/propietarios
      2. Economía
        1. Coste de Adquisición y soporte
        2. Renovación y Licencias
        3. ¡Windows recién instalado es inservible!
      3. Aprendizaje
        1. Se aprende "a manejar X" en lugar de la Materia
        2. Nivel limitado de conocimiento
        3. ¡No puedo compartir el conocimiento!
      4. Control
        1. No puedo controlar algo que desconozco
        2. Personalización Limitada (Muchas veces imposible o mediante software adicional)
        3. Usuarios/Grupos/Permisos
      5. Interdependia
        1. Obligaciones unilaterales (CLUF)
        2. No puedo compartir ni aplicar el conocimiento
        3. El Fabricante es el que controla al usuario, en lugar del Usuario al Producto (TCPA/Palladium y DRM)
      6. Hardware
        1. Requerimientos de hardware elevados
        2. Poca o Nula escalabilidad
        3. Drivers de bajo rendimiento
    6. Problemas de usar software libre
      1. Aprendizaje
        1. Resistencia al Cambio
        2. Elección de la distribución correcta
        3. Necesidad de internet (Actualización, Software y Soporte)
      2. Hardware
        1. Nuevo Hardware no soportado (Excepción AMD64)
        2. Fabricantes no colaboran(no indican si hay compatibilidad ni colaboran con la comunidad)
        3. Elección correcta de distribución
      3. Software
        1. Variedad
        2. Resistencia al cambio
        3. Algunos programas no tienen equivalente
      4. Integracion
        1. Integración Hardware/Software
        2. Integración entre aplicaciones
        3. Integración entre productos Microsoft
    7. Consejos para migrar a LINUX
      1. Linux es DIFERENTE
      2. Sistema de Archivos y ubicación de unidades
      3. Los programas no se instalan como en otros SSOO
      4. El superusuario y los permisos
      5. La Consola: Todo lo que se puede hacer desde el entorno gráfico se puede hacer desde consola, pero no al revés
    8. Distribuciones
      1. Paquetes
      2. Documentacion
      3. Soporte
      4. Actualizaciones
      5. Distribuciones Especificas
        1. Geexbox
        2. Sol
        3. Freesco
      6. Distribuciones Regionales
        1. Linex
        2. Max
        3. Molinux
      7. Debian
        1. Usar debian porque
          1. Una de las más antiguas y Estable
          2. Totalmente Libre e Independiente
          3. Base de usuarios y paquetes muy amplia
          4. Estándar (Linux Standar Base)
          5. Mayor soporte de arquitecturas
          6. Tiene fama de Compleja
      8. Distribuciones famosas
        1. Debian
        2. Ubuntu
        3. Mandriva
        4. Red Hat
        5. Fedora Core
    9. Sistema con aplicaciones GNU y nucleo LINUX
      1. Ejemplos de empresas que lo usan
        1. Google
        2. HP
        3. Oracle
        4. Motorola
        5. Microsoft
  2. Instalación
    1. Particionamiento
      1. Caso 1
        1. Disco vacio
      2. Caso 2
        1. Disco con Windows(NTFS)
      3. Paticionamiento 1
        1. Arranque dual (NTFS-Ext3-Compartida FAT32-swap)
      4. Particionamiento 2
        1. Solo Linux (EXT3-/HOME-swap)
      5. Particionamiento 3
        1. Solo Linux(Servidor Web) (EXT3- /var/www-swap)
      6. GPARTED
    2. Debian
  3. Primeros pasos
    1. Consola y entorno grafico
      1. Nucleo
        1. Linux
        2. Windows
    2. Servidores X
      1. XFree86
      2. Xorg
      3. Xgl
    3. Gestor de Ventanas y Escritorio
      1. Ejemplos de escritorios
        1. GNome
        2. KDE
        3. XFCE
    4. Consola vs entorno grafico
      1. Todo lo que hacemos en el entorno gráfico lo podemos hacer desde la consola
      2. Sencillamente hay tareas y aplicaciones para las que no hay una forma eficiente de realizarlas vía gestión gráfica
      3. No siempre tendremos acceso gráfico al sistema
      4. Lanzar un servicio gráfico consume, lógicamente, muchos más recursos que un acceso vía terminal de texto
    5. Estructura de directorios
      1. /bin y /sbin Ejecutables básicos
      2. /usr y /usr/bin Archivos opcionales y ejecutables generales (/usr/src)
      3. /dev Dispositivos (/dev/hda1, /dev/eth0, /dev/sda1, /dev/null, /dev/zero, /dev/random, /dev/disk/by-...)
      4. /home Archivos de usuarios
      5. Subtem/etc Archivos de configuracióna 5
      6. /lib y /usr/lib Librerías
      7. /proc Sistema virtual de archivos con información del sistema
      8. /tmp Archivos temporales
      9. /boot Imágenes y configuraciones básicas del núcleo
      10. /var Archivos VARIABLES (/var/www , /var/cache/apt/ , /var/log)
      11. /mnt y /media Montaje de dispositivos fijos y removibles
    6. Archivos ocultos
      1. Comienzan con el carácter
      2. Pej: .mozilla .gtk-rc2.0 .fonts
      3. Muy útiles para la configuración de las cuentas de usuario
    7. Permisos
      1. Usuarios
      2. Grupo, Otros
      3. Lectura
      4. Escritura
      5. Ejecucion
      6. Comando ls -1
        1. Tipo de archivo (d = directorio)
        2. Permisos para el usuario, grupo y otros (rwx)
        3. Número de enlaces al archivo/directorio
        4. Propietario y Grupo
        5. Fecha y Hora de la última modificación
        6. Nombre completo del archivo
    8. Usuario Root
      1. Administrador del Sistema
      2. ¡PUEDE HACER CUALQUIER COSA!
    9. Controles basicos, manejos de terminales
      1. Alt+FY: Cambio a terminal Y
      2. Ctr+Z: Tarea pasa a Segundo Plano
      3. jobs: Muestra lista de Tareas
      4. fg [numtarea]: Devuelve la tarea [numbarea] a primer plano
      5. Ctr+C: Aborta la Tarea actual
    10. Ayuda desde terminal
      1. man [comando o archivo]: muestra la página del manual del comando o el archivo requerido.
      2. apropos [expresión]: muestra todos los comandos que encuentre que contengan en su descripción la expresión indicada.
      3. apt-cache search [expresión]: busca paquetes que contengan la expresión indicada en su definición.
    11. Comandos basicos de terminal
      1. ls
      2. cd
      3. mkdir
      4. mv
      5. cp
      6. rm
    12. Comando Basicos: enlaces
      1. ln: Crea un enlace DURO
      2. ln -s: Crea un enlace BLANDO
    13. Controles basicos, manejo de tareas
      1. ps -A: Lista todas los procesos en ejecución
      2. top: Lista los procesos interactivamente
      3. kill -X [ID]: Envía la señal X al proceso ID
    14. Editor VI
  4. Administracion Basica I
    1. Archivos basicos de configuracion
      1. /etc/crontab Tareas programadas
      2. /etc/fstab Montaje del sistema de archivos
      3. /etc/hostname Nombre del sistema
      4. /etc/modules Carga de módulos en el inicio
    2. Archivos basicos de configuracion 2
      1. /etc/hosts.deny Host a los que no se les permite el acceso al sistema
      2. /etc/hosts.allow Host a los que se les permite el acceso al sistema
      3. /etc/apt/sources.list Repositorios o fuentes de paquetes
      4. /etc/cups/cupsd.conf Servidor de Impresión
    3. Archivos basicos de configuracion 3
      1. /etc/rc[X].d/ Scripts que se ejecutan en cada nivel X de ejecución
      2. /etc/samba/smb.conf Configuración de Samba
      3. /etc/udev/udev.rules Reglas de definición de dispositivos para UDEV
      4. /etc/X11/xorg.conf Configuración del entorno gráfico (sistema X)
    4. Archivos basicos de configuracion 4
      1. /boot/grub/menu.lst Configuración del menú de arranque GRUB
      2. /etc/bash.bashrc Se ejecuta cuando cualquier usuario inicia una sesión.
      3. /home/[USER]/.bashrc Se ejecuta cuando el usuario inicia una sesión
      4. /home/[USER]/.xinitrc Se ejecuta cuando el usuario inicia una sesión gráfica.
    5. Logs
      1. /var/log/apt/term.log Log de APT.
      2. /var/log/cups/ Logs del servidor de impresión.
      3. /var/log/debian-installer/ Log de la Instalación de Debian.
      4. /var/log/fsck/ Log de los chequeos de discos
    6. Logs 2
      1. /var/log/samba/ Log de SAMBA
      2. /var/log/auth.log Logs de los accesos al sistema.
      3. /var/log/dmesg Log con mensajes del sistema
      4. /var/log/syslog Log del Sistema.
    7. Logs 3
      1. /var/log/kern.log Log del Kernel.
      2. /var/log/mail.log Logs del sistema de correo (pej. postfix).
      3. /var/log/messages Log de mensajes del sistema
      4. /var/log/Xorg.0.log Log del servidor gráfico
    8. Comandos de log e información
      1. Subtema 1dmesg Muestra mensajes del sistema (no es un cat /var/log/dmesg)
      2. tail -f /var/log/[ARCHIVO] Muestra por pantalla en tiempo real el contenido del archivo [ARCHIVO] (las 10 últimas líneas)
      3. date Muestra la fecha y hora actual del sistema
      4. uptime Muestra el tiempo que lleva funcionando el sistema
    9. Comandos de log e información 2
      1. w Muestra los usuarios conectados actualmente en el sistema
      2. whoami Muestra el nombre del usuario que lo invoca
      3. finger [USUARIO] Muestra información sobre el USUARIO.
      4. cat /proc/cpuinfo Muestra información sobre la CPU.
    10. Comandos de log e información 3
      1. cat /proc/meminfo Muestra información sobre la MEMORIA.
      2. df Muestra información sobre el uso de los discos
      3. du [RUTA] Muestra el espacio usado por los archivos de RUTA
      4. free Muestra información memoria y swap
    11. Gestión de paquetes
      1. Tipos de paquetes
        1. .deb
        2. .rpm
        3. .src
      2. * dpkg -i NOMBRE-DEL-PAQUETE.DEB
      3. * dpkg-reconfigure NOMBRE-DEL-PAQUETE
      4. Topic
      5. * alien --to-deb NOMBRE-DEL-PAQUETE.RPM
      6. * alien --to-rpm NOMBRE-DEL-PAQUETE.DEB
    12. Repositorios
      1. debian
        1. Ramas
          1. * Estable * Pruebas * Inestable (SID) * Experimental
        2. Grupos
          1. * main
          2. * contrib
          3. * non-free
      2. Ubuntu
        1. Grupos
          1. * main
          2. * universe
          3. * multiverse
      3. Añadir repositorios
        1. Basta con añadir las líneas requeridas en /etc/apt/sources.list
    13. APT-GET
      1. * apt-get update
      2. * apt-get search
      3. * apt-get install
      4. * apt-get remove (--purge)
      5. * apt-get show
      6. * apt-get clean
    14. Actualizaciones masivas
      1. apt-get upgrade
      2. Actualiza todos los paquetes a la nueva versión.
      3. apt-get dist-upgrade
      4. Actualiza todos los paquetes a la nueva versión e instala otros nuevos paquetes que estén relacionados con estos.
    15. USUARIOS Y GRUPOS
      1. adduser
      2. Genera usuarios HUMANOS.
      3. adduser --system
      4. Genera usuarios de Sistema.
      5. addgroup
      6. Genera un grupo.
      7. addgroup --system
      8. Genera un grupo de Sistema.
      9. adduser [USUARIO] [GRUPO]
      10. Agrega al usuario [USUARIO] al grupo [GRUPO]
      11. deluser [USUARIO] [GRUPO]
      12. Elimina al usuario [USUARIO] del grupo [GRUPO]
      13. deluser [USUARIO]
      14. Elimina al usuario.
      15. delgroup [GRUPO]
      16. Elimina el grupo.
      17. Cambiar contraseña
        1. passwd [USUARIO]
        2. Cambiar contraseña del usuario [USUARIO].
    16. Permisos
      1. * chmod [OCTAL] [ARCHIVO]
      2. o 4: Lectura
      3. o 2: Escritura
      4. o 1: Ejecución
      5. * chmod [OCTAL] -R [RUTA]
      6. chown [USUARIO] [ARCHIVO]
      7. [USUARIO] será el dueño del archivo [ARCHIVO]
      8. chgrp [GRUPO] [ARCHIVO]
      9. [ARCHIVO] pertenece ahora al grupo [GRUPO]
    17. Servicios del sistema
    18. Trabajando con Servicios
      1. /etc/init.d/NOMBRE-DEL-SERVICIO
      2. Topic
      3. * start
      4. * stop
      5. * restart
      6. * reload
      7. * force-reload
    19. Niveles de ejecución
      1. 0
      2. Parada del sistema
      3. 1
      4. Monousuario sin red
      5. 2
      6. Multiusuario con red
      7. 3
      8. Multiusuario con red y entorno gráfico
      9. 6
      10. Reinicio del sistema
    20. Subtema 20
  5. Administracion Basica II
    1. Red
      1. Utilidades de Red
        1. ping [HOST]
        2. Hace ping y muestra los datos.
        3. whois [DOMINIO]
        4. Información del dominio.
        5. dig [DOMINIO]
        6. Configuración DNS del Dominio.
        7. dig -x [HOST]
        8. DNS inverso de Host.
        9. nmap -sP [X.X.X.*]
        10. Devuelve la lista de IPs activas del rango X.X.X.* .
        11. nmap -sS -O -p [RANGO PUERTOS] [IP]
        12. Devuelve la lista de puertos abiertos de entre el [RANGO] en el sistema con IP [IP].
      2. Utilidades de Red: ifconfig
        1. ifconfig
        2. Información de la configuración de las interfaces de red.
        3. ifconfig eth0 [up | down]
        4. Activa el interfaz eth0 (up) o lo desactiva (down)
        5. ifconfig eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255 up
        6. configura y levanta la interfaz eth0 con IP 192.168.0.1 y con máscara de red y dirección de difusión 255.255.255.0 y 192.168.0.255 respectivamente.
        7. ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 up
        8. Crea un alias de red sobre eth0 lo que permite usar varias IPs sobre el mismo dispositivo.
      3. Utilidades de Red: route
        1. route
        2. Información de la configuración de las rutas de red.
        3. route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0
        4. Añade la ruta 192.168.0.0 a la red 192.168.0.x vía eth0.
        5. route del -net 192.168.0.0 netmask 255.255.255.0 dev eth0
        6. Elimina la ruta 192.168.0.0 a la red 192.168.0.x vía eth0.
        7. route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.15 dev eth0
        8. Añade la ruta 192.168.0.0 a la red 192.168.0.x a través de 192.168.1.15.
      4. Utilidades de Red: netstat
        1. netstat
        2. Muestra diversa información sobre el estado de la red.
        3. configurar estos valores vía /etc/resolv.conf
        4. ip route show sería un equivalente a route y netstat -nr
        5. Topic
        6. ip route add 192.168.2.0/24 via 192.168.1.10 equivaldría a route add -net 192.168.2.0/24 gw 192.168.1.10
        7. Topic
        8. ip route del 192.168.2.0/24 equivale a route del -net 192.168.2.0/24
    2. DISPOSITIVOS, DISCOS Y SISTEMA DE ARCHIVOS
      1. Montar dispositivos
        1. * mount /dev/[DISPOSITIVO] [DIRECTORIO] -t [TIPO FS]
        2. * mount [ARCHIVO.ISO] [DIRECTORIO] -t iso9660 -o loop
        3. * umount /dev/[DISPOSITIVO]
        4. * umount -l /mnt/[DIRECTORIO]
        5. * mount -a
      2. fstab
        1. * /dev/hdb1 /home ext3 defaults 0 1
        2. * /dev/hda2 none swap sw 0 0
        3. * /dev/hdc /media/cdrom iso9660 ro,user,noauto 0 0
        4. * /dev/sde1 /media/pendrive vfat rw,user,exec,noauto 0 0
        5. * /imagen.iso /cdrom1 iso9660 user,loop,noauto,ro 0 0
        6. * /dev/hda1 /media/windows ntfs-3g silent,umask=0,locale=es_ES.utf8 0 0
        7. * //servidor/nombre /media/nombre smbfs username=usuario,password=clave,uid=1000,iocharset=utf8, codepage=unicode,unicode 0 0
      3. Añadir más swap en un fichero
        1. dd if=/dev/zero of=/media/disk/swap bs=1M count=512
        2. Creamos un archivo de 512 megas lleno de ceros.
        3. mkswap /media/disk/swap
        4. Lo convertimos en swap.
        5. swapon /media/disk/swap -p 32767
        6. Lo activamos.
        7. swapoff /media/disk/swap
        8. Lo desactivamos (IMPORTANTE)
      4. Herramientas de Chequeo de discos
        1. fsck.ext3 /dev/[PARTICIÓN]
        2. Chequea la partición indicada como Extendido 3.
        3. fsck.vfat /dev/[PARTICIÓN]
        4. Chequea la partición indicada como FAT32.
        5. fsck.ext3 -ay /dev/[PARTICIÓN]
        6. Chequea y repara automáticamente sin preguntar.
    3. PRIORIDAD, TEMPORIZACIÓN Y PLANIFICACIÓN
      1. Prioridad
        1. nice -n [N] ORDEN
        2. Ejecuta ORDEN con prioridad N.
        3. renice [N] PID
        4. Cambia la prioridad del proceso PID a N.
      2. Procesos "latentes"
        1. nohup ORDEN &
        2. Ejecuta ORDEN, y esta permanecerá en ejecución aunque el usuario abandone la sesión.
      3. Tareas periódicas
        1. * /etc/cron.hourly/
        2. * /etc/cron.daily/
        3. * /etc/cron.weekly/
        4. * /etc/cron.monthly/
      4. Tareas periódicas: crontab
        1. # /etc/crontab
        2. # m h dom mon dow user command
    4. EL KERNEL Y LOS MÓDULOS
      1. uname -a
      2. Muestra información sobre la versión del núcleo (entre otras cosas).
      3. lsmod
      4. Lista los módulos cargados por el kernel.
      5. modprobe MÓDULO
      6. Trata de cargar el módulo MÓDULO.
      7. rmmod MÓDULO
      8. Elimina el MÓDULO del kernel (NO PERMANENTE).
      9. Compilar el Kernel al modo Debian
        1. * apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 debhelper modutils module-init-tools
        2. * cd /usr/src
        3. * wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.X.tar.bz2
        4. * tar xvjf linux-2.6.X.tar.bz2
        5. * ln -s linux-2.6.X linux
        6. * cd linux
        7. * cp /boot/config-2.6.Y .config
        8. * make mrproper
        9. * make menuconfig
        10. * make-kpkg clean
        11. * make-kpkg buildpackage -initrd -rev [SABOR] kernel_image
        12. * ...
        13. * Obtenemos varios paquetes .deb
        14. o Kernel: kernel-image-2.6.X_SABOR_i386.deb
        15. o Cabeceras: kernel-headers-2.6.X_SABOR_i386.deb
        16. o Fuentes: kernel-source-2.6.X_SABOR_i386.deb
        17. * dpkg -i kernel-image-2.6.X_SABOR_i386.deb && shutdown -r now
    5. Trucos del Administrador
      1. Trucos Variados
        1. wget -r -np -k -c URL
        2. Se descarga un mirror recursivo de la URL.
        3. fuser -mav /dev/cdrom
        4. Lista el proceso que está bloqueando el dispositivo cdrom.
        5. fdisk -l
        6. Lista información los discos del sistema.
        7. lspci -v
        8. Muestra información de los dispositivos conectados al bus PCI.
        9. 7za a -mx=9 destino.7z origen
        10. Comprime al máximo de compresión con 7zip.
        11. ssh -p port user@host
        12. Se conecta por ssh al host por el puerto indicado y como el usuario user.
        13. grep patrón archivos
        14. Busca el patrón indicado en los archivos indicados.
        15. comando | grep patrón
        16. Busca el patrón indicado en la salida del comando.
        17. shutdown -h [T]
        18. Apaga el sistema transcurridos T minutos (-r para reiniciar).
        19. ntpdate -u swisstime.ethz.ch
        20. Sincroniza la fecha y hora del sistema con un servidor de tiempo en Internet.
        21. tar cvzf archivo.tar.gz archivos
        22. Comprime los archivos como archivo.tar.gz (GZIP).
        23. tar xzf archivo.tar.gz
        24. Descomprime archivo.tar.gz (GZIP).
        25. tar cvjf archivo.tar.bz2 archivos
        26. Comprime los archivos como archivo.tar.bz2 (BZIP2).
        27. tar xjf archivo.tar.bz2
        28. Descomprime archivo.tar.bz2 (BZIP2).