Está en la página 1de 328

Introduccin a Linux

Version imprimible
Este documento deber servir exclusivamente como material de apoyo
al contenido del curso interactivo accesible a travs de internet.

Indice
Evaluacin inicial...................................................................... 4
Presentacin........................................................................... 5
Ejemplos................................................................................ 6
Mdulo I. Introduccin............................................................... 7
Introduccin......................................................................... 7
Instalacin........................................................................... 9
Historia.............................................................................. 11
Entornos de trabajo.............................................................. 14
Prctica: Consola................................................................. 21
Distribuciones...................................................................... 21
Autoevaluacin: Distribuciones................................................. 24
Sopa de letras.................................................................... 25
Evaluacin primera.................................................................. 26
Mdulo II. rdenes comunes..................................................... 27
Instrucciones habituales......................................................... 27
Sintaxis de las rdenes......................................................... 31
Autoevaluacin: Comandos..................................................... 38
Prctica: Primeros comandos.................................................. 38
Sistema de ficheros.............................................................. 38
Instrucciones de ficheros........................................................ 45
Instrucciones de ficheros..................................................... 45
Inspeccionar.................................................................... 45

Plataforma de Teleformacin de IFES Pgina 1 de 328


Crear............................................................................. 51
Modificar......................................................................... 55
Borrar.............................................................................55
Autoevaluacin: Ficheros..................................................... 56
Prctica: Ficheros................................................................ 58
Instrucciones de texto........................................................... 58
Prctica: Manejo de texto....................................................... 68
Instrucciones tiles............................................................... 68
Bsqueda de archivos........................................................... 77
Empaquetado de archivos...................................................... 78
Autoevaluacin: rdenes comunes........................................... 79
Sopa de letras.................................................................... 80
Cuestionario de evaluacin procesual........................................... 81
Evaluacin segunda................................................................ 82
Mdulo III. rdenes avanzadas.................................................. 83
Redirecciones..................................................................... 83
Concatenar rdenes..............................................................92
Uso de variables.................................................................. 95
Uso de comillas................................................................... 96
Estructuras de control........................................................... 96
Autoevaluacin: Comandos avanzados...................................... 98
Prctica: Comandos avanzados............................................... 99
Editores de texto.................................................................. 99
Sopa de letras................................................................... 102
Animacin: opciones avanzadas - redireccin............................. 102
Evaluacin tercera................................................................. 103
Prctica final........................................................................ 104
Evaluacin final.....................................................................105
Bibliografia........................................................................... 106
Glosario.............................................................................. 107
F.A.Q.................................................................................. 120

Pgina 2 de 328 Introduccin a Linux


Introduccin e informacin general.......................................... 120
Antes de la instalacin......................................................... 123
Durante la instalacin.......................................................... 133
Sobre LILO....................................................................... 139
Kernel / Ncleo.................................................................. 146
X-windows / Entornos grficos................................................151
Administracin................................................................... 158
Internet / Redes / Modems.................................................... 170
Comandos bsicos..............................................................187
Apndices (Conceptos bsicos)................................................. 192
Qu es un sistema operativo?.............................................. 192
Qu es el software libre?.................................................... 193
Por qu usar software libre?................................................ 196
Licencias de software libre.................................................... 197
Internet y herramientas de red............................................... 253
Introduccin a MySQL......................................................... 283
Grabacin de cds.............................................................. 316
Programacin en Bash......................................................... 320

Plataforma de Teleformacin de IFES Pgina 3 de 328


Introduccin a Linux

Evaluacin inicial
Este recurso es de tipo Evaluacin.
Debe conectarse a la plataforma para realizar la evaluacin. Recuerde que las
evaluaciones son obligatorias ya que determinan la nota final.

Pgina 4 de 328 Introduccin a Linux


Introduccin a Linux

Presentacin

Reciba la bienvenida al curso de Linux


Para aprender un sistema operativo como Linux es fundamental practicar mucho
su uso. Normalmente, cuando alguien empieza a aprender Linux se encuentra con
algunas aparentes dificultades (dnde est esto, cmo se accede a lo otro...) que
pueden hacernos desmotivarmos. Afortunadamente, en nuestro curso contamos con un
tutor que nos resolver cualquier duda y tenemos un foro donde podremos compartir
experiencias con nuestros compaeros del curso.

No dudes en preguntar al tutor o escribir en el foro.

A continuacin le pedimos que rellene la ficha de datos personales.

Despus debe descargar el recurso llamado "ejemplos" del curso. Es muy importante
probarlo todo, hacer todos los ejercicios, modificarlos, probarlos, preguntar al tutor
cualquier duda o comentar las impresiones en el foro.

Plataforma de Teleformacin de IFES Pgina 5 de 328


Introduccin a Linux

Ejemplos
Este recurso es de tipo Multimedia.
Tiene que conectarse a la plataforma para acceder a este recurso.

Pgina 6 de 328 Introduccin a Linux


Introduccin a Linux

Mdulo I. Introduccin
Introduccin

Opciones, muchas opciones


Bajo el nombre Linux se encuentran muchas opciones que podemos elegir al usar
nuestro ordenador. Podemos elegir el tipo de kernel, shell, entorno grfico, distribucin,
programas de ofimtica, etc.

No te preocupes si alguno de estos nombres no sabes qu son, puedes mirarlos en el


glosario o ya los iremos aprendiendo poco a poco.

Vamos a aprender a manejar Linux mediante comandos de texto;tambin se puede


hacer mediante el ratn con programas basados en ventanas (tenemos muchas
opciones), pero el sistema de ventanas es muy parecido al de Windows o al de
Macintosh y es muy sencillo aprenderlo por nuestra cuenta.

Pero si es tan sencillo el mtodo grfico,por qu


vamos a utilizar el arcaico sistema de texto?
El sistema de trabajo basado en texto es arcaico y es ms difcil de aprender que el
utilizar programas grficos, pero una vez que hemos aprendido podemos hacer ms
cosas en menos tiempo que con el mtodo grfico.

Curva de aprendizaje
La curva de aprendizaje es un grfico que nos gusta mucho a los profesores; muestra
cunto esfuerzo es necesario para lograr aprender a hacer algo.

Plataforma de Teleformacin de IFES Pgina 7 de 328


En esta imagen podemos ver que cuando llevamos poco tiempo aprendiendo el
entorno de texto, el resultado es muy pequeo, podemos hacer muy pocas cosas, y
a nadie se le ocurre decirle a los amigos: "hoy he aprendido a borrar un archivo". Por
el contrario,al poco tiempo de trabajar con un entorno grfico (Windows, Macintosh
o Linux), ya podemos hacer lo fundamental y podemos poner en nuestro currculum
"usuario avanzado".

Lo que tambin se puede ver en la curva de aprendizaje es que cuando llevamos


ms tiempo aprendiendo conseguimos hacer tareas que no se puede hacer en modo
grfico.

De todas maneras, como en Linux podemos elegir,podemos usar al mismo tiempo


rdenes de teclado y el sistema grfico, por lo que conseguimos unir lo mejor de ambos
mundos, ser un Usuario avanzado y llegar a ser un Usuario experto.

Todos los ejemplos de cdigo estn almacenados


en un archivo en el recurso multimedia
llamado "Ejemplos", al principio del temario.
Descrgalo y descomprmelo con la orden tar
xzvf ejemplos.tar.gz. Puedes ver el contenido

Pgina 8 de 328 Introduccin a Linux


de cualquiera de los ejemplos con la orden cat
nombreDelArchivo , y puedes ejecutarlo con la
orden sh nombreDelArchivo.

Instalacin
Aprender a instalar en profundidad un sistema Linux no es un objetivo de este curso.
Sin embargo,practicar las rdenes de Unix es fundamental para el aprendizaje de este
curso, por esto vamos a dar unas pequeas nociones sobre cmo instalar Linux.

Conseguir una distribucin


El primer paso es conseguir una distribucin, una coleccin de programas que forman
el sistema operativo y otros programas.

Comprar
Se puede comprar (que sean libres no significa que no se puedan vender, lo que no
se puede hacer es limitar el derecho de copia), as que puedes ir a un distribuidor de
informtica y comprar una distribucin grande;no son muy caras y vienen con manuales
muy tiles.

Comprar una revista en el quiosco


En casi todas las revistas de Linux viene incluido un CD-ROM con una distribucin de
Linux.

Descargarla de Internet
Tambin se pueden descargar los CD-ROMs de Internet y despus grabarlos. Aqu
tenemos una lista de lugares donde se pueden descargar varias distribuciones:

Mandriva, versin live y para instalar, en CD-ROMs o en DVD.


Open Suse Tambin varias opciones.
Fedora La distribucin libre de RedHat.
Knoppix. La distribucin live original.

Plataforma de Teleformacin de IFES Pgina 9 de 328


Que te la enven gratis a tu casa
La distribucin *Ubuntu* no slo dejan descargar y copiar sino que te la envan a casa
pagando ellos el transporte!, les cuesta unas tres semanas.

Instalacin completa
La instalacin completa en disco duro es complicada porque normalmente querremos
tener Linux y mantener Windows, y cuando instalamos Windows, este sistema
operativo ocup todo el espacio en disco duro para l.

Antes de instalar Linux en un ordenador que ya tiene Windows es necesario hacer una
copia de seguridad de todos nuestros datos, los programas se pueden volver a instalar,
pero las fotos digitales de las vacaciones pasadas no las podremos recuperar si se
borran durante el proceso.

Las distribuciones modernas permiten instalar Linux en el espacio que no est


utilizando Windows y normalmente no dan ningn problema, pero hacer copias de
seguridad nunca est de ms.

Una vez que est instalado el ordenador al arrancar nos preguntar con cul de los
sistemas operativos queremos trabajar. Se lo indicamos con las teclas de las flechas
arriba o abajo y la tecla enter cuando est seleccionada la opcin correcta.

Ejecucin live
Para ejecutar una distribucin live, es necesario decirle al ordenador que cuando
arranque busque el sistema operativo en el CD-ROM, y si no hay ninguno que lo
busque en el disco duro.

El programa que se pone en marcha al encender el ordenador se le llama "la BIOS" y


se puede acceder pulsando la tecla Supr en algunos ordenadores, en otros es con la
tecla F1 y en otro es con la tecla F2.

Este programa se maneja con las teclas de las flechas, la tecla enter para hacer
cambios.

Pgina 10 de 328 Introduccin a Linux


El nico dato que nos interesa cambiar es la secuencia de arranque, (boot sequence).
En esta secuencia van los dispositivos donde va a buscar el sistema operativo. Le
pondremos como primera opcin el CD-ROM, para que si encuentra uno puesto, con
sistema operativo, lance ste. Como segunda opcin pondremos el disco duro (HD),
para que cuando no queramos arrancar en Linux, saquemos el CD y el ordenador
arranque con el sistema operativo que tenemos instalado.

Historia
Conocer un poco la Historia de estos sistemas operativos no es fundamental, pero
nos aporta un poco de perspectiva para organizar algunos conceptos con los que
trabajaremos en el curso.

Plataforma de Teleformacin de IFES Pgina 11 de 328


Multics
Multics era un sistema operativo multiusuario y multiproceso (de ah le viene el
nombre) que se intent hacer en los laboratorios Bell a mediados de los aos 60 y que
nunca lleg a funcionar.

Unix
Unos ingenieros, en su tiempo libre ,hicieron por su cuenta una versin reducida del
sistema Multics y como chiste le llamaron Unix ,en contraposicin al sistema que no
llegaron a hacer.

En los aos siguientes varias empresas realizaron sus propias versiones de Unix
como IBM, HP, Apple, Santa Cruz Operation o Digital para grandes ordenadores.

GNU

A mediados de los 80 surge el movimiento en apoyo del software libre con el proyecto
GNU.

Pgina 12 de 328 Introduccin a Linux


GNU es una sigla recursiva y con un significado chocante; GNU es "GNU is Not Unix",
en espaol "GNU No es Unix". Es un proyecto que intenta hacer un sistema que
funcione como Unix pero volviendo a programar cada programa necesario para su
funcionamiento. La mayor parte de las rdenes que vamos a ver en este curso las han
hecho bajo el proyecto GNU.

Linux

A principio de los aos 90 GNU tena preparados editores de caracteres, compiladores,


intrpretes de comandos y otras utilidades necesarias para desarrollar un sistema
operativo, pero el programa principal, el kernel, que se encarga de los usuarios, la
ejecucin de los programas, su relacin con la memoria y los discos duros, se les
retrasaba (en el ao 2006 todava no lo han terminado).Un estudiante finlands llamado
Linus Torwalds program uno sin las especificaciones que se haban impuesto los
desarrolladores de GNU, pero que funcionaba.

Plataforma de Teleformacin de IFES Pgina 13 de 328


En 1992 Linus Torwald adopt la licencia GPL para el kernel: el ncleo ya era libre;a
partir de este punto ,el crecimiento de este sistema en variedad y utilizacin est siendo
exponencial.

Entornos de trabajo
En Linux tenemos la oportunidad de trabajar en modo texto (consola) o en modo
grfico (con ventanas), as podremos elegir un mtodo u otro y poder cambiar cuando
queramos.

Entornos de consola
El entorno de consola no es MS-DOS. El entorno de consola de Unix es mucho ms
rico y poderoso.

Dentro del entorno de consola tambin podemos elegir entre varios sistemas, aunque el
ms utilizado y el que vamos a estudiar en este curso es el shell llamado Bash.

Maneras en las que se puede utilizar el entorno de consola:

Sistemas Linux sin entorno grfico.

Pgina 14 de 328 Introduccin a Linux


Instalando Cygwin en ordenadores con Windows.
Utilizando un programa emulador de consola en Linux con sistemas grficos
podemos poner en marcha varios programas que nos ponen una consola en
una ventana, (Konsole, xterm, Gnome-Term, etc).
Pulsando la tecla F1 (o F2 ... F5) mientras mantenemos pulsadas las
teclas Control y Alt. En este caso siempre podemos volver al modo grfico
pulsando Control + Alt + F7.

Entornos grficos
En Linux, tenemos multitud de entornos de trabajo grficos

WindowMaker
Blackbox
IceWM
XFCE
Gnome
KDE

Plataforma de Teleformacin de IFES Pgina 15 de 328


WindowMaker

BlackBox

Pgina 16 de 328 Introduccin a Linux


recomendables cuando ya se tenga experiencia y se quiera experimentar con mtodos
diferentes de poner en marcha los programas, ver el correo, manejar las ventanas, etc.

Plataforma de Teleformacin de IFES Pgina 17 de 328


Gnome

KDE

Pgina 18 de 328 Introduccin a Linux


recursos del ordenador (memoria y velocidad); son los recomendados para empezar a
no ser que se est trabajando con un ordenador lento.

Plataforma de Teleformacin de IFES Pgina 19 de 328


IceWM

XfCE

Pgina 20 de 328 Introduccin a Linux


Prctica: Consola
Este recurso es de tipo Prctica.
Tiene que conectarse a la plataforma para acceder a este recurso.

Distribuciones
Los sistemas operativos propietarios, como Windows, estn desarrollados por
empresas como Microsoft y esta empresa es la que realiza los CDs y los vende.

En el campo de Linux, no hay una nica empresa que lo desarrolle, sino que hay miles
de programadores, sin ninguna relacin entre ellos que van creando y modificando los
programas que funcionan en Linux. Como estos programas estn a disposicin de
cualquiera que los quiera utilizar, surgieron las distribuciones, que son recopilaciones
de programas y utilidades que forman el sistema Linux.

Como los programas que se incluyen en una distribucin son libres, la empresa que
realiza la distribucin no puede limitar el derecho de copia, slo pueden prohibir la
copia de programas que haya realizado dicha empresa y no haya liberado, as como
logotipos, marcas, etc.

Distribuciones comerciales o de organizaciones


Hay varias empresas que se dedican a recopilar, personalizar, comprobar que
funcionan bien de forma conjunta y empaquetar programas para conseguir
distribuciones de Linux.

Estas empresas tienen como objetivos vender las distribuciones o los servicios de
mantenimiento y personalizacin a organizaciones o a usuarios finales.

Las distribuciones ms importantes actualmente son:

Plataforma de Teleformacin de IFES Pgina 21 de 328


RedHat busca acceder al mercado de los servidores para empresas.

Suse y Mandriva son distribuciones enfocadas para el usuario final.

Pgina 22 de 328 Introduccin a Linux


Debian es una distribucin que est hecha por programadores que slo intenta el
desarrollo del software sin cortapisas.

Ubuntu: recientemente ha surgido esta distribucin que es de una empresa, pero est
basada en la de Debian y pretende ser muy sencilla y permanecer libre.

Distribuciones temticas
Como no hay apenas restricciones a la creacin de distribuciones, se van creando
distribuciones con objetivos de lo ms variopinto.

Distribuciones enfocadas a un sector de la informtica concreto:

Bioknoppix: programas de uso en bioinformtica.


NetBSD: enfocado en una seguridad estricta.
FreeBSD: enfocado a la estabilidad del sistema.
Media Linux: programas multimedia.
GhostWriter: distribucin con herramientas para escritores.
Oralux: distribucin para ciegos (interfase mediante audio).
JuegaLinex: juegos.

Plataforma de Teleformacin de IFES Pgina 23 de 328


Tambin hay distribuciones adaptadas a un idioma o zona del mundo,;existen
distribuciones centradas en el bengal o hebreo y distribuciones para prcticamente
cada autonoma espaola, as comopara varias localidades.

Podemos buscar todas las distribuciones Linux que queramos en http://


distrowatch.com/

Distribuciones live

Las distribuciones live son recopilaciones de programas que estn listas para funcionar
sin necesidad de instalar nada en el disco duro, no lo modifican de ninguna manera.

La primera distribucin live fue Knoppix, que ya va por la versin 4.0, se desarroll
para demostrar a los usuarios las posibilidades y facilidad de uso de Linux.

Actualmente tenemos multitud de distribuciones live para:

Demostraciones de Linux o de funcionamiento de programas.


Distribuciones con herramientas de recuperacin de datos.
Distribuciones para poder trabajar sin tener que realizar instalaciones o en
ordenadores que no tienen disco duro.

Autoevaluacin: Distribuciones

Un par de preguntas a ver si te has ledo esta leccin.


Pregunta 1:
Qu distribucin est desarrollada por un grupo de programadores, sin

empresa?
Ubunto
Debian
Mandriva

Pgina 24 de 328 Introduccin a Linux


RedHat

Respuesta correcta: Debian

Pregunta 2:
Qu distribuciones estn enfocadas al entorno empresarial?

Respuesta correcta: RedHat y SuSe

Sopa de letras
Este recurso es de tipo Multimedia.
Tiene que conectarse a la plataforma para acceder a este recurso.

Plataforma de Teleformacin de IFES Pgina 25 de 328


Introduccin a Linux

Evaluacin primera
Este recurso es de tipo Evaluacin.
Debe conectarse a la plataforma para realizar la evaluacin. Recuerde que las
evaluaciones son obligatorias ya que determinan la nota final.

Pgina 26 de 328 Introduccin a Linux


Introduccin a Linux

Mdulo II. rdenes comunes


Instrucciones habituales

Comenzamos a escribir
Empezamos a trabajar con Linux, tenemos una pantalla negra (puede ser de otro
color) que hemos sacado en el men terminales (o xterm o kterm), o hemos pulsado las
teclas Control, Alt y F1 al mismo tiempo (en este caso, volvemos al modo grfico con
Control + Alt + F7).

Despus de escribir el nombre de usuario y la clave (si nos la pide), nos encontramos
un texto que sirve para indicarnos que el sistema est esperando que escribamos una
orden, a este texto le llamaremos "prompt" y lo representaremos en este curso con el
smbolo del dlar (en tu Linux puede ser diferente).

escribimos nuestra primera orden:

$ date

y al darle a la tecla de retorno (o entrar o return ), obtenemos:

$ date
Wed Nov 23 13:22:21 2005
$

Plataforma de Teleformacin de IFES Pgina 27 de 328


Cuando hemos pulsado la tecla retorno le hemos indicado al sistema que la orden
estaba completa, la ha ejecutado y nos ha mostrado el resultado de la ejecucin
en la siguiente lnea, la fecha y la hora actual, y en la lnea siguiente ha vuelto a
aparecer el prompt para indicarnos que est preparado para la siguiente tarea que se le
encomiende.

Errores de escritura
Vamos a escribir una orden incorrectamente para ver qu sucede:

$ dates

al pulsar retorno nos aparece un mensaje parecido al siguiente:

$ dates
sh: dates: command not found
$

Cuando nos equivoquemos nos aparecern mensajes de error indicando:

Que no se conoce la orden, porque no est instalada o porque la hemos


escrito mal.
Que no conoce los argumentos o que estn mal escritos.
Que no puede realizar la orden, por ejemplo que no puede borrar un archivo
que est en un CD-ROM.

Atajos de teclado
En los entornos grficos un atajo de teclado es una combinacin de teclas que hace lo
mismo que un men.

En el entorno de consola, realmente son atajos para no tener que escribir las rdenes
completas.

Sin estos atajos el trabajo con el teclado sera muy tedioso, es muy importante que se
conozcan y se utilicen constantemente.

Auto completado
El auto completado se activa cuando tenemos un comando o nombre de archivo escrito
a medias y pulsamos la tecla tabulador (tab).

Pgina 28 de 328 Introduccin a Linux


Si cuando pulsamos slo hay una orden que empiece como lo que hemos
escrito, el sistema la escribe.
Si hay varias posibilidades que casan tendremos que volver a darle al
tabulador y nos mostrar las diferentes posibilidades.

Vamos a ver un ejemplo, la pulsacin de la tecla tabulador la marcaremos como


(tab), no aparecern las letras t, a y b en la pantalla. Normalmente la tecla tabulador
est a la izquierda del teclado, encima de la tecla de bloqueo de maysculas y tiene
dibujadas unas flechas horizontales.

Unix distingue entre maysculas y minsculas, asegrate de que estn tal y como las
escribimos aqu.

$ rmd(tab)/e(tab)X(tab)xin(tab)

El texto que tiene que haber aparecido es:

$ rmdir /etc/X11/xinit/

Hemos pulsado 13 teclas y tenemos 21 caracteres, el utilizar el auto completado nos


ahorra alrededor de un 50% de pulsaciones.

Por cierto la orden anterior intentar borrar un directorio de configuracin del sistema,
pero si no tenemos permisos o no est vaco nos dar un error y no lo borrar, pero por
si acaso en lugar de darle a la tecla control , anularemos la orden manteniendo pulsada
la tecla control (Ctrl ) y pulsamos una vez la tecla c.

Para no ejecutar una orden que hemos escrito pulsamos Ctrl + c

Qu sucede cuando hay varias rdenes o archivos que comienzan igual? Al darle
al tabulador el sistema no sabe cul de ellos poner, pone las letras que puede y nos
avisa con un pitido, podemos forzarle a que nos muestre las diversas opciones con
una segunda pulsacin sobre el tabulador (tab), escribir unas letras para que diferencie
entre las opciones posibles y volver a darle al tabulador.

Ejemplo: escribimos:

$ ls /usr/i(tab)

el sistema encuentra en el directorio /usr los directorios que empiezan por i include e
info, como los dos empiezan por i y luego n , el sistema pone la n y nos indica que no
sabe cul de los dos poner con un pitido, si le damos una segunda vez al tabulador nos
indica cules son las opciones:

Plataforma de Teleformacin de IFES Pgina 29 de 328


$ ls /usr/in(tab)(tab)
include/ info/
$ ls /usr/inc(tab)

escribimos una letra (c) que rompa el empate y volvemos a pulsar (tab); ahora el
sistema no tiene dudas y nos mostrar el directorio /usr/include.

Recuperacin de rdenes
En el entorno de texto que estamos trabajando se almacenan las rdenes que vamos
escribiendo.Para recuperarlas pulsamos las teclas flecha-arriba o flecha-abajo, y
cuando las tengamos en pantalla pulsamos retorno.

Tambin podemos recuperar una orden antigua y modificarla para que se ejecute con
otras opciones o sobre otros ficheros.

$ ls -l
total 0
drwxr-xr-x+ 3 felix Ninguno 0 Nov 29 14:18 bin
drwxr-xr-x+ 4 felix Ninguno 0 Nov 30 10:19 cursos
drwxr-xr-x+ 4 felix Ninguno 0 Nov 30 12:04 tmp
$ ls -l /usr
total 0
drwxrwxrwx+ 8 ifes Usuarios 0 Nov 21 13:59 X11R6
drwxrwxrwx+ 3 ifes Usuarios 0 Nov 30 08:59 bin
drwxrwxrwx+ 7 ifes Usuarios 0 Nov 21 13:59 doc
drwxrwxrwx+ 2 ifes Usuarios 0 Nov 21 10:45 etc
drwxrwxrwx+ 23 ifes Usuarios 0 Nov 21 14:01 include
drwxrwxrwx+ 2 ifes Usuarios 0 Nov 21 10:45 info
drwxrwxrwx+ 18 ifes Usuarios 0 Nov 21 14:01 lib
drwxrwxrwx+ 5 ifes Usuarios 0 Nov 21 10:45 local
drwxrwxrwx+ 6 ifes Usuarios 0 Nov 25 10:30 man
drwxrwxrwx+ 3 ifes Usuarios 0 Nov 23 09:01 sbin
drwxrwxrwx+ 35 ifes Usuarios 0 Nov 23 09:01 share
drwxrwxrwx+ 2 ifes Usuarios 0 Nov 21 10:45 src
drwxrwxrwx+ 6 ifes Usuarios 0 Nov 21 14:00 ssl
drwxrwxrwx+ 2 ifes Usuarios 0 Nov 21 10:45 tmp
drwxrwxrwx+ 7 ifes Usuarios 0 Nov 24 12:50 var
$ ls -l /usr/X11R6
total 0
drwxrwxrwx+ 2 ifes Usuarios 0 Nov 23 14:26 bin

Pgina 30 de 328 Introduccin a Linux


drwxrwxrwx+ 5 ifes Usuarios 0 Nov 21 13:59 doc
drwxrwxrwx+ 8 ifes Usuarios 0 Nov 21 13:59 include
drwxrwxrwx+ 4 ifes Usuarios 0 Nov 21 13:59 lib
drwxrwxrwx+ 5 ifes Usuarios 0 Nov 21 14:00 man
drwxrwxrwx+ 5 ifes Usuarios 0 Nov 21 13:59 share

En este ejemplo, la primera vez hemos escrito ls -l , la segunda vez flecha arriba
(espacio)/usr, con lo que hemos obtenido ls -l /usr, y la tercera vez flecha arriba /X11R6,
con lo que hemos obtenido ls -l /usr/X11R6.

Las rdenes que escribimos se almacenan en un archivo, y las recuerda de una sesin
a otra aunque se haya apagado el ordenador.

Sintaxis de las rdenes

rdenes simples
Hay muy pocas rdenes que tengan utilidad al emplearse sin modificadores ni
argumentos.Suelen dar informacin del sistema.Las ms habituales estn en el
siguiente listado:

$ pwd
/home/ifes
$ ls
RCS
bin
cursos
tmp
$ ps
PID PPID PGID WINPID TTY UID STIME COMMAND
1484 1 1484 1484 con 1001 13:22:17 /usr/bin/bash
964 1484 964 1676 con 1001 13:22:25 /usr/local/bin/screen
1612 964 1612 1612 ? 1001 13:22:25 /usr/local/bin/screen
1672 1612 1672 1460 0 1001 13:22:25 /usr/bin/sh
1804 1672 1804 1500 0 1001 13:49:22 /usr/bin/vim
1816 1612 1816 1568 1 1001 13:52:43 /usr/bin/sh
540 1816 1208 540 1 1001 14:01:41 /usr/bin/sh
1620 540 1208 1588 1 1001 14:01:41 /usr/bin/ps
$ date
Thu Nov 24 14:01:41 2005

Plataforma de Teleformacin de IFES Pgina 31 de 328


$ who
felix cesar josemi

Si practicas obtendrs resultados diferentes;vamos a ver qu hacen estas rdenes:

pwd: nos indica en qu directorio estamos.


ls: hace un listado de los archivos y directorios que hay en el directorio
donde nos encontramos.
ps: saca la lista de procesos que se estn ejecutando en este momento.
date: nos indica la fecha y la hora actual.
who: nos dice quin est conectado en este ordenador.
cal: saca un calendario.

Opciones
Las opciones son letras o textos que se ponen detrs de la orden,normalmente con
espacios y guiones.

Hacen que el funcionamiento de la orden sea diferente del original.

Veamos unos ejemplos:

$ date
Thu Nov 24 14:36:18 2005
$ date -u
Thu Nov 24 13:36:18 UTC 2005
$ date --iso-8601
2005-11-24

date: Muestra la fecha y la hora en el formato por defecto.


date -u: Muestra la fecha y la hora en formato universal (fjate que muestra
una hora menos si ests en la zona horaria de Madrid con horario de
invierno).
date --iso-8601: Muestra la fecha sacando primero el ao, el mes y el da.

Cuando la opcin est formada por una letra se suele poner un guin delante;cuando
es una opcin larga se suelen poner dos guiones, pero esto no es estndar y depende
de la orden de que se trate.

Se pueden poner ms de una opcin y son equivalentes las siguientes rdenes:

$ ls -l -h
total 0

Pgina 32 de 328 Introduccin a Linux


drwxr-xr-x+ 2 ifes Ninguno 0 Nov 24 12:05 RCS
drwxr-xr-x+ 3 ifes Ninguno 0 Nov 23 13:48 bin
drwxr-xr-x+ 4 ifes Ninguno 0 Nov 24 09:03 cursos
drwxr-xr-x+ 2 ifes Ninguno 0 Nov 24 14:51 tmp
$ ls -h -l
total 0
drwxr-xr-x+ 2 ifes Ninguno 0 Nov 24 12:05 RCS
drwxr-xr-x+ 3 ifes Ninguno 0 Nov 23 13:48 bin
drwxr-xr-x+ 4 ifes Ninguno 0 Nov 24 09:03 cursos
drwxr-xr-x+ 2 ifes Ninguno 0 Nov 24 14:51 tmp
$ ls -lh
total 0
drwxr-xr-x+ 2 ifes Ninguno 0 Nov 24 12:05 RCS
drwxr-xr-x+ 3 ifes Ninguno 0 Nov 23 13:48 bin
drwxr-xr-x+ 4 ifes Ninguno 0 Nov 24 09:03 cursos
drwxr-xr-x+ 2 ifes Ninguno 0 Nov 24 14:51 tmp
$ ls -hl
total 0
drwxr-xr-x+ 2 ifes Ninguno 0 Nov 24 12:05 RCS
drwxr-xr-x+ 3 ifes Ninguno 0 Nov 23 13:48 bin
drwxr-xr-x+ 4 ifes Ninguno 0 Nov 24 09:03 cursos
drwxr-xr-x+ 2 ifes Ninguno 0 Nov 24 14:51 tmp

Da igual poner antes la opcin l o la opcin h .


Las opciones cortas (de una sola letra) se pueden combinar y escribir -lh o
-hl , con un slo guin.

Argumentos
Los argumentos son textos o nombres de archivos que se pasan a la orden para que
los procese (que haga algo con ellos).

En los dos ejemplos siguientes vamos a utilizar argumentos para la funcin date del
tipo cadena de texto.

$ date -d 1-may
Sun May 1 00:00:00 2005
$ date -d 1-dec-2005
Thu Dec 1 00:00:00 2005
$ date -r /etc/passwd
Mon Nov 21 10:45:48 2005

Plataforma de Teleformacin de IFES Pgina 33 de 328


En los dos primeros ejemplos utilizamos la opcin -d para que nos saque por pantalla
la fecha que le pasamos como argumento, en lugar de la fecha actual;as nos sacar la
fecha del 1 de mayo de presente ao o la fecha del 1 de diciembre de 2005.

Como el sistema en el que estoy trabajando est en ingls, los nombres de los meses
tienen que estar en ingls (la abreviatura de mayo, may, en ingls es igual que en
espaol, pero para diciembre hemos tenido que poner dec).

Comprueba cmo est instalado el idioma en tu sistema con los resultados que
devuelve date.

En el tercer ejemplo modificamos el comportamiento de date con la opcin -r , que


hace que en lugar de sacar la fecha actual, saque la fecha de la ltima vez que se ha
modific un archivo. En este ltimo ejemplo el argumento es un fichero.

Acurdate de utilizar los tabuladores para acabar las


rdenes y los nombres de los directorios y archivos.

Comodines
El uso de los comodines lo hace el sistema operativo, que busca los archivos que
tengan la forma que case con los comodines y se los pasa al programa, as que todos
los programas admiten comodines.

Los comodines de la baraja son naipes que pueden tomar el valor que nos apetezca en
juegos como el pquer o el rabino.

En la lnea de comandos los comodines son:

El asterisco ( * )
El cierre de parntesis ( ? )
Cualquier smbolo entre corchetes cuadrados ( [ ] ).

El asterisco sirve para indicar cualquier letra, un nmero de veces ilimitado.

$ ls /bin/a*
/bin/a2p
/bin/addftinfo
/bin/afmtodit
/bin/animate
/bin/annotate

Pgina 34 de 328 Introduccin a Linux


/bin/antiword
/bin/anytopnm
/bin/apropos
/bin/ascii
/bin/asciitopgm
/bin/ash
/bin/aspell-import
/bin/aspell
/bin/atktopbm
/bin/awk
$ ls /bin/an*
/bin/animate
/bin/annotate
/bin/antiword
/bin/anytopnm
$ ls /bin/*ba*
/bin/banner
/bin/basename
/bin/bash
/bin/bashbug
/bin/libart2-config
/bin/tiff2rgba

En los ejemplo anteriores estamos mostrando los archivos que se encuentran dentro
del directorio /bin y que adems:

a*: Empiezan por a y sigue cualquier combinacin de caracteres.


an*: Empiezan por an y sigue cualquier combinacin de caracteres.
*ba*: Hay cualquier combinacin de caracteres seguido de las letras ba y
cualquier combinacin de teclas despus.

El smbolo cierre de interrogacin (?) sirve para indicar cualquier letra, pero slo una
vez.

No te confundas el smbolo de inicio de interrogacin () que no tiene ningn


significado en Unix.

$ ls /bin/?sh
/bin/ash
/bin/ssh
$ ls /bin/??sh
/bin/bash

Plataforma de Teleformacin de IFES Pgina 35 de 328


ls /bin/?sh: buscamos los archivos dentro del directorio bin que empiecen
por cualquier letra y despus tengan una s y una hache.
ls /bin/??sh: buscamos los archivos dentro del directorio bin que empiecen
por cualquier letra, seguido de cualquier otra letra y despus tengan una s y
una hache.

El otro comodn que se utiliza es poner las letras que nos interesan entre corchetes ([]).
El sistema busca en su lugar cualquiera de las letras que estn en el corchete una sola
vez.

$ ls /bin/b[ae]*
/bin/banner
/bin/basename
/bin/bash
/bin/bashbug
$ ls /bin/b[ai]*
/bin/banner
/bin/basename
/bin/bash
/bin/bashbug
/bin/bioradtopgm
$ ls /bin/[bc][ae]*
/bin/banner
/bin/basename
/bin/bash
/bin/bashbug
/bin/cal
/bin/cameratopam
/bin/captoinfo
/bin/cat

As la orden ls /bin/b[ae]* muestra el contenido del directorio /bin/ que empiece con una
b seguido indistintamente por una a o una e , seguido de cualquier letra o grupo de
letras *.

Obtencin de ayuda
Para la obtencin de ayuda podemos utilizar el comando man

$ man uname
UNAME(1) UNAME(1)
NOMBRE

Pgina 36 de 328 Introduccin a Linux


uname - imprime informacin del sistema
SINOPSIS
uname [-snrvma] [--sysname] [--nodename] [--release] [--machine]
[--all] [--help] [--version]
DESCRIPCIN
Esta documentacin no va a ser mantenida a partir de ahora y puede ser
inexacta o incompleta. La documentacin Texinfo es ahora la fuente
autorizada.
Esta pagina de manual documenta la versin de GNU de uname. uname
imprime informacin acerca de la mquina y el sistema operativo en los
que esta corriendo. Si no se da ninguna opcin,uname acta como si se
hubiera dado la opcin -s -a ;la informacin seleccionada se imprime
en el orden `snrvm' con un espacio entre los diferentes elementos.
OPCIONES
-m, --machine
Imprime el tipo de maquina (hardware).
-n, --nodename
Imprime el hostname del nodo de red de la maquina.
-r, --release
Imprime la versin del sistema operativo.
-s, --sysname
Imprime el nombre del sistema operativo.
-v Imprime la fecha de compilacin del sistema operativo.
-a, --all
Imprime toda la informacin anterior.
--help Imprime un mensaje de uso en la salida estndar y termina satis-
factoriamente.
--version
Imprime informacin sobre la version por la salida estndar y
termina satisfactoriamente.
FSF Utilidades Shell de GNU UNAME(1)

Para manejar el resultado, las rdenes ms


importantes son: tecla q para salir, flecha arriba o
flecha abajo para subir o bajar, / para buscar un
texto (se escribe despus y se le da a enter), n para
buscar el siguiente texto.

Nadie es capaz de aprenderse todos los comandos que se utilizan en Unix con todas
sus opciones, pero es un objetivo de este curso que se sepan utilizar las pginas del
manual y encontrar las opciones necesarias para realizar lo que se quiera hacer.

Plataforma de Teleformacin de IFES Pgina 37 de 328


Autoevaluacin: Comandos

Unas preguntas sencillitas sobre las rdenes iniciales con el teclado.

Pregunta 1:
Cul es la orden para saber la fecha actual

Respuesta correcta: date

Pregunta 2:
Si queremos sacar el calendario del ao 1975 qu orden tendremos que darle al

sistema?
Respuesta correcta: cal 1975 o cal -m 1975

Pregunta 3:
Para ver la pgina del manual de la orden ls utilizaremos la orden:

Respuesta correcta: man ls

Pregunta 4:
Cuando estamos viendo el manual de la orden ls y queremos buscar qu hace la

opcin -r :
tecleamos -r directamente
tecleamos / y despus -r y retorno
Men buscar y escribimos -r
Men opciones y la buscamos por orden alfabtico

Respuesta correcta: tecleamos / y despus -r y retorno

Prctica: Primeros comandos


Este recurso es de tipo Prctica.
Tiene que conectarse a la plataforma para acceder a este recurso.

Pgina 38 de 328 Introduccin a Linux


Sistema de ficheros

El sistema de archivos en Unix


Antes de continuar con las rdenes habituales, es necesario conocer cmo se organiza
la informacin en Unix.

Ficheros y directorios
Como la mayora de los sistemas actuales, Unix organiza la informacin en ficheros
y directorios. Tambin hay otros elementos un poco ms exticos que veremos a su
debido tiempo.

Plataforma de Teleformacin de IFES Pgina 39 de 328


Estructura jerrquica
En Unix no existen los equivalentes a las unidades de MS-DOS (c: o a:), sino que todo
est en una nica estructura en rbol.

El directorio raz se representa por la barra de dividir (/).

Podemos ver qu hay en el directorio raz con la orden:

$ ls /
bin
cygdrive
cygwin.bat
cygwin.ico
etc
home
lib
mnt
tmp
usr
var

Dentro del directorio raz nos encontramos varios directorios, como bin, etc, home, tmp,
usr, var, etc. Para ver el contenido de uno de ellos ejecutamos las orden:

$ ls /usr
X11R6
bin
doc
etc
include
info
lib
local
man
sbin
share
src
ssl
tmp

Pgina 40 de 328 Introduccin a Linux


Con esta orden le hemos dicho que nos muestre el contenido de usr, que est dentro
del directorio raz /.

Para ver el contenido del directorio man que est debajo de usr, que est debajo de /
usaremos la orden:

$ ls /usr/man
es
man1
man5
man7

En una direccin el smbolo / puede tener dos significados, si est al principio de la


direccin, nos referimos al directorio raz. Si no est al principio es slo una separacin
entre directorios.

Dnde estn los discos?


Pero si no se utilizan nombres de unidades, cmo se puede acceder al CD-ROM, a la
disquetera o a un dispositivo USB?.

Unix monta los diferentes dispositivos en un directorio que vara en funcin de la


personalizacin de la distribucin, para ver donde las guarda tu distribucin puedes
meter un CD-ROM de datos y probar con los siguientes comandos:

$ ls /mnt/cd(tab)
$ ls /cd(tab)
$ ls /media/cd(tab)

una de las rdenes anteriores debera funcionar. Si el sistema encuentra el directorio


cd(algo), (estamos utilizando el tabulador), nos mostrar el contenido del CD-ROM.

Usuarios, grupos y permisos


Todos los archivos y directorios de un sistema Unix tienen, entre otras, estas
caractersticas:

Propietario, el nombre del usuario que lo ha creado.


Grupo, grupo al que est asociado.
Permisos para el propietario, para el grupo y para el resto de los usuarios.

As, si escribimos:

Plataforma de Teleformacin de IFES Pgina 41 de 328


$ ls -l /
total 9
drwxrwxrwx+ 3 ifes Usuarios 0 Nov 23 09:01 bin
dr-xr-xr-x 5 0 root 0 Jan 1 1970 cygdrive
-rwxrwxrwx 1 ifes Usuarios 57 Nov 21 11:06 cygwin.bat
-rwxrwxrwx 1 ifes Usuarios 7022 Nov 23 14:26 cygwin.ico
drwxrwxrwx+ 16 ifes Usuarios 0 Nov 23 12:07 etc
drwxrwxrwx+ 3 ifes Ninguno 0 Nov 23 09:30 home
drwxrwxrwx+ 18 ifes Usuarios 0 Nov 21 14:01 lib
drwxr-xr-x+ 2 ifes Ninguno 0 Nov 25 09:11 mnt
drwxrwxrwt+ 4 ifes Usuarios 0 Nov 25 13:18 tmp
drwxrwxrwx+ 16 ifes Usuarios 0 Nov 21 14:00 usr
drwxrwxrwx+ 7 ifes Usuarios 0 Nov 24 12:50 var

podemos ver que el directorio /bin pertenece al usuario ifes y su grupo es Usuarios

Los permisos tambin aparecen en este listado, pero son un poco ms complicados de
entender.

La primera letra de cada lnea indica el tipo es cada "objeto", un guin - indica que es
un archivo, una d indica que es un directorio.

Las siguientes nueve letras son las que indican los permisos asociados a ese archivo.

Las tres primeras letras indican los permisos del propietario.


Las tres siguientes indican los permisos del grupo.
Las tres ltimas indican los permisos de otros que no sean ni el propietario ni
pertenezcan al grupo del archivo.

En cada grupo de tres letras cada una tienen el significado:

La primera indica si tiene permiso de lectura (r ) o no (- ).


La segunda indica si tiene permiso de escritura (w ) o no (- ).
La tercera indica si tiene permiso de ejecucin (x ) o no (- ).

Direcciones absolutas o relativas


Hay dos maneras de indicar la direccin de un fichero o un directorio, en la estructura
de ficheros de un sistema Unix.

Direcciones absolutas
Direcciones relativas

Pgina 42 de 328 Introduccin a Linux


Direcciones absolutas
Las direcciones absolutas empiezan con el smbolo /.

Una direccin absoluta es vlida siempre.

Direcciones relativas
Las direcciones relativas no empiezan con el smbolo /.

Las direcciones relativas dependen del directorio donde nos encontremos, no


funcionarn si nos encontramos en un directorio diferente.

Normalmente las direcciones relativas son ms cortas de escribir que las direcciones
largas.

Ejemplos de direccionamiento absoluto y relativo:

$ # Cul es mi directorio?
$ pwd
/home/felix
$ # Qu hay en el directorio /usr?
$ ls /usr
X11R6
bin
doc
etc
i686-pc-cygwin
i686-pc-mingw32
include
info
lib
local
man
sbin
share
src
ssl
tmp
$ # Qu hay en mi directorio?
$ ls
bin

Plataforma de Teleformacin de IFES Pgina 43 de 328


cursos
tmp
$ # Ahora con direccionamiento absoluto
$ ls /home/felix
bin
cursos
tmp
$ # Que hay dentro de cursos
$ ls cursos
bin
linux
$ # Dentro de cursos con direccionamiento absoluto
$ ls /home/felix/cursos
bin
linux

Lo que se escribe en la consola despus del smbolo # ser ignorado hasta que
empiece la siguiente lnea, se puede utilizar para poner comentarios. El sistema lo
ignora.

Directorios virtuales
Cuando ponemos una direccin relativa podemos trabajar con dos directorios virtuales:

Directorio actual ( . ).
Directorio superior ( .. ).

El directorio actual (un punto) se utiliza cuando una orden necesita un argumento
que es un directorio, en lugar de poner la ruta completa del directorio donde nos
encontramos, como /home/francisco/proyecto, ponemos simplemente.

El directorio superior (representado por un punto seguido de otro punto, ..) nos indica
el contenido del directorio padre del que nos encontramos. Podemos escribir ls .. , o
incluso ls ../.. , que nos listar el directorio padre del directorio padre del actual (o sea el
abuelo ;-)).

Pgina 44 de 328 Introduccin a Linux


Introduccin a Linux / Mdulo II. rdenes comunes

Instrucciones de ficheros
Instrucciones de ficheros
A continuacin veremos las rdenes para trabajar con el sistema de archivos ms
habituales, as como sus opciones ms usadas.

Podemos ver la descripcin oficial de cada orden, con todas sus opciones tecleando
man orden.

Las rdenes se pueden agrupar por lo que hacen:

Ver
Crear
Modificar
Borrar

Inspeccionar

Ver
Instrucciones que nos dan informacin sobre el sistema de archivos. No modifican
nada.

pwd
La orden pwd nos muestra en qu directorio nos encontramos.

Hay muchas rdenes en las que si no les indicamos otro directorio, utilizan el actual,
por lo que es importante conocer en dnde estamos en cada momento.

Es una de las pocas rdenes de Unix que no tienen opciones.

$ pwd
/home/ifes/cursos/linux
$ cd /home
$ pwd
/home

Plataforma de Teleformacin de IFES Pgina 45 de 328


Al principio del ejemplo nos encontramos en el directorio linux, dentro de cursos, dentro
de ifes, dentro de home, dentro del directorio raz. Cambiamos de directorio con la
orden cd y pwd nos indica la nueva direccin.

ls
ls sirve para ver qu archivos o directorios hay en un directorio.

Si no le indicamos el directorio nos muestra el contenido del directorio actual (podemos


saber cul es nuestro directorio con la orden pwd).

Hacemos un listado del directorio actual.

$ ls
Makefile
RCS
admin
literal
out
src
tmp
$ pwd
/home/ifes/cursos/linux

Hacemos un listado del directorio /usr

$ ls /usr
X11R6
bin
doc
etc
include
info
lib
local
man
sbin
share
src
ssl
tmp

Pgina 46 de 328 Introduccin a Linux


Hacemos un listado de los archivos que acaban en sh del directorio /bin.

$ ls /bin/*sh
/bin/ash
/bin/bash
/bin/ppmflash
/bin/sh
/bin/ssh

Las opciones ms habituales de ls son:

-l: Hace que el listado sea largo, dando ms informacin adems del
nombre.
-h: Los datos de tamao de archivo estn en formato humano, en kbytes o
mbytes.
-a: Nos muestra todos los archivos, incluidos los ocultos.

Una opcin que utilizo es ls -rlt que hace un listado largo (-l ), ordenado por fecha de
modificacin (-t ) en orden creciente (-r ). De esta manera los ficheros que aparecen al
final son los ltimos en los que se ha estado trabajando.

Si el entorno de texto no te acaba de mostrar la informacin que necesitas puedes


interactuar con el entorno grfico o con alguna herramienta interactiva como md
(midnight comander).

cat
La orden cat sirve para concatenar archivos y mostrarlos por pantalla.

Varios ejemplos, para practicar puedes probar con los archivos que se encuentran en el
directorio /etc.

$ # Miramos qu archivos hay en el directorio tmp


$ ls tmp
bin
carta1.txt
carta2.txt
cursos
kk.tar.gz
last_sesion.txt
sesion.sh.1448.tmp
sesion.sh.1528.tmp

Plataforma de Teleformacin de IFES Pgina 47 de 328


tree-1.5.0.tgz
$
$ # Miramos el contenido de tmp/carta1.txt
$ cat tmp/carta1.txt
Nuevos ordenadores
=====================================
Thu Dec 1 08:53:49 2005
Para: mantenimiento
Hay que instalar los nuevos ordenadores para que los utilicen en el
departamento de idiomas.
$
$ # Miramos el contenido de tmp/carta2.txt
$ cat tmp/carta2.txt
Actualizacin de software
=====================================
Thu Dec 1 08:55:43 2005
Para: mantenimiento
Actualizar los ordenadores con la nueva versin de OpenOffice
disponible en el repositorio habitual.
$
$ # Miramos el contenido de todas las cartas
$ cat tmp/carta*
Nuevos ordenadores
=====================================
Thu Dec 1 08:53:49 2005
Para: mantenimiento
Hay que instalar los nuevos ordenadores para que los utilicen en el
departamento de idiomas.
Actualizacin de software
=====================================
Thu Dec 1 08:55:43 2005
Para: mantenimiento
Actualizar los ordenadores con la nueva versin de OpenOffice
disponible en el repositorio habitual.

less
Cuando un archivo es ms grande que la pantalla y lo vemos utilizando el comando
cat, el sistema no espera a que lo leamos, sino que lo pasa a toda velocidad. Para
poder verlo poco a poco est el comando less.

Pgina 48 de 328 Introduccin a Linux


Cuando vemos la ayuda de cualquier programa con man, estamos utilizando el
programa less para ver esta ayuda poco a poco.

less es un programa interactivo, todas las rdenes anteriores eran no interactivas, le


dbamos el nombre de la orden, sus opciones y parmetros y se ejecutaba. En los
programas interactivos el programa espera la interaccin del usuario, para qu le diga
qu quiere en cada momento.

Para ver un archivo grande podemos probar:

$ less /etc/passwd

Cuando estamos viendo el archivo le podemos indicar qu queremos que haga


mediante rdenes de una sola tecla, las ms importantes son:

flecha abajo : sube el texto una lnea.


f lecha arriba : baja el texto una lnea.
avance pgina : sube una pantalla.
retroceso pgina : baja una pantalla.
/ : bsqueda, a continuacin escribimos el texto que queremos buscar y
pulsamos enter.
n : vuelve a buscar la siguiente aparicin del texto que estamos buscando.
N : busca hacia el principio del texto.
q : finalizar la ejecucin de less.

file
La orden file nos indica de qu tipo son los archivos, ya que la extensin es slo un
adorno en Unix.

$ file /home/felix/tmp/*.*
/home/felix/tmp/blame-1.3: directory
/home/felix/tmp/calculos.txt: ASCII text
/home/felix/tmp/calendario.txt: ASCII text, with CRLF line terminators
/home/felix/tmp/carta.txt: ISO-8859 text
/home/felix/tmp/carta1.txt: ASCII text
/home/felix/tmp/carta2.txt: ISO-8859 text
/home/felix/tmp/grandes.txt: ISO-8859 English text, with CRLF line terminators
/home/felix/tmp/kk.tar.gz: gzip compressed data, from Unix
/home/felix/tmp/last_sesion.txt: ASCII text, with CRLF line terminators
/home/felix/tmp/numeros.txt: ASCII text, with CRLF line terminators
/home/felix/tmp/ordenes.txt: ASCII text

Plataforma de Teleformacin de IFES Pgina 49 de 328


/home/felix/tmp/sesion.sh.1076.tmp: ISO-8859 text, with CRLF, LF line terminators
/home/felix/tmp/sesion.sh.1140.tmp: ASCII text
/home/felix/tmp/sesion.sh.1188.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1196.tmp: ASCII text
/home/felix/tmp/sesion.sh.1208.tmp: ISO-8859 text, with CRLF, LF line terminators
/home/felix/tmp/sesion.sh.1256.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1344.tmp: ASCII text
/home/felix/tmp/sesion.sh.1392.tmp: ASCII text
/home/felix/tmp/sesion.sh.1448.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1504.tmp: ASCII text
/home/felix/tmp/sesion.sh.1540.tmp: ASCII text
/home/felix/tmp/sesion.sh.1572.tmp: ASCII text
/home/felix/tmp/sesion.sh.1596.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1632.tmp: ISO-8859 English text
/home/felix/tmp/sesion.sh.1664.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1668.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1696.tmp: ASCII text
/home/felix/tmp/sesion.sh.1704.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1708.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1720.tmp: ASCII text
/home/felix/tmp/sesion.sh.1728.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1732.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1744.tmp: ISO-8859 English text
/home/felix/tmp/sesion.sh.1752.tmp: ISO-8859 text, with CRLF, LF line terminators
/home/felix/tmp/sesion.sh.1808.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1816.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1856.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1880.tmp: ASCII text
/home/felix/tmp/sesion.sh.1900.tmp: ASCII text
/home/felix/tmp/sesion.sh.1904.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1936.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1948.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1952.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1972.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.1976.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.472.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.664.tmp: ASCII text
/home/felix/tmp/sesion.sh.676.tmp: ASCII text
/home/felix/tmp/sesion.sh.748.tmp: ISO-8859 text, with CRLF, LF line terminators
/home/felix/tmp/sesion.sh.792.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.880.tmp: ISO-8859 text, with CRLF, LF line terminators

Pgina 50 de 328 Introduccin a Linux


/home/felix/tmp/sesion.sh.924.tmp: ASCII text
/home/felix/tmp/sesion.sh.964.tmp: ASCII text
/home/felix/tmp/sesion.sh.972.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.992.tmp: ISO-8859 text
/home/felix/tmp/sesion.sh.996.tmp: ISO-8859 text
/home/felix/tmp/tree-1.5.0.tgz: gzip compressed data, from Unix

wc
wc nos indica el nmero de lneas, palabras y letras que tiene un archivo.

$ # cifras de /etc/passwd
$ wc /etc/passwd
7 9 718 /etc/passwd
$#
$ # slo las lneas
$ wc -l /etc/passwd
7 /etc/passwd
$#
$ # todas las cartas
$ wc tmp/carta*
12 25 206 tmp/carta1.txt
11 25 219 tmp/carta2.txt
23 50 425 total

Las opciones ms habituales son:

-l : slo saca el nmero de lneas.


-w : slo saca el nmero de palabras (grupos de letras separados por
smbolos).
-c : slo saca el nmero de letras (incluidos smbolos, espacios, etc.).

Crear
Instrucciones para crear archivos o directorios.

En este apartado no veremos otros mtodos para crear archivos como son los
procesadores de texto o la redireccin, porque tcnicamente no son rdenes, se vern
en otros mdulos.

Plataforma de Teleformacin de IFES Pgina 51 de 328


touch
touch seguido de uno o varios nombres crea unos archivos con esos nombres si no
existan, si ya exista le cambia la fecha de modificacin.

$ #####################################
$#
$ # listamos los archivos de texto
$ # que estn dentro del directorio tmp
$#
$ ls tmp/*.txt
tmp/carta1.txt
tmp/carta2.txt
tmp/last_sesion.txt
$ #####################################
$#
$ # creamos 3 archivos de texto
$ # dentro del directorio tmp
$#
$ touch tmp/ene.txt tmp/feb.txt tmp/mar.txt
$ #####################################
$#
$ # listamos los archivos de texto
$ # que estn dentro del directorio tmp
$ # para ver si estn los archivos nuevos
$#
$ ls tmp/*.txt
tmp/carta1.txt
tmp/carta2.txt
tmp/ene.txt
tmp/feb.txt
tmp/last_sesion.txt
tmp/mar.txt
$ #####################################
$#
$ # sacamos un listado largo para ver
$ # el tamao de los nuevos
$ # y comprobamos que es cero.
$#
$ ls -l tmp/*.txt
-rw-r--r-- 1 felix Ninguno 206 Dec 1 08:54 tmp/carta1.txt

Pgina 52 de 328 Introduccin a Linux


-rw-r--r-- 1 felix Ninguno 219 Dec 1 08:56 tmp/carta2.txt
-rw-r--r-- 1 felix Ninguno 0 Dec 1 09:59 tmp/ene.txt
-rw-r--r-- 1 felix Ninguno 0 Dec 1 09:59 tmp/feb.txt
-rw-r--r-- 1 felix Ninguno 36 Dec 1 09:43 tmp/last_sesion.txt
-rw-r--r-- 1 felix Ninguno 0 Dec 1 09:59 tmp/mar.txt

mkdir
mkdir seguido del nombre de uno o varios directorios, los crea.

Una opcin muy interesante es -p , si en el directorio a crear tiene que estar bajo otro
directorio y ste no existe tambin lo crea.

$ #############################################
$#
$ # creamos el directorio trabajo
$#
$ mkdir trabajo
$#
$ # nos metemos en este directorio
$#
$ cd trabajo
$#
$ # creamos directorios con subdirectorios
$#
$ mkdir -p clientes/opel clientes/seat prov/cepsa prov/pirelli
$#
$ # salimos del directorio trabajo
$ # subiendo al directorio superior
$#
$ cd ..
$#
$ # hacemos un listado recursivo
$ # del directorio trabajo
$#
$ ls -lR trabajo
trabajo:
total 0
drwxr-xr-x+ 4 felix Ninguno 0 Dec 1 10:17 clientes
drwxr-xr-x+ 4 felix Ninguno 0 Dec 1 10:17 prov
trabajo/clientes:

Plataforma de Teleformacin de IFES Pgina 53 de 328


total 0
drwxr-xr-x+ 2 felix Ninguno 0 Dec 1 10:17 opel
drwxr-xr-x+ 2 felix Ninguno 0 Dec 1 10:17 seat
trabajo/clientes/opel:
total 0
trabajo/clientes/seat:
total 0
trabajo/prov:
total 0
drwxr-xr-x+ 2 felix Ninguno 0 Dec 1 10:17 cepsa
drwxr-xr-x+ 2 felix Ninguno 0 Dec 1 10:17 pirelli
trabajo/prov/cepsa:
total 0
trabajo/prov/pirelli:
total 0

cp
cp sirve para copiar archivos.

cp archivoOrigen archivoDestino: copia el archivo origen (que tiene que


existir) a destino, si no existe el destino lo crea

$ # copiamos el archivo passwd del directorio etc


$ # a un nuevo archivo que se llamar archivo_de_claves.txt
$ # en el directorio actual
$ cp /etc/passwd archivo_de_claves.txt

cp archivoOrigen directorioDestino; copia el archivo origen en el directorio


destino, manteniendo el nombre.

$ # copiamos el archivo passwd del directorio /etc


$ # al directorio tmp manteniendo el nombre
$ cp /etc/passwd tmp

cp archivo1 archivo2 ... directorio: copia los archivos indicados en el


directorio de destino, cuando copiamos varios archivos es obligatorio que el
ltimo argumento sea un directorio.

$ # copiamos todos los archivos con la extensin txt


$ # que estn en el directorio tmp
$ # al directorio clientes, debajo de trabajo,

Pgina 54 de 328 Introduccin a Linux


$ # debajo del directorio actual,
$ # manteniendo los nombres de los archivos
$ cp tmp/*.txt trabajo/clientes

Modificar
Para modificar archivos se usan editores en modo interactivo, no rdenes. Tambin se
procesan archivos mediante redireccin que se estudiar ms adelante.

mv
La orden mv sirve para mover o renombrar un archivo o directorio.

Las maneras de poner los argumentos son las siguientes:

mv archivo nuevoNombre: renombra el archivo como nuevo nombre.


mv archivo directorio: mueve el archivo al directorio manteniendo el nombre.
mv archivo directorio/nuevoNombre: mueve el archivo al directorio
cambiando el nombre.

En la lista anterior se puede sustituir archivo por directorio y la orden mv funciona


exactamente igual.

Borrar
rm
Para borrar archivos utilizamos la orden rm seguida del nombre del archivo o archivos
que queremos borrar.

rm no borra directorios a no ser que le demos algunas opciones extra.

Las opciones ms habituales son:

-i : interactiva, pregunta si queremos borrar interactivamente


-f : forzado, no pregunta, los borra.
-r : recursivo, le podemos poner directorios y los borra completamente.

En Unix, en modo texto, no tenemos papelera, lo que borremos no podremos


recuperarlo, es muy importante que antes de borrar nos aseguremos en qu directorio
estamos (pwd ) y que borremos con la opcin de borrado interactivo (rm -i archivos ).

Plataforma de Teleformacin de IFES Pgina 55 de 328


rmdir
rmdir sirve para borrar directorios vacos. Si contienen algn archivo o directorio, da un
error y no los borra.

Para borrar directorios y todo su contenido se puede utilizar la orden rm -r , pero


nuestros datos estarn ms seguros si nos acostumbramos a borrar el contenido y
luego borrar slo directorios vacos con rmdir directorio.

Autoevaluacin: Ficheros

Pregunta 1:
Cul es la diferencia entre ls y ls . (con un punto)?

Respuesta correcta: ninguna

Pregunta 2:
Cul es el directorio raz?

Respuesta correcta: /

Pregunta 3:
Qu orden nos indica cul es el directorio actual?

ls
ls -rtl
path
pwd

Respuesta correcta: pwd

Pregunta 4:
Para copiar las imgenes con extensin .jpg del directorio /var/www/img al

directorio /tmp qu orden podemos utilizar?


Respuesta correcta: cp /var/www/img/*.jpg /tmp

Pregunta 5:
Para recuperar archivos que hemos borrado con la orden rm , utilizaremos

No podemos recuperarlos
rm -r nombre_archivo

Pgina 56 de 328 Introduccin a Linux


recover nombre_archivo
cp /trash/nombre_archivo .

Respuesta correcta: No podemos recuperarlos

Pregunta 6:
rmdir borra directorios:

siempre
que no contengan nada
que slo contengan directorios, no archivos
hay que utilizar la opcin -f

Respuesta correcta: que no contengan nada

Plataforma de Teleformacin de IFES Pgina 57 de 328


Introduccin a Linux / Mdulo II. rdenes comunes

Prctica: Ficheros
Este recurso es de tipo Prctica.
Tiene que conectarse a la plataforma para acceder a este recurso.

Instrucciones de texto
Las instrucciones de texto son muy importantes porque los archivos de configuracin,
programacin y otros muchos estn en formato texto, as como el resultado de las
rdenes tambin son de texto y podremos realizar acciones sobre estos resultados
intermedios.

head

head (cabeza en ingls)


sirve para mostrar el principio de un archivo.

Nos puede ser til para ver el aspecto de un documento o ver su definicin.

Por defecto head muestra las primeras 10 lneas del archivo. Se puede modificar con la
opcin -n nmero donde nmero puede ser 1,2,8,88, etc.

Pgina 58 de 328 Introduccin a Linux


tail
tail (cola en ingls) sirve para mostrar el final de un documento.

Se utiliza mucho para ver archivos que van aumentando de tamao, aadiendo lo que
va pasando al final (logs).

Las opciones ms habituales son:

-n nmero: Indicamos cuantas lneas del final queremos ver. Si no indicamos


nada nos muestra 10.
+nmero: Nos muestra desde la lnea nmero hasta el final.
-f : Le indicamos que nos muestre las ltimas lneas y tail se queda
esperando, observando el archivo, en el momento que cambia nos muestra
que lneas se han aadido. Esta opcin es til si queremos ver cmo va
aumentando un archivo.

sort

sort sirve para ordenar.

Veamos varios ejemplos:

Plataforma de Teleformacin de IFES Pgina 59 de 328


$ # sacamos por pantalla el archivo passwd
$ cat /etc/passwd
SYSTEM:*:18:544:,S-1-5-18::
Administradores:*:544:544:,S-1-5-32-544::
Administrador:unused_by_nt/2000/xp:500:513:U-
NUEVO2Administrador,S-1-5-21-2000478354-1563985344-839522115-500:/home/
Administrador:/bin/bash
ASPNET:unused_by_nt/2000/xp:1002:513:ASP.NET Machine Account,U-
NUEVO2ASPNET,S-1-5-21-2000478354-1563985344-839522115-1002:/home/
ASPNET:/bin/bash
felix:unused_by_nt/2000/xp:1003:513:U-
NUEVO2felix,S-1-5-21-2000478354-1563985344-839522115-1003:/home/felix:/bin/
bash
ifes:unused_by_nt/2000/xp:1001:513:U-
NUEVO2ifes,S-1-5-21-2000478354-1563985344-839522115-1001:/home/ifes:/bin/bash
Invitado:unused_by_nt/2000/xp:501:513:U-
NUEVO2Invitado,S-1-5-21-2000478354-1563985344-839522115-501:/home/Invitado:/
bin/bash
$ # sacamos por pantalla el archivo passwd
$ # pero esta vez ordenado
$ sort /etc/passwd
ASPNET:unused_by_nt/2000/xp:1002:513:ASP.NET Machine Account,U-
NUEVO2ASPNET,S-1-5-21-2000478354-1563985344-839522115-1002:/home/
ASPNET:/bin/bash
Administrador:unused_by_nt/2000/xp:500:513:U-
NUEVO2Administrador,S-1-5-21-2000478354-1563985344-839522115-500:/home/
Administrador:/bin/bash
Administradores:*:544:544:,S-1-5-32-544::
Invitado:unused_by_nt/2000/xp:501:513:U-
NUEVO2Invitado,S-1-5-21-2000478354-1563985344-839522115-501:/home/Invitado:/
bin/bash
SYSTEM:*:18:544:,S-1-5-18::
felix:unused_by_nt/2000/xp:1003:513:U-
NUEVO2felix,S-1-5-21-2000478354-1563985344-839522115-1003:/home/felix:/bin/
bash
ifes:unused_by_nt/2000/xp:1001:513:U-
NUEVO2ifes,S-1-5-21-2000478354-1563985344-839522115-1001:/home/ifes:/bin/bash

Las opciones ms habituales son:

-n: ordena teniendo en cuenta los nmeros.

Pgina 60 de 328 Introduccin a Linux


-f: no tiene en cuenta las minsculas o maysculas (si no ponemos esta
opcin primero muestra las maysculas y luego las minsculas).
-r: hace que invierta el resultado.

echo

La orden echo saca por pantalla el texto que le pasemos como


argumento.

Es til cuando queramos saber el valor de una variable o introducirle un texto a un


programa.

$ echo hola
hola
$ echo la variable HOME vale $HOME
la variable HOME vale /home/felix

Para sacar el valor de una variable tenemos que poner un smbolo dolar $ delante del
nombre, pero esto ya lo veremos ms adelante.

Plataforma de Teleformacin de IFES Pgina 61 de 328


grep

La orden grep sirve


para seleccionar las lneas que queremos mostrar, nos sirve para buscar dentro de
archivos sin tener que verlos por completo.

$ grep felix /etc/passwd


felix:unused_by_nt/2000/xp:1003:513:U-
NUEVO2felix,S-1-5-21-2000478354-1563985344-839522115-1003:/home/felix:/bin/
bash

Las opciones ms habituales son:

-i: ignora si la cadena est en maysculas o minsculas. Normalmente slo


busca las lneas que contengan exactamente la misma cadena, teniendo en
cuenta las minsculas o maysculas.
-v: muestra las lneas en las que no aparece la cadena buscada. Es el
significado contrario al habitual.
-l: No muestra las lneas que contienen las cadenas, slo los nombres de los
archivo.

Veamos algunos ejemplos:

$ # Vamos a realizar varias bsquedas en el directorio


$ # /usr/include en los ficheros con las extensin .h

Pgina 62 de 328 Introduccin a Linux


$#
$#
$ # Buscamos los que contengan la cadena Linux
$#
$ grep Linux /usr/include/*.h
/usr/include/bfd.h:/* Linux shared library support routines for the linker. */
/usr/include/bfdlink.h: wrap_hash. Used by PowerPC Linux for 'dot' symbols. */
/usr/include/expat.h:/* Expat follows the GNU/Linux convention of odd number minor
version for
/usr/include/libmng.h: (eg. Windows, Linux and some others)
/usr/include/libmng.h: TO RECAP: for sRGB systems (Windows, Linux) no action
required!
/usr/include/libmng_types.h:/* * - changed inclusion of lcms.h for Linux platforms * */
/usr/include/pngconf.h:/* This is an attempt to force a single setjmp behaviour on Linux.
If
$#
$ # Ahora slo el nombre de los archivos
$#
$ grep -l Linux /usr/include/*.h
/usr/include/bfd.h
/usr/include/bfdlink.h
/usr/include/expat.h
/usr/include/libmng.h
/usr/include/libmng_types.h
/usr/include/pngconf.h
$#
$ # Repetimos las bsquedas anteriores pero
$ # sin que me importe si est en maysculas o minsculas
$#
$ # Buscamos los que contengan la cadena Linux
$#
$ grep -i Linux /usr/include/*.h
/usr/include/bfd.h:/* Linux shared library support routines for the linker. */
/usr/include/bfd.h:extern bfd_boolean bfd_i386linux_size_dynamic_sections
/usr/include/bfd.h:extern bfd_boolean bfd_m68klinux_size_dynamic_sections
/usr/include/bfd.h:extern bfd_boolean bfd_sparclinux_size_dynamic_sections
/usr/include/bfdlink.h: wrap_hash. Used by PowerPC Linux for 'dot' symbols. */
/usr/include/expat.h:/* Expat follows the GNU/Linux convention of odd number minor
version for
/usr/include/lcms.h:// like linux, SGI, VAX, FreeBSD, BeOS, etc.
/usr/include/libmng.h: (eg. Windows, Linux and some others)

Plataforma de Teleformacin de IFES Pgina 63 de 328


/usr/include/libmng.h: TO RECAP: for sRGB systems (Windows, Linux) no action
required!
/usr/include/libmng_types.h:/* * - changed inclusion of lcms.h for Linux platforms * */
/usr/include/netdb.h:/* Original linux netdb.h merged with winsock.h types */
/usr/include/netdb.h: /* Different from the linux versions - note the shorts.. */
/usr/include/pngconf.h:/* This is an attempt to force a single setjmp behaviour on Linux.
If
/usr/include/pngconf.h:# ifdef linux
/usr/include/pngconf.h:# endif /* linux */
/usr/include/pngconf.h:# ifdef linux
/usr/include/pngconf.h:# endif /* linux */
$#
$ # Ahora slo el nombre de los archivos
$#
$ grep -il Linux /usr/include/*.h
/usr/include/bfd.h
/usr/include/bfdlink.h
/usr/include/expat.h
/usr/include/lcms.h
/usr/include/libmng.h
/usr/include/libmng_types.h
/usr/include/netdb.h
/usr/include/pngconf.h
$#
$ # Ahora vamos a buscar los archivos que no
$ # tengan una cadena por ejemplo "function"
$#
$ grep -vl function /usr/include/*.h
/usr/include/Imlib.h
/usr/include/Imlib_private.h
/usr/include/Imlib_types.h
/usr/include/_ansi.h
/usr/include/_syslist.h
....
....
/usr/include/xmi.h
/usr/include/xtiffio.h
/usr/include/zconf.h
/usr/include/zlib.h

Pgina 64 de 328 Introduccin a Linux


cut
Si grep nos permite qu lineas de un archivo nos interesan, la orden cut nos deja elegir
qu parte de la lnea queremos ver.

Las dos maneras habituales de indicarle qu queremos ver son:

cut -f campos -d'delimitador' archivo

Trabajando de esta manera el programa divide cada lnea utilizando el delimitador (que
es una letra o un smbolo, como:, o un espacio en blanco, etc.) y nos muestra slo los
campos que le hayamos indicado con el argumento campos .

Unos ejemplos de indicarle los campos que nos interesaran seran:

3 : Slo sacara el tercer campo.


1,5,7 : Sacar los campos 1, 5 y 7.
2,6-10 : sacar los campos 1, 6, 7, 8, 9 y 10.
-5 : sacar todos los campos 1, 2, 3, 4 y 5.
3,8- : sacar el campo 3 y desde el campo 8 hasta el final.

Podemos ver que ocurre con el fichero /etc/passwd, que est separado en campos por
':'.

$ # nombres de usuarios
$ cut -f1 -d':' /etc/passwd
SYSTEM
Administradores
Administrador
ASPNET
felix
ifes
Invitado
$ # nmeros de usuario
$ cut -f3 -d':' /etc/passwd
18
544
500
1002
1003
1001
501

Plataforma de Teleformacin de IFES Pgina 65 de 328


$ # nombres y nmeros
$ cut -f1,3 -d':' /etc/passwd
SYSTEM:18
Administradores:544
Administrador:500
ASPNET:1002
felix:1003
ifes:1001
Invitado:501

La otra manera de trabajar con cut es eligiendo los caracteres que nos
interesan, cut -c caracteres archivo.

Le indicamos qu caracteres nos interesan de la misma manera que los campos.

$ ##############################
$#
$ # slo las primeras 10 letras
$#
$ cut -c -10 /etc/passwd
SYSTEM:*:1
Administra
Administra
ASPNET:unu
felix:unus
ifes:unuse
Invitado:u
$ ##############################
$#
$ # las siguiente 10 letras
$#
$ cut -c 11-20 /etc/passwd
8:544:,S-1
dores:*:54
dor:unused
sed_by_nt/
ed_by_nt/2
d_by_nt/20
nused_by_n
$ ##############################
$#
$ # Las 20 primeras letras de cada lnea

Pgina 66 de 328 Introduccin a Linux


$#
$ cut -c -20 /etc/passwd
SYSTEM:*:18:544:,S-1
Administradores:*:54
Administrador:unused
ASPNET:unused_by_nt/
felix:unused_by_nt/2
ifes:unused_by_nt/20
Invitado:unused_by_n

sed
sed nos permite hacer sustituciones cuando nos muestra un fichero.

Con esta tcnica no modificamos los archivos slo el resultado que aparece, ms
adelante s que lo haremos.

Las sintaxis es sed "s/busqueda/sustitucion/g" archivo .

$ ############################################################
$#
$ # sacamos el archivo original para que podamos comparar
$#
$ cat tmp/carta.txt
Hola, soy felix
El prximo da 8 es mi cumpleaos,
espero que vengas a mi fiesta y traigas muchos
regalos.
Zaragoza, 30 de noviembre de 2008
$ ############################################################
$#
$ # sustituimos felix por mi nombre completo
$#
$ sed "s/felix/Flix Jorge Anadn Trigo/g" tmp/carta.txt
Hola, soy Flix Jorge Anadn Trigo
El prximo da 8 es mi cumpleaos,
espero que vengas a mi fiesta y traigas muchos
regalos.
Zaragoza, 30 de noviembre de 2008
$ ############################################################
$#

Plataforma de Teleformacin de IFES Pgina 67 de 328


$ # sustituimos las letras oes por ceros
$#
$ sed "s/o/O/g" tmp/carta.txt
HOla, sOy felix
El prximO da 8 es mi cumpleaOs,
esperO que vengas a mi fiesta y traigas muchOs
regalOs.
ZaragOza, 30 de nOviembre de 2008
$ ############################################################
$#
$ # sustituimos los dobles espacios por un nico espacio
$#
$ sed "s/ / /g" tmp/carta.txt
Hola, soy felix
El prximo da 8 es mi cumpleaos,
espero que vengas a mi fiesta y traigas muchos
regalos.
Zaragoza, 30 de noviembre de 2008

Prctica: Manejo de texto


Este recurso es de tipo Prctica.
Tiene que conectarse a la plataforma para acceder a este recurso.

Instrucciones tiles

Otras instrucciones potentes


seq
Cuando necesitamos una lista de nmeros utilizaremos la orden seq.

Le podemos indicar el inicio el incremento y el final. Si no le ponemos incremento,


supondr que es 1. Si no le ponemos inicio supondr que empezaremos desde el 1.

$ ############################################################
$#
$ # orden completa
$#

Pgina 68 de 328 Introduccin a Linux


$ seq 10 2 20
10
12
14
16
18
20
$ ############################################################
$#
$ # slo ponemos el inicio y el final
$#
$ seq 38 42
38
39
40
41
42
$ ############################################################
$#
$ # solo indicamos hasta donde queremos llegar
$#
$ seq 10
1
2
3
4
5
6
7
8
9
10

find
find es seguramente la orden ms compleja y con la pgina del manual ms grande del
entorno Linux.

find sirve para buscar, pero tambin sirve para buscar y hacer algo con lo encontrado.

Su sintaxis es: find directorio opciones comparaciones acciones

Plataforma de Teleformacin de IFES Pgina 69 de 328


directorio es el directorio donde vamos a empezar a buscar recursivamente,
es obligatorio, si queremos buscar en el directorio actual tenemos que
indicrselo mediante un punto: (. ).
opciones: estas opciones cambian el modo en el que se realiza la bsqueda,
como -daystart que hace que los tiempos se busquen teniendo en cuenta
el comienzo del da, no por horas. -maxdepth o -mindepth que regula el
nmero de directorios donde busca.
comparaciones: nos permiten elegir lo que queremos buscar. Podemos
buscar por fechas (o minutos) de modificacin o de acceso, por tamaos,
nombres o quien es el propietario.
acciones: lo habitual es mostrarlo por pantalla, pero tambin podemos hacer
que saque los datos de ese archivo de una manera diferente, o que ejecute
una orden de Unix, como rm, cat, grep, etc. sobre los archivos encontrados.

Vamos a ver unos ejemplos que aporten algo de claridad a esta maraa de opciones.

$ ############################################################
$#
$ # busqueda por nombre
$ # desde el directorio actual
$#
$ find . -name carta.txt
./tmp/carta.txt
$ ############################################################
$#
$ # bsqueda por nombre en todo
$ # el disco duro
$#
$ find / -name passwd
/etc/passwd
$ ############################################################
$#
$ # bsqueda por nombre en todo
$ # el disco duro
$ # con comodines entre comillas
$#
$ find / -name "*.mp3"
/cygdrive/c/Archivos de programa/C-Media 3D Audio/Driver/Advance/MUSIC/
Demo3_Bass.mp3
/cygdrive/c/Archivos de programa/C-Media 3D Audio/Driver/Advance/MUSIC/
Demo3_Front.mp3

Pgina 70 de 328 Introduccin a Linux


/cygdrive/c/Archivos de programa/C-Media 3D Audio/Driver/Advance/MUSIC/
Demo3_Rear.mp3
/cygdrive/c/Archivos de programa/C-Media 3D Audio/Driver/Advance/MUSIC/
Demo3_Side.mp3
/cygdrive/c/Archivos de programa/Winamp/demo.mp3
/cygdrive/c/Documents and Settings/felix/Mis documentos/mp3/campanas.mp3
/cygdrive/c/Documents and Settings/felix/Mis documentos/mp3/cantatas/2/1/
bwv_20_01.mp3
/cygdrive/c/Documents and Settings/felix/Mis documentos/mp3/cantatas/2/1/
bwv_20_02.mp3
/cygdrive/c/Documents and Settings/felix/Mis documentos/mp3/cantatas/2/1/
bwv_20_03.mp3
/cygdrive/c/Documents and Settings/felix/Mis documentos/mp3/cantatas/2/1/
bwv_20_04.mp3
$ ############################################################
$#
$ # bsqueda por fecha de modificacin en minutos
$ # menos de 10 en el directorio cursos
$#
$ find cursos -mmin -10
cursos/linux/src
cursos/linux/src/.contenidos.txt.swp
cursos/linux/src/contenidos.txt
cursos/linux/tmp
$ ############################################################
$#
$ # bsqueda fecha de acceso
$ # por das
$ # empezando a las 00 horas de hoy
$ # el disco duro
$#
$ find cursos -daystart -atime -1
cursos
cursos/bin
cursos/bin/hazmenu.pl
cursos/bin/hazmenu.sh
cursos/bin/ponenlaces.sh
cursos/linux
cursos/linux/.vimrc
cursos/linux/admin
cursos/linux/admin/contenidos.txt

Plataforma de Teleformacin de IFES Pgina 71 de 328


cursos/linux/admin/especificaciones.txt
cursos/linux/literal
cursos/linux/literal/img
cursos/linux/literal/img/180px-Linus_Torvalds.jpeg
cursos/linux/literal/img/bios.png
cursos/linux/literal/img/blackbox.jpg
cursos/linux/literal/img/curva_aprendizaje.png
cursos/linux/literal/img/curva_aprendizaje4.png
cursos/linux/literal/img/gnome.png
cursos/linux/literal/img/icewm.jpg
cursos/linux/literal/img/kde.jpg
cursos/linux/literal/img/logo_debian.gif
$ ############################################################
$#
$ # bsqueda por tamao
$ # archivos de ms de 100 kb
$#
$#
$#
$ find cursos -size +100k
cursos/linux/literal/img/blackbox.jpg
cursos/linux/literal/img/gnome.png
cursos/linux/literal/img/icewm.jpg
cursos/linux/literal/img/kde.jpg
cursos/linux/literal/img/xfce.png
cursos/linux/out/img/backbox.jpg
cursos/linux/out/img/blackbox.jpg
cursos/linux/out/img/gnome.png
cursos/linux/out/img/icewm.jpg
cursos/linux/out/img/kde.jpg
cursos/linux/out/img/xfce.png
cursos/linux/src/RCS/contenidos.txt,v

Ahora otra serie de ejemplos con acciones.

$ ############################################################
$#
$ # busqueda por nombre
$ # de archivos vacos
$ # y posterior borrado
$#

Pgina 72 de 328 Introduccin a Linux


$ find tmp -type f -size 0 -exec rm {} \;
$ ############################################################
$#
$ # bsqueda de archivos que se llaman carta y algo ms
$ # sacamos el nombre del archivo y
$ # sacamos las lneas que contienen la cadena Para
$#
$ find . -name "carta*" -print -exec grep Para {} \;
./tmp/carta.txt
./tmp/carta1.txt
Para: mantenimiento
./tmp/carta2.txt
Para: mantenimiento de software

tar
tar sirve para agrupar varios archivos en un nico archivo, con o sin compresin.

Tambin sirve para ver el contenido de archivos con formato tar o extraer los archivos
de este formato.

Cuando se agrupa con esta orden a los archivos generados les solemos poner las
extensiones .tar, .tar.gz o.tgz.

Se utiliza profusamente para hacer copias de seguridad, copiar directorios para


trasladarlos y es el formato en el que se distribuyen la mayor parte de los programas
para Linux.

La sintaxis de esta orden es: tar opciones archivos.

Entre estas opciones tiene que estar obligatoriamente una de las siguientes:

c: para crear un archivo "tar"


x: para extraer de una archivo "tar"
t: para listar de un archivo "tar"
Otras rdenes menos usadas.

Adems hay otras opciones que suelen acompaar a las opciones anteriores:

v: va mostrando qu est haciendo el programa


z: el fichero que creamos o del que sacamos archivos est comprimido (con
el algoritmo gZip)

Plataforma de Teleformacin de IFES Pgina 73 de 328


f fichero: sirve para indicarle el archivo dnde metemos los archivos que
queremos agrupar.

Veamos unos ejemplos:

$ # miramos el contenido del directorio tmp


$
$ ls tmp
introduccion_a_linux-50h-mod_01-ud_01-introduccion.htm
introduccion_a_linux-50h-mod_01-ud_02-instalacion.htm
introduccion_a_linux-50h-mod_01-ud_03-historia.htm
introduccion_a_linux-50h-mod_01-ud_04-distribuciones.htm
introduccion_a_linux-50h-mod_01-ud_04-entornos.htm
introduccion_a_linux-50h-mod_02-ud_01-instrucciones_habituales.htm
introduccion_a_linux-50h-mod_02-ud_02-sintaxis_ordenes.htm
introduccion_a_linux-50h-mod_02-ud_03-sistema_de_ficheros.htm
introduccion_a_linux-50h-mod_02-ud_04-instrucciones_de_ficheros.htm
introduccion_a_linux-50h-mod_02-ud_05-instrucciones_de_texto.htm
introduccion_a_linux-50h-mod_02-ud_06-instrucciones_utiles.htm
introduccion_a_linux-50h-mod_03-ud_01-instrucciones_avanzadas.htm
introduccion_a_linux-50h-mod_03-ud_02-editores_de_texto.htm
introduccion_a_linux-50h-mod_anexo-ud_01-glosario.htm
ordenes.txt
separa.smf
$
$ # opcin c, creamos un fichero
$ # opcin z, estar comprimido
$ # opcin v, que nos muestre qu est haciendo
$ # opcin f, le indicamos el nombre del fichero (tmp.tar.gz)
$ # qu vamos a meter, el directorio tmp
$
$ # podramos escribirlo:
$ # tar -c -z -v -f tmp.tar.gz tmp
$
$ # pero se pueden agrupar las rdenes y
$ # escribirlo as:
$
$ tar czvf tmp.tar.gz tmp
tmp/
tmp/introduccion_a_linux-50h-mod_01-ud_01-introduccion.htm
tmp/introduccion_a_linux-50h-mod_01-ud_02-instalacion.htm

Pgina 74 de 328 Introduccin a Linux


tmp/introduccion_a_linux-50h-mod_01-ud_03-historia.htm
tmp/introduccion_a_linux-50h-mod_01-ud_04-distribuciones.htm
tmp/introduccion_a_linux-50h-mod_01-ud_04-entornos.htm
tmp/introduccion_a_linux-50h-mod_02-ud_01-instrucciones_habituales.htm
tmp/introduccion_a_linux-50h-mod_02-ud_02-sintaxis_ordenes.htm
tmp/introduccion_a_linux-50h-mod_02-ud_03-sistema_de_ficheros.htm
tmp/introduccion_a_linux-50h-mod_02-ud_04-instrucciones_de_ficheros.htm
tmp/introduccion_a_linux-50h-mod_02-ud_05-instrucciones_de_texto.htm
tmp/introduccion_a_linux-50h-mod_02-ud_06-instrucciones_utiles.htm
tmp/introduccion_a_linux-50h-mod_03-ud_01-instrucciones_avanzadas.htm
tmp/introduccion_a_linux-50h-mod_03-ud_02-editores_de_texto.htm
tmp/introduccion_a_linux-50h-mod_anexo-ud_01-glosario.htm
tmp/ordenes.txt
tmp/separa.smf
$
$ # para ver su contenido usamos
$ # la opcin t
$
$ tar tzf tmp.tar.gz
tmp/
tmp/introduccion_a_linux-50h-mod_01-ud_01-introduccion.htm
tmp/introduccion_a_linux-50h-mod_01-ud_02-instalacion.htm
tmp/introduccion_a_linux-50h-mod_01-ud_03-historia.htm
tmp/introduccion_a_linux-50h-mod_01-ud_04-distribuciones.htm
tmp/introduccion_a_linux-50h-mod_01-ud_04-entornos.htm
tmp/introduccion_a_linux-50h-mod_02-ud_01-instrucciones_habituales.htm
tmp/introduccion_a_linux-50h-mod_02-ud_02-sintaxis_ordenes.htm
tmp/introduccion_a_linux-50h-mod_02-ud_03-sistema_de_ficheros.htm
tmp/introduccion_a_linux-50h-mod_02-ud_04-instrucciones_de_ficheros.htm
tmp/introduccion_a_linux-50h-mod_02-ud_05-instrucciones_de_texto.htm
tmp/introduccion_a_linux-50h-mod_02-ud_06-instrucciones_utiles.htm
tmp/introduccion_a_linux-50h-mod_03-ud_01-instrucciones_avanzadas.htm
tmp/introduccion_a_linux-50h-mod_03-ud_02-editores_de_texto.htm
tmp/introduccion_a_linux-50h-mod_anexo-ud_01-glosario.htm
tmp/ordenes.txt
tmp/separa.smf
$
$ # podemos borrar el directorio tmp
$ # pues tenemos una copia en tmp.tar.gz
$
$ ls tmp*

Plataforma de Teleformacin de IFES Pgina 75 de 328


tmp.tar.gz
tmp:
introduccion_a_linux-50h-mod_01-ud_01-introduccion.htm
introduccion_a_linux-50h-mod_01-ud_02-instalacion.htm
introduccion_a_linux-50h-mod_01-ud_03-historia.htm
introduccion_a_linux-50h-mod_01-ud_04-distribuciones.htm
introduccion_a_linux-50h-mod_01-ud_04-entornos.htm
introduccion_a_linux-50h-mod_02-ud_01-instrucciones_habituales.htm
introduccion_a_linux-50h-mod_02-ud_02-sintaxis_ordenes.htm
introduccion_a_linux-50h-mod_02-ud_03-sistema_de_ficheros.htm
introduccion_a_linux-50h-mod_02-ud_04-instrucciones_de_ficheros.htm
introduccion_a_linux-50h-mod_02-ud_05-instrucciones_de_texto.htm
introduccion_a_linux-50h-mod_02-ud_06-instrucciones_utiles.htm
introduccion_a_linux-50h-mod_03-ud_01-instrucciones_avanzadas.htm
introduccion_a_linux-50h-mod_03-ud_02-editores_de_texto.htm
introduccion_a_linux-50h-mod_anexo-ud_01-glosario.htm
ordenes.txt
separa.smf
$
$ # borramos el directorio tmp
$
$ rm -rf tmp
$
$ # mucho cuidado al usar rm -rf!
$
$ # restauramos el directorio desde el archivo tar
$
$ tar xzvf tmp.tar.gz
tmp/
tmp/introduccion_a_linux-50h-mod_01-ud_01-introduccion.htm
tmp/introduccion_a_linux-50h-mod_01-ud_02-instalacion.htm
tmp/introduccion_a_linux-50h-mod_01-ud_03-historia.htm
tmp/introduccion_a_linux-50h-mod_01-ud_04-distribuciones.htm
tmp/introduccion_a_linux-50h-mod_01-ud_04-entornos.htm
tmp/introduccion_a_linux-50h-mod_02-ud_01-instrucciones_habituales.htm
tmp/introduccion_a_linux-50h-mod_02-ud_02-sintaxis_ordenes.htm
tmp/introduccion_a_linux-50h-mod_02-ud_03-sistema_de_ficheros.htm
tmp/introduccion_a_linux-50h-mod_02-ud_04-instrucciones_de_ficheros.htm
tmp/introduccion_a_linux-50h-mod_02-ud_05-instrucciones_de_texto.htm
tmp/introduccion_a_linux-50h-mod_02-ud_06-instrucciones_utiles.htm
tmp/introduccion_a_linux-50h-mod_03-ud_01-instrucciones_avanzadas.htm

Pgina 76 de 328 Introduccin a Linux


tmp/introduccion_a_linux-50h-mod_03-ud_02-editores_de_texto.htm
tmp/introduccion_a_linux-50h-mod_anexo-ud_01-glosario.htm
tmp/ordenes.txt
tmp/separa.smf
$

zip/unzip
zip y unzip se usan para comprimir o descomprimir grupos de archivos.

Normalmente se usa cuando estamos compartiendo datos con usuarios de Windows,


que utilizan habitualmente este formato.

Para comprimir se escribe: zip ficherozip lista de ficheros o directorios.

Para descomprimir se escribe: unzip ficherozip.

Bsqueda de archivos
Bsqueda de archivos

La bsqueda de archivos que tiene Linux es mucho ms potente que cualquier bsqueda de
archivos que hayamos usado antes.
El pequeo esfuerzo de aprender el comando find nos compensar con creces cuando
tengamos que buscar archivos o analizar el sistema.

Tipos de bsquedas

Con find podemos buscar archivos segn los siguientes criterios:

Adems, podremos hacer algo con los archivos encontrados, como borrarlos, copiarlos,
hacer una copia de seguridad...
La sintxis de find es:
find lugar opciones acciones

Ejemplos con tiempos

Buscar archivos que han sido modificados en Buscar archivos que son ms viejos de 30
los ltimos 5 das das
find . -mtime -7 find . -mtime +30

Plataforma de Teleformacin de IFES Pgina 77 de 328


Buscar archivos que son ms viejos de 30 Buscar archivos que son ms viejos de 30
das y borrarlos das y copiarlos a /tmp
find . -mtime +30 -exec rm {} \; find . -mtime +30 -exec cp {} /tmp \;

Otros ejemplos

Buscar archivos que ocupan ms de 2048 Buscar archivos que puede ejecutar todo el
kilobytes mundo
find . -size +2048k find . -perm 0755
Buscar archivos del usuario root Buscar archivos cuyo nombre acaba en .pdf
find . -user root find . -name '*.pdf'

Empaquetado de archivos
Empaquetar

A menudo queremos empaquetar un


conjunto de archivos para copiarlos a otro
lugar, enviarlos por correo o hacer una copia
de seguridad

Tar

La rden que usamos en Linux para Empaquetamos as:


empaquetar es tar tar cf paquete.tar file1 file2 ...
Desempaquetamos as: Miramos el contenido de un paquete as:
tar xf paquete.tar tar tf paquete.tar

Comprimir

Pgina 78 de 328 Introduccin a Linux


Muchas veces aprovecharemos para
comprimir el archivo para que ocupe menos

Algoritmos

Existen diferentes archivos de compresin. PKZIP


Los ms usados son: La extensin suele ser .zip
Se usa mucho en sistemas Windows
GZIP BZIP2
La extensin suele ser .gz .tgz La extensin suele ser .bz2
Es el ms usado en Linux, comprime mejor Es el ms moderno y el que ms comprime
que PKZIP

Gzip y Bz2

Usamos compresin GZIP aadiendo el Usamos compresin BZIP2 aadiendo el


parmetro z parmetro j
tar czf paquete.tar.gz file1 file2 ... tar cjf paquete.tar.gz file1 file2 ...
tar xzf paquete.tar.gz tar xjf paquete.tar.gz

Zip

Adems podemos usar los archivos .zip, usados comnmente en los sistemas Windows con
los comandos zip y unzip
Comprimir:
zip -r paquete.zip file1 file2
Descomprimir
unzip paquete.zip

Autoevaluacin: rdenes comunes

Pregunta 1:
La instruccin para ver el contenido de un archivo muy grande es:

Plataforma de Teleformacin de IFES Pgina 79 de 328


cat
less
ls
wc

Respuesta correcta: less

Pregunta 2:
Si queremos saber el nmero de usuarios que hay en un sistema podemos contar

las lneas del fichero /etc/passwd, cul sera la orden?


Respuesta correcta: wc -l /etc/passwd

Pregunta 3:
Para saber de qu tipo es un fichero utilizaremos la orden:

wc
file
head
tail

Respuesta correcta: file

Pregunta 4:
Para saber qu valores contiene la variable PATH utilizaremos:

ls $PATH
cat $PATH
echo $PATH
file $PATH

Respuesta correcta: echo $PATH

Pregunta 5:
Para hacer una copia de seguridad de un directorio utilizaremos la orden:

Respuesta correcta: tar czvf copia.tar.gz directorio

Sopa de letras
Este recurso es de tipo Multimedia.
Tiene que conectarse a la plataforma para acceder a este recurso.

Pgina 80 de 328 Introduccin a Linux


Introduccin a Linux

Cuestionario de evaluacin procesual


Este recurso es de tipo Encuesta.
Tiene que conectarse a la plataforma para acceder a este recurso.

Plataforma de Teleformacin de IFES Pgina 81 de 328


Introduccin a Linux

Evaluacin segunda
Este recurso es de tipo Evaluacin.
Debe conectarse a la plataforma para realizar la evaluacin. Recuerde que las
evaluaciones son obligatorias ya que determinan la nota final.

Pgina 82 de 328 Introduccin a Linux


Introduccin a Linux

Mdulo III. rdenes avanzadas


Redirecciones
La redireccin es una de las herramientas ms potentes cuando trabajamos con la
consola de Linux.

Hasta ahora, cuando ejecutbamos una orden el resultado sala por pantalla, la
pantalla es lo que se conoce como salida estndar.

Podemos decirle que cuando ejecute una orden el resultado no salga por pantalla
sino que lo redirija a un fichero (por ejemplo). De esto ya hemos visto ejemplos en los
ejercios del curso.

Redireccin de la salida estndar


Para redirigir la salida estndar a un fichero tenemos que terminar la orden con el
smbolo mayor que (> ) y el nombre del fichero donde vamos a guardar los resultados
de la ejecucin.

$ # ejemplo de redireccin
$
$ cal -m 5 2006 > tmp/calendario.txt
$
$ # Hemos ejecutado la orden cal(endario) con la opcin
$ # -m (las semanas empiezan en monday, lunes)
$ # pero por pantalla no aparece nada, el resultado est
$ # guardado en el archivo calendario.txt dentro del directorio tmp
$
$ # Podemos verlo utilizando la orden less o cat
$
$ cat tmp/calendario.txt
May 2006
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21

Plataforma de Teleformacin de IFES Pgina 83 de 328


22 23 24 25 26 27 28
29 30 31
$

Cuando redirigimos la salida de una orden a un fichero y ste no existe el sistema lo


crea antes de escribir en l.

Si el fichero ya existe y redirigimos a l una orden, su contenido es borrado antes de


empezar a escribir en l.

Si queremos aadir al final de un fichero el resultado de una orden, sin borrar el


contenido previo, tendremos que utilizar el operador >>.

$ # guardo la fecha actual en un fichero.


$
$ date > fecha.txt
$
$ cat fecha.txt
Fri Dec 2 09:51:22 2005
$
$ # vuelvo a guardarla
$
$ date > fecha.txt
$
$ cat fecha.txt
Fri Dec 2 09:51:31 2005
$
$ # la primera fecha ha desaparecido!
$
$ # para no borrar las anteriores utilizamos el
$ # operador >>, que aade el resultado de la orden
$ # al final del archivo.
$
$ date >> fecha.txt
$ echo "---------------" >> fecha.txt
$ cal -m >> fecha.txt
$ cat fecha.txt
Fri Dec 2 09:51:31 2005
Fri Dec 2 09:51:32 2005
---------------
December 2005
Mo Tu We Th Fr Sa Su

Pgina 84 de 328 Introduccin a Linux


1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
$

Redireccin de la entrada estndar


La entrada estndar es mucho menos importante que la salida estndar, en casi todas
las rdenes se puede poner como argumento el nombre de un fichero que es lo que
hace la redireccin de la entrada.

Algunas rdenes no tienen la opcin de indicarle el nombre de un fichero, pero la


redireccin funciona siempre.

Para redireccionar la entrada se pone el smbolo < seguido del archivo con el que
queremos alimentar el archivo.

$ # creo un fichero con nmeros


$
$ seq 20 > tmp/numeros.txt
$
$ # lo ordeno mediante sort
$
$ sort tmp/numeros.txt
1
10
11
12
13
14
15
16
17
18
19
2
20
3
4

Plataforma de Teleformacin de IFES Pgina 85 de 328


5
6
7
8
9
$
$ # con sort no hara falta redireccionar
$ # pero lo hacemos por motivos didcticos
$
$ sort < tmp/numeros.txt
1
10
11
12
13
14
15
16
17
18
19
2
20
3
4
5
6
7
8
9

Redireccin de los errores


Cuando ejecutamos un programa y se producen errores, por la pantalla salen tanto los
errores como los resultados correctos.

Por ejemplo, si nos ponemos a buscar en todo el disco duro, habr carpetas donde no
tengamos permisos de escritura y nos saldr un error.

Para que los errores no salgan por pantalla los podemos redirigir con el operador 2>

Pgina 86 de 328 Introduccin a Linux


No podemos separar el 2 del > .

$ # buscamos los archivos que tengan ms de un mega


$ # en el disco duro
$ # y metemos sus nombres en el archivo grandes.txt
$#
$ # los errores los metemos en grandes.errores
$
$ find / -size +1000k > tmp/grandes.txt 2> tmp/grandes.errores
$
$ # miramos a ver cuantos archivos hay y cuantos errores se han producido.
$
$ wc -l tmp/grandes.*
6 tmp/grandes.errores
781 tmp/grandes.txt
787 total

Si sabemos que se van a producir errores pero no nos interesan se pueden redirigir al
dispositivo nulo, que es como tirarlos a la basura.

$ # buscamos los archivos que tengan ms de un mega


$ # en el disco duro
$ # y los metemos el archivo grandes.txt
$#
$ # los errores los eliminamos
$
$ find / -size +1000k > tmp/grandes.txt 2> /dev/null
$
$ # miramos a ver cuantos archivos hay
$
$ wc -l tmp/grandes.*
781 tmp/grandes.txt

Uso de tuberas
Es muy comn que el resultado de una orden lo queramos volver a tratar mediante otra
orden por ejemplo:

$ # vamos a buscar cul es el nmero asociado a un usuario determinado


$
$ # buscamos en el archivo etc/passwd los usuarios que se llaman felix

Plataforma de Teleformacin de IFES Pgina 87 de 328


$ # y lo guardamos para su posterior tratamiento
$
$ grep felix /etc/passwd > tmp/felix.txt
$
$ # podemos ver qu hemos obtenido con
$
$ cat tmp/felix.txt
felix:unused_by_nt/2000/xp:1003:513:U-
NUEVO2felix,S-1-5-21-2000478354-1563985344-839522115-1003:/home/felix:/bin/
bash
$
$ # como nos interesa el tercer campo lo cortamos con cut
$
$ cut -d':' -f 3 tmp/felix.txt
1003
$
$ # ahora ya podemos borrar el archivo temporal
$
$ rm tmp/felix.txt
$

Todo lo anterior lo podemos escribir de forma mucho ms resumida utilizando tuberas


(mediante el smbolo | ) que pasa la salida de una orden a la siguiente.

$ grep felix /etc/passwd | cut -d':' -f 3


1003

Se pueden concatenar varias tuberas, no slo una:

$ find / -name '*.h' | grep "sys" | head -n 30 | less


/cygdrive/c/WINNT/system32/faxcount.h
/cygdrive/c/WINNT/system32/iasperf.h
/cygdrive/c/WINNT/system32/msdtcprf.h
/cygdrive/c/WINNT/system32/perfci.h
/cygdrive/c/WINNT/system32/perffilt.h
/cygdrive/c/WINNT/system32/perfwci.h
/cygdrive/c/WINNT/system32/pschdcnt.h
/cygdrive/c/WINNT/system32/rasctrnm.h
/cygdrive/c/WINNT/system32/rsvpcnts.h
/home/felix/tmp/blame-1.3/lib/sysexit_.h
/home/felix/tmp/blame-1.3/src/system.h
/lib/gcc/i686-pc-cygwin/3.4.4/include/syslimits.h

Pgina 88 de 328 Introduccin a Linux


/lib/gcc/i686-pc-cygwin/3.4.4/install-tools/gsyslimits.h
/lib/gcc/i686-pc-mingw32/3.4.4/include/syslimits.h
/lib/gcc/i686-pc-mingw32/3.4.4/install-tools/gsyslimits.h
/lib/perl5/5.8/cygwin/CORE/iperlsys.h
/usr/include/cygwin/in_systm.h
/usr/include/cygwin/sysproto.h
/usr/include/gtk-2.0/gtk/gtkfilesystem.h
/usr/include/mingw/sys/fcntl.h
/usr/include/mingw/sys/file.h
/usr/include/mingw/sys/locking.h
/usr/include/mingw/sys/param.h
/usr/include/mingw/sys/stat.h
/usr/include/mingw/sys/time.h
/usr/include/mingw/sys/timeb.h
/usr/include/mingw/sys/types.h
/usr/include/mingw/sys/unistd.h
/usr/include/mingw/sys/utime.h
/usr/include/netinet/in_systm.h
$
$ # buscamos archivos que acaben en .h
$ # nos quedamos con los que contengan el texto sys
$ # nos quedamos con las 30 primeras
$ # lo vemos poco a poco con un programa interactivo

Podemos ir viendo cmo se van uniendo las rdenes escribiendo la primera orden,
recuperndola y poniendo la tubera y la siguiente orden, y as sucesivamente y vemos
cmo va quedando.

$ find / -name '*.h'


/lib/gcc/i686-pc-cygwin/3.4.4/install-tools/include/stddef.h
/lib/gcc/i686-pc-cygwin/3.4.4/install-tools/include/unwind.h
....
....
/usr/X11R6/include/Xm/XmosP.h
/usr/X11R6/include/Xm/XmP.h
/usr/X11R6/include/Xm/XmStrDefs.h
/usr/X11R6/include/Xm/XpmP.h
$
$ # ejecutamos la primera orden
$
$ # vemos que est sacando montones de archivos

Plataforma de Teleformacin de IFES Pgina 89 de 328


$ # recuperamos la orden y la aadimos la tubera
$ # y la orden grep para limitar qu resultados se muestran
$
$ find / -name '*.h' | grep "sys"
/cygdrive/c/WINNT/system32/faxcount.h
/cygdrive/c/WINNT/system32/iasperf.h
/cygdrive/c/WINNT/system32/msdtcprf.h
/cygdrive/c/WINNT/system32/perfci.h
/cygdrive/c/WINNT/system32/perffilt.h
/cygdrive/c/WINNT/system32/perfwci.h
/cygdrive/c/WINNT/system32/pschdcnt.h
/cygdrive/c/WINNT/system32/rasctrnm.h
/cygdrive/c/WINNT/system32/rsvpcnts.h
/home/felix/tmp/blame-1.3/lib/sysexit_.h
/home/felix/tmp/blame-1.3/src/system.h
/lib/gcc/i686-pc-cygwin/3.4.4/include/syslimits.h
/lib/gcc/i686-pc-cygwin/3.4.4/install-tools/gsyslimits.h
/lib/gcc/i686-pc-mingw32/3.4.4/include/syslimits.h
/lib/gcc/i686-pc-mingw32/3.4.4/install-tools/gsyslimits.h
/lib/perl5/5.8/cygwin/CORE/iperlsys.h
/usr/include/sys/acl.h
/usr/include/sys/cdefs.h
....
....
/usr/lib/gcc/i686-pc-cygwin/3.4.4/install-tools/gsyslimits.h
/usr/lib/gcc/i686-pc-mingw32/3.4.4/include/syslimits.h
/usr/lib/gcc/i686-pc-mingw32/3.4.4/install-tools/gsyslimits.h
/usr/lib/perl5/5.8/cygwin/CORE/iperlsys.h
$
$ # vemos que est sacando slo los que contienen el texto sys
$ # recuperamos la orden y la aadimos la tubera
$ # y la orden head para que slo saque 30
$
$ find / -name '*.h' | grep "sys" | head -n 30
/cygdrive/c/WINNT/system32/faxcount.h
/cygdrive/c/WINNT/system32/iasperf.h
/cygdrive/c/WINNT/system32/msdtcprf.h
/cygdrive/c/WINNT/system32/perfci.h
/cygdrive/c/WINNT/system32/perffilt.h
/cygdrive/c/WINNT/system32/perfwci.h
/cygdrive/c/WINNT/system32/pschdcnt.h

Pgina 90 de 328 Introduccin a Linux


/cygdrive/c/WINNT/system32/rasctrnm.h
/cygdrive/c/WINNT/system32/rsvpcnts.h
/home/felix/tmp/blame-1.3/lib/sysexit_.h
/home/felix/tmp/blame-1.3/src/system.h
/lib/gcc/i686-pc-cygwin/3.4.4/include/syslimits.h
/lib/gcc/i686-pc-cygwin/3.4.4/install-tools/gsyslimits.h
/lib/gcc/i686-pc-mingw32/3.4.4/include/syslimits.h
/lib/gcc/i686-pc-mingw32/3.4.4/install-tools/gsyslimits.h
/lib/perl5/5.8/cygwin/CORE/iperlsys.h
/usr/include/cygwin/in_systm.h
/usr/include/cygwin/sysproto.h
/usr/include/gtk-2.0/gtk/gtkfilesystem.h
/usr/include/mingw/sys/fcntl.h
/usr/include/mingw/sys/file.h
/usr/include/mingw/sys/locking.h
/usr/include/mingw/sys/param.h
/usr/include/mingw/sys/stat.h
/usr/include/mingw/sys/time.h
/usr/include/mingw/sys/timeb.h
/usr/include/mingw/sys/types.h
/usr/include/mingw/sys/unistd.h
/usr/include/mingw/sys/utime.h
/usr/include/netinet/in_systm.h
$
$ # vemos que est sacando slo los 30 primeros
$ # recuperamos la orden y la aadimos la tubera
$ # y la orden less para poder leerlo con comodidad
$
$ find / -name '*.h' | grep "sys" | head -n 30 | less
/cygdrive/c/WINNT/system32/faxcount.h
/cygdrive/c/WINNT/system32/iasperf.h
/cygdrive/c/WINNT/system32/msdtcprf.h
/cygdrive/c/WINNT/system32/perfci.h
/cygdrive/c/WINNT/system32/perffilt.h
/cygdrive/c/WINNT/system32/perfwci.h
/cygdrive/c/WINNT/system32/pschdcnt.h
/cygdrive/c/WINNT/system32/rasctrnm.h
/cygdrive/c/WINNT/system32/rsvpcnts.h
/home/felix/tmp/blame-1.3/lib/sysexit_.h
/home/felix/tmp/blame-1.3/src/system.h
/lib/gcc/i686-pc-cygwin/3.4.4/include/syslimits.h

Plataforma de Teleformacin de IFES Pgina 91 de 328


/lib/gcc/i686-pc-cygwin/3.4.4/install-tools/gsyslimits.h
/lib/gcc/i686-pc-mingw32/3.4.4/include/syslimits.h
/lib/gcc/i686-pc-mingw32/3.4.4/install-tools/gsyslimits.h
/lib/perl5/5.8/cygwin/CORE/iperlsys.h
/usr/include/cygwin/in_systm.h
/usr/include/cygwin/sysproto.h
/usr/include/gtk-2.0/gtk/gtkfilesystem.h
/usr/include/mingw/sys/fcntl.h
/usr/include/mingw/sys/file.h
/usr/include/mingw/sys/locking.h
/usr/include/mingw/sys/param.h
/usr/include/mingw/sys/stat.h
/usr/include/mingw/sys/time.h
/usr/include/mingw/sys/timeb.h
/usr/include/mingw/sys/types.h
/usr/include/mingw/sys/unistd.h
/usr/include/mingw/sys/utime.h
/usr/include/netinet/in_systm.h

Es muy habitual acabar una orden que genera muchas lneas con | less para poder
verlas ms cmodamente.

Tambin son finalizaciones habituales | wc para saber cuantas lneas genera o | grep
cadena para quedarnos slo con las lneas que nos interesan.

Concatenar rdenes

rdenes seguidas
Normalmente cuando tenemos que poner varias rdenes se escriben en diferentes
lneas.

El mismo resultado se produce si las escribimos en la misma lnea, separadas por


punto y coma (; ).

$ # es lo mismo escribir
$
$ ls tmp/*.txt
tmp/calculos.txt
tmp/calendario.txt
tmp/carta.txt

Pgina 92 de 328 Introduccin a Linux


tmp/carta1.txt
tmp/carta2.txt
tmp/grandes.txt
tmp/last_sesion.txt
tmp/numeros.txt
tmp/ordenes.txt
$ date
Fri Dec 2 12:01:41 2005
$
$ # que separarlo con punto y coma
$ ls tmp/*.txt; date
tmp/calculos.txt
tmp/calendario.txt
tmp/carta.txt
tmp/carta1.txt
tmp/carta2.txt
tmp/grandes.txt
tmp/last_sesion.txt
tmp/numeros.txt
tmp/ordenes.txt
Fri Dec 2 12:01:41 2005

Tanto la separacin en diferentes lneas como con punto y coma hacen que se ejecuten
las rdenes, una despus de otra independientemente de si se han ejecutado bien o
mal.

A veces querremos que una orden se ejecute slo si la orden anterior se ha realizado
con xito.

$ tar czvf usuario.tar.gz proyecto;rm -rf proyecto

En el cdigo anterior realizamos una copia de seguridad del directorio proyecto y a


continuacin lo borramos.

Si la copia de seguridad no se ha producido porque hemos escrito algo mal o no


tenemos permisos de escritura o est el disco lleno o cualquier otra cosa, el directorio
se borrar de cualquier manera, habremos perdido el directorio sin tener la copia de
seguridad.

Plataforma de Teleformacin de IFES Pgina 93 de 328


Ejecucin condicional
Para asegurarnos de que una orden se ejecute slo si la anterior se ha realizado las
concatenaremos con el smbolo && , sin separar.

$ tar czvf usuario.tar.gz proyecto && rm -rf proyecto

con este cdigo creamos el archivo donde guardamos la copia de seguridad y slo en
el caso de que todo haya ido bien borraremos el directorio.

Otras veces querremos que se ejecute una segunda orden slo si la primera ha fallado.

Para concatenar rdenes y que se ejecute la segunda slo cuando falle la primera se
utiliza el smbolo || .

As en

cat /etc/passwd || echo "no puedo abrirlo" >> /tmp/errores.txt

Si se puede abrir, la segunda orden no se ejecuta. Si no lo podemos abrir, por el motivo


que sea, ejecutaremos la orden echo, que guardar un texto en el archivo errores.txt.

Agrupar rdenes con parntesis


Hay veces que queremos agrupar varias rdenes para ejecutarlas si se cumple una
condicin o queremos que el resultado de todas ellas vaya a un nico archivo. Para
hacer esto se ponen las rdenes entre parntesis.

$ echo escribe el ao;read a; cal -m $a || (echo el mes $a no es correcto; cal -m -y)

En el ejemplo anterior el sistema nos pide el valor de la variable a , donde


almacenamos el ao que nos interesa, intentamos sacar el calendario de ese ao y si
se produce un fallo realizamos dos acciones, ya que estn entre parntesis, sacar un
mensaje de error y sacar el calendario del ao actual). Los aos vlidos son del 1 al
9999.

$ (date;echo;cal -m;pwd) > /tmp/estado.txt

es una manera mucho ms corta (y elegante) que escribir:

$ date >/tmp/estado.txt
$ echo >>/tmp/estado.txt

Pgina 94 de 328 Introduccin a Linux


$ cal -m >> /tmp/estado.txt
$ pwd >>/tmp/estado.txt

Uso de variables
Las variables sirven para almacenar valores para utilizarlos ms adelante.

Las variables se pueden establecer de dos maneras:

$ a=32
$ read b
hola

poniendo el nombre de la variable, el smbolo = y el valor que se le asigna.


No puede haber espacios antes ni despus del igual. Si el valor va a tener
espacios hay que ponerlo entre comillas.
leyendo el valor de la variable interactivamente con la orden read .:

Para utilizar el valor de una variable tenemos que aadirle el smbolo del dolar ($ )
antes del nombre.

Utilizando variables podemos ahorrarnos tener que escribir mucho texto.

$ t=/tmp/archivo_temporal.txt
$
$ find / -size +10000k > $t
$ wc $t
$ head $t
$ rm -f $t

Nos hemos creado la variable t con el valor de un archivo que se utiliza mucho. As
en las siguientes rdenes slo escribimos $t y no tenemos que escribir el nombre
completo.

Cuando veamos las estructuras de control veremos ms utilidades de las variables.

Variables del sistema


El sistema define y utiliza varias variables que podemos ver y utilizar.

Por ejemplo la variable HOME indica cul es nuestro directorio personal. Podemos ver
su valor con la instruccin:

Plataforma de Teleformacin de IFES Pgina 95 de 328


$ echo $HOME

Si hacemos un programa que depende del directorio del usuario podemos poner esta
variable en lugar de tener que modificarlo.

Para ver las variables del sistema utilizamos la orden set.

Para ver todas utilizamos esta orden pero con tuberas set | less o set | grep -i home.

Uso de comillas
En el shell utilizamos 3 tipos de comillas.

comilla simple ('). En la tecla a la derecha el cero. Sirve para escribir texto
literal.
comilla doble ("). En la tecla del 2 con maysculas pulsadas. Si dentro de
estas comillas hay una variable se sustituye por su valor.
comilla grave (`). En la tecla que hay a la derecha de la tecla p, al pulsarla no
sale nada en la pantalla, hay que pulsar un espacio despus. Su contenido
se ejecuta y es sustituido por el resultado de la ejecucin.

$ # uso de las comillas para asignar un valor que tiene espacios


$
$ v="alguien ha visto un pingino resfriado?"
$
$ echo 'no sustituyo las variables ($v)'
no sustituyo las variables ($v)
$
$ echo "con comillas dobles s ($v)"
con comillas dobles s (alguien ha visto un pingino resfriado?")
$
$ # uso de comillas graves
$
$ echo "hoy es `date`"
hoy es Fri Dec 2 13:08:53 2005

Estructuras de control
Las estructuras de control son "instrucciones" que hacen que unas rdenes se repitan o
se ejecuten de forma condicionada por variables o estados del sistema.

Pgina 96 de 328 Introduccin a Linux


Todos los lenguajes de programacin tienen estructuras de control, pero esto es un
entorno de trabajo, las estructuras nos permiten hacer gran cantidad de cosas en poco
tiempo.

for
La estructura for hace que se repitan una serie de rdenes asignando a una variable
un valor diferente cada vez que se repite el bucle.

for i in pepe juan ana


do
tar czvf /var/backup/$i.tar.gz /home/$i && rm -rf /home/$i
done

Como podemos ver en el ejemplo anterior for va seguido del nombre de la variable que
vamos a utilizar, en este caso i, despus la palabra in seguida de una lista de palabras,
letras o nmeros que son los valores que ir tomando la variable. Despus de la lista
viene la palabra do indicando que empiezan las rdenes que se van a repetir. Despus
de las rdenes hay que poner la palabra done para indicar que hemos acabado las
rdenes que se repiten.

Vamos a seguir paso a paso qu hace el cdigo anterior:

asigna a i el valor pepe.


crea el archivo /var/backup/pepe.tar.gz partiendo del directorio /home/pepe.
si se ha ejecutado bien la orden anterior se borra el directorio /home/pepe.
asigna a i el valor juan.
crea el archivo /var/backup/juan.tar.gz partiendo del directorio /home/juan.
si se ha ejecutado bien la orden anterior se borra el directorio /home/juan.
asigna a i el valor ana.
crea el archivo /var/backup/ana.tar.gz partiendo del directorio /home/ana.
si se ha ejecutado bien la orden anterior se borra el directorio /home/ana.
terminamos el bucle.

Podemos hacer bucles que combinen los conocimientos anteriores:

$ for i in enero febrero marzo abril;do echo "$i tiene `echo $i|wc -c` letras";done
enero tiene 6 letras
febrero tiene 8 letras
marzo tiene 6 letras
abril tiene 6 letras

Plataforma de Teleformacin de IFES Pgina 97 de 328


La instruccin superior tiene una alta densidad de tcnicas recientemente aprendidas,
vamos a verlas con ms detalle:

Separacin mediante ; . Debemos fijarnos que al acabar la lista (abril ), va un


punto y coma, pero no va despus de do.
Dentro de la cadena de echo sacamos el valor de la variable i.
Utilizamos comillas graves para sacar el resultado de ejecutar una orden.
En este caso la orden que se ejecuta es la combinacin de dos rdenes
unidas mediante una tubera, la salida de la orden echo se le pasa a wc
para que cuente cuantas letras tiene. Como wc -c cuenta tambin el carcter
de retorno, nos muestra una letra de ms. Podamos arreglarlo pasndole
menos letras. Lo siguiente ya es para nota.

$ for i in enero febrero marzo abril;do echo "$i tiene `echo $i|cut -c 2- |wc -c`
letras";done
enero tiene 5 letras
febrero tiene 7 letras
marzo tiene 5 letras
abril tiene 5 letras

Si queremos realizar un bucle numrico como en muchos lenguajes de programacin


podemos usar como lista del for la orden seq entre comillas graves.

$ for i in `seq 1 10`;do echo hola $i;done


hola 1
hola 2
hola 3
hola 4
hola 5
hola 6
hola 7
hola 8
hola 9
hola 10

Autoevaluacin: Comandos avanzados

Pregunta 1:
Si queremos aadir la salida de una orden al principio de un fichero usaremos el
operador:

Pgina 98 de 328 Introduccin a Linux


>
2>
>>
no se puede

Respuesta correcta: no se puede

Pregunta 2:
Si queremos tener en un archivo los nmeros pares hasta el 100, la orden ser:

Respuesta correcta: seq 2 2 100 > pares.txt

Pregunta 3:
Si queremos saber qu archivos han cambiado en mi directorio en los ltimos 2

das, qu orden no es correcta?


cd;find . -mtime -2
find $HOME -type f -mtime -2
find $HOME -daystart -mtime -2
find $HOME -mmin -2

Respuesta correcta: find $HOME -mmin -2

Pregunta 4:
Si queremos saber qu archivos son mayores de 1 megabyte y que no se hayan

mirado desde hace ms de 30 das, para guardarlo en un archivo cul ser la


orden?
Respuesta correcta: find / -size +1024k -atime +30 > gor.txt

Prctica: Comandos avanzados


Este recurso es de tipo Prctica.
Tiene que conectarse a la plataforma para acceder a este recurso.

Editores de texto
Un editor de texto es simplemente un programa que nos permite escribir y modificar
archivos de texto.

Los editores de texto nos permiten tambin escribir programas, varias rdenes
seguidas en diferentes lneas, hacer pruebas y volver a modificar los archivos de texto.

Plataforma de Teleformacin de IFES Pgina 99 de 328


Entre los programadores usuarios de Linux la mayora utiliza Vim o Emacs, que son
editores de texto con multitud de trucos, opciones y atajos. Pero cuesta mucho tiempo
aprender a manejarlos con soltura.

Editor vim.

Si no se va a trabajar intensivamente en modo consola es recomendable editar


nuestros archivos de texto con programas grficos como Kate o gedit.

Pgina 100 de 328 Introduccin a Linux


Editor Kate.

Plataforma de Teleformacin de IFES Pgina 101 de 328


Editor gedit.

En modo texto hay varios editores sencillos como joe, pico o nano.

Sopa de letras
Este recurso es de tipo Multimedia.
Tiene que conectarse a la plataforma para acceder a este recurso.

Animacin: opciones avanzadas - redireccin


Este recurso es de tipo Multimedia.
Tiene que conectarse a la plataforma para acceder a este recurso.

Pgina 102 de 328 Introduccin a Linux


Introduccin a Linux

Evaluacin tercera
Este recurso es de tipo Evaluacin.
Debe conectarse a la plataforma para realizar la evaluacin. Recuerde que las
evaluaciones son obligatorias ya que determinan la nota final.

Plataforma de Teleformacin de IFES Pgina 103 de 328


Introduccin a Linux

Prctica final
Este recurso es de tipo Prctica.
Tiene que conectarse a la plataforma para acceder a este recurso.

Pgina 104 de 328 Introduccin a Linux


Introduccin a Linux

Evaluacin final
Este recurso es de tipo Evaluacin.
Debe conectarse a la plataforma para realizar la evaluacin. Recuerde que las
evaluaciones son obligatorias ya que determinan la nota final.

Plataforma de Teleformacin de IFES Pgina 105 de 328


Introduccin a Linux

Bibliografia
Linux a fondo. BERNAUS PREZ, ALBERT BLANCO.
Editorial Infor books, Barcelona 2002.

Linux Curso de Iniciacin. BERNAUS PREZ, ALBERT BLANCO.


Editorial Infor books, Barcelona 2003.

Gua Prctica para usuarios Linux. CESAR MARTIN PEREZ E ISMAEL PEREZ
CRESPO.
Editorial Anaya, Madrid 1998.

Linux Administration Handbook. NEMETH, SNYDER, HEIN.


Editorial Prentice Hall, New Jersey 2002.

Linux RUTE User's Tutorial and Exposition. PAUL SHEER.


Editorial Prentice Hall, New Jersey 2002.

Curso de Linux. SCHRODER, CARLA.


Editorial Multimedia-Anaya interactiva, Madrid 2005.

Pgina 106 de 328 Introduccin a Linux


Introduccin a Linux

Glosario
Ahh,muy importante,puedo introducir texto con formato en este recurso!

Perfectamente posible!
Cmo se ha comentado en la demostracin del recurso de edicin anterior, el
correspondiente a las FAQ ,podemos hacer uso de diferentes "herramientas" en la
edicin de un determinado curso como :
texto en negrita
texto tipo cdigo
listas para enumerar como:
una cosa

dos cosas
tres cosas
........
Lo que a continuacin viene podra servirnos como ejemplo de Glosario de un supuesto
curso de la Plataforma ,en este caso ,un curso de Linux.
Como se acaba de comentar,podemos y debemos presentar el texto de una forma ms
atractiva ,complementndolo con diferentes formatos....

alias

Orden interna de bash. Permite sustituir una cadena por una sola palabra. Esto nos
permite poner el nombre que queramos a un comando junto con sus parmetros.
Ahorra tiempo en el trabajo diario, por lo que su uso es altamente recomendado. Puede
ser algo tan sencillo como: alias rm='rm -i'. Por lo que cada vez que teclearamos rm el
shell lo sustituira por rm -i.

Apache

Servidor de pginas web. Hoy por hoy lider del mercado de servidores, por delante de
soluciones propietarias.

background

Segundo plano. Se habla de proceso en segundo plano cuando se ejecuta sin nuestra
interactividad o lo pasamos a modo suspendido. Es til,si por ejemplo, estamos
compilando un programa grande que nos deja inutilizada la consola mientras dura el
proceso de compilacin. Pasndolo a segundo plano, el proceso se completara, pero
nosotros podramos seguir trabajando.

Plataforma de Teleformacin de IFES Pgina 107 de 328


bash

(Bourne Again Shell) Intrprete de comandos. Es el shell por defecto en la mayora de


las distribuciones de GNU/Linux de hoy en da. Se encarga de interpretar las ordenes
que le demos para su proceso por el kernel.

boot

Proceso de arranque en un sistema informtico

BSD

Berkeley Software Distribution. Adaptacin del UNIX original de AT&T por la


universidad de Berkeley.

case sensitivity

GNU/Linux distingue entre minsculas y maysculas, por lo que deberemos tener


cuidado a la hora de teclear ordenes o nombres de ficheros.

compilar

Proceso por el cual se "traduce" un programa escrito en un lenguaje de programacin a


lo que realmente entiende el ordenador.

consola

Una consola la forman el teclado y el monitor del equipo donde tenemos instalado
GNU/Linux . No confundir con terminal.

cron

demonio que usa el administrador para delegar ciertas tareas que pueden ser
ejecutadas sin su participacin. Este demonio puede ser programado para ejecutar las
tareas a intervalos variables, anualmente, semanalmente, diariamente etc. Sus tareas
tpicas suelen ser el borrado de ficheros temporales, conexiones con otros equipos,
backups, etc.

cuenta

Una cuenta en un sistema Unix/Linux puede ser algo as como la llave de un taller
comunitario. Es decir, tenemos una llave personal que nos permite acceder a ese
taller y utilizar algunas de las herramientas del mismo. Donde adems tenemos que
atenernos a las normas que rijan en ese taller.

Pgina 108 de 328 Introduccin a Linux


cuota

Es un sistema del que se vale el administrador, para regular el espacio que los
diferentes usuarios de un sistema ocupan con sus ficheros en disco.

demonio

Aparte del significado que todos conocemos, en Unix/Linux se conoce como un


programa que permanece en segundo plano ejecutndose continuamente para dar
algn tipo de servicio. Ejemplos de demonio, son los servidores de correo, impresora,
sistemas de conexin con redes etc.

display

Variable de entorno, cuyo valor apunta al servidor Xwindow del usuario que lo est
ejecutando.

Emacs

Editor de texto. Aunque es su principal funcin, Emacs es hoy en da un programa


muy extenso y con muchas utilidades, gracias a su soporte de plug-ins en lenguaje
LISP. Desde Emacs podrs contestar el correo, leer las noticias de USENET, compilar
programas, jugar al tetris... Requiere un periodo de aprendizaje largo.

enlaces

Los enlaces o links permiten tener "copias" de un mismo archivo, ocupando slo el
espacio del archivo real. Es decir, el enlace no es ms que otro archivo que apunta al
original.

enlightenment

Gestor de ventanas. Muy espectacular, a la vez que algo inestable y consumidor de


recursos nato.

entrada/salida estndar

Por defecto la entrada de datos estndar se establece en el teclado y la salida de


datos estndar en la pantalla del monitor, esto lo podemos variar a travs de tuberas
o redirecciones. Por ejemplo, podemos hacer que la entrada sea el ratn y la salida la
impresora.

ethernet

Plataforma de Teleformacin de IFES Pgina 109 de 328


Son redes que permiten distribuir datos a travs de un solo cable por lo que necesitan
de un protocolo especial que evite la colisin de los paquetes de datos, ya que slo se
permite el envo de un solo paquete al mismo tiempo, encargndose el protocolo de su
reenvo en caso de la colisin de ambos.

expresiones regulares

Las expresiones regulares o "regexp" permiten definir el patrn de anlisis en una


cadena de texto. De forma que a la hora de modificarlas, borrarlas, o lo que queramos
hacer con ellas, sea de acuerdo a unas reglas que definimos.

ext2fs

Sistema de ficheros utilizado en GNU/Linux . Permite el uso de permisos para los


ficheros y directorios, y tiende a fragmentarse mucho menos que los de otros sistemas
operativos.

filtro

Un filtro es un programa o conjunto de estos, que procesan una serie de datos


generando una salida modificada conforme a lo que nosotros le especifiquemos.

FSF

Free Software Foundation. Fundacin que pretende el desarrollo de un sistema


operativo libre tipo UNIX. Fundada por Richard Stallman, empez creando las
herramientas necesarias para su propsito, de modo que no tuviera que depender
de ninguna compaia comercial. Despus vino la creacin del ncleo, que todava se
encuentra en desarrollo.

ftp

File Transfer Protocol. Servicio de Internet que permite el envo y la recepcin de


ficheros. Para su uso necesitamos disponer de una cuenta en la mquina que va a
recibir o enviar los ficheros. Si bien hay multitud de mquinas en Internet que permiten
el uso de sus sistemas utilizando una cuenta annima y validando el password con
nuestra direccin de correo.

gcc

GNU C Compiler. El compilador estndar de la FSF.

getty

Pgina 110 de 328 Introduccin a Linux


Procesos que controlan cada una de las terminales que estn conectadas al sistema,
o las terminales virtuales que podamos tener abiertas. Establecen las caractersticas
de los terminales y llaman al proceso encargado de validar la entrada al sistema de los
usuarios.

ghostcript

Programa encargado de la visualizacin de ficheros de texto con formato postcript.

GID

Group IDentification. En UNIX/LINUX se definen grupos para administrar las


herramientas a las que tienen acceso unos y otros, el pertenecer a un determinado
grupo nos puede permitir, por ejemplo, tener acceso a internet. La pertenencia a
algn grupo viene determinada por el numero GID establecido en el cuarto campo del
fichero /etc/passwd.

GNOME

GNU Network Object Model Environment. Entorno de escritorio basado en las libreras
GTK diseadas para el programa de retoque fotogrfico GIMP. Ofrece un entorno
amigable y la posibilidad de que las aplicaciones intercambien datos entre s.

GNU

Movimiento que persigue la libertad en el software. Son los creadores de la mayora de


los programas que utilizan Linux, por eso piden que al sistema se le llame GNU/Linux,
no solamente Linux.

GNU

Gnu is Not Unix. Proyecto de la FSF para crear un sistema UNIX libre.

GNU/Linux

Sistema operativo compuesto de las herramientas GNU de la FSF y el ncleo


desarrollado por Linus Torvalds y sus colaboradores.

GPL

General Public License. Una de las mejores aportaciones de la FSF. Es una licencia
que protege la creacin y distribucin de software libre.

groff

Plataforma de Teleformacin de IFES Pgina 111 de 328


Versin GNU del programa nroff para el formateo de textos. Las pginas del manual en
lnea han sido escritas con este formato.

host

Nombre de un ordenador en una red.

http

HyperText Transfer Protocol.Protocolo de red para la transferencia de pginas de


hipertexto, o lo que es lo mismo, paginas web como sta

HURD

Nombre del ncleo del sistema que sigue desarrollando la FSF dentro del proyecto
GNU.

inetd

Demonio encargado de mantener en escucha determinados puertos y de llamar a


determinados programas en funcin de las seales recibidas.Por ejemplo, atiende a las
llamadas de telnet, finger o ftp.

init

Init es el primer proceso que se ejecuta en un sistema UNIX/Linux y el que inicia


todos los procesos getty. Tiene varios estados, llamados niveles de ejecucion, que
determinan los servicios que pueden ofrecer. Por ejemplo, dependiendo del nivel
de ejecucion podemos establecer la posibilidad de poner la maquina en modo
monousuario, impidiendo la posibilidad de acceso a otras personas.

initdefault

El valor de initdefault establece el nivel de ejecucin por defecto de entrada al sistema.

inode

Todos los archivos en UNIX/Linux tienen un inode que mantienen informacin referente
al mismo, tal como situacin, derechos de acceso, tamao o tipo de fichero.

job

Orden interna de bash que muestra los trabajos pendientes que tengamos en segundo
o primer plano.

Pgina 112 de 328 Introduccin a Linux


KDE

K Desktop Environment. Entorno de escritorio que integra gestor de ventanas propio


y una barra de tareas y que al igual que GNOME permite la interaccin entre sus
aplicaciones. Programado en C++ y con la base de librerias QT+ ha sido vctima de
crticas por parte de la comunidad GNU/Linux, ya que estas libreras eran propiedad de
una empresa comercial.

kernel

Programa ncleo que se encarga de que funcionen el resto de los programas, que
tengan acceso al disco duro, a la memoria, a la red, etc. Son kernels Linux, FreeBSD,
NetBSD, Hurd, etc.

kernel

Vase ncleo

kerneld

Demonio para la carga dinmica de mdulos. Cuando necesitamos el uso de un


determinado dispositivo, no es necesario tener su controlador todo el tiempo cargado
en memoria, por lo que este demonio se encarga de enlazarlo con el resto del ncleo.

LaTeX

Lenguaje para el formateado de textos. Muy potente y completo.

lilo

LInux LOader. Programa que nos permite elegir que sistema operativo arrancar, en el
caso de tener varios.

Linus Torvalds

Estudiante finlands creador del nucleo de GNU/Linux. Actualmente, el desarrollo del


ncleo, depende de unos cientos de personas, incluido Linus.

Linux

Ncleo del sistema operativo GNU/Linux

login

Plataforma de Teleformacin de IFES Pgina 113 de 328


Programa encargado de la validacin de un usuario a la entrada al sistema. Primero
pide el nombre del usuario y despus comprueba que el password sea el asignado a
ste.

loopback

Sistema de trabajo en red en modo local. Con este sistema podemos trabajar en red
con nuestro propio ordenador; su utilidad radica en probar programas de seguridad,
leer las noticias o el correo de los servidores instalados en nuestro ordenador o
simplemente poder ejecutar Xwindow.

lpd

Demonio encargado de asistir a las peticiones de impresin por parte del sistema.

LuCaS

Organizacin de voluntarios dedicada a la traduccin de documentacin del sistema


GNU/Linux al castellano.

man

Manual en lnea del sistema. Aqu puedes buscar casi cualquier cosa relacionada con
el sistema, sus comandos, las funciones de biblioteca, etc.

mbr

Master Boot Record. Tabla de informacin referente al tamao de las particiones.

mdulos

Porciones de cdigo que se aaden en tiempo de ejecucin al kernel para el manejo de


dispositivos o aadir funciones al ncleo.

monousuario

Sistema informtico que slo admite el trabajo con una persona.

montar

Poner un dispositivo o un sistema de ficheros en disposicin de ser usado por el


sistema.

motif

Pgina 114 de 328 Introduccin a Linux


Librera de funciones para el desarrollo de aplicaciones grficas. Son de caracter
comercial, aunque existe una implementacin libre llamada lesstif

mta

Mail Transfer Agent.Programa encargado del transporte de correo electrnico. Es


el encargado de deliverar las direcciones y de transportarlas hacia su correcta
ubicacin, dentro de nuestra red local o en Internet. Los ms usados en Linux son
Sendmail,qmail,postfix y exim.

mtools

Conjunto de herramientas para la administracin de ficheros, disquetes o discos duros


con el sistema de archivos de msdos.

mua

Mail User Agent. Programa encargado de la lectura y composicin de mensajes de


correo electrnico. Algunos tipicos en Linux son: Mutt,Kmail,Pine,Balsa.

multitarea

Capacidad de un sistema para el trabajo con varias aplicaciones al mismo tiempo.

multiusuario

Capacidad de algunos sistemas para ofrecer sus recursos a diversos usuarios


conectados a travs de terminales.

nntp

Network News Transfer Protocol.Protocolo de transmisin para el envo y recepcin de


los grupos de noticias de USENET.

ncleo

kernel traducido al espaol, normalmente se utiliza el trmino kernel.

ncleo

Parte principal de un sistema operativo, encargado del manejo de los dispositivos, la


gestin de la memoria, del acceso a disco y en general de casi todas las operaciones
del sistema que permanecen invisibles para nosotros.

password

Plataforma de Teleformacin de IFES Pgina 115 de 328


Palabra clave personal, que nos permite el acceso al sistema una vez autentificada con
la que pose el sistema en el fichero passwd.

path

Variable del entorno, cuyo valor contiene los directorios donde el sistema
buscar cuando intente encontrar un comando o aplicacin. Viene definida en los
ficheros .bashrc o .bash_profile de nuestro directorio home.

permisos

Todos los archivos en UNIX/Linux tienen definido un set de permisos que permiten
establecer los derechos de lectura, escritura o ejecucin para el dueo del archivo, el
grupo al que pertenece y los dems usuarios.

PID

Process IDentification. Nmero que identifica un proceso en el sistema; este numero es


nico para cada proceso.

posix

Es un estndar con una serie de normas definidas para permitir la portabilidad entre
diferentes sistemas UNIX. GNU/Linux cumple con este estndar.

postscript

Formato profesional de impresin para impresoras de gama alta.

ppp

Point to Point Protocol. Protocolo de transmisin de datos, utilizado en la mayoria de las


conexiones a internet domesticas.

proceso

Programa en ejecucin en un sistema informtico.

prompt

El prompt es lo siguiente que vemos al entrar al sistema, una linea desde donde el
sistema nos indica que esta listo para recibir ordenes, que puede ser tan sencilla como:
$ o algo mas compleja como: amphora:1505200:home/israel:$

redireccin

Pgina 116 de 328 Introduccin a Linux


Con los operadores de redireccin podemos dirigir la salida de un proceso hacia un
dispositivo diferente al estandar o a un fichero.

respawn

Parametro para el proceso init que indica la necesidad de volver a arrancar el programa
implicado, una vez finalizado o muerto por alguna causa.

root

Persona o personas encargadas de la administracin del sistema Tiene TODO


el privilegio para hacer y deshacer, por lo que su uso para tareas que no sean
absolutamente necesarias es muy peligroso.

sed

Editor de flujo. Sed se utiliza en la manipulacin de cadenas de texto de acuerdo a


unas reglas especificadas.

seales

Las seales son eventos que se hacen llegar a un proceso en ejecucin para su
tratamiento por este. Las seales las podemos mandar nosotros u otros programas a
otros programas. Tienen diferentes valores, y en funcin a esos valores el proceso que
las recibe actua de una manera u otra.

setuid

Establece la identidad del usuario del proceso en curso. Si bien es muy comn oir
hablar del bit set-uid.Este bit establece permisos de root para el programa que que
lo posea, por lo que cualquier usuario puede utilizar ese programa con los mismos
privilegios que el administrador. Es facilmente identificable por la "s" que aparece en
vez de la "x" en los permisos del archivo.

shell

literalmente concha, caparazn. Es el programa que envuelve el ncleo y que se


relaciona con el usuario, se aplica a los programas que esperan que el usuario escriba
una orden y se la pasan al resto del sistema para que la ejecute. Diferentes shells en
Linux son Bash, Ksh, Csh.

shell

Traducido del ingls concha o caparazn. El shell es el intrprete de comandos que


se establece entre nosotros y el kernel. Hay muchos tipos de shell cada uno con sus

Plataforma de Teleformacin de IFES Pgina 117 de 328


propias caractersticas, sin embargo el estandar en GNU/Linux es el shell bash ya que
es el que forma parte del proyecto GNU.

smtp

Simple Mail Transfer Protocol. Ms claro el agua.

superusuario

Ver root.

swap

Memoria virtual. Espacio de disco duro que utiliza el kernel en caso de necesitar mas
memoria de la que tengamos instalada en nuestro ordenador.

telnet

Servicio que nos permite la conexin a otro ordenador de la red, pasando nuestro
sistema a ser una terminal de ese ordenador.

terminal

Una terminal es un teclado y una pantalla conectados por cable u otro medio a un
sistema UNIX/Linux, haciendo uso de los recursos del sistema conectado.

tubera

Las tuberas son como conexiones entre procesos. La salida de un proceso la


encadenamos con la entrada de otro, con lo que podemos procesar unos datos en una
sola lnea de comando.

uid

User IDentification. Nmero que identifica al usuario frente al sistema.

unix

Sistema operativo creado por AT&T a mediados de los 70.

vi

Editor de texto muy potente aunque algo complejo al principio. Es el editor por defecto
en casi todas las distribuciones. Hay versiones mejoradas (vim) o versiones para X
Xvim.

Pgina 118 de 328 Introduccin a Linux


WindowMaker

Gestor de ventanas con buena apariencia y poco consumidor de recursos.

windowmanager

Gestor de ventanas.Programa que se encarga de dar apariencia a los programas que


se ejecutan bajo Xwindow, tambin se encarga de maximizar/minimizar ventanas,
ponerles el marco, un fondo al escritorio...

X Xwindow

Entorno grfico. Es el programa que se encarga de dibujar en pantalla todo lo que


le solicitan los procesos que corren bajo este entorno. Tiene la facultad de visualizar
programas que estn siendo ejecutados en otro ordenador de la red.

X11R6

ltima versin utilizada del sistema de ventanas Xwindow.

xterm

Terminal virtual que funciona bajo el sistema de ventanas Xwindow.

Plataforma de Teleformacin de IFES Pgina 119 de 328


Introduccin a Linux

F.A.Q.
Introduccin e informacin general
Qu es Linux?

LINUX es un sistema operativo compatible Unix.


Dos caractersticas muy peculiares lo diferencian del resto de los sistemas que
podemos encontrar en el mercado; la primera, es que es libre.Esto significa que no
tenemos que pagar ningn tipo de licencia a ninguna casa desarrolladora de software
por el uso del mismo; la segunda, es que el sistema viene acompaado del cdigo
fuente.
El sistema lo forman el Ncleo (leer seccin Kernel/Nucleo) del sistema ,ms un gran
nmero de programas / libreras que hacen posible su utilizacin.
Linux se distribuye bajo la GNU General Public License, por lo tanto, el cdigo fuente
tiene que estar siempre accesible.
El sistema ha sido diseado y programado por multitud de programadores alrededor del
mundo.
El ncleo del sistema sigue en continuo desarrollo bajo la coordinacin de Linus
Torvalds, la persona de la que parti la idea de este proyecto, a principios de la decada
de los noventa.
Da a da, ms y ms programas estn disponibles para este sistema, y la calidad
de los mismos aumenta de versin a versin. La gran mayora de los mismos vienen
acompaados del cdigo fuente y se distribuyen gratuitamente bajo los trminos de
licencia de la GNU Public License.
En los ltimos tiempos, ciertas casas de software comercial han empezado a distribuir
sus productos para Linux y la presencia del mismo en empresas aumenta rpidamente
por la excelente relacin calidad-precio que se consigue con Linux.
Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-.
Pentium, Pentium Pro, Pentium II,Amiga y Atari; tambin existen versiones para su
utilizacin en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.

Historia de Linux

LINUX hace su aparicin a principios de la dcada de los noventa .Era el ao 1991 y


por aquel entonces ,un estudiante de informtica
de la Universidad de Helsinki llamado Linus Torvalds empez, como una aficin y sin
poderse imaginar a lo que llegara este proyecto, a programar las primeras lneas de

Pgina 120 de 328 Introduccin a Linux


cdigo de este sistema operativo llamado LINUX. Este comienzo estuvo inspirado en
MINIX, un pequeo sistema Unix desarrollado por Andy Tanenbaum.
Las primeras discusiones sobre Linux fueron en el grupo de noticias comp.os.minix.En
estas discusiones se hablaba sobre todo del desarrollo de un pequeo sistema Unix
para usuarios de Minix que queran ms. Linus nunca anunci la versin 0.01 de
Linux (agosto 1991). Esta versin no era ni siquiera ejecutable;solamente inclua los
principios del ncleo del sistema, estaba escrita en lenguaje ensamblador y asuma que
uno tena acceso a un sistema Minix para su compilacin.
El 5 de octubre de 1991 Linus anunci la primera version "Oficial" de Linux, versin
0.02. Con esta versin Linus pudo ejecutar Bash (GNU Bourne Again Shell) y gcc (El
compilador GNU de C),pero no mucho ms funcionaba. En este estado de desarrollo
ni se pensaba en los trminos soporte, documentacin, distribucin ..... Despus de la
version 0.03, Linus salt en la numeracin hasta la 0.10. Ms y ms programadores
a lo largo y ancho de internet empezaron a trabajar en el proyecto y, despus de
sucesivas revisiones, Linus increment el nmero de versin hasta la 0.95 (Marzo
1992).
Ms de un ao despus (diciembre 1993), el ncleo del sistema estaba en la version
0.99 y la versin 1.0 no lleg hasta el 14 de marzo de 1994.
Desde entonces no se ha parado de desarrollar.La versin actual del ncleo es la 2.6 y
sigue avanzando da a da con la meta de perfeccionar y mejorar el sistema.

Caractersticas de Linux

Aqu tenis una lista bastante completa con las caractersticas de LINUX [Fuente:
Infosheet-Como. Autor: Ivan Casado] .
Multitarea: La palabra multitarea describe la habilidad de ejecutar varios
programas al mismo tiempo. LINUX utiliza la llamada multitarea preeventiva,
la cual asegura que todos los programas que se estn utilizando en un
momento dado sern ejecutados, siendo el sistema operativo el encargado
de ceder tiempo de microprocesador a cada programa.
Multiusuario:muchos usuarios usando la misma mquina al mismo tiempo.
Multiplataforma: Las plataformas en las que en un principio se puede
utilizar Linux son 386-, 486-, Pentium, Pentium Pro, Pentium II,Amiga y
Atari.Tambin existen versiones para su utilizacin en otras plataformas,
como Alpha, ARM,MIPS, PowerPC y SPARC.
Multiprocesador: Soporte para sistemas con ms de un procesador;est
disponible para Intel y SPARC.
Funciona en modo protegido 386.
Proteccin de la memoria entre procesos, de manera que uno de ellos no
pueda colgar el sistema.
Carga de ejecutables por demanda: Linux slo lee del disco aquellas partes
de un programa que estn siendo usadas actualmente.

Plataforma de Teleformacin de IFES Pgina 121 de 328


Poltica de copia en escritura para la comparticin de pginas entre
ejecutables: esto significa que varios procesos pueden usar la misma

zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa


memoria, la pgina (4Kb de memoria) se copia a otro lugar. Esta poltica de
copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso
de memoria.
Memoria virtual usando paginacin (sin intercambio de procesos completos)
a disco: a una particin o un archivo en el sistema de archivos, o ambos,
con la posibilidad de aadir ms reas de intercambio sobre la marcha .Un
total de 16 zonas de intercambio de 128Mb de tamao mximo pueden ser
usadas en un momento dado con un lmite terico de 2Gb para intercambio.
Este lmite se puede aumentar fcilmente con el cambio de unas cuantas
lneas en el cdigo fuente.
La memoria se gestiona como un recurso unificado para los programas de
usuario y para la cach de disco, de tal forma que toda la memoria libre
puede ser usada para cach, y sta puede a su vez ser reducida cuando se
ejecuten grandes programas.
Libreras compartidas de carga dinmica (DLL's) y libreras estticas.
Se realizan volcados de estado (core dumps) para posibilitar los anlisis
post-mortem, permitiendo el uso de depuradores sobre los programas ,no
slo en ejecucin sino tambin tras abortar estos por cualquier motivo.
Compatible con POSIX, System V y BSD a nivel fuente.
Emulacin de iBCS2, casi completamente compatible con SCO, SVR3 y
SVR4 a nivel binario.
Todo el cdigo fuente est disponible, incluyendo el ncleo completo y todos
los drivers, las herramientas de desarrollo y todos los programas de usuario;
adems todo ello se puede distribuir libremente.
Hay algunos programas comerciales que estn siendo ofrecidos para Linux
actualmente sin cdigo fuente, pero todo lo que ha sido gratuito sigue siendo gratuito.
Control de tareas POSIX.
Pseudo-terminales (pty's).
Emulacin de 387 en el ncleo, de tal forma que los programas no tengan
que hacer su propia emulacin matemtica. Cualquier mquina que ejecute
Linux parecer dotada de coprocesador matemtico. Por supuesto, si el
ordenador ya tiene una FPU (unidad de coma flotante), esta ser usada
en lugar de la emulacin, pudiendo incluso compilar tu propio kernel sin la
emulacin matemtica y conseguir un pequeo ahorro de memoria.
Soporte para muchos teclados nacionales o adaptados y es bastante fcil
aadir nuevos dinmicamente.
Consolas virtuales mltiples: varias sesiones de login a travs de la consola
entre las que se puede cambiar con las combinaciones adecuadas de teclas

Pgina 122 de 328 Introduccin a Linux


(totalmente independiente del hardware de video). Se crean dinmicamente
y puedes tener hasta 64.

Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix


y todos los sistemas de archivo tpicos de System V, y tiene un avanzado
sistema de archivos propio con una capacidad de hasta 4 Tb y nombres de
archivos de hasta 255 caracteres de longitud.
Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT)
mediante un sistema de archivos especial: no es necesario ningn comando
especial para usar la particin MS-DOS, sta parece un sistema de archivos
normal de Unix (excepto por algunas restricciones en los nombres de
archivo, permisos, y esas cosas). Las particiones comprimidas de MS-DOS
6 no son accesibles en este momento, y no se espera que lo sean en el
futuro. El soporte para VFAT (WNT, Windows 95) ha sido aadido al ncleo
de desarrollo y estar en la prxima versin estable.
Un sistema de archivos especial llamado UMSDOS que permite que Linux
sea instalado en un sistema de archivos DOS.
Soporte en slo lectura de HPFS-2 del OS/2 2.1
Sistema de archivos de CD-ROM que lee todos los formatos estndar de
CD-ROM.
TCP/IP, incluyendo ftp, telnet, NFS, etc.
Appletalk.
Software cliente y servidor Netware.
Lan Manager / Windows Native (SMB), software cliente y servidor.
Diversos protocolos de red incluidos en el kernel: TCP, IPv4, IPv6, AX.25,
X.25, IPX, DDP, Netrom, etc.

Linux Copyright

El copyright del kernel de Linux pertenece a Linus Torvalds. ste se distribuye bajo
la GNU General Public License.Esto significa bsicamente que cualquiera puede
libremente copiarlo, cambiarlo y distribuirlo, pero sin posibilidad de aplicar restricciones
en futuras distribuciones y teniendo que incluir el cdigo fuente. Las licencias de los
programas y aplicaciones que acompaan al ncleo varan;muchos pertenecen al
proyecto GNU y se distribuyen bajo GPL.

Fuentes

Las presentes FAQ se han seleccionado de http://www.linux-es.org/Faq/Files/Html/


FAQ_Linux_V2.0.2.html

Plataforma de Teleformacin de IFES Pgina 123 de 328


Antes de la instalacin
Es Linux para m?

Aunque parezca muy simple,esta pregunta conlleva otra serie de cuestiones anejas
que
hemos de considerar para responder con verosimilitud al profano en este sistema. Por
otra parte,aunque convencidos abogados de este sistema operativo frente a los que
no son de cdigo abierto, tambin hemos de aceptar las limitaciones del mismo con
respecto a los nuevos usuarios.
En un principio,linux era para gurs, hackers y desarrolladores...y hay muchos que
piensan que debera seguir siendo as. No obstante, las facilidades que tanto en
instalacin, configuracin y gestin del sistema,han proporcionado las distribuciones en
sus versiones ms recientes han acercado mucho al usuario final al mundo linux.
Cuando pensamos en esta FAQ lo hicimos considerando que los "novatos" en
este sistema podan ser de diversas procedencias: algunos podran ser grandes
conocedores de informtica, programadores y administradores de sistemas "no-
linux",quienes se adaptaran fcilmente; otros podran ser usuarios finales de algn otro
sistema operativo, que utilizan el ordenador para correr aplicaciones, como algunos
conductores usan el vehculo slo como medio para acceder a lugares lejanos en
tiempos cortos, pero no quieren saber nada de mecnica ni electricidad del automvil...
Al preguntarnos ,es linux para m? ,queremos decir ms bien,me conviene usar
Linux? Para qu lo quiero? Hemos ledo muchos libros y un gran nmero de
documentos acerca de linux en relacin con el usuario. Uno de ellos, titulado "Linux for
the masses and other popular myths" de Todd Burgess, trata en profundidad el tema de
los trnsfugas de sistemas operativos por cuestiones de moda (Cool people use Linux
= la gente gai usa linux) y nos dice usa linux:
Si lo requiere la aplicacin que necesitas

Si deseas aumentar tu conocimiento acerca de sistemas operativos


Si no te importa investigar "per se", como imperativo categrico.
No uses linux:
Si no ests ducho en sistemas operativos
Slo porque no es Microsoft
Si piensas que por eso eres ms gai, inteligente o mejor que el usuario
medio.En una lnea similar, encontramos otro interesante documento que
mantena que no deberamos usar linux:
Si nuestras necesidades estn cubiertas con nuestro sistema actual y
pensamos que continuar as en el futuro.
Si trabajamos en un ambiente comercial/industrial/profesional donde no se
usa linux y no disponemos de apoyo tcnico por parte de nuestra plantilla
tcnica ni pensamos poder proporcionar dicho apoyo nosotros mismos.

Pgina 124 de 328 Introduccin a Linux


Si alguna aplicacin importante y necesaria para nuestro trabajo no est
disponible en linux ni hay sustitutos adecuados.

Mucha gente que lea esta FAQ en el futuro, provendr del ambiente Microsoft
(Windows 95/98/NT/00 ).
En tal caso, aqullos que usaren su computador bsicamente para el procesamiento de
textos y el empleo de hojas de clculo, deberan quedarse como estn.
A pesar de todos sus fallos, Windows es fcil de usar, ms an de aprender y dispone
de una ingente cantidad de software.
Los que tienen otras ambiciones, pueden plantearse cambiar a linux por 10 importantes
razones(http://www.reichel.net/opensource/linuxtop10.html ):
1.Las distribuciones de Linux no son costosas: pueden obtenerse gratis de los lugares
apropiados de internet o bien comprar los CDs por muy poco dinero comparado con
otros sistemas comerciales.
2. Linux es un sistema operativo completo con tres grandes caractersticas: estable
(es muy raro que colapse una aplicacin en linux), fidedigno (un servidor linux puede
funcionar durante cientos de das sin necesidad de reiniciarse, lo que no es comn en
sistemas Windows) y extremadamente potente.
3.Tiene un entorno de programacin completo,incluyendo C, C++, compiladores
Fortran, utilidades como Qt y lenguajes de guiones (scripts) como Perl, gwak y sed. (un
simple compilador C para Windows cuesta cientos de dlares)
4.Presenta una excelentes prestaciones para conexin en red, permitiendo compartir
PPUs y mdems.
5.Constituye el entorno ideal para hacer funcionar servidores web (Apache) o FTP
(oran).
6.Adems del software "libre", hay tambin bastante software comercial para linux.
7. Se actualiza y mantiene fcilmente (a diferencia de Windows).
8. Admite mltiples procesadores como norma.
9. Es realmente multitarea (a diferencia de Windows).
10.Tiene un excelente servidor X-windows y numerosos gestores de ventanas X. y
adems, por instalar linux no tendremos que renunciar a Windows: es posible gestionar
linux + otros sistemas operativos en el mismo ordenador.
Para terminar, me gustara copiar literalmente un trozo de la introduccin de un libro
titulado "Manual Avanzado de linux" de Ral Montero Rivero (Ed. Anaya) que viene
como anillo al dedo al nuevo usuario de nuestro sistema:
"Aprenders qu es linux, sus virtudes y sus defectos, cmo puedes conseguirlo, qu
distribucin elegir a la hora de instalarlo, cmo administrar tu sistema correctamente,
cmo trabajar con X-windows, cmo conectarte con l a Internet...Pero no todo va a ser
tan fcil con linux, porque como comprobars, no es un sistema hecho para cobardes.
Tendrs que ser valiente".
Si te da miedo formatear tu disco duro, linux no es para ti. Si te acobarda tener que
reinstalar todo de nuevo slo porque has cometido un pequeo error en el proceso
de instalacin, abandona y no sigas. Si te aterra la mera idea de particionar tu disco

Plataforma de Teleformacin de IFES Pgina 125 de 328


duro, apaga y vmonos. Y si te vas a pasar todo el rato pensando que al configurar
la frecuencia de tu monitor para que funcione X windows, te lo puedes cargar, mejor
que vuelvas a tu Windows de siempre. Ahora seguro que ya sabes si linux es para ti...
Bienvenido!

Cunto espacio necesito en mi disco duro para instalar Linux?

Esto depende en gran medida de la cantidad de programas/paquetes que quieras


instalar, del espacio que reserves para swap (espacio de intercambio) y del espacio
libre que quieras tener para datos/documentos. Hay que puntualizar que los datos que
se dan en esta subseccin hacen referencia al sistema en s, ms programas.
Una instalacin super mnima,necesitar alrededor de unos 10MB.

Una instalacin mnima con las X includas, alrededor de los 80Mb.


Para tener un sistema completo (sistema/libreras/programas/aplicaciones/
espacio para almacenamiento de datos),funcional y siendo realistas, habra
que tener de 500Mb a 1,5Gb de espacio en el disco duro. Como en cualquier
sistema, si quieres instalar todos los programas que pasen por tus manos o
si la cantidad de informacin con la que trabajas es muy grande, necesitars
ms y ms espacio y siempre te parecer poco el que tienes.

Cunta memoria necesito para usar Linux?

Esto depender tambin en gran medida del uso que le vayas a dar a tu
mquina.Cuanta ms memoria, mejor trabajar. Aqu tienes unos datos orientativos
sobre la cantidad de memoria necesaria:
Como mnimo se necesitan 4Mb de memoria RAM para utilizar Linux.Esta
cantidad es como se indica mnima y no apta para trabajar con sistemas
grficos.

Para trabajar con las X-windows de una manera decente (depender del
entorno grfico utilizado) se necesitar como mnimo 16Mb.
Para un uso intensivo y para trabajar con programas que requieren muchos
recursos,se recomienda de 32Mb en adelante. Cuanta ms memoria se
tenga, ms suelto trabajar nuestro sistema y ms programas podremos
tener cargados en memoria.

Funcionar mi equipo con linux?

Hoy en da la gran mayora de hardware est soportado por Linux,as que no deberiais
tener problemas.De todas maneras, existen configuraciones que no estn soportadas
y quizs ltimos modelos de tarjetas grficas, controladoras, etc, que tampoco
lo estn.Da a da se trabaja para dar soporte a nuevo hardware y lo que no este
soportado hoy, probablemente est soportado muy pronto. En un pasado,muchas

Pgina 126 de 328 Introduccin a Linux


casas de productos no apoyaban a linux,con el consiguiente retraso en el soporte a
estos productos con respecto a otros sistemas operativos, pero ltimamente esto est
cambiando rpidamente.Si queris comprobar si vuestro hardware est soportado por
linux o no, leed el Hardware-Howto,un documento con el hardware soportado por linux.
Tambin os podis pasar por esta excelente web, Linuxhardware.net, donde podris
consultar sobre vuestro hardware.

Cmo consigo Linux?

Linux es una sistema de libre distribucin por lo que podis encontrar todos los ficheros
necesarios para su funcionamiento en multitud de servidores conectados a Internet.
Casi todos los principales distribuidores de Linux ofrecen la posibilidad de bajarse
sus distribuciones va FTP. Otra alternativa para los que van a instalar el sistema por
primera vez son las llamadas "Distribuciones" de Linux. Una distribucin no es otra
cosa que una recopilacin de programas y ficheros, organizados y preparados para
su instalacin. Estas distribuciones se pueden obtener a travs de Internet,como ya
hemos explicado, pero tambin se encuentran en varios CDes conteniendo todos los
ficheros necesarios para instalar un sistema Linux bastante completo y, en la mayora
de los casos, un programa de instalacin que nos ayudar en la tarea de una primera
instalacin.
Existen varias distribuciones creadas por diferentes empresas a unos precios bastantes
asequibles las cuales deberiais poder encontrar en tiendas de informtica o libreras.En
el peor de los casos siempre podis encargarlas directamente por Internet a las
empresas que las crean.A veces las revistas de informtica sacan una edicin
bastante aceptable de alguna distribucin.Si vais a instalar el sistema por primera
vez os recomiendo haceros con una de estas distribuciones y en un futuro, cuando
queris actualizar el sistema con las ltimas versiones y actualizaciones del ncleo y
programas que utilicis, usad Internet.
Para ms informacin sobre las distintas distribuciones de Linux podis leer la Linux
Distribution HOWTO. A continuacin tenis una lista con las principales distribuciones:
Redhat Pagina web:

http://www.redhat.com
FTP principal:
ftp://ftp.redhat.com/pub/
Debian Pagina web:

http://www.debian.org/
FTP principal:
ftp://ftp.debian.org/debian/
SuSE Pagina web:

http://www.suse.de/es/

Plataforma de Teleformacin de IFES Pgina 127 de 328


FTP principal:
ftp://ftp.suse.com/
Caldera Openlinux Pagina web:

http://www.caldera.com/
FTP principal:
ftp://ftp.caldera.com/pub/OpenLinux/
Slackware Pagina web:

http://www.slackware.com/
FTP principal:
ftp://ftp.cdrom.com/pub/linux/slackware
Eurielec Pagina web:

http://www.eurielec.etsit.upm.es/linux/
FTP principal:
ftp://ftp.dit.upm.es/linux/
Esware Pagina web:

http://www.esware.com/
FTP principal:
ftp://ftp.hardlogic.es/pub/

Qu distribucin es la mejor?

Esta pregunta se podra denominar "la pregunta del milln".Son muchos los usuarios
que la hacen y la respuesta no es fcil de hacer.Como ya se ha explicado en la seccin
Que es Linux?, un sistema Linux est formado por el ncleo (Leer seccion kernel/
nucleo) ms una serie de programas y libreras que hacen posible tener un sistema
productivo y operativo. Tanto el ncleo, como las libreras y programas necesarios
estn disponibles libremente en internet. Con esto, cualquiera con conocimientos,
puede instalarse un sistema Linux sin necesidad de adquirir una distribucin, o crear
una nueva distribucin desde cero.No hace falta decir que hacer esto es una tarea que
requiere muchos conocimientos y tiempo. Lo que hacen las empresas que crean una
distribucion es precisamente esto, poner todos los componentes necesarios juntos,
con esto nos evitamos el tener que hacerlo nosotros. Las distribuciones suelen traer un
programa de instalacion, generalmente creado por la empresa que crea la distribucion,
manuales con documentacion, una serie de programas/librerias para poder usar el
sistema, un kernel, y en algunas ocasiones aplicaciones diversas y soporte tecnico.
Sabido esto, podemos afirmar que la diferencia entre una distribucin u otra es la
calidad de lo includo en la misma.
Algunos programas de instalacin pueden ser ms intuitivos que otros o ms faciles
de utilizar.La calidad de la documentacin,que el conjunto de programas/librerias estn
bien testeados y funcionen bien juntos (diferentes versiones, libreras, etc),soporte

Pgina 128 de 328 Introduccin a Linux


eficiente, etc,el kernel es el mismo en todas las distribuciones,excepto en la version,es
decir, una distribucin A con el kernel 2.2.9 y otra distribucin distinta B con el kernel
2.2.9 estn utilizando exactamente el mismo kernel,el kernel es comn a todas
las distribuciones y no existe un kernel para una distribucin y otro para otra. A
continuacin tenis unos comentarios sobre las distribuciones ms usadas. No son
en absoluto todas, pero s son las que forman el mayor porcentaje de sistemas Linux
instalados.
Redhat:
Ms extendida, buena calidad.

Fcil de instalar,incluye programas de configuracin que simplifican ciertas


tareas.
Buena documentacin (en ingls).
Buen seguimiento de fallos y correcciones de los mismos pueden bajarse de
su web.
Debian:
Muy buena calidad. No est sometida a presiones comerciales,cuidan
mucho la calidad antes de su lanzamiento.

Definida tpicamente como la distribucin de los usuarios avanzados. Puede


ser un poco difcil de instalar para el usuario iniciado y sin conocimientos de
informtica.
Buena documentacin (en ingls).
Buen seguimiento de fallos y correcciones de los mismos pueden bajarse de
su web.
SuSE:
Buena calidad germana.

Fcil de instalar, incluye programas de configuracin que simplifican ciertas


tareas.
Buena documentacin (gran parte en castellano).
Buen seguimiento de fallos y correcciones de los mismos pueden bajarse de
su web.
Caldera:
Buena calidad.
Fcil de instalar.
Buena documentacin (en ingls).
Buen seguimiento de fallos y correcciones de los mismos pueden bajarse de
su web Slackware:
Esta distribucin fue de las primeras y durante un largo tiempo fue la que
ms se utiliz.Ha tenido un tiempo en que no se ha actualizado mucho y eso
le ha hecho perder seguidores.Parece que ha vuelto con fuerza.
Un poco ms complicada de configurar que la media.

Plataforma de Teleformacin de IFES Pgina 129 de 328


Documentacin en ingls.

Puedo tener ms de un sistema operativo en mi equipo?

La respuesta es s,no es ningn problema el tener ms de un sistema operativo en


tu mquina. Es ms,hay mucha gente que tiene incluso 3 y 4 sistemas.Para hacer
esto hay que tener claro cmo se instalan los sistemas que queremos tener, cmo
realizar particiones en el disco duro (Leer seccin durante la instalacin) y en qu orden
deberamos instalarlos para que no tengamos problemas.
Existen unos documentos Howtos y MiniHowtos que explican muy bien cmo tener
diferentes sistemas en tu ordenador; los podris encontrar en cualquier servidor que
contenga la documentacin de Linux. Ms informacin en la subseccin "Dnde
encuentro documentacion sobre linux?":
Linux-DOS-Win95-OS2

Linux + FreeBSD
NT Loader+Linux
Linux+Win95
Loadlin+Win95

Funcionan mis programas/juegos para Windows en Linux?

Como primera afirmacin,podemos decir que no:tus programas para Windows


no funcionarn en Linux. Windows y Linux/Unix no son compatibles y programas
compilados en una u otra plataforma no funcionarn en otra plataforma que no sea
en la que el programa se compil para su utilizacin. Como segunda afirmacin,
podemos decir que en algunos casos es posible ejecutar programas para Windows
en Linux, si hacemos uso de un emulador de windows para Linux. Un emulador es un
programa que se ejecuta en Linux y que crea una mquina virtual windows, engaando
al programa windows, que creer que se est ejecutando en un sistema Windows.
Existen dos emuladores de uso comn, Wine (libre) y WMware (comercial).De estos
dos parece ser que WMware es de una calidad superior y que funcione sin grandes
problemas. Podramos aconsejar el no usar emuladores para evitar problemas. A no
ser que tengas necesidad de usar una aplicacin muy especial,existen versiones de
programas con caractersticas similares a los de Windows,nativos de Linux, con lo que
probablemente te funcionen mejor,ms rpido y no te consuman tantos recursos. La
eleccin es vuestra .

Qu tengo que saber antes de instalar linux?

Introduccin :
Si nos ceimos a esta FAQ, en la seccin 1 se proporciona una informacin de carcter
general acerca de qu es Linux, su historia, caractersticas,... .

Pgina 130 de 328 Introduccin a Linux


En la segunda seccin se aaden otros aspectos fundamentales como ,para qu
quiero linux? Qu espacio y memoria necesito? Funcionar en mi equipo? (si lo
tengo) Cmo lo consigo? Qu distribucin es la que ms me conviene? etc...
Lo que se ha abordado en esta seccin son los datos relativos al sistema donde
vamos a instalar linux. Muchos usuarios desconocen por completo qu es lo que estn
usando: no saben qu placa base tienen, ni qu tipo de memoria, qu tarjeta de vdeo,
si su ratn es serie o ps2, ...y por supuesto otras ms sutiles como el refresco vertical
de la pantalla de su monitor.
Es necesario conocer el tipo de hardware de nuestro sistema informtico para ver si es
compatible con la distribucin de linux que vamos a instalar. Hay un par de libros de la
editorial Anaya que son excelentes para prepararse:
Patrick Volkerding, Kevin Reichard y Eric Foster-Johnsos, Instalacin y
configuracin de Linux, Anaya, Madrid, 1999

Naba Barkakati, RedHat Linux a fondo, Anaya, Madrid,1999 Antes de


instalar Linux hay que preparar el PC para la instalacin. Puede que ya
dispongamos de un PC con algn sistema operativo instalado como MS-
DOS, Windows o OS/2 o puede ocurrir que vayamos a comprarnos un PC
nuevo para instalar Linux en l. En este ltimo caso podremos elegir el
hardware y los perifricos compatibles con linux. De todos modos, en el
apartado siguiente, nos dedicaremos a considerar el hardware soportado
por el sistema operativo linux. Los componentes fundamentales En la tabla
adjunta se indican los requerimientos mnimos (M) y ptimos (O) para los
componentes ms tpicos de un PC
Procesador : Intel 80386 (M); Pentium, i486 y cualquier clnico de Intel (O)
RAM: 8 MB (M); de 32 MB a 2 GB
Tarjeta grfica: VGA (M), SVGA o tarjeta soportada por las XFree86 (O)
Disco duro: 125 MB (M); 500 MB o ms (O)
Bus: Todos (M = O)
Lector CD-ROM: velocidad de x2 (M); x8 o mayor (O)
Ratn: Microsoft, Logitech o compatible (M=O)
Tarjeta de red: Ninguna (M); Cualquiera soportada (O) .A continuacin
veremos todo desde un punto de vista mucho ms pormenorizado.
La Unidad Central de Procesos:
Linux funcioma bien con cualquier procesador a partir de i386, especialmente i486,
Pentium, Pentium Pro Pentium II/III y los Intel compatibles AMD y Cyrix. No funcionar
con ningn i286 o inferior porque no son de 32 bits (aunque existen proyetos por ah
para hacerlo funcionar en 8086 /80286).
Buses:
Linux los admite todos: ISA, VLB, EISA, PCI, PS/2 y MCA (este ltimo desde la versin
2.0.7).

Plataforma de Teleformacin de IFES Pgina 131 de 328


Hay dos placas base que no funcionan con linux: la Supermicro P5MMA y la
Supermicro P5MMA98. Para que lo hagan es necesario descargar de la red BIOS
adecuadas: ftp.supermicro.commma9051.zip y ftp.supermicro.com/a98905.zip/
Memoria RAM: para que el sistema con X-windows funcione decentemente debera
disponer de al menos 16 MB de RAM. Como mximo puede gestionar 2 GB de RAM,
pero a partir de 1 GB, pueden aparecer grandes limitaciones en la celeridad si no se
instala memoria cach adicional en el PC. Si la memoria es superior a 64 MB habr
de indicarse al sistema en el fichero de configuracin de LILO /etc/lilo.conf como una
lnea (esto no es necesario a partir de la serie 2.2.x del kernel); p.ej., si tenemos 128
MB pondremos ## append="mem=128M"
Discos duros:
Linux funciona con cualquier disco duro compatible con el BIOS del PC. Para instalar
linux en el PC, no vendra mal disponer de una particin de alrededor de 1 GB para
el linux native. Si se usa un disco duro de gran capacidad (que tenga ms de 1024
cilindros), entonces habremos de situar LILO, el kernel y los archivos de configuracin
en los primeros 1023 cilindros. Realmente linux no trabaja con los discos directamente,
sino con los controladores del disco. Linux funciona con todos los controladores IDE e
IDE/ATAPI, ciertos controladores EIDE (que gestionan hasta cuatro dispositivos sean
discos duros o CD-ROMs) y los controladores SCSI a excepcin de los adaptadores
SCSI de puerto paralelo.
Miscelnea:
La gran mayora del hardware soportado por linux puede consultarse en las direcciones
http://es.tldp.org/COMO-INSFLUG/COMOs/Compatibilidad-Hardware-Como/ , http://
www.xfree86.org/ y http://linuxhardware.net/ .
Todo sobre controladores EIDE, SCSI, Lectores y grabadores CD-ROM, Unidades de
cinta, Unidades extrables, ratones (trackballs y touchpads), tarjetas de red (Ethernet,
RDSI, Token-Ring, ARCnet...), tarjetas grficas includas en la ltima lista de XFree86,
tarjetas de sonido, dispositivos PCMCIA, etc. , se encuentra en estas direcciones y
deben consultarse para evitar sorpresas.
El peligro de Windows:
Impresoras y modems:
Existe un peligro en lo que respecta a ciertas impresoras y modems llamados
winprinters y winmodems que no funcionan en linux. Hay dos tipos de impresoras
que definitivamente no funcionan con linux: todas las impresoras Hewlett-Packard
Desjet 820xx y la Sharp JX-9210 que slo funcionan con Windows 95. El resto son
compatibles con linux, aunque en ciertos casos hace falta descargar controladores
(Canon BJC600/800; HP Deskjet 500/.../855C) o programas que mejoran la calidad de
impresin (como el free-lj4 para la serie HP Laserjet 4). El problema de los winmodems
es que parte del hardware es sustituido por software y ese software solamente es
de Windows, con lo cual no pueden funcionar en linux. Lo malo es que al comprar
un mdem nos venden un winmodem sin avisar. Si tenemos uno de ellos lo mejor
es reemplazarlo por otro que funcione en linux. Para ello lo mejor es consultar en la

Pgina 132 de 328 Introduccin a Linux


direccin http://es.tldp.org/FAQ/FAQ_Linux/Html/FAQ_Linux-8.html para escoger uno
adecuado.
Antes de la instalacin...
Antes de comenzar la instalacin, es necesario recoger la informacin necesaria para
llevar a buen trmino el proceso:
Controlador marca y modelo del CD-ROM

Marca y modelo de la tarjeta ethernet


Modelo, fabricante y puerto usado por el ratn
Modelo Chipset y fabricante de la tarjeta grfica
Servidor X compatible con la tarjeta grfica
Memoria de la tarjeta grfica
Modelo, fabricante y datos de la tarjeta de sonido
Intervalos de trabajo de barrido horizontal (kHz) y de refresco vertical (Hz)
del Monitor.
Fabricante, modelo y puerto serie usado por el mdem
Fabricante y modelo de impresora
Nombre del computador
Nombre del dominio de red
Direccin IP asignada al computador
Direccin de red de area local
Direccin de la mscara de red
Direccin de transmisin de la red
Direccin del encaminador
Direccin del servidor de nombres
Todos estos datos sern necesarios para instalar convenientemente el hardware y
configurar las X-windows. Por ltimo, antes de comenzar sera bueno haber ledo un
poco de linux o -mejor an- tener un amigo que ya conozca el sistema y que se digne a
acompaarnos durante la instalacin y configuracin de nuestra distribucin.

Durante la instalacin
Dnde instalo Linux?

Linux se puede instalar en cualquier disco que tengas en tu sistema y en cualquier


particin del disco duro (primaria o extendida).No podrs tener Linux en una particin
compartida con otro sistema operativo.Linux necesita su propia particin/es para
funcionar.

Qu es una particin? Cmo creo una particin?

Particionar el disco duro es una manera de dividir el disco fsico en varios discos
lgicos. O lo que es lo mismo, al particionar un disco, dividimos el disco en varias

Plataforma de Teleformacin de IFES Pgina 133 de 328


particiones independientes unas de otras, creando la ilusin de que tenemos diferentes
discos, cuando en realidad lo que tenemos es un solo disco fsico dividido en partes.
Una particin es una de estas partes (divisiones) del disco. Existen dos clases de
particiones: primarias y extendidas. En un disco slo podrs tener como mximo 4
particiones primaria y 1 extendida. En la particin extendida se podrn definir todas
(bueno,tambin existe un lmite, pero es alto) las unidades lgicas que queramos.
Con este sistema podemos tener una gran cantidad de particiones en nuestro disco.
Cualquier disco que tengamos en nuestro ordenador tiene al menos una particin
primaria,que en la mayora de los casos tiene un tamao equivalente al total del disco.
Unos ejemplos aclararn las cosas:
Un disco de 1Gb con una sola particin, tendr una particin primaria de 1Gb
(total del disco).

Ese mismo disco podra tener 4 particiones primarias de 0.25Gb cada


una,dando la ilusin de que tenemos 4 discos duros de 0.25Gb en vez de un
solo disco de 1Gb.
Otra combinacin posible podra ser 4 particiones primarias de 0.10Gb
y 1 extendida con 6 unidades logicas de 0.10Gb.En este caso parecera
que tenemos 10 discos duros de 0.10Gb cada uno.Las combinaciones
son mltiples y variadas y dependern de nuestros gustos y de lo que
necesitemos.
Casi todos los sistemas operativos traen un programa con el que podemos
crear,modificar, borrar las particiones de nuestro disco. En Ms-Dos/Windows se llama
FDISK. Este programa slo puede trabajar con particiones de Ms-Dos/Windows. En
Linux tambin se llama FDISK (/sbin/fdisk), pero es un programa ms potente, capaz
de trabajar y crear particiones tanto para Linux como otros sistemas operativos. Si vas
a trabajar con Linux, es recomendable el uso del FDISK que viene con tu distribucin,
para evitar problemas.
Al contrario que Ms-Dos, Windows, OS/2, las diferentes particiones en linux no se
denominan C:, D:, E:, ...., etc. Existe una denominacin propia.
Si los discos son IDE:
/dev/hda: Disco duro IDE como master en el canal IDE 1.
/dev/hda1: Particin primaria 1 en /dev/hda
/dev/hda2: Particin primaria 2 en /dev/hda
/dev/hda3: Particin primaria 3 en /dev/hda
/dev/hda4: Particin primaria 4 en /dev/hda
/dev/hda5: Particin extendida 1 en /dev/hda
/dev/hda6: Particin extendida 2 en /dev/hda
.....
.....
/dev/hda16: Particin extendida 16 en /dev/hda
/dev/hdb: Disco duro IDE como esclavo en el canal IDE 1.
/dev/hdb1: Particin primaria 1 en /dev/hdb * ........

Pgina 134 de 328 Introduccin a Linux


........

/dev/hdc: Disco duro IDE como master en el canal IDE 2.


/dev/hdc1: Particin primaria 1 en /dev/hdc * ........
........
/dev/hdd: Disco duro IDE como esclavo en el canal IDE 2.
/dev/hdd1: Particion primaria 1 en /dev/hdd * ........
........
Si los discos son SCSI:
/dev/sda: Disco duro SCSI nr.1.

/dev/sda1: Particin primaria 1 en /dev/sda


........
........
/dev/sdb: Disco duro SCSI nr.2.
/dev/sdb1: Particin primaria 1 en /dev/sdb * ........
........
IMPORTANTE: Es muy importante saber lo que se est haciendo cuando trabajis
con programas que modifican la tabla de particiones de un disco. Al cambiar la tabla
de particiones de vuestro disco, se pierden los datos contenidos en las particiones
afectadas. Realizad copias de seguridad de los datos que queris mantener antes de
usar FDISK.

Por qu necesito diferentes particiones?

El particionar el disco es simplemente una manera de organizar tu disco duro.Podrs


organizarlo con una sola particin o en varias. Es el usuario el que deber decidir
cuntas particiones tendr su disco y el tamao de las mismas.
Hay que recordar que al menos hay que tener una particin primaria.
Desventajas de tener vuestro disco dividido en diferentes particiones:ninguna.
Ventajas de tener vuestro disco particionado en varias particiones:
Si tenis un error/problema en una de ellas, las dems no se vern
afectadas.

Poder tener diferentes sistemas operativos en vuestra mquina,totalmente


independientes unos de otros.
Poder tener vuestros archivos de datos en particiones totalmente
independientes.
Poder borrar/cambiar el contenido de una particin, sin que esto afecte a las
dems.

Cuntas particiones necesito para Linux?

Plataforma de Teleformacin de IFES Pgina 135 de 328


La respuesta rpida y fcil es: recomendable al menos dos,una para el sistema/datos
y otra para Swap.Usualmente se suelen tener tres, una para el sistema/programas
(/), otra para los datos (/home) y otra para swap. La respuesta larga y no tan fcil es
ms complicada de explicar:todo depender muchsimo del uso que se le vaya a dar al
sistema.Para sistemas que se utilicen de forma particular y por uno o pocos usuarios
bastar con las dos/tres particiones antes mencionadas;esto evitar los problemas
de saber qu cantidad de espacio necesitan las diferentes particiones y el quedarnos
sin espacio en alguna particion vital,mientras que nos sobra en otras.Para sistemas
servidores, con gran cantidad de servicios y usuarios, es muy recomendable tener
varias particiones/discos.
Existe un documento (HOWTO: Multi Disk System Tuning) muy bueno y quizs
complicado para el principiante que explica cuntas particiones, discos y qu tamao
deberan tener en funcin del uso que se le vaya a dar al sistema .Lo podis encontrar
en http://www.nyx.net/~sgjoen/disk.html, o en cualquier servidor con documentacin
Howto.

Qu es la Swap ?

La swap es un espacio reservado en tu disco duro para poder usarse como una
extensin de memoria virtual de tu sistema. Es una tcnica utilizada desde hace tiempo
para hacer creer a los programas que existe ms memoria RAM de la que en realidad
existe. Es el propio sistema operativo el que se encarga de pasar datos a la swap
cuando necesita ms espacio libre en la RAM y viceversa. En Linux, la memoria total
disponible por el sistema estar formada por la cantidad de memoria RAM instalada +
la swap disponible.
El acceso a la swap (disco duro) es ms lento que el acceso a la memoria RAM, por
lo que si nuestro ordenador est muy cargado de trabajo y hace un uso intensivo de
la swap, la velocidad del sistema disminuir.Un uso muy intensivo y continuado de
la swap es un indicativo de que necesitamos ms memoria en nuestro sistema para
que funcione desahogado con el uso que le estamos dando. En linux generalmente se
usa como mnimo una particin dedicada a swap (aunque tambin se puede tener un
fichero swap).

Cunta Swap necesito?

sta es otra pregunta que es difcil de contestar:todo depender del uso que se le vaya
a dar al sistema y del espacio libre que tengamos.Si vas a utilizar muchos programas
a la vez y tienes poca memoria RAM, necesitars ms swap;si tienes mucha RAM, no
necesitars tanta swap.
Hay que recordar que un uso no intensivo de la swap es normal y no afectar mucho
a la velocidad del sistema,pero como hemos dicho antes,un uso muy intensivo y
continuado es un indicativo de que necesitamos ms memoria RAM. No existe una
frmula mgica para saber cunto espacio deberamos reservar para swap.Hay

Pgina 136 de 328 Introduccin a Linux


que recordar que la memoria total disponible en Linux es RAM + Swap.Como datos
orientativos podramos decir que como mnimo,esta combinacin debera ser de 32MB
para sistemas que se utilicen en modo texto y de 64MB en adelante para sistemas que
se utilicen en modo grfico. Aqu tenis una serie de consejos sobre la swap:
Es recomendable el tener siempre algo de swap configurada,incluso en
sistemas con mucha memoria.

En linux no se puede tener mas de 128MB en una particion swap.Si


necesitas ms de 128MB de swap,puedes tener ms de una particion
dedicada a swap,por ejemplo,dos de 128MB
Si tienes ms de un disco,instala la swap en el que trabaje ms rpido.
Si tienes ms de un disco que se puedan acceder simultaneamente (por
ej. dos SCSI, o dos IDE en diferentes canales IDE),se puede ganar algo
de velocidad teniendo una particin swap en cada uno de estos discos.
Para un uso privado "normal-alto" del sistema, aqu tenis unos ejemplos
orientativos,segn mi opinin,de la cantidad de swap recomendable:
16MB RAM + 64MB Swap
32MB RAM + 96MB Swap
64MB RAM + 64MB Swap
128MB RAM + 128MB Swap
256MB RAM + 128MB Swap
Como dato anecdtico,decir que existen servidores,en donde la cantidad de swap llega
a ser de 256MB y hasta 512MB aunque yo tengo ordenadores con 16MB de RAM y
16MB de Swap como servidores de impresin que funcionan sin ningn problema. En
fin, cada uno debe saber el uso que le va a dar a su sistema y analizar la cantidad de
memoria necesaria,aunque si tenis espacio de sobra en el disco,ms vale tener mas
Swap disponible que la necesaria,por lo que pueda ocurrir en un futuro.
Como dice el dicho,ms vale que sobre que no que falte.

No tengo sitio en mi disco duro,qu hago?

Si tienes todo el espacio de tu disco ocupado por otros sistemas


operativos,debersconseguir espacio para poder crear la particin/es donde instalar
Linux. Existen tres maneras de hacer esto:la primera, compra un disco duro e instlalo.
Ventajas: Es la manera ms fcil y segura de conseguir ms espacio.

Desventajas: Es la ms cara ;tienes que instalar un nuevo disco duro.


La segunda es borrar todas las particiones de tu disco duro,con lo que perders toda la
informacin que contiene, y empezar desde cero a definir las diferentes particiones del
disco. As podrs definir las particiones para Linux y otros sistemas operativos si vas a
tenerlos.
Ventajas: Es la manera ms fcil y barata de conseguir ms espacio,no
necesitas comprar otro disco.

Plataforma de Teleformacin de IFES Pgina 137 de 328


Desventajas: Pierdes la informacin que ya tengas en el disco; ms trabajo,
ya que si tienes ms de un sistema operativo tienes que instalarlos tambin
aparte de Linux.

La tercera,existen unos programas que permiten cambiar la tabla de particiones del


disco,sin perder los datos de las mismas.
Si tienes por ejemplo una particin de 1GB con 500MB libres, puedes utilizar
uno de estos programas para "robarle" espacio a la particin y crear una nueva
particin,teniendo al final por ej. una particion de 600MB con la informacin de la
particion original y una nueva particin con el resto de espacio liberado.
Ventajas: Liberas espacio sin perder datos; no tienes que instalar de nuevo
la informacin/sistema operativo contenido en la particion original.

Desventajas: Ests jugando con la tabla de particiones del disco,hay


que saber muy bien lo que se hace y cmo utilizar estos programas
"ladrones de espacio".Si algo va mal,puedes perder la informacin que
tenas en la particin original y debers empezar de cero como en el caso
segundo.Existen dos programas "ladrones de espacio" que se suelen utilizar
normalmente en el caso tercero:
Partition Magic: Pagina web principal http://www.powerquest.com/root/intnl/
spanish.html
FIPS: Pagina web principal http://bmrc.berkeley.edu/people/chaffee/fips/
fips.html

Cmo configurar el arranque de Linux?

La manera ms fcil de arrancar Linux es con LILO.Psate por la seccin sobre LILO
para ms informacin.

Cmo utilizar LoadLin para el arranque de Linux?

A veces ciertos programas o "sistemas operativos" estn diseados para modificar el


Master Boot Record (MBR) del ordenador sin tener en cuenta los contenidos actuales
del mismo,lo que suele redundar en la eliminacin de LILO y la imposibilidad del
usuario de entrar en Linux. Para solucionar estos problemas, o por si simplemente
deseamos entrar en Linux desde MSDOS, est disponible el programa LOADLIN.
Loadlin es un programa de MSDOS que podemos encontrar en el directorio dosutils
de los CDs de Linux (en la propia distribucin).Este programa permite arrancar Linux
desde MSDOS a partir de l mismo,un fichero kernel de Linux (como vmlinuz, bzImage
o zImage) y una particin Linux. Mediante l podemos hacernos un disco de seguridad
para arrancar Linux cuando LILO sea borrado por otros S.O.:
creamos un directorio a:\loadlin y copiamos alli el ejecutable Loadlin.exe.

Pgina 138 de 328 Introduccin a Linux


Copiamos tambin cualquier ncleo de Linux que tengamos disponible(por ejemplo
\vmlinuz o \boot\bzImage) al mismo diskette. Cuando necesitemos arrancar desde el
diskette, arrancamos en MSDOS y ejecutamos lo siguiente:
Formato de uso:
loadlin kernel root=particion, en nuestro caso: ## a: loadlin bzImage
root=/dev/hda4
(cambiando cada cosa por su nombre correcto de fichero de kernel y particin donde
tengamos instalado Linux). Esto lo podemos escribir en el mismo diskette en un fichero
linux.bat,por ejemplo.
Tras ejecutarlo,Linux arrancar normalmente con dicho kernel y con los datos de la
particin indicada,lo cual permite restaurar el MBR original (con LILO) ejecutando de
nuevo LILO(mediante /sbin/lilo, o /sbin/lilo -v).

Sobre LILO
Qu es LILO y para qu sirve?

LILO,literalmente el cargador de Linux (Linux LOader), es un gestor de arranque muy


verstil que permite iniciar un sistema operativo(SO) cargando el sector de arranque de
una particin del disco duro(o de un diskette). Esto lo pueden hacer otros gestores de
botado,pero slo LILO puede cargar el kernel de Linux y arrancar Linux presentando
adems la posibilidad de pasar parmetros al kernel mediante lneas de comando.
LILO tiene una serie de componentes que se cargan de manera secuencial.En primer
lugar,se carga la primera parte (el comienzo del cdigo) del cargador en el sector
de arranque.Cuando este primer tramo del cargador se ha iniciado, aparece una "L"
en el monitor.Entonces, el resto (la mayor parte del cdigo) del cargador (que junto
con la primera parte del cdigo se encuentra en el fichero /boot/boot.b) procede a
iniciarse.Justo antes de que se cargue este segundo tramo de cdigo, se presenta
"I" en la pantalla. Si todo ha ido bien, despus de haberse cargado, la siguiente
letra de LILO, "L", aparecer en la pantalla. Despus de esto, se produce la carga
de la tabla de descriptores a partir del fichero /boot.map,donde se establecern las
ubicaciones de los posibles kernels de Linux as como los sectores de arranque
correspondientes a otros SOs que tambin gestione LILO. Por ltimo, se carga el
SO seleccionado, que en principio ser el kernel de Linux. Si todo ha funcionado sin
problemas, aparecer una "O" en el monitor y se habr escrito en la pantalla la palabra
LILO. Si hubiese problemas en el proceso de arranque, la presencia o ausencia de
las letras de LILO,junto con algunos otros mensajes, sern claves para diagnosticar la
causa del fallo.

Dnde se instala LILO?

Dependiendo de las necesidades que tengamos, podremos instalar LILO:


En el sector de arranque de un diskette (floppy) (/dev/fd0)

Plataforma de Teleformacin de IFES Pgina 139 de 328


En el sector de arranque (superbloque) de una particin raz de Linux
(primaria o extendida) (/dev/hda1, p.ej. para (E)IDE /dev/sda1 p.ej. para
SCSI)

En el MBR (Master Boot Record) o Sector Maestro de Arranque (primer


sector) del primer disco duro (/dev/hda, p.ej. para (E)IDE /dev/sda p.ej.
para SCSI)
La opcin de instalar LILO en un diskette ("de arranque") es el procedimiento ms
seguro, pero tambin el ms lento de cargar Linux en nuestra mquina. Si solamente
tenemos Linux en nuestro ordenador la opcin idnea sera instalar LILO en el MBR
del primer disco duro. Si vamos a disponer de otros SOs coexistiendo en nuestra
mquina(MS-DOS, Windows) tambin podemos escoger la instalacin de LILO en
el MBR, y gestionar con l la carga de los SOs. Pero con esto hay que tener ciertas
precauciones.
Si ya tenemos un SO en una particin, p. ej. Windows 95, cuando instalemos LILO en
el MBR sobreescribiremos dicho sector y ya no podremos arrancar Windows 95, si no
lo gestiona el propio LILO. Si tenemos Linux instalado con LILO en el MBR y despus
instalamos p. ej., Windows 95, se borrar LILO del MBR y no podremos arrancar Linux.
En tal caso, para poder usar LILO como gestor comn, habra que cargar Linux con un
diskette de arranque y reinstalar,desde Linux, LILO en el MBR. Por lo tanto, si vamos a
meter varios SOs en nuestra mquina, es mejor instalar primero los otros y luego linux,
usando despus LILO como gestor de arranque de todos los SOs.
Si nos planteamos iniciar los diversos SOs, includo linux, desde otro gestor de
arranque, como por ejemplo el moderno BootMagic del PartitionMagic 4.0 (Englobado
ya en El Caldera OpenLinux 2.2), la mejor opcin sera escribir LILO en el sector de
arranque de la particin linux nativa correspondiente. En tal caso,cuando instalemos
linux,deberemos marcar dicha particin raz como activa (usando el comando "a" de
fdisk o el "b" de cfdisk).

Qu limitaciones impone el BIOS a LILO?

Excepto en el caso de que LILO sea el gestor de otros SOs,ser el BIOS u otro
cargador el responsable de ejecutar el sector de arranque de la particin.
El BIOS (Basic Input Output System) cuando encendemos el ordenador, lleva a cabo
el POST (Power-On Self Test) para comprobar los parmetros de la configuracin
de hardware que se encuentran permanentemente salvados en el chip CMOS
(Complementary Metal Oxyde Semiconductor) RAM (continuamente alimentado por
una batera aunque el ordenador se apague): memoria instalada, disqueteras, discos
duros, cd-roms,...
Despus del test, BIOS muestra en la pantalla los valores de los parmetros de
hardware y procede a arrancar el SO.En el caso de un disco duro toma el MBR del
disco primario y de l se cargar el programa gestor de arranque. Antao, el MBR
contena el sistema de arranque del nico sistema operativo instalado. Hoy da,como es

Pgina 140 de 328 Introduccin a Linux


posible cargar ms de un SO, para arrancar hace falta un gestor de arranque mltiple,
como por ejemplo LILO. Por lo tanto LILO est limitado por las opciones del BIOS.
Adems, LILO depende del BIOS para cargar los ficheros /boot/boot.b, /boot.map, los
diversos kernels, los sectores de arranque de los otros SOs ,y el mensaje de arranque
de LILO si se ha definido.
Las restricciones ms importantes que afectan LILO eran en el caso de BIOS antiguos
la limitacin a los dos primeros discos duros y la imposibilidad de acceder ms all de
1024 cilindros por disco, lo cual se vulneraba en cuanto el disco duro superaba los 504
Mbytes,por lo que convena tener la particin raz que contuviera los kernels en las
primeras posiciones de la tabla.
Los BIOS de las modernas placas base ya soportan hasta cuatro dispositivos (discos
duros o cdroms). As, cuando la particin de arranque de Linux se encuentra en el
segundo, tercero o cuarto disco duro, LILO imprime un mensaje de precaucin,pero
contina. El lmite de los 1024 cilindros no ha cambiado con los nuevos BIOS, pero
los controladores de disco con soporte de LBA (Logical Block Address)o LARGE(IDEs
con ms de 1024 cilindros, la mayora de EIDEs y todos los SCSI) pueden "traducir"
o "remapear" la geometra del disco en otra equivalente de manera que parezca
que el sistema tiene menos de los 1024 cilindros y se puedan gestionar hasta casi
8 Gbytes.Si la informacin acerca de la geometra del disco que hay en el men del
BIOS (remapeada con p.ej. LBA) no es la misma (en cuanto a cilindros/cabezas/
sectores) que la que nos da fdisk, entonces se producir un problema de "geometry
mismatch" (no equivalencia de geometra) y LILO abortar el arranque a menos que se
utilice la opcin "linear" en la configuracin de LILO.

Cmo se configura e instala LILO?

La configuracin de LILO se hace en /etc/lilo.conf,pero antes que editar y escribir


manualmente la configuracin en este archivo, existen interfaces o programas capaces
de preparar una configuracin conveniente para el usuario, de manera que solamente
en el caso de incorporar opciones avanzadas tenga que editar y modificar a mano el
archivo.
En primer lugar existe un programa llamado Quickinst que acompaa la distribucin
original del programa LILO. Se trata de un guin (shell script) que produce una
configuracin mnima de LILO que luego conviene actualizar. Por otra parte ,la mayor
parte de las distribuciones proporcionan un asistente durante la instalacin que ayuda a
la configuracin de LILO.
RedHat en su "INSTALL" dedica una parte importante a la configuracin de LILO. El
"SETUP" de Slackware tambin lo permite. Distribuciones como Caldera OpenLinux o
SuSE disponen de herramientas de instalacin que permiten una cmoda configuracin
de LILO para el usuario (LISA y LIZARD para OpenLinux 1.3 y 2.2, y YAST para
SuSE).Quizs Debian ha sido un poco ms espartana (al menos hasta Hamm 2.0)
en su utilidad de instalacin para la configuracin de LILO: se limita a escribir una
configuracin bsica de LILO sin soporte para otros SOs ni otros kernels. El fichero /

Plataforma de Teleformacin de IFES Pgina 141 de 328


etc/lilo.conf slo debera ser ledo por el superusuario administrador, ya que podra
contener contraseas. En caso de duda, deberamos hacer (como root):
chmod 600 /etc/lilo.conf .
Escribiendo /etc/lilo.conf el fichero /etc/lilo.conf comienza con una "global
section" (seccin general) seguida de una o ms "system sections" (secciones para
cada SO que LILO gestione) que comenzarn por:
image= (si es un kernel linux) ,
other= (si es otro SO).
Los comentarios en el fichero comienzan con el smbolo de la almohadilla (#).
Consideremos a continuacin las lneas ms importantes de /etc/lilo.conf: Seccin
general
boot=dispositivo indica el dispositivo donde se instalar LILO; dispositivo
puede ser un diskette (/dev/df0), una particin (p.ej. /dev/hdc2) o el disco
completo (p.ej /dev/hda) que corresponde a la instalacin en el MBR

install=ficheroarranque instala el fichero especificado como nuevo sector de


arranque. Por defecto es /boot/boot.b
map=ficheromapa establece la ubicacin del fichero de mapeado. Por
defecto es /boot/map.
prompt ordena a LILO que muestre un indicador (boot:) al momento
de iniciarse el arranque que permita seleccionar el SO a iniciar. Si en
este punto pulsamos la tecla TAB, aparecern los nombres dados a los
correspondientes SOs.
timeout=tiempo indica el tiempo en dcimas de segundo que LILO debe
mostrar el indicador anterior. Si pasado ese tiempo no se indicase nada,
LILO cargara el primer SO configurado. Seccin linux:
image=kernelimagen donde introducimos el fichero que contiene el kernel,
incluyendo la ruta de directorio. Lo ms normal es que sea /vmlinuz o /boot/
vmlinuz
label=nombre donde escribimos un nombre para el SO en cuestin, p. ej.,
"linux" para linux, pero para otros, puede ser "DOS", "win98"...como mximo
pueden ser cadenas de 15 caracteres.Introduciendo ese nombre cuando
LILO presenta el indicador (boot:) se selecciona el SO a iniciar.
root=particin root donde indicamos el nombre de la particin linux nativa de
nuestro sistema linux, p. ej., /dev/hdc2.
read-only indica al kernel que ha de montar inicialmente la particin raz
en modo de slo lectura. Es necesario indicar esta opcin para la particin
donde se montar el sistema de ficheros raz.
Seccin otros SOs:
other=particin donde indicamos esta vez la particin de inicio del SO en
cuestin, p.ej., /dev/hda1.
label=nombre tal como se indic antes, ser el nombre con que etiquetemos
dicho SO.

Pgina 142 de 328 Introduccin a Linux


loader=gestor de arranque .Para cargar el SO, LILO construye un pseudo
MBR en su fichero de mapeo. Esta opcin especifica el fichero donde tomar
el cdigo del pseudo MBR. Por defecto el fichero es /boot.chain.b

table=tabla establece el dispositivo fuente para la tabla de particin escrita


en el pseudo MBR, usualmente /dev/hda o /dev/sda. Otras opciones
interesantes (slo algunas)
vga=modo selecciona el modo VGA al inicio. Los modos vlidos son
"normal" (80x25), "ext" (extendido, 80x50) o "ask" (preguntar).
linear hace que las referencias a los sectores se escriban como direcciones
lgicas en lugar de fsicas. Se emplea cuando LILO no reconoce
correctamente la geometra del disco duro (debido a un remapeado por parte
del BIOS).
message=ficheromensaje establece el fichero cuyo texto se mostrara
durante el arranque. No debe tener ms de 24 lneas.
append=parmetro permite pasar parmetros y componentes de hardware
al kernel como cadena de caracteres. Por ejemplo, si nuestra memoria
RAM es superior a 64 Mbytes, por ejemplo, 128, debemos pasarle el dato al
kernel durante el arranque mediante (no necesario a partir de la serie 2.2.x)
append="mem=128M"
delay=tiempo establece el tiempo en dcimas de segundo que LILO
esperar antes de arrancar el primer SO. Generalmente se usa cuando se
arranca un nico SO, pues si no, la opcin prompt es mucho mejor. Por
defecto (sin la opcin) LILO no espera y se inicia el SO inmediatamente.
Despus de haber escrito el fichero /etc/lilo.conf, es necesario lanzar el "map
installer" haciendo:## /sbin/lilo
con lo cual LILO escribe un backup del sector de arranque, escribe la primera parte
de su cdigo en l y crea un nuevo fichero de mapeado (/boot/map). LILO anuncia
entonces por la pantalla los SOs que gestiona, aadiendo una estrella al que se
arrancar por defecto. Hay que recalcar que si cualquiera de los componentes de LILO
cambia o se modifica su configuracin mediante ## /etc/lilo.conf
es necesario volver a reinstalar LILO con ## /sbin/lilo.
Configuracin mnima de LILO y configuracin para gestionar linux y otro sistema
operativo (win95).
Consideremos el siguiente fichero ## /etc/lilo.conf
nicamente para arrancar linux:
Fichero de configuracin
/etc/lilo.conf
Seccin general
boot=/dev/hda delay=100 vga=normal
Particin linux
image=/vmlinuz root=/dev/hda1 label=linux read-only .
Este ejemplo se interpreta de la siguiente forma:

Plataforma de Teleformacin de IFES Pgina 143 de 328


LILO se va a instalar en el MBR del disco duro /dev/hda. El modo de video EGA es
80x25, el sistema linux nativo se encuentra en la primera particin del disco duro (/
dev/hda1) y la imagen del kernel se encuentra en el fichero /vmlinuz. Despus de 10
segundos,arrancar el sistema linux, cuyo nombre es "linux". Si hacemos
/sbin/lilo
entonces aparecer en el monitor:
Added linux
Veamos ahora otro fichero de configuracin para gestionar linux y win95:

Fichero de configuracin
/etc/lilo.conf
Seccin general
boot=/dev/hda prompt
timeout=100
vga=normal
Particin linux
image=/vmlinuz
root=/dev/hdc1
label=linux read-only
Particin Windows 95
other=/dev/hda1
label=win95 table=/dev/hda .
En este caso, LILO tambin est en el MBR del primer disco duro (/dev/hda) y hay dos
sistemas operativos: Linux en la particin /dev/hdc1 y Windows 95 en la particin /dev/
hda1. La tabla de particin para el gestor de arranque corresponde al dispositivo /dev/
hda. Si hacemos
/sbin/lilo
aparecer el mensaje:
Added linux
Added win95, lo que significa que LILO va a gestionar los dos sistemas
operativos y que por defecto el primero en arrancar ser linux. Cuando

reinicialicemos el sistema, si todo ha ido bien aparecer la palabra LILO


seguida del indicador de arranque LILO boot: y as permancera durante
unos 10 segundos, pasados los cuales si no hemos escrito el nombre de uno
de los SOs, cargar por defecto linux. Si antes del tiempo pulsamos la tecla
TAB, entonces aparecern en pantalla los nombres de los SOs gestionados:
linux, win95

Cmo desinstalo LILO?

Hay razones para desear desinstalar LILO:

Pgina 144 de 328 Introduccin a Linux


una, desinstalar el sistema linux de nuestra mquina; otra imperativa: porque algo va
mal.
LILO es un programa que, mal manejado, puede hacer al sistema no arrancable si se
instala en el MBR. Mal configurado, impedir el acceso al cualquier SO. En tales casos
es indispensable disponer de diskettes de arranque para dichos SO. Por lo tanto es
conveniente hacer el disco de arranque de Windows y el de arranque de Linux (en el
momento adecuado de la instalacin del sistema) de manera que nos permita acceder
via disquetera al sistema correspondiente en caso de imposibilidad de arrancar. Ntese
que en el BIOS el arranque deber comenzar por defecto en la disquetera A: .
Una vez que hemos arrancado el SO, hay muchas maneras de desinstalar LILO del
MBR. Si nos encontramos en DOS o Windows, basta con ejecutar el comando MS-
DOS FDISK /MBR ( SYS C: si C: es el disco duro en cuyo MBR se instal LILO).Si
estamos en OS/2 FDISK /NEWMBR que escriben los primeros 446 bytes (el cdigo de
arranque) en el MBR y dejando las particiones ilesas.Si estamos en Linux, basta con
hacer
/sbin/lilo -u
para restaurar el MBR anterior a la instalacin de LILO .
Adems de todo esto puede hacerse otra cosa: cuando LILO sobreescribe el MBR,
salva una copia de backup en ## /boot/boot.xxxx
donde xxxx es un nmero mgico del dispositivo donde se ha instalado. Veamos
algunos ejemplos:
Disco
/dev/zzz xxxx
IDE primario ## /dev/hda 0300
SCSI primario ## /dev/sda 0800
floppy ## /dev/fd0 0200
As,si queremos desinstalar LILO del sector de arranque de alguno de estos
dispositivos, bastar con hacer:
dd if=/boot/boot.xxxx of=/dev/zzz bs=446
count=1
Si LILO se ha instalado en una particin raz, no har no arrancable ningn otro sistema
operativo. nicamente, si est mal instalado, har que no arranque linux. Si deseamos
restaurar el sector de arranque de la particin /dev/yyyy (p.ej. /dev/hda1) podemos
reescribir el sector de botado haciendo:
dd if=/dev/yyyy of=New-file bs=512 count=1
dd if=Backup-Date of=/dev/yyyy
Si lo que queremos es desinstalar linux, borraremos la particin root con fdisk.

LILO no funciona bien. Diagnstico de errores

Cuando LILO se inicia, si todo ha ido bien, presenta en la pantalla las cuatro letras
"LILO".

Plataforma de Teleformacin de IFES Pgina 145 de 328


Como ya vimos, cada letra corresponda a una accin. Si LILO no ha funcionado, las
letras que presente en pantalla junto con ciertos mensajes, sern la clave para saber
dnde est el problema.Veamos los ms comunes:
"L" error: El primer tramo del cdigo ha sido cargado pero no el segundo.
Esto se debe generalmente a un error fsico en el sector de botado o a un
problema de geometra del disco.

"LI":El segundo tramo del cdigo ha sido invocado, pero no ha podido


iniciarse. Esto sucede cuando hay un error de geometra de disco o se ha
movido /boot/boot.b sin reinstalar LILO (/sbin/lilo).
"LIL":El segundo tramo del cdigo se ha iniciado pero no puede ubicar los
datos que necesita en el fichero de mapeado. Esto puede deberse a un error
fsico del dispositivo de arranque o a un problema en la geometra del disco.
"LIL?":El segundo tramo del cdigo se ha cargado en una direccin de
memoria equivocada. Esto se debe a un error en la geometra del disco o
cuando se ha movido /boot/boot.b sin reinstalar LILO (/sbin/lilo).
"LIL-":Los datos en el fichero de mapeado no son vlidos. Las causas son
las mismas que en el caso anterior. La mayor parte de las veces, no se trata
de un problema fsico del dispositivo de botado, sino errores debidos a la no
equivalencia entre la geometra del disco que fdisk presenta y que el BIOS
ha remapeado. En tal caso el uso del parmetro "linear" en /etc/lilo.conf
puede funcionar. Otras veces puede deberse a que se ha intentado instalar
LILO en una particin lgica.Y otras veces a causas ms sutiles.Por ejemplo:
Yo arranco linux junto a otros sistemas operativos con el gestor de arranque de
Partition Magic y tengo LILO en una particin raz. Una vez hice un resize y cambi
el tamao de mi particin linux nativa porque necesitaba espacio para instalar nuevos
programas. Al terminar e intentar arrancar linux de su particin, apareci en la pantalla
"LI". Eso se debi a que despus de haber hecho el cambio de tamao, haba movido
/boot/boot.b y no haba lanzado el ' map installer /sbin/lilo'.Cog mi diskette de arranque
de linux, y cuando entr ejecut la orden y reinici el sistema. Todo funcion.

Kernel / Ncleo
Qu es el kernel?

El kernel o ncleo de linux se podra definir como el corazn de este sistema operativo.
Es el encargado de que el software y el hardware de tu ordenador puedan trabajar
juntos. Las funciones ms importantes del mismo, aunque no las nicas, son:
- Administracin de la memoria, para todos los programas en ejecucin.
- Administracin del tiempo de procesador, que estos programas en ejecucin utilizan.
- Es el encargado de que podamos acceder a los perifricos/elementos de nuestro
ordenador de una manera cmoda. Existen dos versiones del Linux kernel:

Pgina 146 de 328 Introduccin a Linux


- Versin de produccin: la versin de produccin, es la versin estable hasta
el momento. Esta versin es el resultado final de las versiones de desarrollo o
experimentales. Cuando el equipo de desarrollo del ncleo experimental, decide que ha
conseguido un ncleo estable y con la suficiente calidad, se lanza una nueva versin
de produccin o estable. Esta versin es la que se debera utilizar para un uso normal
del sistema, ya que son las versiones consideradas ms estables y libres de fallos en el
momento de su lanzamiento.
- Versin de desarrollo: esta versin es experimental y es la que utilizan los
desarrolladores para programar, comprobar y verificar nuevas caractersticas,
correcciones, etc. Estos ncleos suelen ser inestables y no se deberan usar, a no ser
que sepas lo que haces.
Cmo interpretar los nmeros de las versiones: las versiones del ncleo se numeran
con 3 nmeros,de la siguiente forma:
XX.YY.ZZ
- XX: indica la serie principal del ncleo. Hasta el momento slo existen la 1 y 2. Este
nmero cambia cuando la manera de funcionamiento del ncleo ha sufrido un cambio
muy importante.
- YY: indica si la versin es de desarrollo o de produccin.Un nmero impar, significa
que es de desarrollo; uno par,que es de produccin.
- ZZ: Indica nuevas versiones dentro de una versin, en las que lo nico que se ha
modificado, son fallos de programacin /bugs.
Unos ejemplos nos ayudarn a entenderlo mejor:
- ej1: versin del ncleo 2.0.0: Ncleo de la serie 2 (XX=2),
versin de produccin 0 (YY=0 par), primera versin de 2.0 (ZZ=0)
- ej2: versin del ncleo 2.0.1: Ncleo de la serie 2, versin 0, en el que se han
corregido errores de programacin presentes en la versin 2.0.0 (ZZ=1)
- ej3: versin del ncleo 2.1.100: versin 100 del ncleo de desarrollo 2.1.

Dnde consigo el kernel?

El ncleo se puede bajar de un gran nmero de servidores en internet. El servidor


principal es http://www.kernel.org/ y la pgina de servidores espejos es http://
www.kernel.org/mirrors/.
Si tienes problemas accediendo a estas pginas, aqu tienes una copia en otro
servidor:http://linux-es.uio.no/lista_kernel.html

Cmo se configura e instala el kernel?

ste es uno de los temas que asustan a los nuevos usuarios de Linux. Lo primero
deciros que no hay razn para asustarse, la configuracin e instalacin de un nuevo
ncleo en nuestro sistema es mas fcil de lo que suena.Lo que si hay que hacer es
tener claro una serie de cosas antes de ponernos a trabajar, para as evitar problemas.
A continuacin tienes una pequea gua sobre cmo configurar e instalar un nuevo

Plataforma de Teleformacin de IFES Pgina 147 de 328


ncleo en tu sistema. Has decidido instalar un nuevo ncleo en tu sistema,que es lo
que tenemos que hacer?
1. Bajarte la ultima versin De dnde? Lete la seccin anterior.
NOTA: Si vais a instalar un ncleo de la serie 2.2.x, tenis que tener en cuenta que
algunas distribuciones no estn/estaban preparadas para hacer uso de esta serie.Si
vuestra distribucin no es de las que vienen preparadas,tenis que actualizar una
serie de paquetes/programas antes de instalar el nuevo ncleo (ms informacin en la
documentacin que acompaa al ncleo).
2.Tener claro lo que vamos a hacer,lete el documento HOWTO sobre el ncleo
( Ingls / Castellano)
3. Tener claro las opciones que tenemos que configurar, para poder utilizar el hardware
de nuestro sistema, as como las caractersticas que queremos utilizar. Por ejemplo,si
no utilizamos un dispositivo SCSI, no tenemos que configurar nada en el apartado SCSI
de nuestro ncleo. As nos ahorramos espacio y tiempo.
4. Entrar como root: su root
5. Copiar el archivo que te has bajado al directorio/usr/src: ##cp linux-xx.yy.zz.tar.gz /
usr/src/
6. Descomprimirlo y desempaquetar: ##tar -xvzpf linux-xx.yy.zz.tar.gz
NOTA: El archivo linux-xx.yy.zz.tar.gz se desempaquetara en el directorio /usr/src/linux.
Si ya existe un directorio llamado linux en tu sistema, renombralo, p.ej: mv linux linux-
old .
En algunas distribuciones, linux es un enlace simblico a linux-x.y.z;borra este enlace
simblico. Es importante que no exista ningn directorio/enlace simbolico llamado linux,
antes de desempaquetar la nueva versin. Si te has bajado el kernel comprimido con
bzip2, tendrs que descomprimirlo con ##bunzip2 linux-xx.yy.zz.tar.bz2
7. Entrar en /usr/src/linux: ##cd /usr/src/linux
8. Configurar el ncleo, esto se puede hacer de tres maneras diferentes:
make config (modo texto)

make menuconfig (modo texto con menus)


make xconfig (X-windows version)
9. Si tenis X-windows instalado, os recomiendo el ltimo comando, si no el segundo.
10. Os recomiendo que las opciones que vienen por defecto no las toquis, si no sabis
lo que hacis,podis pulsar Help en cada opcin para obtener una descripcin de la
misma. Configurar las opciones que queris tener en vuestro nuevo ncleo. Una vez
terminada la configuracin, grabar los cambios y salir del programa de configuracin.
11. Una vez terminado el proceso de configuracin, tenemos que compilar nuestro
nuevo ncleo.Para ello hay que hacer lo siguiente:
make dep make clean make bzImage
12. Si en el proceso de configuracin, elegimos alguna opcin como mdulo,
tendremos que compilar/instalar dichos mdulos:
make modules make modules_install

Pgina 148 de 328 Introduccin a Linux


NOTA: No olvidar ejecutar como root el comando depmod -a l a primera vez que
arranquis con vuestro nuevo ncleo, para computar las dependencias entre mdulos.
13. Ya tenemos el ncleo y los mdulos compilados, ahora tenemos que instalarlo.
Casi todo el mundo utiliza LILO para arrancar el sistema, por ello explicar como
instalarlo utilizando LILO:
Todava estamos en /usr/src/linux , ejecutar el comando ##make install
.. esto copiar el ncleo que acabamos de crear a el directorio /boot de nuestro
sistema, con el nombre vmlinuz., o como un enlace simblico ##vmlinuz -> vmlinuz-
xx.yy.zz
14. Ahora tenemos que configurar LILO para que reconozca el nuevo ncleo.
Tendremos que modificar el fichero /etc/lilo.conf. Aqu tenis un ejemplo, del fichero /
etc/lilo.conf antes de modificarlo:
boot=/dev/hda prompt
timeout=50 image=/boot/vmlinuz-2.0.34
label=linux
root=/dev/hda1 read-only.
Y aqu como quedara despus de la modificacin para que reconozca nuestro nuevo
ncleo al arrancar:
boot=/dev/hda prompt
timeout=50
image=/boot/vmlinuz label=nuevokernel
root=/dev/hda1 read-only
image=/boot/vmlinuz-2.0.34
label=linux root=/dev/hda1 read-only 15.
Ahora slo tenemos que ejecutar el comando /sbin/lilo y arrancar el sistema de nuevo.
Si tuvisemos algn problema con el nuevo ncleo, siempre podramos arrancar con
el antiguo ,escribiendo linux y pulsando ENTER cuando arrancamos y nos sale en
pantalla lilo: de esta manera podemos entrar y ver qu es lo que ha fallado.
NOTA: Recordar que existen multitud de opciones para configurar LILO, y que los
ejemplos anteriores, son ejemplos. Puede que vuestro sistema necesite diferentes
parmetros y opciones. Leeros los documentos HOWTOS sobre el ncleo y LILO antes
de cambiar nada en vuestro sistema.
Al final de esta pgina tenis enlaces a los mismos. Suerte y espero que tengis las
cosas un poco ms claras.

Qu son los parches (patchs)? Cmo se instalan?

Seguramente habris odo hablar de los parches para el ncleo, si no, aqu tenis
informacin sobre los mismos
Qu son los parches y para qu sirven?
Un parche para el ncleo no es ms que un fichero que solamente contiene
informacin, sobre las lneas de cdigo que han cambiado desde la versin precedente
del ncleo. De esta manera, solamente te tienes que bajar un fichero con los cambios

Plataforma de Teleformacin de IFES Pgina 149 de 328


en vez del ncleo al completo. El ahorro en cantidad de Mb bajados es bastante
considerable, sobre todo para aquellos que dependen del mdem y no tienen una
conexion buena a internet. Algo a tener muy en cuenta si vais a actualizar el ncleo
por medio de parches, en vez de bajaros el ncleo al completo, es que tenis que ir
actualizando de versin a versin. Para que se entienda un poco mejor, aqu tenis un
ejemplo: si tenis el ncleo 2.2.0 y vais a actualizarlo al 2.2.1, os podeis bajar el fichero
patch-2.2.1.gz [70Kb] en vez del ncleo 2.2.1 al completo [12.5Mb]. Pero si tenis el
ncleo 2.2.0 y vais a actualizar al 2.2.4, NO os vale bajaros el fichero patch-2.2.4.gz
nada ms, tendriais que bajaros el 2.2.1, 2.2.2, 2.2.3 y 2.2.4. Esto es porque los
ficheros patch solamente contienen los cambios de versin a versin. Si la diferencia
entre la versin que tenis y la que queris instalar es muy grande (p.ej: del 2.2.0 al
2.2.10), no os merece la pena actualizar por medio de parches;en este caso bajaros la
versin completa.
Qu hacer con un fichero patch-XX.YY.ZZ.gz?
Ya te has bajado el fichero patch (se pueden bajar del mismo subdirectorio donde est
la versin completa)que necesitas para actualizar el ncleo y,ahora qu haces? Ahora
hay que aplicarlo al ncleo que tienes y compilar de nuevo. El procedimiento para
actualizar el ncleo por medio de ficheros patch es el siguiente:
Copia el fichero patch-XX.YY.ZZ.gz al directorio /usr/src : ##cp patch-
XX.YY.ZZ.gz /usr/src/

Cambia a este subdirectorio y descomprime el fichero: ##cd /usr/src/; gunzip


patch-XX.YY.ZZ.gz
Aplica el parche: ##patch -s -p0 < patch-XX.YY.ZZ
La opcion -s har que slo se impriman mensajes de error. Si no recibes
ningn mensaje de error (como debera de ser) solamente te queda entrar
en /usr/src/linux:
cd /usr/src/linux
y ejecutar
make clean,make xconfig,make dep,make bzImage
el resto es igual que en la seccin anterior a partir del punto 12)
Esto es todo lo que se me ocurre sobre los parches del ncleo.

Algn consejo sobre el kernel?

Pregunta: Necesito actualizar el ncleo que utilizo cada vez que una nueva versin
aparece?
Respuesta:NO.
Por qu? La explicacin es la siguiente:
cuando un nuevo ncleo aparece, puede ser por las siguientes causas:
Nuevas caractersticas se han aadido.
Fallos de programacin se han corregido.
Fallos de seguridad se han corregido.

Pgina 150 de 328 Introduccin a Linux


Nuevo hardware es soportado. Si las caractersticas que se han aadido
no las vamos a utilizar, es evidente que no necesitamos actualizar.Si los

fallos de programacin que se han corregido afectan a caractersticas/drivers


que no utilizamos, no necesitamos actualizar. Si no utilizamos el nuevo
hardware soportado, tampoco necesitamos actualizar. De todas maneras es
recomendable, actualizar de vez en cuando, sobre todo cuando se corrigen
fallos de seguridad o cuando los cambios en el nuevo ncleo afectan a
caractersticas/funciones/hardware que utilicemos. El cdigo est ah, libre
y esperando a ser compilado en un nuevo ordenador, cada usuario debe
decidir cundo es hora de una actualizacin.
Pregunta: Soy nuevo en Linux y acabo de instalar una distribucin,cmo actualizo el
ncleo?
Respuesta: te aconsejo que esperes un poquito. La distribucin que acabas de instalar
(si es de las ltimas) viene con un ncleo de los "ltimos", totalmente funcional y que
te sirve sin problemas. Utiliza el sistema un tiempo, familiarzate con el nuevo sistema
que acabas de instalar, y cuando comprendas un poco ms cmo funcionan las cosas,
actualiza el ncleo. Un buen punto de partida para encontrar informacin sobre el
ncleo, lo tienes en estas pginas.

X-windows / Entornos grficos


Qu es X-windows?

El protocolo X-windows fue desarrollado a mediados de los aos 80 como respuesta a


la necesidad de un interfaz grfico transparente sobre todo para sistemas Unix.
X-windows es el encargado de visualizar la informacin de manera grfica y es
totalmente independiente del sistema operativo (los sistemas Unix/Linux no necesitan
de X-windows para funcionar, pudiendo trabajar en modo texto). La gran diferencia
entre X-windows y la interfaz grfica de otros sistemas operativos es que X-windows
distribuye el procesamiento de aplicaciones, especificando un enlace cliente-servidor.
El cliente X especificar "Qu hacer" al servidor X, que se encargar de "Cmo
hacerlo". Pero dejmonos de teora y pasemos a un ejemplo prctico. La gran ventaja
de X-windows es que el servidor X de una aplicacin y el cliente X donde trabajamos
no tienen por qu estar en la misma mquina. Podemos estar utilizando X-windows
en nuestra mquina, conectarnos a otra remota, ejecutar un programa en esta
mquina remota y utilizar/ver este programa en nuestra mquina local. Todo esto
independientemente de la plataforma/sistema operativo que el ordenador remoto
utilice.Como veis, las posibilidades son muchas y potentes.
Cliente X | | Xlib | | Servidor X | | Sistema operativo

Cmo configuro las X-windows?

Plataforma de Teleformacin de IFES Pgina 151 de 328


Para utilizar el sistema en modo grfico es necesario instalar X-windows en tu sistema.
Existen servidores comerciales y bajo licencia GNU, en estos apartados nos basaremos
en el X-windows bajo licencia GNU, XFree, ya que es el que se incluye en todas las
distribuciones de Linux.
Una vez instaladas las X-windows tendremos que configurarlas para que funcionen en
nuestro sistema. El fichero de configuracin de las X-windows se llama XF86Config y
generalmente se encuentra en el directorio /etc/X11/.Unos datos que tenis que saber
antes de configurar X-windows son:
Datos tcnicos de la tarjeta grfica que utilicis, o por lo menos el nombre de
la tarjeta.El programa /usr/X11R6/bin/SuperProbe os puede ayudar a obtener
informacin sobre vuestra tarjeta.

Datos tcnicos del monitor que tenis, resoluciones/frecuencias de refresco


verticales/horizontales a la que puede trabajar. Este punto es importante
para evitar problemas posteriores con vuestro monitor. Antes de lanzar X-
windows mediante el comando startx debemos asegurarnos de la correcta
configuracin de los diferentes parmetros del mismo (teclado, ratn,
tarjeta de vdeo, etc.).Hay diferentes mtodos para hacer esto. En primer
lugar tenemos los programas de configuracin semi-automtica. Segn la
distribucin de Linux que utilicemos tendremos a nuestra disposicin una
serie de programas que nos permitirn realizar la configuracin de XWindow
de una manera ms o menos sencilla:
/usr/X11R6/bin/xf86config - Todas las distribuciones: Programa en modo
texto.
/usr/X11R6/bin/XF86Setup - SuSe, Redhat, Slackware: Programa en modo
grfico,tiene que arrancarse en una consola texto.
/usr/X11R6/bin/Xconfigurator Redhat: Programa semi-grfico con
menus.Estos programas nos preguntarn cosas bsicas sobre el teclado,
el monitor, la videomemoria o la tarjeta de vdeo instalada (lo harn cuando
no sean capaces de detectarlas por s mismos).Debemos responder
siempre la opcin ms acertada y en cuanto a monitores, nunca especificar
caractersticas superiores de las que disponemos. Un caso muy habitual
en tarjetas muy nuevas es no encontrar un soporte exacto para los
ltimos chipsets, problema que se suele corregir acudiendo al soporte de
framebuffer del kernel o esperando a que quienes trabajan en XFree86
obtengan por parte de los fabricantes (poco colaboradores) la informacin
sobre cmo programar sus tarjetas.
En ciertos casos tambin se nos puede preguntar si deseamos que el sistema arranque
directamente en XWindow o incluso testear los diferentes modos de vdeo para ver
que si son correctamente soportados. Adems para que estos programas realicen una
correcta configuracin el sistema debe estar ya correctamente configurado en cuanto
a modo texto se refiere.Por ejemplo, Xconfigurator no activar el teclado en castellano
para XWindow si no hemos especificado que el idioma en que queremos usar nuestro

Pgina 152 de 328 Introduccin a Linux


Linux es este mismo, mediante la orden export LANG=es_ES bien en la lnea de
comandos, o en el fichero /etc/profile. Cuando Xconfigurator detecta esta variable de
entorno ya sabe qu lenguaje utiliza el usuario y por tanto configurar XWindow para el
correcto uso del teclado en este lenguaje.
Otras variables indican el tipo de ratn, etc., y suelen ser correctamente especificadas
por el programa de instalacin. En el caso de XF86Setup la configuracin permite una
mayor participacin por parte del usuario, ya que en lugar de realizar una configuracin
automtica proporciona una lista de opciones para cada apartado, de modo que si
conocemos nuestro hardware es la mejor manera de configurar el sistema.Adems,
a la hora de elegir resoluciones de vdeo, este programa permite especificar cual
es la resolucin por defecto deseada mientras que Xconfigurator deja marcada la
menor de ellas como "por defecto" (o la primera que seleccionemos). El programa de
configuracin xf86config es el ms antiguo de todos, y realiza la configuracin mediante
preguntas que se respondern con teclado. Nos preguntar la tarjeta de vdeo, monitor,
rango de frecuencias del monitor, videomemoria y resoluciones de trabajo deseadas,
as como el mapa del teclado a utilizar (es 102 = Espaa 102 teclas). Como siempre,
el mtodo ms eficaz de configurar XWindow es directamente editando los ficheros de
configuracin.Y es que otro mtodo de configuracin bsico es sencillamente editar
el fichero /etc/X11/XF86Config, que es en realidad lo que hacen todos los programas
comentados anteriormente.En este fichero la configuracin est dividida en secciones
y mediante cualquier editor de texto llano es posible cambiar cualquier parmetro de
XWindow.Este fichero se divide en varias categoras o secciones (todas ellas con ms
subopciones muy bien comentadas en dicho fichero de configuracin):
Seccin Files: Indica los caminos hacia las fuentes o ficheros de
colores. RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/
fonts/75dpi:unscaled" (etc.)

Seccin ServerFlags: Opciones varias sobre el servidor.


Seccin KeyBoard:Configuracin del teclado. Para teclados en castellano
las opciones son similares a las siguientes: Protocol "Standard" LeftAlt
Meta RightAlt Meta ScrollLock Compose RightCtl Control XkbKeycodes
"xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc101)"
XkbGeometry "pc" XkbRules "xfree86" XkbModel "pc101" XkbLayout "es"
Seccin Pointer: Configuracin del ratn: # Para un ratn microsoft mouse o
un genius: Protocol "Microsoft" Device "/dev/mouse"
Seccin Monitor: Datos sobre el monitor (frecuencias).
Seccin Device: Indica el servidor X a utilizar: Por ejemplo para una tarjeta
con chipset Mach64: Section "Device" Identifier "Mach64 GB" VendorName
"ATI" BoardName "ATI 3d Rage II" VideoRam 8192 EndSection
Seccin Screen: Modos de vdeo seleccionados: Por ejemplo para activar
320x200, 640x480, 800x600 y 1024x768 tanto a 8 como a 16 bpp de color,
siendo usado por defecto el modo 1024x768x16 (el primero que aparezca en
la lista):

Plataforma de Teleformacin de IFES Pgina 153 de 328


Section "Screen"
Driver "accel"
Device "Mach64 GB"
Monitor "My Monitor"
DefaultColorDepth 16
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480" "320x200"
ViewPort 0 0
Virtual 1024 768
EndSubsection
Subsection "Display"
Depth 8
Modes "1024x768", "800x600", "640x480", "320x200" ViewPort 0 0 Virtual 1024 768
EndSubsection EndSection .
Una vez creado este fichero, entramos en XWindow mediante el comando startx. Del
entorno XWindow se puede salir en cualquier momento mediante la combinacin
de teclas Ctrl+Alt+Borrar, o bien seleccionando LOGOUT en el men del gestor de
ventanas que utilicemos. Para volver a las consolas de texto bastar con utilizar la
combinacin de teclas Ctrl+Alt+F1, +F2 , etc... (hasta F6 en las instalaciones por
defecto).Para volver al terminal grfico se utiliza de F7 en adelante (Ctrl+Alt+F7,+F8,
etc.).
Si durante la instalacin (o en la lnea apropiada del fichero XF86Config)seleccionamos
varias resoluciones de vdeo,es posible cambiar entre ellas mediante las teclas Ctrl+Alt
+'+' y Ctrl+Alt+'-' (los signos del teclado nmrico).Adems, si por defecto marcamos
8bpp (o 16 bpp) en las opciones,nada nos impide lanzar posteriormente XWindow en
la profundidad de color deseada:
[sromero@localhost]# startx -- -bpp 8
[sromero@localhost]# startx -- -bpp 16
etc...Tambin es posible establecer la profundidad de color por defecto mediante una
lnea DefaultColorDepth = 16 en el fichero de configuracin XF86Config, seccin
Screen. Por ltimo, saber que podemos lanzar ms de una sesin de XWindow
simultneamente (en las consolas accesibles desde Ctrl+Alt+F8, +F9, etc.),mediante:
[sromero@localhost]# startx -- :1
[sromero@localhost]# startx -- :2 etc...

Cmo cambio la resolucin por defecto?

En el fichero /etc/X11/XF86Config en la seccin screen correspondiente al servidor que


se est utilizando actualmente,en la subseccin Display correspondiente a la Depth en
que estemos trabajando, buscamos la lnea:
Modes "resolucin_1" "resolucin_2"...

Pgina 154 de 328 Introduccin a Linux


Un ejemplo: Modes "1024x768" "800x600" "640x480" "320x200". Entonces ponemos la
resolucin que queramos que sea por defecto de primera. Estas resoluciones puestas
aqu son entre las que podremos cambiar si queremos al pulsar Ctrl+ Alt+ '+' Ctrl+Alt
+'-' , una vez arrancado X-windows...

Cmo cambio el escritorio virtual?

En el fichero /etc/X11/XF86Config , en la seccin screen correspondiente al servidor


que se est utilizando actualmente,en la subsection Display correspondiente a la Depth
en que estemos trabajando, aadimos la lnea:
Virtual tamao_x tamao_y
#en pxeles
Un ejemplo: Virtual 1024 768 .Hay que puntualizar que si existe una resolucin definida
de Modes mayor que el escritorio virtual, sta no se podr utilizar.
Resumiendo, no se puede tener una resolucin de trabajo mayor que el escritorio
virtual.

Cmo cambio el nmero de colores por defecto?

Hay dos maneras:


mediante la lnea de comandos:
#[user@localhost]# startx --bpp resolucin
(dnde resolucin es 8, 16,24 32).
Mediante el fichero de configuracin: en el fichero /etc/X11/XF86Config , en la seccin
screen correspondiente al servidor que se est utilizando actualmente, aadimos la
lnea:
DefaultColorDepth depth_que_queramos_utilizar .
Un ejemplo:
DefaultColorDepth 16 .
Un Depth con valor 8 significa que trabajaremos a 256 colores, uno con valor 32
truecolor.No todas las tarjetas grficas podrn utilizar todos los Depth disponibles en
todas las resoluciones;todo depender de la tarjeta grfica y de la memoria que sta
tenga.

Cmo arranco directamente en X-windows?

En Linux es perfectamente posible pedir que el arranque del sistema se haga en


modo grfico, y que el login y password se introduzcan directamente en una ventana
XWindow para la posterior carga del gestor de ventanas habitual que use dicho usuario.
Es decir,podremos identificarnos y aparecer directamente bajo X sin necesidad de
ejecutar startx.
Para arrancar directamente en X Window (o no hacerlo) todo el proceso de
configuracin gira en torno a cambiar el runlevel (o nivel de ejecucin en que arranca

Plataforma de Teleformacin de IFES Pgina 155 de 328


Linux). El runlevel es, dicho de una manera sencilla, el modo en que arranca Linux. Por
defecto, el runlevel suele ser el 2 el 3, es decir, arranque en modo texto o consola.
Para cada distribucin suele haber una lista de runlevels y sus significados, aunque
casi se puede decir que son similares para todas ellas.
Para Redhat, por ejemplo, la lista es la siguiente:
# Porcin del fichero /etc/inittab
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3)
# 3 - Full multiuser mode
# 4 - unused # 5 - X11
# 6 - reboot (Do NOT set initdefault to this) Como puede verse, el arranque normal
por defecto para que puedan acceder usuarios a Linux es 2 (si no tenemos red) o 3
si queremos usar servicios de red, siendo normalmente ste el runlevel por defecto.
Como puede verse, X11 tiene asignado el runlevel al 5. Si cambiamos el runlevel por
defecto para que arranque en el 5, nos aparecern directamente X Window. Para
cambiar este runlevel por defecto hay que editar el fichero /etc/inittab, y acudir a la
siguiente lnea: id:3:initdefault: .
El valor numrico antes de initdefault indica el runlevel de arranque por defecto. Si lo
cambiamos de 3 a 5, la prxima vez que arranquemos Linux arrancar en X Window:
id:5:initdefault: .
Para que el proceso se ejecute correctamente debe tener instalado un gestor de
arranque en runlevel 5, que es el programa encargado de pedir el login+passwd y
arrancar el gestor de ventanas adecuado. Puede elegir entre xdm (el que viene por
defecto con XWindow), kdm (version de kde del mismo) y gdm (versin aportada por
gnome). Cada una de ellas dispone de ciertos ficheros de configuracin o ejecutables
para cambiar el fondo del login, el lenguaje, gestor de ventanas, etc. Consulte los
ficheros en los paquetes relacionados. Haga "man runlevel" para ms informacin
sobre runlevels. En las ltimas versiones de Redhat, el programa Xconfigurator le
permite elegir si desea o no arrancar directamente en XWindow (l mismo modifica
el runlevel por defecto) mediante una simple pregunta a la que usted debe responder
SI (Si desea arrancar en runlevel 5) o no (si desea arrancar en runlevel 3). Esta
pregunta se le suele realizar al finalizar la seleccin de resoluciones y antes de salir
de Xconfigurator. Una vez arranque en XWindow, puede volver a cualquier consola
de texto mediante las teclas Ctrl+Alt+F1, Ctrl+Alt+F2, etc. ..(por defecto entre F1 y F6
tendrs 6 consolas de texto), y volver a XWindow en cualquier momento mediante Ctrl
+Alt+F7 en adelante. En algunas distribuciones puede ser necesario indicarle a inittab
dnde est el gestor de runlevel 5 que debe arrancar:
para xdm:
Run xdm in runlevel 5 x:5:respawn:/usr/X11R6/bin/wdm -nodaemon
Para gdm:
x:5:respawn:/etc/X11/prefdm -nodaemon .

Pgina 156 de 328 Introduccin a Linux


Estas lneas suelen ser automticamente includas en el fichero por los rpm/deb
instaladores de xdm, kdm y gdm. Consulte en la ayuda de dichos programas para ms
informacin.

Qu es un gestor de ventanas?

Un gestor de ventanas no es otra cosa que el conjunto de programas, ventanas,


funcionalidades, .... que hacen posible que el usuario pueda interactuar con el sistema
de forma grfica y no en modo texto. Para usar un gestor de ventanas hay que tener
configurado un servidor X. Tambin hay que decir que el gestor de ventanas utilizado
es totalmente independiente del servidor X utilizado. Gestor de ventanas | | Cliente X | |
Xlib | | Servidor X | | Sistema operativo Al contrario que en otros sistemas operativos, en
Linux no es necesario utilizar un servidor X - gestor de ventanas para usar el sistema.
El sistema operativo y el conjunto servidor X - gestor de ventanas usado, son cosas
totalmente diferentes, independientes entre s. Es ms, existen usuarios que trabajan
en modo texto sin ningn problema y sin usar un interfaz grfico. Existen numerosos
y variados gestores de ventanas para Linux, unos mejores y otros ms desarrollados
y estables. Es el usuario el que tiene que decidir qu gestor satisface mejor sus
necesidades, pudiendo incluso tener ms de uno instalado. Para aclarar un poco
las cosas, podramos decir que, si un ordenador es usado por varios usuarios, todos
utilizaran el mismo servidor X pero no necesariamente el mismo gestor de ventanas.

Cmo elijo el Gestor de ventanas que quiero arrancar?

Una vez configurado X se hace necesario decirle a XWindow qu gestor de ventanas


debe arrancar. Dicho de una manera sencilla, XWindow es la conjuncin de 3
componentes:
El entorno de ventanas X Window: es quien implementa las llamadas
internas de XWindow, el protocolo X, etc., es decir, el sistema de
comunicaciones entre aplicaciones.

El servidor grfico X. Es un programa (un fichero ejecutable) encargado de


responder a las rdenes grficas encargadas por el entorno de ventanas. Es
el encargado de dibujar rectngulos, puntos de color o pixels, rellenar zonas,
dibujar imgenes, etc. La manera de decirle a XWindow qu ejecutable es el
que deseamos usar es crear un enlace simblico llamado /usr/X11R6/bin/X
que apunte al servidor que usemos:
Ejemplo:
ln -s /usr/X11R6/bin/XF86-S3
/usr/X11R6/bin/X (
le dira que utilice el servidor de las S3). Este enlace es creado por el programa de
configuracin cuando seleccionamos la tarjeta en la lista que nos presenta.

Plataforma de Teleformacin de IFES Pgina 157 de 328


El gestor de ventanas es el mdulo encargado de decidir que aspecto,
forma, funcionalidades, atajos de teclado, opciones y menes debe

tener XWindow. As, al dividir XWindow en estos 3 mdulos se nos


permite cambiar cualquiera de ellos para dotar a XWindow del aspecto o
funcionalidades que deseemos. El entorno de ventanas no suele cambiarse
nunca (es XFree86), y el servidor X tampoco, ya que ste ltimo es siempre
el ejecutable apropiado para manejar nuestra tarjeta grfica (XFree86-SVGA,
XFree86-S3, etc.),pero el ltimo es totalmente seleccionable entre multitud
de opciones y es lo que nos permite cambiar radicalmente el aspecto de
XWindow. Cambiando el gestor de ventanas (o Window Manager) podemos
cambiar prcticamente el funcionamiento completo de XWindow.
Gestores de ventanas hay muchos: kde, afterstep, gnome, WindowMaker, icewm,
etc, y todos tienen sus respectivos ejecutables: startkde, afterstep, gnome-session,
wmaker, icewm, etc.
Toda esta explicacin se ha dado por un motivo muy sencillo: la posibilidad de elegir
el Gestor de Ventanas deseado es parte de la configuracin activa de XWindow, y
vamos a ver la manera de decirle a XWindow qu gestor deseamos utilizar. Para ello,
simplemente debemos ir al directorio HOME del usuario en cuestin (/home/usuario)
o de root (/root) y editar (crendolo si no existe) el fichero de texto .xinitrc . En este
fichero pondremos una lnea que indicar el Gestor de Ventanas que deseamos utilizar,
en el formato:
exec ejecutable_del_gestor_de_ventanas.
Adems podemos utilizar lneas de comentarios que comiencen por el carcter '#' y que
XWindow ignorar: Ejemplos de ficheros .xinitrc:
# utilizar afterstep exec afterstep;
otro ejemplo podra ser lanzar kde:
# utilizar KDE exec startkde;
As,dependiendo del ejecutable que lancemos (startkde, gnome-session, icewm,
wmaker, ctwm, fvwm2, wmaker, blackbox, etc...) podremos arrancar el WM deseado.

Administracin
Cmo se utilizan los empaquetadores-des/compresores?

Los ficheros tar no son ficheros comprimidos, sino empaquetados. Tar es un


empaquetador, es decir, es algo parecido a
un compresor como arj o zip, pero sin compresin. Se dedica a incluir todos los ficheros
juntos en el mismo archivo, preservando las estructuras de directorios y permisos de
los mismos. Como veremos, lo podremos comprimir gracias al programa GZip.
Hay 2 operaciones bsicas con tar:empaquetado y desempaquetado.

Pgina 158 de 328 Introduccin a Linux


Si estamos en un directorio y queremos empaquetar todos los ficheros de este
directorio y los que cuelgan de l, basta con ejecutar la orden:
tar -cvf fichero.tar
c = compress (ms bien, empaquetar)

v = verbose (para que nos diga lo que hace)


f = file (empaquetar en un fichero)
(Empaquetar todos los ficheros, podra haber sido *.doc, etc.). Si disponemos de un
fichero .tar y queremos desempaquetarlo:
tar -xvf fichero.tar
x = eXtract (desempaquetar).
Tambin es posible listar los contenidos de un fichero .tar antes de desempaquetarlo,
mediante la orden ##tar tvf fichero.tar.
Por otra parte,los ficheros con extensin gz son ficheros comprimidos. A diferencia
de arj o zip, el contenido de un fichero GZ es un solo fichero, es decir, cuando
comprimimos fichero.txt con este compresor (llamado gzip) obtenemos un fichero.txt.gz
de tamao mucho menor.Con GZ no es posible empaquetar ficheros, es decir, la
compresin se realiza a un slo fichero. Para comprimir un fichero con gz se utiliza el
comando:## gzip fichero .
Para descomprimirlo: ##gunzip fichero.gz.
La combinacin de tar y gz es lo que permite el tener multiples ficheros comprimidos en
un solo archivo. Es decir, si empaquetamos un directorio con tar y luego comprimimos
ese archivo tar con gz, obtenemos un tar.gz comprimido con mltiples ficheros. La
compresin y descompresin es posible hacerla en 2 pasos (primero tar y luego usar
gz),o bien usar el flag -z de tar para ello:
Compresin: ##tar -cvzf fichero.tar.gz

Descompresion: ##tar -xvzf fichero.tar.gz


Otro formato que se ha puesto de moda es bzip20, con el mismo sistema de
funcionamiento que Gzip, y cuyos nombres de ejecutable son bzip2 (comprimir) y
bunzip2 (descomprimir).
Este compresor obtiene mejor compresin que Gzip y su funcionamiento es igual de
sencillo,aunque tarda ms en comprimir y utiliza ms recursos. Estos compresores/
descompresores/empaquetadores son una gran y libre alternativa a formatos
comerciales como zip, arj y rar, tambin disponibles para Linux (comandos zip, unzip,
rar y unarj).
Para descomprimir ficheros arj mediante unarj, simplemente hace falta ejecutar el
comando unarj x fichero.arj. El compresor es shareware y se debe obtener en la Web
de sus programadores.
Zip es el programa destinado a hacer Linux capaz de leer y escribir los ficheros en
formato .zip (generados por pkzip o winzip): Para ello tenemos los comandos zip
e unzip, que nos permitirn comprimir y descomprimir ficheros sueltos, directorios
completos, directorios con recursividad, etc..

Plataforma de Teleformacin de IFES Pgina 159 de 328


Para comprimir todos los ficheros de un directorio en un zip: ##zip fichero.zip
Para comprimir este directorio y todos los que cuelguen del mismo: ##zip -r
fichero.zip

La descompresin se realiza mediante unzip:


unzip fichero.zip.
El programa rar tambin es un buen compresor que podemos encontrar en diferentes
formatos (rpm, deb, tar.gz) en Internet. Su uso es idntico a la versin MSDOS:
Comprimir: ##rar a fichero.rar

Descomprimir: ##rar x fichero .


Para ms informacin sobre cualquiera de los des/compresores basta con consultar la
pgina man del mismo, mediante "man comando".

Cmo instalo, desinstalo o actualizo paquetes rpm?

Los paquetes rpm son archivos que llevan includos dentro de ellos todos los ficheros
que componen un determinado programa. Internamente estn comprimidos, pero
nosotros slo debemos pensar en ellos en trminos de Instalacin, Actualizacin,
Borrado y Consultas.
Dentro del rpm van los ficheros del programa a instalar, su descripcin, a qu
directorios van a ir instalados, scripts de auto-configuracin en algunos casos, etc.
La sintaxis de rpm es:
rpm -accin nombre_del_paquete
Acciones:
rpm -i archivo (instalar)
rpm -e paquete (desinstalar)
rpm -u paquete (actualizar)
rpm -qi paquete (pedir info)
Ejemplos:
rpm -i Par-1.50-1.i386.
rpm -e Par rpm -u Par
rpm -qi Par
Supongamos el fichero programa-1.0.rpm que no tenemos instalado y que acabamos
de bajar de Internet. Procedemos a su instalacin: ##rpm -i programa-1.0.rpm
Tras eso el programa estar instalado en nuestro Linux y podremos ejecutarlo y
usarlo normalmente. Tal vez nuestro problema es que no sabemos como se llama el
ejecutable y los dems ficheros de configuracin que le acompaan. Para solucionar
eso hacemos una consulta (query) del paquete ya instalado: ##rpm -ql programa
La accin -ql significa "query list", y nos mostrar en pantalla la lista de ficheros
instalados de este programa y sus directorios destinos. Si por ejemplo deseamos
ver slo los fichero sean instalados en los directorios bin (los ejecutables) podemos

Pgina 160 de 328 Introduccin a Linux


hacer uso de grep, la herramienta de Linux que slo nos mostrar aquellas lneas que
contengan una cadena determinada:
rpm -ql programa | grep bin
Esto nos mostrar slo los ficheros de "programa" que hayan sido instalados en
directorios bin. Si queremos saber qu hace un paquete instalado, podemos verlo con
la opcin "query info" (-qi):
rpm -qi programa
Como ejemplo, veamos la salida para el paquete fetchmail de Linux:
Name : fetchmail
Relocations: (not relocateable) Version : 5.0.0 Vendor: Red Hat Software
Release : 1
Install date: dom 30 may 1999 16:00:12 CEST Group : Applications/Internet
Size : 565413
Packager : Red Hat Software
http://developer.redhat.com/bugzilla
Summary : A remote mail retrieval and forwarding utility.
Description : Fetchmail is a remote mail retrieval and forwarding utility intended for
use over on-demand TCP/IP links, like SLIP or PPP connections. Fetchmail supports
every remote-mail protocol currently in use on the Internet (POP2, POP3, RPOP,
APOP, KPOP, all IMAPs, ESMTP ETRN) for retrieval. Then Fetchmail forwards the mail
through SMTP, so you can read it through your normal mail client.
Si el programa no nos gusta, la deinstalacin es muy sencilla:
rpm -e programa
Obviamente, no tenemos porqu instalar los programas para ver su contenido o
informacin. Los podremos ver antes de la instalacin insertando un comando p antes
de la accin:
rpm -qpi fichero.rpm
rpm -qpl fichero.rpm
Si queremos ver la lista de RPMs instalados disponemos del comando "query all" (-qa):
rpm -qa
Para verlo en formato pausado, podemos usar una tubera:
rpm -qa | less
Es posible que tras un tiempo obtengamos la versin 2.0 del programa que ya
disponemos instalado.
En esto caso hay 2 opciones: bien eliminar el programa anterior (-e) e instalar este
nuevo (-i), o, simplemente, actualizar el programa a la versin 2.0 con el comando -U
(de Update):
rpm -U programa-2.0.rpm
Por ltimo, si al tratar de instalar un paquete rpm aparece el siguiente error:
Data type X not supprted ,es debido a que nuestra versin de rpm es muy antigua,
al menos ms que el rpm que estamos tratando de instalar, y que ste tiene algn
tipo de compresin o elemento que nuestro rpm no entiende.Bastar entonces con
actualizar nuestro ejecutable del RPM. Cabe decir que tambin existen front-ends al

Plataforma de Teleformacin de IFES Pgina 161 de 328


programa rpm, es decir, programas en modo grfico (o texto) que realizan las acciones
del programa RPM mediante pulsaciones nuestras del ratn. Es el front-end el que
se encarga de pasarle a RPM los parmetros correctos para que se realice la accin
pedida por el usuario. Entre estos programas tenemos glint, gnorpm, purp, kpackage,
xrpm, etc.

Cmo instalo paquetes .deb de Debian?

Al igual que el formato RPM , los .DEB encapsulan todos los ficheros y scripts
vinculados a un determinado programa, pero para la distribucin Debian.Adems de
disponer de herramientas de instalacin como dselect, se incluye la posibilidad de
instalacin manual mediante las diferentes opciones del programa dpkg:
Instalacin de paquetes deb: ## dpkg -i nombre_del_paquete.deb .
Para hacer consultas:
dpkg -s nombre_del_paquete (admite comodines)
Para desinstalar:
dpkg -r nombre_del_paquete
El resto de opciones de dpkg puede verse con ##man dpkg.

Cmo se convierten paquetes entre RPM, DEB y TGZ con alien?

Alien es un programa que permite convertir un paquete binario entre los formatos rpm
(Redhat, Suse), deb (Debian) y tgz (Slackware).
Conversion a .DEB:
alien --to-deb paquete.elquesea
Conversion a .RPM:
alien --to-rpm paquete.elquesea
Conversion a .TGZ:
alien --to-tgz paquete.elquesea
Existen otros flags (como -i) que permiten directamente tras la conversin realizar la
instalacin del paquete generado.
Alien realiza la conversin descomprimiendo el paquete original y generando el nuevo
paquete, dicindonos el lugar del rbol de directorios donde dejar el paquete recin
generado,segn la distribucin (por ejemplo, en Redhat en /usr/src/redhat/RPMS/).

Cmo se cambian los permisos de ficheros y directorios?

Lo primero que hay que decir es que para conseguir toda la informacin sobre los
comandos involucrados en el tema de
permisos podis consultar ##man chmod, man chown , man chgrp.
Informacin de un fichero/directorio:
cuando obtienes informacin sobre un fichero/directorio, existen diferentes campos que
te dicen qu clase de permisos el fichero/directorio tiene.

Pgina 162 de 328 Introduccin a Linux


Ejemplo:
[user@localhost]ls -l -rwxr-x--- 1 pepito depart1 4348 Nov 24 16:19 test.
En la primera columna se pueden ver una serie de letras:
-rwxr-x--- ; estas letras nos dicen quin en el sistema, y qu clases de permisos tiene
el fichero test. Estas letras estn agrupadas en tres grupos con tres posiciones cada
uno,ms una primera posicin que nos dice de qu clase de archivo se trata (los
ms normales (d) directorios, o (-) archivos de datos). En nuestro ejemplo, la primera
posicion es (-) ,con lo cual el archivo test es un archivo de datos (binario/ejecutable
en este caso). El primer grupo de tres (rwx en nuestro caso) nos dice qu clase de
permisos tiene el dueo del fichero (u)(user/owner)).
El segundo grupo de tres (r-x en nuestro caso) nos dice qu clase de permisos tiene el
grupo del fichero (g)(group).
Y el ltimo grupo de tres (--- en nuestro caso) nos dice qu clase de permisos tienen
todos los demas usuarios del sistema sobre este fichero(o)(others).
r :significa permiso para leer
w :significa permiso para escribir
x :significa permiso para ejecutar.
La segunda columna,pepito,nos dice quin es el dueo del fichero(pepito en este caso).
La tercera columna,depart1, nos dice cul es el grupo del fichero (depart1 en este
caso).
La cuarta columna ,4348, nos dice el tamao del fichero.
La quinta columna, Nov 24 16:19, nos dice cul es la fecha y hora de la ltima
modificacin.
La sexta columna,test, nos dice cul es el nombre del fichero/directorio.As pues, el
fichero test de nuestro ejemplo tiene los siguientes permisos:
pepito puede leer,escribir/modificar, y ejecutar el fichero test.
depart1 puede leer y ejecutar, pero no escribir/modificar. Los dems usuarios no
pueden hacer nada, ni leerlo, ni escribir/modificar, ni ejecutarlo.
Cmo cambiar los permisos/dueo/grupo de un fichero/directorio?
Para cambiar el dueo del fichero:
chown usuario fichero .
Para cambiar el grupo del fichero:
chgrp usuario fichero
Para cambiar los permisos se utiliza el comando:
chmod permisos fichero
Los permisos se pueden especificar de diferentes maneras;una serie de ejemplos es lo
mejor para comprenderlo:
chmod ugo+rwx test
(da permisos rwx a todos, user,group,others)
chmod ugo-x test
(quita permiso x (ejecucin) a todos, user,group,others)
chmod o-rwx test
(quita permisos rwx a others).

Plataforma de Teleformacin de IFES Pgina 163 de 328


chmod u=rwx,g=rx test
(da permisos rwx a user, rx a group y ninguno a others)
As podras continuar con todas las posibles combinaciones de letras, es cuestin de
usar la imaginacin.
Existe otro mtodo que utiliza nmeros, en vez de letras para asignar permisos;
la siguiente tabla nos puede ayudar un poco a comprender esta manera:
r w x VALOR DECIMAL 0 0 0 0 (000 binario es 0 en decimal) 0 0 1 1 ......... 0 1 0
2 ......... 0 1 1 3 ......... 1 0 0 4 (100 binario es 4 en decimal) 1 0 1 5 ......... 1 1 0 6 ......... 1
1 1 7 (111 binario es 7 en decimal)
1 significa activado y 0 desactivado, o sea 101 activa r y x, y desactiva w.
Sabiendo esto slo tenemos que usar el valor decimal;un ejemplo aclarar esto:
chmod 750 test
da permisos rwx al usuario (7=111) ;
da permisos r-x al grupo (5=101)
da permisos --- a los demas (0=000).

Cmo apago mi equipo?

Para apagar el equipo tienes que hacerte superusuario y hacer:


[asimovI@localdomain root]$shutdown -t3 -h now .
Esto parara todos los procesos en curso, hara sync, entrara en el runlevel 0, y
desmontara todas las particiones.
El proceso de parada llegara cuando se observa system halted , y si la fuente lo
permite y se compil el kernel con esa opcin, el ordenador se apaga automticamente
sin necesidad de pulsar el botn de apagado.La opcin h viene de halt (parar), y hace
que se mantenga parado despus de todo el proceso de apagado. La opcin now
indica que lo haga ahora;esta opcin se puede sustituir por un nmero, los minutos a
esperar antes de realizar el shutdown.
Para reiniciar el equipo tienes que hacerte superusuario y hacer:
[asimovI@localdomain root]shutdown -t3 -r now
,pues como habas imaginado hace lo mismo que la anterior, pero en vez de ponerse
en system haltedse pone en system reboot' y reinicia.
Existe otro mtodo que consiste el accionar tres teclas, s, esas que tanto hay que usar
en otros sistemas operativos ( aunque cada vez menos ya que apenas los usamos), las
CAS (Ctrl+Alt+Supr). Pues bien, en el proceso de arranque de Linux, cuando lee la
/etc/inittab
existe una entrada que asocia estas tres teclas a un comando. Si lo ves vers que lo
asocia al comando anterior. # Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now .
Un consejo: en los mtodos anteriores es necesario ser superusuario ya que el
comando shutdown lo requiere. Cosa lgica ya que sino cualquier usuario de la
mquina lo podra echar abajo.Esto hace bastante incmodo el apagarlo,por lo que un
consejo prctico es ir a la

Pgina 164 de 328 Introduccin a Linux


/etc/inittab
y cambiar la -r por la -h del comando que se une a las CAS, esto asociar el apagar
el sistema a las tres teclas y no al reiniciarlo.Con esto ya no es necesario hacerse
superusuario, sino estar sentado delante del ordenador a apagar.
Nota: en los kerneles 2.2.x hay que modificar una lnea en el
/etc/rc.d/*halt
en dnde llame al halt, hay que aadirle la opcin -p. Si no lo que hace es reboot.

Puedo trabajar normalmente como root?

Un consejo,slo utilizar la cuenta de root (administrador) para tareas de administracin.


Para trabajar normalmente con el sistema NO hacerlo como root, ya que se tiene
acceso completo a todo el sistema y es fcil de estropear cosas si no se sabe lo que se
hace. Aqu tenis un ejemplo que le ocurri al autor de esta seccin trabajando como
root: slo utilizo la cuenta de root para administracin del sistema,pero un da estuve
demasiado tiempo trabajando con ella para intentar empaquetar un rpm, resulta que lo
instal mal y cre el directorio:
/usr/src/redhat/usr/src/redhat/SRC/.
Claro que eso no era lo que quera, as que tecle:
root@asimovI src]$ cd ..
root@asimovI /]$ rm -rf *
Yo pensaba que estaba dentro del segundo src, pero estaba en el primero,menos
mal que me di de cuenta pronto y puls Ctrl+c para abortar el comando de borrado
mientras se estaba borrando el directorio X11R6,as que no corromp por completo
el sistema,slo tuve que volver a instalar algunos paquetes. Pero, y si no me doy
cuenta? Pues que no podra haber hecho nada ya que hubiese borrado todo el
contenido de /usr ; no existiran libreras, comandos, etc, teniendo que haber instalado
el sistema operativo de nuevo.
Despus de este ejemplo, volvemos a recomendar lo que dijimos al principio:
utilizar la cuenta de root slo en los casos necesarios y siempre tenindole un respeto
al poder que da. Estar seguros al 100% de lo que hacis como root, para no estropear
el sistema. Una buena costumbre es nunca hacer login con root, sino trabajar como
un usuario normal y cuando se necesite ser root hacer un "su", y tan pronto como deje
de ser necesario tener el privilegio hacer un "exit", para volver a trabajar como usuario
normal.

Cmo abro/cierro una nueva cuenta?

Abrir una nueva cuenta:


el abrir una nueva cuenta, no es ms que aadir una entrada en el archivo /etc/passwd
del sistema. Una entrada en este archivo tiene la siguiente forma:
<user>:<encrip>:<UID>:<GID>:<informacion>:<home>:<shell>
user: es el nombre de usuario.

Plataforma de Teleformacin de IFES Pgina 165 de 328


encrip: es la clave encriptada.
UID: es el nmero UID con el que nos identificar el kernel.
GID: el nmero de grupo principal GID al que pertenecemos.
informacin: informacin varia, tal como nombre completo del usuario, nmero de
telfono, e-mail, etc.
home:es el directorio home del usuario, es decir, el directorio al que accedemos justo
despus de hacer entrar en el sistema.
shell: Es el shell que se abrir para ejecutar las rdenes que de el usuario.Hay
utilidades que hacen que aadir cuentas de usuario sea ms fcil. Entre ellas estn el
comando useradd y passwd. Lo pasos para crear un usuario son:
[root@asimovI /root] adduser mario
[root@asimovI /root] passwd mario
Para ms informacin hacer man adduser, sobre todo si se quiere poner caducidad a
las claves. Hay otras utilidades ms vistosas y fciles de usar e intuitivas ya que son
bajo X-Windows; un ejemplo de stas son en el contol-panel de redhat, el YaST en
SuSE, el gestor de usuarios de Kde, etc.
Hay que aclarar que si el campo de la clave encriptada del fichero /etc/passwd no
contiene ningn valor, no ser necesario la utilizacin de una clave para entrar en el
sistema. Esto es totalmente desaconsejable por los problemas de seguridad que puede
crear.Sin embargo es til, por ejemplo, cuando nos olvidamos de la clave de root:
la solucin es arrancar con un diskette de rescate, luego montar la particin de linux,
y borrar la clave encriptada de la entrada de root en el fichero /etc/passwd. Luego
reiniciamos el equipo, entramos como root y ejecutamos passwd root para poner la
nueva contrasea.
Borrar una cuenta de usuario:
El comando a utilizar es userdel el cual tiene la siguiente sintaxis:
userdel [-r][login] .
Este comando borra el usuario login, y si se aade la opcin -r tambin borra su
directorio de usuario.
Para borrar una cuenta de usuario tambin se pueden utilizar las utilidades grficas que
comentamos antes, de una forma muy intuitiva.

Tengo un ejecutable que no quiere ejecutarse...

A todos nos ha ocurrido alguna vez,que al intentar ejecutar un comando/programa


hemos obtenido como respuesta "command not found". Esto significa que el shell no
encontr el comando que queramos ejecutar. Las causas ms comunes suelen ser:
El ejecutable no est en un subdirectorio incluido en el $(PATH)./

La solucin es escribir el ejecutable con la ruta completa o moverte al directorio de ste


y escribir ./programa, donde programa es el nombre del ejecutable.
El comando/programa que habis escrito no existe.

Pgina 166 de 328 Introduccin a Linux


Faltan variables de entorno. Busca ficheros de documentacin del programa,
o prueba comando --help, para ver si hace falta aadir variables de entorno,
para el uso del mismo.

Otra respuesta que podemos obtener al intentar ejecutar un comando/programa es


Permission denied. El error es bien claro:
el ejecutable existe ,pero no tenemos permiso para ejecutarlo.Comprueba que lo
podemos ejecutar, es decir, tiene una x en el grupo al que pertenezcamos: dueo,
grupo, u otros.
Ms informacin sobre permisos en la subseccin " Cmo se cambian los permisos
de ficheros y directorios?". Por ltimo, podemos obtener un error en el que se nos
informa que cierta librera no se encuentra.
Ejecuta el comando:
[asimov@asimovI bin] ldd comando .
Esto mostrar todas las libreras compartidas que el comando/programa utiliza/necesita
para funcionar. Si no tenemos algunas, las tenemos que instalar, pero si las tenemos
hemos que comprobar que /sbin/ld (el cargador de libreras dinmicas) sabe dnde
estn, para ello hemos de aadir una entrada en el fichero /etc/ld.so.conf que consiste
en poner el directorio donde est la librera, luego ejecutamos ##/sbin/ldconfig -D
,para cerciorarnos que la lee.

Cmo dar formato a un diskette en Linux?

El formato de diskettes en Linux depende del tipo de formato que se le desee dar al
diskette (tipo MSDOS, tipo FAT32/VFAT, tipo
Ext2 de Linux, minix, etc.). En general, simplemente hay que usar uno de los comandos
mkfs disponibles que crear el sistema de ficheros pertinente.
Para formatear diskettes en formato Linux-ext2 :
mkfs.ext2 [opciones] /dev/fd0
,o bien su equivalente:
mke2fs [opciones] /dev/fd0
El usuario que formatee deber tener permiso de escritura para la disketera
(normalmente /dev/fd0). Para eso, debe estar en el grupo de usuarios floppy o que /
dev/fd0 tenga permisos 666 (para todo el mundo).
Para formatear diskettes en formato MSDOS:
mkfs.msdos [opciones] /dev/fd0
o bien:
mkdosfs [opciones] /dev/fd0
Otro comando disponible si tenemos instaladas las mtools es mformat:
mformat a:
este ltimo comando formatear el diskette en formato ms-dos.Por ltimo, existen otros
programas como fdformat o superformat (ver paquete fdutils) que tambin sirven para
dar formato a diskettes.

Plataforma de Teleformacin de IFES Pgina 167 de 328


NOTA: Formatos del tipo ext2 y ms-dos son los que se utilizan ms usualmente en
linux. Hay que aclarar que un diskette con formato ext2 no ser posible leerlo bajo ms-
dos o Windows, solamente bajo Linux. Un diskette con formato ms-dos podr ser ledo
indistintamente por ms-dos, windows o Linux (si tenemos soporte en el kernel para
trabajar con este formato).

Cmo puedo montar y desmontar unidades en Linux?

Montar un sistema de ficheros/dispositivo a nivel usuario no es ms que hacerlo


disponible en el rbol de directorios de nuestro sistema. Como ya sabis, en Linux
vemos todos los sistemas de ficheros/dispositivos en un solo rbol de directorios;no
existen letras a:, c:, etc.., as que nos da igual que el contenido de un directorio sea un
sistema de ficheros msdos, vfat, ext2, otro que est en una mquina remota, etc. Esta
abstraccin tiene un inconveniente: hay que montarlo, es decir,indicarle al kernel de
Linux que a travs del directorio XXXX, accedemos al sistema de ficheros/dispositivo
yyy. Esto se hace con el comando mount (man mount, para detalles). Montar un
sistemas de ficheros/dispositivo a nivel kernel, no es ms que rellenar unas tablas de
registro. Es decir, ver si el sistema de ficheros est soportado, es decir, si existe la
tabla de funciones con las que manejarlo. Luego registrar estas funciones y enlazar el
directorio al sistema de ficheros. Esto es ms bien lo que hace la llamada al sistema
mount, la cual es llamada mediante el comando del mismo nombre. Los parmetros
necesarios para montar un sistema de ficheros son:
Tipo de sistema de ficheros: es necesario indicarle el tipo de sistemas de
ficheros a registrar. As sabr qu funciones utilizar.

Tipo de acceso: si es de slo lectura, slo escritura o ambos.


Dispositivo: indicar el dispositivo sobre el que est fsicamente el sistema de
ficheros,( p.e.: /dev/hda1, /dev/hdb, /dev/sda1,..., none si es el /proc, ya que
se realiza sobre la memoria).
Directorio: indica el directorio sobre el que se va a montar, es decir, el
directorio mediante el cual accederemos al sistema de archivos.
Ejemplo: montar el cdrom en el directorio /dev/cdrom:
mount -t <sistema de ficheros> <Dispositivo> <Directorio> mount -t iso9660 /
Supongo que ya comprenderis el inconveniente de esto: cada vez que se quiere
acceder a un cdrom se ha de ejecutar el comando anterior, en vez de teclear d: (como
en otros sistemas operativos). Pero la versatilidad y la flexibilidad que ofrece hace que
no se tenga en cuenta ese inconveniente (como usuario accedo dentro de un directorio
sin que me pase por la cabeza que ese fichero est al otro lado del planeta utilizando
para ello el protocolo nfs). Existen otras formas de reducir la lnea de comandos, para
ello (entre otras cosas) existe el fichero fstab. En l se indican los sistemas de ficheros
sobre los que trabajamos normalmente: el sistema de ficheros en el que tenemos los
directorios de linux, el /proc, la particin dos, el cdrom, y el floppy. El fichero /etc/fstab
funciona de la siguiente manera:

Pgina 168 de 328 Introduccin a Linux


partimos de un ejemplo de contenido de /etc/fstab:
# <device> <mountpoint> <filesystemtype> <options> <dump> <fsckorder> /dev/hda2 /
ext2 defaults 1 1 /dev/hda3 /usr ext2 defaults 1 2 /dev/sda1 /home ext2 defaults 1 2 /
dev/hdb /mnt/cdrom iso9660 user,noexec,nodev,nosuid,ro,noauto 0 0 /dev/fd0 /mnt/
floppy vfat user,noexec,nodev,nosuid,rw,noauto 0 0 none /proc proc defaults 0 0 /dev/
hda4 swap swap defaults 0 0 /dev/hda1 /mnt/dos vfat exec,dev,suid,rw,auto 0 0
Con la informacin contenida en este fichero, el sistema hara lo siguiente al arrancar el
sistema:
La particin /dev/hda1 se montara en el subdirectorio /mnt/dos

La particin /dev/hda2 se montara en el subdirectorio /


La particin /dev/hda3 se montara en el subdirectorio /usr
La particin /dev/hda4 se montara en el subdirectorio como swap
La particin /dev/sda1 se montara en el subdirectorio /home
Proc se montara en el subdirectorio /proc
El sistema tendra informacin sobre cmo montar un diskette /dev/fd0 y un
CD-Rom /dev/hdb, aunque no los monta automticamente al arrancar por
haber definido la opcin noauto.Veamos la explicacin de los parmetros
usados en /etc/fstab:
En la columna de dispositivo se indica el dispositivo/particion a montar, en el punto
de montaje se indica el directorio mediante el cual vamos a acceder al sistema de
archivos. En la columna de tipo de sistema de ficheros se indica el sistema de ficheros
que se usar sobre el dispositivo.
Las opciones significan lo siguiente:
user,nouser: permite/no permite a un usuario ordinario montar el sistema de
ficheros.

suid,nosuid: Se requiere / no se requiere tener privilegios de superusuario .


auto/noauto: Indica que s/no se monta cuando hacemos mount -a.
defaults: Aplica las opciones rw,suid,dev,exec,auto,nouser,async.
exec: Permite la ejecucin de binarios.
ro,rw: Montar slo lectura, lectura-escritura. El fichero /etc/fstab de nuestro
ejemplo nos permitira hacer lo siguiente para montar un diskett o CD-Rom:
mount /mnt/cdrom mount /mnt/floppy
Cuando dejamos de utilizar un sistema de ficheros, tenemos que darlo de baja
(desmontarlo), para eliminar todas las referencias del kernel a l. El comando utilizado
para esto es umount.
Para desmontar un sistema de ficheros/dispositivo:
umount <directorio|dispositvo>
ej: ##umount /mnt/floppy umount /dev/fd0
NOTA: es necesario ejecutar el comando umount cada vez que cambiemos un diskette,
ya que no siempre cuando se escribe en un dispositivo se realiza automticamente
un volcado al dispositivo (por eso se pueden perder datos si se apaga el ordenador

Plataforma de Teleformacin de IFES Pgina 169 de 328


a lo bruto).Adems,si cambiamos el diskette sin hacer umount,el kernel piensa que
hay el sistema de ficheros anterior y cuando guarda alguna informacin lo hace
con referencia al retirado,perdindose todo. ste es un punto a tener en cuenta con
el uso de diskettes, ya que el mecanismo para retirar un diskette es mecnico,no
existe posibilidad de impedir por medio de software que alguien saque un diskette
de la disquetera. No ocurre lo mismo con el CD-Rom,ya que el sistema bloquear la
posibilidad de extraerlo cuando est montado.

Cmo se crea un diskette de arranque para Linux?

Slo tenemos que ejecutar los siguientes comandos con un diskette vaco dentro de la
diskettera:
[sromero@localhost]$/sbin/mke2fs /dev/fd0
[sromero@localhost]$ [ -d /fd ] || mkdir /fd
[sromero@localhost]$ mount /dev/fd0 /fd
[sromero@localhost]$ cp /boot/boot.b /fd
[sromero@localhost]$ cp /vmlinuz /fd
[sromero@localhost]$ echo
image=/fd/vmlinuz label=linux | /sbin/lilo -C - -b /dev/fd0 -i /fd/boot.b -c
[sromero@localhost]$ umount /fd
[sromero@localhost]$rmdir /fd
Lo que hacen estos comandos es:
/sbin/mke2fs /dev/fd0
-> Formatea el diskette con formato ext2
[ -d /fd ] || mkdir /fd
-> Si no existe el directorio /fd lo crea
mount /dev/fd0 /fd
-> monta el diskette en dicho directorio.
cp /boot/boot.b /fd cp /vmlinuz /fd
-> Copia el kernel de Linux y el archivo de boot al diskette. Si nuestro kernel no se
llama vmlinuz (por ej bzImage o zImage) o no est en el raz debemos cambiar esto.
echo image=...
-> Activa el kernel en el diskette.
umount /fd
-> Desmontamos el disco
rmdir /fd
-> Borramos el dir /fd
Si alguno de los paths o nombres cambia los deberemos cambiar dentro del diskette.

Internet / Redes / Modems


Qu es un mdem? Y un puerto serie?

Pgina 170 de 328 Introduccin a Linux


Por qu los modems estn normalmente asociados a puertos serie? Lo impone el
hecho que cuando uno usa un mdem, la lnea telefnica a la que est conectado
slo tiene un cable por el que enviar la informacin. Para transmitir simultneamente
los 8 bits de los que consta un byte, que es la unidad de informacin usual en los
ordenadores, haran falta 8 cables (8 lneas telefonicas). Una solucin alternativa es
enviar los 8 bits sucesivamente uno detrs del otro a intervalos de tiempo regulares.
Precisamente esto es lo que hace un puerto serie. El corazn del puerto serie es un
chip del ordenador llamado UART (Receptor-Transmisor Asncrono Universal) el cual
se encarga de todo el trabajo, tanto para recibir datos como para enviarlos. As, la
potencia de dicha UART y lo bien configurada que est influirn en la calidad de la
comunicacin. El flujo de bits generado por la UART/puerto serie no puede introducirse
directamente en la lnea telefnica al no estar preparada para ello. La solucin es
utilizar un aparato intermedio que tome los bits que llegan del puerto serie y emita un
tono u otro por la lnea telefnica segn le llegue un bit 0 o un 1. Esto es lo que se
conoce como "modular una seal". Al otro lado del hilo telefnico otro aparato similar
interpretara estos tonos y generara unos o ceros en funcin del tono recibido. ste
sera el paso opuesto, "demodular la seal". Como normalmente se desear enviar y
recibir, el aparato intermedio deber realizar ambas funciones: MOdular y DEModular
(MO-DEM). As funcionaban los modems antiguos.
Los modernos se basan en los mismos principios aunque son infinitamente ms
verstiles y potentes. Los modems modernos realizan la modulacin y demodulacin
utilizando chips especiales llamados DSP (Procesadores Digitales de Seales en
castellano). Son como microprocesadores, pero muy rpidos y optimizados para
tratamiento de seales. Los modems modernos tambin incorporan sistemas de
compresin de datos que aceleran las transferencias, sistemas de correccin de
errores, cambios automticos de velocidad de transferencia si la calidad de la seal
mejora o empeora, etc... Existen dos clases de modems: Los internos y los externos.
Los externos van conectados a un puerto serie del ordenador por lo que simplemente
se limitan a las funciones descritas de modulacin-demodulacin, compresin,
correcin, etc. Los modems internos "de verdad", al no ir conectados a un puerto
serie incorporan una UART como las de dichos puertos serie, de forma que a ojos del
ordenador se trata de un puerto serie ms.

Entonces, qu es un winmodem, mdem HSP o mdem software ? Funcionan


los winmodem en Linux ? Y los modems PCI?

Son modems internos "capados". Los fabricantes les quitan chips para que sean ms
baratos. Por ejemplo, algunos no tienen UART, a otros les quitan los protocolos de
compresin, etc. Para que tengan las mismas funciones que los modems "de verdad",
las funciones correspondientes a los chips retirados las tienen que realizar drivers del
sistema operativo, o sea el microprocesador del ordenador. Los fabricantes de los
distintos modems slo ofrecen drivers para Windows y no dan especificaciones de
cmo se programan, y as desarrollar versiones para Linux. Por tanto estos modems no

Plataforma de Teleformacin de IFES Pgina 171 de 328


funcionan en Linux. Sobre los modems PCI, no tengo noticias de que ninguno sea un
mdem "de verdad". Es probable que en el futuro aparezcan pues el hecho de ser PCI
no es ningn impedimento para ello.

Cmo se configura el puerto serie ?

La primera pregunta sera:debo configurar mis puertos serie ? En general, slo


debers configurar los puertos serie en estos casos:
Tu mdem es interno y Plug'n'Play. Debers configurar el mdem y al menos
el puerto serie que incorpora.

Tienes ms de dos puertos serie, contando adems con los que incorporan
los modems internos (si tienes alguno). Por lo general debers configurar
todos los puertos a partir del COM3 includo.
Un tercer caso, ms raro, que consistira en tener un mdem interno
en COM1 o COM2 y que no usar los recursos estndar (puerto 3f8 e
interrupcion 4 para COM1, y puerto 2f8 e interrupcin 3 para COM2). Los
recursos utilizados por el mdem pueden consultarse en el Panel de Control
de Windows 95 :
(Sistema -> Administrador de dispositivos -> Puertos COM y LPT -> el puerto que sea -
> Recursos). Entonces debers configurar el puerto del mdem.
Si no cumples ninguna de estas condiciones, puedes ignorar el resto de la seccin.
Un puerto serie (ms exactamente, la UART del puerto serie) usa un rango de
direcciones de entrada-salida y una solicitud de interrupcin para comunicarse con
el sistema operativo. Para el correcto funcionamiento del ordenador y del sistema
operativo, ningn otro dispositivo del ordenador puede usar alguno de esos valores.
Nuestro objetivo ser conseguir esto, y en segundo lugar, hacer que el sistema
operativo atienda a ese rango de entrada-salida y esa interrupcin para comunicarse
con el mdem. Tradicionalmente, la eleccin del rango de entrada-salida y la
interrupcin se realizaba a travs de una serie de microinterruptores manuales situados
en el mdem. Conocida la posicin de estos interruptores, se configuraba el sistema
operativo para que usara esos valores. Hoy en da casi la totalidad de los modems
internos son Plug'n'Play, lo cual significa que el sistema operativo puede, por software,
decirle a la tarjeta qu valores debe usar.
Configuracin de modems Plug'n'Play en Linux
Si tienes un mdem Plug'n'Play, lo primero que habr que hacer es decirle qu rango
de entrada-salida y qu interrupcin debe usar. Lo ms cmodo en este caso es usar
los mismos valores que Windows 95. Para ello, arranca Windows 95, y haz:
Inicio->Configuracin->Panel de control. Una vez en el Panel de control, elige el icono
'Sistema' y dentro de l, el 'Administrador de dispositivos'. Dentro del apartado 'Puertos
COM y LPT' elige el correspondiente al puerto COM donde tienes el mdem. Busca
en 'Recursos' el rango de entrada-salida y la interrupcin que use y apntalos. Con
esos valores en la mano, puedes configurar tu mdem Plug'n'Play en Linux. Eso se

Pgina 172 de 328 Introduccin a Linux


hace con el programa 'isapnp'. Entra en Linux y busca si tienes un archivo llamado /etc/
isapnp.conf. Si no lo tienes haz lo siguiente:
pnpdump > /etc/isapnp.conf
Esto generar el esqueleto de un archivo de configuracin para 'isapnp'. Este programa
generar un listado con todas las posibles posibilidades de configuracin que permiten
tus dispositivos Plug'n'Play, pero todas deshabilitadas con un '#' al principio de cada
lnea.
Los dispositivos aparecen por secciones por lo que es fcil encontrar los
correspondientes a tu mdem. As,tu misin se reducir a encontrar en la seccin
correspondiente a tu mdem del archivo /etc/isapnp.conf, dos lneas as:
(IO 0 (BASE 0x0NNN))
(INT 0 (IRQ MM (MODE +E)))
donde NNN sea el rango de entrada-salida que use el mdem en Windows y MM
la interrupcin. Las lneas no tienen por qu ser consecutivas ni ir en ningn orden
especial. Cuando las encuentres, qutales el '#' inicial. Luego, al final de la seccin del
mdem encontrars una lnea parecida a sta:
(ACT Y)
De la misma forma, le quitas el '#' inicial.Ya est. Listo para enviar dichos valores al
mdem. Esto lo hace la orden isapnp:
/etc/isapnp.conf
...y deber aparecer en los scripts de arranque de Linux para enviar los valores cada
vez que enciendas el ordenador. Las distribuciones ms recientes (Red-Hat 5.0 y
posteriores, Debian 2.0 y posteriores) ya incluyen dicha invocacin por lo que no
necesitars tocar los scripts de arranque. En caso de tener una distribucin antigua,
ser necesario aadir dicha orden. Un buen sitio para incluirla sera el script rc.local,
que suele estar situado en uno de los subdirectorios de /etc. De todas formas ser
necesario ejecutar ##isapnp /etc/isapnp.conf
,si queremos activar los cambios en este momento y nos queremos ahorrar el
rearrancar la mquina.
Ahora hay que decirle al sistema operativo que debe usar esos valores para
comunicarse con el mdem. En el caso de los modems Plug'n'Play lo que viene a
continuacin es imprescindible.
Configuracin de los puertos serie a ojos del sistema operativo:
Lo primero que hay que saber es que Linux no llama a los puertos serie de la misma
forma que el DOS o Windows.
As existe la siguiente correspondencia:
DOS-Windows Linux
COM1 /dev/ttyS0
COM2 /dev/ttyS1
COM3 /dev/ttyS2
COM4 /dev/ttyS3
Ojo a las maysculas y las minsculas del nombre de Linux. Son importantes.

Plataforma de Teleformacin de IFES Pgina 173 de 328


Para leer la configuracin y configurar los puertos serie se usa la orden 'setserial'. Para
leer la configuracin,hay que ejecutar setserial con el puerto serie que deseamos ver
como nico parmetro.
Por ejemplo:
setserial /dev/ttyS1
,nos muestra la configuracin de COM2 y se obtendr algo como esto:
/dev/ttyS1
UART: 16550A
Port: 0x02f8
IRQ 3
, es decir:
el puerto serie (/dev/ttyS1), el tipo de chip UART que lleva (16550A), el puerto base de
entrada-salida (2f8) y la solicitud de interrupcin (3). Ntese que estos son los valores
que el sistema operativo CREE que debe utilizar para comunicarse con el mdem/
puerto serie. Es posible que ahora no coincidan con los reales, incluso que ni siquiera
detecte la UART, lo cual no es raro en caso de modems Plug'n'Play. Si no coinciden,
asignaremos los valores adecuados.
Por fortuna,por lo general no ser necesario indicar la direccin base de entrada-
salida. Salvo casos muy, muy excepcionales, COM1 usa la direccin base 3f8, COM2
la 2f8, COM3 la 3e8 y COM4 la 2e8, y eso setserial lo sabe. As, al indicar el puerto
serie, setserial implcitamente sabe cul es la direccin base. En cambio, en caso de
tener un puerto COM5 o superior s ser necesario indicar la direccin base. As, para
COM1-COM4 ,slo indicaremos la interrupcin.
Por ejemplo, supongamos que tenemos un mdem en COM3 que usa la interrupcin 5.
La orden a introducir sera:
setserial /dev/ttyS2 irq 5 autoconfig .
Y si quisiramos indicar tambin la direccin base de entrada-salida (por tener el
mdem en COM5, por ejemplo) se hara as:
setserial /dev/ttyS4 port 0x2e8 irq 10 autoconfig
lo cual hace que el sistema operativo use un rango de direcciones desde la 2e8, y la
interrupcin 10.
Ntese que el '0x' antes de la direccin base es importante. Por ltimo, slo queda
ver que los cambios han surtido efecto. Para ello bastar usar de nuevo setserial de
la primera forma que se indic. Por desgracia, esta configuracin durar hasta que
apaguemos el ordenador.
Por tanto ser necesario incluir la lnea o lneas de configuracin setserial ###/dev/
ttyS2 irq 5...
en uno de los scripts de arranque de Linux para que los puertos se configuren cada vez
que se inicie el sistema operativo.
Un buen candidato es rc.local, que estar en uno de los subdirectorios de /etc. En caso
de ser necesario incluir en rc.local tanto el isapnp /etc/isapnp.conf para configurar un
mdem Plug'n'Play, y el setserial... de los puertos serie, deber colocarse el isapnp...
en primer lugar.

Pgina 174 de 328 Introduccin a Linux


Tambin habr que usar setserial de la misma forma si el ordenador tuviera ms de
dos puertos serie,(contando los que traen los modems internos en caso de disponer de
alguno). El motivo es que por alguna extraa razn de diseo del PC, COM1 y COM3
por defecto comparten la misma interrupcin, y a pesar de que esa configuracin no es
deseable, Linux por defecto busca COM3 en la misma interrupcin que COM1, por lo
que habra que cambiar la de COM3. Lo mismo ocurre con COM2 y COM4 ,por lo que
habra que cambiar COM4. Si no se hiciera esto, podran ocurrir cosas muy raras, como
ratones y modems que dejan de funcionar, modems que funcionan "a pedales" (cuando
se mueve el ratn), etc...

Cmo compruebo que todo est bien configurado?

Una vez activados los cambios con el comando isapnp para los modems Plug'n'Play
y el/los comando(s) setserial necesarios para configurar el/los puerto(s) serie, o se
hreiniciado el ordenador con los scripts de arranque modificados para que ejecuten
dichas rdenes (es ms seguro hacer lo primero), se puede probar si todo va bien. La
forma ms sencilla es usar un programa de comunicaciones y enviarle comandos al
mdem para ver si responde. As, un programa adecuado sera minicom ,que es un
terminal de comunicaciones tipo Telix. No es complicado de configurar. Pulsando Ctrl+a
y luego z sale un men. Una de las opciones 'configure minicom' dar paso a otro men
donde la opcin "Serial port setup" nos permitir elegir el puerto serie, la velocidad con
la que nos comunicaremos con l (no la velocidad del mdem) y otras opciones ms.
Lo normal es usar :
115200 o 57600 para la velocidad, 8N1,
"Hardware Flow Control: Yes" y "Software Flow control: No".
Una vez configurado y sin ningn men sobre la pantalla escribes ' AT' (las dos en
maysculas o las dos en minsculas) y pulsas ENTER. Si el mdem responde al
instante 'OK' ,o con un nmero cero, indicara que el mdem funciona y que responde
bien. Para completar la faena puedes probar a conectarte a una BBS o a tu nodo de
infova plus (los nodos de infova plus permiten una conexin tipo terminal, aunque no
s qu se puede hacer con ella) ,y as probar que todo va bien. Si el mdem tarda en
responder al 'AT', o no responde, algo ha fallado en la configuracin del mdem o del
puerto serie y habra que revisar lo hecho.
Un comentario sobre el 'AT' :
Cuando se escriben estas dos letras pueden ocurrir varias cosas:
Que salga el AT mientras lo escribes (lo normal).

Que no te salga el AT, pero al pulsar ENTER el mdem responda con OK.
Para solucionar esto deberas activar el eco local del terminal con Ctrl+a e o
escribir a ciegas "ATE1" y pulsar ENTER.
Que te salga AATT y todo lo que pongas por duplicado. No es problema
porque el mdem slo recibir 'AT'. Para quitar esto, desactiva el eco local
del terminal con Ctrl+a e o escribe "ATE0", aunque te salga duplicado.

Plataforma de Teleformacin de IFES Pgina 175 de 328


Cuando pulses ENTER tras el ATE0 ya funcionar bien.

Qu es pppd?

Se trata de la primera posibilidad de conexin a internet que ofrece Linux. Es una


conexin a internet que gasta pocos recursos y con posibilidad de hacerla desde la
consola, sin necesidad de entrar en modo grfico. Cualquiera que aspire a obtener el
mximo rendimiento de la conexin a internet, por ejemplo automatizando la conexin,
automatizando la recogida de correo, noticias, ftp, etc..., casi seguro no tendr ms
remedio que pasar por aqu. Como inconvenientes, tiene unos cuantos. El ms
destacable es la falta total y absoluta de interactividad o de informacin en pantalla de
cmo va la conexin, siendo necesario el uso de otros comandos (como ifconfig) o la
observacin de archivos histricos (/var/log/messages) para averiguar si la conexin se
ha realizado con xito o ha habido algn error. La configuracin de pppd se basa en la
creacin de una serie de archivos...
/etc/ppp/options :
Configuracin de la conexin y del puerto
serie /etc/ppp/marcado :
Configuracin del mdem y marcado del nmero de telfono
/etc/ppp/pap-secrets :
Claves de acceso para identificacin con PAP
/etc/ppp/chap-secrets :
Claves de acceso para identificacin con CHAP
/etc/resolv.conf :
Servidores de nombres (DNS)
As un posible /etc/ppp/options sera as:
connect "/usr/sbin/chat -v -f
/etc/ppp/marcado" name
mi_login@mi_proveedor defaultroute
noipdefault modem crstcts asyncmap a0000
mru 576 /dev/ttySx 115200
Comentarios:
En mi_login@mi_proveedor ir el login y el proveedor (el proveedor sin
dominio, por ejemplo: fulanito@arrakis)

Donde pone /dev/ttySx, la 'x' indica el puerto serie: /dev/ttyS0 = COM1, /dev/
ttyS1 = COM2, etc...
La velocidad 115200 NO es la velocidad del mdem, es la velocidad entre el
mdem y el puerto serie, que no tiene por qu coincidir con la velocidad en
el lado de la lnea telefnica. La velocidad del mdem (33600, 28800...) NO
hay que ponerla en ningn sitio.
Algunos modems no soportan esa velocidad entre el mdem y el puerto serie y habr
que probar con 57600 o incluso con 38400. Si se tiene una UART 16450 o 8250, utilizar

Pgina 176 de 328 Introduccin a Linux


38400 (usar setserial /dev/ttySx para conocer la UART del mdem o del puerto serie,
donde 'x' indica el puerto serie de la misma forma que antes). Ntese que el valor
ptimo es 115200 y conforme menor sea dicho valor, menos rendimiento le sacaremos
al mdem.
/etc/ppp/marcado:
ABORT "BUSY" ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "ERROR" ""
"AT& F&quot; TIMEOUT 5 OK "ATDTnumero_de_telefono" TIMEOUT 100 CONNECT
Comentarios:
Los ABORT iniciales sirven para que, si el mdem encuentra una situacin
anmala (no hay tono de llamada, comunicando...) y responde alguno de

esos mensajes (BUSY, NO CARRIER...), el pppd pare y no pierda tiempo


hasta fallar el TIMEOUT 100 que sera el que acabase la conexin. El
problema es que no todos los modems responden de la misma forma (por
ejemplo, el mo responde "NO DIAL TONE" en vez de "NO DIALTONE")
y la correspondencia debe ser exacta. Por tanto, para una configuracin
correcta, ser necesario consultar en el manual del mdem cmo son estos
mensajes.
El "AT& F&quot; es la cadena de inicializacin del mdem. La que se
indica es de las ms estndar. No obstante, en algunos modems puede
ser mejor "ATZ" o variantes de "AT& F&quot; (como "AT& F1&quot;, "AT&
F2&quot;...). Como referencia, se debe usar aquella que configure el mdem
para usar control de flujo hardware (RTS/CTS). En caso de no acertar en
la configuracin del mdem, es posible que se produzcan algunos efectos
indeseables (el mdem no cuelga al cortar la comunicacin, conexin
lenta...).
Una posibilidad es "fusilar" la que use windows. Se puede ver dentro del directorio de
windows un archivo llamado modemlog.txt o modemdet.txt.
El numero_de_telefono es precisamente eso. El nmero de telfono del
nodo de Infovia Plus, el de Iddeo, etc...

/etc/ppp/pap-secrets
/etc/ppp/chap-secrets
Existen dos formas posibles de identificacin cuando nos conectamos a un proveedor:
PAP y CHAP.
PAP es la ms sencilla y es la que usaba por ejemplo Infovia.
CHAP es muy usada en Infovia Plus. El formato de ambos archivos es el mismo:
mi_login@mi_proveedor * password
Comentarios:
mi_login@mi_proveedor debe ser exactamente lo mismo que se puso como
parmetro de la opcin 'name' en /etc/ppp/options.
Los campos van separados por TABULADORES no por espacios.

Plataforma de Teleformacin de IFES Pgina 177 de 328


Si se dispone de ms cuentas en otros proveedores, se pueden aadir
nuevas lneas con el mismo formato.

Cul uso, pap-secrets o chap-secrets?


Si sabes que tu proveedor usa PAP, grbalo como pap-secrets. Si usa CHAP, grbalo
como chap-secrets. Si no sabes cul usa, puedes hacer prueba-y-error o crearte los
dos, o crearte uno slo y hacer un enlace simblico de uno al otro. Por ejemplo, si has
creado chap-secrets, para hacer un enlace desde pap-secrets se hara:
cd /etc/ppp ln -s chap-secrets pap-secrets.
Esto en teora hara que pppd y tu proveedor se pusieran de acuerdo para elegir PAP o
CHAP segn prefieran.
/etc/resolv.conf : Aqu iran las direcciones de los DNS primario y secundario. El formato
es muy sencillo:
nameserver DNS_primario nameserver DNS_secundario
Por ejemplo, nameserver 195.5.65.2
Comentarios:
En lugar de DNS_primario y DNS_secundario, se pondrn las direcciones
numricas de los DNS primario y secundario respectivamente.

Los DNS primarios y secundarios debers preguntarlos a tu proveedor y debern


drtelos, pues no son secretos.
Si no tuvieras DNS_secundario, puedes ahorrarte la segunda lnea. Una
vez creados los scripts, la conexin se efectuara al escribir pppd o /usr/

sbin/pppd. Para comprobar si la conexin tiene xito, se puede usar el


comando /sbin/ifconfig y ver si al cabo de un minuto o dos aparece un bloque
nuevo ppp0. Otra forma es consultando peridicamente el fichero /var/log/
messages hasta ver si aparece algo como esto:
Local IP address xxx.xxx.xxx.xxx
Remote IP address yyy.yyy.yyy.yyy
Lo cual indicara una conexin con xito.
Una forma de hacer esto sera con la orden
tail -f /var/log/messages
y pulsar Ctrl+C cuando veamos que la conexin ha funcionado o fallado.
La desconexin se realizara introduciendo la orden ##killall pppd.
En caso de necesitar ayuda, remitir la duda a es.comp.os.linux.misc o
es.comp.os.linux.redes mandando copia de los scripts (ocultando los passwords, claro)
y lo que haya salido en /var/log/messages durante la conexin fallida.
NOTA IMPORTANTE: Los ficheros arriba descritos han de crearse desde cero con un
editor de Linux. Crearlos con un editor de DOS o de Windows, o con operaciones de
cortar-y-pegar en Windows aade un carcter no visible al final de cada lnea que Linux
confundira con un carcter normal, inutilizando los scripts.

Pgina 178 de 328 Introduccin a Linux


Cmo conecto a internet con KDE-kppp?

Despus de haber utilizado diversos sistemas para conectar con Internet a travs
de InfovaPlus mediante mdem y haber constatado en el grupo de noticias
es.comp.os.linux la gran cantidad de veces que se pregunta acerca de cmo
conectarse mediante kppp, hemos pensado que este breve resumen sobre cmo
establecer la conexin usando el kppp podra ser interesante para algunos que se
inician en linux y disfrutan del entorno grafico KDE.
Las notas que escribo a continuacin se refieren a la versin KDE 1.0 (las diferencias
con respecto al KDE 1.1 son mnimas) y por lo tanto voy a partir de la base de que el
usuario de linux ha instalado ya el KDE y le funciona sin problemas de ningn tipo.
Gua paso a paso de conexin a internet a travs de InfovaPlus con kppp.
Antes de comenzar...
El mdem debe estar correctamente instalado y su funcionamiento verificado (usando
por ejemplo el programa minicom). El dispositivo asociado al mdem depender del
puerto serie al que est conectado. Si est conectado al "COM2" (en jerga DOS), el
dispositivo ser /dev/ttyS1 , y podemos hacer un enlace simblico a /dev/modem :
ln -s /dev/ttyS1 /dev/modem .
Adems debemos saber su velocidad mxima. Si el mdem es de ms de 28,8Kbps
podemos tomar 115200.
Otros datos fundamentales son los que tienen que ver con nuestro proveedor de
internet:
"Domain name" (Nombre de dominio del servidor de acceso) seguido por
un punto y la extensin del pas: por ejemplo proveedor.es (se trata de un
nombre inventado para ilustrar el procedimiento)

"DNS IP" (Direccin IP del servidor de nombres de dominio: en nuestro caso


ser (inventado tambin) 194.150.24.25
Login: compuesto por nuestro indicador de usuario (p.ej. user) y "Domain
name" sin extensin separados por arroba
user@proveedor
Nmero de telfono que corresponda segn nuestro nodo de
conexin. Cuando exista Infova este nmero era el 055, pero con

InfovaPlus,dependiendo del lugar, hay un telfono de acceso; por ejemplo


(para Sevilla) 954547000 .
Comenzamos..
Invoquemos kppp mediante accin sobre el correspondiente icono del men del KDE o
escribiendo en un terminal:
[user@localhost]# kppp .
Para que el programa funcione para un usuario normal el propietario y el grupo
deben ser root y el ejecutable debe tener el bit SETUID activado, para poder abrir el
dispositivo del mdem. Si no es as se pone uno superusuario:

Plataforma de Teleformacin de IFES Pgina 179 de 328


[user@localhost]# su root
(... da la password... y entonces hacemos)
[user@localhost]# chown root.root kppp
[user@localhost]# chmod +s kppp
[user@localhost]# exit (...para volver a usuario normal...)
Si todo ha ido bien aparecer la ventana del kppp y con el ratn accionaremos la tecla
setup.Entonces se abrir la ventana "kppp configuration" con varias pestaas indicando
secciones: Accounts; Device; Modem; PPP y About.
Comenzaremos por la primera seccin:
Seccion ACCOUNTS .
Accionamos la tecla new y aparece una nueva ventana llamada new account con otra
serie de subsecciones: desde Dial hasta Accounting.
Subseccion DIAL.
Esta seccin contiene el Dial Setup que debemos rellenar:
Connection name: Ponemos el nombre que queramos dar a la conexin; por ejemplo,
INFOPLUS Phone number: 954547000
Authentication.
La autenticacin puede realizarse de cuatro modos:
script-based, PAP, terminal-based o CHAT.
Debemos elegir la opcin PAP Store password:
si no quieres tener que teclear la password cada vez que te conectes deja activada esta
opcin .
Execute program upon connect:debe tener su casillero vaco. No escribas nada.
Execute program upon disconnect: Debe tener su casillero vaco. No escribas nada.
Edit pppd arguments: una vez activada la opcin los argumentos se introducen
escribindolos en el casillero "arguments" y pulsando la tecla "add". Deben estar los
siguientes:
detach defaultroute asyncmap a0000
noipdefault ipcp-accept-local
ipcp-accept-remote .
Cuando hayamos terminado, pulsamos "close" y pasamos a las subsecciones
siguientes
NOTA: Estos argumentos los tena as establecidos para cuando conectaba con Infova.
Al pasar a InfovaPlus, alguno puede quedar superfluo,pero funciona!, as que no quit
ninguno.
Subseccion IP Contiene el IP setup. La nica opcin que debe estar activada es
Dynamic IP address Subseccion DNS. Aqu tenemos el men del DNS Server:
Domain name:
proveedor.es
DNS IP address: la(s) introducimos en este casillero: 194.150.24.25 y pulsando la tecla
"add" la(s) pasamos al DNS address list. Al menos debe haber una.
Disable existing DNS servers during connection: Esta opcin debe estar activada.
Subseccin GATEWAY :contiene el Gateway setup .

Pgina 180 de 328 Introduccin a Linux


Las opciones que deben activarse son:
Default Gateway : Assign the default route to this gateway
Subseccion LOGIN SCRIPT Principiantes Ni tocarlo!
El edit script deber estar vaco, con el primer casillero de opciones presentando la
opcin "EXPECT".
Subseccion ACCOUNTING:
La opcin Enable accounting debe estar activada.Selecciona entonces con la
opcin "Selected" : Spain y dentro de ella, Telefnica Local y deja la opcin "Volume
accounting: No accounting" desactivada.
Entonces, una vez que hemos rellenado todas las subsecciones de la seccin
ACCOUNTS, accionamos el botn OK de la ventana "new account" y volvemos a la de
kppp configuration. Hay que rellenar el resto de las secciones.
Seccion DEVICE:

Aqu est el men Serial device:


Modem device: pon el dispositivo correspondiente, p.ej. /dev/ttyS1 (para mdem en
puerto serie com2) Flow control: CRTSCTS (hardware flow control) Line termination:
La que corresponda. Generalmente es CR/LF Connection speed: La que corresponda,
p.ej. 115200 Modem lock file: /var/lock/LCK..modem .Este fichero debe estar por
defecto. No lo cambies si no sabes lo que haces, pues algunos programas como mgetty
dependen de la existencia de tal fichero y kppp no funcionar.
Seccion MODEM Busy wait: 0 seconds

Modem Asserts CD line: opcin desactivada


Modem commands: Deja los valores por defecto y no cambies nada Query modem:
Pulsando este botn kppp insta al mdem a que se identifique. Sirve para probar el
mdem.
Terminal: Tambin sirve para comprobar si el mdem negocia bien el protocolo de
conexin. De todos modos no te detengas en esto si no sabes lo que haces y sigue
adelante.
Seccion PPP

Presenta el ppp setup: pppd timeout: 60 seconds


Dock into the panel on connect: opcin desactivada
Automatic redial on disconnect: opcin generalmente desactivada
Show clock on caption: opcin activada
Disconnect on X-server shutdown: opcin activada
Quit on disconnect: opcin desactivada
Minimize window on connect: opcin activada
La seccin ABOUT evidentemente es para mirar solamente. Por ltimo accionamos el
botn OK de la ventana kppp configuration.
Con ello volvemos a la inicial de kppp.

Plataforma de Teleformacin de IFES Pgina 181 de 328


Activamos "Show log window". En el casillero "Connect to" deber aparecer el nombre
de nuestra conexin (en el ejemplo INFOPLUS). El login ID ser en nuestro ejemplo
user@proveedor.
Escribimos la password en su casillero: ****** y por ltimo pulsamos "connect" .
Si todo va bien, aparecern dos ventanas: una con el marco superior indicando
"Connecting to: INFOPLUS" que mostrar Dialing 954547000 y otra mayor, a la
derecha de la primera indicando en su marco superior "Login Script Debug Window" y
presentando una serie de acciones: ATZ OK ATD954547000 (Mientras est "Expecting
Connect") cuando se ha establecido la conexin, aparece en esa misma pantalla
CONNECT 115200 e indicar en su marco inferior "running pppd" mientras la otra
ventana indica "Logging on the network".
Cuando la ventana mayor presente en su marco inferior "Done", la otra ms pequea,
que en su marco superior exhibir el nombre de la conexin (INFOPLUS), se
minimizar y ya estamos conectados.
Si restauramos la ventana de conexin INFOPLUS en un momento dado nos mostrar
la siguiente informacin:
Connected at 115200 Time connected ....
Session bill...PTAS Total bill ....PTAS y dos teclas "Details" (para ver los detalles de la
conexin con nuestro proveedor) y "Disconnect" evidentemente para desconectarnos.
Si la pulsamos, aparecer de nuevo la ventana kppp y entonces, para salir,
presionaremos la tecla "quit".
Preguntas habituales:
kppp muestra "pppd has died unexpectly" o

"data timeout has expired" (pppd ha muerto inesperadamente o ha pasado el tiempo


de espera). Estos mensajes pueden aparecer alguna que otra vez, aisladamente. Si
siempre se producen, entonces hay un problema.
Hemos de comprobar que:
- pppd es realmente un binario y no un script
- pppd tiene el bit setuid activado
- el fichero /etc/pppd/options existe pero est VACO
- que no has usado la opcin "lock" como argumento del pppd en la configuracin del
kppp
- no uses el enlace simblico /dev/modem; en su lugar usa el dispositivo real que
corresponda, p.ej., /dev/ttyS1
- asegrate que tienes los permisos necesarios en caso de seguir igual, invoca:
[user@localhost]# tail /var/log/messages
para considerar las causas de posibles fallos. Es muy conveniente leer el dossier sobre
kppp que aparece pulsando la tecla help de la ventana de kppp.
kppp indica "sorry, can't open the modem" (perdn, no puedo abrir el
modem). Esto significa que kppp no tiene permisos para abrir el dispositivo
mdem o que se ha seleccionado un dispositivo incorrecto en el cuadro del

Pgina 182 de 328 Introduccin a Linux


modem. Comprueba que el dispositivo sea correcto y luego dale el bit setuid
a kppp.

kppp muestra "I can't create a modem lock file" (no puedo crear el fichero de
cerradura)
O bien le das a kppp el bit setuid o das acceso al fichero /var/lock a los usuarios
normales
kppp slo espera (Expecting OK) - Has jugado con la configuracin de CR/
LF? - El modem quiz necesita ms tiempo para inicializarse. Ve al cuadro
"Modem commands" y aumenta el "Init Delay Time".

La conexin funciona, pero no se pueden arrancar aplicaciones.Puede ser


que est activada la opcin "Auto configure hostname" y el servidor X tiene
problemas para conectar con tu nuevo servidor. Si no hay ms remedio
que usar dicha opcin, tendrs que proporcionar los permisos adecuados
tecleando xhost + antes de realizar la conexin. Pero,MUCHO CUIDADO!,
porque cualquier otra persona tendr acceso a tu servidor de X.
kppp funciona, pero Netscape indica que "There is not a DNS entry for this
server" (El servidor no tiene una entrada DNS).
Intenta hacer un ping al nmero IP de otro servidor. Si funciona entonces hay que
comprobar si le diste al kppp al menos una direccin DNS o si en el fichero
/etc/host.conf hay una lnea indicando algo parecido a order hosts, bind. (Debe haberla
para que se consulte al servidor de nombres cuando se busca una direccin)

Mi mdem cuelga durante la negociacin inicial.

La negociacin se puede distinguir por ser la fase en la que suenan los modems.
Si cuelga bruscamente puede ser debido a un TIMEOUT demasiado corto en el
script de marcado. Se puede subir a TIMEOUT 100 o a TIMEOUT 150. En caso
de seguir colgando, se puede intentar aadir S7=100 o S7=150 entre el AT y el
DTnumero_de_telefono en el script de marcado.

Mi mdem suena muy fuerte ,cmo le bajo el volumen?

Depende de lo que quieras. Si simplemente quieres bajar el volumen del mdem, basta
aadir L1 o L0 a la cadena de inicializacin del mdem. Un posible sitio para colocarlo
sera entre el "AT" y el DTnumero_de_telefono en el script de marcado.
Si lo que quieres es que no suene para nada (por ejemplo, si quieres automatizar
la conexin para que se realice de madrugada), debers aadir M0 a la cadena de
inicializacin del mdem. Puedes colocarla en el mismo sitio que se indic para L1 o
L0.

Conecto a internet, pero no logro ir a ningn sitio.

Plataforma de Teleformacin de IFES Pgina 183 de 328


Lo primero que hay que tener en cuenta es que no hay conexin hasta que no aparece
por /var/log/messages lo de Local IP Address xxx.xxx.xxx.xxx y Remote IP Address
yyy.yyy.yyy.yyy (o el bloque ppp0 al escribir ifconfig.
Esto viene al caso de que a veces la autentificacin inicial falla, por ejemplo porque
haya cado el proveedor o est saturado.En esos casos Infovia Plus no corta la
conexin y puede parecer que el mdem est conectado a internet cuando en realidad
ni siquiera ha llegado a contactar con el proveedor.En ese caso habra que revisar
las claves de acceso que se hubiesen introducido en pap-secrets o chap-secrets o
intentarlo ms tarde. En caso de aparecer Local IP Address... y Remote IP Address...
en /var/log/messages ,pero no conseguir conectar a ningn sitio habra que revisar en
primer lugar /etc/resolv.conf y ver si las direcciones all introducidas son correctas.
Una forma de averiguar si es culpa de los DNS es probar a conectar usando una
direccin numrica. Por ejemplo se puede probar con la direccin 130.206.1.2 que
corresponde a www.rediris.es .Si conecta, es un problema en /etc/resolv.conf (o
del DNS de tu proveedor).Si se descarta el DNS, comprueba que tienes la opcin
'defaultroute' en /etc/ppp/options. En caso afirmativo, comprueba /var/log/messages y
mira si aparece algn mensaje tipo " ppp not replacing existing default route to ...".
Este ltimo caso es tpico si se tiene alguna tarjeta de red y has definido alguna
direccin de gateway.Lo normal es eliminar dicho gateway. Averigua como introduciste
el gateway y elimnalo.
Una forma de eliminarlo sera por ejemplo con linuxconf, que viene con Red-Hat.

Qu significa eso de

Es un mensaje que aparece en /var/log/messages tpico de Infovia Plus y debido a un


protocolo de red llamado IPX.No debe suponer ningn problema para la conexin, pero
si resultara molesto se podra aadir la opcin noipx a ##/etc/ppp/options.

Mi mdem no cuelga, qu hago?

Asegrate de que tienes (si usas pppd) la opcion mdem en /etc/ppp/options. En caso
de que la tuvieras, comprueba que has puesto una cadena de inicializacin al mdem
en el script de marcado (por ejemplo at& f, atz...).
En caso de que as siguiese sin colgar, tendrs que echar mano del manual del mdem
y buscar el comando "que haga que el mdem cuelgue (o se resetee) cuando cambie la
lnea DTR".
Normalmente es & Dx donde &#039;x' es un nmero(que es lo que debers buscar
en el manual del mdem;si prefieres prueba-y-error 'x' normalmente estar entre 0 y
4). Luego debers editar el script de marcado del mdem y colocar dicho "& Dx&quot;
entre el "AT" y el "DTnumero_de_telefono". Al usar el caracter '&&#039;, no olvides
poner todo el conjunto (desde el AT hasta el final del nmero de telfono) entre comillas
dobles (p.e.: "AT& D3DT055&quot;).

Pgina 184 de 328 Introduccin a Linux


Internet me va mucho ms lento con Linux que con Windows.

Esto puede deberse a muchas causas: debers verificar la configuracin del mdem
y del puerto serie. Sigue la descripcin que se da en la seccin correspondiente de la
FAQ.
Comprueba que la velocidad que has puesto en /etc/ppp/options NO es la velocidad del
mdem (nada de 28800, 33600 o lo que sea, no es eso lo que debes poner ah). Pon
115200 o 57600, preferiblemente la primera. Si tienes una UART 16450 u 8250 pon
38400 y asegrate de NO poner el flag 'spd_hi' o 'spd_vhi' con setserial (si has seguido
las instrucciones de la FAQ desde el principio no hace falta que compruebes esto). El
tipo de UART que tienes lo podrs ver haciendo ##setserial /dev/ttySx
,donde 'x' es 0 para COM1, 1 para COM2, etc...
Si sigue lento o conectando mal, asegrate de poner una cadena de inicializacin al
mdem ("at& f&quot;, "atz") y que la opcin crtscts aparece en /etc/ppp/options. En
caso de continuar los problemas debers echar mano del manual del mdem y buscar
las opciones que "activen el control de flujo RTS/CTS".
Suelen ser de la familia de las que empiezan por '&&#039;. En algunos modems es
una sola orden (por ejemplo "& K3&quot;) y en otros hay que activar el RTS y el CTS
separadamente. Colocar el o los comandos entre el "AT" y el "DTnumero_de_telefono".
Si usas el carcter '&&#039;, asegrate de poner todo el conjunto (desde el AT hasta el
final del nmero de telfono) entre comillas dobles (p.e. "AT& K3DT055&quot;).

Tengo ms de un proveedor de internet,qu hago para poder elegir por cul me


conecto?

Una posible forma sera eliminar de


/etc/ppp/options
la opcin name
## mi_login@mi_proveedor.
De esta forma, si hemos puesto en pap-secrets o chap-secrets, el login y el password
de todos nuestros proveedores, bastara con escribir
pppd name login@proveedor
para elegir a cul nos queremos conectar. Esto funciona si todos los proveedores
comparten el mismo nmero de telfono (por ejemplo, si todos estn en infova plus).
En caso de tener diferentes nmeros de telfono, habra que eliminar en connect "/usr/
sbin/chat -v -f /etc/ppp/marcado" de /etc/ppp/options , crearse un fichero de marcado
particular para cada proveedor y crearse un fichero para cada proveedor en /etc/
ppp con las dos opciones personalizadas que le correspondan. O sea: ##/etc/ppp/
nombre_del_proveedor:
##connect
"/usr/sbin/chat -v -f
/etc/ppp/marcado_proveedor" name login@proveedor
Y ejecutar pppd as:

Plataforma de Teleformacin de IFES Pgina 185 de 328


/usr/sbin/pppd file
/etc/ppp/nombre_del_proveedor .
Las DNS de todos los proveedores se podran poner en /etc/resolv.conf , aadiendo
nuevas lneas ##"nameserver xxx.xxx.xxx.xxx".
Es conveniente ordenar los nameservers poniendo primero todos los DNS primarios
de todos los proveedores y despus los DNS secundarios. Tambin conviene poner en
primer lugar los correspondientes a los proveedores ms usados.

Slo puedo usar internet como root , qu hago para poder hacerlo como
usuario?

Hay dos formas de hacerlo.


La forma "buena", sera usando el programa sudo el cual permite ejecutar como usuario
algunos programas que slo podran funcionar como root. Esto supondra que cada vez
que uno quisiera conectarse a internet debera introducir un password, lo cual es til en
caso de que otros tuvieran acceso a nuestro ordenador. Para lo configuracin de sudo
consultar "man sudo". La forma "mala", y digo mala porque es ms insegura en caso
de que otros tengan acceso a nuestra mquina, consistira en poner pppd "suid root" lo
cual posibilita que un usuario normal tuviera acceso al programa de una forma similar
que root. Para esto ltimo, habra que empezar por localizar pppd. Suele estar en el
directorio /usr/sbin. Luego hara falta echar un vistazo para ver qu permisos tiene. Esto
se hace con la orden ls -l pppd y debe arrojar algo parecido a esto:
-rws--x--x 1 root ppp 70336 May 18 1996 pppd
Lo que se persigue es que la tercera letra sea una 's', como en el ejemplo. Si el
programa no est "suid root", la tercera letra ser una 'x'. Entonces en este caso habra
que hacer ##chmod 4711 pppd
para conseguirlo. Los scripts de /etc/ppp necesitaran tambin acceso libre para los
usuarios as que habra que hacer:
chmod 755 /etc/ppp
chmod a+r /etc/ppp/*.
El efecto secundario que esto tiene es que cualquier usuario del sistema puede leer
las claves de acceso a nuestro proveedor de internet. Existe la posibilidad de limitar
la conexin a internet (y a los scripts de conexin y claves de acceso), leer la seccin
"Cmo se cambian los permisos de ficheros y directorios?"
NOTA: An as, es posible que no seamos capaces de conectar con internet como
usuario normal. Una posible causa de fallo sera intentar conectar a internet escribiendo
pppd en vez de /usr/sbin/pppd. Para root funciona la primera, pero para el resto de
usuarios no. El motivo es que el PATH (el conjunto de directorios en los que Linux
busca un ejecutable) es diferente para root que para los usuarios normales. Los
usuarios normales no tienen /usr/sbin dentro del PATH as que debern hacer /usr/
sbin/pppd para conectarse a internet o hacer un enlace simblico a /usr/sbin/pppd
desde otro directorio que s est en el PATH de usuario (como por ejemplo /usr/bin), o
hacernos un script (pequeo programa) que se limite a ejecutar /usr/sbin/pppd.

Pgina 186 de 328 Introduccin a Linux


Para el enlace simblico bastara hacer:
ln -s /usr/sbin/pppd /usr/bin/pppd

Comandos bsicos
Pero hay que saber comandos?

La respuesta a esta pregunta es sencilla: todo depende de cmo vayas a utilizar el


sistema, de las ganas de aprender que tengas y de lo que quieras profundizar en el
sistema. Hay que diferenciar entre tareas de administracin y uso habitual del sistema.
Si vas a realizar tareas de administracin del sistema, deberas saber, o mejor dicho,
tendrs que aprender una serie de comandos para realizar estas tareas. Si vas a
utilizar el sistema a nivel usuario, no necesitars saber ningn comando, solamente
tendrs que aprender a utilizar los programas que uses. Lo que ocurre habitualmente
es que el usuario de la mquina y el administrador son la misma persona, con lo cual
tendrn que saber una serie de comandos mnimos. Como ancdota, os puedo contar
que en el lugar donde trabajo, hay usuarios que utilizan Linux y no tienen ni idea de
administracin del sistema (y no slo en linux), no saben comandos y tampoco los
necesitan. Trabajan en modo grfico, saben utilizar los programas que necesitan y
tienen a alguien (yo en este caso) que se hace cargo de las tareas de administracin/
configuracin del sistema.

Esto no lo puedo hacer en modo grfico?

Como regla general, se podra decir lo siguiente: "Todo lo que se puede hacer en modo
grfico, se puede hacer tambin en modo texto, a base de comandos. Pero no todo
lo que se puede hacer en modo texto, se puede hacer en modo grfico". Cada da
aparecen ms y ms programas, que permiten hacer hacer en modo grfico, a golpe
de ratn y ventanas, lo que se hace en modo texto a base de comandos. Es ms, lo
nico que estos programas hacen, es crear una versin grfica que hace uso de los
comandos que se utilizan en modo texto. Entornos grficos como Gnome y Kde, vienen
con una serie de programas grficos que hacen esto. Para terminar esta seccin, slo
decir a aquellos que quieran profundizar en el sistema, que hasta el momento, ningun
programa grfico, supera en versatilidad y potencia, a una consola de texto donde
ejecutar comandos directamente.

Combinaciones especiales de teclas

# [Ctrl]+[Alt]+[Del]: Shutdown.
Apaga el sistema de forma organizada desde una terminal texto.
# [Ctrl]+[Alt]+[F1]: Cambia a la primera terminal de texto.
# [Ctrl]+[Alt]+[Fn]: Cambia a la terminal de texto numero n (n=1,...,6).
# [Ctrl]+[Alt]+[F7]: Cambia a la primera terminal X (si se est usando alguna)

Plataforma de Teleformacin de IFES Pgina 187 de 328


NOTA:Si estamos en X-windows y por alguna razn nuestro entorno grfico dejase de
funcionar, siempre podramos entrar en una terminal texto con [Ctrl]+[Alt]+[Fn], terminar
los procesos que estn dando problemas y volver a las X con [Ctrl]+[Alt]+[F7].
# [Ctrl]+[Alt]+[Fn]: Cambia a la terminal X numero n (n=7,...,11)
# [Tab]: Autocompleta el nombre de un comando, fichero, directorio, programa, cuando
trabajamos en una terminal texto.
P.ej: Si vamos a usar el programa "programa_de_prueba", podemos escribir progr y
pulsar [Tab], el sistema se encargar de rellenar el resto.
# [ArrowUp]: (Flecha arriba). Va editando la historia de comandos que hemos escrito
anteriormente en terminal texto.
[Enter] para ejecutar.
# [Shift][PgUp]: Scroll la salida de la terminal hacia arriba, en terminal texto.
# [Shift][PgDown: Scroll la salida de la terminal hacia abajo, en terminal texto.
# [Ctrl]+c: Termina el proceso actual. Cuando lo comenzamos sin & ([localhost]$
proceso)
# [Ctrl]+d: Termina la terminal actual.
# [Ctrl]+s: Para la transferencia a la terminal.
# [Ctrl]+z: Manda el proceso actual (comenzado sin &) a &quot;Background". Lo mismo
que si comenzamos el proceso con & ([localhost]$ proceso &).

Lista de comandos ms usados

Todos los comandos citados en este apartado, pueden usarse con multitud de
opciones. Para conseguir informacin detallada de cada comando utilizar " man
comando". A continuacin tenis la manera ms sencilla de utilizacin.Informacin del
sistema
##hostname

, devuelve el nombre de la mquina.


## uptime

,devuelve la cantidad de tiempo trascurrido desde la ltima vez que se arranc el


sistema, la cantidad de usuarios trabajando en el sistema y el load average (carga del
sistema).
## uname -a

,informacin sobre el sistema operativo de la mquina.


## dmesg|more

, imprime el "ring buffer" del kernel.


## free -tm

, informacin sobre la cantidad de memoria disponible y usada.


## df -h

Pgina 188 de 328 Introduccin a Linux


,informacin sobre todo los dispositivos montados en la mquina.
## du -bh /|more

,informacin sobre el espacio ocupado por cada subdirectorio, comenzando en el


directorio raz /.
## ps

, informacin sobre los procesos del actual usuario, que se estn ejecutando.
## ps axu

, informacin sobre todos los procesos que se estn ejecutando en la mquina.


## top

, informacin sobre el uso de cpu y memoria de los procesos del sistema.


## cat /proc/cpuinfo

,informacin sobre el microprocesador.


## cat /proc/interrupts

, informacin sobre las interrupciones en uso.


## cat /proc/dma

, informacin sobre dma en uso.


## cat /proc/filesystems

, informacin sobre los sistemas de archivos que se pueden utilizar (compilados en el


kernel).
## /sbin/lsmod

, informacin sobre los mdulos en uso.


## finger usuario

, informacin sobre el usuario usuario.


## who

, informacin sobre los usuarios usando el sistema.


## id usuario

, informacin sobre UID, GID y GROUPS del usuario usuario


## last

,informacin sobre los ltimos usuarios que han usado el sistema.


##set|more

, informacin sobre el entorno de usuario actual.

Plataforma de Teleformacin de IFES Pgina 189 de 328


## ping mquina

, para comprobar si tenemos contacto con la maquina maquina (maquina: nombre o IP)
## /sbin/route

,tabla de enrutamiento de nuestro sistema.


## /sbin/ifconfig

, informacin sobre los distintos dispositivos de red


* netstat
, informacin valiosa sobre la conexin de red (Este comando tiene muchas
posibilidades, ejecutar man netstat Administracin
## su

, te conviertes en administrador(root) despus de introducir la clave de acceso. Ideal


para realizar alguna tarea de administracin sin necesidad de salir del sistema y entrar
de nuevo como root.
##/usr/sbin/adduser usuario

, registra y crea una cuenta de usuario.


##/usr/sbin/userdel usuario

, borra la cuenta de usuario usuario.


passwd: Cambia la clave de acceso para el usuario actual. Root puede
cambiar la clave de cualquier usuario passwd usuario

##/usr/sbin/groupadd grupo
, crea un nuevo grupo.
##/usr/sbin/groupdel grupo

, borra un grupo.
## more /etc/passwd,

muestra el fichero de claves del sistema. (Si no se usa shadow password)


## more /etc/group

, muestra los grupos registrados en el sistema.


## chmod permisos fichero/directorio

, cambia los permisos de ficheros/directorios


## cp fichero1 fichero2

,copia fichero1 como fichero2


## rm fichero

Pgina 190 de 328 Introduccin a Linux


,borra fichero
## rm -R directorio

,borra el contenido completo (ficheros/subdirectorios) de directorio


## mv fichero1 fichero2

, cambia el nombre de fichero1 a fichero2


## mkdir directorio

,crea un subdirectorio
## rmdir directorio

,borra un subdirectorio
## shutdown -t3 -r now

,reinizializa el sistema (hay que hacerlo como root).


##shutdown -t3 -h now

,apaga el sistema (hay que hacerlo como root).

Plataforma de Teleformacin de IFES Pgina 191 de 328


Introduccin a Linux

Apndices (Conceptos bsicos)


Qu es un sistema operativo?
Un sistema operativo es un programa (o conjunto de programas) de control que
tiene por objeto facilitar el uso de la computadora y conseguir que sta se utilice
eficientemente. Se encarga de gestionar y asignar los recursos hardware que requieren
los programas.

El sistema operativo es el programa principal de nuestro computador: sin l no


funcionara ningn otro y todos los dems programas se ejecutan sobre l, siendo el
S.O. quien los administra y gestiona.

El objetivo fundamental de los sistemas operativos es, por lo tanto, gestionar y


administrar eficientemente los recursos hardware, permitiendo que se ejecuten
concurrentemente varios programas, sin que haya conflictos en el acceso de cada
uno de ellos a cada uno de los recursos que necesite, y sin que ningn programa
monopolice alguno de ellos. Los recursos hardware son: el procesador (CPU), la
memoria principal, los discos y otros perifricos.

Pensemos en un sistema multiusuario, esto es, un ordenador utilizado desde diversos


terminales por varios usuarios (por ejemplo, el ordenador de un banco que gestiona las
cuentas de los clientes o el ordenador que gestiona la reserva de los billetes de una
lnea area). Obviamente, si varios usuarios estn utilizando la misma computadora,
debe haber alguien o algo que asigne los recursos y evite los conflictos que puedan
surgir cuando dos programas requieran los mismos elementos (la misma unidad de
disco, o la impresora, por ejemplo). Esta es una de las funciones del sistema operativo.

Adems de esta funcin de asignar los recursos a cada programa, el sistema operativo
se encarga de contabilizar stos, y de la seguridad (que un usuario no pueda acceder
sin autorizacin a la informacin de otro, por ejemplo).

Del mismo modo, es normal que un ordenador ejecute varios programas


simultneamente. Pueden darse conflictos cuando dos aplicaciones quieran modificar
el mismo fichero. Es funcin del sistema operativo controlar estas situaciones para que
no se produzcan daos o prdidas de informacin, como por ejemplo podra ocurrir si
dos agencias de viaje intentan vender el mismo billete simultneamente.

Pgina 192 de 328 Introduccin a Linux


El sistema operativo facilita el uso de la computadora. Para ello crea un sistema de
capasque evita al usuario y a las aplicaciones de mayor nivel tener que estar pendiente
de las operaciones de menor nivel. Por ejemplo, cada dispositivo de E/S (entrada/
salida, como el teclado, la pantalla, la impresora, etc.), para ser utilizado, requiere
varias instrucciones mquina que establezcan un dialogo entre las unidades centrales
y el perifrico, enviando o captando el dato de salida o de entrada, respectivamente.
Estas instrucciones dependen considerablemente de las caractersticas concretas
del perifrico. Si se trata, por ejemplo, de una unidad de disco, hay que considerar
el ancho de los buses, el tamao de su memoria intermedia, el arranque (y parada)
de los motores de la unidad, el cdigo identificador de la posicin a donde hay que
acceder, etc. Por otra parte, un dispositivo dado, estas instrucciones u operaciones
son comunes para grabar o leer cual tipo de informacin (programas o datos), sea
cual sea su naturaleza. El sistema operativo, con objetivo de facilitar el trabajo de los
programadores, contiene mdulos de gestin de entradas / salidas que evitan a los
usuarios tener que incluir esas instrucciones cada vez que hacen una operacin de
entrada o salida. Se puede decir que esos programas del sistema operativo hacen
transparente al usuario las caractersticas hardware concretas de los dispositivos.

El sistema operativo tambin hace que la computadora se utilice eficientemente.


Para poner de manifiesto cmo el sistema operativo puede incrementar la eficiencia
consideremos otro sencillo ejemplo. Los programas tradicionalmente se ejecutan
secuencialmente; es decir, hasta que no concluye la ejecucin de una instruccin no
se ejecuta la siguiente. Supongamos que dentro de un programa hay una instruccin
que implica la escritura de una pgina en una impresora lser. Hasta que no acabe de
imprimirse dicha pgina el programa no puede continuar ejecutndose. Sin embargo,
el sistema operativo puede recoger la orden de impresin, almacenarla en memoria y
encargrsela a una rutina de impresin, dejando el programa que haba efectuado la
llamada original a la impresora liberado para poder seguir trabajando.

En resumen, el sistema operativo efecta, entre otras, las siguientes funciones:

Facilita el uso de la computadora, en general, la comunicacin


computadora / usuario
Gestiona y asigna recursos hardware (procesador, memoria y perifricos) a
los distintos programas o tareas
Gestiona y mantiene los archivos en dispositivos de memoria masiva
Apoya a otros programas
Protege los datos y los programas, cuestin especialmente compleja en
sistemas multiusuario
Identifica y autentifica a los usuarios que hacen uso de la computadora.
Contabiliza la utilizacin de los recursos realizada por los distintos usuarios

Plataforma de Teleformacin de IFES Pgina 193 de 328


Qu es el software libre?
Adaptado de:
http://www.sindominio.net/pipermail/hacklabs/2003-May/000212.html
, un documento de
mailto: meskalito-at-sindominio.net

Qu es el software?
Empecemos con la definicin de Software: son los componentes no fsicos(programas)
que un ordenador --o un aparato con capacidades de computacin-- necesita para
funcionar.

Lamentablemente, el castellano no ha adoptado una palabra propia para definir este


concepto y nos vemos obligado a usar este anglicismo. Durante una poca, en los
albores del ordenador personal en la dcada de los 80, se propuso el trmino logical,
pero no lleg a prosperar su uso.

El software, por el tipo de licencia, se divide en dos grupos principales: Software Libre
y Software Propietario.

El software propietario
Este software se define como aquel cuya licencia restringe drsticamente su uso.
Puede ser creado por desarrolladores para el uso en una nica empresa, como es el
caso de numerosas aplicaciones verticales, aunque en este caso la empresa cliente
suele retener la propiedad completa del software, o por pequeas empresas, que lo
venden bajo numerosos tipos de licencias, algunas de ellas gratuitas (pero no libres).
Sin embargo, cuando nos referimos a este tipo de software, estamos pensando en el
que es producido principalmente por grandes empresas. La ms conocida de ellas
probablemente sea Microsoft, pero existen otras: Oracle, Adobe,...

En este caso, cuando pagas por un programa, no pagas por el cdrom, el programa o
su cdigo, solamente pagas por su licencia, que es la autorizacin de su uso, con las
condiciones que ponga la empresa propietaria de dicho software.

En general, las condiciones que tiene la licencia del software propietario son stas,
aunque la empresa propietaria del mismo suele poner las que le interesa:

Pgina 194 de 328 Introduccin a Linux


No se puede averiguar el cdigo fuente del programa; no se puede usar ms que en
una sola mquina; no se puede copiar ni prestar a un amigo (para que lo copie ni para
que lo use, aunque nosotros no lo estemos usando); no se puede ceder, no se puede
alquilar.

Esto hace que, por ejemplo, haya que pagar 2 veces por el mismo programa si se
instala en 2 puestos de trabajo, aunque sean usados por la misma persona (en casa y
en la oficina).

Adems de no poder aprender sobre el software viendo el cdigo, ni adaptarlo a


nuestras posibilidades sin incurrir en delito.

Algunas de estas empresas utilizan en ocasiones procedimientos comerciales que


intentan monopolizar el mercado, causando el mayor nmero de incompatibilidades
posibles para evitar que se use otro software que no sea el de su empresa y tener que
estar pagando para actualizar cada poco tiempo los programas.

El software libre

Este software ha sido desarrollado principalmente por una comunidad de usuarios,


para ponerlo al servicio de la sociedad. Hay excepciones, en que una empresa
comercial, por algn motivo, desarrolla un software abierto y lo pone a disposicin de la
comunidad de usuarios.

Para que un software sea libre, ha de cumplir los siguientes requisitos:

Libertad de uso: se puede usar de la manera que se quiera, por quien quiera, en
el nmero de ordenadores que se quiera.
Libertad de cdigo: la cual permite ver el cdigo, estudiarlo, usarlo, copiarlo,
mejorarlo, adaptarlo a nuestras necesidades y ponerlo a disposicin de la
comunidad. El cdigo fuente de un programa libre, debe estar a la disposicin de
quien lo quiera.
Libertad de distribucin: se puede copiar, regalar o vender, cmo y a quien se
quiera. Sin dar explicaciones a los autores.

Una lista de las licencias ms frecuentes de cdigo abierto est disponible en la pgina
web de la Open Source Iniciatives:
http://www.opensource.org/licenses/index.php
. Quizs el mximo exponente del software libre son las distribuciones GNU/Linux, ms
conocidas globalmente como Linux.

Plataforma de Teleformacin de IFES Pgina 195 de 328


Por qu usar software libre?
Adaptado de
http://www.sindominio.net/pipermail/hacklabs/2003-May/000212.html
, un documento de
mailto: meskalito-at-sindominio.net

Por economa
Usando software propietario, por cada ordenador, hay que tener una licencia de cada
programa que se use. Por poner un ejemplo, el sistema operativo que es lo mas bsico
para que funcione el ordenador, la versin que se comercializa actualmente para uso
domstico es el WindowsXP homey su licencia suele superar los 120 Euros, pero para
poder hacer algo ms que encender el ordenador necesitamos programas de ofimtica
como la suite de Microsoft Office XPy algunos programas de audio, publicacin y
retoque fotogrfico, por ejemplo.

El precio del software de cada terminal de trabajo puede superar ampliamente los 600
euros pudiendo invertir este dinero en la compra de nuevos equipos o perifricos que
se necesiten si usamos software libre.

Una distribucin de Linux, que se puede conseguir de forma gratuita, aunque


puede costar desde los 20 a los 80 euros, donde se suelen incluir, algn manual,
adems de soporte tcnico y el cdigo fuente del programa para su estudio o
modificacin, un paquete de programas, entre los que hay software de oficina,
editores grficos,herramientas para la administracin de redes, servidores de
pginas web,correo electrnico, edicin de publicaciones... Un paquete de software
que difcilmente podra pagar una persona normal... y pocas empresas con un parque
de ordenadores.

Por su filosofa
Porque el software libre, ha sido y es creado por miles de personas que cooperan
desde todas las partes de la geografa mundial coordinndose mediante Internet,
de forma descentralizada adems de desinteresada en su mayora, aportan su
conocimiento, su trabajo y su tiempo, para la creacin de este software, que ha sido
propuesto a la Unesco a formar parte del patrimonio de la Humanidad.

Pgina 196 de 328 Introduccin a Linux


El Software Libre es la prueba de que las cosas pueden funcionar de muchas formas
diferentes a como funcionan actualmente.

Ensea los valores de la cooperacin por encima de la competicin, el de la libertad


frente a la restriccin, compartir frente a retener, la difusin del conocimiento frente al
oscurantismo y a valorar a las personas por su forma de ser y no por su apariencia,
gnero o raza, ya que en la red desaparecen estas caractersticas.

Por favorecer el desarrollo tecnolgico


La poltica de desarrollo del software libre, tiene el mismo modelo que (hasta hace
poco) la comunidad cientfica, que ha funcionado tan bien a la Humanidad. Cada
descubrimiento, se pone inmediatamente en conocimiento del resto de la comunidad, lo
que permite una rpida evolucin.

Mientras que el software propietario, lejos de potenciarlo, lo frena poniendo


impedimentos para que otras compaas no puedan mejorarlo.

Por seguridad

El software libre basa su robustez y su seguridad en su transparencia. Miles de


miembros de la comunidad del software libre, participa activamente en la bsqueda
de fallos de seguridad, que son rpidamente reportados, siendo los mismos que
encuentran los fallos muchas veces los que reportan la solucin, o los mismos
desarrolladores, en poco tiempo.

Mientras que el software propietario, basa su seguridad en el oscurantismo, esto


es, no dar a conocer los fallos de seguridad del software, para que no puedan ser
aprovechados por supuestos atacantes.

Esto no hace ms que dar una ficticia seguridad a sus usuarios, que ven como da a
da, se ven afectados por una gran cantidad de virus, gusanos e intrusos informticos.

Plataforma de Teleformacin de IFES Pgina 197 de 328


Licencias de software libre

Introduccin a las licencias de software libre


Jorge Nonius.
v. 0.92, 16 de abril de 2002
Resumen
Este artculo introduce a los usuarios de Debian GNU, con poco o ningn conocimiento
jurdico, en el Derecho espaol sobre propiedad intelectual y su efecto en las licencias
de software libre. Continua la serie dedicada a la propiedad intelectual que se inici
con la "Introduccin a la propiedad intelectual" publicada tambin en La Espiral. Se
completa con tres apndices en el apartado 7.

El artculo se centra en el Derecho espaol, pero las normas sobre propiedad


intelectual de programas de ordenador son prcticamente idnticas en todos los
Estados miembros de la Unin Europea.

El punto de vista adoptado no es siempre el del autor o fabricante de software, sino


que ms bien se les trata de igual a igual con los usuarios, consumidores y dems
personas con derechos y libertades implicados en la creacin, explotacin y utilizacin
del software.

2001, Jorge Nonius. La versin ms actualizada se encuentra disponible en http://


www.laespiral.org/xml/. Para ponerse en contacto con el autor: jnonius@terra.es. Este
artculo puede ser copiado y distribuido en las condiciones de la licencia GNU para
documentacin libre, GFDL (http://www.gnu.org/copyleft/fdl.html).

[Nota de La Espiral: El autor, que firma con seudnimo, es usuario de Debian GNU y
Licenciado en Derecho.]

Pgina 198 de 328 Introduccin a Linux


Los derechos del autor del software
Este artculo continua la serie dedicada a la propiedad intelectual que se inici con la
"Introduccin a la propiedad intelectual" publicada en La Espiral, pero, a diferencia de
all, aqu no se trata slo de los derechos de autor, sino tambin de los derechos de los
consumidores y usuarios, de ciertas libertades pblicas, y en suma de un abigarrado
conjunto de situaciones jurdicas que aparecen en los conflictos, tericos o prcticos,
acerca de las licencias de software libre. Utilizaremos siempre el trmino "libertad" en
su acepcin tcnica estricta: Libertad es la situacin jurdica en que se encuentra uno
cuando no le alcanza una prohibicin. Las prohibiciones, que adoptan muchas formas
y muchas ms denominaciones (deberes, obligaciones, cargas, sujeciones) provienen
de muchas fuentes: directamente de la ley, por medio de un contrato, de una demanda
judicial o de una sentencia, etc. De estas prohibiciones trata este primer apartado.

En el segundo apartado trataremos las libertades y restricciones a los usuarios


implicadas en una licencia de software, y en especial en una de software libre. Pero
antes daremos un repaso rpido a la contrapartida de las libertades de los usuarios: los
derechos del autor del software, reconocidos y garantizados por la LPI.

Vamos a explicar cules y cmo son los derechos del autor del programa. Por ahora
trataremos al software como una obra intelectual ms, sin fijarnos demasiado en
aquello que lo caracteriza y distingue de, por ejemplo, una novela o una cancin.
Despus de tratar algunas cuestiones generales (1.1), definiremos quin es el titular
de los derechos de autor de un programa (1.2), sobre qu objetos recaen y sus tipos
(1.3), qu es y qu implica la divulgacin y la publicacin del software (1.4), cul es
el multiforme contenido del derecho de autor y sus lmites (1.5), su duracin (1.6), las
formas de explotacin y cesin de derechos (1.7) y finalmente las garantas legales de
todo esto (1.8).

El lector que conozca los fundamentos jurdicos de la propiedad intelectual puede


saltarse este apartado 1 y pasar directamente al 2.

Cuestiones generales sobre el software como


obra protegida
La LPI slo protege los programas originales generados por el intelecto. sta es la
definicin legal de programa protegible. Un programa no expresado (p. ej. una idea)
no es un programa, ni tampoco lo es un programa no original, aunque veremos que
se reconocen ciertos grados de originalidad en la LPI, por ejemplo para los programas

Plataforma de Teleformacin de IFES Pgina 199 de 328


derivados. No estn protegidos pues los programas no originales y en cierto modo
tampoco los que se encuentren en dominio pblico, que son aquellos para los que
ha transcurrido el plazo de duracin. Tampoco estn protegidos los programas que,
aunque originales, estn destinados a producir fallos en el funcionamiento del sistema
(virus, etc). Estas exclusiones se irn detallando en su lugar ms adelante, pues deben
ser analizadas con cuidado. [P. ej.: La divulgacin de programas inditos que estn en
dominio pblico genera derechos de propiedad intelectual a favor del divulgador].

El software no es patentable. Excepciones


La propiedad intelectual de los programas se reconoce y regula en la LPI ya que el
software es oficialmente considerado "obra generada por el intelecto" . Por contra, el
software no tiene consideracin oficial o legal de objeto patentable, pues en derecho
espaol slo son patentables las invenciones nuevas de aplicacin industrial. Resulta
que los programas de ordenador no se consideran invenciones (?), en un juicio ms
formal que de fondo, y por lo tanto no pueden patentarse.

Dicho de otro modo, un programa no puede ser objeto de propiedad industrial, que
es el conjunto de derechos de los inventores sobre sus inventos y de las empresas
sobre sus marcas y rtulos comerciales, o de los ingenieros sobre topografa de
semiconductores, etc. Es una propiedad "incorporal" o "inmaterial" , lo mismo que la
propiedad intelectual, pero se regula no en la LPI sino en la LP y LM, conforme a reglas
y mecanismos diferentes.

No obstante, un programa protegido por la LPI puede ser tambin objeto de


proteccin por la LP si forma parte de un invento patentado. En ese caso, ambas
vas de proteccin de derechos, la garantizada por LPI y la que garantiza la LP, son
independientes, compatibles y acumulables. Vase en el Apndice B la referencia de
las leyes citadas.

Es el software equivalente a una obra literaria?


No es realmente necesario etiquetar a los programas de ordenador como obras
literarias, artsticas o cientficas. Puede leerse en tratados internacionales y normas
de la Unin Europea que los programas de ordenador han de quedar protegidos
como "obras literarias" , por alguna extraa razn; tal vez porque, como no son obras
cientficas (?) ni artsticas (??), en algn cajn hay que meterlos (???). Al fin y al
cabo, el programa fuente viene expresado en lenguaje humano, aunque sea tan
poco literario como C++. Este asunto es demasiado general, y no hace falta tratarlo
aqu. Mejor veamos qu proteccin dispensa la LPI a los programas de ordenador,

Pgina 200 de 328 Introduccin a Linux


comparmosla con la dispensada a las obras literarias, y concluyamos sobre las
diferencias encontradas.

Adelantemos que hay diferencias, y muy notables. Probablemente a causa de que los
programas no son en absoluto equivalentes a las obras literarias.

Los titulares de los derechos de propiedad


intelectual sobre un programa
Menores de edad y asalariados

Los autores de programas que sean menores de edad son por supuesto considerados
titulares nicos de sus derechos, igual que los mayores de edad. Pero slo los menores
de 18 aos y mayores de 16 independientes -de acuerdo con sus padres o tutores-
pueden ceder sus derechos de explotacin del programa sin la autorizacin de quien
les tenga a su cargo.

Si un asalariado crea un programa original durante y con motivo de su relacin


laboral con un empresario, se entiende que cede a ste en exclusiva sus derechos de
explotacin sobre el programa, salvo pacto en contra. Pero el empresario no puede
disponer del software con fines distintos de los de su actividad empresarial habitual.
Ms adelante volveremos sobre este delicado asunto.

Programas colectivos y en colaboracin


La LPI nunca considera "autoras" de las obras intelectuales a las personas jurdicas
(asociaciones, sociedades annimas, fundaciones), sino slo a las personas naturales
o fsicas, con una excepcin: los programas de ordenador! Tcnicamente hablando
hay otro caso en el que tambin se dice que una persona jurdica queda equiparada al
autor de la obra: las obras colectivas.

Obra colectiva es un concepto difcil de definir con precisin. Para la LPI, programa
de ordenador colectivo es el generado por iniciativa y coordinacin de una persona
(natural o jurdica), que lo edita y divulga bajo su nombre. El programa colectivo est
constituido por aportaciones de diferentes programadores, de las que resulta una
creacin nica y autnoma, sin atribucin de partes o cuotas a cada aportador, y sin
que uno solo de ellos pueda atribuirse derechos sobre el conjunto del programa.

Plataforma de Teleformacin de IFES Pgina 201 de 328


Programa colectivo no es lo mismo que programa creado en colaboracin, que nace
del trabajo de varios coautores y permite la explotacin separada de cada aportacin.
Volveremos sobre esta distincin enseguida, apartado 1.3.

Titulares originarios y derivados


El autor es el titular originario de los derechos de propiedad intelectual sobre su
programa. Pero muchos de esos derechos, como veremos ms adelante, pueden
ser cedidos a otras personas, que no por ello pasan a ser autores obviamente, pero
s titulares de los derechos. Decimos en este caso que son titulares derivados, o
simplemente titulares. Al hablar de titular originario diremos simplemente "autor" .

Tipos de programas
Los programas pueden clasificarse segn varios criterios con arreglo a la LPI:

1. Por la autonoma del programa tenemos programas independientes y


programas dependientes.
2. Por el nmero de autores y su forma de cooperar tenemos programas
individuales, programas en colaboracin y programas colectivos.
3. Por su originalidad tenemos programas estrictamente originales por un lado
y programas derivados y compuestos por otro.

Ahora nos interesa slo dar algunas definiciones. Llamamos programa independiente
al constituido como una "creacin autnoma" , aunque se publique conjuntamente con
otros programas. Se distingue del programa compuesto, formado por varios programas
independientes preexistentes.

Decimos que un programa es realizado en colaboracin si resulta unitariamente del


trabajo de varios desarrolladores, en el que es posible separar las aportaciones de
cada cual y de explotarlas independientemente. En este caso, los programadores
son co-autores, y pueden entre ellos pactar lo contrario y explotar por su cuenta cada
cual su parte. Si no hay acuerdo, el nico lmite a la explotacin separada consiste
en no perjudicar la explotacin comn. Para divulgar y modificar un programa en
colaboracin hace falta el consentimiento de todos los coautores, que slo el juez
puede excusar. Los derechos de autor pertenecen a cada coautor en la proporcin que
entre ellos pacten; en otro caso, se aplican las reglas generales del Cdigo Civil sobre
la comunidad de bienes.

Programa derivado es el que se ha obtenido de un modo u otro de software anterior, p.


ej. traducindolo, adaptndolo, modificndolo o revisndolo. En general debe hablarse

Pgina 202 de 328 Introduccin a Linux


de programa derivado ante cualquier transformacin de un programa preexistente. Pero
cuidado: La LPI protege los derechos de los dos autores: el del programa primitivo y el
del derivado.

Un programa se dice "compuesto" si se ha obtenido de la incorporacin de uno o ms


programas preexistentes y sin la colaboracin de los autores originarios. Se considera
obra protegida siempre que haya autorizacin de los titulares de los programas
originarios y se respeten sus derechos sobre ellos. Es decir: el autor del programa
compuesto tiene derechos slo sobre la composicin, no sobre el software que la
compone. La distribucin Debian GNU/Linux Potato, p. ej., es una obra compuesta,
compuesta de software. Debian slo tiene derechos sobre la composicin en s, no
sobre los programas independientes incluidos en la distribucin.

Un programa (obra intelectual) se distingue del soporte en que est contenido (bien
mueble, como puede ser un CD). El soporte del programa es el material en que se
plasma, no es lo mismo que el programa. [Advertencia probablemente superflua:
El significado de soporte al que nos referimos nada tiene que ver con el utilizado
constantemente en informtica de "servicio de apoyo" ]. Lo importante es que son
distintos e independientes los derechos sobre el programa (derechos inmateriales, de
propiedad intelectual) y los derechos sobre el CD (derechos materiales, de propiedad
comn). Al cederse los derechos de propiedad intelectual no necesariamente se ceden
los derechos sobre el soporte. Viceversa y ms importante: ser dueo del soporte no
significa ser titular de los derechos sobre el programa que incorpora.

Divulgacin y publicacin de un programa


Divulgar un programa es expresarlo de modo que se haga accesible al pblico por
primera vez en cualquier forma. La divulgacin es facultad exclusiva y personalsima
del autor, se dice incluso que es un "derecho moral" (vase ms adelante). Lo
importante de todo esto es la fecha de divulgacin, porque a partir de ella se cuenta el
plazo de duracin de los derechos de propiedad intelectual.

La publicacin del programa es una forma de divulgarlo, de las ms importantes


pero no la nica. Publicar un programa es expresarlo de modo que lo hace accesible
al pblico mediante ejemplares o copias. Verdaderamente es la forma principal de
divulgacin del software, por eso no trataremos otras, como la comunicacin pblica,
apenas concebible en el mbito de los programas de ordenador. No obstante, vase el
apartado 1.7.

Plataforma de Teleformacin de IFES Pgina 203 de 328


Facultades del autor del programa y sus lmites
Los derechos del autor se manifiestan ante todo en dos grupos de facultades: 1
Los derechos morales, o facultades personalsimas que tiene sobre los programas
que ha creado; y 2 Los derechos patrimoniales, como la facultad exclusiva de
explotarlos en cualquier forma y obtener remuneracin por ello; o el derecho a obtener
remuneracin por el simple acceso a las fuentes; y el derecho a autorizar o prohibir su
uso, divulgacin y explotacin; etc.

El derecho moral es una figura que slo encontraremos en los derechos continentales,
no en las leyes anglosajonas, al menos con el mismo aspecto. No puede cederse en
vida, como parece deducirse del texto de la LPI. En realidad son varios los derechos
morales del autor:

1. Decidir si su programa ha de divulgarse y en qu forma;


2. Decidir si el programa aparecer con su nombre, bajo seudnimo o
annimamente;
3. Exigir el reconocimiento de su condicin de autor del programa, y el
respeto a su integridad, sin deformaciones, modificaciones o atentados que
perjudiquen el inters o reputacin del autor;
4. A modificar el programa cuando le plazca, aunque ha de respetar los
derechos adquiridos por otras personas. Volveremos sobre esto al tratar de
las modificaciones de los programas;
5. A retirar su programa por cambio de convicciones (derecho de
arrepentimiento), indemnizando a quienes perjudique la retirada,
normalmente los usuarios y el explotador del programa. Esta facultad y las
dos siguientes no es probable que un programador las ejercite nunca;
6. A acceder al ejemplar nico o raro de su programa que se halle en poder de
otra persona, indemnizando los posibles perjuicios;
7. A publicar su programa en coleccin escogida o completa.

Para ms detalles sobre el derecho moral, vanse los artculos 14 a 16 LPI.

Los derechos patrimoniales son los que tienen relevancia econmica. Los trataremos
muy sintticamente en el apartado 1.7, dedicado a la explotacin del software.

Pgina 204 de 328 Introduccin a Linux


Duracin de los derechos. Programas en
dominio pblico
Los derechos de propiedad intelectual nacen con la simple creacin del programa, no
es preciso anunciarlo ni registrarlo. Pero, como en las dems propiedades intelectuales,
los derechos no duran indefinidamente; se disfrutan por un tiempo y despus se
extinguen; se dice entonces que el programa pasa al dominio pblico.

Esto es esencial, al menos en teora. Veamos: Una vez creado el programa, nacen
los derechos de propiedad intelectual sobre l, que duran toda la vida del autor y 70
aos tras su muerte, contados desde el 1 de enero del ao siguiente al de la muerte,
y despus se extinguen. Hay reglas especiales para los programas annimos y
seudnimos, los realizados en colaboracin y los programas colectivos, los programas
publicados por partes, que no detallaremos aqu (vense los artculos 26 y 30 LPI).

Sin embargo, el derecho moral dura toda la vida del autor, pero slo dos de sus
facultades duran despus indefinidamente sin lmite de tiempo: exigir el reconocimiento
de la autora y exigir la integridad del programa. El resto de las facultades se extinguen
con la muerte del autor, salvo la divulgacin del programa indito durante su vida, pero
ste es un caso muy extrao y tampoco lo trataremos.

Cuando los derechos de explotacin se extinguen por transcurso del plazo, el programa
pasa al dominio pblico, es decir, puede ser utilizado por cualquiera siempre que
respete la autora e integridad del software. Trataremos de nuevo el dominio pblico,
con ms fundamento, en el apartado 4.

Formas de explotacin del programa. Cesin de


derechos
Explotar un programa es difundirlo en cualquier forma con obtencin de beneficio.
Comprende todas las modalidades posibles de ganar utilidad con el programa, pero
las ms importantes son las formas de explotacin tipificadas por la LPI, que son las
habituales: fijacin o grabacin, reproduccin, transformacin y distribucin.

Los beneficiarios de la explotacin son en principio los autores, a quienes se llama


tambin titulares originarios de los derechos de propiedad intelectual sobre el
programa, pero es muy normal ceder la explotacin a empresarios especializados,
quienes pagan al autor por ello. A estos les llamamos titulares derivados.

Plataforma de Teleformacin de IFES Pgina 205 de 328


No podemos ver aqu en detalle cunto hay detrs de las reglas sobre explotacin de
los programas, recomendamos al lector interesado que acuda a la "Introduccin a la
propiedad intelectual" publicada en La Espiral. Nos arreglaremos con una sinopsis:

Todo el que no sea titular ha de obtener autorizacin para explotar el


programa, salvo en casos tasados que veremos despus. Al titular
corresponde la facultad de explotar el software, con los medios presentes o
futuros, ya que los tipos legales (reproduccin, distribucin, transformacin)
slo son algunos de los posibles. Cualquier otra modalidad corresponde
siempre y en exclusiva al autor, mientras no la ceda a otra persona. Cada
modalidad de explotacin es adems independiente una de otra.
No hemos citado una modalidad de explotacin, la comunicacin pblica,
porque es dudoso que sea apta para el software, como s lo es para, por
ejemplo, una obra musical. Remitimos al lector al otro artculo de esta
serie para algunos detalles sobre esta jurdicamente compleja forma de
explotacin, de todos modos seguramente inaplicable a los programas, pues
no hay forma de acceder a ellas si no es mediante copia.
Las formas tpicas de explotacin son, repetimos, la fijacin, la reproduccin
u obtencin de copias, la modificacin y la distribucin. Nos ocuparn el
resto de este artculo, as que ahora no diremos mucho sobre ellas.

Pero lo dicho no es suficiente. A riesgo de resultar esquemticos en exceso, aunque


con la seguridad de no dejar cosas importantes sin atender, recapitulemos las
facultades del autor de un programa (se encuentran principalmente en el art. 99 LPI):

1. Derecho exclusivo de autorizar o prohibir la divulgacin del programa,


derecho al reconocimiento de la autora, y dems derechos llamados
morales. Los trataremos con un enfoque diferente en el apartado 4.2.
2. Derecho exclusivo de explotacin del programa. Aqu comienzan los
obstculos para las libertades de los usuarios que expondremos despus.
Algunos de ellos no slo igualan, sino exceden, las facultades de los autores
de los dems tipos de obras. Resulta que la explotacin de un programa de
ordenador se entiende que incluye:
1. La reproduccin incluso para uso personal, o sea: la copia privada,
que por tanto est expresamente prohibida. Es ilcito copiar
programas sin autorizacin del autor, autorizacin normalmente
expresada en una licencia. La prohibicin de copia es muy
completa: Cuando la carga, presentacin, ejecucin, transmisin o
almacenamiento de un programa requiera copiarlo (reproducirlo),
debe disponerse de autorizacin del autor;
2. La transformacin y su reproduccin. De todos modos, es muy difcil
transformar un programa si se carece del cdigo fuente, cdigo que el
autor no tiene en modo alguno obligacin legal de ceder a nadie;

Pgina 206 de 328 Introduccin a Linux


3. La distribucin pblica. Pero como incluso la reproduccin privada
est prohibida, como acabamos de ver, resulta que tambin est
prohibida o imposibilitada la distribucin privada, aunque la LPI no lo
diga expresamente.
3. Cuando se produce la cesin del derecho de uso, es decir cuando tenemos
a un usuario legtimo (despus definiremos este concepto), se entiende que
es una cesin no exclusiva -el autor del programa puede ceder el uso a ms
personas, o crear ms usuarios legtimos, dar ms licencias en suma-; se
entiende que la cesin es intransferible -el usuario no puede dar licencias a
su vez-; y la finalidad de la cesin es satisfacer las necesidades nicamente
del usuario y de nadie ms.

Este es el panorama con que se enfrentan las licencias de software libre, que vienen
a subvertir los trminos: No limitar al usuario, que explote el programa a su entero
placer, sin restricciones. Permite esto la LPI espaola? No se encontrar una licencia
de software libre, y especialmente las copyleft que son las ms interesantes desde
el punto de vista terico-jurdico, con el muro infranqueable de algn derecho del
autor que sea inviolable, ni siquiera contando con la propia voluntad del autor? A esto
tratan de responder los apartados siguientes. Pero antes, y para rematar el cuadro,
trataremos brevemente el sistema de garantas de los derechos de autor.

Garantas legales de los derechos del autor del


programa
Registro de programas

Ya sabemos que la autora se reconoce por la simple creacin del programa, no


es preciso inscribirlo en ningn Registro. Pero el hecho es que tener un programa
registrado refuerza muchsimo la prueba de la autora (art. 101 LPI). Los programas
no se patentan, no pueden patentarse, pero s pueden registrarse. Por cierto que el
software libre puede registrarse, precisamente como software libre, y esto no quita
nada a la licencia, que sigue siendo de software libre en sus trminos literales. El
Registro se limita a dar publicidad de su existencia y a dar fe de su validez. De hecho
es la misma licencia lo que se inscribe.

Pero todo esto es teora. Los programas se inscriben en la llamada Seccin VII del
Registro General de la Propiedad Intelectual, cuya organizacin y funciones bsicas se

Plataforma de Teleformacin de IFES Pgina 207 de 328


exponen en la "Introduccin a la propiedad intelectual" . En realidad slo se inscribe en
l una descripcin del programa o la determinacin de los elementos que permiten su
completa identificacin, que se entiende contenida en las diez primeras y diez ltimas
hojas del cdigo fuente (?), o en un resumen de un mximo de 20 folios del manual
de uso (??), "siempre y cuando [dice el Reglamento del Registro] ste reproduzca los
elementos esenciales del programa" (???) (arts. 13 y 14.7 del Reglamento de 1993). Si
el programa es indito (o sea: si no se ha publicado) entonces debe adjuntarse todo el
cdigo fuente (????). Estas son las reglas. No se dispone de datos acerca del uso que
los programadores hacen del Registro, pero al parecer s lo usan.

Cmo da publicidad el Registro a los programas inscritos? Esto tampoco es lo que


parece: El Registro es ciertamente pblico, pero de un programa inscrito slo podemos
consultar los datos personales del autor y sus derechos sobre el programa (esto es:
la licencia si existe). Y slo nos proporcionarn el ttulo y la fecha de publicacin. Por
supuesto, jams nos permitirn consultar el cdigo fuente ni los manuales. As lo dice el
art. 32 del Reglamento.

Infracciones de los derechos del autor del programa


Hay que estar de acuerdo con la FSF en que las leyes de copyright presentan
como infracciones lo que, visto desde el punto de vista del usuario del software, son
libertades truncadas que ste poda esperar disfrutar en el uso normal de un programa,
libertades que de hecho se reconocen para otro tipo de obras. Una vez uno compra
un libro (soporte fsico de una obra intelectual, literaria tal vez) no necesita licencia
especial para leerlo. Por qu ha de ser as con el uso del software? Volveremos
despus sobre esto. Pero nuestro esquema no estara completo si no se citaran aqu
lo que la LPI llama claramente infracciones del derecho de autor. [Un tratamiento
ms extenso del sistema de proteccin de los derechos de autor se encuentra en la
"Introduccin a la propiedad intelectual" ]. Ahora nos centraremos en las infracciones de
los derechos de autor de los programas de ordenador. Se encuentran especificadas en
el art. 102 LPI y son stas (asstese el lector):

Poner en circulacin una o ms copias de un programa, conociendo o


pudiendo presumir su naturaleza ilegtima (no tener licencia para copiarlo).
Est prohibido copiar un programa de ordenador sin licencia. Esta es la regla
y slo una licencia puede excusar de su cumplimiento. En los apartados 4.3
y 6.2 trataremos este asunto de nuevo.
Almacenar o simplemente tener con fines comerciales una o ms copias
ilegtimas.
Poner en circulacin o tener con fines comerciales instrumentos cuyo
nico uso es facilitar la supresin o neutralizar sin autorizacin cualquier

Pgina 208 de 328 Introduccin a Linux


dispositivo tcnico utilizado para proteger un programa de ordenador. Hay
que entender que adems de los virus, este tipo de software tampoco es
obra protegida? No, pues la ley slo se refiere a ponerlo en circulacin. ste
es de todos modos un caso dudoso.

En fin, si no se arregla de otro modo y por las buenas, el autor o titular que considere
violados sus derechos ha de acudir al Juez de 1 Instancia de la localidad en donde
se haya producido la infraccin, al que pedir que se condene al infractor a devolverle
el beneficio ilcito, a indemnizarle por los perjuicios, a detener la actividad ilegal e
impedirle que pueda reanudarla. Entretanto estudia el litigio y dicta sentencia, el juez
puede adoptar medidas cautelares que llegan a ser muy gravosas para el presunto
infractor, como el secuestro de los equipos y materiales de reproduccin y copia, etc.
No podemos entrar en detalles, adems muy tcnicos y farragosos, fuera del objetivo
de esta "Introduccin" . Para las infracciones de las licencias de software libre, vase el
apartado 4.7.

Las libertades de los usuarios


Despus del examen general del apartado anterior, toca ahora cambiar el enfoque para
tratar un tipo muy especial de frmula de cesin de derechos de explotacin todava
poco conocida en los medios profesionales jurdicos: la licencia de software libre. Para
esto es necesario partir de las libertades del usuario del programa, no de los derechos
de autor. stos se encuentran protegidos por la LPI, como hemos visto en el apartado
1. Las libertades de los usuarios por contra tienen sus garantas (en la Constitucin
y en otras leyes que se citarn) muy difuminadas y dispersas, no en un nico cuerpo
legal sistemtico.

Para empezar despejaremos algunos problemas de nomenclatura. Reservaremos el


trmino software libre ( "free software" ), que abreviaremos sl, para los programas que
se ajustan a la especificacin de la Free Software Foundation, que es la ms rigurosa,
pero puede utilizarse tambin como denominacin genrica del conjunto de licencias
que liberan las facultades tpicas del copyright bsicas para la libre utilizacin del
software, aunque no se ajusten estrictamente a la definicin de la FSF y siempre que
del contexto se deduzca a qu nos referimos (en los apartados 3.1 y 4.1 se encuentran
las definiciones). Sin embargo, no nos atendremos necesariamente al criterio de la
compatibilidad de las licencias con la GPL, no porque este punto de vista no tenga
importancia, en realidad es tal vez el ms importante, sino porque la propia FSF
dispone de documentacin apropiada -vanse las referencias al final en el apndice
C- y porque aqu deseamos examinar solamente la compatibilidad de las licencias de
software libre con el Derecho espaol.

Plataforma de Teleformacin de IFES Pgina 209 de 328


Huelga decir que el objetivo es el de saber a qu atenernos en Espaa cuando
surjan conflictos de intereses relacionados con el software libre. Y es que la FSF
opera obviamente con categoras jurdicas anglosajonas, sutilmente diferentes de la
europeas continentales en lo sustancial, y decididamente distintas en los formalismos.
Tenemos que asegurarnos de que hablamos consistentemente, pues las palabras son
importantes. Para empezar, los hispanohablantes no tenemos ningn problema en
distinguir algo que es gratis de algo que es libre, pequeez que a los angloparlantes les
ha costado mucha tinta.

El primer objetivo es entonces disponer de un vocabulario apropiado, no


obligatoriamente castellanizado, por exigencias prcticas obvias y que sirva para
entendernos en nuestras discusiones.

Pero hay un segundo objetivo: Comprender lo mejor posible las licencias de software,
que es el instrumento utilizado por el movimiento del sl en general, y por el copyleft
en particular, para articular jurdicamente un fenmeno que sobrepasa el mbito del
software, alcanza a la documentacin tcnica y cientfica y comienza a sustentar
la distribucin de otro tipo de bienes y productos (vase el apartado 5). No es
que software libre y copyleft hayan surgido de las licencias, sino que stas han
"instrumentado" tales movimientos, se han servido de ellas para recuperar las
libertades acadmicas, cientficas y de los usuarios. De hecho, parece que el software
libre es incluso un modelo de negocio, pero tambin es un fenmeno social, un mtodo
de investigacin y de docencia.

Orbitando las licencias de software se encuentran muchos asuntos que no podemos


tratar, pero tan importantes que se citan a continuacin algunos:

Conflictos graves, comerciales o no, entre distribuidores de software, p. ej. el


pleito ATT-Berkeley de 1992, o la cuestin GNU v. KDE de 1997.
Aparicin de sistemas operativos libres, con representantes como la
rama BSD o GNU/Linux, en competencia insospechada con los grandes
fabricantes de software cerrado (expresin que usaremos en lugar de
software propietario, ms adelante se explica por qu).
Alianzas expresas o tcitas entre fabricantes de software libre y hardware,
en competencia tambin inesperada con los chips dominantes. Es el caso
del acuerdo Apple-Universidad Carnegie Mellon para el MacOS X, o el
impulso dado por el software libre a los chips Alpha, SPARC...
Nuevos modelos de negocio, como el de Cygnus con el compilador GCC,
acuerdos de Red Hat con Penguin Computer y con la misma Cygnus
Solutions (noviembre de 1999).

Pgina 210 de 328 Introduccin a Linux


La aparicin de un instrumento incomparable de colaboracin profesional y
cientfica, y de frmulas como la FDL para la transmisin de documentacin
tcnica. Vase sobre esto el apartado 5.
Iniciativas legislativas, como la reciente sobre uso de software libre en la
Administracin pblica del Per, 9 de abril 2002.

Todos estos son asuntos del mayor inters, en el apndice C se encontrarn algunas
referencias. Tambin se trata de cuestiones complejas, pero alejadas en cierto modo
de nuestro tema, mucho ms restringido: las licencias de software segn el Derecho
espaol, y especialmente las de software libre.

Comenzaremos con unas cuantas frases fuertes y un esquema lo ms breve posible,


para comodidad del lector, de lo que ya se ha ido apuntando con otro enfoque en el
apartado 1, es decir: Qu exige la LPI espaola a las licencias de software libre para
considerarlas viables o atendibles por los jueces (stos como ltimo recurso, claro
est).

Premisas del software libre


El sistema jurdico espaol, como todos los europeos y anglosajones de corte
"constitucional" , se basa en la libertad, en el sentido de que uno puede hacer lo que
guste mientras no est prohibido. Esta es una afirmacin muy general, pero nos sirve
para enfocar la cuestin tal y como interesa, o sea: desde el punto de vista de las
libertades del usuario, y no el de los derechos de autor. Este ltimo, as lo esperamos,
ha quedado expuesto ya en el apartado 1. Para ms detalles, vase la "Introduccin a
la propiedad intelectual" publicada en La Espiral.

En nuestros modernos sistemas legales se entiende que la libertad tiene lmites, no se


garantiza la libertad absoluta. Un gnero esencial de esos lmites a la libertad son los
derechos y libertades de los dems. As que nuestra primera afirmacin queda "uno
puede hacer lo que guste mientras no dae los derechos y libertades de los dems" .
Por supuesto, los derechos y libertades de los dems tampoco son absolutos.

Las libertades del usuario de software


Algunos derechos y libertades se consideran fundamentales, se les garantiza una
proteccin reforzada sobre los dems derechos y libertades ordinarias. De entre ellos,
las licencias de software se encuentran con los siguientes, que vamos a clasificar en
tres grupos:

Plataforma de Teleformacin de IFES Pgina 211 de 328


1) En el primer grupo tenemos los fundamentos de nuestra sistema poltico. No se trata
de un autntico reconocimiento de libertades y derechos fundamentales, sino de su
basamento:

La libertad es el fundamento de todo lo dems. Se ha dicho muchas veces,


y no se trata slo de una dificultad idiomtica del ingls, que el concepto
software libre trata de la libertad, no del precio. El concepto de libertad es
calificado por nuestra Constitucin, nada menos que en el primer prrafo
de su primer artculo, como uno de los valores superiores del ordenamiento
jurdico espaol, junto con la justicia, la igualdad y el pluralismo poltico.
Es cometido de los poderes pblicos promover las condiciones para que
la libertad y la igualdad de los individuos y grupos sean reales y efectivas;
remover los obstculos que impiden o dificultan su plenitud; y facilitar la
participacin de todos en la vida cultural (art. 9.2 CE).
El libre desarrollo de la personalidad es uno de los fundamentos de nuestro
orden poltico (art. 10.1 CE).

2) El segundo grupo es el ms importante a efectos prcticos. Se trata de las


libertades y derechos fundamentales que directa y necesariamente los jueces han de
proteger. Los ms importantes son los tres ltimos de los que se citan a continuacin,
directamente esgrimibles ante argumentos del tipo "el software libre atenta contra
la libre expresin, embota la creatividad y vulnera el copyright" , etc. No es as, sino
justamente al contrario. En trminos jurdicos, el usuario de cualquier software debera
poder argir conforme a los siguientes tems, que incluso tienen proteccin de amparo
garantizada hasta el recurso ante el Tribunal Constitucional, y aplicables segn las
circunstancias. Son los siguientes:

Derecho a la igualdad y no discriminacin por condicin social (art. 14 CE).


El uso de la informtica ser limitado por la ley para garantizar el pleno
ejercicio de los derechos de los ciudadanos (art. 18.4 CE). Este artculo
se incluy en la Constitucin con una finalidad relativamente clara: evitar
que mediante la informtica se alcanzara un control excesivo sobre las
personas, y con la misma finalidad se promulg la Ley de proteccin de
datos personales de 1998. Pero cabe una segunda interpretacin interesada,
y un poco traida por los pelos, pero no irrazonable: Las limitaciones al
uso del software, especialmente algunas clusulas abusivas (vase el
apartado 6), dificultan de tal modo el pleno ejercicio de los derechos de los
consumidores y ciudadanos en general que deben quedar restringidas por la
ley [Me complace hacer constar aqu que estando ya estas lneas escritas,
encuentro este mismo argumento como motor del proyecto (proposicin)
de ley sobre uso del software libre en la Administracin pblica remitido
al Congreso peruano en abril de 2002 por los congresistas VILLANUEVA
NEZ y RODRICH ACKERMAN, as como en la admirable carta que

Pgina 212 de 328 Introduccin a Linux


el primero dirigi al gerente de Microsoft del Per. Los textos se pueden
encontrar en http://www.gnu.org.pe/rescon.html]
Derecho a la libre expresin de pensamientos e ideas (art. 20.1.a CE).
Derecho a la produccin y creacin literaria, artstica, cientfica y tcnica (art.
20.1.b CE).
Derecho a la educacin y a la libertad de enseanza. Aunque la libertad
acadmica, y una de sus componentes, la libertad de estudio, no figuran
expresamente en el art. 27 CE, puede entenderse que se encuentran
implcitamente reconocidas por la Constitucin, pues son necesarias y
congruentes con el modelo docente general que pretende garantizar.

3) Finalmente tenemos los principios rectores de la poltica social y econmica. No


son derechos y libertades fundamentales propiamente dichos, sino directrices que,
aplicadas a stos, han de inspirar su efectividad y garanta. Se trata concretamente del
mandato que la Constitucin contiene en el art. 44, dirigido a los poderes pblicos, de
promover y tutelar el acceso a la cultura, a la que todos tenemos derecho, as como a
la ciencia y la investigacin cientfica y tcnica en beneficio del inters general.

El derecho de autor no es un derecho fundamental


Por contra, y desde el punto de vista del autor del programa, no puede decirse que
haya derechos fundamentales implicados. No es pensable una lesin a los derechos
de propiedad intelectual que afecte tambin a un derecho fundamental de los que
acabamos de citar, ni a ningn otro, con una sola excepcin, por lo dems bastante
rara en la prctica: el atentado contra el honor, la reputacin, la imagen del autor,
derivado de una infraccin de los derechos de propiedad intelectual (vase el art. 18.1
CE). Este es un caso poco usual y no vamos a tratarlo, salvo algunos apuntes en 4.5.2.

En realidad, s tiene que ver la propiedad intelectual con un derecho fundamental, pero
de los que la Constitucin considera de segunda categora, el derecho de propiedad
(art. 33 CE). No puede negarse que tanto el fenmeno del software libre, como ms
acentuadamente el copyleft, parecen superficialmente ir directos contra el derecho
de propiedad (intelectual). Nada ms falso. El software libre se basa en el derecho de
autor para, sobre l, modular sus facultades intrnsecas a las necesidades prcticas de
las libertades que hemos citado antes, sin machacarlo en modo alguno. Simplemente el
software libre tiene copyright.

Asmismo, una licencia copyleft, que impide la redistribucin de software con


restricciones aadidas a las de la distribucin originaria, no atenta contra el derecho
de autor del programa originario, pero esto no es obvio y en lo que sigue tratar de
demostrarse. Tampoco atenta contra los derechos del autor del programa derivado, que
modific el software porque la licencia copyleft se lo permita, si no no hubiera podido

Plataforma de Teleformacin de IFES Pgina 213 de 328


hacerlo; y se ve obligado a redistribuirlo con licencia copyleft por el mismo motivo, es
decir: por haber aceptado previamente una licencia copyleft, una decisin voluntaria y
libre.

Naturalmente que cuando uno acepta una licencia (copyleft o no) ve limitadas algunas
de sus libertades y derechos, se dice que asume obligaciones, deberes y sujeciones,
lo mismo que cuando se casa o cuando firma un prstamo hipotecario. Simplemente
acepta de forma libre los trminos que se le ofrecen. En este sentido puede decirse que
la GNU-GPL es un tratado de desarme (WAYNER), porque da total libertad a todos,
salvo a quien quiere apropiarse -para s y con exclusin de los dems- de la libertad
que recibi, la que le permiti y permite explotar el programa.

El derecho de propiedad, decimos en Espaa, queda delimitado por su funcin social


de acuerdo con la ley (art. 33 CE). No puede haber otra finalidad del Derecho de
propiedad intelectual que garantizar al autor la percepcin de los beneficios de su
explotacin, lo que es perfectamente acorde con los postulados del software libre.
Pero tampoco hay funcin social de la propiedad del software que no sea su libre uso y
explotacin por quien sepa hacerlo.

No debe olvidarse que el autor tiene derecho al honor y a la propia imagen, ya se ha


dicho; pero tambin l mismo est manifestando, al escribir cdigo, su libertad de
expresin de pensamientos e ideas y su derecho a la produccin cientfica y tcnica.

En resumen, las licencias de software son expresin de un derecho individual ordinario:


el derecho de autor. Aunque la autora de una obra tiene mucho que ver con algunos
derechos fundamentales, es muy dudoso que, fuera de los aspectos relacionados con
la reputacin del autor, los dems sean considerados por un juez como expresin de
sus derechos fundamentales. Por contra, los usuarios s pueden esgrimir sus derechos
y libertades fundamentales frente a ciertos atentados contra el software libre (vase el
apartado 4.7).

Las normas imperativas de la LPI


Los lmites de las libertades de la gente sobre los programas de ordenador, y los
derechos sobre ellos de sus autores o titulares, se encuentran principalmente en
la LPI, aunque no solamente. Debe tenerse en cuenta tambin toda la legislacin
existente sobre proteccin de los consumidores y usuarios, competencia desleal,
condiciones generales de la contratacin y tantos otros asuntos. No se har aqu as,
nos limitaremos al campo de los derechos de autor, o de propiedad intelectual. Ms
adelante aadiremos de todos modos algunas notas sobre estas cuestiones.

Pgina 214 de 328 Introduccin a Linux


La LPI est pensada sobre todo para proteger a los autores, es decir, sus derechos
ordinarios sobre la obra; no para proteger las libertades de los dems (usuarios, otros
programadores), aunque no falten artculos que garantizan algunas, muy escasas e
indefensas, como vamos a ver.

Efectivamente, ya se habr advertido que hay reglas claramente limitativas a los


usuarios o destinatarios de los programas o a quienes los explotan; y otras por contra
limitan a los autores. Esto es lo que puede esperarse de un sistema jurdico que no
admite libertades o derechos absolutos. Pero lo importante ahora est un paso ms
all: Hay reglas de la LPI que son solamente indicativas, pueden no seguirse sin
cometer ninguna ilegalidad (se llaman reglas "dispositivas" ); y tambin hay reglas que
necesariamente han de seguirse, a riesgo de que despus el sistema no te proteja si
las infringes, se llaman reglas "imperativas" .

Uno no puede saltarse las reglas imperativas de la LPI impunemente. Cmo se


sancionan sus infracciones? Depende del grado de la infraccin, pero para resumir
diremos que va desde tener la falta por inexistente -como una clusula invlida de
una licencia, simplemente no se aplica- hasta la prisin -desde luego, slo en casos
muy graves y poco frecuentes. Ahora lo que interesa es recalcar que si una licencia
de software contiene clusulas contrarias a las normas imperativas de la LPI, tales
clasulas no valen, incluso si el perjudicado hubiera dado su acuerdo para aceptar la
licencia (p. ej., porque desconoca que tales clasulas eran ilegales).

Beneficios irrenunciables de los autores de software


Aunque una licencia de software libre no implica renuncia alguna, al menos en sentido
tcnico, conviene aclarar algunas cuestiones que al parecer sus crticos mantienen en
reserva. Para empezar, en Espaa es en general posible la exclusin voluntaria de la
ley aplicable, lo mismo que la renuncia de derechos reconocidos en la ley, a condicin
de que no se contrare el inters o el orden pblico ni se perjudique a terceros (art. 6.2
CC). Lo que no se permite es obligar a nadie a renunciar a sus derechos irrenunciables,
y justamente para prevenir esta posibilidad se establecen las reglas que se citan a
continuacin, pensadas para proteger al autor de contratos leoninos con empresarios
sin escrpulos, no para proteger a distribuidores de software dominantes frente al
desorganizado pblico de usuarios, en su mayora desconocedores de las posibilidades
inauditas de sus mquinas.

Por lo tanto, interesa saber cules son esas normas imperativas. Relacionarlas
todas no es fcil ni por suerte tampoco muy til. Basta conocer las ms importantes.
Hay de todo: beneficios renunciables slo por acuerdo de las partes, ventajas

Plataforma de Teleformacin de IFES Pgina 215 de 328


irrenunciables... Nos quedaremos nicamente con las reglas imperativas relevantes
sobre los programas de ordenador:

1) Los derechos morales son irrenunciables y no transmisibles (artculo 14 LPI).


Veremos ms adelante que las licencias de software libre no afectan a esta limitacin,
vase el apartado 4.2.

2) La cesin de derechos de autor no puede alcanzar nunca a las modalidades de


utilizacin o medios de explotacin o difusin inexistentes o desconocidos al tiempo de
la cesin (artculo 43.5 LPI). En general, para la cesin de derechos y el efecto de esta
regla sobre el software libre vase el apartado 4.2.

3) Tambin son irrenunciables los beneficios que la LPI otorga a los autores en los
actos de transmisin de sus derechos, o contratos de cesin de derechos de autor.
As lo dice el artculo 55 de la Ley. Esto tiene mucha ms importancia, y de hecho
algunos de los siguientes tems nos dar algn trabajo despus. Pero en general
las licencias de software libre no se ven afectadas por estas reglas sobre "derechos
irrenunciables" , aunque parezca paradjico. Pinsese que al fin y al cabo la GPL (p.
ej.) no supone renuncia alguna para el autor, sino la cesin voluntaria de sus derechos
transmisibles. Todo esto se tratar despus, ahora nos limitaremos a enumerar, slo
aproximativamente, los beneficios irrenunciables de los autores al ceder sus derechos:

Es nula la cesin de derechos de explotacin respecto del conjunto de obras


que pueda el autor crear en el futuro (art. 43.3).
Es obligatorio documentar las cesiones (art. 45).
Durante 10 aos desde la cesin de la explotacin, el autor puede exigir la
revisin de la cantidad con que se le ha remunerado si considera (y logra
probar) que es inequitativa o desproporcionada al beneficio obtenido por el
cesionario o explotador del programa (art. 47).
Supongamos que Juan cede sus derechos a Pedro mediante la licencia L-1,
y Pedro los cede a su vez a otro mediante L-2. Si L-2 no respeta los trminos
de L-1, esta primera licencia puede quedar sin efecto y dejar de amparar a
Pedro, a requerimiento de Juan (art. 68.1.d LPI).
Las cesiones no exclusivas son intransmisibles (art 50.1).
En general, las obligaciones de los editores suponen en muchos casos -en el
polo opuesto- derechos irrenunciables del autor del programa.

Garantas a favor de los usuarios


Por otro lado estn las normas imperativas de la LPI que establecen garantas a favor
de los usuarios, insoslayables para el autor. A diferencia de antes, algunas garantas no

Pgina 216 de 328 Introduccin a Linux


desaparecen ni siquiera mediante pacto en contra, pero otras s (se encuentran en el
art. 100 LPI). Las primeras son stas:

El usuario legtimo -vase ms adelante su definicin- siempre ha de poder


hacer una copia de seguridad, si es necesaria (?) para la utilizacin del
programa.
El usuario legtimo siempre puede observar, estudiar y verificar el
funcionamiento del programa para determinar las ideas y principios implcitos
[algoritmo] en cualquier elemento, mientras lo haga durante cualquiera
de las operaciones de carga, visualizacin, ejecucin, transmisin o
almacenamiento del programa que tiene derecho a hacer.

Las siguientes son facultades del usuario legtimo, pero son renunciables mediante
pacto contrario entre el usuario y el autor:

Puede reproducir o transformar un programa, includa la correccin de


errores, si es necesario para su utilizacin legtima y conforme con la
finalidad. Pero cabe pacto en contra, que es lo normal, pues mal pueden
corregirse los errores sin tener a mano el cdigo fuente.
El autor no puede oponerse a que el titular de derechos de explotacin
realice o autorice versiones sucesivas y programas derivados. El lector
ha ledo bien: la LPI garantiza al titular de derechos de explotacin
(aparentemente no al mero usuario) de un programa del que no sea autor
la posibilidad de modificarlo o de que otros lo hagan con su autorizacin.
Este apartado supone un aparente obstculo a algunos requerimientos
del software libre, lo despejaremos despus. Aunque no parece que un
usuario realice con el mero uso una explotacin del programa, la LPI no
parece excluirlo, tal vez a causa de una redaccin defectuosa del precepto
o por falta de sistemtica. Nuestra conclusin provisional podra ser: La
LPI garantiza a cualquier usuario o explotador legtimos hacer este tipo de
transformaciones en el cdigo. Pero desde luego, necesitar para ello el
cdigo fuente. Y la interpretacin estndar no es sa, sino la siguiente: Esta
regla se refiere slo a los programas realizados por encargo, o slo a los
titulares no autores de derechos de explotacin distintos del mero uso.
Tampoco puede el autor de un programa oponerse a su reproduccin y
transformacin si se dan todas las condiciones siguientes:
1. Que sea indispensable para obtener la informacin necesaria para
la interoperabilidad con otros programas de un programa creado de
forma independiente;
2. Que la reproduccin o transformacin la haga el usuario legtimo o
persona facultada para utilizar una copia del programa, o persona
autorizada en su nombre;

Plataforma de Teleformacin de IFES Pgina 217 de 328


3. Que la informacin necesaria para conseguir la interoperabilidad no
haya sido puesta a disposicin, fcil y rpidamente, de las personas
citadas antes;
4. Que la reproduccin o transformacin se limiten a las partes del
programa original necesarias para la interoperabilidad;
5. Que el resultado se utilice slo para la interoperabilidad del programa
creado de forma independiente; slo se comunique a terceros si es
necesario para la interoperabilidad; y no se utilice para el desarrollo,
produccin y comercializacin de un programa sustancialmente
distinto en su expresin o para cualquier otro acto que infrinja los
derechos de autor.

Estas reglas sobre la interoperabilidad (excepcin o lmite a la prohibicin de reproducir


y transformar un programa sin autorizacin del autor) no pueden interpretarse de
modo que se perjudique injustificadamente los legtimos intereses del titular de los
derechos de autor, o se contrare la explotacin normal del programa. Est claro
adems que esta garanta para el usuario, muy limitada y borrosa, no es efectiva si no
se proporciona el cdigo fuente, al menos de las partes del programa necesarias para
la interoperabilidad.

Una interpretacin restrictiva acerca de los derechos sobre los interfaces es


la siguiente: La especificacin del interfaz est protegida, pero no lo estn los
protocolos en que se base y que sean necesarios para escribir cdigo que cumpla las
especificaciones. Tales protocolos no pueden ser obra protegida.

Hasta aqu llega la proteccin que garantiza la LPI a los usuarios de programas de
ordenador. No olvidemos que esta ley, como todas las de su clase en los dems
pases, y lo mismo en los tratados internacionales, est pensada para proteger los
derechos del autor. De un autor preconcebido, idealizado en el literato, en el pintor,
indefensos frente a los editores, los galeristas. Un autor de aspecto distinto al del titular
de derechos de explotacin de un programa de ordenador, p. ej. un gran fabricante de
software cerrado. Sea como sea, la LPI reconoce y protege sobre todo los derechos del
autor de un programa, no los del usuario del programa.

Ahora estamos listos para acometer nuestra tercera tarea: Seguir aclarando la
terminologa, dar algunas definiciones ms, desentraar el contenido estndar de
una licencia de software y, digamos en general, perder un poco el respeto a las ms
abtrusas discusiones jurdicas e incluso poder participar en ellas. Para esto, disponer
de un lenguaje preciso es esencial.

Pgina 218 de 328 Introduccin a Linux


Cuestiones generales y terminolgicas sobre las
licencias de software
Inevitablemente y antes de nada, hemos de ponernos de acuerdo sobre las
definiciones, sobre el significado de los conceptos que vamos a emplear, que
confrontaremos con los de la ley espaola para obtener conclusiones congruentes.
Aadiremos ms definiciones, que no necesitaremos hasta entonces, en el apartado
4.1.

Qu es una licencia de software


Es un tipo de contrato de software, de software ya creado. Recae sobre los derechos
de propiedad intelectual. En este artculo no se tratan los contratos de software
por crear, como el contrato de desarrollo de programas por encargo, servicios de
adaptacin de software; ni contratos como "escrow" , etc. Pero ojo: s trata de los
derechos de propiedad intelectual originados por motivo de esos contratos, o de
cualquier otro por el que se genere software original.

Externamente una licencia puede adoptar muchas formas, desde un documento en


papel hasta un archivo electrnico de texto, parte de un ejecutable, etc. Puede ser un
acto jurdico independiente o puede integrarse documentalmente en el seno de otro
contrato, aunque la LPI exige documentos independientes. La licencia puede recaer
sobre software tambin muy variado, aunque la LPI hable slo de programas. En
esencia es una oferta de acuerdo realizada por el autor o titular del programa, que si es
aceptada por un usuario o explotador del software, pasa a convertirse en contrato entre
las partes. Aqu hay varios conceptos involucrados, necesitamos desmenuzarlos.

Qu es una licencia
En realidad lo que llamamos licencia pasa por varios estadios: Primero es una
declaracin unilateral del autor del programa en la que expresa las condiciones en que
se puede acceder a l y explotarlo. Como tal declaracin prcticamente no tiene ningn
valor legal, slo lo adquiere (se dice que pasa a ser ley entre las partes) cuando otra
persona acepta sus trminos. Como es lgico, cuando la licencia se rechaza, o no se
acepta, simplemente no llega a tener efecto.

Es preciso recalcarlo: Aunque la licencia es unilateral, pues la origina el autor


voluntariamente y en los trminos que le interesen, est pensada para ser aceptada
o rechazada por otros, normalmente quienes van a usar el programa o van a

Plataforma de Teleformacin de IFES Pgina 219 de 328


explotarlo de algn modo. Si la contraparte rechaza la licencia no hay ms que hablar:
probablemente el autor del programa no ceder su software, p. ej. no permitiendo
su instalacin. Pero si la licencia es aceptada, entonces deja de ser una declaracin
unilateral y se convierte en un negocio bilateral, entre licenciante (el autor o el titular de
los derechos de autor) y licenciatario (quien va a usar o explotar el software).

A este negocio puede llamrsele "licencia" o "licencia contractual" o tambin "acuerdo


de licencia" . Su denominacin tcnica precisa es, para la mayora de los casos, la de
"contrato de cesin de derechos de uso y/o explotacin del programa de ordenador" .

Es normal que el documento de licencia contenga otras cuestiones, como garanta,


servicios de soporte y postventa, que no tienen nada que ver con la propiedad
intelectual ni con el software libre, y no los tratamos en este artculo. Tal vez haya
ocasin en versiones sucesivas de tratar alguno de estos asuntos.

Qu es "software"
La LPI no habla nunca de software desde luego, sino de "programas de ordenador" ,
que define (art. 96) como secuencia de instrucciones o indicaciones destinadas a ser
utilizadas, directa o indirectamente, en un sistema informtico para realizar una funcin
o una tarea o para obtener un resultado determinado, cualquiera que sea su forma de
expresin o fijacin.

No es una bella definicin, ni tampoco un modelo de precisin. Dice la LPI que gozan
de la misma proteccin que los programas tanto la documentacin preparatoria como
la documentacin tcnica y los manuales de uso. Ya sabemos adems que se protegen
las versiones sucesivas y los programas derivados, pero no los creados con el fin de
ocasionar efectos nocivos a un sistema informtico. Tampoco estn protegidas las
ideas y principios en que se base cualquier elemento de un programa, incluidos los que
sirven de fundamento a los interfaces. Esta exclusin parece referirse a los algoritmos
y otros elementos, que no necesitamos determinar completamente para saber a qu
nos referimos con el trmino legal genrico "programa de ordenador" . En la prctica,
el problema de la definicin se plantea ante casos como los sitemas expertos, los
interfaces, etc.

Los programas no pueden patentarse, pero s formar parte de un objeto patentado.


Entonces, la proteccin de la Ley de Patentes tambin se activa a favor del programa,
aunque sea indirectamente. [Nota sobre patentes: Recurdese lo dicho en el apartado
1, en Derecho espaol son patentables las invenciones nuevas de aplicacin industrial,
pero los programas de ordenador no se consideran invenciones, y por lo tanto son no
patentables]. Asmismo un programa puede incorporar una marca comercial, sea su

Pgina 220 de 328 Introduccin a Linux


mismo ttulo u otra marca. La marca comercial del programa no es objeto de proteccin
por la LPI pero s por la Ley de Marcas, lo mismo que antes.

Por supuesto podemos considerar incluidos en la definicin legal de programa todo


aquello que tcnicamente lo es: ejecutables de cualquier tipo, mdulos, controladores,
aplicaciones de usuario y sistemas operativos, suites, paquetes y distribuciones, con
toda la documentacin. La GPL concretamente se aplica a programas y a "cualquier
otro tipo de trabajo" . No olvidemos que la LPI exige que la secuencia de instrucciones
sea original, obra del intelecto, y se destine a un sistema informtico. La Directiva
1991/250, traspuesta a la ley espaola en 1993, incluye los programas "incorporados al
hardware" . En Espaa, por otra parte, la topografa de semiconductores est protegida
en una ley propia de 1988; vase el art. 104 LPI.

Son programas protegidos tanto los originales como los derivados, las versiones
sucesivas y las originadas en bifurcaciones. Tenemos obras independientes, como un
kernel; y obras compuestas, como paquetes y distribuciones. Tenemos obras originales
como el primer ncleo Linux, y obras derivadas como un kernel 2.2.x.

Sin embargo, puede que no encontremos software en dominio pblico por expiracin
del plazo de duracin de los derechos, pues no han transcurrido aos suficientes
desde la aparicin de los primeros programas a mediados del siglo XX. Es cierto que,
adems, este software slo tiene utilidad histrica.

Puede un autor poner su software en dominio pblico voluntariamente? No en


Derecho espaol, para el cual una obra est en dominio pblico slo cuando se
extinguen todos los derechos de explotacin por transcurso del plazo de duracin. No
es exactamente lo mismo que carecer de copyright, como lo definen la FSF y la OSI
en su digamos "plataforma jurdica anglosajona" . Volveremos sobre todo esto ms
adelante en 4.1.

Quin es el autor del software


Aqu no vamos a extendernos, porque esto ha debido quedar claro desde el apartado
1. Recordemos los conceptos de autor asalariado, y de obra colectiva frente a obra
en colaboracin. Un programa como Windows XP es obra colectiva, creada por
asalariados de Microsoft, que asume la autora del programa y sin que ninguno
de los desarrolladores puedan reclamar la explotacin separada sobre su parte.
La distribucin Debian GNU/Linux es una obra en colaboracin en cuanto a los
componentes individuales, pero la distribucin en s es una obra colectiva, compuesta,
cuyo titular es una asociacin de desarrolladores voluntarios que se sirve de la
organizacin Software In The Public Interest, Inc. para dotarse de personalidad jurdica,

Plataforma de Teleformacin de IFES Pgina 221 de 328


titular de los derechos de autor de la distribucin en sus diferentes versiones [Esta
explicacin es conforme con el Derecho espaol, y en realidad vale para todo el
mundo. Se incluye aqu a ttulo de ejemplo, esperemos que apropiado].

Una observacin comn en la literatura jurdica acerca de lo ventajosa que resulta


la proteccin del programa no libre para una empresa de software por las reglas del
derecho de autor, se basa en que normalmente los autores de los programas son
annimos y quien se beneficia de los derechos de autor (la empresa) no es autor.
Pero lo cierto es que, primero, la observacin tambin rige para los autores de obras
literarias salvo excepciones; segundo, la observacin no se aplica al software libre,
cuyos autores no son casi nunca annimos; y, tercero, la mayor parte de los derechos
de explotacin -y por tanto su proteccin legal- queda cedida a la comunidad de
usuarios y por tanto las vas para obtener beneficio no derivan ya de la exclusividad.

Quin es "usuario legtimo" del software


Este es un concepto mucho ms importante, aunque la LPI no lo define. Podemos
suponer, en un examen superficial de las premisas del apartado 2.1, o simplemente
deducindolo de nuestra experiencia cotidiana, que usuario legtimo es quien ha
comprado el software, y en efecto as es cuando la compra del soporte incorpora -
mediante la licencia- la autorizacin para usarlo.

Pero hablando estrictamente, no existe la "compraventa de software" . Lo que uno


compra en la tienda (tal vez un CDROM con un juego o una distribucin GNU)
no es el programa, sino slo su soporte ms una oferta de licencia para uso y
explotacin -licencia que despus habr de aceptar. Y esto es todo (y nada menos,
dirn el vendedor, el distribuidor, el titular de derechos de explotacin y/o el autor del
programa). Esta explicacin suele encontrarse en las licencias de software propietario,
que en este artculo y por las razones que se explicarn despus, preferimos
denominar "software cerrado" . No es una explicacin realmente necesaria, pues todo
software nace con copyright.

Pero tambin puede adquirirse software por ftp annimo gratuitamente con licencia
copyleft, y por supuesto quien lo obtiene as puede usarlo muy legtimamente;
simplemente la LPI no estaba pensando en esta circunstancia. Cuando se aprob la
LPI en 1987, incluso cuando se aprob en Bruselas en 1991 la directiva que oblig a
hacer algunas modificaciones en la ley espaola en 1993, el software libre no era un
movimiento lo suficientemente relevante en Europa y menos en Espaa.

Lo relevante para nosotros ahora es otra cosa: No hay otro tipo de obras para las que
la LPI distinga entre usuarios legtimos e ilegtimos, slo hace la distincin para los

Pgina 222 de 328 Introduccin a Linux


programas de ordenador y para las bases de datos. No se habla nunca de usuario
ilegtimo de un libro, o espectador ilegtimo de un cuadro. Esto parece absurdo, y puede
que lo sea en cierto sentido que vamos a explicar. Ante todo, no estamos hablando de
quien roba un CD que contiene un programa, o roba un libro, o entra en un museo sin
pagar. Estamos hablando de quien usa un programa que instal desde un CD prestado
por un amigo, de quien ha ledo un libro prestado por un amigo, de quien contempla en
casa un cuadro prestado por un amigo. Es evidente que en los dos ltimos casos no
hablamos de "lector ilegtimo" ni de "espectador ilegtimo" , pero para la LPI el primer
fulano, el del programa de ordenador prestado, se es un usuario ilegtimo. Esta es una
extraa asimetra. Nos dar que hablar despus.

Quin es el responsable ante el usuario


El autor tiene siempre algunas obligaciones frente a quienes explotan su obra. Ante
todo responde de la autora y de la originalidad de la obra. Responde tambin de su
propia capacidad jurdica para licenciar el programa. El supuesto que ms problemas
puede dar es el de un redistribuidor de software que l cree libre y que en realidad no lo
es, por error, a sabiendas o mediante engao (y esto tendr que probarlo).

Ocurre que las exigencias jurdicas del software libre (sl) pueden confundir: Redistribuir
software libre del que no se es autor no traslada automticamenten al redistribuidor
las responsabilidades del autor. Para empezar, la habitual clusula de ausencia de
garanta deja claras ya algunas cosas. En general, si el licenciante del programa
original (normalmente el autor pero no necesariamente, p. ej. en el caso de los
asalariados) y el licenciatario (quien tal vez lo va a modificar y redistribuir) acuerdan
vlidamente los trminos de la licencia, est claro que de la autora de los programas
responde cada cual: del original el autor o licenciante; y del derivado el licenciatario,
pero por motivo de una segunda licencia, en la que es l ahora el licenciante de
un tercero licenciatario, y as sucesivamente. Ms en general no es posible, ni
seguramente til, tratar los diferentes supuestos de responsabilidad (patrimonial o no,
ya sea civil, penal o administrativa). Es un asunto demasiado amplio, rido y complejo.
Y a efectos prcticos no muy til. Tal vez sea ste, como otros del presente artculo,
objeto apropiado para una apartado FAQ en versiones sucesivas. De todos modos, uno
debera ser capaz de deducir la respuesta a su duda a partir de cuanto contienen la
presente "Introduccin" (sa es su finalidad).

Contenido deseable de una licencia de software


Lo que sigue pretende indicar al lector, que probablemente no ser ducho en
cuestiones jurdicas, en qu debera fijarse al leer una licencia para entenderla

Plataforma de Teleformacin de IFES Pgina 223 de 328


correctamente y sin mucho trabajo. El mtodo no va a ser la presentacin de un
prototipo de licencia abstracta, sino el examen de la mejor licencia concreta que hemos
podido encontrar, ya sirva a un programador tal cual, o como modelo para obtener otra
a su gusto, o tal vez de anticristo para estigmatizarla a placer. Se trata de la GPL.

La GNU-GPL es una pieza jurdica de gran valor. Entre otras utilidades, contiene
la estructura completa del sistema de cesin de derechos de autor sin atentados al
copyright y respetuosa con los derechos y libertades de los usuarios. Es superior
tcnicamente a los mejores ejemplos de licencias de software no libre, es ms
completa que las licencias breves tipo BSD, y mucho ms clara y fcil de leer que
cualquier otra de software no libre que conozcamos.

Para empezar, la GNU-GPL carece de traducciones oficiales. Pero esto no es ningn


problema prctico, primero porque hay traducciones oficiosas; segundo, porque el
ingls original es fcilmente traducible a trminos jurdicos de cualquier pas; tercero,
porque el texto evita deliberadamente los tecnicismos y expresiones o rodeos oscuros.
Sin ser coloquial, que casi lo es, pasa por ser un modelo de redaccin jurdica.

Estas cualidades no se deben slo a su punto de vista distinto al de la propiedad


intelectual. Por cierto, la GPL no se opone a la propiedad intelectual, pero su enfoque
no es desde luego el de la proteccin de los derechos de autor -para eso ya est la
LPI- sino el del respeto de la libertad de los usuarios. Para redactar una licencia que
acabara por dar nombre a una forma de distribucin ( "copyleft" ) la FSF debi sortear
ms de un serio escollo, adems de enfrentarse con crticas no siempre benvolas,
con el punto de mira desviado y finalmente incapaces de demoler el imponente edificio
que se estaba levantado bajo su proteccin. Por ahora no disponemos de un modelo
mejor, aunque todo es perfectible. Las directrices Open Source son muy prcticas, pero
tcnicamente hablando no son un modelo de licencia, y en trminos jurdicos significan
un paso atrs sobre el esquema de la FSF, como se tratar de demostrar despus. No
son tampoco fciles de entender. Pero su importancia e influencia son enormes y le
dedicaremos el apartado 4.5.2. Iremos dando indicaciones por orden, para desmenuzar
la licencia deseable, aunque no llegaremos a los detalles.

La forma ms segura de licenciar el programa consiste en incluir un anuncio al principio


de cada fichero fuente, unas lneas de indicacin de autora y ao de publicacin
(es decir, lo que se llama "lnea de copyright" ) y la indicacin de uno o dos lugares
fcilmente accesibles donde encontrar el texto completo de la licencia.

Una licencia no necesita un prembulo que exponga la justificacin de las clusulas


o cuerpo de la licencia, pero la GPL tiene uno, y muy til porque sirve para solventar
las dudas que pueden aparecer al leer o al aplicar las clusulas. La GPL no es neutral,
pretende ser interpretada en un sentido dado y no en otro distinto u opuesto. Su sentido

Pgina 224 de 328 Introduccin a Linux


es el de la libertad, y est recogido justamente en el prembulo, que forma parte de
la licencia misma, aunque esto la FSF no se ha ocupado de indicarlo as. De todos
modos, la licencia es toda ella autoexplicativa, e interpretarla debera de resultar fcil.
No puede decirse lo mismo de muchas otras licencias estndar que hemos podido
consultar.

En el cuerpo de una licencia de software debe encontrarse 3 grupos de clusulas,


slo en lo que se refiere a los derechos de autor; habr ms apartados si se tratan
asuntos sobre garantas, servicios de apoyo, pagos y dems, pero las materias ajenas
a la propiedad intelectual no son tratadas en estas notas. Los grupos de clusulas
son los siguientes, y se incluye despus de cada uno, como ejemplo, las clusulas
correspondientes de la GPL. La discusin del grupo segundo, el cuerpo principal sobre
explotacin del programa, la dejamos para el apartado 4.

1. Clusulas generales
1. Definiciones y mbito de aplicacin de la licencia. Advertencias de
copyright (GPL clusula 0)
2. Formas de aceptacin de la licencia (GPL clusula 5)
2. Uso y explotacin del programa
1. Copia, modificacin y distribucin libres (GPL clusulas 1 a 3)
2. Copyleft, o persistencia de la libre distribucin de programas
derivados (GPL clusulas 4, 6 y 10)
3. Integridad del sistema copyleft en caso de impedimento forzoso a la
libre distribucin (GPL Clusula 7)
4. Posibilidad de lmites geogrficos a la libre distribucin (GPL clasula
8)
3. Intangibilidad de la licencia. Versiones sucesivas (GPL clusula 9)

Las diferencias entre el orden lgico y el de presentacin por la GPL se deben a


necesidades prcticas de exposicin de la FSF. Comprobaremos que para analizar
el funcionamiento de una licencia de software libre es ms apropiada la ordenacin
lgica. A continuacin tratamos las clusulas generales, y como se ha dicho dejamos
las relativas a la explotacin para el apartado 4.

Clusulas generales
Definiciones, mbito de aplicacin de una licencia y avisos de copyright

Estas declaraciones de la licencia no tratan directamente de la explotacin del


software, e incluso pueden ser tericamente innecesarias, pero siempre ayudan a
la comprensin del cuerpo principal. En cuanto a las definiciones, podemos usar las
contenidas en las leyes o bien habremos de hacerlo nosotros mismos. Son esenciales

Plataforma de Teleformacin de IFES Pgina 225 de 328


las de programa u objeto licenciado, programa derivado (el obtenido a partir del que
ahora licenciamos) y las formas de explotacin. De todo ello se encuentra informacin
en los apartados anteriores. Es tpico de las licencias, como de muchos otros contratos,
fijar los trminos importantes que vayan a usarse ms a menudo: "usted" puede ser
el licenciatario, "titular del copyright" o simplemente "titular" es el autor o el derecho-
habiente de las facultades de explotacin que van a autorizarse, "versiones y/o
programas derivados" son el resultado de cualquier modificacin del programa, incluida
la traduccin, etc. Todo esto depende de las concretas necesidades en cada caso.

Una licencia debe delimitar claramente su mbito geogrfico de aplicacin, su duracin


(que puede ser indefinida) y las formas de explotacin que se van a tratar, las que
se retienen y las que se ceden. Aqu bastar limitarse a definirlas lo mejor posible
y siempre que parezca conveniente o necesario. Hacen referencia a cuestiones
generales tratadas en otras partes de este artculo, as que no las repetimos. Es clsico
advertir que la licencia no se aplica a la entrada o a la salida del programa, salvo que
se diga otra cosa, es decir: siempre que una y otra no sean a su vez obra protegida.

Es casi esencial que el programa incluya de algn modo uno o ms avisos de copyright
y de la licencia, como ya hemos reseado antes.

La copia impresa debe prevalecer sobre la informacin que muestre la pantalla, porque
es ms sencillo hacer modificaciones de ltima hora en aqulla.

Formas de aceptacin de la licencia

Este asunto es clave, al menos formalmente, pero no debe dar problemas en su puesta
en prctica. No hay autntica licencia hasta su aceptacin por el destinatario, esto ya
lo sabemos. La forma de la aceptacin es variada, las hay muy rebuscadas, incluso
puede encontrarse algunas definitivamente abusivas para el usuario (vase el apartado
6.1). Aqu nos referiremos slo a las habituales. En esencia, se trata de que queden
claras las voluntades del licenciante y del licenciatario, por cualquier medio admitido.

Primero, es conveniente advertir al destinatario que no est obligado a aceptar la


licencia para el uso y la copia privada, pero s para la modificacin y distribucin (o
redistribucin) del programa. Los dos primeros actos son privados, normalmente; pero
los segundos involucran a terceras personas. A primera vista, de lo dicho se podra
deducir que este software no va a tener "usuario legtimo" en el sentido genuino de la
LPI, ni estar prohibida la copia privada, tambin en contra de la LPI. Pero no es as.
El uso y la copia privada son actos que normalmente slo conocen los mismos usuario
y copista, p. ej. si se realizan en casa. Por tanto no tiene mucho sentido exigir la
aceptacin de la licencia para estas dos formas de explotacin. Esto es as sobre todo
para el software libre, en donde por definicin prcticamente todo usuario es legtimo

Pgina 226 de 328 Introduccin a Linux


y quedan autorizadas las formas principales de explotacin. Obviamente, para el
software cerrado la situacin es muy distinta, ya que su explotacin est radicalmente
restringida desde el mismo uso. De hecho, desde antes del uso, pues para algunos
fabricantes el romper los precintos del paquete de CDs supone la aceptacin de la
licencia (puede comprobarse en las licencias de conocidas casas comerciales).

Suele darse por vlido que la realizacin de actos de explotacin permitidos por
la licencia suponen su aceptacin. Por supuesto, pulsar "aceptar" en el ejecutable
interactivo tiene exactamente -jurdicamente- ese valor, aunque debera darse
la oportunidad al usuario de poder usar el programa durante un tiempo para
comprobaciones y ajustes, antes de la aceptacin. En fin, que no hace falta una
declaracin pesonal por escrito, firmada y fechada, para aceptar una licencia. S tal vez
para rechazarla, si uno cree que ha realizado, por error o defecto del programa, algo
que puede significar la aceptacin de lo inaceptable. El software libre, de todos modos,
no se enfrenta con estos problemas casi nunca.

Intangibilidad de la licencia
El contenido de una licencia, sobre todo de una licencia de software libre, no es libre.
Dicho de otro modo, el efecto de una licencia de sl no es reflexivo, no se aplica a s
misma. Una licencia no puede permitir su propia modificacin entretanto est en vigor,
salvo por acuerdo expreso de ambas partes. En Derecho espaol se dice, ms en
general, que los trminos de un contrato no pueden quedar al arbitrio de uno solo
de los contratantes. Por todo esto se exige que la licencia sea intangible, intocable
mientras est en vigor.

Tenemos que distinguir las novaciones, o cambios que puede sufrir una licencia por
acuerdo entre las partes o por sentencia judicial, p. ej. si un tribunal anula una clasula
abusiva; de las revisiones de una licencia-modelo o general, como p. ej. la GNU-GPL.
El supuesto interesante es el segundo. Una licencia-tipo, como la GPL o la FDL, que al
fin y al cabo son obras literarias, estn protegidas por las leyes de derechos de autor,
aqu aplicados estrictamente con la finalidad de mantener el texto sin cambios. Estas
licencias estn sujetas al copyright, en este caso de la FSF, con domicilio en Boston-
MA. Esto significa que quien use la GPL para licenciar su programa y mantenga el
nombre de la licencia en el ejemplar que utilice para su programa, debe mantenerla
ntegra y sin modificaciones. En otro caso, y si prefiere el autor realizar algn cambio,
no ser ya "licencia GPL" y no podr utilizar tal denominacin. A esto se refiere la GPL
en la advertencia que va antes del prembulo.

La intangibilidad de las licencias-tipo se debe a su papel de destinataria de tantas


remisiones que circulan por ah. La seguridad del trfico exige que los trminos literales

Plataforma de Teleformacin de IFES Pgina 227 de 328


no cambien. An as, una licencia modelo puede pasar revisiones, y por tanto podemos
encontrarnos con versiones distintas, pero no deberan serlo mucho sino slo en
mejoras, aclaraciones y tratamiento de casos nuevos. Todas las versiones deben
ajustarse al esptitu de la licencia original, en otro caso habr de redactarse una licencia
distinta y con otro nombre o identificador. La FSF admite adems que si alguien licencia
su programa con la versin x puede hacerlo al mismo tiempo con referencia a cualquier
versin posterior. Esto se contrapesa estableciendo que cuando no se especifique el
nmero de versin de la licencia, el destinatario elegir la que ms le convenga, algo
perfectamente vlido y respetuoso con el usuario.

Puede revocarse una licencia?

Una licencia es revocable por el autor en muchas circunstancias y en ejercicio de


varias facultades. Una de ellas, el caso del llamado derecho de arrepentimiento, por
cambio de convicciones del autor, forma parte del derecho moral. Por supuesto tiene un
lmite: indemnizar los perjuicios que pueda producir a terceros. Y lo mismo ocurre con
cualquier revocacin unilateral (no pactada) de la licencia. Si hay acuerdos sobre este
asunto, habr que estar a lo acordado. En el sl la situacin no tiene mayor relevancia,
salvo en un caso: la revocacin de la licencia copyleft Es ello posible? Y de serlo,
qu consecuencias tiene para el autor? Y para los licenciatarios antiguos y nuevos?
En el software de uso masivo, sea libre o no, las dificultades en la aplicacin prctica
de las reglas sobre revocacin de licencias son tan grandes que se usa otra frmula:
nueva licencia para una nueva versin del programa; o bien la doble licencia. Los
problemas resueltos de esta forma resultan ms manejables, pero no dejan de ser
serios. Su tratamiento aqu excede del mbito de las presentes notas, aunque se
espera poder tratarlo mnimamente en versiones sucesivas.

Tipos de licencias de software


Aunque la GNU-GPL, BSD, XFree86, Mozilla, y otras muchas son las licencias ms
conocidas, lo cierto es que no podramos enumerarlas todas porque cada autor puede
tener la suya, y una distinta para cada programa. Pero esto no es ningn problema,
por varias razones. Primera, porque disponemos de un instrumento de anlisis de las
licencias: las premisas del apartado 2.1 de este artculo. Segunda, porque hay varias
licencias que sirven como modelos para otros programas, y as hablamos de "tipo BSD"
para referirnos a licencias similares a la del sistema operativo de Berkeley. Hay incluso
licencias y modelos creados en abstracto, sin referencia a un concreto programa,
como la misma GNU-GPL o la Open Source Definition. Las licencias tpicas son muy
cmodas de usar ya que el autor de un programa dado, conocedor de la que ms le
conviene, la incluye tal cual o hace slo las modificaciones que precisa, sin el trabajo

Pgina 228 de 328 Introduccin a Linux


de redactar una por entero, o encargarla a un abogado. Por otro lado, quienes van a
usar o explotar un programa (los licenciatarios) tambin conocen estas licencias tpicas
y saben de antemano a qu atenerse. Igualmente, los abogados y los jueces tienen
mejor conocimiento de ellas que de una licencia nueva u original. Todo esto simplifica
las relaciones y los negocios y resulta til.

Nosotros vamos a ocuparnos slo de las licencias tpicas. Las ms interesantes son
las licencias de software libre, ya que en una licencia se materializa la voluntad del
autor sobre cmo desea que su programa se use y explote, y las de software libre
materializan una voluntad radicalmente contraria a la que la LPI espera de un autor. En
particular, las licencias copyleft revierten literalmente las relaciones autor-usuario que la
LPI presupone.

Por contra, las licencias de software no libre, exactamente las de software cerrado, se
asientan en la LPI y desde ella pueden incluso lanzarse ms all en la limitacin de los
derechos y libertades de los usuarios. Pero esto slo es vlido, como ya sabemos, si no
se atenta contra las normas imperativas, que conocemos del apartado 2.1.3. Por eso
se dice que las licencias de software no libre estn acompasadas con la LPI y son por
lo tanto mucho menos interesantes. La lectura completa de una de estas licencias no
libres puede resultar adems una penosa experiencia.

Con todo, slo las licencias tpicas forman ya un buen montn. Tampoco tiene mucha
utilidad hacer una seleccin, pues la FSF y la OSI ya han hecho algunas muy valiosas,
aunque no siempre detalladas, y de las que en el apndice C se encuentran las
referencias. Nosotros vamos a examinarlas de una forma distinta, y nos evitaramos
tanto el tedio de la exposicin de licencias una por una, como una lectura rida o
abrumadora. De todos modos, se encontrar en 4.6 una breve discusin final sobre los
criterios de las clasificaciones principales.

Y llegamos por fin al ncleo de la cuestin.

Las licencias de software libre


Ms definiciones
Necesitamos an algunas definiciones ms para seguir aclarando la terminologa que
estamos usando y otra nueva que introduciremos enseguida. Las definiciones ms
tiles para hablar de software libre son, de nuevo por su rigor jurdico, las de la FSF,
que usamos en este artculo por convencin.

Plataforma de Teleformacin de IFES Pgina 229 de 328


Tenemos dos grandes superconjuntos: el software libre y el resto del software, que
por tanto llamamos no libre. Cualquier otra terminologa para estos superconjuntos
no es aceptable en espaol. Por cierto, software no libre no es sinnimo de "software
propietario" , y como esta ltima expresin es horrible adems de inexacta, nosotros
no la utilizaremos, adems en el fondo nos sobra. En caso necesario hablaremos de
"software cerrado" . Es ms preciso hablar en general de software no libre, y de paso
englobamos a los semipropietarios, semilibres, sharewares y dems. Esta terminologa
tambin nos facilitar la comprensin cabal de un cuadro bastante grande de licencias.

"Software libre" (sl) es el que incorpora una autorizacin general no discriminatoria para
usar, copiar, modificar y distribuir el programa original o sus derivados, gratuitamente
o no. Debe proporcionarse las fuentes, directa o indirectamente, pero siempre de
forma fcil y asequible. Todo programa que no incorpore esta autorizacin no es libre,
decimos que es software no libre.

Abusaremos un poco del lenguaje llamando "licencia libre" a la licencia de un programa


libre.

Estas definiciones no son pacficas. Nosotros las usaremos convencionalmente, pero


ignorar cunto hay detrs es un pobre servicio al conocimiento, porque no se trata
de pequeeces. Para empezar, las definiciones de software libre ( "free software" )
y fuente abierta ( "open source" ) no son coincidentes, aunque vienen ciertamente
a significar casi lo mismo. Pero estas diferencias no son importantes por ahora, las
dejamos para el apartado 4.5.2.

Tambin es esencial distinguir sl (superconjunto) de copyleft (subconjunto). ste es


software libre cuyos trminos de distribucin no permiten a los re-distribuidores aadir
a su licencia restricciones adicionales a las de la licencia de que se sirvieron. Esto
supone la perpetuacin de la condicin de libertad del software hasta su extincin.
El copyleft determina la imposibilidad (jurdica) de apropiarse del software libre. Y
ste es el hallazgo de la FSF, al que dedicaremos por entero el apartado 4.5.1. El
resto del sl que no es copyleft puede ser modificado aadiendo restricciones a la libre
distribucin que no se encontraban en la licencia del programa originario. Los ejemplos
caractersticos son las licencias BSD y X11.

Esta segunda dicotoma "sl-copyleft v. sl-no-copyleft" es en cambio pacfica, porque


los trminos de distribucin de, p ej., la GNU-GPL son claros y terminantes. Es cierto
que una cuestin de estrategia invit a la FSF a redactar la Lesser GPL, y que se
han detectado una o dos lagunas relativamente importantes, pero procedentes slo
de una interpretacin forzada del sentido de su texto. Un programa es copyleft o no
lo es, y esto es fcil distinguirlo. Aun as, la FSF habla de "grados" de copyleft (hay
programas ms copyleft que otros), y finalmente introduce una ltima subdivisin:

Pgina 230 de 328 Introduccin a Linux


"copyleft compatible GNU v. copyleft no compatible GNU" . Lo mismo hace la OSI con
su calificacin de compatibilidad Open Source. Pero estas expresiones, graduacin y
compatibilidad, forman otro de los asuntos en los que, dado el mbito de este artculo,
no podremos entrar a fondo hasta una versin ulterior.

En Derecho anglosajn se incluye dentro del sl el software que se encuentra en


dominio pblico, pero esto generalmente no es as en los Derechos continentales.
En primer lugar, no es fcil con arreglo a la ley espaola encontrar programas en
dominio pblico por las razones expuestas antes, simplemente no ha transcurrido
suficiente tiempo desde la aparicin de los primeros programas protegidos para que
se haya producido la extincin de los derechos de autor sobre ellos (recurdese:
toda la vida del autor y 70 aos ms). Segundo, probablemente las fuentes pueden
no estar disponibles. Tercero, el Derecho espaol admite la apropiacin del dominio
pblico indito (art. 129.1 LPI), y desde luego la apropiacin de las obras derivadas del
dominio pblico, pero no del dominio pblico mismo. Con razn la FSF considera que
el software en dominio pblico no es en modo alguno copyleft, sobre todo en Derecho
anglosajn. Ni siquiera tiene que ser necesariamente libre, p. ej. no lo es si las fuentes
no estan disponibles. Volveremos an sobre el dominio pblico en 4.5.1.

Encaje general de las licencias de software libre


en la ley espaola
Sin rodeos, no plantean problemas en Derecho espaol, son perfectamente vlidas y
viables. Trataremos de demostrarlo en lo que resta de este apartado 4. En primer lugar:

1. No afectan a los derechos morales del autor, aunque la existencia del


llamado derecho de arrepentimiento, tpico de los Derechos continentales,
parece sugerir otra cosa. Pero ya tratamos este asunto (superficialmente,
es cierto) en el apartado 3.2.2 al hablar de la revocacin de las licencias.
Aunque all quedaron temas por tratar, ste en particular qued allanado.
Se trata de un asunto ms terico que otra cosa, de todos modos. Y an
volveremos de nuevo a l cuando tratemos de la Open Source Definition.
2. En cuanto a los derechos patrimoniales del autor, tampoco hay nada en las
licencias de software libre que infrinja las normas imperativas de la LPI. En
efecto:
1. El derecho de autorizar o prohibir la explotacin de la obra se
manifiesta justamente en la facultad del autor de dar licencia a su
programa, siempre que no se vulneren otras normas imperativas u
obligaciones asumidas.

Plataforma de Teleformacin de IFES Pgina 231 de 328


2. Las licencias de software libre no implican renuncia del derecho de
remuneracin, aunque en muchos casos se renuncie de hecho a
una remuneracin, que es cosa distinta, perfectamente renunciable.
Es claro que el autor no renuncia a la explotacin por s mismo.
Y respecto de la explotacin por los dems, la cede con causa
(liberalidad, prestigio, obtencin de una marca comercial, de apoyo en
el mantenimiento del programa, etc, etc).
3. Las licencias regulan sobre todo la cesin de los derechos de
explotacin, que es su cometido, y por tanto son el vehculo apropiado
para contener las condiciones de uso y explotacin de un programa
de ordenador.

Una dificultad ms seria se encuentra en la limitacin que la ley espaola impone a


cualquier cesin de derechos de explotacin: Queda limitada siempre a los medios
de explotacin existentes en el momento de la cesin, esto es, en el momento de la
aceptacin de la licencia; y no se extiende por tanto a los medios futuros de copia,
modificacin, etc, ni a los inexistentes. Por su parte la GPL deja bien claro que
la explotacin libre autorizada se refiere "a cualquier medio" (clasula 1) y queda
restringida a determinadas formas de explotacin (y no a otras), concretamente la
copia, modificacin y distribucin. Si se produce una explotacin de distinto tipo, la
GPL deja de amparar al licenciatario (cl. 1 y 4), pero el sentido de la GPL es el de
respetar las libertades del usuario, no la restriccin injustificada del uso y explotacin
de los programas; y no entra, salvo lo ya sealado, en buscar limitaciones ms all de
las necesarias a su finalidad. Por lo tanto se concluye que la GPL ampara formas de
explotacin sobrevenidas despus de la aceptacin de la licencia, pero siempre que no
se atente contra el espritu de la GPL. Aunque nunca est de ms avisar al licenciante,
puede incluso ser imprescindible.

Tambin hemos de resolver una aparente contradiccin entre la regla imperativa de la


LPI que dice "las cesiones no exclusivas son intransmisibles" (art. 50.1) y el hecho de
que una licencia de sl, que consiste en una cesin no exclusiva, justamente permite la
transmisin ulterior de derechos por el licenciatario si ste crea un programa derivado.
Pero no hay tal contradiccin. Por al menos dos razones: 1 La esencia del sl est
en la cesin de derechos de explotacin sin exclusiva, y no en ninguna renuncia del
copyright. Mediante la licencia libre el autor cede sus derechos de explotacin sin
exclusiva, pero ello no permite al licenciatario re-licenciar la obra originaria, ni licenciar
su obra derivada en trminos contrarios a los aceptados en la primera licencia. 2 El
art. 50.1 no es realmente una norma imperativa, existe para proteger al autor, pero
ste puede disponer de ella, es en realidad una norma dispositiva. Se incluy en su
momento como imperativa por pura precaucin, pues el tenor literal de la LPI da que
pensar. Para los ms juristas: una licencia de sl tiene algo de donacin modal (te doy

Pgina 232 de 328 Introduccin a Linux


algo si haces esto), y esta es otra forma de demostrar que la contradiccin es slo
aparente.

A continuacin veremos con ms detalle las libertades aparejadas a una licencia


de software libre. Seguiremos el orden expuesto al final del apartado 3.2, o sea: el
segundo grupo de clasulas que tenamos pendientes. Puede adelantarse que no se
trata de un examen pormenorizado de cuantas cuestiones suscitan los rtulos de los
apartados, sino un vistazo general. Esto podemos en cierto modo permitrnoslo porque,
primero, estamos tratando con el negativo de las habituales licencias de software
cerrado, innecesariamente prolijas y obsesivas. Segundo, estamos tratando acerca de
las libertades, ms simples de expresar que las sujeciones.

Libertades de uso y reproduccin


Estas libertades no nos darn ya mucho trabajo. Todo ha quedado definido en
apartados anteriores y sabemos por tanto que una licencia de sl otorga libertad
prcticamente plena para utilizar y copiar el programa cuando, como, cuanto y donde
a uno le apetezca. Suele incluirse restricciones formales, como el mantenimiento del
aviso de copyright, que si son razonables no hacen al programa no libre.

Por supuesto, es lcito bajo licencia de sl cobrar por el acto fsico de transfererir copias
del programa (p. ej. en CDROM), as lo dice entre otras la GPL en el ltimo inciso de
la clusula 1. Significa esto que la cesin de derechos de explotacin del programa
(que es una transferencia de objeto inmaterial) ha de ser gratuita si se utiliza la GPL?
Aqu la GPL parece confundir el programa (obra intelectual, inmaterial, objeto de los
derechos de autor) con el soporte de la obra (un binario o cdigo fuente, grabados
en un CDROM). Debera estar claro que la GPL no exige gratuidad en la cesin de
derechos de explotacin, no hay restriccin a los derechos de autor ni a la libertad
del usuario, pero es un hecho la cesin gratuita en muchas ocasiones. Adems,
a quin se cobra por una cesin de derechos de explotacin muy amplia y con
destinatario indeterminado? Este asunto es muy terico y no merece ms atencin en
este momento.

Libertad de modificacin
Tampoco aqu encontraremos a estas alturas dificultades mayores, aunque siempre
es posible complicarse la vida. Uno puede modificar libremente un programa libre,
que lo es porque entre otras cosas se dispone de su cdigo fuente. Puede traducirse,
transformarse, combinarse con otros, o dividirse. Todos los programas o colecciones

Plataforma de Teleformacin de IFES Pgina 233 de 328


de programas obtenidos son obras derivadas, pero (un gran pero) no necesariamente
libres.

Qu ocurre si redistribumos un programa en el que hemos includo parte del cdigo


de un programa libre? Que el programa obtenido ha de ser libre en su totalidad. Es
decir, no puede extraerse de un programa libre copias u obras derivadas que a su
vez se licencien como libres slo en la parte derivada. En varias ocasiones la GPL
tiene en cuenta este supuesto, especialmente para los trabajos derivados (clasula
2), exigiendo que la licencia se aplique al programa "como un todo" , de modo que el
carcter libre se transfiera al programa derivado. Aunque hay excepciones.

Esta es una exigencia coherente con las bases del sistema copyleft, de hecho es
la primera exigencia del copyleft, en el mbito de la modificacin de programas.
Es el primer supuesto que nos encontramos en nuestro recorrido con el llamado
incorrectamente "virus copyleft" , calificado tambin de efecto contaminante. Desde el
punto de vista de las libertades del usuario es ms bien un efecto supermineralizante,
reconstituyente. Estos calificativos no tienen mucha importancia, s el efecto mismo
por supuesto. Pero esta restriccin no es toda la clusula copyleft, en realidad no lo
es en absoluto en cuanto a las modificaciones que no se redistribuyen. Ms bien, la
transmisin del carcter libre de un programa original a sus derivados es una exigencia
del copyright: Si el programa original es copyleft, porque el derecho del autor del
programa derivado se origina en una licencia copyleft, de la que no puede sustraerse. Y
si el programa original no es copyleft, exactamente igual.

Luego el mal llamado carcter contaminante del copyleft resulta que se da bajo
cualquier licencia, como cualquier jurista esperara. Las crticas habituales suelen
tener lugar en otro plano, sea econmico, empresarial o poltico. Por ejemplo, que
la contaminacin por licencias no libres es una calamidad para el usuario, que la
producida por licencias Open Source no copyleft es incierta, y que la producida por
el copyleft es defitivamente una bendicin para el usuario y la libre computacin en
general, porque mantiene la libertad. Nada de esto se deduce del Derecho, que,
todo lo ms, establece reglas muy generales, como que lo accesorio sigue la suerte
de lo principal (art. 379 CC) y que los derechos sobre una mezcla indivisible son
proporcionales a los elementos mezclados (art. 381 CC), siempre que no haya otros
pactos.

Puede darse el caso de un programa que posee partes identificables no derivadas


de un programa libre. Entonces, y siempre que se trate de trabajos independientes y
separados ( "autnomos" en nuestra nomenclatura del apartado 1), slo entonces no
se transmite el copyleft. Pero si esas partes se distribuyen como un todo derivado del
programa libre, la distribucin del todo debe producirse segn la licencia libre, cuyas
autorizaciones se extienden al todo. La finalidad de esto (vase cl. 2 GPL) no es otra

Pgina 234 de 328 Introduccin a Linux


que la de controlar la distribucin de los trabajos derivados del programa libre. Adems,
y esto es esencial en las distribuciones y paquetes, la reunin o coleccin de trabajos
libres y no libres en un volumen de almacenamiento o medio de distribucin NO hace
que unos trabajos pasen al mbito licenciado por otros. Esto se ajusta como un guante
a las reglas comunes, o sea las del CC que hemos citado. Vamos a ser ms explcitos.

Adquisicin de propiedad: Unin y especificacin de


cosas
Como base del debate sobre cmo han de transmitirse los efectos de las licencias
de programas originales a los programas derivados, vamos a utilizar las reglas del
CC citadas arriba, y algunas ms. Se trata de saber cmo se adquiere la propiedad
sobre objetos derivados, bien por unin de cosas distintas (mezcla y adjuncin), bien
por especificin de una cosa. Este es un viejo asunto de los juristas, desde hace ms
de 2000 aos. "Nada ms complicado y de ms difcil apreciacin jurdica en la vida
real... Las relaciones que supone... han llegado a [considerarse] de casi imposible
determinacin..." , as se expresaba un magistrado, J.M MANRESA, hace un siglo
aproximadamente. Con esta alentadora perspectiva, vamos a basarnos en las normas
del CC aplicables a los bienes muebles, porque de cierto que los programas de
ordenador no son inmuebles (!).

Unin de programas

Tenemos dos tipos de unin de cosas, la mezcla y la adjuncin. La mezcla de


elementos supone que stos resultan despus inseparables, de modo que cada
propietario adquiere un derecho proporcional sobre la parte que le corresponde segn
el valor de las cosas mezcladas (art. 381 CC).

La adjuncin ocurre por la unin de cosas heterogneas que se unen indisolublemente


para constituir un solo y nuevo objeto, no desmontable. En este objeto pueden
distinguirse tal vez sus antiguos componentes, pero no pueden ya separarse. En
este caso, la regla es que lo accesorio sigue la suerte de lo principal (art. 375 CC).
Accesorio es lo que facilita el uso o perfecciona lo principal (art. 376 CC). Pero suele
utilizarse como criterio ms prctico el del valor econmico de los componentes (art.
377.1 CC).

Versiones de programas o especificacin

La especificacin consiste en dar a una cosa una nueva forma. Ms estrictamente,


es dar nueva forma a una cosa ajena, crendose as una nueva cosa de ms valor.
El art. 383 CC dice que el especificador hace suya la cosa nueva, si efectivamente

Plataforma de Teleformacin de IFES Pgina 235 de 328


es de mayor valor, aunque habr de indemnizar al dueo de la cosa especificada
( "versioneada" ). En otro caso, ste puede optar por quedarse con la nueva especie,
indemnizando el valor de la obra nueva; o pedir indemnizacin de la materia original.

Todo esto slo vale si quien mezcla, adjunta o especifica acta de buena fe.

Exigencias razonables para la modificabilidad del


software
Por supuesto, no hay modificacin factible de un programa de ordenador si no se
dispone del cdigo fuente. La disponibilidad del cdigo recompilable puede darse de
varias formas, pero slo algunas son admitidas en la definicin de software libre. Habr
de escogerse alguna de stas en tal caso y dependiendo de la explotacin que se
prev:

Acompaar las fuentes completas en formato electrnico y en el soporte


habitualmente utilizado para intercambiar programas. Actualmente estos
medios y soportes son casi siempre ftp annimo y/o CDROM. La carencia
simultnea de estos dos citados resulta inaceptable.
Acompaar un compromiso escrito, vlido por un plazo razonable (la FSF
exige 3 aos), de proporcionar las fuentes a quien las pida a un coste no
superior al de la distribucin fsica por medio estndar (ftp y CDROM al
menos).
Una tercera forma de poner a disposicin el cdigo fuente, y que
normalmente slo debera aplicarse a usos no comerciales, es la de
acompaar el programa con la informacin recibida por el licenciatario sobre
la oferta anteriormente citada del cdigo fuente. Esto sirve para disminuir
costes y no cargar a ciertos usuarios con elementos posiblemente intiles.
[Queda claro que las frmulas segunda y tercera slo tienen sentido cuando
la distribucin del programa nicamente es en programa objeto o binario
ejecutable]

La LPI no define "cdigo fuente" . La GPL y las OSD dicen que es "la forma preferida
del trabajo cuando se hacen modificaciones" . Para un ejecutable, fuente es el cdigo
completo de todos sus mdulos, ficheros asociados de definicin de interfaces y
guiones utilizados para controlar la compilacin e instalacin del ejecutable. No
comprende necesariamente el cdigo que suele acompaar a los componentes
principales del sistema (el compilador y el ncleo sobre el que funciona el ejecutable),
salvo que el propio componente principal acompae al ejecutable.

Pgina 236 de 328 Introduccin a Linux


Libertad de distribucin
Todas las formas anteriores de explotacin pueden ser realizadas individualmente
y sin conocimiento por nadie. Pero la distribucin es inherentemente relacional, ya
que hay intercambio, y es en este punto en el que reside una de las ms importantes
polmicas dentro del sl. En su seno, la libertad de distribucin no se pone en duda,
libertad sin restricciones aparentes, salvo por cuestiones formales, algunas limitaciones
geogrficas lgicas, asuntos de poca monta comparados con la general libertad de
distribuir y redistribuir programas originales o transformados.

Tambin est claro para todos que la distribucin slo es libre si puede tener por
causa cualquiera que sea lcita: nimo de lucro, altruismo, proselitismo... Asmismo no
admite dudas que el sl slo es libre si la licencia del programa libre original persiste
durante toda la vida til del software y de sus derivados, que por lo tanto tambin han
de ser libres. La cuestin es la de la transmisin de efectos de las licencias, que ya
avanzamos en el apartado anterior. Se transmite el carcter libre de un programa
a sus programas derivados siempre, o slo para determinadas modificaciones
(derivaciones, agregaciones, paquetes, bibliotecas, distribuciones), tal vez slo para
la redistribucin? O se reconstituye plenamente el copyright? Esto depende de la
licencia misma, y por eso el movimiento del software libre se articula no mediante una
forma especial de escribir cdigo, ni por una nueva mercadotecnia, ni por el apoyo del
sector empresarial, todo eso son consecuencias de mover la palanca sobre cierto punto
de apoyo: esos extraos e indigeribles documentos llamados licencias de software.

El criterio para resolver el dilema reside, obviamente y una vez ms, en las libertades
ciudadanas, incluidas las exigencias de la libre competencia, entre las que no est
-ms bien al contrario- la limitacin de entrada en el mercado por apropiacin de
resultados obtenidos en el desarrollo de software, mucho menos de software libre. As,
el copyleft es una exigencia de la autntica libre competencia.

No se conoce ninguna norma jurdica que prohba la apropiacin del software, ah est
la LPI para garantizar que los programas pertenecen a sus autores. Pero el art. 81
del Tratado de la Comunidad Europea (ojo: en la nueva numeracin de Amsterdam)
califica de incompatibles con el mercado comn, y quedan prohibidas, las prcticas
tendentes a impedir, restringir o falsear la competencia; y en particular el limitar o
controlar la produccin y el desarrollo tcnico, subordinar la celebracin de contratos
a la aceptacin por la contraparte de prestaciones suplementarias sin relacin con su
objeto. Tambin prohbe el art. 82 abusar de la posicin dominante, p. ej. limitando
la produccin o el desarrollo tcnico en perjuicio de los consumidores. No es el sl el
que usa estas prcticas, de hecho las dificulta. Por contra, hay paladines del software

Plataforma de Teleformacin de IFES Pgina 237 de 328


cerrado y (tericamente) de la libre competencia que se encuentran expedientados en
Bruselas por presuntas prcticas ilcitas.

Este apartado 4 trata de las libertades del usuario de software, no de los derechos de
autor. Muchos entienden que la libertad del usuario no puede restringirse mediante
el uso de la misma libertad. Si quien modifica un programa libre hace uso de sus
derechos de autor (de su libertad, dir l tal vez) aadiendo en la licencia del programa
derivado (y en perjuicio de sus usuarios) restricciones que no figuraban en la licencia
del programa libre original, lo que est haciendo no es ejercitar sus derechos de
autor -que estn indeleblemente unidos a la licencia libre original- sino apropiarse
ilegtimamente de algo que no le corresponde a l en exclusiva, la libertad de los
dems a usar y explotar libremente el nuevo programa, libertad garantizada por las
constituciones, sin duda por la Constitucin espaola cuando reconoce el derecho
fundamental a la produccin cientfica y tcnica (art. 20.1.b CE).

Las licencias libres tipo BSD-original no pudieron tener en cuenta que el software
estaba empezando a ser usado masivamente y a gran escala, los fabricantes
intentaban patentar los productos y prescindir de una vez por todas de los desarrollos
abiertos. Habiendo encontrado mejor cobijo en la ley de derechos de autor que en la de
patentes, actualmente han debido frenar su expansin tras la recuperacin del modelo
de software libre.

Este modelo se ha repuesto del declive de los aos 80 aadiendo a su definicin


la nica prohibicin importante que contiene la licencia deseable: Est prohibido al
destinatario de un programa libre restringir la libertad de explotacin de los programas
derivados creados por l. Esta prohibicin es tan importante que se dedica el apartado
siguiente slo a ella. Tiene incluso nombre propio.

Copyleft o prohibicin de aadir restricciones sobre los


programas derivados de un programa libre
La esencia jurdica del software libre se encuentra en la libre explotacin de los
programas por los usuarios, sin discriminacin. A su vez, el autor de un programa
derivado tiene el derecho exclusivo de autorizar o prohibir la explotacin de su obra.
Pero el programa derivado existe y es legtimo porque la licencia del programa original
facilita su creacin, porque es libre. Y como es libre, exige la persistencia de la
libertad de uso y explotacin sobre los programas derivados. De haber resistido las
universidades en las ltimas dcadas sus carencias financieras de otra guisa, y no
aprovechando a toda costa el modelo de patentes, tal vez no hubiera sido necesario
tener que recordar semejantes afirmaciones. Pero ha sido necesario. El recordatorio de

Pgina 238 de 328 Introduccin a Linux


la existencia de libertades fundamentales, constitucionalmente garantizadas, ha tomado
la forma de una clusula prohibitiva, la clusula copyleft.

El mejor ejemplo de clusula copyleft es, de nuevo, la GNU-General Public License, o


simplemente GPL, publicada por la Free Software Foundation. En realidad la clusula
se halla dividida en tres apartados, nmeros 4, 6 y 10 de la versin 2 de 1991.

Las modificaciones sobre la licencia original pueden ser irrelevantes (correcciones


gramaticales, de ordenacin, inclusin de asuntos ajenos al derecho de autor). El
copyleft se ocupa slo de las modificaciones relevantes, que afectan a los trminos
de la explotacin del programa. Pueden a su vez ser de dos tipos: las que hacen
la explotacin ms libre (difciles de imaginar) y las que la restringen, por ejemplo
cerrando el software, licencindolo slo para uso no comercial, impidiendo su
modificacin, copia o redistribucin. De stas s hay numerosos ejemplos. Son las del
segundo tipo las modificaciones prohibidas por el copyleft. La LesserGPL permite una
excepcin "estratgica" , para las bibliotecas y otros elementos, que no podemos tratar
aqu, ni es para nuestro estudio demasiado importante.

Persistencia de la libertad del software

El copyleft pretende justamente la transmisin de los efectos de la licencia del


programa originario a las licencias de los programas derivados, como cualquier licencia,
aunque no se trata slo de eso: Requiere seriamente la persistencia del carcter libre
del software libre modificado y (re)distribuido. El copyleft preserva el carcter de sl
prohibiendo que de un programa libre se obtenga otro no libre o que se redistribuya con
restricciones adicionales a las libertades de los destinatarios.

El copyleft no afecta directamente a los derechos del autor del programa originario,
pero s a los del autor del programa derivado en el momento de su redistribucin.
Cmo es esto posible? Porque el segundo acept la licencia del primero. Copyleft
no es lo contrario de copyright. El copyleft contiene lo que tcnicamente se conoce en
Derecho como "condicin resolutoria" [otros preferirn hablar de "modo" , pero esto
apenas tiene importancia]. Se trata de un suceso (condicin) que, de darse, produce
determinado efecto en los derechos. El suceso en nuestro caso es la infraccin de una
licencia, que por tanto queda desactivada (resuelta). La condicin resolutoria implcita
en el copyleft se produce al aadirse restricciones a la libre explotacin del programa
derivado sobre las que figuraban en la licencia del programa original.

La clusula copyleft la impone el autor de la obra original en uso de sus facultades


de copyright, no en contra de tales facultades, que ya hemos demostrado no quedan
afectadas por ello. Y la aceptacin por el destinatario de la licencia con clusula
copyleft supone que si vulnera la clusula, la licencia deja de ampararle a l y al

Plataforma de Teleformacin de IFES Pgina 239 de 328


programa derivado que redistribuya, que pasa a ser automticamente ilegtimo. Lo
mismo que en cualquier explotacin de otras obras intelectuales distintas del software.

Estructura de la clusula copyleft

El copyleft es fcil de entender, se condensa en una prohibicin. Pero lo cierto es que


se encuentra formada por varios elementos:

1. Una sujecin: No cabe explotacin del programa sino en los mismos


trminos copyleft. Cualquier explotacin en trminos diferentes no queda
amparada por la licencia. Esto es un requerimiento general en casi cualquier
contrato de cesin de derechos. La explotacin indebida por alguien no
afecta a todos los dems que s ajusten el uso del programa copyleft a sus
trminos.
2. Una obligacin: Quien redistribuya el programa copyleft u otros derivados
de l, ha de poner ipso facto a disposicin del receptor una licencia copyleft
equivalente, sin restricciones adicionales. Como aclara la GPL (cl. 6),
el licenciatario original, ahora licenciante del programa derivado, no es
responsable del incumplimiento de la licencia original por terceras personas.
Pero s es responsable de ajustar la redistribucin a los trminos copyleft.
3. Una carga: Si se desea incorporar partes del programa copyleft a otros
programas libres que tengan condiciones de distribucin distintas, debe
obtenerse permiso del autor de aqul. Es decir, la incorporacin es posible
pero su legitimidad no es automtica, depende de que en la transmisin
de derechos se preserven las condiciones que hacen libre al programa
incorporado, y se promueva o fomente el uso compartido y la reutilizacin del
software en general.

La clasula copyleft se complementa con una aclaracin y una excepcin, ambas de


poca importancia en el fondo:

Integridad del copyleft en caso de impedimento forzoso a la libre


distribucin (cl. 7 GPL): No puede redistribuirse un programa copyleft si,
por impedimento forzoso (decisin judicial, vnculo con patentes, etc), la
redistribucin no va a poder ser copyleft.
Posibilidad de limitaciones geogrficas a la distribucin libre (cl. 8 GPL):
Normalmente por motivos de vinculacin con patentes o interfaces bajo
copyright, pero siempre que se incluyan en la licencia indicaciones al
respecto, claras y prominentes.

Y esta es la construccin jurdica, tomada de la FSF aunque podra servir cualquier


otra. Ha sustentado, desde el Derecho y sin litigios judiciales, la realizacin de sistemas
como GNU, del ncleo Linux, de colectivos como Debian y de innumerables foros; ha

Pgina 240 de 328 Introduccin a Linux


estimulado la formacin de empresas, proyectos editoriales y docentes; la aparicin de
cuerpos orgnicos de software libre en distribuciones multiformes... No son sus nicos
frutos, como se ver en el apartado 5.

Notas finales, un poco fuera de lugar

El copyleft, mediante un dispositivo jurdico impecable, da y asegura la libertad,


protege al autor favoreciendo la explotacin de su programa, incluso por s mismo si
lo desea, e impide en fin que nadie, salvo eventualmente l mismo y con dificultades,
tome demasiado control en el desarrollo. Es un artilugio equivalente, salvando
ciertas distancias, a la divisin de poderes del Derecho constitucional (LOCKE,
MONTESQUIEU y dems). El control por el explotador del programa nunca podr ser
absoluto, pero el de los dems usuarios y desarrolladores tampoco. Y el programa con
ms distribucin ser necesariamente el mejor posible, en otro caso ser corregido
rpidamente. Etc.

Esto es tericamente cierto, pero la realidad no se ajusta exactamente a esta


descripcin. Por qu? Porque la rentabilidad financiera del copyleft slo se manifiesta
si alcanza a cubrir una rama de desarrollo mnima explotable, sea un solo programa
o una plataforma completa. Si no es el caso, no deja por ello de ser rentable, pero no
necesariamente en trminos financieros, de generacin de ingresos, de inversin y
crecimiento. Hay otras rentabilidades buscadas por el copyleft, prioritarias en realidad.
Hay economistas que pueden demostrar si es o no cierto lo anterior, al cabo slo una
conjetura.

Evidentemente no es cierto que el copyleft haga a un programa menos libre porque


"limita la libertad del autor del software derivado" . Esta es una apreciacin incorrecta.
Por una parte, el copyleft preserva el carcter libre del software sin afectar en nada a
la esencia del copyright (s por supuesto al ejercicio de determinadas facultades del
copyright, como cualquier contrato de cesin de derechos de autor). Segundo, entre
la libertad de un nmero determinado de usuarios que desean apropiarse del software
derivado y la del nmero indeterminado de usuarios que no tienen tal intencin,
el copyleft opta por stos, pero no exactamente quitando libertad a aqullos, no
restringindoles su libertad de eleccin (lo que s se produce mediante determinadas
prcticas comerciales en perjuicio de los usuarios) sino hasta despus de aceptar la
licencia, que por tanto han de respetar. Para todos los dems usuarios, los que no
desean vulnerar la libertad de distribucin, el copyleft simplemente no les supone ni
siquiera una prohibicin, porque la mayora nunca agotamos toda la libertad que se
nos ofrece. Si el copyleft es una camisa de fuerza, al menos se la pone uno mismo.
Pero ms bien el copyleft es un pacto de no agresin, y esto es saludable, no vrico.
Al contrario, hay pautas comerciales que s pueden resultar vricas, lo son de hecho.

Plataforma de Teleformacin de IFES Pgina 241 de 328


Pero es tan fcil hablar en trminos tales (contagio general-monopolio, etc) como poco
seguro.

El copyleft, o ms bien las manifestaciones de su potencia, son una materia enorme,


que excede lo jurdico con creces. Se ha pretendido con lo anterior dar breve cuenta
de ello. Quedan muchas cuestiones por tratar y explicar, como las dobles licencias,
la remota posibilidad de un programa copyleft que entra efectivamente en dominio
pblico, los problemas especficos de los paquetes, distribuciones, medios de
almacenamiento y canales de distribucin. Confiamos en una versin ulterior de este
artculo para tratarlos apropiadamente.

No obstante la claridad de su construccin jurdica, y por razones que en este artculo


no podemos tratar sino muy por encima, a los hombres de negocios el sistema copyleft
no les gustaba. Teman su aspecto comunista, anarquista o libertario. En esencia,
no les gustaba la clusula que impeda apropiarse, al no restringir la libertad de
los dems, del trabajo realizado a costa de su dinero. Tambin se encontraban los
programadores que sufran un temor anlogo respecto del futuro fruto de su esfuerzo.
Este temor provena de un malentendido, inexcusable pero persistente, acerca de
cmo rentabilizar los proyectos copyleft, normalmente origen de riqueza (fondo) si
son buenos claro est; pero no necesariamente generadores de dinero (flujo) si la
explotacin es defectuosa. En el software no copyleft no pasa exactamente lo mismo,
porque los costes de desarrollo y mantenimiento no garantizan siquiera lo primero. Por
supuesto, tambin el software no libre puede ser objeto de explotacin defectuosa.
El caso es que en el movimiento del software libre se produce una bifurcacin en
1997-1998. Para nosotros es "la" bifurcacin, porque afect a las definiciones y a las
licencias y su clasificacin.

Autorizacin de restricciones adicionales: Open Source


La distribucin de software, y en particular la re-distribucin de software modificado,
es el punto crtico del sl. La Iniciativa Open Source (OSI) surge de las Directrices
Debian de Software Libre (DFSG), adaptadas en 1997 sin cambios sustanciales a unos
trminos ms generales bajo el rtulo que se usa actualmente: Definicin de Fuente
Abierta (Open Source Definition - OSD). No se trata de una licencia, ni siquiera de un
modelo de licencia, sino de directrices para la clasificacin y adopcin de licencias en
productos de software (programas, paquetes y distribuciones).

La definicin de fuente abierta no es del todo equivalente a la de software libre. Las


diferencias esenciales son dos: Una fundamental, pues la OSD entiende por libertad
del usuario una situacin jurdica menos amplia que el sl, segn la definicin de ste
hecha por la FSF, que es la que estamos utilizando en este artculo por su notable rigor

Pgina 242 de 328 Introduccin a Linux


y ajuste a las exigencias constitucionales y legales espaolas. La otra diferencia es
instrumental, est ubicada en la clusula de persistencia del sl, que en la OSD no es ya
necesariamente software libre tras la distribucin, con o sin modificaciones del software
originario. Se permite aadir determinadas restricciones a los trminos de distribucin
de originales y redistribucin de derivados. Esto es una simplificacin compacta que
debe explicarse y matizarse.

El punto de vista de la FSF no es slo econmico, que no se excluye de todos modos,


sino ultrajurdico pues comprende tambin postulados ticos y por lo tanto filosficos.
El punto de vista de la OSI, que reconoce inspirado por la FSF, es sin embargo slo
econmico (disminucin de precios, apertura de nuevos mercados). Se trataba de
atraer a los hombres de negocios y a importantes sectores de desarrolladores al
movimiento del sl, lo que se consigui en parte. Pero no se logr mediante la atraccin
de aqullos al mbito del sl, sino eliminando la necesidad de persistencia del sl, vale
decir llevando a los usuarios al coto de los temerosos. El copyleft qued eliminado de la
definicin deseable de sl, se volvi a las definiciones ms antiguas, perfeccionadas es
cierto, de lo que poda entenderse por software libre, expresin que adems se cambi
por "fuente abierta" , menos expresiva en ingls y todava menos en castellano. Para
el Derecho, la OSD no impide restringir la libertad del usuario, facilita la apropiacin del
software derivado, aunque su intencin primordial sea asegurar al autor la posibilidad
de apropiacin exclusiva del fruto principal del esfuerzo invertido, sobre todo en los
desarrollos ms originales, con marca, etc.

Estructura de la OSD

Para examinar detalladamente la OSD bastara con tratar cuatro de los diez apartados
que tiene la versin 1.0, ya que el ltimo es tan slo es un ejemplo, sin valor normativo,
y los cinco restantes tratan cuestiones que han quedado ya examinadas en apartados
anteriores. Pero slo daremos unas breves notas.

Interesan los apartados que eliminan la necesidad del copyleft y, en general, la


persistencia de la libre explotacin, que son los nmeros 3, 4, 8 y 9. El nmero
3 permite cambiar los trminos de sl del programa originario a trminos no libres
en el programa derivado (tipo BSD), y se justifica -errneamente- en la necesidad
de evitar al autor del programa originario el riesgo que supone a su reputacin la
derivacin de un programa con cdigo muy defectuoso que se pudiera atribuir no al
autor derivado, sino a l, al autor del programa original. Lo mismo para evitar caballos
de troya, prohibiciones locales sobre transferencia tecnolgica, como en criptografa,
etc. El apartado 4 exige la integridad del cdigo original (algo legtimo) con medidas
innecesariamente restrictivas. El punto 8 sirve para separar claramente un programa
libre de una coleccin no libre de software. El programa libre lo seguir siendo en
cuaquier caso, incluso si despus se desagrega de la coleccin. Y el 9 seala que la

Plataforma de Teleformacin de IFES Pgina 243 de 328


parte no transmite su carcter al todo. Esto supone la estanqueidad de las licencias.
La eficacia de la licencia de un programa no depender de las de los otros que se
encuentren en el mismo medio o soporte.

El argumento de la posible mayor vulnerabilidad del sl frente al software no libre, por


ejemplo ante caballos de troya, simplemente no tiene que ver con las condiciones
jurdicas de modificacin y distribucin del software, y naturalmente no es tratado aqu.
El software no es vulnerable en ese sentido por motivo del tipo de licencia que lleva
aparejada. S es necesario, en ciertos mbitos de distribucin y ante cierto tipo de
modificaciones (es decir, no siempre) un seguimiento adecuado de las versiones y de
su autora. Pero estas exigencias no se atienden alterando el sistema copyleft, basta
el sistema de marcas, que nada tiene que ver con los derechos de autor; y un buen
sistema de control de versiones, se supone. No podemos tratar estos asuntos ahora, y
tal vez estemos en un error. Pero hay indicios de que estos argumentos contra el sl y el
copyleft son invlidos.

Para disipar los temores de los hombres de negocios, o quienquiera que vea tras
el copyleft al gran satn, es aconsejable muchas veces el uso adecuado de la Ley
de Marcas. Quien desee apropiarse de sl para mantener la autora sin riesgos de
confusin har mejor en registrar una marca, crendose as versiones oficiales de fcil
control y gestin. Esto es lo que se ha hecho con Linux -que es GPL- y tantos otros
casos. Todo ello sin tocar la licencia libre, incluso manteniendo la clusula copyleft.

Clasificaciones de las licencias


No vamos a reproducir las clasificaciones ms importantes, que puede encontrar
el lector en www.gnu.org/philosophy/categories.html y en el artculo de B. Perens
en "Open Sources..." citado al final, Apndice C. Aqu nos basta retener tres
clasificaciones muy generales pero importantes:

1. La divisin bsica con la que se est de acuerdo, aunque no completamente,


entre software libre-software no libre. Esperamos haber convencido al lector
de que el trmino open source-fuente abierta es menos riguroso.
2. La divisin GNU aade dos criterios ms a su clasificacin de licencias:
"grado" de copyleft y compatibilidad con el sistema GNU, que aunque son de
inters no podemos tratar ahora.
3. La compatibilidad Open Source se basa en criterios ms simples que los
anteriores de GNU, stos ms rigurosos en todos los sentidos.

Confiamos en versiones ulteriores de estas notas para desarrollar todo esto como
merece.

Pgina 244 de 328 Introduccin a Linux


Infraccin de una licencia de software libre
Para este asunto se recomienda consultar www.gnu.org/licenses/gpl-violation.html. All
se ofrece sintticamente el camino para reaccionar ante lo que uno cree que es una
infraccin de las condiciones de explotacin y uso del software libre. En resumen, se
trata de comprobar la infraccin, documentarla, e informar al titular del copyright, nico
legitimado en apariencia para actuar contra el infractor. La FSF presta asistencia para
reaccionar contra las infracciones de la GPL.

Reaccin por quien no es titular del copyright


En este subapartado presentamos una conjetura, probablemente vlida, pero de la que
desconocemos aplicaciones prcticas: Es muy probable que en Espaa dispongamos
actualmente de una o dos frmulas de reaccin adicionales frente a un atentado contra
una licencia de sl, vas que GNU-Espaa extraamente no menciona, y que trataremos
de demostrar sumariamente.

Es cierto que, bajo una licencia de software libre con copyleft, estrictamente hablando
slo el titular del copyright (que no es necesariamente el autor!) tiene accin jurdica
contra la infraccin de su derecho, manifestado en la licencia violada. Pero tambin
lo es que los usuarios del programa copyleft cuya licencia alguien ha infringido tienen
inters legtimo en que la infraccin se rectifique. Los usuarios pueden incluso haberse
organizado, por ejemplo en un colectivo de desarrolladores o simplemente en una
asociacin de consumidores. Pues bien, la suma [inters legtimo + organizacin de un
grupo de consumidores] abre claramente la va judicial tambin para quienes no son
autores, va no basada en el copyright directamente sino indirectamente, a travs de
la licencia. De hecho, debera bastar el inters legtimo esgrimido por un solo usuario,
pero esto puede resultar a menudo impracticable y es de ms difcil digestin por los
jueces.

Esta va est fundamentada muy sencillamente en el ensamblaje de varios preceptos


de la Constitucin espaola y algunos ms de otras leyes ordinarias. En sntesis,
se trata de la proteccin judicial de un genuino inters legitimo, para el que los
grupos, y singularmente las Asociaciones de Consumidores, se dice que tienen
"legitimacin activa" . Puede llegar a obtenerse incluso proteccin administrativa
(oficinas municipales de consumo, p. ej.). No nos extenderemos aqu, slo citaremos
los artculos, que el lector puede consultar por su cuenta: arts. 9.2 y 24.1 CE, 2.1.e y .f
LCU y 6.7 LEC.

Plataforma de Teleformacin de IFES Pgina 245 de 328


Con esto ha debido de quedar tratado lo ms importante. Para completar el cuadro slo
resta tratar brevemente dos asuntos complementarios y de distinto inters.

Expansin del modelo de las licencias de software libre


Este apartado se incluye como ilustracin del potencial de la construccin jurdica
contenida en las licencias de software libre, y no pretende ni de lejos dar cuenta al
mismo nivel que en los apartados anteriores de los modelos que se citan.

La Licencia de Documentacin Libre. Otras licencias similares

No vamos a tratar de la licencia de documentacin libre, GNU-FDL (GFDL o


simplemente para nosotros FDL), propuesta por la FSF para los manuales de uso,
documentacin tcnica y otros textos. El lector sabr ahora leerla y comprender
su significado por s solo, es similar a la GPL. Estrictamente hablando, en Derecho
espaol no es necesaria, pues la documentacin de un programa se protege con el
mismo copyright que el del programa mismo. Pero en la prctica es muy til, por dos
razones: En primer lugar permite modular las exigencias de una licencia copyleft,
pensada para el software, a las de los textos escritos, por ejemplo preservando algunos
fragmentos, normalmente todo el contenido no tcnico, clusulas externas, etc, de
la caracterstica autorizacin de libre explotacin. Es la licencia apropiada para la
documentacin del software, pero no slo. Efectivamente, y en segundo lugar, una
licencia como la FDL permite, sin merma de los derechos de autor, la formacin de
proyectos colectivos de documentacin libre, normalmente tcnicos y cientficos. No es
apropiada para libros de poemas y memorias, al menos no se pens con esa finalidad.
En general, la documentacin FDL debe permitir la libre modificacin del contenido
tcnico, no del valorativo-personal.

Para la FDL, en la documentacin libre debe distinguirse claramente los siguientes


textos de un manual o trabajo tcnico cualquiera:

Textos de Cubierta, que son los de Portada y Contraportada.


Pgina de Ttulo, que incluye la pgina de ttulo misma y adems las
necesarias para contener legiblemente cuanto la FDL requiere. En los libros
con formatos carentes de esta pgina, se llama Pgina de Ttulo al texto
inmediato a la aparicin ms prominente del ttulo de la obra, que precede al
comienzo del Cuerpo del Texto.
Cuerpo del Texto.
Secciones Secundarias, para materias como notas editoriales, advertencias
legales, valorativas, etc, sin conexin directa con el Cuerpo del Texto.
Dentro de ellas se encuentran las Secciones Invariantes, inalterables en las
modificaciones.

Pgina 246 de 328 Introduccin a Linux


Puede, incluso a veces debe, incluirse secciones como Historia,
Reconocimientos y Dedicatorias. Obligatoriamente han de quitarse en
las modificaciones las aprobaciones (endorsements), homologaciones o
similares que recaigan sobre el texto original, pues son exclusivos de ste.

La advertencia de copyright y el aviso de licencia FDL deben contener las siguientes


indicaciones: a) cules son los Textos de Cubierta, si los hay, ya sean de portada o
contraportada; y b) cules son las Secciones Invariantes. No puede exponerse ahora
ni siquiera los aspectos ms relevantes de este singular sistema de liberacin de
facultades de propiedad intelectual.

Tal vez a los tericos del sl les sorprenda que el ejercicio del Derecho sea una
profesin abierta, en el sentido de que los profesionales intercambiamos libremente
nuestros conocimientos y argumentaciones jurdicas (no los derechos sobre nuestros
libros!). Es un hecho normal, indiscutido, el que unos a otros nos fusilemos nuestros
textos, desde siempre jams, con ciertos lmites, claro est. La FDL y otras licencias
parecidas tal vez completen el rgimen de libertad intelectual de que disfrutamos los
juristas, propiciando p. ej. textos universitarios libres, de los que tan necesitados estn
los estudiantes, los profesores y los profesionales.

El examen de la documentacin libre requerira un trabajo por s solo, pero en cuanto al


contenido jurdico de las licencias lo esencial ya ha quedado expuesto antes. Adems
de la FDL se puede encontrar documentacin amparada en licencias libres como la
FreeBSD Documentation Lic., la Apple's Common Documentation Lic., la algo menos
estricta Open Publication Lic., que puede o no aplicarse "copylefting" , y algunas ms.
Tambin se dispone de la Open Science Lic., licencia libre y copyleft, redactada para
dar esa cobertura a datos en general, no slo software.

Advirtase que otra idea surgida en el seno de Debian, Open Hardware, no tiene
directamente que ver con las licencias de software. Consiste en un programa de
certificacin, exactamente de calificacin de hardware segn ciertas especificaciones,
diseado para verificar que una configuracin de mquina es apta para un sistema
Linux o FreeBSD. Incluye la promocin de un certificado de la verificacin, llamado
"certificado open hardware" para uso por los vendedores y consumidores.

Software no libre
Comprende todo el software que no es libre. Es un gnero, con muchas especies.

Primero tenemos el software semilibre, cuya licencia contiene autorizacin para la libre
copia, modificacin y distribucin, pero siempre que no tengan carcter comercial. Esta
es una restriccin muy importante sobre todo a la distribucin, que desnaturaliza la

Plataforma de Teleformacin de IFES Pgina 247 de 328


finalidad del sl, por eso no lo calificamos como libre. Por ejemplo, el software semilibre
no permite su incorporacin a paquetes copyleft. La restriccin de la autorizacin a la
explotacin no comercial aade muy poco a la libertad de uso, o ms bien restringe la
posibilidad de ser utilizado. Parte de una idea errnea o de una valoracin incorrecta
del nimo de lucro. La primera versin de la GPL encajaba en esta definicin, pero la
versin 2 (1991) retir la restriccin, por innecesaria.

El segundo grupo de software no libre es el "propietario" . Esta denominacin es


inexacta por ms de un motivo. Con ella quiere denominarse lo que la FSF llama
"software no libre que no es semilibre" . Podra decirse entonces que es software
aprisionado, enjaulado, inaccesible. Desde luego est lleno de limitaciones al libre
uso, es intransferible, incopiable sin convertirse uno en infractor, inmodificable (no
mejorable por los usuarios directamente) y de ningn modo redistribuble. En este
artculo preferimos denominarlo software "cerrado" . As entendidos, estos programas
ni siquiera forman parte de la mquina. No seran ni contendran piezas que uno puede
examinar, reparar, o sustituir si son defectuosas. Pero la realidad es que el software
s forma parte de la mquina, y no hay razn para que quien puede reparar o repintar
o recauchutar un automvil utilitario no pueda hacerlo en un programa utilitario, sobre
todo si es un sistema operativo o un compilador.

Hay otras subespecies de software no libre, las repasamos en los apartados siguientes,
apuntando rpidamente las restricciones que imponen a las libertades bsicas de los
usuarios.

En este artculo no tratamos el pseudotipo "software comercial" , categora para


nosotros intil porque no es puesta en cuestin por el sl; aunque s por el software
semilibre, que no admite el uso comercial de los programas licenciados. Tampoco
podemos tratar fenmenos tan extraos como MSAgent, una especie de "software libre
revocable" que no es en modo alguno software libre.

Restricciones de uso
Lo que califica a un programa como semilibre es que su uso y explotacin quedan
limitados a un destino no comercial. Esta restriccin no resulta aceptable, ya lo hemos
dicho, y no la trataremos ms.

Tambin el software cerrado impone graves restricciones de uso del software. Se


prefiere en este artculo llamar al software propietario "software cerrado" no por afn
de neologismo sino para ilustrar mejor que su uso y explotacin no son libres, adems
de por correccin idiomtica y jurdica. Sobre l no es preciso decir mucho ms de
cuanto ha quedado expuesto en los apartados anteriores, y quien desee informacin

Pgina 248 de 328 Introduccin a Linux


adicional har bien en acudir a un manual de propiedad intelectual sobre programas de
ordenador, cosa que este artculo no pretende ni puede ser.

No tiene sentido examinar las limitaciones impuestas en las licencias estndar de


software cerrado, ya se han citado algunas en apartados anteriores, como la frmula
de aceptacin de licencia consistente en romper los precintos del paquete de CDs, es
decir, antes de toda posibilidad de uso y comprobacin, contra el art. 10bis LCU. En
el software cerrado simplemente la licencia no tiene otra finalidad que la de plegarse
de modo obsesivo a las facultades del copyright (de la LPI en Espaa), prescindiendo
de cualquier consideracin sobre las libertades constitucionalmente garantizadas de
los usuarios de software, sin otra finalidad que la explotacin exclusiva, normalmente
no por su autor sino por un titular derivado, y lesionando (sin advertirlo, claro est) sus
propios intereses de mercadotecnia y desarrollo.

El uso queda prohibido sin licencia aceptada, imposibilitndose la instalacin,


restringindola a monopuesto, o necesitndose una reactivacin de la licencia si se
supera determinado nmero de componentes del hardware (!). No pueden evitar estas
licencias el que se apliquen las normas imperativas que hemos visto en el apartado
2.1.3, pero quedan restringidas al mximo, de hecho se imposibilitan porque las
modificaciones necesarias no son factibles sin el cdigo fuente, nunca disponible.

Con lo visto hasta ahora, queda claro que la subcategora "shareware" se refiere
a programas cerrados que restringen el uso si no se paga una cantidad de dinero
adicional pasado un perodo de prueba. Normalmente son programas incompletos,
mejor dicho mutilados.

Limitaciones a la libre reproduccin y copia


Estas actividades no son autorizadas en el softawre cerrado, e incluso pueden
impedirse automticamente. Las copias de seguridad se restringen en lo posible. La
copia privada es calificada incorrectamente de piratera en varias licencias que se ha
podido consultar.

Lmites a libre transformacin y modificacin


En el software cerrado y sus variantes la transformacin est prohibida, y ni siquiera
es factible, pues el cdigo fuente nunca se acompaa en la distribucin. Los
componentes del software no pueden separarse legtimamente. Caso de hacerse
alguna transformacin legtima, si la licencia se revoca los archivos fuentes derivados

Plataforma de Teleformacin de IFES Pgina 249 de 328


han de destruirse (!). El shareware tampoco es modificable, pues casi siempre es
cerrado y adems no acompaa las fuentes.

El denominado "freeware" es normalmente software cerrado que, aunque puede


redistribuirse con muchos lmites -no libremente- no puede sin embargo ser modificado,
entre otras razones porque el programa fuente no est disponible. No es en modo
alguno software libre contra lo que indica su (impropio) nombre.

Lmites a la libre distribucin


En el software cerrado la distribucin y la redistribucin estn sencilla y rotundamente
prohibidas, salvo en los casos del llamado freeware. Esto incluye la prohibicin de
alquiler y prstamo.

Conclusin
El matemtico David Hilbert, refirindose a la teora de conjuntos creada por Georg
Cantor, objeto del desprecio de otros matemticos, deca "nadie podr expulsarnos del
paraso que Cantor ha creado para nosotros" . Desde los ingenieros y programadores
hasta los usuarios menos avezados, pasando por distribuidores, empresas comerciales
y universidades, formamos legin quienes hacemos correr sobre nuestras mquinas
programas libres, hackeados y compilados por nosotros mismos conforme a nuestras
necesidades y gustos, que nos prestamos y copiamos libremente, con la destreza y
seguridad que permiten el mejor banco de pruebas posible, una variedad inagotable
de soluciones, siempre en renovacin, y una documentacin de calidad superior a
la estndar de los programas no libres. El software libre, sobre todo si es copyleft,
mantiene e impulsa el entusiasmo universal en la computacin, especie en peligro en
las dos ltimas dcadas, e incluso comienza a servir de referencia para otros mbitos
de la libertad intelectual.

No es seguro que esta apreciacin de la realidad sea completa, pero es la de mucha


gente. Adems, es el objeto de una polmica contempornea trascendental, que no se
trata en este artculo sino muy de pasada. Las piezas puestas en juego por el software
libre son muchas y poderosas. Es cierto que el software libre trata de la libertad, y que
ste no es un asunto slo comercial o industrial. Simplemente, es una asunto muy
grande, de enjundia, origen o final de conflictos a veces muy serios.

En fin, tal vez la cosa est a estas alturas algo ms clara y podamos parafrasear a
Hilbert tranquilamente, pero sin bajar la guardia: Nadie podr expulsarnos del paraso
que la GNU-GPL ha creado para nosotros.

Pgina 250 de 328 Introduccin a Linux


Apndices
Apndice A - Abreviaturas utilizadas
CC - Cdigo civil
CE - Constitucin espaola
CP - Cdigo penal
Disp. Ad. - Disposicin adicional
Disp. Trans. - Disposicin transitoria
FSF - Free Software Foundation
GNU-GPL - Licencia Pblica General del proyecto GNU - GNU's Not Unix
LCU - Ley de consumidores y usuarios
LEC - Ley de enjuiciamiento civil
LPI - Ley de propiedad intelectual
MEDC - Ministerio de Educacin, Cultura y Deporte
OSD - Definicin de Fuente Abierta, de la Open Source Initiative
OSI - Open Source Initiative
RD - Real Decreto
RTV - Radiotelevisin
sl - Software libre
UE - Unin Europea

Apndice B - Leyes, reglamentos, tratados


internacionales
Disposiciones espaolas:

La LPI vigente est recogida en el texto refundido de 1996, aprobado por


Real Decreto Legislativo 1/1996 de 12 de abril, publicado en el BOE nm.
97 de 22 de abril. Las ltimas reformas se produjeron en marzo de 1998 y
enero de 2000. Est en elaboracin una nueva modificacin, por motivo de
la Directiva 2001/29/CE del Parlamento y Consejo, 22 de mayo, publicada
el 22 de junio 2001, sobre armonizacin de determinados aspectos de los
derechos de autor y derechos afines en la sociedad de la informacin.
Ley orgnica, de proteccin al honor, a la intimidad personal y familiar y a la
propia imagen, 1/1982 de 5 de mayo.
Ley general para la defensa de los consumidores y usuarios, 26/1984 de 19
de julio.
Ley de patentes, 11/1986 de 20 de marzo.

Plataforma de Teleformacin de IFES Pgina 251 de 328


Ley de proteccin de las topografas de los semiconductores, 11/1988 de 3
de mayo.
Ley de marcas, 17/2001 de 7 de diciembre.
El Cdigo penal espaol fue aprobado por la Ley Orgnica 10/1995 de 23 de
noviembre, BOE 281 de 24 de noviembre.
Ley de enjuiciamiento civil, 1/2000 de 7 de enero.
Real Decreto 1584/1991 de 18 de octubre, que aprueba el Reglamento del
Registro General de la Propiedad Intelectual. Es el que viene aplicndose
hasta que se encuentre totalmente en funcionamiento el sistema de registro
diseado por el Real Decreto 733/1993 de 14 de mayo, que aprueba el
nuevo Reglamento del Registro General de la Propiedad Intelectual.
RD 114/2000 de 28 de enero (BOE 33 de 8 de febrero), de la Comisin
Interministerial para actuar contra las actividades vulneradoras de los
derechos de propiedad intelectual e industrial (Comisin antipirateo).
Reglamento del Consejo de la UE que prohibe la comercializacin de
mercancas piratas y la intervencin de las aduanas para impedirla, Rgl.(CE)
241/1999 de 25 de enero, DOCE 2.2.1999 L 27.

Convenios internacionales:

Convenio de 14 de julio de 1967 que establece la Organizacin Mundial de


la Propiedad Intelectual.
Convenio de Berna de 9 de septiembre de 1886 para la proteccin de las
obras literarias y artsticas, revisado en Pars el 24 de julio de 1971.
Convencin Universal de Ginebra de 6 de septiembre de 1952 sobre
Derecho de Autor, revisada en Pars el 24 de julio de 1971.

La Organizacin Mundial de la Propiedad Intelectual (OMPI) con sede en Ginebra, y


la Organizacin Mundial del Comercio (OMC) son foros generadores de importantes
documentos y acuerdos internacionales en materia de derechos de propiedad
intelectual.

Apndice C - Referencias
Se incluye slo una breve nota de los materiales utilizados.

Un libro introductorio, que no trata a fondo las cuestiones jurdicas pero s el tema
general del software libre, WAYNER, P., "La ofensiva del software libre" , ed. Granica,
Barcelona, 2001.

Los sitios web en los que puede encontrarse informacin sobre los asuntos tratados
en este artculo son naturalmente innumerables. Un buen libro en lnea se encuentra

Pgina 252 de 328 Introduccin a Linux


en www.oreilly.com/opensources/, "Open Sources: Voices from the open source
revolution" , con artculos de E. S. Raymond, M. K. McKusick, S. Bradner, R. Stallman,
M. Tiemann, P. Vixie, L. Torvalds, R. Young, L. Wall, B. Behlendorf, B. Perens, T.
O'Reilly, y J. Hamerly y T. Paquin con S. Walton, ed. O'Reilly Ass., Inc., 2000.

Para conocer los fundamentos del software libre, y no slo los jurdicos, es evidente
que el directorio recomendado est en www.gnu.org/philosophy/. La mejor aplicacin
prctica de la teora del proyecto GNU est basada en www.debian.org/social_contract.
Un buen lugar para empezar a leer sobre programas libres y sus problemas en cuanto
a licencias es www.opensource.org

En castellano puede consultarse http://gsyc.escet.urjc.es/sobre/, grupo SoBre de


software libre.

Una lectura nueva y prctica se encuentra en el proyecto (proposicin diramos en


Espaa) de ley sobre uso del software libre en la Administracin pblica, remitido al
Congreso peruano el 9 de abril de 2002 por los congresistas E.VILLANUEVA NEZ y
J.RODRICH ACKERMAN, http://www.gnu.org.pe/rescon.html.

Artculos
Lista por temas
Lista por autor
Licencia GFDL
Licencia GPL

La Espiral
Objectivo/ Noticias
Recetas
Contribuir
Historia
Repositorio CVS
Contacto

v. 0.92, 16 de abril de 2002


Copyright 2001, 2002, 2003, 2004, La Espiral, debian-laespiral@lists.debian.org
Permitida la cpia y distribucin textual, integral, siempre y cuando se mantenga este
aviso.

Plataforma de Teleformacin de IFES Pgina 253 de 328


Internet y herramientas de red

Navegadores de la World Wide Web (WWW)


Adaptado de:
http://www.gulic.org/cila/libro
, un documento libre del Grupo de usuarios Gulic

Durante muchos aos Netscape Communicator 4 fue el nico navegador


multiplataforma real, dando cobertura a muchos de los distintos UNIX comerciales
existentes. Puesto que Linux no poda ser menos, casi desde que Linux tiene interfaz
grfico ha existido una versin del navegador de Netscape para este sistema operativo.

Netscape Communicator 4 proporciona soporte para navegacin de pginas web


con JavaScript y Flash 5, y permite visualizar documentos PDF dentro del navegador
(mediante un plugin para el Adobe Acrobat Reader). Tambin nos permite gestionar el
correo electrnico y componer pginas web. Los Linuxeros siempre hemos considerado
que el navegador de Netscape consuma demasiados recursos en Linux, adems de
tener bastantes problemas de estabilidad. Debido a ste y a otros factores importantes,
como fueron la forma de competir con la casa Microsoft Corporation, Netscape
Communications Corporation lleg a la sana conclusin de que la mejor manera de
mantener su navegador en el mercado era liberando su cdigo fuente. As naci el
proyecto Mozilla .

Sin embargo, Mozilla sigue siendo un navegador excesivamente pesado para un


nmero importante de mquinas. Dentro de la comunidad del Software Libre, se
alzaron voces en contra de ese desperdicio de recursos, proponiendo la creacin de
navegadores alternativos. Aqu listamos algunas de las alternativas que podemos
encontrar en el rea de los navegadores web dentro del Software Libre:

Netscape Communicator: Bajo dicho nombre podemos encontrar el


navegador original de Netscape. La ltima versin es la 4.77.
Epiphany: Es un navegador que utiliza el motor de rendering Genko de
Mozilla para mostrar el contenido de la World Wide Web. Sin embargo,
puesto que utiliza las bibliotecas de GNOME y GTK es ligeramente
ms rpido que Mozilla, y se integra perfectamente con el resto de las
aplicaciones GNOME.
Konqueror: Gestor de ficheros, navegador web y visor de documentos del
KDE.
Mozilla: Es un sofisticado navegador grfico de la World Wide Web que
soporta un gran nmero de tecnologas, como por ejemplo soporte para

Pgina 254 de 328 Introduccin a Linux


HTML 4.0, CSS 2, JavaScript y Java. Adems de poder ser utilizado como
un sencillo visor de HTML. Mozilla est basado en parte del cdigo de los
navegadores Netscape Communicator y Netscape Navigator.
Mozilla Firefox: Navegador que tambin procede de fundacin Mozilla. En
los ltimos tiempos se est convirtiendo en un navegador de referencia por
su rapidez y sencillez de uso.

Bueno, seguro que en el momento de leer este apartado, habrn surgido nuevos
navegadores web dentro del mundillo del Software Libre.

Mozilla
Mozilla es probablemente el ms completo de los navegadores multiplataforma. Esto
es debido a que implementa soporte para un gran nmero de tecnologas de la World
Wide Web, y se cie rigurosamente a los estndares del W3C (nombre con el que
se conoce al World Wide Web Consortium, que es el organismo encargado de la
estandarizacin de las diferentes tecnologas presentes en la World Wide Web).

Plataforma de Teleformacin de IFES Pgina 255 de 328


Ventana del navegador web Mozilla

Para centrarnos en el manejo de Mozilla empezaremos mirando la Figura. En ella


podemos observar la clsica ventana de navegacin de Mozilla que es semejante a
la de otros muchos navegadores. A continuacin enumeramos los elementos de la
ventana de arriba a abajo y de izquierda a derecha:

1. Barra de mens
2. Barra de herramientas de navegacin
3. Barra de herramientas personales
4. Panel lateral
5. rea de visualizacin de la navegacin
6. Barra de tareas

Pgina 256 de 328 Introduccin a Linux


La visualizacin de la mayor parte de estos elementos puede activarse o desactivarse
desde el men VER -> BARRA DE HERRAMIENTAS de la barra de men del
programa.

Adicionalmente disponemos de una barra denominada barra de componentes. Dicha


barra se muestra como unos pequeos iconos a la izquierda de la barra de tareas
(parte inferior de la ventana del programa). Dicha barra nos permite lanzar de forma
sencilla y rpida algunas de las otras herramientas de Internet que acompaan al
navegador web Mozilla. Entre dichas herramientas disponemos de un editor de HTML y
de un lector de noticias y de correo electrnico.

Navegacin bsica
Para navegar por la World Wide Web basta con introducir la direccin de la mquina
o recurso al que deseamos acceder en la barra de herramientas de navegacin. La
misma barra dispone a la izquierda de botones para avanzar o retroceder a travs de
las pginas visitadas, recargar la pgina actual, o detener la descarga. A la derecha
de la barra disponemos de un botn de acceso rpido al men de impresin, con el
que podemos imprimir la pgina actual. Para simplificar el aprendizaje, si dejamos el
puntero del ratn sobre cualquiera de los botones durante unos segundos la aplicacin
nos informar de la funcin de cada uno.

Adems de las funciones bsicas la barra de herramientas de navegacin nos permite


realizar bsquedas de trminos en Internet. Para ello basta con introducir las palabras
a buscar en la propia barra y a continuacin pulsar en el botn BUSCAR. El navegador
consultar al buscador que tengamos configurado (por defecto se trata del de Netscape
Network) y nos mostrar los resultados. El buscador utilizado puede ser configurado
en EDITAR -> PREFERENCIAS... -> NAVIGATOR -> BSQUEDA EN INTERNET.
Mientras que el contenido de la propia barra de herramientas de navegacin puede
ser configurado en EDITAR -> PREFERENCIAS... -> NAVIGATOR. Nos ocuparemos
de describir el cuadro de dilogo PREFERENCIAS y las opciones de configuracin de
Mozilla ms a delante.

Plataforma de Teleformacin de IFES Pgina 257 de 328


Men del botn de retroceso de la barra de herramientas de navegacin

Algunos de los botones de la barra de herramientas de navegacin disponen de un


pequeo icono con forma de flecha en la parte inferior-derecha de los mismos. Dicho
icono suele desplegar un men con opciones adicionales. En el caso particular de los
botones de avance y retroceso dicho men nos permite elegir a que direccin, de entre
las ya visitadas, queremos avanzar o retroceder. Hay que tener en cuenta que si no
existiera el men tendramos que retroceder o avanzar por las pginas visitadas de una
en una.

Durante nuestra visita a la World Wide Web la barra de tareas suele mantenernos
informados de las acciones que realiza el navegador. Por ejemplo, nos informa de si

Pgina 258 de 328 Introduccin a Linux


estamos detenidos y de cuanto se tard en descarga la pgina actual, o de si estamos
descargando alguna pgina.

Adems, la barra de tareas dispone de una serie de iconos en la parte derecha


con el objetivo de mantenernos informados del estado de la conexin. Si dejamos
unos segundos el puntero del ratn sobre dichos iconos seremos informados de
su significado, e incluso podremos realizar alguna accin relacionada con dicha
informacin.

Trabajar sin conexin: Mientras disponemos de conexin a la red y


navegamos, Mozilla descarga las pginas que vamos visitando y las
almacena en el disco duro en lo que se denomina una cach. La existencia
de est cach es importante puesto que si visitamos varias veces una misma
direccin Mozilla no tiene necesidad de volver a repetir la descarga. En su
lugar nos proporciona directamente la pgina almacenada en la cach. En
ocasiones no disponemos de conexin a red por lo que sera deseable que
Mozilla no intentar descargarse la pginas desde la red y nos mostrara
directamente la copia en la cach. Tambin es posible que aun habiendo
conexin estemos interesados en que Mozilla no haga uso de ella. Ese
modo de trabajo que andamos buscando es el denominado trabajo sin
conexin. Existe un icono que representa dos enchufes desconectados que
nos indica que estamos en dicho modo. Si los enchufes estn conectados
significa que estamos haciendo uso de la conexin de red, es decir trabajo
con conexin. El paso de un modo de trabajo a otro se puede realizar
pulsando con el ratn sobre el icono, o seleccionando el elemento de men
ARCHIVO -> TRABAJAR SIN CONEXIN.
Cookies: En ocasiones algunos servidores de la World Wide Web requieren
que los navegadores que los acceden almacenen cierta informacin. En
muchos casos se trata de informacin sobre nuestras preferencias que
dichos servidores han recopilado, y que desean que guardemos para volver
a reclamarla cuando nos volvamos a conectar a sus pginas. Este tipo de
comportamiento puede ser un agujero de seguridad en potencia (o al menos
un problema de privacidad) por lo que Mozilla dispone de un filtro de cookies
que nos permite decidir en que servidores confiamos y en cuales no. Si
nuestro navegador ha aceptado una cookie para ser almacenada podremos
observar el icono de una galleta. Pulsando sobre la misma podremos
averiguar la informacin que contiene, ascomo configurar el filtro de cookies
frente a posibles peticiones futuras.
Seguridad: Es importante recordar que todo lo que recibimos o enviamos
desde o hacia la World Wide Web es fcilmente interceptarle. Cuando
accedemos a pginas donde la seguridad de las comunicaciones es de vital

Plataforma de Teleformacin de IFES Pgina 259 de 328


importancia dicha comunicacin se hace cifrando los datos. Si disponemos
de un icono con un candado abierto en nuestro navegador significa que todo
lo que hagamos en Internet puede ser observado por otros. Sin embargo, si
dicho candado est cerrado es porque las comunicaciones son seguras, por
lo que tenemos garantas de que nuestros datos no pueden ser fcilmente
interceptados. Al pulsar sobre dicho icono obtendremos la informacin de
seguridad para la pagina actual.

Al igual que en muchos otros navegadores Mozilla dispone de un men de contexto


activable pulsando con el botn derecho del ratn sobre alguno los elementos del
rea de visualizacin. Dicho men nos permite, por ejemplo, recargar la pgina actual,
descargar un enlace, o abrir un enlace en una ventana diferente, entre otras muchas
posibles acciones.

Durante la navegacin por la World Wide Web resulta habitual disponer de varias
ventanas de Mozilla abiertas en pginas diferentes. Sin embargo, todas esas ventanas
estn ligadas a un mismo proceso en ejecucin del navegador Mozilla. Es importante
conocer esto puesto que si seleccionamos el elemento de men ARCHIVO -> SALIR
TODAS las ventanas de Mozilla se cerraran, al terminar el proceso que las gestionaba.
Si por el contrario deseamos cerrar nicamente una de las ventanas en particular,
debemos seleccionar ARCHIVO -> CERRAR o utilizar el botn correspondiente de la
barra de ttulo del marco de la ventana.

Pestaas
Una de las innovaciones tomada de otros navegadores e introducida en Mozilla es el
uso de las pestaas durante la navegacin. Tanto si seleccionamos la opcin ARCHIVO
-> NUEVO -> PESTAA DE NAVIGATOR, como si seleccionamos en ABRIR EN
UNA PESTAA NUEVA cuando pulsamos con el botn derecho en un enlace, se
nos abre una nueva rea de visualizacin dentro de la misma ventana de Mozilla.
Podemos disponer de tantas reas como deseemos y en cada una visualizar una
pgina diferente.

Pgina 260 de 328 Introduccin a Linux


Navegacin con pestaas en Mozilla

En la figura anterior podemos observar cmo cada rea est representada por una
pestaa en la parte superior del rea de visualizacin. Seleccionando un pestaa u
otra podremos navegar por una pgina u otra. Cuando deseemos cerrar la pestaa
seleccionada bastar con que pulsemos en botn a la derecha de todas las pestaas.
Tambin podemos arrastrar un enlace en la pagina web del rea de visualizacin sobre
una de las pestaas. Con ello conseguimos que en dicha pestaa se cargue el recurso
del la World Wide Web al que apunta dicho enlace (por ejemplo, una pgina web, una
imagen, etc).

Algunos aspectos del comportamiento de las pestaas pueden ser configurados en


EDITAR -> PREFERENCIAS... -> NAVIGATOR -> PESTAAS.

Plataforma de Teleformacin de IFES Pgina 261 de 328


Marcadores
Mozilla nos permite almacenar de forma ordenada y clasificada las direcciones de los
recursos de la World Wide Web que ms nos interesan. Dicho almacenamiento se hace
en forma de lo que se denominan marcadores.

Aadir la direccin de la pgina actual como marcador es tan sencillo como seleccionar
MARCADORES -> AADIR A MARCADORES. Tambin podemos pulsar con el
botn derecho del ratn sobre un enlace y seleccionar la opcin correspondiente para
aadirlo a los marcadores.

En todo caso el marcador se crea siempre al final de la lista. Si deseamos tener un


control ms fino para, por ejemplo, aadir el marcador a una carpeta determinada,
podemos utilizar el men MARCADORES -> ARCHIVAR MARCADOR...Dicha opcin
del men muestra un cuadro de dilogo que nos permite seleccionar el nombre del
nuevo marcador, crear carpetas de marcadores, y elegir en que carpeta deseamos
guardarlo. Los marcadores as creados son accesibles en forma de mens en el men
MARCADORES de la barra de mens.

En ocasiones es necesario realizar sobre los marcadores tareas de administracin


mucho ms avanzadas. La opcin MARCADORES -> ADMINISTRAR MARCADORES
despliega un cuadro de dilogo (figura siguiente) que nos permite manipular los
marcadores a nuestro antojo. Podemos movernos por el rbol de marcadores y
copiarlos o pegarlos con ayuda de ratn. Tambin podemos alterar sus propiedades
utilizando el men de contexto que se despliega con el uso del botn derecho de
nuestro ratn.

Pgina 262 de 328 Introduccin a Linux


Cuadro de dilogo ADMINISTRAR MARCADORES

El administrador de marcadores dispone de opciones para ordenar los marcadores


segn diversos criterios, para realizar bsquedas, y para exportar o importar hacia o
desde los marcadores de otros navegadores. Adems de carpetas, el administrador
de marcadores nos permite crear separadores que se utilizan para separar elementos
dentro de los mens. Al igual que con el resto de las ventanas de Mozilla debemos
evitar utilizar la opcin ARCHIVO -> SALIR puesto que sta cierra todas la ventanas del
programa.

Entre las carpetas de marcadores existe una con un significado especial. La carpeta
PERSONAL TOOLBAR FOLDER representa la barra de herramientas personales, que
est situada debajo de la barra de herramientas de navegacin. Todos los marcadores

Plataforma de Teleformacin de IFES Pgina 263 de 328


insertados en dicha carpeta aparecern automticamente como botones en la citada
barra de herramientas.

Panel lateral
A la izquierda del rea de visualizacin est el panel lateral o sidebar de Mozilla. Dicho
panel dispone de una serie de pestaas con funciones que ayudan a la navegacin.
Utilizando el men PESTAAS del panel lateral podemos decidir que pestaas vemos
de entra la disponibles. Tambin podemos personalizar nuestro panel aadiendo
nuevas pestaas con nuevas funciones descargadas desde Internet.

Para que no interfiera con la navegacin podemos modificar el ancho del panel
pulsando con el ratn en la barra que lo separa del rea de visualizacin. Si hacemos
una pulsacin sencilla sobre la pequea marca del centro podremos plegar y desplegar
el panel de forma rpida. Tambin podemos ocultarlo de forma permanente pulsando
en la equis de la parte superior-derecha del panel.

Por defecto, en el reducido espacio del panel lateral podemos consultar el historial y los
marcadores, y realizar bsquedas por palabras o por temas relacionados en Internet.
Sin embargo, como ya hemos comentado, dichas funcionalidades son completamente
ampliables.

Preferencias
Muchas de las caractersticas de Mozilla son personalizables. En la figura siguiente
podemos observar el cuadro de dilogo de preferencias de Mozilla. A dicho cuadro
podemos acceder desde la opcin EDITAR -> PREFERENCIAS...

Las preferencias de Mozilla estn clasificadas en categoras. Al seleccionar una


categora podemos observar en el lado derecho de la ventana las opciones de
configuracin relacionadas. Adems, cada categora puede contener subcategoras
cuya lista se despliega o se pliega con una pulsacin simple del ratn sobre dicha
categora.

Pgina 264 de 328 Introduccin a Linux


Cuadro de dilogo de preferencias de Mozilla

APARIENCIA: Preferencias tales como los colores, o los tipos de letras


utilizados por el navegador en la visualizacin de las pginas web son
establecidas en esta categora. Tambin podemos seleccionar el idioma
y el tema de la aplicacin. Seleccionar un nuevo tema cambia el aspecto
visual de los botones, cuadros de dilogo, men, barras de herramientas y
otros objetos. En Internet resulta sencillo encontrar todo tipo de temas para
personalizar nuestro navegador.
NAVIGATOR: Las preferencias especficas del navegador son establecidas
en esta categora. Entre ellas contamos con la direccin de la pgina
de inicio, el buscador por defecto, o la administracin del historial de

Plataforma de Teleformacin de IFES Pgina 265 de 328


direcciones. En ocasiones el contenido de las pginas web est disponible
en varios idiomas. En esta categora podemos establecer los idiomas en los
que preferimos ver dichas pginas web.
COMPOSER: En esta categora podemos encontrar toda una serie de
opciones relacionadas con el editor de pginas web que viene con Mozilla.
MAIL & NEWS: En caso de haber instalado el lector de noticias y de correo
electrnico de Mozilla, podemos acceder a esta categora para configurarlo.
PRIVACIDAD Y SEGURIDAD: Las preferencias de privacidad y seguridad
determinan las caractersticas del filtrado de cookies e imgenes. Adems,
nos permite configurar el navegador para que guarde contraseas o datos
de formularios que utilizamos habitualmente. Tambin nos permite gestionar
los protocolos y certificados utilizados durante las conexiones encriptadas.
Debido a que la mayor parte de esta informacin confidencial es almacenada
en el disco duro, Mozilla permite la encriptacin de dichos datos bajo una
contrasea maestra. Con ello se consigue que esa informacin no pueda ser
accesible a terceros.
AVANZADAS: En esta categora se configuran aspectos avanzados como
el soporte de Java y JavaScript, la configuracin del cach, o el acceso a
la red a travs de proxies. La opciones de esta categora nos permiten, por
ejemplo, establecer qu permitimos y qu no permitimos hacer a las pginas
web a las que accedemos.
SIN CONEXIN Y ESPACIO EN DISCO DURO: Configuracin sobre el
comportamiento del navegador en los modos de trabajo con conexin y sin
conexin. Podemos utilizar la ayuda para obtener informacin ms detallada
de cada una de las opciones.

Programas FTP (gFTP)


Existen multitud de programas clientes de FTP tanto para la consola como para el
entorno grfico.

gFTP es el cliente FTP del entorno de escritorio GNOME. Se trata, por tanto, de un
cliente en modo grfico diseado para facilitar el acceso a los recursos FTP. El uso de
un cliente en modo grfico nos permite olvidarnos de los comandos del protocolo FTP.
En su lugar todas las operaciones se reducen a sencillas acciones sobre la interfaz
grfica.

Pgina 266 de 328 Introduccin a Linux


Ventana de gFTP en una conexin a ftp.es.debian.org

En la figura anterior podemos observar la ventana de un gFTP con una conexin a


ftp.es.debian.org. Para iniciar una sesin de FTP con gFTP debemos recurrir a la
barra situada justo debajo de la barra de mens. En ella debemos especificar los datos
requeridos para realizar la conexin.

SERVIDOR: En este campo debemos escribir el nombre de la mquina


remota a la que nos vamos a conectar. En el de la figura anterior fue
ftp.es.debian.org.
PUERTO: Cada servicio que se ofrece en Internet tiene un puerto asociado.
El puerto por defecto para el servicio de FTP es el 21, aunque algunas
mquinas dan dicho servicio en otro puerto cualquiera. En este campo se

Plataforma de Teleformacin de IFES Pgina 267 de 328


debe especificar el puerto en el que la mquina remota est esperando
las peticiones de FTP. Si no se indica nada, como es nuestro caso, gFTP
asumir que queremos utilizar el puerto por defecto, es decir, el 21.
USUARIO: En este campo debemos indicar el nombre de usuario con el que
queremos acceder a la mquina remota. Si el servidor es pblico, lo ms
probable que utilizando el nombre anonymous podamos acceder a travs de
la cuenta de usuario annima.
CONTRASEA: La contrasea asociada al usuario con el que queremos
acceder. En caso de acceder a travs de la cuenta de usuario annima
debemos indicar nuestra direccin de correo electrnico.
PROTOCOLO: El ltimo campo nos permite indicar el protocolo que vamos
a utilizar para nuestra conexin. gFTP no slo puede utilizar el protocolo
FTP para realizar transferencias de archivos. Por ejemplo, podemos utilizar
SSH2 para realizar transferencias de archivos encriptadas. Esto garantiza
que tanto nuestro datos (nombre de usuario, contrasea, etc) como los
de los archivos estn seguros frente a intentos de interceptacin de las
comunicaciones. Es importante destacar que el protocolo FTP no es un
protocolo seguro, en el sentido de que nuestra contrasea y todos los dems
datos que viajen por la conexin son fcilmente interceptables.

Tras completar los datos podemos pulsar en el botn de la izquierda para iniciar la
sesin. gFTP se encarga de enviar los comandos necesarios para iniciar la conexin,
evitndonos el engorroso problema de tener que conocerlos. El botn de la izquierda
nos permite iniciar una conexin si sta no ha sido iniciada, o terminarla si ya ha sido
iniciada correctamente. Sin embargo, si queremos detener el intento de conexin en
curso debemos recurrir al botn de la derecha. Dicho botn se utiliza para abortar
cualquier tarea que gFTP est realizando en el momento actual.

En la parte inferior de la ventana de gFTP podremos observar un registro de la


conexin. En rojo veremos informacin propia de gFTP, en verde observaremos
los comandos que gFTP enva a la mquina remota, y en azul podremos ver la
respuestas de la mquina remota a dichos comandos. Sea cual sea la tarea que
estemos realizando siempre quedar registrada en esa zona de la ventana. Por eso
suele ser importante estar atento a ella para saber en todo momento lo que est
sucediendo. Utilizando la barra de desplazamiento de la derecha podremos ver los
mensajes antiguos, o que hayan pasado demasiado rpido.

El centro de la ventana de gFTP est dividido en dos reas que podemos utilizar para
navegar por el rbol de directorios. El rea de la izquierda podemos utilizarla para
movernos por el rbol de directorios de la mquina local. Mientras que el rea de la
derecha, siempre y cuando gFTP est conectado, podemos utilizarla para movernos

Pgina 268 de 328 Introduccin a Linux


por el rbol de directorios de la mquina remota. En ambos lados podemos utilizar el
botn derecho del ratn para desplegar un men de contexto con un amplio conjunto
de opciones. Con ellas podemos crear directorios, renombrar archivos, ver y editar
archivos, modificar sus atributos, borrar, etc.

Mientras que la doble pulsacin sobre una directorio nos permite ver su contenido,
una doble pulsacin sobre un archivo inicia una transferencia para que el archivo sea
enviado al otro lado de la conexin. El mismo efecto conseguimos si seleccionamos
uno o ms archivos (p. ej. pulsando con el botn izquierdo del ratn sobre el archivo
deseado mientras mantenemos pulsada la tecla Ctrl o Shift) y los arrastramos al rea
del otro lado. Tambin podemos conseguir el mismo efecto si pulsamos sobre los
botones situados en el centro de las dos reas. Dichos botones nos permiten iniciar la
transferencia de archivos en el sentido que ms nos convenga.

Justo entre el rea donde se registran las tareas realizadas por gFTP y la que
utilizamos para explorar los rboles de directorios, tenemos la cola de transferencias.
Todas las transferencias iniciadas o pendientes se muestran en dicha rea, as como
informacin relacionada con ellas. Utilizando el men de contexto que se despliega
con el botn derecho de nuestro ratn podemos detener o iniciar una transferencia, o
alterar el orden de la cola para decidir qu transferencia se iniciar despus de que se
complete la actual. Por defecto, las transferencias desde mquinas remotas diferentes
se realizan en paralelo, mientras que las transferencias desde una misma mquina
remota que se van realizando secuencialmente.

Mensajera instantnea y IRC


Gaim
Entre la surtida gama de clientes de Mensajera Instntanea, destacaremos el
programa Gaim. La caracterstica que nos mueve a destacar este programa en
particular es la gran cantidad de protocolos soportados en un nico cliente. Con este
cliente de Mensajera Instntanea podremos conectarnos con los servicios de MSN,
Yahoo, AOL, ICQ, Jabber, Napster o el propio IRC, por citar algunos de los protocolos
soportados.

Plataforma de Teleformacin de IFES Pgina 269 de 328


Ventana de Gaim en una charla con otro usuario a travs de Jabber

XChat/KVirc
Otro de los servicios que se suelen utilizar con bastante frecuencia, se encuentran las
consultas al IRC. Este protocolo nos permite estar interconectados con otros grupos
de usuarios, de una manera muy dinmica. En Linux, en el apartado de clientes de IRC
grficos, destacan especialmente dos clientes: XChat y KVirc
XChat es un cliente de IRC muy flexible, que nos permite mantener sesiones no slo
en varios canales al mismo tiempo, sino que incluso nos permite conectar con varios
servidores de IRC al mismo tiempo, todo ello de una manera muy intuitiva.

Pgina 270 de 328 Introduccin a Linux


Ventana de Xchat en un canal de IRC

De la misma manera, el KVirc es otro cliente grfico capaz de satisfacer al ms


exigente de los usuarios. Entre otras cosas destaca por las ayudas que presta a
aquellos que les gusta disfrutar haciendo scripts para los clientes de IRC.

Aplicaciones de correo electrnico


Adaptado de:
http://linux-cd.com.ar/manuales/rh9.0/rhl-gsg-es-9/ch-
emailclients.html
, un documento libre del Manual oficial de referencia de Red Hat Linux

Plataforma de Teleformacin de IFES Pgina 271 de 328


El correo electrnico es un modo muy popular de comunicarse con otros a travs
de Internet. Puede usarlo con un cliente de correo, una aplicacin que entiende las
diversas transmisiones de correo electrnico estndar y le permite enviar, recibir y
leer el correo electrnico. Cualquier distribucin Linux contiene varias aplicaciones
de correo electrnico, incluyendo los clientes de correo electrnico grficos como por
ejemplo Evolution Mozilla Mail y clientes en modo texto tal como mutt . Todas las
aplicaciones de clientes de correo electrnico estn diseados para satisfacer a ciertos
tipos de usuarios; de manera que pueda escoger uno con las caractersticas que mejor
satifacen sus necesidades en particular.

Ya que algunos clientes de correo electrnico ejecutan las mismas tareas bsicas
(enviar y recibir correo electrnico), escoja la ms conveniente y fcil de usar.

Antes de lanzar el cliente de correo electrnico, debera tener alguna informacin til
sobre su Internet Service Provider (ISP) de manera que pueda configurar el cliente
adecuadamente. Las siguientes listas muestran algunas cosas que es necesario que
conozca:

Su direccin de correo electrnico


La direccin de correo electrnico que utilizar para enviar y recibir el correo.
Normalmente adopta la forma de yourname@yourisp.net .

Tipo de servidor para recibir correo (POP o IMAP)


Para recibir correo, debe saber el tipo de servidor que utiliza su administrador
de la red o proveedor de servicios de Internet. Esta direccin POP o IMAP
normalmente adopta la forma de mail.someisp.net .
POP, acrnimo de Post Office Protocol, se usa para enviar correo electrnico
desde un servidor de correo a su buzn de correodel cliente de correo electrnico,
el lugar en el que el correo electrnico de entrada est almacenado. La mayora
de los servidores de correo electrnico ISP usan el protocolo POP, aunque
puedan utilizar el protocolo ms reciente IMAP (Internet Message Access
Protocol).
IMAP, acrnimo de Internet Message Access Protocol, es un protocolo para
recuperar los mensajes de correo electrnico desde su servidor de correo
electrnico ISP. IMAP se diferencia de POP en que los correos electrnicos de
los servidores IMAP estn almacenados en el servidor y permanece all incluso
si descarga y lee su correo electrnico, mientras que el correo de POP est
descargado para su cliente de correo electrnico directamente y noest en el
servidor.

Pgina 272 de 328 Introduccin a Linux


Tipo de servidor para enviar correo electrnico (SMTP)
El Simple Mail Transfer Protocol (SMTP)(Protocolo de transferencia de
correo simple), es un protocolo para enviar mensajes de correo electrnico entre
servidores. La mayora de los sistemas de correo electrnico que envan correo a
travs de Internet utilizan el protocolo SMTP para enviar mensajes de un servidor
a otro; los mensajes se pueden recuperar posteriormente con un cliente de correo
electrnico que utilice el protocolo POP o IMAP. SMTP se utiliza normalmente
para enviar mensajes de un cliente de correo a un servidor de correo. Por este
motivo, deber especificar tanto el servidor POP o IMAP como el servidor SMTP
cuando configure la aplicacin de correo electrnico.

Si tiene alguna duda o pregunta sobre la informacin necesaria, pngase en contacto


con su proveedor de servicios de Internet o administrador de la red. Salvo si ha
configurado correctamente esta informacin, no podr hacer un uso completo de los
clientes de correo electrnico que se describen en este captulo.

Evolution
La aplicacin Evolution es ms que un simple cliente de correo electrnico.
Proporciona todas las funciones de administracin de correo electrnico estndar,
que incluyen una administracin eficaz de buzones, filtros definidos por el usuario y
bsquedas rpidas. Admite el uso de un calendario/programa flexible y permite a los
usuarios crear y confirmar reuniones de grupo en lnea y eventos especiales. Evolution
es la primera herramienta completa de administracin de informacin personal y de
trabajo en grupo para Linux y sistemas basados en UNIX.

Para lanzar Evolution en el panel del escritorio, seleccione Men principal =>
Programas =>Internet =>Correo electrnico .

Plataforma de Teleformacin de IFES Pgina 273 de 328


Pantalla de bienvenida de Evolution

La primera vez que inicie Evolution aparecer la pantalla de bienvenida, que le permite
configurar su conexin de correo electrnico. Siga las instrucciones de la pantalla en
la informacin que ha recopilado desde su ISP o administrador en las casillas de texto
proporcionadas. Cuando acabe, haga click en Finish y ver la pantalla principal como
se muestra en la figura.

Pgina 274 de 328 Introduccin a Linux


Pantalla principal de Evolution

Plataforma de Teleformacin de IFES Pgina 275 de 328


Para ver el contenido de su buzn o enviar un correo, haga clic en el icono Inbox .

Pgina 276 de 328 Introduccin a Linux


Pantalla de la bandeja de entrada de Evolution

Para componer un correo, seleccione New Message en la barra de herramientas.

Pantalla de nuevo mensaje de correo electrnico de Evolution

Plataforma de Teleformacin de IFES Pgina 277 de 328


Cuando haya compuesto el mensaje y haya introducido la direccin de correo
electrnico a la que enviar el correo, haga clic en Send en la barra de herramientas.

Mientras que Evolution hace mucho ms que leer y enviar correo electrnico, este
captulo se centra exclusivamente en las posibilidades del correo electrnico. Si
desea conocer ms sobre el uso de algunas de las caractersticas de Evolution ,
como calendario/programa y mensajes de grupo, haga click en Help desde la barra
de herramientas principal y escoja el componente que del que desea obtener ms
informacin.

Mozilla Mail
En esta seccin se ofrece una breve descripcin de los pasos bsicos para enviar y
recibir correo con Mozilla .

Para iniciar Mozilla Mail, seleccione Men principal => Todas las aplicaciones
Internet => Mozilla Mail.

Para abrir Mozilla Mail mientras est en la aplicacin Mozilla, haga clic en el icono de
correo situado en la esquina inferior izquierda de la pantalla de Mozilla.

Pgina 278 de 328 Introduccin a Linux


Correo y noticias en Mozilla

Plataforma de Teleformacin de IFES Pgina 279 de 328


Pantalla de nuevo mensaje de correo electrnico de la herramienta de correo de Mozilla

Para enviar un correo electrnico, haga clic en el botn Send o seleccione File =>
Send Now o Send Later . Si opta por enviar el correo ms tarde, puede volver a la
pantalla de correo principal y seleccionar File => Send unsent messages .

Pgina 280 de 328 Introduccin a Linux


Para leer el correo electrnico, haga clic en la carpeta de correo que ha creado para ver
una lista de los mensajes que ha recibido y todava no ha ledo. A continuacin, haga
clic en el mensaje que desee leer.

Cuando haya ledo un mensaje, puede eliminarlo o guardarlo en otra carpeta, entre
otras muchas opciones.

Mozilla y los grupos de noticias


Los grupos de noticias son grupos de debate en Internet que tratan temas especficos.
Los debates se realizan en formato threaded (lo que significa que todos los temas y
respuestas al tema estn organizados de manera que la lectura y suscriptcin a un
grupo sea sencilla. No debe enviar mensajes si no lo desea, puede llevar a cabo lurk,
que es un trmino de los grupos de noticias para la lectura sin enviar mensajes. Hay
muchos grupos de noticias realmente excelentes en la Web con temas que abarcan
desde la poltica hasta juegos de ordenador y extraas filosofas. Puede enviar y
descargar fotografas y archivos a los grupos de noticias (aunque su ISP restrinja los
grupos de noticias a envios de slo texto).

Para participar en un grupo de noticias, primero deber configurar una cuenta de


grupo de noticias. Haga clic en el nombre de la cuenta de correo en la barra lateral y
seleccione Create a new account en las opciones que aparecen en el lado derecho
de la pantalla. Aparecer la pantalla New Account Setup. Seleccione Newsgroup
account y haga click en Next.

Plataforma de Teleformacin de IFES Pgina 281 de 328


Configuracin de una cuenta para el grupo de noticias

Introduzca su nombre y la direccin de correo electrnico en la siguiente pantalla y


haga clic en Next. En la siguiente pantalla, escriba el nombre del servidor de noticias
(si no conoce el nombre del servidor de noticias, pngase en contacto con el proveedor
de servicios de Internet para que le proporcione esta informacin). En las ltimas
pantallas, puede determinar o su administrador de redes para esta informacin). En las
otras pantallas, puede determinar el nombre al que esta cuenta se referir y revisar la
configuracin.

Ahora, aparecer la cuenta de grupo de noticias que acaba de crear en la barra lateral
de la pantalla de correo de Mozilla . Haga clic con el botn derecho del ratn en este
nombre de cuenta y seleccione Subscribe. Aparecer un cuadro de dilogo con una

Pgina 282 de 328 Introduccin a Linux


lista de todos los grupos de noticias disponibles. Seleccione los grupos que desee leer
y haga clic en Subscribe. Cuando haya acabado, haga clic en OK.

Ahora, haga clic en la flecha situada junto al nombre de cuenta del grupo de noticias
y la lista de grupos a la que est suscrito aparecer al lado. Seleccione el grupo de
noticias al que desea acceder y aparecer un cuadro de dilogo con informacin sobre
cmo descargar y leer los mensajes existentes. La accin de publicar un mensaje en
un grupo de noticias es similar a escribir un correo electrnico, con la diferencia de que
el nombre del grupo de noticias aparece en el campo To en lugar de la direccin de
correo electrnico. Para anular la suscripcin de un grupo de noticias, haga clic con el
botn derecho en el nombre del grupo y seleccione Unsubscribe.

Introduccin a MySQL

Trabajar con MySQL


En este captulo vamos a ver cmo:

Qu es MySQL y usar el cliente mysql.


Crear y usar una base de datos.
Crear una tabla y aadir datos a la tabla.
Seleccionar, modificar, ordenar y borrar registros de una tabla.
Utilizar patrones de comparacin en las consultas.
Contar registros de una tablas.
Usar ms de una tabla en una base de datos.
Usar mysql en modo batch.

Qu es MySQL?
MySQL es el servidor de bases de datos relacionales de cdigo abierto ms popular y
desarrollado. Una de las razones para el rpido crecimiento de popularidad de MySQL,
es que se trata de un producto de cdigo abierto, y por lo tanto, va de la mano con este
movimiento. Consta de las siguientes caractersticas.

MySQL es un sistema de administracin de bases de datos. Una base


de datos es una coleccin estructurada de datos. Los informacin que puede
almacenar una base de datos puede ser tan simple como la de una agenda,
un contador, o un libro de visitas, tan vasta como la de una tienda en lnea,
un sistema de noticias, un portal, o la informacin generada en una red
corporativa. Para agregar, acceder, y procesar los datos almacenados en

Plataforma de Teleformacin de IFES Pgina 283 de 328


una base de datos, se necesita un sistema de administracin de bases de
datos, tal como MySQL.
MySQL es un sistema de administracin de bases de datos
relacionales. Una base de datos relacional almacena los datos en tablas
separadas en lugar de poner todos los datos en un solo lugar. Esto agrega
velocidad y flexibilidad. Las tablas son enlazadas al definir relaciones
que hacen posible combinar datos de varias tablas cuando se necesitan
consultar datos. La parte SQL de "MySQL" significa "Lenguaje Estructurado
de Consulta", y es el lenguaje ms usado y estandardizado para acceder a
bases de datos relacionales.
MySQL es cdigo abierto. Cdigo abierto significa que la persona que
quiera puede usar y modificar MySQL. Cualquiera puede descargar el
software de MySQL de Internet y usarlo sin pagar por ello. Inclusive,
cualquiera que lo necesite puede estudiar el cdigo fuente y cambiarlo de
acuerdo a sus necesidades. MySQL usa la licencia GPL (Licencia Pblica
General GNU), para definir qu es lo que se puede y no se puede hacer con
el software para diferentes situaciones. Sin embargo, si uno est incmodo
con la licencia GPL o tiene la necesidad de incorporar cdigo de MySQL en
una aplicacin comercial es posible comprar una versin de MySQL con una
licencia comercial.

Usar el cliente mysql


El objetivo de este captulo es mostrar el uso del programa cliente mysql para crear
y usar una sencilla base de datos. mysql (algunas veces referido como "monitor
mysql") es un programa interactivo que permite conectarnos a un servidor MySQL,
ejecutar algunas consultas, y ver los resultados. mysql puede ser usado tambin en
modo batch: es decir, se pueden colocar toda una serie de consultas en un archivo, y
posteriormente decirle a mysql que ejecute dichas consultas.
Lo primero es instalar mysql en alguna mquina y disponer de un servidor MySQL al
cul podemos conectarnos. En nuestro caso, para instalarlo bajo Guadalinex, podemos
abrir un terminal de Root ejecutando el men Herramientas del sistema>Terminal
de Root. Tecleamos la contrasea del root y, dentro del terminal, nos aparece el shell
(programa que interpreta y ejecuta los comandos que el usuario escribe en un indicador
de lnea de comandos. Cuando iniciamos un Terminal, se activa el shell predeterminado
especificado en la cuenta del sistema donde tecleamos las siguientes rdenes:

shell>apt-get update
shell>apt-get install mysql-server mysql-client
Con apt-get install incluso nos configura el arranque, los derechos de ejecucin y las
bases de datos propias de mysql y nos ahorramos tener que redefinir el PATH. Para
probar que todo ha ido bien ejecutamos la consola mysql :

Pgina 284 de 328 Introduccin a Linux


shell>mysql

y nos debera de aparecer el mensaje de bienvenida siguiente y el promt de mysql:

Welcome to the MySQL monitor. Commands end with ; org.Your MySQL


connection id is 3 to server version: 4.0.16-logType 'help;' or
'h' for help. Type 'c' to clear the buffer.

mysql>

Conectarse y desconectarse al servidor MySQL


Para conectarse al servidor, usualmente necesitamos de un nombre de usuario (login)
y de una contrasea (password), y si el servidor al que nos deseamos conectar est
en una mquina diferente de la nuestra, tambin necesitamos indicar el nombre o la
direccin IP de dicho servidor. Una vez que conocemos estos tres valores, podemos
conectarnos de la siguiente manera en un terminal:

shell> mysql -h NombreDelServidor -u NombreDeUsuario -p


Cuando ejecutamos este comando, se nos pedir que proporcionemos tambin la
contrasea para el nombre de usuario que estamos usando.
Algunas instalaciones, como la comentada anteriormente, permiten que los usuarios se
conecten de manera annima al servidor corriendo en la mquina local. Si es el caso
de nuestra mquina, como ya hemos visto, debemos de ser capaces de conectarnos al
servidor invocando a mysql sin ninguna opcin en un terminal:

shell> mysql
Este prompt nos indica que mysql est listo para recibir comandos. Para ver la lista de
opciones proporcionadas por mysql , lo invocamos con la opcin 'h':

mysql>h

Despus de que nos hemos conectado de manera satisfactoria, podemos


desconectarnos en cualquier momento al escribir "quit", "exit", o presionar CONTROL
+D.
La mayora de los ejemplos siguientes asume que estamos conectados al servidor, lo
cual se indica con el prompt de mysql.

Ejecutar algunas consultas


En este momento debimos de haber podido conectarnos ya al servidor MySQL,
an cuando no hemos seleccionado alguna base de datos para trabajar. Lo que

Plataforma de Teleformacin de IFES Pgina 285 de 328


haremos a continuacin es escribir algunos comandos para irnos familiarizando con el
funcionamiento de mysql

mysql> SELECT VERSION(), CURRENT_DATE;


+------------+--------------+
| VERSION() | CURRENT_DATE |
+------------+--------------+
| 4.0.16-log | 2004-11-03 |
+------------+--------------+
1 row in set (0.16 sec)

mysql>

Este comando ilustra distintas cosas acerca de mysql:

Un comando normalmente consiste de un sentencia SQL seguida por un


punto y coma.
Cuando emitimos un comando, mysql lo manda al servidor para que lo
ejecute, nos muestra los resultados y regresa el prompt indicando que est
listo para recibir ms consultas.
mysql muestra los resultados de la consulta como una tabla (filas y
columnas). La primera fila contiene etiquetas para las columnas. Las filas
siguientes muestran los resultados de la consulta. Normalmente las etiquetas
de las columnas son los nombres de los campos de las tablas que estamos
usando en alguna consulta. Si lo que estamos recuperando es el valor de
una expresin (como en el ejemplo anterior) las etiquetas en las columnas
son la expresin en s.
mysql muestra cuntas filas fueron regresadas y cuanto tiempo tard en
ejecutarse la consulta, lo cual puede darnos una idea de la eficiencia del
servidor, aunque estos valores pueden ser un tanto imprecisos ya que no
se muestra la hora del CPU, y porque pueden verse afectados por otros
factores, tales como la carga del servidor y la velocidad de comunicacin en
una red.
Las palabras clave pueden ser escritas usando maysculas y minsculas.

Aqu est otra consulta que demuestra cmo se pueden escribir algunas expresiones
matemticas y trigonomtricas:

mysql> SELECT VERSION(), CURRENT_DATE;


+------------+--------------+
| VERSION() | CURRENT_DATE |
+------------+--------------+

Pgina 286 de 328 Introduccin a Linux


| 4.0.16-log | 2004-11-03 |
+------------+--------------+
1 row in set (0.16 sec)

mysql>

Aunque hasta este momento se han escrito sentencias sencillas de una sola lnea, es
posible escribir ms de una sentencia por lnea, siempre y cuando estn separadas por
punto y coma:

mysql> select now();select version();


+---------------------+
| now() |
+---------------------+
| 2004-11-04 15:49:25 |
+---------------------+
1 row in set (0.00 sec)
+------------+
| version() |
+------------+
| 4.0.16-log |
+------------+
1 row in set (0.02 sec)

Un comando no necesita ser escrito en una sola lnea, as que los comandos que
requieran de varias lneas no son un problema. mysql determinar en dnde finaliza la
sentencia cuando encuentre el punto y coma, no cuando encuentre el fin de lnea.
Aqu est un ejemplo que muestra un consulta simple escrita en varias lneas:

mysql> select
-> user(),
-> current_date;
+-----------------+--------------+
| user() | current_date |
+-----------------+--------------+
| chema@localhost | 2004-11-04 |
+-----------------+--------------+
1 row in set (0.00 sec)

En este ejemplo notamos como cambia el prompt (de mysql> a ->) cuando se escribe
una consulta en varias lneas. Esta es la manera en cmo mysql indica que est

Plataforma de Teleformacin de IFES Pgina 287 de 328


esperando a que finalice la consulta. Sin embargo si deseamos no terminar de escribir
la consulta, podemos hacerlo al escribir c como se muestra en el siguiente ejemplo:

mysql> select -> user(), -> c mysql>


De nuevo, se nos regresa el comando el prompt mysql> que nos indica que mysql est
listo para una nueva consulta.

En la siguiente tabla se muestran cada uno de los prompts que podemos obtener y una
breve descripcin de su significado para mysql:

Prompt Significado
mysql> Listo para una nueva consulta.
-> Esperando la lnea siguiente de una consulta
multi-lnea.
'> Esperando la siguiente lnea para completar
una cadena que comienza con una comilla
sencilla ( ' ).
"> Esperando la siguiente lnea para completar
una cadena que comienza con una comilla
doble ( " ).
Tabla 20.1 Promts de mysql.

Los comandos multi-lnea comnmente ocurren por accidente cuando tecleamos


ENTER, pero olvidamos escribir el punto y coma. En este caso mysql se queda
esperando para que finalicemos la consulta:

mysql> SELECT USER() ->


Si esto llega a suceder, muy probablemente mysql estar esperando por un punto y
coma, de manera que si escribimos el punto y coma podremos completar la consulta y
mysql podr ejecutarla:

mysql> SELECT USER()


-> ;
+-----------------+
| USER() |
+-----------------+
| chema@localhost |
+-----------------+

Pgina 288 de 328 Introduccin a Linux


1 row in set (0.00 sec)

Los prompts '> y "> ocurren durante la escritura de cadenas. En mysql podemos
escribir cadenas utilizando comillas sencillas o comillas dobles (por ejemplo, 'hola' y
"hola"), y mysql nos permite escribir cadenas que ocupen mltiples lneas. De manera
que cuando veamos el prompt '> o "> , mysql nos indica que hemos empezado a
escribir una cadena, pero no la hemos finalizado con la comilla correspondiente.
Aunque esto puede suceder si estamos escribiendo una cadena muy grande, es ms
frecuente que obtengamos alguno de estos prompts si inadvertidamente escribimos
alguna de estas comillas.
Por ejemplo:

mysql> SELECT * FROM mi_tabla WHERE nombre = "Lopez AND


antiguedad < 10;
">

Si escribimos esta consulta SELECT y entonces presionamos ENTER para ver el


resultado, no suceder nada. En lugar de preocuparnos porque la consulta ha tomado
mucho tiempo, debemos notar la pista que nos da mysql cambiando el prompt. Esto
nos indica que mysql est esperando que finalicemos la cadena iniciada ("Lopez).
En este caso, qu es lo que debemos hacer? . La cosa ms simple es cancelar la
consulta. Sin embargo, no basta con escribir c, ya que mysql interpreta esto como
parte de la cadena que estamos escribiendo. En lugar de esto, debemos escribir antes
la comilla correspondiente y despus c :

mysql> SELECT * FROM mi_tabla WHERE apellido = "Lopez AND


antiguedad < 10;
"> " c
mysql>
El prompt cambiar de nuevo al ya conocido mysql>, indicndonos que mysql est listo
para una nueva consulta.

Es sumamente importante conocer lo que significan los prompts '> y ">, ya que si
en algn momento nos aparece alguno de ellos, todas la lneas que escribamos a
continuacin sern consideradas como parte de la cadena, inclusive cuando escribimos
QUIT. Esto puede ser confuso, especialmente si no sabemos que es necesario escribir
la comilla correspondiente para finalizar la cadena, para que podamos escribir despus
algn otro comando, o terminar la consulta que deseamos ejecutar.

Plataforma de Teleformacin de IFES Pgina 289 de 328


Crear y usar una base de datos
Ahora que conocemos como escribir y ejecutar sentencias, podemos ya acceder a una
base de datos.

Para ello, supongamos que tenemos mucha informacin musical en nuestra casa en
forma de compactos, discos de vinilo y cintas de casete y deseamos tener registros
de los datos acerca de ellas. Podemos hacer esto al crear tablas que guarden esta
informacin, para que posteriormente la consulta de estos datos sea bastante fcil y
de manera muy prctica. En esta seccin vamos a ver como crear una base de datos,
crear una tabla, incorporar datos en una tabla, y recuperar datos de las tablas de
diversas maneras.

La base de datos "msica" ser deliberadamente muy sencilla, pero no es difcil pensar
de situaciones del mundo real en la cual una base de datos similar puede ser usada.

Primeramente usaremos la sentencia SHOW para ver cules son las bases de datos
existentes en el servidor al que estamos conectados:

mysql> SHOW DATABASES;


+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.00 sec)

Es probable que la lista de bases de datos que veamos sea diferente en nuestro caso,
pero seguramente las bases de datos "mysql" y "test" estarn entre ellas (si hemos
accedido como 'root'). En particular, la base de datos "mysql" es requerida, ya que sta
tiene la informacin de los privilegios de los usuarios de MySQL. La base de datos
"test" es creada durante la instalacin de MySQL con el propsito de servir como rea
de trabajo para los usuarios que inician en el aprendizaje de MySQL.

Tenemos que tener en cuenta tambin que es posible que no veamos todas las bases
de datos si no tenemos el privilegio SHOW DATABASES.

Si la base de datos "test" existe, se puede acceder a ella:

mysql> USE test


Database changed

Pgina 290 de 328 Introduccin a Linux


Observamos que USE , al igual que QUIT , no requieren el uso del punto y coma,
aunque si se usa ste, no hay ningn problema. El comando USE es especial tambin
de otra manera: ste debe ser usado en una sola lnea.

Podramos usar la base de datos "test" (si tenemos acceso a ella) para los ejemplos
que vienen a continuacin, pero cualquier cosa que hagamos puede ser eliminada
por cualquier otro usuario que tenga acceso a esta base de datos. Por esta razn,
es recomendable que preguntemos al administrador MySQL acerca de la base de
datos que podemos usar. Supongamos que deseamos tener una base de datos
llamada "musica" (ntese que no se est acentuando la palabra) a la cual slo nosotros
tengamos acceso, para ello el administrador necesita ejecutar un comando como el
siguiente:

mysql> GRANT ALL on musica.* TO MiNombreUsuario@MiComputadora


-> IDENTIFIED BY 'MiContrasea';

en donde MiNombreUsuario es el nombre de usuario asignado dentro del contexto de


MySQL, MiComputadora es el nombre o la direccin IP de la computadora desde la que
nos conectamos al servidor MySQL, y MiContrasea es la contrasea que se nos ha
asignado, igualmente, dentro del ambiente de MySQL exclusivamente. Ambos, nombre
de usuario y contrasea no tienen nada que ver con el nombre de usuario y contrasea
manejados por el sistema operativo.

Si el administrador cre la base de datos al momento de asignar los permisos,


podemos hacer uso de ella. De otro modo, nosotros debemos crearla:

mysql> USE musica


ERROR 1049: Unknown database 'musica'

El mensaje anterior indica que la base de datos no ha sido creada, por lo tanto
necesitamos crearla.

mysql> CREATE DATABASE musica;


Query OK, 1 row affected (0.00 sec)
mysql> USE musica;
Database changed
mysql>

Bajo el sistema operativo Guadalinex, los nombres de las bases de datos son sensibles
al uso de maysculas y minsculas (no como las palabras clave de SQL), por lo tanto
debemos de tener cuidado de escribir correctamente el nombre de la base de datos.
Esto es cierto tambin para los nombres de las tablas.

Plataforma de Teleformacin de IFES Pgina 291 de 328


Al crear una base de datos no se selecciona sta de manera automtica; debemos
hacerlo de manera explcita, por ello usamos el comando USE en el ejemplo anterior.

La base de datos se crea slo una vez, pero nosotros debemos seleccionarla cada vez
que iniciamos una sesin con mysql . Por ello es recomendable que se indique la base
de datos sobre la que vamos a trabajar al momento de invocar al monitor de MySQL.
Por ejemplo:

shell>mysql -h localhost -u chema -p musica


Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 9 to server version: 4.0.16-log
Type 'help;' or 'h' for help. Type 'c' to clear the buffer

Observamos que "musica" no es la contrasea que se est proporcionando desde la


lnea de comandos, sino el nombre de la base de datos a la que deseamos acceder. Si
deseamos proporcionar la contrasea en la lnea de comandos despus de la opcin
"-p", debemos de hacerlo sin dejar espacios (por ejemplo, -pholamundo, no como -p
holamundo). Sin embargo, escribir nuestra contrasea desde la lnea de comandos no
es recomendado, ya que es bastante inseguro.

Crear una tabla


SHOW TABLES:Crear la base de datos es la parte ms fcil, pero en este momento la
base de datos est vaca, como lo indica el comando SHOW TABLES

mysql> SHOW TABLES;


Empty set (0.00 sec)

La parte un tanto complicada es decidir la estructura que debe tener nuestra base de
datos: qu tablas se necesitan y qu columnas estarn en cada tabla.
En principio, necesitamos una tabla que contenga un registro para cada una de
nuestros ttulos de msica. sta puede ser una tabla llamada discos, y debe contener
por lo menos el ttulo de cada uno de nuestros discos. Ya que el nombre en s no
es muy interesante, la tabla debe contener alguna otra informacin. Por ejemplo, es
probable que queramos guardar la informacin acerca de quien es el interprete de
cada disco. As mismo, tambin sera interesante contar con alguna informacin ms
descriptiva tal como el gnero musical de cada disco.
Y que sucede con la antigedad del disco? Esto puede ser tambin de inters, pero
no es una buena idea almacenar este dato en la base de datos. La antigedad cambia
conforme pasa el tiempo, lo cual significa que debemos de actualizar los registros
frecuentemente. En vez de esto, es una mejor idea guardar un valor fijo, tal como

Pgina 292 de 328 Introduccin a Linux


la fecha de adquisicin. Entonces, cuando necesitemos la antigedad, la podemos
calcular como la diferencia entre la fecha actual y la fecha de adquisicin. MySQL
proporciona funciones para hacer operaciones entre fechas, as que no hay ningn
problema.
Es probable que estemos pensando en otro tipo de informacin que sera igualmente
til en la tabla 'discos', pero para nosotros ser suficiente por ahora contar con
informacin de ttulo, autor, gnero y fecha de adquisicin.

Usaremos la sentencia CREATE TABLE para indicar como estarn conformados los
registros de nuestras discos.

mysql> CREATE TABLE discos(


-> titulo VARCHAR(40), autor VARCHAR(20),
-> genero VARCHAR(20), adquisicion DATE);
Query OK, 0 rows affected (0.03 sec)

VARCHAR es una buena eleccin para los campos ttulo, autor, y gnero, ya que los
valores que almacenarn son de longitud variable. Se puede especificar cualquier
longitud entre 1 y 255, lo que se considere ms adecuado. Si resulta que la eleccin de
la longitud de los campos que hemos hecho no result adecuada, MySQL proporciona
una sentencia ALTER TABLE que nos puede ayudar a solventar este problema. El uso
del tipo de dato DATE para el campo adquisicin debe de resultar obvio.

Ahora que hemos creado la tabla, la sentencia SHOW TABLES debe producir algo
como:

mysql> SHOW TABLES;


+------------------+
| Tables_in_musica |
+------------------+
| discos |
+------------------+
1 row in set (0.00 sec)

Para verificar que la tabla fue creada como nosotros esperbamos, usaremos la
sentencia DESCRIBE :

mysql> DESCRIBE discos;


+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| titulo | varchar(40) | YES | | NULL | |

Plataforma de Teleformacin de IFES Pgina 293 de 328


| autor | varchar(20) | YES | | NULL | |
| genero | varchar(20) | YES | | NULL | |
| adquisicion | date | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

Podemos hacer uso de la sentencia DESCRIBE en cualquier momento, por ejemplo, si


olvidamos los nombres el tipo de las columnas en la tabla.

Aadir datos en una tabla

Despus de haber creado la tabla, ahora podemos incorporar algunos datos en ella,
para lo cual haremos uso de las sentencias INSERT y LOAD DATA .

Supongamos que los registros de nuestros discos pueden ser descritos por los datos
mostrados en la siguiente tabla.

Ttulo Autor Gnero Adquisicin


MADE IN JAPAN DEEP PURPLE POP-ROCK 1991-02-04
CLUES ROBERT PALMER POP-ROCK 1998-03-17
CABO DO MUNDO LUAR NA LUBRE FOLK 1999-05-13
EN LA FUSA VINICIUS DE BRASILEO 2000-08-27
MORAES
RUMBA ARGELINA RADIO TARIFA ETNICO 1998-08-31
SUPERNATURAL SANTANA POP-ROCK 2001-09-11
A PESAR DE TODO HILARIO CAMACHO FOLK 1991-02-09
LADY SOUL ARETHA FRANKLIN SOUL 1994-04-29
GRATEST HITS BOB DYLAN FOLK 1997-01-22
Tabla 20.2 Datos de la tabla 'discos'

Debemos observar que MySQL espera recibir fechas en el formato YYYY-MM-DD, que
puede ser diferente a lo que nosotros estamos acostumbrados.

Pgina 294 de 328 Introduccin a Linux


Ya que estamos iniciando con una tabla vaca, la manera ms fcil de poblarla es crear
un archivo de texto que contenga un registro por lnea para cada uno de nuestros
discos para que posteriormente carguemos el contenido del archivo en la tabla
nicamente con una sentencia.

Por tanto, debemos de crear un archivo de texto "discos.txt" que contenga un registro
por lnea con valores separados por tabuladores, teniendo en cuenta que el orden
de las columnas sea el mismo que utilizamos en la sentencia CREATE TABLE. Para
valores que no conozcamos podemos usar valores nulos (NULL). Para representar
estos valores en nuestro archivo debemos usar N.

Para cargar el contenido del archivo en la tabla mascotas, usaremos el siguiente


comando:

mysql> LOAD DATA LOCAL INFILE "discos.txt" INTO TABLE discos;

La sentencia LOAD DATA nos permite especificar cul es el separador de columnas


y el separador de registros. Por defecto, el tabulador es el separador de columnas
(campos), y el salto de lnea es el separador de registros, que en este caso son
suficientes para que la sentencia LOAD DATA lea correctamente el archivo "discos.txt".

Si lo que deseamos es aadir un registro a la vez, entonces debemos hacer uso de la


sentencia INSERT . En la manera ms simple, debemos proporcionar un valor para
cada columna en el orden en el cual fueron listados en la sentencia CREATE TABLE .
Podemos usar la sentencia INSERT para agregar un registro en nuestra base de datos.

mysql> INSERT INTO discos


-> VALUES('MOONDANCE','VAN MORRISON','POP-ROCK','2004-06-03');

Notar que los valores de cadenas y fechas deben estar encerrados entre comillas.
Tambin, con la sentencia INSERT podemos insertar el valor NULL directamente para
representar un valor nulo, un valor que no conocemos. En este caso no se usa N como
en el caso de la sentencia LOAD DATA.

De este ejemplo, debemos ser capaces de ver que es un poco ms la tarea que se
tiene que realizar si inicialmente cargamos los registros con varias sentencias INSERT
en lugar de una nica sentencia LOAD DATA.

Recuperar informacin de una tabla

Plataforma de Teleformacin de IFES Pgina 295 de 328


La sentencia SELECT es usada para obtener la informacin guardada en una tabla. La
forma general de esta sentencia es:

SELECT LaInformacinQueDeseamos FROM DeQueTabla WHERE


CondicinASatisfacer

Aqu, LaInformacinQueDeseamos es la informacin que queremos ver. Esta puede


ser una lista de columnas, o un * para indicar "todas las columnas". DeQueTabla indica
el nombre de la tabla de la cual vamos a obtener los datos. La clasula WHERE es
opcional. Si est presente, la CondicinASatisfacer especifica las condiciones que los
registros deben satisfacer para que puedan ser mostrados.

Seleccionar todos los datos


La forma ms simple de la sentencia SELECT es cuando se recuperan todos los datos
de una tabla:

mysql> SELECT * FROM discos;


+-----------------+--------------------+-----------+-------------
+
| titulo | autor | genero | adquisicion |
+-----------------+--------------------+-----------+-------------
+
| MADE IN JAPAN | DEEP PURPLE | POP-ROCK | 1991-02-04 |
| CLUES | ROBERT PALMER | POP-ROCK | 1998-03-17 |
| CABO DO MUNDO | LUAR NA LUBRE | FOLK | 1999-05-13 |
| EN LA FUSA | VINICIUS DE MORAES | BRASILEO | 2000-08-27 |
| RUMBA ARGELINA | RADIO TARIFA | ETNICO | 1998-08-31 |
| SUPERNATURAL | SANTANA | POP-ROCK | 2001-09-11 |
| A PESAR DE TODO | HILARIO CAMACHO | FOLK | 1991-02-09 |
| LADY SOUL | ARETHA FRANKLIN | SOUL | 1994-04-29 |
| GRATEST HITS | BOB DYLAN | FOLK | 1997-01-22 |
| MOONDANCE | VAN MORRISON | POP-ROCK | 2004-06-03 |
+-----------------+--------------------+-----------+-------------
+
10 rows in set (0.00 sec)

Esta forma del SELECT es til si deseamos ver los datos completos de la tabla, por
ejemplo, para asegurarnos de que estn todos los registros despus de la carga de un
archivo.

Pgina 296 de 328 Introduccin a Linux


Por ejemplo, en este caso que estamos tratando, al consultar los registros de la tabla,
nos damos cuenta de que hay un error en el archivo de datos (discos.txt). Al revisar
el disco MADE IN JAPAN encontramos que la fecha correcta de adquisicin es el ao
1999, no 1991.

Podemos corregir el registro errneo con una sentencia UPDATE:

mysql> UPDATE discos SET adquisicion="1999-02-04" WHERE


titulo="MADE IN JAPAN";

Como se mostr anteriormente, es muy fcil recuperar los datos de una tabla completa.
Pero tpicamente no deseamos hacer esto, particularmente cuando las tablas son
demasiado grandes. En vez de ello, estaremos ms interesados en responder
preguntas particulares, en cuyo caso debemos especificar algunas restricciones para la
informacin que deseamos ver.

Seleccionar registros particulares


Podemos seleccionar slo registros particulares de una tabla. Por ejemplo, si
deseamos verificar el cambio que hicimos a la fecha de adquisicin de MADE IN
JAPAN , seleccionamos slo este registro de la siguiente manera :

mysql> SELECT * FROM discos WHERE titulo="MADE IN JAPAN";


+---------------+-------------+----------+-------------+
| titulo | autor | genero | adquisicin |
+---------------+-------------+----------+-------------+
| MADE IN JAPAN | DEEP PURPLE | POP-ROCK | 1999-02-04 |
+---------------+-------------+----------+-------------+
1 row in set (0.00 sec)

La salida mostrada confirma que el ao ha sido corregido de 1991 a 1999.

La comparacin de cadenas es normalmente no sensitiva, as que podemos especificar


el nombre como "made in japan", "MADE IN JAPAN", etc. El resultado de la consulta
ser el mismo.

Plataforma de Teleformacin de IFES Pgina 297 de 328


Podemos adems especificar condiciones sobre cualquier columna, no slo el "titulo".
Por ejemplo, si deseamos conocer qu discos hemos adquirido despus del 2000,
tendramos que usar la columna "adquisicion":

mysql> SELECT * FROM discos WHERE adquisicion >= "2000-1-1";


+--------------+--------------------+-----------+-------------+
| titulo | autor | genero | adquisicion |
+--------------+--------------------+-----------+-------------+
| EN LA FUSA | VINICIUS DE MORAES | BRASILEO | 2000-08-27 |
| SUPERNATURAL | SANTANA | POP-ROCK | 2001-09-11 |
| MOONDANCE | VAN MORRISON | POP-ROCK | 2004-06-03 |
+--------------+--------------------+-----------+-------------+
3 rows in set (0.00 sec)

Podemos tambin combinar condiciones, por ejemplo, para localizar a los discos de
pop-rock que hemos adquirido antes del 2000:

SELECT * FROM discos WHERE adquisicion <= "2000-1-1"AND genero="POP-ROCK";


+---------------+---------------+----------+-------------+
| titulo | autor | genero | adquisicion |
+---------------+---------------+----------+-------------+
| MADE IN JAPAN | DEEP PURPLE | POP-ROCK | 1999-02-04 |
| CLUES | ROBERT PALMER | POP-ROCK | 1998-03-17 |
+---------------+---------------+----------+-------------+
2 rows in set (0.00 sec)
La consulta anterior usa el operador lgico AND . Hay tambin un operador lgico OR :

mysql> SELECT * FROM discos WHERE genero="SOUL"OR genero="FOLK";


+-----------------+-----------------+--------+-------------+
| titulo | autor | genero | adquisicion |
+-----------------+-----------------+--------+-------------+
| CABO DO MUNDO | LUAR NA LUBRE | FOLK | 1999-05-13 |
| A PESAR DE TODO | HILARIO CAMACHO | FOLK | 1991-02-09 |
| LADY SOUL | ARETHA FRANKLIN | SOUL | 1994-04-29 |
| GRATEST HITS | BOB DYLAN | FOLK | 1997-01-22 |
+-----------------+-----------------+--------+-------------+
4 rows in set (0.00 sec)

El operador AND y el operador OR pueden ser intercambiados. Si hacemos esto, es


buena idea usar parntesis para indicar como deben ser agrupadas las condiciones:

Pgina 298 de 328 Introduccin a Linux


mysql>SELECT * FROM discos WHERE(adquisicion >= "2000-1-1"AND
genero="POP-ROCK")
-> OR genero="SOUL";
+--------------+-----------------+----------+-------------+
| titulo | autor | genero | adquisicion |
+--------------+-----------------+----------+-------------+
| SUPERNATURAL | SANTANA | POP-ROCK | 2001-09-11 |
| LADY SOUL | ARETHA FRANKLIN | SOUL | 1994-04-29 |
| MOONDANCE | VAN MORRISON | POP-ROCK | 2004-06-03 |
+--------------+-----------------+----------+-------------+
3 rows in set (0.00 sec)

Si no deseamos ver los registros completos de una tabla, entonces tenemos que
usar los nombres de las columnas en las que estamos interesados separndolas por
coma. Por ejemplo, si deseamos conocer la fecha de adquisicin de nuestros discos,
debemos seleccionar la columna "ttulo" y "adquisicion":

mysql> SELECT titulo, adquisicion FROM discos;


+-----------------+-------------+
| titulo | adquisicion |
+-----------------+-------------+
| MADE IN JAPAN | 1999-02-04 |
| CLUES | 1998-03-17 |
| CABO DO MUNDO | 1999-05-13 |
| EN LA FUSA | 2000-08-27 |
| RUMBA ARGELINA | 1998-08-31 |
| SUPERNATURAL | 2001-09-11 |
| A PESAR DE TODO | 1991-02-09 |
| LADY SOUL | 1994-04-29 |
| GRATEST HITS | 1997-01-22 |
| MOONDANCE | 2004-06-03 |
+-----------------+-------------+
10 rows in set (0.00 sec)

Para conocer de que gneros musicales disponemos, usaremos la siguiente consulta:

mysql> SELECT SELECT genero FROM discos;


+-----------+
| genero |
+-----------+
| POP-ROCK |
| POP-ROCK |

Plataforma de Teleformacin de IFES Pgina 299 de 328


| FOLK |
| BRASILEO |
| ETNICO |
| POP-ROCK |
| FOLK |
| SOUL |
| FOLK |
| POP-ROCK |
+-----------+
10 rows in set (0.00 sec)
Sin embargo, debemos notar que la consulta recupera el nombre del gnero de
cada disco, y algunos de ellos aparecen ms de una vez. Para minimizar la salida,
agregaremos la palabra clave DISTINCT:

mysql> SELECT DISTINCT genero FROM discos;


+-----------+
| genero |
+-----------+
| POP-ROCK |
| FOLK |
| BRASILEO |
| ETNICO |
| SOUL |
+-----------+
5 rows in set (0.02 sec)

Se puede usar tambin una clausula WHERE para combinar seleccin de filas con
seleccin de columnas. Por ejemplo, para obtener el ttulo y interprete de los discos de
folk y pop-rock, usaremos la siguiente consulta:

mysql> SELECT titulo,autor FROM discos WHERE genero="FOLK" OR


genero="POP-ROCK";
+-----------------+-----------------+
| titulo | autor |
+-----------------+-----------------+
| MADE IN JAPAN | DEEP PURPLE |
| CLUES | ROBERT PALMER |
| CABO DO MUNDO | LUAR NA LUBRE |
| SUPERNATURAL | SANTANA |
| A PESAR DE TODO | HILARIO CAMACHO |
| GRATEST HITS | BOB DYLAN |
| MOONDANCE | VAN MORRISON |

Pgina 300 de 328 Introduccin a Linux


+-----------------+-----------------+
7 rows in set (0.00 sec)

Ordenar registros
Tenemos que notar en los ejemplos anteriores que las filas regresadas son mostradas
sin ningn orden en particular. Sin embargo, frecuentemente es ms fcil examinar
la salida de una consulta cuando las filas son ordenadas en alguna forma til. Para
ordenar los resultados, tenemos que usar una clausula ORDER BY.

Aqu aparecen algunos datos ordenados por fecha de adquisicin:

mysql> SELECT titulo,autor,adquisicion FROM discos WHERE


genero="FOLK"
-> ORDER BY adquisicion;
+-----------------+-----------------+-------------+
| titulo | autor | adquisicion |
+-----------------+-----------------+-------------+
| A PESAR DE TODO | HILARIO CAMACHO | 1991-02-09 |
| GRATEST HITS | BOB DYLAN | 1997-01-22 |
| CABO DO MUNDO | LUAR NA LUBRE | 1999-05-13 |
+-----------------+-----------------+-------------+
3 rows in set (0.04 sec

En las columnas de tipo carcter, el ordenamiento es ejecutado normalmente de forma


no sensitiva, es decir, no hay diferencia entre maysculas y minsculas. Sin embargo,
se puede forzar un ordenamiento sensitivo al usar el operador BINARY.

Para ordenar en orden inverso, debemos agregar la palabra clave DESC al nombre de
la columna que estamos usando en el ordenamiento.

mysql> SELECT titulo,autor,adquisicin FROM discos


-> ORDER BY adquisicion DESC;
+-----------------+--------------------+-------------+
| titulo | autor | adquisicion |
+-----------------+--------------------+-------------+
| MOONDANCE | VAN MORRISON | 2004-06-03 |
| SUPERNATURAL | SANTANA | 2001-09-11 |
| EN LA FUSA | VINICIUS DE MORAES | 2000-08-27 |
| CABO DO MUNDO | LUAR NA LUBRE | 1999-05-13 |
| MADE IN JAPAN | DEEP PURPLE | 1999-02-04 |

Plataforma de Teleformacin de IFES Pgina 301 de 328


| RUMBA ARGELINA | RADIO TARIFA | 1998-08-31 |
| CLUES | ROBERT PALMER | 1998-03-17 |
| GRATEST HITS | BOB DYLAN | 1997-01-22 |
| LADY SOUL | ARETHA FRANKLIN | 1994-04-29 |
| A PESAR DE TODO | HILARIO CAMACHO | 1991-02-09 |
+-----------------+--------------------+-------------+
10 rows in set (0.00 sec)
Podemos ordenar por mltiples columnas. Por ejemplo, para ordenar por gnero
musical y fecha de adquisicin, usaremos la siguiente consulta:

mysql> SELECT titulo,genero,adquisicin FROM discos


-> ORDER BY genero,adquisicin DESC;
+-----------------+-----------+-------------+
| titulo | genero | adquisicin |
+-----------------+-----------+-------------+
| EN LA FUSA | BRASILEO | 2000-08-27 |
| RUMBA ARGELINA | ETNICO | 1998-08-31 |
| CABO DO MUNDO | FOLK | 1999-05-13 |
| GRATEST HITS | FOLK | 1997-01-22 |
| A PESAR DE TODO | FOLK | 1991-02-09 |
| MOONDANCE | POP-ROCK | 2004-06-03 |
| SUPERNATURAL | POP-ROCK | 2001-09-11 |
| MADE IN JAPAN | POP-ROCK | 1999-02-04 |
| CLUES | POP-ROCK | 1998-03-17 |
| LADY SOUL | SOUL | 1994-04-29 |
+-----------------+-----------+-------------+
10 rows in set (0.00 sec)
En este caso se aprecia la palabra clave DESC se aplica slo a la columna nombrada
que le predede.

Borrar registros

Si deseamos borrar algn registro de la tabla 'discos' por la razn que sea, podemos
ejecutar el comando DELETE . Por ejemplo, si queremos borrar el disco 'RUMBA
ARGELINA' de nuestra tabla:

mysql> DELETE FROM discos WHERE titulo="RUMBA ARGELINA";


Query OK, 1 row affected (0.00 sec)

A continuacin, comprobamos que ya no sta en la tabla 'discos':

Pgina 302 de 328 Introduccin a Linux


mysql> SELECT * FROM discos;
+-----------------+--------------------+-----------+-------------
+
| titulo | autor | genero | adquisicin |
+-----------------+--------------------+-----------+-------------
+
| MADE IN JAPAN | DEEP PURPLE | POP-ROCK | 1999-02-04 |
| CLUES | ROBERT PALMER | POP-ROCK | 1998-03-17 |
| CABO DO MUNDO | LUAR NA LUBRE | FOLK | 1999-05-13 |
| EN LA FUSA | VINICIUS DE MORAES | BRASILEO | 2000-08-27 |
| SUPERNATURAL | SANTANA | POP-ROCK | 2001-09-11 |
| A PESAR DE TODO | HILARIO CAMACHO | FOLK | 1991-02-09 |
| LADY SOUL | ARETHA FRANKLIN | SOUL | 1994-04-29 |
| GRATEST HITS | BOB DYLAN | FOLK | 1997-01-22 |
| MOONDANCE | VAN MORRISON | POP-ROCK | 2004-06-03 |
+-----------------+--------------------+-----------+-------------
+
9 rows in set (0.00 sec)

Clculos con fechas


MySQL proporciona diversas funciones que se pueden usar para efectuar clculos
sobre fechas, por ejemplo, para calcular antigedades o extraer partes de una fecha
(da, mes, ao, etc).

Por ejemplo, para determinar la antigedad (en aos completos) de cada uno de
nuestros discos, tenemos que calcular la diferencia de aos de la fecha actual y
la fecha de adquisicin, y entonces retar uno si la fecha actual ocurre antes en el
calendario que la fecha de adquisicin. Las siguientes consultas muestran la fecha
actual, la fecha de adquisicin y la antigedad para cada disco.

mysql> SELECT titulo, adquisicion, CURRENT_DATE,


-> (YEAR(CURRENT_DATE) - YEAR(adquisicion))
->-(RIGHT(CURRENT_DATE,5) < RIGHT(adquisicion,5)) AS antiguedad
FROM discos;

+-----------------+-------------+--------------+------------+
| titulo | adquisicion | CURRENT_DATE | antiguedad |
+-----------------+-------------+--------------+------------+
| MADE IN JAPAN | 1999-02-04 | 2004-11-08 | 5 |
| CLUES | 1998-03-17 | 2004-11-08 | 6 |

Plataforma de Teleformacin de IFES Pgina 303 de 328


| CABO DO MUNDO | 1999-05-13 | 2004-11-08 | 5 |
| EN LA FUSA | 2000-08-27 | 2004-11-08 | 4 |
| SUPERNATURAL | 2001-09-11 | 2004-11-08 | 3 |
| A PESAR DE TODO | 1991-02-09 | 2004-11-08 | 13 |
| LADY SOUL | 1994-04-29 | 2004-11-08 | 10 |
| GRATEST HITS | 1997-01-22 | 2004-11-08 | 7 |
| MOONDANCE | 2004-06-03 | 2004-11-08 | 0 |
+-----------------+-------------+--------------+------------+
9 rows in set (0.04 sec)

Aqu, YEAR( ) obtiene

nicamente el ao y RIGHT( ) obtiene los cinco caracteres ms a la derecha de cada


una de las fechas, que representan el mes y el da (MM-DD). La parte de la expresin
que compara los valores MM-DD se evala a 1 o 0, y permite ajustar el valor de la
antigedad en el caso de que el valor MM-DD de la fecha actual ocurra antes del valor
MM-DD de la fecha de adquisicin.

Dado que la expresin en s es bastante fea, se ha usado un alias (antiguedad) que es


el que aparece como etiqueta en la columna que muestra el resultado de la consulta.
Esta consulta debe trabajar bien, pero el resultado puede ser de alguna manera ms
til si las filas son presentadas en algn orden. Para ello haremos uso de la clusula
ORDER BY.

Por ejemplo, para ordenar por ttulo, usaremos la siguiente consulta:

mysql> SELECT titulo, adquisicin, CURRENT_DATE,


-> (YEAR(CURRENT_DATE) - YEAR(adquisicin))
-> - (RIGHT(CURRENT_DATE,5) < RIGHT(adquisicin,5))
-> AS antiguedad FROM discos ORDER BY titulo;
+-----------------+-------------+--------------+------------+
| titulo | adquisicin | CURRENT_DATE | antiguedad |
+-----------------+-------------+--------------+------------+
| A PESAR DE TODO | 1991-02-09 | 2004-11-08 | 13 |
| CABO DO MUNDO | 1999-05-13 | 2004-11-08 | 5 |
| CLUES | 1998-03-17 | 2004-11-08 | 6 |
| EN LA FUSA | 2000-08-27 | 2004-11-08 | 4 |
| GRATEST HITS | 1997-01-22 | 2004-11-08 | 7 |
| LADY SOUL | 1994-04-29 | 2004-11-08 | 10 |
| MADE IN JAPAN | 1999-02-04 | 2004-11-08 | 5 |
| MOONDANCE | 2004-06-03 | 2004-11-08 | 0 |
| SUPERNATURAL | 2001-09-11 | 2004-11-08 | 3 |

Pgina 304 de 328 Introduccin a Linux


+-----------------+-------------+--------------+------------+
9 rows in set (0.00 sec)

Para ordenar por antigedad en lugar de por ttulo, n

icamente tenemos que usar una clusula ORDER BY diferente:

mysql> SELECT titulo, adquisicin, CURRENT_DATE,


-> (YEAR(CURRENT_DATE) - YEAR(adquisicin))
-> - (RIGHT(CURRENT_DATE,5) < RIGHT(adquisicin,5))
-> AS antiguedad FROM discos ORDER BY antiguedad;
+-----------------+-------------+--------------+------------+
| titulo | adquisicin | CURRENT_DATE | antiguedad |
+-----------------+-------------+--------------+------------+
| MOONDANCE | 2004-06-03 | 2004-11-08 | 0 |
| SUPERNATURAL | 2001-09-11 | 2004-11-08 | 3 |
| EN LA FUSA | 2000-08-27 | 2004-11-08 | 4 |
| MADE IN JAPAN | 1999-02-04 | 2004-11-08 | 5 |
| CABO DO MUNDO | 1999-05-13 | 2004-11-08 | 5 |
| CLUES | 1998-03-17 | 2004-11-08 | 6 |
| GRATEST HITS | 1997-01-22 | 2004-11-08 | 7 |
| LADY SOUL | 1994-04-29 | 2004-11-08 | 10 |
| A PESAR DE TODO | 1991-02-09 | 2004-11-08 | 13 |
+-----------------+-------------+--------------+------------+
9 rows in set (0.00 sec)

Qu sucede si deseamos conocer cules de nuestros discos hemos comprado en un


mes concreto? Para este tipo de clculos, el ao y el da son irrelevantes; simplemente
tenemos que extraer el valor del mes en la columna nacimiento. Como se mencion
anteriormente, MySQL proporciona diversas funciones para trabajar y manipular
fechas, en este caso haremos uso de la funcin MONTH( ). Para ver como trabaja,
vamos a ejecutar una consulta muy simple que muestra tanto el valor de una fecha
como el valor que regresa la funcin MONTH( ).

mysql> SELECT titulo, adquisicin, MONTH(adquisicin) FROM


discos;
+-----------------+-------------+--------------------+
| titulo | adquisicin | MONTH(adquisicin) |
+-----------------+-------------+--------------------+
| MADE IN JAPAN | 1999-02-04 | 2 |
| CLUES | 1998-03-17 | 3 |
| CABO DO MUNDO | 1999-05-13 | 5 |

Plataforma de Teleformacin de IFES Pgina 305 de 328


| EN LA FUSA | 2000-08-27 | 8 |
| SUPERNATURAL | 2001-09-11 | 9 |
| A PESAR DE TODO | 1991-02-09 | 2 |
| LADY SOUL | 1994-04-29 | 4 |
| GRATEST HITS | 1997-01-22 | 1 |
| MOONDANCE | 2004-06-03 | 6 |
+-----------------+-------------+--------------------+
9 rows in set (0.00 sec)

Encontrar ahora, por ejemplo, los discos que hemos comprado en el mes de febrero es
muy sencillo.

mysql> SELECT titulo, adquisicin, MONTH(adquisicin) FROM discos


WHERE MONTH(adquisicin)=2;
+-----------------+-------------+--------------------+
| titulo | adquisicin | MONTH(adquisicin) |
+-----------------+-------------+--------------------+
| MADE IN JAPAN | 1999-02-04 | 2 |
| A PESAR DE TODO | 1991-02-09 | 2 |
+-----------------+-------------+--------------------+
2 rows in set (0.00 sec)

Trabajar con valores nulos


El valor NULL puede sorprendernos mientras no hayamos trabajado con l.
Conceptualmente, NULL significa un valor que hace falta, o un valor desconocido, y es
tratado de una manera diferente a otros valores. Para verificar si un valor es NULL no
podemos usar los operadores de comparacin tales como =, > , o < .

Para probar esto ejecutemos la siguiente consulta:

mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;


+----------+-----------+----------+----------+
| 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
| NULL | NULL | NULL | NULL |
+----------+-----------+----------+----------+
1 row in set (0.00 sec)

Claramente observamos que no obtenemos resultados con algn significado con estos
operadores. Es por ello que tenemos que usar los operadores IS NULL e IS NOT
NULL:

Pgina 306 de 328 Introduccin a Linux


mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
| 0 | 1 |
+-----------+---------------+
1 row in set (0.00 sec)

En MySQL, 0 o NULL significan falso y cualquier otro valor significa verdadero. El valor
que se considera verdadero por defecto es 1.

Cuando se usa un ORDER BY , los valores NULL son siempre ordenados primero, an
cuando se use la clusula DESC .

Coincidencia de patrones
MySQL proporciona mtodos de coincidencia de patrones basados en SQL estndar,
as como tambin basados en expresiones regulares, de manera similar a las utilidades
de Unix tales como vi, grep y sed.

La coincidencia de patrones basada en SQL nos permite usar _ (guin bajo) para un
solo carcter y % para un arbitrario nmero de caracteres. En MySQL, los patrones
SQL no son sensibles al uso de maysculas y minsculas.

Es importante notar que no se usan los operadores = o < > cuando se usan los
patrones SQL; en su lugar se usan los operadores LIKE y NOT LIKE . A continuacin,
presentamos algunos ejemplos.

Para encontrar los ttulos de discos que comienzan con 'c' :

mysql> SELECT * FROM discos WHERE titulo LIKE "c%";


+---------------+---------------+----------+-------------+
| titulo | autor | genero | adquisicion |
+---------------+---------------+----------+-------------+
| CLUES | ROBERT PALMER | POP-ROCK | 1998-03-17 |
| CABO DO MUNDO | LUAR NA LUBRE | FOLK | 1999-05-13 |
+---------------+---------------+----------+-------------+
2 rows in set (0.00 sec)

Para encontrar los ttulos de discos que finalizan con 'do' :

mysql> SELECT * FROM discos WHERE titulo LIKE "%do";

Plataforma de Teleformacin de IFES Pgina 307 de 328


+-----------------+-----------------+--------+-------------+
| titulo | autor | genero | adquisicion |
+-----------------+-----------------+--------+-------------+
| CABO DO MUNDO | LUAR NA LUBRE | FOLK | 1999-05-13 |
| A PESAR DE TODO | HILARIO CAMACHO | FOLK | 1991-02-09 |
+-----------------+-----------------+--------+-------------+
2 rows in set (0.00 sec)

Para encontrar los ttulos de discos que contienen una s :

mysql> SELECT * FROM discos WHERE titulo LIKE "%s%";


+-----------------+--------------------+-----------+-------------
+
| titulo | autor | genero | adquisicin |
+-----------------+--------------------+-----------+-------------
+
| CLUES | ROBERT PALMER | POP-ROCK | 1998-03-17 |
| EN LA FUSA | VINICIUS DE MORAES | BRASILEO | 2000-08-27 |
| SUPERNATURAL | SANTANA | POP-ROCK | 2001-09-11 |
| A PESAR DE TODO | HILARIO CAMACHO | FOLK | 1991-02-09 |
| LADY SOUL | ARETHA FRANKLIN | SOUL | 1994-04-29 |
| GRATEST HITS | BOB DYLAN | FOLK | 1997-01-22 |
+-----------------+--------------------+-----------+-------------
+
6 rows in set (0.00 sec)

El otro tipo de coincidencia de patrones proporcionado por MySQL hace uso de


expresiones regulares. Para hacer uso de estos tipos de patrones se tienen que usar
los operadores REGEX P y NOT REGEXP ( o RLIKE y NOT RLIKE , los cules son
sinnimos).

Algunas caractersticas de las expresiones regulares son:

El carcter punto ( . ) coincide con cualquier carcter.


Una clase de caracteres [...] coincide con cualquier carcter dentro de los
parntesis cuadrados. Por ejemplo, [abc] coincide con a, b o c. Para nombrar
un rango de caracteres, se usa el guin. [a-z] coincide con cualquier letra
minscula, mientras que [0-9] coincide con cualquier dgito.
El carcter asterisco ( * ) coincide con cero o ms instancias de lo que le
preceda. Por ejemplo, x* coincide con cualquier nmero de caracteres
x, [0-9]* coincide con cualquier nmero de dgitos, y .* (punto asterisco)
coincide con cualquier cosa.

Pgina 308 de 328 Introduccin a Linux


El patrn coincide si ste ocurre en cualquier parte del valor que est
siendo evaluado. (Los patrones SQL coinciden nicamente en los valores
completos.)
Para indicar el inicio o el final de un valor que est siendo evaluado se usan
los caracteres ^ y $ respectivamente.

Para demostrar como se usan las expresiones regulares, se van a mostrar los ejemplos
presentados anteriormente con el operador LIKE , ahora con el operador REGEXP .

Para encontrar los ttulos de discos que comienzan con 'c' :

mysql> SELECT * FROM discos WHERE titulo REGEXP "^c";


+---------------+---------------+----------+-------------+
| titulo | autor | genero | adquisicin |
+---------------+---------------+----------+-------------+
| CLUES | ROBERT PALMER | POP-ROCK | 1998-03-17 |
| CABO DO MUNDO | LUAR NA LUBRE | FOLK | 1999-05-13 |
+---------------+---------------+----------+-------------+
2 rows in set (0.00 sec)

Antes de la versin 3.23.4 de MySQL, el operador REGEXP era sensible al uso de


maysculas y minsculas, as que dependiendo de la versin de MySQL con la que
se est trabajando podemos ver que obtenemos o no algn resultado en la consulta
anterior. Se puede usar tambin la siguiente consulta para buscar los ttulos de los
discos que inician con la letra 'c', no importando si es mayscula o minscula.

mysql> SELECT * FROM discos WHERE titulo REGEXP "^[cC]";


+---------------+---------------+----------+-------------+
| titulo | autor | genero | adquisicin |
+---------------+---------------+----------+-------------+
| CLUES | ROBERT PALMER | POP-ROCK | 1998-03-17 |
| CABO DO MUNDO | LUAR NA LUBRE | FOLK | 1999-05-13 |
+---------------+---------------+----------+-------------+
2 rows in set (0.00 sec)

Desde la versin 3.23.4, para forzar que el operador REGEXP sea sensible al uso de
maysculas y minsculas, se tiene que usar la palabra clave BINARY para hacer de
una de las cadenas, una cadena binaria. Observamos los resultados de la siguientes
consultas.

mysql> SELECT * FROM discos WHERE titulo REGEXP BINARY "^c";


Empty set (0.00 sec)

Plataforma de Teleformacin de IFES Pgina 309 de 328


mysql> SELECT * FROM discos WHERE titulo REGEXP BINARY "^C";
+---------------+---------------+----------+-------------+
| titulo | autor | genero | adquisicin |
+---------------+---------------+----------+-------------+
| CLUES | ROBERT PALMER | POP-ROCK | 1998-03-17 |
| CABO DO MUNDO | LUAR NA LUBRE | FOLK | 1999-05-13 |
+---------------+---------------+----------+-------------+
2 rows in set (0.00 sec)

Para encontrar los ttulos de los discos que finalizan con la palabra 'do' , haremos uso
del carcter $.

mysql> SELECT * FROM discos WHERE titulo REGEXP "do$";


+-----------------+-----------------+--------+-------------+
| titulo | autor | genero | adquisicin |
+-----------------+-----------------+--------+-------------+
| CABO DO MUNDO | LUAR NA LUBRE | FOLK | 1999-05-13 |
| A PESAR DE TODO | HILARIO CAMACHO | FOLK | 1991-02-09 |
+-----------------+-----------------+--------+-------------+
2 rows in set (0.00 sec)

Para encontrar los ttulos de los discos que contienen una letra s, la consulta sera:

mysql> SELECT * FROM discos WHERE titulo REGEXP "s";


+-----------------+--------------------+-----------+-------------
+
| titulo | autor | genero | adquisicin |
+-----------------+--------------------+-----------+-------------
+
| CLUES | ROBERT PALMER | POP-ROCK | 1998-03-17 |
| EN LA FUSA | VINICIUS DE MORAES | BRASILEO | 2000-08-27 |
| SUPERNATURAL | SANTANA | POP-ROCK | 2001-09-11 |
| A PESAR DE TODO | HILARIO CAMACHO | FOLK | 1991-02-09 |
| LADY SOUL | ARETHA FRANKLIN | SOUL | 1994-04-29 |
| GRATEST HITS | BOB DYLAN | FOLK | 1997-01-22 |
+-----------------+--------------------+-----------+-------------
+
6 rows in set (0.00 sec)

Pgina 310 de 328 Introduccin a Linux


Contar filas
Las bases de datos son usadas frecuentemente para responder una pregunta, "Con
qu frecuencia ocurre un cierto tipo de dato en una tabla?". Por ejemplo, tal vez
queremos conocer cuntos discos tenemos, o cuntos discos hay de cada gnero. La
funcin COUNT( ) es la utilizamos en esta situacin.

Si deseamos conocer cuntas discos hay por gnero musical, la consulta es la


siguiente:

mysql> SELECT COUNT(*) FROM discos;


+----------+
| COUNT(*) |
+----------+
| 9 |
+----------+
1 row in set (0.00 sec)

Si deseamos conocer cuntas discos hay por gnero musical, la consulta es la


siguiente:

mysql> SELECT genero,COUNT(*) FROM discos GROUP BY GENERO;


+-----------+----------+
| genero | COUNT(*) |
+-----------+----------+
| BRASILEO | 1 |
| FOLK | 3 |
| POP-ROCK | 4 |
| SOUL | 1 |
+-----------+----------+
4 rows in set (0.00 sec)

Se debe notar que hemos usado una clusula GROUP BY para agrupar todos los
registros de cada gnero musical. Si no hacemos esto, obtendremos un mensaje de
error:

mysql> SELECT genero,COUNT(*) FROM discos;


ERROR 1140: Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with
no GROUP columns is illegal if there is no GROUP BY clauseclause

Plataforma de Teleformacin de IFES Pgina 311 de 328


El uso de la funcin COUNT( ) en conjunto con la clusula GROUP BY es muy til en
diversas situaciones como, por ejemplo, si queremos saber el nmero de discos por
gnero e intrprete:

mysql> SELECT genero, autor, COUNT(*) FROM discos GROUP BY


genero, autor;
+-----------+--------------------+----------+
| genero | autor | COUNT(*) |
+-----------+--------------------+----------+
| BRASILEO | VINICIUS DE MORAES | 1 |
| FOLK | BOB DYLAN | 1 |
| FOLK | HILARIO CAMACHO | 1 |
| FOLK | LUAR NA LUBRE | 1 |
| POP-ROCK | DEEP PURPLE | 1 |
| POP-ROCK | ROBERT PALMER | 1 |
| POP-ROCK | SANTANA | 1 |
| POP-ROCK | VAN MORRISON | 1 |
| SOUL | ARETHA FRANKLIN | 1 |
+-----------+--------------------+----------+
9 rows in set (0.01 sec)

No es necesario que se obtengan todos los datos de una tabla cuando se usa la
funcin COUNT( ). Por ejemplo, en la consulta anterior, para ver nicamente los datos
de folk y soul, la consulta queda de la siguiente manera:

mysql> SELECT genero, autor, COUNT(*) FROM discos


-> WHERE genero="FOLK" OR genero="SOUL"
-> GROUP BY genero,autor;
+--------+-----------------+----------+
| genero | autor | COUNT(*) |
+--------+-----------------+----------+
| FOLK | BOB DYLAN | 1 |
| FOLK | HILARIO CAMACHO | 1 |
| FOLK | LUAR NA LUBRE | 1 |
| SOUL | ARETHA FRANKLIN | 1 |
+--------+-----------------+----------+
4 rows in set (0.00 sec)

Pgina 312 de 328 Introduccin a Linux


Usar ms de una tabla
La tabla 'discos' nos ha servido hasta este momento para tener guardados los datos
acerca de los discos que tenemos. Si deseamos guardar algn otro tipo de informacin
acerca de ellos, tal como los eventos que se producen con los discos -prestamos a
amigos o compaeros, perdidas o deterioro, etc.- necesitaremos de otra tabla. Para
ello, necesitamos:

El ttulo del disco para saber a cul de ellos se refiere el evento.


Una fecha para saber cuando ocurri el evento.
Una descripcin del evento.
Un campo que indique el tipo de evento, si deseamos clasificarlos.

Dadas estas condiciones, la sentencia para crear la tabla eventos queda de la siguiente
manera:

mysql> CREATE TABLE eventos(titulo varchar(40),fecha date,


-> tipo varchar(15),descripcion varchar(255));
Query OK, 0 rows affected (0.00 sec)

De manera similar a la tabla 'discos', es ms fcil cargar los datos de los registros
iniciales al crear un archivo de texto delimitado por tabuladores 'eventos.txt' en el que
se tenga la siguiente informacin:

ttulo fecha tipo descripcin


MADE IN JAPAN 2003-02-15 deterioro Rayada el tema dos.
CLUES 2004-03-23 perdida Falta portada trasera
CABO DO MUNDO 2004-11-19 copia Dos copias realizadas
EN LA FUSA 2003-04-21 prestamo Prestamo a Ana
Lopez
A PESAR DE TODO 2004-04-27 devolucion Devuelto por Jaime
Meilan del prestamo
LADY SOUL 2003-10-03 prestamo Prestamo a Claudia
Romero
Cargamos los datos desde este archivo con la siguiente sentencia:

mysql> LOAD DATA LOCAL INFILE "eventos.txt" INTO TABLE eventos;


Query OK, 6 rows affected (0.00 sec)

Plataforma de Teleformacin de IFES Pgina 313 de 328


Records: 6 Deleted: 0 Skipped: 0 Warnings: 0

Tomando en cuenta lo que hemos aprendido en la ejecucin de consultas sobre la tabla


'discos', debemos de ser capaces de recuperar algunos datos de la tabla eventos; los
principios son los mismos. Sin embargo puede suceder que la tabla eventos por s
misma sea insuficiente para darnos las respuestas que necesitamos.
Supongamos que deseamos conocer el interprete de cada disco que hemos prestado.
La tabla 'eventos' indica cuando ocurri dicho evento, pero el dato interprete est
almacenado en la tabla 'discos', por lo tanto, necesitamos ambas tablas para realizar
esta consulta.

mysql> SELECT discos.titulo, discos.autor,


-> descripcion FROM discos, eventos
-> WHERE discos.titulo=eventos.titulo
-> AND tipo="prestamo";
+------------+--------------------+---------------------------+
| titulo | autor | descripcion |
+------------+--------------------+---------------------------+
| EN LA FUSA | VINICIUS DE MORAES | Prestamo a Ana Lopez |
| LADY SOUL | ARETHA FRANKLIN | Prestamo a Claudia Romero |
+------------+--------------------+---------------------------+
2 rows in set (0.00 sec)

Hay diversas cosas que notar acerca de esta consulta:

La clusula FROM lista dos tablas dado que la consulta necesita informacin
que se encuentra en ambas tablas.
Cuando se combina (junta) informacin de mltiples tablas, es necesario
especificar los registros de una tabla que pueden coincidir con los registros
en la otra tabla. En nuestro caso, ambas columnas tienen una columna
"titulo". La consulta usa la clusula WHERE para obtener los registros cuyo
valor en dicha columna es el mismo en ambas tablas.
Dado que la columna "titulo" ocurre en ambas tablas, debemos de
especificar a cul de las columnas nos referimos. Esto se hace al anteponer
el nombre de la tabla al nombre de la columna.

Utilizar mysql en modo batch


En todos los ejemplos mostrados anteriormente, hemos usado mysq l de manera
interactiva para ejecutar algunas consultas y ver los resultados. Sin embargo, es
posible usar mysql en modo batch. Para hacer esto tenemos que poner los comandos

Pgina 314 de 328 Introduccin a Linux


que deseamos ejecutar dentro de un archivo, y entonces decirle a mysql que lea los
comandos de dicho archivo:

shell> mysql < archivo-batch

Si se usa mysql de esta manera, se est creando un pequeo script, y posteriormente


se est ejecutando dicho script.

Al ejecutar las sentencias y comandos que se encuentran en el script, es posible que


suceda algn error. Si se desea que se continuen ejecutando las dems sentencias, a
pesar de que haya ocurrido un error, se tiene que usar la opcin force

shell> mysql --force < archivo-batch

As mismo, es posible especificar los parmetros de conexin desde la lnea de


comandos. Por ejemplo:

s
hell> mysql -h localhost -u chema -p < archivo-batch

Algunas de las ventajas de usar un script son las siguientes:

Si se ejecutan un cierto nmero de consultas de modo frecuente, al hacer un


script nos evitamos tener que volver a teclear cada una de las consultas.
Podemos generar nuevas consultas similares a las existentes copiando y
editando estos scripts.
Al escribir consultas de varias lneas, los scripts ayudan bastante para que
no se tengan que escribir todas las lneas nuevamente si se comete algn
error.
Si ejecutamos consultas que producen una gran cantidad de datos, es
posible usar un paginador para examinar los resultados de una mejor
manera.

shell> mysql < archivo-batch | less

Se puede guardar la salida en un archivo para revisarla posteriormente.

shell> mysql < archivo-batch > salida-del-script.txt

Hay que mencionar que el formato de la salida es ms simple cuando se ejecuta mysql
en modo batch, que cuando se usa de manera interactiva, como se puede ver en el
siguiente ejemplo:

Plataforma de Teleformacin de IFES Pgina 315 de 328


Queremos obtener un listado de los gneros musicales de la tabla 'discos'.Si se ejecuta
en modo interactivo:

mysql> SELECT DISTINCT genero FROM discos;


+-----------+
| genero |
+-----------+
| POP-ROCK |
| FOLK |
| BRASILEO |
| SOUL |
+-----------+
4 rows in set (0.00 sec)

Si se ejecuta en modo batch:

shell> mysql -h localhost -u root < generos.sql


genero
POP-ROCK
FOLK
BRASILEO
SOUL

Si se desea obtener la salida que proporciona el modo interactivo, se tiene que usar la
opcin -t .

shell> mysql -t -h localhost -u root < generos.sql


+-----------+
| genero |
+-----------+
| POP-ROCK |
| FOLK |
| BRASILEO |
| SOUL |
+-----------+

Hemos utilizado el archivo generos.sql, un fichero de texto que contiene dos


instrucciones mysql:

USE musica;
SELECT DISTINCT genero FROM discos;

Pgina 316 de 328 Introduccin a Linux


Grabacin de cds

Grabar CD-ROM en consola


Existen multitud de programas grficos para la grabacin de CD?s, (k3b, nerolinux...)
pero en este manual, comenzaremos por la base, aprenderemos hacerlo desde
consola. Que necesitamos, y que podemos hacer para diferentes casos.

Hay que instalar y recompilar el kernel para grabadoras IDE,


En la seccin: ATA/IDE/MFM/RLL -> IDE, ATA, ATAPI
Desactivar IDE/ATAPI CDROM
Activar SCSI emulation support
En la seccin: SCSI support
Activar SCSI disk support
Activar SCSI CD-ROM support
Activar SCSI generic support
Instalamos los paquetes cdrecord, mkisofs y cdparanoia, desde una
distribucin Debian, usaremos la siguiente lnea.
apt-get install cdrecord mkisofs cdparanoia
Para conseguir informacin sobre si la instalacin ha sido correcta y dnde
se encuentran los dispositivos
cdrecord -scanbus
Para Copiar CD de DATOS
Montamos CD
mount -t iso9660 -ro unhide /dev/sr1 /cdrom
/dev/sr1
es el dispositivo donde este nuestro cdrom
-ro
l
o montamos en slo lectura
unhide
Para que lea tambin los ficheros ocultos
Creamos la Imagen del CDROM
mkisofs -R -J -T -o /tmp/imagen.iso /cdrom
-R= Genera registros SUSP y RR usando Rock Ridge
-T= Genera un archivo TRANS.TBL en cada directorio del CD-Rom, que
puede ser usado en sistemas incapaces de usar Rock Ridge para ayudar
a establecer los nombres de archivo correctos. Hay tambin informacin
presente en el archivo que indica el mayor y menor nmero para unidades
de bloque y carcter y cada symlink tiene el nombre del archivo enlace dado.

Plataforma de Teleformacin de IFES Pgina 317 de 328


-J= Genera nombres de directorio Joliet junto con los iso9660. sto es
principalmente til cuando los discos van a ser usados en mquinas bajo
WindowsNT y Windows95.
-o= es el nombre del archivo el cual el sistema de archivo iso9660 deberia
escribir. Esto puede ser un archivo de disco, una unidad de cinta, o puede
corresponder directamente a la unidad de la grabadora. Si no se especifica
se usa stdout. Perctese de que la salida puede ser una unidad de bloque
especial para una unidad de disco normal, en cuyo caso la particion del
disco puede ser montada y examinada para asegurar que la preparacin se
efectua correctamente.
Otras opciones:
cat /dev/cdrom > imageCD.iso
dd if=/dev/cdrom/ of=imageCD.iso
G rabamos el cd
cdrecord -v dev=0,0,0 fs=10M speed=4 /tmp/imagen.iso
speed=X Donde "x" es la velocidad de grabacin. Ejemplo: una regrabadora
24x de lectura 2x de regrabacin y 4x de grabacin, speed=4
Luego si no queremos conservar la imagen porque no vamos hacer ms
copias, haremos lo siguiente.
rm /tmp/imagen.iso
Un Script que hace todo completo
#!/bin/bash
/bin/mount -t iso9660 -ro unhide /dev/sr1 /cdrom
/usr/bin/mkisofs -R -J -T -o /tmp/imagen.iso /
cdrom
/usr/bin/cdrecord -v dev=0,0,0 fs=10M speed=4 /
tmp/imagen.iso
/bin/rm /tmp/imagen.iso
/bin/umount /cdrom
Para Copiar Msica
Mostrar las canciones que tiene el cd
cdparanoia -Q -d /dev/sr1
Extraer el audio n: numero de canciones
cdparanoia -W -Z -X -B -d /dev/sr1 -v 1-n
-Wdesactivar correccin de rayado. Detecta y lleva a cabo la sincronizacin
entre rayaduras, pero no intenta reparar los datos daados. Si algn archivo
de informacin esta en uso (-i) guarda la posicin de las rayaduras.
-Zdesactivar paranoia. Desactiva la verificacin de datos y las caractersticas
de correccin. Con esta opcin, cdparanoia lee los datos exactamente
como cdda2wav. Esta opcin implica que -Y esta activado, pero no es
equivalente a -Z -W -X -Y como el -W a travs de las opciones -Z especifica
niveles estratificados de verificacin. La ltima opcin especificada sienta
precedente.

Pgina 318 de 328 Introduccin a Linux


-Xdesactivar deteccin de rayado. Ni busca rayaduras ni hace una
sincronizacin de tolerancia a rayaduras durante la verificacin. Con -X
activado, un disco rayado provocar que cdparanoia cancele la lectura.
-dforzar unidad de cdrom. Fuerza el interfaz a leer del dispositivo algo ms
de lo que primeramente encontr legible en el CDROM. Puede ser usado
para especificar unidades de cualquier tipo de interfaz vlido (ATAPI, SCSI o
propietaria).
-B - batch. Al estilo del procesamiento de salida etiquetado de cdda2wav,
cdparanoia dividir la salida en multiples archivos, por pistas. Los nombres
de los archivos resultantes estan nombrados como "track#.".
Grabar
cdrecord -v speed=4 -eject fs=20M dev=0,0 -audio -
nopreemp track* -defpregap=[tiempo en segundos]
Otro script para copiar un cd de msica
#!/bin/bash
/usr/bin/cdparanoia -Q -d /dev/sr1
cd /tmp/
echo Cuantas canciones hay?
read CANCIONES
/usr/bin/cdparanoia -W -Z -X -B -d /dev/sr1 -v 1-
$CANCIONES
/usr/bin/cdrecord -v speed=4 -eject fs=20M
dev=0,0 -audio -nopreemp track* -defpregap=0
rm /tmp/track*
Para Copiar CD de msica en directo (sin espacio y cortes entre canciones)
Instalamos cdda2wav
apt-get install cdda2wav
Mostrar las canciones que tiene el cd
cdparanoia -Q -d /dev/sr1
Extraer el audio en un slo fichero. n: numero de canciones
cdda2wav -D /dev/sr1 -s -x -t 1+n
Grabamos los ficheros *.wav a un cd
cdrecord -v speed=X -eject fs=20M dev=0,0 -audio
archivo.wav
speed=XDonde "x" es la velocidad de grabacin. Ejemplo: una regrabadora
24x de lectura 2x de regrabacin y 4x de grabacin, speed=4
-audioparmetro que especifica el formato de salida del archivo, con lo cual
para cada pista crea un archivo .wav diferente
archivo.wavcorresponde al archivo o seleccion de archivos que acaben
en .wav, por lo general el cdda2wav los extrae como audio_NN.wav donde
NN es el numero de pista..
Grabar / Clonar VCD
Hacer una imagen VCD (Mi CDROM est en el 0,1,0)

Plataforma de Teleformacin de IFES Pgina 319 de 328


cdrdao read-cd -v 2 --device 0,1,0 --read-raw --driver
generic-mmc --datafile imagen.bin imagen.toc
Copiar la imagen en el CD
cdrdao write -v 2 --device 0,1,0 --speed 16 --driver
generic-mmc --buffers 64 imagen.toc
Borrado del .toc
cdrecord -v blank=fast

cdrecord.conf

#ident @(#)cdrecord.dfl 1.1 98/12/06 Copyr 1998 J. Schilling


#
# This file is /etc/cdrecord.conf
# It contains defaults that are used if no command line option
# or environment is present.
#
# The default device, if not specified elswhere #
CDR_DEVICE=hp8100
#
# The default speed, if not specified elswhere
#
#CDR_SPEED=2
#
# The default FIFO size if, not specified elswhere
#
#CDR_FIFOSIZE=16m
#
# The following definitions allow abstract device names.
# They are used if the device name does not contain the
# the characters ',', ':', '/' and '@'
#
# drive name device speed fifosize
#
#teac= 1,3,0 -1 -1
#panasonic= 1,4,0 -1 -1
#yamaha= 1,5,0 -1 -1
#cdrom= 0,6,0 2 1m
hp8100= 0,0,0 2 16m

Pgina 320 de 328 Introduccin a Linux


Programacin en Bash
Adaptado de:
http://es.tldp.org/COMO-INSFLUG/COMOs/Bash-Prog-Intro-COMO/Bash-
Prog-Intro-COMO.html
, un documento libre de Mike G (mikkey)

Scripts muy sencillos


Este COMO tratar de darle algunos consejos sobre la programacin de shell scripts,
basndose profundamente en ejemplos.

En esta seccin encontrar varios scripts pequeos que esperanzadamente le


ayudarn a entender algunas tcnicas.

Tpico script hola mundo


#!/bin/bash echo Hola Mundo
Este script tiene slo dos lneas. La primera le indica al sistema qu programa usar
para ejecutar el fichero.

La segunda lnea es la nica accin realizada por este script, que imprime 'Hola
Mundo'en la terminal.

Si le sale algo como ./hello.sh: Comando desconocido., probablemente la primera lnea,


'#!/bin/bash', est mal. Ejecute whereis bash, o vea 'encontrando el bash'para saber
cmo debe escribir esta lnea.

Un script de copia de seguridad muy simple


#!/bin/bash tar -cZf /var/my-backup.tgz /home/yo/
En este script, en vez de imprimir un mensaje en la terminal, creamos un tar-ball del
directorio home de un usuario. Esto NO pretende ser un script til; ms tarde se ofrece
un script de copia de seguridad ms til.

Plataforma de Teleformacin de IFES Pgina 321 de 328


Todo sobre redireccin
Teora y referencia rpida
Existen 3 descriptores de ficheros: stdin, stdout y stderr (std=estndar).

Bsicamente, usted puede:

1. redirigir stdout a un fichero


2. redirigir stderr a un fichero
3. redirigir stdout a stderr
4. redirigir stderr a stdout
5. redirigir stderr y stdout a un fichero
6. redirigir stderr y stdout a stdout
7. redirigir stderr y stdout a stderr

El nmero 1 'representa'a stdout, y 2 a stderr.

Una pequea nota para ver todo esto: con el comando less puede visualizar stdout
(que permanecer en el bfer) y stderr, que se imprimir en la pantalla, pero ser
borrado si intenta leer el bfer.

Ejemplo: stdout a un fichero


Esto har que la salida de un programa se escriba en un fichero.

ls -l > ls-l.txt
En este caso, se crear un fichero llamado 'ls-l.txt' que contendr lo que se vera en la
pantalla si escribiese el comando 'ls -l'y lo ejecutase.

Ejemplo: stderr a un fichero


Esto har que la salida stderr de un programa se escriba en un fichero.

grep da * 2> errores-de-grep.txt


En este caso, se crear un fichero llamado 'errores-de-grep.txt' que contendr la parte
stderr de la salida que dara el comando 'grep da *'.

Pgina 322 de 328 Introduccin a Linux


Ejemplo: stdout a stderr
Esto har que la salida stdout de un programa se escriba en el mismo descriptor de
fichero que stderr.

grep da * 1>&2
En este caso, la parte stdout del comando se enva a stderr; puede observar eso de
varias maneras.

Ejemplo: stderr a stdout


Esto har que la salida stderr de un programa se escriba en el mismo descriptor de
fichero que stdout.

grep * 2>&1
En este caso, la parte stderr del comando se enva a stdout. Si hace una tubera con
less, ver que las lneas que normalmente 'desaparecen'(al ser escritas en stderr),
ahora permanecen (porque estn en el stdout).

Ejemplo: stderr y stdout a un fichero


Esto colocar toda la salida de un programa en un fichero. A veces, esto es
conveniente en las entradas del cron, si quiere que un comando se ejecute en absoluto
silencio.

rm -f $(find / -name core) &> /dev/null


Esto (pensando en la entrada del cron) eliminar todo archivo llamado `core'en
cualquier directorio. Tenga en cuenta que tiene que estar muy seguro de lo que hace un
comando si le va a eliminar la salida.

Tuberas
Esta seccin explica de una manera muy sencilla y prctica cmo utilizar tuberas, y por
qu querra utilizarlas.

Qu son y por qu hay que utilizarlas


Las tuberas le permiten utilizar (muy sencillo, insisto) la salida de un programa como la
entrada de otro.

Plataforma de Teleformacin de IFES Pgina 323 de 328


Ejemplo: una tubera sencilla con sed
sta es una manera muy sencilla de utilizar tuberas.

ls -l | sed -e " s/[aeio]/u/g"


En este caso, ocurre lo siguiente: primero se ejecuta el comando 'ls -l', y luego su
salida, en vez de imprimirse en la pantalla, se enva (entuba) al programa sed, que
imprime su salida correspondiente.

Ejemplo: una alternativa a ls -l *.txt


Probablemente sta es una manera ms difcil de hacer un 'ls -l *.txt', pero se muestra
para ilustrar el funcionamiento de las tuberas, no para resolver ese dilema.

ls -l | grep ".txt$"
En este caso, la salida del programa ls -l se enva al programa grep, que imprimir las
lneas que concuerden con la regex".txt$" (expresin regular) .
Variables
Puede usar variables como en cualquier otro lenguaje de programacin. No existen
tipos de datos. Una variable de bash puede contener un nmero, un caracter o una
cadena de caracteres. No necesita declarar una variable. Se crear slo con asignarle
un valor a su referencia.

Ejemplo: Hola Mundo! utilizando variables


#!/bin/bash CAD="Hola Mundo!" echo $CAD
La segunda lnea crea una variable llamada STR y le asigna la cadena "Hola
Mundo!". Luego se recupera el VALOR de esta variable ponindole un '$'al principio.
Por favor, tenga en cuenta (intntelo!) que si no usa el signo '$', la salida del
programa ser diferente, y probablemente no sea lo que usted quera.

Ejemplo: Un script de copia de seguridad muy simple


(algo mejor)
#!/bin/bash OF=/var/mi-backup-$(date +%Y%m%d).tgz tar -cZf $OF /home/yo/

Pgina 324 de 328 Introduccin a Linux


Este script introduce algo nuevo. Antes que nada, debera familiarizarse con la creacin
y asignacin de variable de la lnea 2. Fjese en la expresin '$(date +%Y%m%d)'.
Si ejecuta el script se dar cuenta de que ejecuta el comando que hay dentro de los
parntesis, capturando su salida.

Tenga en cuenta que en este script, el fichero de salida ser distinto cada da, debido al
formato pasado al comando date (+%Y%m%d). Puede cambiar esto especificando un
formato diferente.

Algunos ejemplos ms:

echo ls echo $(ls)


Variables locales
Las variables locales pueden crearse utilizando la palabra clave local.

#!/bin/bash
HOLA=Hola
function hola {
local HOLA=Mundo
echo $HOLA
}
echo $HOLA
hola
echo $HOLA

Este ejemplo debera bastar para mostrarle el uso de una variable local.

Estructuras Condicionales
Las estructuras condicionales le permiten decidir si se realiza una accin o no; esta
decisin se toma evaluando una expresin.

Pura teora
Los condicionales tienen muchas formas. La ms bsica es: if expresin then
sentenciadonde 'sentencia'slo se ejecuta si 'expresin'se evala como verdadera.
'2<1'es una expresin que se evala falsa, mientras que '2>1'se evala verdadera.

Plataforma de Teleformacin de IFES Pgina 325 de 328


Los condicionales tienen otras formas, como: if expresin then sentencia1 else
sentencia2. Aqu 'sentencia1'se ejecuta si 'expresin'es verdadera. De otra manera
se ejecuta 'sentencia2'.

Otra forma ms de condicional es: if expresin1 then sentencia1 else if expresin2


then sentencia2 else sentencia3. En esta forma slo se aade "ELSE IF
'expresin2'THEN 'sentencia2'", que hace que sentencia2 se ejecute si expresin2
se evala verdadera. El resto es como puede imaginarse (vanse las formas
anteriores).

Unas palabras sobre la sintaxis: La base de las construcciones 'if'es sta:


if [expresin]; then
# cdigo si 'expresin' es verdadera.
fi

Ejemplo: Ejemplo bsico de condicional if .. then

#!/bin/bash
if [ "petete" = "petete" ]; then
echo "expresin evaluada como verdadera"
fi

El cdigo que se ejecutar si la expresin entre corchetes es verdadera se encuentra


entre la palabra 'then'y la palabra 'fi', que indica el final del cdigo ejecutado
condicionalmente.

Ejemplo: Ejemplo bsico de condicional if .. then ...


else
#!/bin/bash
if [ "petete" = "petete" ]; then
echo "expresin evaluada como verdadera"
else
echo "expresin evaluada como falsa"
fi

Pgina 326 de 328 Introduccin a Linux


Ejemplo: Condicionales con variables
#!/bin/bash
T1="petete"
T2="peteto"
if [ "$T1" = "$T2" ]; then
echo "expresin evaluada como verdadera"
else
echo "expresin evaluada como falsa"
fi

Ejemplo: comprobando si existe un fichero


#!/bin/bash
FILE=~/.basrc
if [ -f $FILE ]; then
echo "el fichero $FILE existe"
else
echo "fichero no encontrado"
fi

Los bucles for, while y until


En esta seccin se encontrar con los bucles for, while y until. El bucle for es distinto
a los de otros lenguajes de programacin. Bsicamente, le permite iterar sobre una
serie de "palabras"contenidas dentro de una cadena. El bucle while ejecuta un trozo
de cdigo si la expresin de control es verdadera, y slo se para cuando es falsa
(o se encuentra una interrupcin explcita dentro del cdigo en ejecucin). El bucle
until es casi idntico al bucle loop, excepto en que el cdigo se ejecuta mientras
la expresin de control se evale como falsa. Si sospecha que while y until son
demasiado parecidos, est en lo cierto.

Por ejemplo
#!/bin/bash
for i in $( ls ); do
echo "item: $i"
done

Plataforma de Teleformacin de IFES Pgina 327 de 328


En la segunda lnea declaramos i como la variable que recibir los diferentes valores
contenidos en $( ls ).

La tercera lnea podra ser ms larga o podra haber ms lneas antes del done .

done indica que el cdigo que ha utilizado el valor de $i ha acabado e $i puede tomar el
nuevo valor.

Este script no tiene mucho sentido, pero una manera ms til de usar el bucle for sera
hacer que concordasen slo ciertos ficheros en el ejemplo anterior.

for tipo-C
Fiesh sugiri aadir esta forma de bucle. Es un bucle for ms parecido al for de C/perl...

#!/bin/bash
for i in `seq 1 10`; do
echo $i
done

Ejemplo de while
#!/bin/bash
CONTADOR=0
while [ $CONTADOR -lt 10 ]; do
echo "El contador es $CONTADOR"
CONTADOR=$(($CONTADOR+1))
done

Este script 'emula'la conocida (C, Pascal, perl, etc) estructura `for'.

Ejemplo de until
#!/bin/bash
CONTADOR=20
until [ $CONTADOR -lt 10 ]; do
echo "El contador es $CONTADOR"
CONTADOR=$(($CONTADOR-1))
done

Pgina 328 de 328 Introduccin a Linux

También podría gustarte