------------------------------------------
     - Guía de supervivencia Debian GNU/Linux -
     ------------------------------------------
     
     Septiembre de 2005

Sistema de Paquetes APT
-----------------------

Debian proporciona un sistema de paquetes software mediante el cual podremos
descargar e instalar un determinado programa con sólo ejecutar un par de
comandos. Así las tareas más comunes realizadas empleando este sistema de
paquetes es:

Búsqueda de paquetes:

   Sintáxis: apt-cache search   
   Ejemplo : apt-cache search mp3 player

Información detallada sobre un paquete:

   Sintáxis: apt-cache show 
   Ejemplo: apt-cache show mozilla-firefox
   
Descarga de paquetes:

   Sintáxis: apt-get install 
   Ejemplo: apt-get install  mozilla-firefox mozilla-thunderbird xmms
   
Cuando se descarga un paquete puede que éste tenga dependencias con otros,
el sistema de instalación nos advertirá que realizará la instalación de
aquellos paquetes de los cuales depende.

Actualización de la distribución. 

Los mantenedores de  paquetes están actualizando constantemente éstos con las
últimas versiones de los programas. Para actualizar nuestro sistema tendremos 
que actualizar primero la lista de paquetes (update) y después actualizarlo 
(upgrade):

    apt-get update
    apt-get upgrade
   

Fichero /etc/apt/sources.list

En este fichero se encuentra un listado de los repositorios a los cuales se
conecta el sistema de gestión de paquetes para descargar el nuevo software.
La lista consta de entradas como las que siguen:

deb   

Ejemplo:

deb http://toxo.com.uvigo.es/debian/ testing main contrib non-free

En este caso se descargará paquetes de la versión testin (aka Sarge) y los
paquetes que forman parte de las ramas main, contrib y non-free. La fuente
no tiene por qué ser necesariamente una URL de internet, también puede ser
una lectora de CD o un recurso NFS. En general, es más cómoda la primera
opción.


Comandos comunes 
----------------

Es conveniente, poco a poco conocer las órdenes que se emplean más comúnmente
en la línea de comandos de un "shell", sobre todo son de especial utilidad 
cuando se desea realizar algún tipo de administración remota en el que el
uso de programas gráficos es lento debido a un ancho de banda reducido.

 ls, cp, mv -- Listar copiar y mover ficheros
 
 cat, tail, head, less, more -- Muestran el contenido de los ficheros

 top - Muestra lista de procesos en ejecución ordenados por carga de CPU
 
 ps, ps -aux -- Lista los procesos del terminal actual y del sistema,respect.
 
 grep -- filtro de palabras/expresiones. Suele usarse junto con un "pipe"
 
 who -- Muestra qué usuarios hay en el sistema actualmente
 
 df -- Muestra la información sobre las particiones (espacio libre, ocupado...)
 
 du -- Muestra información sobre el espacio ocupado por los ficheros del 
    directorio actual.
        
 tar -xzvf nombrefichero.tar.gz -- Descomprime ficheros gzip
 
 tar -xjvf nombrefichero.tar.bz -- Descomprime ficheros bzip2

 ssh -X venus.tsc.uvigo.es -oPort=1922 -l root
 
Se conecta al puerto 1922 como root con reenvío de comandos X y como usuario
root. El reenvío de comandos X significa que se pueden lanzar programas como
el ethereal. Nótese, que el host al que nos conectamos ha de tener
habilitado el switch XForward en el fichero /etc/ssh/sshd_config y en el
"destktop manager" (léase gdm,kdm o xdm) ha de estar habilitado el XDMCP. En
el caso del gdm, en el fichero /etc/X11/gdm/gdm.conf en la sección [xdmcp]
ha de ponerse a true el switch Enable (Enable=true).

La información sobre los argumentos que recibe un comando se puede obtener
de forma resumida utilizando el argumento --help y de forma extendido usando
su página de manual. Ejemplos:

    grep --help
    man grep
    

Perfiles de Conexiones de Red
-----------------------------

En Linux se puede  configurar un interfaz de red para que utilice unos 
parámetros de configuración específicos de la ubicación. Para ello bastará
con definir una conexión en el fichero /etc/network/interfaces. Este fichero
consta de entradas del estilo:

#para un interfaz ethernet
iface nombre_ubicacion inet static
       address 192.168.0.5
       netmask 255.255.255.0
       gateway 192.168.0.2

#para un interfaz wifi hay que añadir las opciones wireless
# ejemplo interfaz dhcp
iface nombre_wifi inet dhcp
      wireless_mode managed
      wireless_essid CISCO
      wireless_key 01:02:03:04:05
      wireless_rate auto
      wireless_nick zelin

Hay más información sobre el formato así como ejemplos en el directorio:

   /usr/share/doc/ifupdown/examples/

En cuanto a las opciones wireless, símplemente hay que añadir "wireless_" a
las opciones del comando iwconfig. Estas opciones se pueden ver ejecutando:

   iwconfig --help

La información sobre el formato de los argumentos se encuentra en la página
del manual de iwconfig.


A la hora de inicializar un interfaz hay que ejecutar el comando ifup

 ifup eth0=nombre_ubicación
 
Si la ubicación se llama como el propio interfaz bastará con

 ifup eth0
	    
Para deshabilitar el interfaz basta con ejecutar

 ifdown eth0

Los nombres de los interfaces son dependientes del tipo de interfaz,
generalmente suelen llamarse eth0, eth1...para los ethernet y algunas
tarjetas de red inhalámbricas o athX para los interfaces con chip Atheros.
	    
Para ver la información sobre los interfaces que están activos hay que
ejecutar el comando:

  ifconfig
  
Este comando también sirve para modificar los parámetros del interfaz, de
hecho, ifup e ifdown son scripts que emplean este comando a partir del
fichero de configuración. La información que muestra es similar al ipconfig
del WinDoS


Wireless-tools
--------------

Existen unas herramientas incluídas en el paquete wireless-tools, estas
herramientas ofrecen información sobre el estado de las extensiones wireless
de un interfaz wifi. La más importante es iwconfig, con la cuál también se
pueden establecer algunos parámetros del interfaz:

    iwconfig 
    
    Ejemplo: iwconfig ath0
    	     iwconfig ath0 txpower 99
	     iwconfig ath0 channel 6
	     iwconfig ath0 essid pepe
	     iwconfig ath0 mode monitor
	     iwconfig ath0 
    
    
Otras herramientas que también están incluídas:

iwspy -- Estadísticas
iwpriv -- control de las extensiones propias de un módulo concreto
iwlist -- Obtención de información detallada sobre el estado del interfaz.

Los modos en los que se puede configurar el interfaz wifi:

 managed
        El más común, para conectarse a un AP
 ad-hoc
        Usado para conectarse a una red Ad-hoc
 promiscuous
        Modo promíscuo, el usado por los sniffer.Es necesario estar asociado.
 monitor
        Similar al modo promíscuo, pero además también captura tramas
beacom. No se necesita estar asociado a un AP. Usado por detectores de redes
como el kismet.

El modo de trabajo de la tarjeta se establece con el comando iwconfig:
 
     iwconfig mode 

Secuencia de Arranque 
---------------------

El sistema de arranque de los sistemas GNU/Linux está basado en el del Unix
System V. Mediante este mecanismo podemos crear varios perfiles o run
levels, por defecto, en Debian se ejecuta el run level 2 (hay 6, aunque el 0
y el 6 son especiales). Estos perfiles ejecutan un conjunto de scripts
ubicados en el directorio /etc/rcX.d/ donde X es el número de runlevel.
Estos scripts tienen un nombre con el siguiente formato:

  SXXnombre
  
Donde XX indica la prioridad, cuanto menor sea el número mayor prioridad y
por tanto se ejecutará antes. 

Además estos scripts necesariamente han de aceptar como argumentos start
(será usado durante el arranque), stop (usado al apagar o reiniciar),
restart (reinicia el servicio). Estos scripts ya vienen incluidos en los
paquetes asociados a un servicio (por ejemplo, un servidor web) y se
almacenan en 

	  /etc/init.d/
	  
Así, lo que se hace en realidad es en el directorio del runlevel es crear un
enlace simbico. Por ejemplo:

    cd /etc/rc2.d/
    ln -s /etc/init.d/apache S20apache

Creando este enlace simbólico se ejecutará el servicio web en el arranque
del sistema.

El runlevel por defecto se establece en el fichero /etc/inittab


Programas libres equivalentes
------------------------------
firefox, konqueror, mozilla - Navegadores Web
kmail, thunderbird - Clientes de Correo
gftp - Cliente de Ftp
komba2, smb4k - Exploradores de Ficheros compartidos Windows
openoffice - Herramientas de Ofimática (textos hojas de cálculo, presentaciones)
emacs, jed - editores de texto (notepad)
gimp - Editor de Imágenes (estilo photoshop)
ethereal, tcpdump - Sniffers
nmap - Escaneador de puertos 
kismet - Detector de APs
kpdf - Visor de pdf
ggv - Ghost Viewer (PS)
gtksee - Visor de Imágenes
i2e - Diccionario Inglés - Español
dict - Diccionario en Inglés
xmms - Reproductor de mp3
gmix - Control de Sonido
xine, mplayer, totem  - Reproductores de Video/DivX/Xvid
amsn, gaim - Clientes Messenger
octave - Equivalente libre de Matlab
xcdroast - Grabación de CDs

En caso de buscar algún programa que no se encuentre en este listado existe
la página Alternativas Libres en la que introduciendo el nombre del producto
comercial aparece su equivalente libre. 


Buscando más información de ayuda
---------------------------------

Además de las páginas manual y de usar el comando --help suele haber
documentación en 

	      /usr/share/doc/nombre_paquete/

que resulta de especial interés cuando el software en cuestión emplea algún
tipo de fichero de configuración, ya que suelen incluirse ficheros de ejemplo.

Cuando se trata de configurar algún tipo de hardware la mejor opción suele
ser buscar alguien que ya haya intentado configurar ese mismo hardware en
Debian. Con poner la marca y model del dispositivo seguido de Debian en un
buscador suele ser suficiente. Tampoco podemos olvidar los conocidos HOW-TOs
(o Cómos)

A la hora de configurar un servicio (ftp, httpd, streaming etc...) la
información suele encontrarse en la propia página del servicio, aunque
también suele ser de ayuda la búsqueda de tutoriales. Una página en la que
suelen encontrarse tutoriales (generalmente para Debian) es BULMA. Usando
google con el nombre del servicio y el argumento bulma es un punto de inicio.