Archivo de la etiqueta: Apuntes sobre Linux

Generar, eliminar y modificar cuentas de usuario

Como tantas otras acciones, la administración de usuarios solamente la puede ejercer el administrador o root.

Cada vez que damos de alta a un usuario estamos creando un registro en

el fichero passwd del directorio etc , con la información más relevante de ese usuario.

El entorno de cada usuario se crea copiando algunos ficheros en el momento de dar el alta. Cada vez que un usuario se presenta al sistema se ejecutan dos archivos de scripts; el primero de ellos es el script profile que es un fichero común a todos los usuarios

que configura el entorno de todos ellos, se encuentra en el directorio etc y el otro script, es el fichero .bash_profile , que configura el entorno de cada uno de los usuarios. Cada usuario tiene el suyo e incluso puede modificarlo, cada vez que el usuario se da de alta es copiado

junto con el .bashrc , bashlogout …. desde el directorio /etc/skel .

Órdenes para la administración de usuarios:

Para administrar usuarios utilizamos:

adduser o useradd : da de alta a los usuarios.

adduser [opciones] nombre_usuario

Algunas de las opciones son:

-u nº : para especificar el número de usuarios por lo general tomará un valor por defecto.

-g nº : especifica el número de grupo principal. Este será el grupo en el que quedará encuadrado este usuario y su utilización principal es para otorgar lospermisos sobre un conjunto de ficheros.

-d directorio : lo utilizamos para especificar el directorio de presentación, aunque por defecto le asignará uno con el nombre /home/nombre_usuario .

-s directorio_de_shell : lo utilizamos para especificar donde se encuentra otro shell que no sea el que haya por defecto.

-e fecha (con este formato: MM/DD/AA) : es utilizado para especificar la fecha en que debe cambiar cada usuario su contraseña caso que el administrador lo decida así.

-c comentario : para incluir un comentario acerca de ese usuario.

usermod : utilizamos este comando para modificar alguna de las características de cada usuario.

Tiene la misma sintaxis que el comando anterior.

Entre los datos que podemos cambiarle tenemos el número de usuario, número de grupo, el directorio, el shell y el comentario con las mismas opciones, además

podemos cambiarle el nombre con la opción -l nuevo_nombre , la asignación de grupos secundarios, con el parametro -G grupo1,grupo2 , con el fin de realizar la administración de archivos.

userdel : es utilizado para eliminar usuarios de la red.

Un usuario lo podemos eliminar de forma definitiva, en cuyo caso no solo es dado de baja del fichero passwd sino que además es eliminado su directorio personal con todos los archivos que pertenecían a él.

userdel -r nombre_usuario

Si solo queremos eliminar de forma temporal un usuario sin eliminar los archivos de su directorio personal, utilizamos la misma sintaxis pero sin el parámetro

-r .

Cambio de contraseñas:

El cambio de contraseñas ha de hacerse con la orden passwd, que te pedirá tu contraseña vieja y, a continuación, la nueva. Volverá a pedir una segunda vez la nueva para validarla y asegurarse que ésta ha sido bien escrita. Si olvidas la contraseña solamente podrá cambiarse desde el usuario root o administrador del sistema.

Comandos para la administración de grupos:

La utilidad de un grupo de usuarios es la de permitir una administración ordenada de permisos sobre un conjunto de archivos. Cada usuario debe tener al

menos un grupo que es el principal, pero podemos agrupar en varios grupos a un mismo usuario. Estos serían grupos secundarios. Cada vez que creamos un grupo, éste es registrado en el fichero group del directorio etc .

Podemos administrar los grupos utilizando una serie de órdenes de un modo muy similar a cómo lo acabamos de hacer con los usuarios.

La orden id Visualiza el grupo o los grupos a los que pertenece un usuario determinado. Muestra el UID (UserID) y el GID (GroupID).

La orden groupadd sirve para dar de alta a un grupo.

groupadd -g número_grupo nombre_grupo

groupdel : es utilizado para suprimir o borrar grupos. Para borrar un grupo, solo se borrara si no existen los usuarios para los cuales este grupo es el

principal.

groupdel nombre_grupo

groupmod : se utiliza

para modificar grupos.

PERMISOS EN LINUX

Comenzamos aquí un tema un poco árido, pero si queremos administrar un linux para varios usuarios diferentes tendremos que conocerlo bien. Es posible, no obstante, que un usuario standard en un ordenador casero a penas si use estas órdenes.

En un sistema multiusuario como GNULinux deben existir mecanismos que eviten leer, modificar o suprimir un archivo confidencial, o realizar ciertas operaciones que impliquen cierto riesgo (como puede ser el apagado de un servidor). Es preciso contar con un sistema de permisos para el usuario que crea un archivo, para los de su grupo o para otros ajenos al mismo, en relación a unos intereses comunes

Los permisos dicen al sistema quién, cuándo y cómo podrá trabajar con los archivos. En GNULinux son Más sencillos que en el formato ntfs de Windows porque hay pocos permisos y dan menos conflictos En el intercambio con otros sistemas. Como ya comenté con anterioridad en estos apuntes, disponemos de 3 tipos de permisos, cada uno identificado por una letra:

R (lectura): permite la Navegación por el árbol de directorios, lista Archivos y directorios.

W (escritura): Permite la Creación, modificación y la eliminación de ficheros y directorios.

X (ejecución): Permite la ejecución de los programas y entrar en los directorios con cd

Estos permisos pueden verse cuando listamos un directorio con el comando ls con el modificador -l: son los 9 caracteres, agrupados de tres en tres, que aparecen al principio de la línea de cada fichero o directorio. Si las líneas devueltas por la orden ls -l comienzan por una letra d, el sistema nos está indicando que se trata de un directorio, en caso contrario se tratará de un archivo. Cada uno de ellos se corresponde con los permisos para un usuario o grupo de usuarios tal como sigue:

1. El primer conjunto de 3 caracteres son los asignados al USUARIO PROPIETARIO, es decir, el que crea el fichero o directorio. El propietario es el que aparece en la primera de las columnas

En el directorio de trabajo de cada usuario hay un directorio que no le pertenece, ya que realmente, su propietario es el superusuario root, pero está compartido y aparece para todos los usuarios.

2. El segundo conjunto de 3 caracteres pertenece al GRUPO PROPIETARIO. A veces puede coincidir el nombre del usuario con el del grupo, como en el caso del root, y otras no.

3. El tercer conjunto de 3 caracteres es para el RESTO DE USUARIOS. No se debe dar permisos a este tercer grupo ya que se pierde seguridad porque los estamos dando a muchos usuarios, lo que podría hacer que, por descuido, modificasen o eliminasen archivos con información sensible para el sistema operativo o para cualquiera de los demás usuarios. Normalmente se suelen restringir.

Para dar permisos comunes a varios usuarios es necesario que se les incluya en un grupo común y, a continuación, dar los permisos a ese grupo, con lo que se aplicarán por igual a cada uno de los usuarios que lo componen.

Cuando un usuario o grupo no disponga de un permiso, al listar el directorio, en lugar del caracter que identifica al permiso, tendremos un signo – (guión).

 

Cambiando Permisos:

La orden para cambiar permisos es chmod:

chmod permisos ficheroOdirectorio

Solamente podrá cambiar los permisos de un fichero o directorio el usuario propietario o el root.

Existen dos modos de introducir los permisos en la orden: con letras y con números en sistema octal.

1. Permisos con letras:

u Usuario Propietario:

g Grupo Propietario

o Al resto (grupo Otros)

Para quitar o poner un permiso: se pone el signo menos o más delante de la letra del permiso:

quitar permiso de ejecución -x;. dar permiso de ejecución: +x. Veamos un ejemplo:

chmod o-x directorio

En este caso, quitamos permiso de ejecución al grupo «otros» en el directorio especificado.

Quitar Varios permisos a varios grupos.

chmod go-x directorio – Quita permiso de ejecución al grupo propietario y de otros.

chmod go-rx directorio – Quita permisos de lectura y de ejecución a g.propietario y a otros.

chmod g-x,o+rx directorio – Quita ejecución al grupo propietario y da permisos de lectura y ejecución al grupo otros.

Sólo usaremos el espacio para la separación de parámetros, dentro de un parámetro la separación entre componentes se hará únicamente con comas.

Otra forma de dar los permisos es la siguiente:

chmod u=rwx,g=r,o= directorio

Al usuario propietario le damos los permisos de lectura, escritura y ejecución. Al grupo propietario le damos permiso de lectura. Al grupo otros le dejamos sin permisos (o=) al no especificar ninguno detrás del signo =.

chmod u=rwx,g=r directorio

Si no nombramos al grupo de usuarios quiere decir que mantenemos los permisos que ya tienen asignados. En este ejemplo, el grupo otros, queda con los mismos permisos que ya tenía.

A continuación explicamos el significado de las combinaciones de permisos:

– rwx todos los permisos activados:

– sólo r: no se puede entrar en el directorio pero si se puede listar el contenido (el permiso es para «leer» pero no navegar por el sistema).

– solo x: se puede entrar pero no ver su contenido, no ofrece listado.

– wx: se puede acceder para dejar información pero no se puede ver lo que hay en el interior del archivo o directorio, , y, por tanto, ya no podrá recuperarse.

2. Permisos codificados de forma numérica

Es posible identificar los permisos de archivos y directorios en GNULinux mediante números expresados en octal, no es un modo muy evidente de manejar los permisos, pero es muy rápido si se memorizan los valores de conversión.

Dado que los permisos pueden estar activos y desactivos los tomamos de modo binario: 1 significa que los permisos están activos, 0 significa que están desactivos. Por tanto, la equivalencia es la siguiente:

rwxr-xr-x

111101101

Si convertimos este número binario en octal obtenemos como resultado 755. El resultado para el comando chmod con los permisos en sistema octal es:

chmod 755

En binario el valor para lectura «r» es 4, la escritura «w» equivale a 2 y la ejecución «x» a 1. Si todos los permisos están activos la suma es 7. Si falta permiso de escritura, la suma es 5. El ejemplo anterior, al usuario propietario le corresponde un 7 porque tiene todos los permisos; al grupo propietario y a otros les corresponde un 5 porque no tienen permiso de escritura:

111 (7) 101 (5 ) 101 (5)

Como podéis ver, de este modo se dan y quitan permisos de una manera bastante más rápida, pero en un principio resulta bastante menos claro el modo en qué se hace.

Ámbito de acción de los permisos:

En un árbol de directorios, si se limita el acceso a un directorio (quitando el permiso de lectura) también se limitará el acceso a los subdirectorios que dependen de él. Asimismo, si quitamos el permiso de escritura en un directorio pero hay permiso de lectura, en los subdirectorios que dependen de él no podremos crear otros, pero, si los que existían previamente tenían permiso de escritura, en ellos si que podremos crear otros subdirectorios y ficheros

Dar permiso sobre un directorio y todo su contenido (subdirectorios y ficheros)

chmod -R permisos directorio

MÁSCARA PARA LA ASIGNACIÓN DE PERMISOS

La orden para fijar la máscara de asignación de permisos es unmask

Cuando se crea un directorio o fichero nuevo, tiene preestablecidos los permisos en base a una máscara preestablecida con anterioridad en el sistema. La orden «unmask» permite obtener información y modificar esta máscara de permisos para la creación de directorios y ficheros

El valor de los permisos se calcula restando a «666» el valor de umask. Es decir si umask es 022, a 666 se le resta 022 y el resultado 644 (rw-r– r–). Si creamos un archivo de texto tendrá permisos de lectura y escritura para el propietario y de lectura para el resto de usuarios.

Si tecleamos la orden umask Sin parámetros nos ofrecerá información de la máscara activa.

Para DIRECTORIOS, por defecto es 022 (=0022) que equivale a rwxr-xr-x

Cambiar la máscara: si quisiéramos cambiar a rwx r-x —

rwx r-x —

111 101 000

7 5 0 = 750

777-750=0027. La máscara para esos permisos es 027 o 0027

Para establecer, por tanto, esta máscara como base para la asignación de permisos en directorios y ficheros nuevos se teclea: unmask 027 Este cambio, no obstante, se hace sólo para la sesión. Si el usuario inicia nueva sesión, los permisos de la máscara original se habrán restablecido. Los directorios que fueron creados estando vigente aquella máscara mantendrán los permisos con los que se crearon.

Por último, cuando tratamos con ficheros en lugar de con directorios, inicialmente, no hay permiso de ejecución en su creación, el cual se podrá agregar con posterioridad. La máscara original es la misma que la de los directorios excepto los permisos de ejecuciónX.

rw-r- -r- – –

CAMBIAR EL USUARIO PROPIETARIO Y EL GRUPO PROPIETARIO DE UN FICHERO O DIRECTORIO

Estas funciones solamente pueden ser llevadas a cabo por el superusuario root.

La orden para el cambio del usuario propietario de un fichero ess chown

chown usuario fichero

La orden para cambiar el usuario propietario de un directorio es chown -R

chown -R usuario directorio

La orden para Cambiar el grupo propietario: es chpgrp:

chgrp grupo ficheroOdirectorio

Y esto es todo lo básico para trabajar con los permisos y los usuarios, recordad que disponemos de amplias páginas de manual y que las mísmas órdenes nos pueden ofrecer ayuda con el modificador -h correspondiente, ya que en los apuntes solamente os doy la base de la orden, como supongo que habréis visto ya, cada una de ellas tiene infinidad de parámetros y opciones usables en mayor o menor medida dependiendo de las necesidades de cada uno.

 

Breves instrucciones de manejo de editores

En esta entrega haremos un breve paréntesis en el aprendizaje del sistema operativo para poder ver, muy por encima, el manejo básico de algunos de los editores
más utilizados en linux para que podáis comenzar a hacer las modificaciones oportunas en los archivos de configuración así como a escribir o leer vuestros
propios textos.

Veremos algunos comandos de vi, ya que es el editor que nos aparecerá preinstalado en la mayoría de las distribuciones, también algunos de nano, por ser
un editor muy pequeño y sencillo de utilizar. Dejaremos de lado un potente editor llamado emacs, ya que hoy por hoy es, como se dijo más atrás en estos
apuntes, mucho más que un editor y, dado que hay una aplicación que se encarga de accesibilizarlo, llamada emacspeak, si más adelante lo decido así, podría
plantearme el entrar en él.

Editor vi:

Para ejecutar vi, simplemente tienes que teclear la orden vi seguida del nombre del fichero que quieras. Si el fichero existe, éste aparecerá en pantalla,
si no existe, vi lo creará y verás una pantalla con una columna de

tildes (~) en el lado izquierdo. Vi estará ahora en modo de comando, esto es una forma muy peculiar de trabajo de este editor que lo aleja de lo que probablemente
conozcas hasta el momento. . En el modo de comando tienes dos tipos, los comandos directos que se pulsan con sus letras correspondientes, y los comandos
ex que se conforman con letras precedidas del signo : (dos puntos).Cualquier cosa que teclees será interpretada como un comando, no como texto que pudieras
querer escribir. Para introducir texto, es necesario teclear un comando. Los dos comandos de entrada básicos son los siguientes: «i» inserta texto a la
izquierda del cursor. «a» añade texto a la derecha del cursor.

Cuando finalizamos la escritura de textos, o siempre que necesitemos ejecutar algún comando del editor, deberemos pulsar la tecla «Escape» para finalizar
la inserción.

Guardar y salir:

La orden :w guarda o escribe en el disco el texto que haya en el editor.

la orden :q sale del editor.

La combinación de órdenes :wq sale del editor grabando antes su contenido. También hay una abreviatura para :wq, ZZ. Ciertamente ZZ no es exactamente igual
que :wq. Si no se ha hecho ningún cambio al fichero que se está editando desde la última vez que se guardó, «ZZ» simplemente saldrá del editor mientras
que «:wq» salvará

(redundantemente) el fichero antes de salir).

La orden :q! fuerza al editor a salir sin grabar, de otro modo nos obligará a guardar lo que hayamos cambiado en el archivo o a

utilizar la combinación de órdenes :wq.

Fíjate bien en la estructura de las órdenes porque algunas de ellas requieren el signo de : (dos puntos), y otros no, intenta no liarte con esto. Asimismo
ten también presente que si estás en modo edición y quieres dar una orden de editor tienes que ir al modo comandos con la tecla escape y, que estando en
el modo de comandos, si quieres escribir es necesario que salgas al modo de edición con las órdenes i o a.

Búsqueda de textos:

Vi nos permitirá buscar una cadena de texto en el buffer de edición. Buffer es un término inglés que se utiliza en algunos editores de Unix/linux para referirse
a una zona de memoria reservada para algo; en este caso, vi reserva buffers para el archivo de edición principal y para las zonas temporales de copia.

Algunos comandos de búsqueda que podemos usar son los siguientes:

/ cadenatexto Busca hacia la derecha y hacia abajo la siguiente instancia de «cadenatexto».

? cadenatexto Busca hacia la izquierda y hacia arriba la siguiente instancia de «cadenatexto».

n Repite el último comando / o ?.

N Repite el último comando / (barra) o ? (interrogación) en la dirección opuesta.

Al pulsar cualquiera de los comandos de arriba, aparecerá una línea en blanco en la parte inferior de la pantalla donde podremos teclear cadenatexto.

Teclas de movimiento:

En las versiones modernas de vi podremos usar las teclas de movimiento ya conocidas en muchos otros editores, no obstante, vi posee un montón de teclas
de movimiento en el modo de comando y que se pueden utilizar en conjunción con otras órdenes para realizar, por ejemplo, búsquedas y substituciones. Como
estas combinaciones de órdenes sobrepasan a esta breve introducción al linux, os podréis dirigir a manuales y páginas man que hablen sobre el asunto. Sin
embargo os pongo una lista de ellas, no sin antes recordaros de nuevo que son para usar en el modo de comandos y que, al igual que linux, vi es sensible
a las mayúsculas.

h mueve el cursor un espacio a la izquierda.

j mueve el cursor una línea hacia abajo.

k mueve el cursor una línea hacia arriba.

l mueve el cursor un espacio a la derecha.

w mueve al principio de la siguiente palabra.

e mueve al final de la siguiente palabra.

E mueve al final de la siguiente palabra antes de un espacio.

b mueve al principio de la palabra anterior.

0 mueve al principio de la línea actual.

^ (acento circunflejo) mueve a la primera palabra de la línea actual.

$ (signo de dólar) mueve al final de la línea.

_ mueve al principio de la siguiente línea.

– (guión) mueve al principio de la línea anterior.

G mueve al final del fichero.

1G mueve al principio del fichero.

nG mueve a la línea n.

Control G muestra el número de línea actual.

% (por ciento) va al paréntesis correspondiente.

H mueve a la línea superior en pantalla.

M mueve a la línea de en medio de la pantalla.

L mueve al final de la pantalla.

n mueve el cursor a la columna n.

 

El texto se desplazará automáticamente siempre que el cursor alcance la parte superior o inferior de la pantalla. También hay comandos que permiten controlar
dicho desplazamiento del texto.

Control f desplaza una pantalla hacia delante.

Control b desplaza una pantalla hacia atrás.

Control d desplaza media pantalla hacia abajo.

Control u desplaza media pantalla hacia arriba.

Algunas de las órdenes anteriores pueden acompañarse de un modificador numérico que las preceda. Esta

característica normalmente repite el comando ese número de veces. Por ejemplo, para mover el cursor ocho posiciones a la izquierda, pulsaremos en el modo
comando: 8l

Editor NANO:

NANO es un editor minimalista, muy ligero y algo más acorde a los editores que podemos conocer que VI o que EMAS. Es un programa que emula al editor pico
que era más común hace unos años ya que venía integrado con un gestor de correo electrónico llamado pine.

Abriendo y creando archivos

Para crear o abrir un archivo determinado se ha de escribir la siguiente línea de órdenes:

nano nombrearchivo

Si nombrearchivo existe, nano lo visualiza en pantalla y nos permite leerlo o modificarlo. Si el fichero no existe nano lo creará y nos dejará ver la pantalla
vacía solamente mostrando la línea de encabezado con la versión y el título del programa y la línea de estado con la ayuda de teclas de método abreviado
correspondiente. A partir de ahí podremos editar cualquier texto que queramos.

Nano es un editor sin formatos, así que puedes comenzar inmediatamente a escribir o modificar el texto. Si estás editando un archivo en el que no te interese
que nano respete las líneas puede que fuera buena idea que utilizases el modificador -w, ya que este modificador desactiva el ajuste de palabra y las líneas
no se cortan. Si te interesa ver el texto con el formato de línea puedes obviar este modificador.

Guardando y saliendo

Para guardar los cambios efectuados en el texto actualmente cargado en el editor, pulsaremos Control+O. Para salir de nano, pulsaremos Control+X. Si salimos
denano sin guardar, nos preguntará si queremos

guardar los cambios. Si presionamos n no se guardará nada. Si presionamos s se guardará todo perfectamente. Entonces nos pedirá que escribamos un nombre
para el fichero, lo escribimos, presionamos Enter, y listo!. Si pulsamos c cancelará y nos volverá a dejar en el editor. También podremos pulsar F2 para
salir de nano y que nos aparezca esta pantalla.

Si por error presionas que quieres guardar el fichero, no te preocupes porque se puede cancelar presionando Ctrl+C siempre que estés en la pantalla donde
se escribe el nombre del fichero.

Cortando y pegando

Para cortar una línea sola, utiliza simplemente Control+k al mismo tiempo. La línea desaparece. Para pegarla, muévete con el cursor hacia el punto donde
quieras pegar la línea y presiona Control-u con lo que la línea reaparecerá en el lugar preciso.

Para mover múltiples líneas, simplemente es necesario ir cortando línea a línea y, cuando hayamos terminado de hacerlo pegaremos donde deseemos y aparecerán
todas juntas en la nueva posición deseada.

Si necesitas un control mayor sobre el texto y una mayor rapidez en la copia, lo que se requiere es marcar el texto. Mueve, entonces, el cursor al comienzo
del texto que quieras cortar. Presiona Control+^ o control+6. Ahora desplázate hasta el final del texto que quieres marcar. Todo el texto debe quedar resaltado.
Si deseas desmarcarlo, simplemente pulsa control+^ de nuevo. Ahora debes pulsar a tu conveniencia las teclas de cortar y pegar tal cual las expliqué más
arriba.

Buscar Texto

Buscar una palabra es fácil, solo es necesario pulsar Control+w e introducir la palabra a buscar. Luego se pulsa intro y el editor trata de encontrar el
texto escrito en todo el documento.

Como veis, la utilización de nano se parece más a lo que todos estamos acostumbrados a hacer desde, incluso, los tiempos del MS-DOS, aunque, posiblemente,
nano sea algo menos potente que vi, en muchas ocasiones nos convendrá más utilizarlo. Es, también, bastante probable que buestra distro no lo traiga, guadalinex
no, por ejemplo. Si esto ocurriese simplemente se instala con apt-get install nano y listo. Para los que todavía usan DOS les comento que FreeDos trae
versiones de vi y de emacs.

Existe otro editor muy intuitivo llamado jed, cuya interface se desarrolla mediante un sistema de menús bastante parecido al edit de MS-dos, tiene capacidades
de autoindentación y coloreado de sintaxis útiles para los programadores, pero de momento el lector de pantalla se comporta de modo errático, ya que no
consigo que el modo directo del yasr consiga leer el texto editado (el modo revisión si lee perfectamente), y mientras no pueda saber por qué lo hace,
opto por no desarrollarlo.

Bien, aquí termina este paréntesis, en la próxima entrega volveremos al árduo trabajo con el sistema operativo.

 

Montaje y desmontaje de dispositivos

Montar equivale a crear un acceso desde un directorio a una unidad o dispositivo. No significa copiar sino establecer un enlace entre tal directorio y el dispositivo. Desmontarla es eliminar ese enlace. A los usuarios de ms-dos os sonará a algo parecido que se hacía con las unidades comprimidas dblspace o drivespace. Su equivalente en sistemas windows son las unidades virtuales que instalan programas tales como el clone cd, que para poder leer una imagen iso es necesario montarla de un modo similar a como se hace en GNULinux.

De forma predeterminada LINUX nos ofrece directorios en los que se montan dispositivos comúnmente utilizados, /floppy en el que accedemos a las disqueteras y otro llamado /cdrom para unidades ópticas. Esto no es común para todas las distribuciones, pero dado que lo más probable es que estéis utilizando Guadalinex, ésta si lo distribuye así. No obstante, cada quien puede montar las cosas tal y como prefiera, lo más normal es que los dispositivos se monten dentro de un directorio llamado /mnt. El montaje, tanto de Linux en modo gráfico, como de windows, se hace automáticamente al intentar acceder a la unidad, pero en el modo texto de Linux se montan de forma prácticamente manual.

COMANDO PARA MONTAR DISPOSITIVOS

mount

Formato: mount -t

La t indica que a continuación se especificará el montaje obligatorio con formatos:

ext2 (formato de linux).

ext3 (formato de linux para montaje de sistemas de archivos).

reisers (formato de linux utilizado en servidores).

vfat (formato fat utilizado para disketes y para particiones win9x).

ntfs (formato para particiones windows nt/2000/xp).

iso9660 (dispositivos ópticos).

Este tipo de montaje extendido solamente puede hacerlo el ROOT, los usuarios podrán hacer exclusivamente el montaje reducido.

Como ya vimos en otras entregas, todos los dispositivos se encuentran en el directorio DEV

/dev/hda0 primer disco duro, partición primaria (la partición que generalmente contiene a windows)

/dev/fd0 disquetera

/dev/sda pendrive

/dev/cdrom (dispositivos ópticos). el dispositivo (/dev/cdrom es en realidad un enlace simbólico al dispositivo real (en próximas entregas hablaremos de los enlaces y sus tipos), que puede ser /dev/hdb o /dev/hdc…).

En realidad, como estamos viendo, un punto de montaje no es otra cosa que un enlace a un dispositivo desde un directorio, por ejemplo, el directorio /mnt

La orden que nos permite Averiguar las particiones y su tipo que hay en el disco duro es:

fdisk -l /dev/hda (hda equivale al disco duro en su totalidad). Una vez hayamos averiguado el formato y el nombre de la partición, podemos montar la unidad o la partición:

Por ejemplo, podremos MONTAR la partición de disco que contiene Windows del siguiente modo:

Creamos una carpeta (con cualquier nombre, por ejemplo, windows) en /mnt (no me cansaré de repetiros que tengáis mucho cuidado con las mayúsculas ya que para GNULinux no es lo mismo Windows que windows). Asimismo deberemos tener en cuenta que no se podrá utilizar la orden mount para montar estando dentro del propio directorio de montaje (/mnt), hay que, portanto, estar en otra ubicación antes de utilizar la orden:

mount -t ntfs /dev/hda1 /mnt/windows

-t es el modificador que indica formato extendido con tipo obligatorio.

El formato es en este ejemplo ntfs válido para windows nt/2000/xp . Podría ser vfat para versiones 9x de windows. Las particiones en ntfs en linux se montan para sólo lectura debido a la gran cantidad de permisos o atributos que existen en este tipo de formatos y no podremos hacer cambios (os comento, no recuerdo si lo hice antes, aunque creo que no porque todavía no hablamos del tema, que los archivos de Unix/linux solamente tienen tres tipos de permiso: lectura, escritura y ejecución; desde luego que esto no lo hace ser más inseguro que cualquier otro sistema, la verdad es que solamente con estos tres atributos nos sobra). En vfat si son de lectura y escritura. Si no supiéramos el sistema de archivos, en lugar de especificarlo, se puede poner el modificador auto (el cual sustituye a cualquier tipo ext2, ntfs,etc…). Normalmente lo detectará bién y no nos dará ningún tipo de problema.

hda1 será en este caso la partición que contiene el windows

 

Otro ejemplo podría ser montar un cd-rom

Antes de hacerlo deberemos verificar que haya un cd dentro de la unidad, en otro caso dará error (esto también pasará con las disqueteras)

mount -t iso9660 /dev/cdrom /cdrom

Dará mensaje de que se monta sólo para lectura y que está protegido contra escritura por ser un cd.

También se podría realizar el montaje con formato reducido: mount /dev/cdrom (sólo en algunos casos ya que depende mucho de cada distribución)

Para poder utilizar el formato reducido en el montaje de unidades hay que examinar el fichero /etc/fstab y tener en cuenta su contenido, ya que allí es donde se especificarán los dispositivos que son montados de este modo y en qué lugares y por quien puede ser utilizado.

Si editamos el fichero con cualquier editor, en una siguiente entrega hablaremos del más común que es VI, encontraremos, entre otras, algo parecido a la siguiente línea:

/dev/cdrom /cdrom iso9660 defaults,ro,user,noexec,noauto 0 0

La opción «defaults» es en realidad un conjunto de opciones. Al indicar defaults se están agrupando las siguientes opciones: rw: Montar el sistema de archivos de lectura y escritura. suid: Permitir el uso de identificadores de los bits SUID y SGID. dev: Interpretar dispositivos especiales de caracteres o bloques en el sistema de archivos.

Noauto: que no monte automáticamente. Es importante porque si no hay cd rom dentro de la unidad, nos daría error en el inicio al intentar montarla sin tener cd dentro (también pasa con las disqueteras). También es importante la opción user, que permite que el dispositivo sea montado por cualquier otro usuario que no sea el root, lo que, en realidad, no es otra cosa que la posibilidad de montar con la opción reducida.

Para montar unidades como un usuario (no root) hay que tener en cuenta que un usuario no podrá utilizar el formato extendido para montarlo, sólo el reducido. En el fichero fstab estará especificado por el root dónde se puede montar y el usuario no podrá montar en ningún otro sitio en el que el administrador no lo haya previsto.

DESMONTAR DISPOSITIVO

Al igual que ocurría cuando montábamos dispositivos, tampoco se puede desmontar en el directorio de montaje, por lo que será necesario salirse de él antes de ejecutar la orden.

umount dispositivo

EJEMPLO: umount /dev/hda1

No se debe retirar un diskette antes de desmontarlo o posiblemente acabaremos por hacer que el sistema se desestabilice y se cuelgue. La regla es, cuando se trate de dispositivos que se muevan, primero se desmonta y después se retira.

MOUNT (sin parámetros)nos ofrecerá la INFORMACIÓN SOBRE los MONTAJES

DESMONTAR Y SACAR EL CD.

Estando en root se ejecutará la orden eject

Comprobar los Sistemas de Archivos:

Es sabido que en GNULinux los sistemas de archivos se corrompen menos que en Windows, esto no significa que no lo hagan, si, por ejemplo, se han desmontado inadecuadamente debido a un apagado en caliente o por un corte de fluido eléctrico, el sistema comprobará, en el arranque, los sistemas de archivos en busca de ficheros dañados o corrompidos. Esta comprobación se realizará también de forma automática periódicamente cada cierto número de encendidos del sistema.

También tendremos la posibilidad de realizar revisiones manualmente siempre que lo decidamos oportuno. El comando utilizado para comprobar un sistema de archivos dependerá del tipo de sistema en cuestión. Para sistemas de archivos ext2fs (el que usaremos en GNULinux habitualmente), el comando será e2fsck.

e2fsck -av /dev/hda2

Esto comprobará el sistema de archivos de /dev/hda2 y corregirá automáticamente cualquier error que pudiera haber allí. Es muy aconsejable, por no de cir que obligatorio, desmontar el sistema de archivos antes de verificarlo. La única excepción a esto es el sistema de archivos raíz (/), que no se puede desmontar, debido a que está siendo usado y es imposible no hacerlo así. Tras haber comprobado un sistema de archivos es imprescindible que reinicialicemos el sistema inmediatamente, si se hizo alguna corrección al sistema de archivos. Si fsck informa que ha corregido algún error en el sistema de archivos, se debe apagar el sistema con shutdown -r, o reboot para rearrancarlo. Esto permite a Linux sincronizar su información acerca del sistema de archivos cuando fsck lo modifique.

Existe un sistema de archivos llamado /proc el cual no necesita nunca ser comprobado. /proc es un sistema de archivos virtual, gestionado directamente por el núcleo, y como tal sistema virtual es imposible que sufra corrupciones.

El lector de pantallas yasr, un poco más sobre los archivos y la ayuda en línea

En La presente entrega de los apuntes para linux nos vamos a parar por fin en el lector de consolas a utilizar y veremos un poco sobre los archivos en linux así como algunos comandos básicos más antes de meternos en las profundidades procelosas de los permisos y de los procesos.

Leyendo sin ojos:

Aunque la accesibilidad de linux, sobre todo en el entorno gráfico todavía no es más que un prototipo, en la consola es ya medianamente buena y bastante utilizable como ya se explicó en entregas pasadas. De entre los varios lectores de consola que xisten vamos a utilizar en estos apuntes el yasr, no creo que sea el mejor de todos ellos pero sí es el que más rango de usuarios puede abarcar, ya que podríamos utilizar un braille hablado, un apolo, un ciber 232 p y, quizás la más interesante, síntesis de voz software. La que vamos a usar aquí no es la mejor de las síntesis, pero es la gratuita existente para linux. Es necesario, por tanto, que tengais disponible esta voz en vuestro sistema. Si utilizáis guadalinex tendréis la síntesis perfectamente instalada, de lo contrario deberéis bajaros el sintetizador festival y las voces que ofrece festvox, utilizando cualquiera de los procesos de instalación explicados en la entrega anterior, donde nuestro ejemplo de instalación se hizo con este lector de pantallas.

Iniciando el lector de pantallas.

Con el programa instalado en nuestra distribución es tan fácil iniciarlo por primera vez como lo puede ser escribir una línea de órdenes, cuya estructura es la siguiente:

yasr -s SintetizadorDeVoz -p Dispositivo

Donde yasr es el nombre del programa lector de pantallas. -s es el modificador que indica el sintetizador a elegir y -p indica donde estará ese sintetizador. Pongamos ahora un ejemplo más claro, vamos a arrancar el yasr con el sintetizador externo ciber232 p:

yasr -s ciber232 -p /dev/ttyS0

Esto arranca el yasr con el ciber 232 conectado al puerto serie que en windows se denomina com1, si quisiéramos utilizar el puerto serie com2 deberíamos cambiar el 0 por un 1, y así sucesivamente dependiendo del puerto al que se conecta el dispositivo. Atención con esa S, tiene que ir obligatoriamente en mayúscula o la línea de órdenes no será válida.

Si quisiéramos utilizar el yasr con festival, la línea de órdenes a usar sería la siguiente:

yasr -s festival -p ‘|festival –pipe’

Atención a la línea de arriba que se debe escribir tal cual lo he hecho yo, incluídos los apóstrofes y la barra vertical antes de la segunda aparición de la palabra festival así como el doble guión antes de pipe. Lo que hace esta orden es decirle a yasr que el sintetizador a utilizar es festival y, dado que no es un dispositivo al uso creamos una tubería entre el lector de pantallas y el servidor de habla. Las tuberías o pipes las veremos más avanzados estos apuntes. Si tenemos el festival bien instalado y se dispone de las voces en español inmediatamente comenzaremos a escuchar por los altavoces del PC la gangosa y familiar voz del sintetizador, no es el mejor del mundo, pero de momento es lo que disponemos por cero euros para escuchar a linux; cierto es que hay voces de pago que se pueden usar, dectalk, la cual yo considero todavía peor que festival, o una voz derivada de la eloquence que ahora mismo no sé quien demonios vende porque ha cambiado varias veces de propietario.

Manejo básico del lector de pantallas:

Pese a haber escrito una orden que nos puede parecer más o menos compleja, cuando tengamos listo y configurado a nuestro gusto el lector de pantallas podremos exportar sus valores óptimos a un archivo de configuración llamado yasr.conf que será colocado en cada directorio de trabajo de cada usuario que lo necesite, el cual nos permitirá invocar en el futuro al lector simplemente escribiendo en el indicativo del sistema la palabra yasr.

Yasr tiene dos modos de funcionamiento básicos muy parecidos a como lo solían hacer los lectores de pantallas para MS-DOS. Un modo directo en el que yasr se limita a leer los comandos escritos y las respuestas que aparecen por pantalla, y un modo de revisión que nos permite navegar por toda la pantalla visible. En el primer modo el lector de pantallas responde a las órdenes mediante combinaciones de teclas preestablecidas. En el modo de revisión las órdenes pueden darse con cualquier tecla ya que el lector bloquea el teclado y no deja pasar las pulsaciones a la terminal sin una interpretación previa, si la tecla pulsada no se corresponde con ninguna orden de yasr no ocurrirá nada, ni en el lector ni en la terminal, si es una orden válida para yasr, éste la llevará a cabo.

Modo revisión:

Este modo de trabajo se activa y se desactiva pulsando la combinación de teclas alt-r (atención, es posible que en algunos manuales de algunos programas a la tecla alt se le llame también tecla meta o tecla M, esto es debido a que linux puede ser instalado en plataformas diferentes a la intel, y podría suceder que la tecla alternativa en esas otras plataformas tuviera otro nombre).

Barra Espaciadora: dice la posición del cursor de revisión.

^ (acento circunflejo): se mueve al primer carácter de la línea y dice la palabra.

$ (signo de dólar): se mueve al último carácter de la línea y lee la palabra.

b: lee carácter hacia atrás.

c: lee el carácter actual.

d: lee carácter hacia adelante.

e: lee desde el cursor al final de pantalla.

f: busca una cadena de texto en la pantalla.

< (signo menor que): busca desde cursor al inicio de pantalla un texto previamente buscado.

> (signo mayor que): busca desde cursor al final de pantalla un texto previamente buscado.

k: lee línea arriba (también lo hace la flecha arriba).

l: lee la línea actual.

m: lee línea abajo (igual que flecha abajo).

n: deja pasar la siguiente pulsación a la terminal.

t: lee desde el inicio al cursor.

w: lee toda la pantalla.

z: se mueve palabra atrás y la lee.

x: se mueve palabra adelante y la lee.

Las flechas leen línea arriba, abajo, carácter atrás y adelante.

( (signo abrir paréntesis): avanza párrafo.

) (signo cerrar paréntesis): retrocede párrafo.

Alt i: reinicializa el sintetizador. Útil cuando la síntesis se ha desconfigurado o funciona erróneamente.

` (acento grave): lee el valor ascii de un carácter.

Modo normal.

Este modo es el que tendremos activo cuando se trabaje directamente en la terminal y es necesario darle órdenes a yasr mediante una combinación de teclas.

Control-a: dice la posición del cursor de la aplicación si esta lo tiene.

Control-l: lee la línea actual.

Control-n: deja pasar la siguiente combinación de teclas. Útil si alguna combinación coincide con otra de yasr.

Control-x: vacía el búfer del sintetizador, es decir, lo silencia y descarga todo lo que pueda tener listo para hablar en la previa, si algo entra al sintetizador después de haber pulsado esta combinación, éste lo hablará.

alt-b: habla el caracter anterior.

Alt-c: lee el carácter actual.

Alt-d: lee la palabra actual.

Alt-e: lee desde el cursor a fin de pantalla.

Alt-k: lee la línea anterior.

Alt-l: lee línea actual.

Alt-m: lee siguiente línea.

Alt-r: conmuta entre los dos modos de trabajo de yasr.

Alt-t: lee desde el inicio hasta el cursor.

Alt-w: lee toda la pantalla.

Alt-x: silencia el habla. El funcionamiento de esta tecla es similar a control-x sólo que en este caso el sintetizador no volverá a hablar hasta que pulsemos alt-x una segunda vez. He verificado que en algunas ocasiones esta combinación de teclas no funciona apropiadamente si el sintetizador que estamos utilizando es festival, hasta el punto de colgarme la terminal. Más adelante se explicará cómo matar programas colgados cuando hablemos de los procesos.

Con la combinación control-alt-k podremos arrancar un asistente que nos permitirá remapear el lector de pantallas a nuestro gusto, pero a la hora de hacerlo, o no, deberemos ser conscientes que, si remapeamos gran parte del teclado es posible que en alguna ocasión, si usamos el ordenador de otra persona que no lo ha hecho, no seamos capaces de manejarlo. Cierto es que algunas combinaciones convendrían ser bastante diferentes por lo incómodas.

Control-alt-o: nos despliega en pantalla un pequeño menú que nos permitirá configurar el yasr a nuestro gusto. Desde él podremos manejar la velocidad, el tono, el volumen, puntuación, voces, etc, dependiendo del sintetizador instalado. También se puede configurar el tratamiento del eco de teclado y la conexión del dispositivo de habla. El modo de uso de este menú es con flechas nos movemos por las opciones y con intro activamos cada una de ellas. Si bajo la opción pulsada hay un menú este se desplegará. Caso de no querer usarlo pulsaremos escape. Si la opción pulsada requiere de un parámetro, por ejemplo la velocidad, yasr nos la pedirá ofreciéndonos la ratio de valores a elejir. Si lo que hay bajo el elemento a pulsar es una opción, ésta irá cambiando según pulsemos intro sobre el elemento. Cuando tengamos todos los valores ajustados a nuestro gusto pulsaremos repetidamente escape hasta que yasr cierre el menú.

Con la combinación control-alt-s salvaremos en disco la configuración hecha desde el menú de opciones. Si salvamos la configuración, también se salvará el dispositivo de habla activo y todos sus parámetros, con lo que la siguiente vez que arranquemos yasr no necesitaremos poner aquella larga línea de órdenes que escribimos la primera vez que activamos el lector. Por otra parte notar que es necesario establecer la configuración para cada uno de los usuarios que utilicen yasr.

Si queremos descargar a yasr definitivamente de la memoria podemos pulsar la combinación de Teclas Control-d quedando la consola libre del lector de pantalla, el cual, se podrá volver a cargar de nuevo cuando se quiera con su línea de órdenes.

Un poco más sobre los archivos y los DIRECTORIOS.

Como ya se dijo con anterioridad, en Linux «todos son archivos incluyendo discos, memorias flahs, almacenamiento de cualquier tipo, puertos de comunicación… absolutamente todo es referenciado y utilizado tal cual si fuera un archivo de datos.

Los archivos son todo aquello que conforma una unidad de Información identificada con un nombre y que ocupa un número de bytes en el sistema: (textos, ejecutables, etc.). Sus nombres podrán tener una longitud de hasta 256 caracteres y se puede usar en ellos cualquier carácter aunque conviene desechar los distintos de los alfanuméricos. También se admiten y se diferencian minúsculas y mayúsculas, por lo que hay que ser muy cuidadoso con ello ya que si escribimos un archivo llamado Fichero y luego pretendemos editarlo o referenciarlo llamándole fichero, nunca lograremos encontrarlo. Por último, los archivos que comiencen por punto «.» (punto), serán tratados como «ocultos».

TIPOS principales DE ARCHIVOS.

Linux no impone ninguna estructura a ningún archivo, esto quiere decir que , como ya indicamos más arriba, las extensiones no son ni obligatorias ni necesarias, su formato y modo quedará explicitado por el tipo de permisos, esto se nos aclarará más adelante cuando los tratemos.

1. Ejecutables: Normalmente se trata de programas compilados y contienen código binario (ininteligible para la mayoría de los humanos, pero no así para el ordenador). Los atributos o permisos de ejecución están activos.

2. Binarios: Son empleados habitualmente por programas capaces de procesar su contenido. Ejemplos: imágenes, archivo indexado, formatos de sonido comprimido, etc.

3Texto: Contienen fundamentalmente caracteres alfanuméricos en formato legible. Ejemplo: programas en código fuente, formatos de edición de textos, scripts, etc.

4. Dispositivos: Archivo asignado a un dispositivo físico (particiones de disco, terminal, cdrom, cinta, puertos de impresora, etc.). Estos archivos están en el directorio /dev

Algunos de ellos pueden ser:

/dev/tty00 (Terminal primero o modem primero en conexión serie).

/dev/tty01 (Terminal segundo o modem segundo en conexión serie).

/dev/lp0 (Primera impresora en paralelo).

/dev/lp1 (Segunda impresora en paralelo).

/dev/eth0 (Primera placa de red «ethernet»).

Pero hay muchísimos más, algunos que ya vimos en estos apuntes, y otros que veremos más adelante si cabe.

5. Dispositivo especial /dev/null: Toda la información que se envía a /dev/null es desechada, podríamos decir que es un modo fácil de eliminar cosas de nuestro ordenador o un lugar al que derivar cualquier cosa que no queramos que sea grabada en el sistema, de hecho, una línea de comandos que hacía uso de este dispositivo era lo que usaba yo hace años para acceder a linux cuando no podía disponer de un lector de pantallas.

PATRONES o comodines:

Para facilitar la escritura de comandos cuando se hace referencia a nombres de archivos y/o directorios el uso de patrones o comodines resulta de gran utilidad ya que nos evita trabajo de tecleado.

*: Representa a un grupo de caracteres. Ejemplo: ls cart* nos listará todo aquello que comience por las letras cart ignorando todo lo restante. A los usuarios de ms-dos esto no les sonará a nuevo. Es también válido en windows, pero por su metodología de utilización casi ya nadie lo usa.

?: Representa a un solo carácter. Ejemplo: ls carter?

[lista de caracteres]: Representa al grupo de caracteres de la lista. Ejemplo: ls carter[ao]

Algunas órdenes sencillas para mostrar archivos:

file.

Visualiza el tipo de un archivo. Ejemplo:

(entrada) file /bin/ls

(salida) (/bin/ls: ELF 32-Bit MSB executable).

(Entrada) file /dev/null

(salida) (/dev/null: character special).

cat.

Muestra por pantalla todo el contenido del archivo sin tener en cuenta tamaño de pantalla ni formato de texto, incluso podríamos mostrar ejecutables o binarios, claro que, no entenderíamos nada. Ejemplo:

cat /etc/motd (Muestra por pantalla el contenido del archivo motd del directorio /etc).

cat /bin/cat (Muestra el contenido del fichero cat ¡se ve a sí mismo!).

more.

Muestra el contenido de un archivo pero, a diferencia de cat, hace una parada cuando se rellenan las líneas de la pantalla para que podamos leerla sin problemas y se mantiene en espera hasta que pulsemos la barra espaciadora pasando, entonces, a mostrarnos el siguiente tramo del archivo que quepa en la pantalla. Ejemplo:

more /home/quetzatl/texto

echo:

echo «cadena» > nombre.

Crea el archivo «nombre» con «cadena» como contenido. Si la cadena está en blanco el archivo creado tendrá 0 bytes y, por tanto, estará vacío.

find.

Muestra en pantalla ficheros y/o directorios atendiendo a opciones determinadas. Ejemplos:

find / -print (Visualiza archivos y directorios desde el directorio raiz).

find / -type f -print (Visualiza archivos desde el directorio raiz).

find /home -type d -print (Visualiza directorios desde el directorio «home»).

find / -atime +10 -print (Visualiza archivos y directorios que tengan más de 10 días de existencia).

¡Un poco de ayuda, por favor!:

Como ya se comentó más arriba, GNULinux se caracteriza por poseer muchísima ayuda, no obstante su problema es que todavía mucha de ella está sin traducir, pero se está avanzando a grandes pasos en este sentido.

Hay dos maneras principales de obtener ayuda desde la consola, mediante los listados internos de ayuda de cada programa en particular, o mediante la lectura de las páginas man.

La manera de leer la ayuda interna de los programas no tiene por qué ser igual en todos los casos, pero la norma es que se consiga esta ayuda añadiendo el comando corto -h tras el nombre del programa y separado por un espacio, o con el modificador largo –help Hay programas que poseen las dos formas de solicitud de ayuda, y hay programas que solamente soportan una de las dos variantes, todo consistirá en ir probando.

Las páginas man son una ayuda considerable y muy completa que existe instalada en el sistema. A pesar de ser completa y amplia, es posible que en muchas ocasiones el contenido de las páginas man resulte algo tediosa por ser demasiado técnica teniendo en cuenta que, sobre todo en un principio, este sistema estaba pensado por y para técnicos, y en cierto modo mantiene algo de aquello, pero no significa que no sea utilizable.

El modo de activar la página man es escribir la orden man seguida tras un espacio en blanco del nombre del programa para el que queremos la ayuda, si éste dispone de páginas man, éstas se despliegan en pantalla de un modo muy similar a como lo hace el mandato more con un fichero, es decir, muestra en pantalla el contenido de la ayuda y espera a que terminemos de leer para pasar a la siguiente página, se puede avanzar con espacio hasta que terminemos la lectura. En cualquier momento podremos pulsar la letra q para salir de nuevo a la consola.

Por hoy esto es todo, en la próxima entrega veremos cómo se montan unidades de almacenaniento y particiones, así como cualquier otro mandato relacionado.

Los paquetes y su gestión: DEB, RPM y tar.gz

Los paquetes y su gestión:

Los paquetes son la agrupación instalable de los diferentes archivos necesarios para que un programa funcione. Se pueden parecer a los programas que se descargan de internet para windows, es decir, un archivo ejecutable que contiene un programa. La diferencia es que en GNULinux los paquetes no son ejecutables, sino que son gestionados por terceras aplicaciones. Además, los paquetes de Linux suelen ser muchísimo más compactos y reducidos ya que no traen consigo las librerías compartidas (dependencias) y, llegado el caso de necesitarse, serán instaladas o se nos informará de la necesidad de hacerlo, según el gestor de paquetes que estemos utilizando.

Las aplicaciones Linux se suministran normalmente en tres formatos o tipos de paquetes:

RPM: se utilizan en distribuciones basadas en Red Hat, Fedora, Mandriva…, pueden tener tanto binarios como código fuente.

DEB: distribuciones basadas en Debian (Linex, Guadalinex…). Pueden contener tanto binarios como código fuente.

Tar.gz: código fuente empaquetado y comprimido para ser instalado directamente.

La mayor parte de las aplicaciones disponen de versiones DEB, y RPM. y, por supuesto, todas se encontrarán también empaquetadas en tar.gz. Se pueden convertir paquetes y pasarlos de rpm a deb y viceversa, si se diera el caso que no existieran paquetes en alguno de los formatos,con el programa ALIEN, pero éste no siempre podrá garantizar el correcto funcionamiento de un paquete convertido a otro, en general, se garantizará mejor la instalación de un paquete si éste fue creado directamente para su tipo correspondiente.

Paquetes RPM:

Es un sistema de empaquetamiento que se está convirtiendo en un estándar de hecho en el mundo Linux por las ventajas que supone sobre otros modelos, pero bajo mi punto de vista todavía no alcanza a las posibilidades de la paquetería DEB, no obstante, al ser creado por RedHat, y dado que ésta es una de las distribuciones más utilizadas en el mundo, hace que su sistema de paquetes lo sea también.

RPM proporciona al usuario una serie de facilidades que hacen el mantenimiento del sistema mas sencillo de gestionar ya que mantiene una base de datos de los paquetes instalados y de sus archivos, lo que permite realizar consultas y verificaciones del sistema. Asimismo, Otra ventaja es que al actualizar software, los archivos de configuración se respetan de manera que no sea necesario volver a realizar los ajustes específicos que ya tuviera definidos, o si no fuera posible, realiza una copia de seguridad de los mismos.

Trabajar con RPM

rpm tiene cinco modos de trabajo: instalación, actualización, consulta, desinstalación y verificación.

Instalación

Pongamos que tenemos al lector de pantallas yasr empaquetado en RPM:yasr-0.7.6.i386.rpm

Normalmente se nombran utilizando el nombre del paquete (yasr), versión (0.7), desarrollo (6), y arquitectura (i386). Asegúrate de elegir la arquitectura adecuada para tu sistema!.

Para instalar un paquete: rpm -ivh yasr-0.7.6.i386.rpm

El parámetro i es el utilizado para la instalación. Los otros dos son opcionales, pero útiles. El modo verbose, con v aporta información extra y la h (hash) imprime esas marcas de progreso (#) que nos dicen que algo está ocurriendo, podemos hacer una prueba de lo que ocurrirá, sin llegar a instalar, usando la opción: -test.

La instalación de paquetes resulta fácil, pero pueden ocurrir percances:

-Si intentas instalar un paquete que ya está instalado, toma como ejemplo el paquete yasr que hemos instalado más arriba, el sistema nos dará un mensaje similar a este:

yasr package yasr-0.7.6 is already installed

error: yasr-0.7.6.i386.rpm cannot be installed

Para forzar la instalación usaremos: -replacepkgs

Si intentas instalar un paquete que contiene un archivo que ha sido ya instalado por algún otro paquete el sistema te dará un error similar al siguiente:

yasr /usr/bin/yasr conflicts with file from mim-0.7.6

error: yasr-0.7.6.i386.rpm cannot be installed

Para hacer que rpm ignore el error, usa -replacefiles

Si intentas instalar un paquete para el cual existe una dependencia no satisfecha:

Los paquetes rpm pueden «depender» de otros paquetes, lo cual significa que requieren que otros paquetes estén instalados en el sistema para que funcionen. En este caso el error será:

failed dependencies: yasr is needed by yyyy-x.x.x donde yyy es el nombre del paquete dependiente y x.x.x es el número de versión de ese paquete. La mejor forma de arreglar este error es instalar los paquetes requeridos. Se puede forzar la instalación usando -nodeps, pero si no se satisface una dependencia es casi seguro que el programa no va a funcionar.

Actualización:

Actualizar un paquete es como instalar un paquete con la salvedad de que rpm desinstala automáticamente cualquier versión antigua del mismo.

rpm -Uvh yasr-2.0-1.i386.rpm

En la actualización se mantienen los ficheros de configuración si ello fuera posible. Si los cambios fueran tan importantes para no permitirlo, rpm guarda los ficheros de configuración.

Consulta de paquetes:

Consultar la base de datos de paquetes instalados tampoco es complicado: lo conseguimos con la opción rpm -q. La forma más sencilla de usarlo es:

rpm -q yasr-0.7.6

Combinando -q con otros parámetros, extraeremos más información. Para consultar todos los paquetes instalados utiliza -a

rpm -qa

Esto mostrará en pantalla una lista con los nombres de los paquetes. Para consultar el paquete al que pertenece un fichero concreto: -f

rpm -qf /bin/ls fileutils-4.0-21

Con la opción -ql podemos ver un listado de los ficheros, con -qd vemos un listado de los ficheros con la documentación y con la opción -qc los ficheros de configuración del paquete.

Desinstalación de paquetes:

Desinstalar un paquete es tan sencillo como instalarlo, rpm garantiza la limpieza del procedimiento y que se desinstalarán todos los ficheros, no importa donde estén instalados:

rpm -e yasr

En la desinstalación se usa el nombre yasr y no el nombre completo del paquete.

Un error habitual es el de «romper» las dependencias al desinstalar un paquete si algún otro paquete instalado depende del que estás intentando borrar. Para hacer que rpm no realice la comprobación de dependencias y desinstale el paquete de todas maneras: -nodeps.

Verificación:

Verificar un paquete es comprobar la integridad del mismo, osea si tenemos en el sistema actualmente lo mismo que se instaló en su día y si está como se supone que debería estar. Entre otras cosas, se compara el tamaño, chequeo MD5, permisos, tipo, usuario y grupo de cada archivo.

rpm -V yasr

Si el paquete está correcto, la salida es: nada. No hay cambios, o sea que no hay nada que mostrar.

En el caso de encontrar diferencias muestra en pantalla una palabra de ocho caracteres, uno por cada prueba que realiza. Un punto equivale a que la comparación es correcta. Una letra indica un cambio en esa comparación concreta. Los chequeos que hace son:

-Tamaño del archivo: S

-Enlace simbólico: L

-Fecha del archivo: T

-Dispositivo distinto: D

-Usuario distinto: U

-Grupo distinto: G

-Modo (permisos) distinto: M

-MD5 modificado: 5

Para localizar ficheros que afectan a la gestión de las bases de datos de rpm tendremos que mirar en /var/lib/rpm y en /usr/lib/rpm

Listado de /var/lib/rpm:

conflictsindex.rpm groupindex.rpm packages.rpm

requiredby.rpm fileindex.rpm nameindex.rpm

providesindex.rpm triggerindex.rpm

packages.rpm es el que contiene la base de datos de los programas que tenemos instalados en el sistema. La integridad de este fichero es importante para el correcto funcionamiento de rpm.

Del contenido de /usr/lib/rpm, cabe destacar dos ficheros de configuración, rpmopt y rpmrc. La configuración actual se puede ver ejecutando:

rpm -showrc

PAQUETES DEB:

En un paquete de este tipo, normalmente, tendremos un conjunto de aplicaciones que se instalarán en la ubicación que esté preestablecida cuando se haya creado el paquete.

Por tanto, podremos sobreentender que un paquete es un fichero que a su vez contiene ficheros y directorios comprimidos que se instalarán en el sistema cuando este paquete sea invocado con las diferentes aplicaciones que tengamos para ello.

Los paquetes DEB se pueden reconocer fácilmente por utilizar como parte de su nombre «la extensión» .DEB. Suelen formarse por un nombre que alude al paquete seguido de los números de versión del paquete y puede contener también un indicativo de la plataforma para la que ha sido creado y compilado. Un ejemplo podría ser algo parecido a lo siguiente: yasr_0.6.7_i386.deb. Esto indicaría que el paquete es yasr, que su versión es la 0.6.7 y que ha sido compilado para la plataforma intel 386. Generalmente el que esté compilado para 386 no indica que no vaya a funcionar en un 486 o en un 586, aunque podría no funcionar adecuadamente si fuera al revés.

Utilidades para gestionar paquetes DEB:

Existen varias aplicaciones para su gestión desde la línea de comandos y desde el entorno gráfico. Algunas de ellas son las siguientes:

Apt-get:

Es posiblemente la herramienta de gestión de paquetes más potente y fácil de manejar que existe. Nos permite desinstalar y manejar todo lo referente a estos paquetes desde la línea de comandos. La mejor de las capacidades de este programa es hacer instalaciones desde internet bajando cada uno de los paquetes necesarios de ordenadores remotos especialmente organizados para ello. A estos lugares en internet de los cuales se descargan los paquetes se les llama repositorios. Casi la totalidad del material que se encuentra en estos repositorios suele ser gratuito. Si un paquete necesita algún otro que sea requerido para su funcionamiento, este programa, a diferencia de otros, busca e instala también esos paquetes. Cuando un programa necesita de otros para funcionar correctamente, se dice que hay dependencias, por ello, estamos haciendo con este programa de instalación de paquetes que gestione las dependencias por nosotros, lo que nos evitará muchos dolores de cabeza por evitarnos la búsqueda de dependencias a mano a lo largo de los miles de archivos que nos puede ofrecer un repositorio o una colección de CDs. Asimismo, también la misma herramienta, en ocasiones, nos podrá ofrecer un listado de paquetes no dependientes pero sí recomendados que podremos instalar o no a nuestro criterio.

Cada distribución que podamos estar utilizando tiene un número específico de repositorios a los que apunta y de los que descargará paquetes o actualizaciones, pero esto no debe ser una limitación, ya que podremos añadir otros diferentes que nos puedan agregar funcionalidades o programas que en los repositorios originales no había. En el archivo etc/apt/sources.list podemos consultar o modificar estos repositorios de paquetes.

Opciones principales de apt-get:

apt-get update – actualiza la lista de los paquetes disponibles en los repositorios. Modifica la información en el fichero sources.list. Es recomendable hacerlo de vez en cuando para asegurarnos de que a la hora de instalar o actualizar un paquete determinado o la distribución en general dispongamos de las versiones más actualizadas.

apt-get upgrade – Comprueba las versiones de los paquetes instalados y, si existen versiones posteriores, realiza una actualización.

apt-get dist-upgrade: Lo mismo que la anterior pero actualiza, no sólo los paquetes, sino también, la propia distribución de linux.

apt-get install NombreDelPaquete: ejemplo apt-get yasr. No hace falta dar todo el nombre completo, se puede introducir sin extensión ni número de versión.

apt-get remove NombreDelPaquete: desinstala el paquete indicado (no así con las posibles dependencias, ya que éstas pueden ser necesarias para que otras aplicaciones puedan seguir funcionando).

Otras opciones pueden ser:

source – Descarga archivos fuente

build-dep – Configura las dependencias de construcción para paquetes fuente

dselect-upgrade – Sigue las selecciones de dselect

clean – Elimina los archivos descargados

autoclean – Elimina los archivos descargados antiguos

check – Verifica que no haya dependencias incumplidas

Modificadores:

-h texto de ayuda.

-q Salida registrable – sin indicador de progreso

-qq Sin salida, excepto si hay errores

-d Sólo descarga – NO instala o desempaqueta los archivos

-s No actúa. Realiza una simulación

-y Asume Sí para todas las consultas

-f Intenta continuar si la comprobación de integridad falla

-m Intenta continuar si los archivos no son localizables

-u Muestra también una lista de paquetes actualizados

-b Construye el paquete fuente después de obtenerlo

-V Muestra números de versión detallados

Dpkg:

Se trata de otra aplicación que gestiona paquetes DEB y proporciona información sobre los paquetes instalados. A diferencia del apt-get, no instala automáticamente las dependencias (otros paquetes que deben instalarse previamente) sino que se limita a indicarlas durante el proceso de instalación. Por eso es un programa menos claro y más difícil de utilizar, pero en ocasiones podrá resultarnos de más utilidad.

Algunas opciones:

dpkg -l

Comprueba los paquetes instalados en la máquina y ofrece un listado completo.

Si queremos información relacionada con un solo paquete, se puede utilizar el pipe GREEP con el comando. Ejemplo: dpkg |grep. Más adelante veremos los pipes o tuberías, pero ahora lo dejaremos así por no ser relevante.

dpkg -L NombrePaquete.

Informa sobre el contenido (los ficheros) que forman un paquete.

Ejemplo.: dpkg -L tree nos informará sobre los ficheros del paquete tree

/.

/usr

/usr/bin (el ejecutable)

/usr/bin/tree

/usr/share ()

/usr/share/man (información manuales)

/usr/share/man/man1

/usr/share/man/man1/tree.1.gz

/usr/share/doc

/usr/share/doc/tree

/usr/share/doc/tree/README

/usr/share/doc/tree/copyright

/usr/share/doc/tree/changelog.gz

/usr/share/doc/tree/changelog.Debian.gz

dpkg -i NombrePaqueteCompleto

Para instalar paquetes que tenemos localmente y no necesitamos descargar.

dpkg -r NombrePaqueteCompleto

Desinstalación

dpkg -s fichero

Informa de los paquetes que contienen ese fichero (a que paquetes pertenece).

La instalación y desinstalación se pueden hacer indistintamente desde dpkg y apt-get ya que gestionan el mismo tipo de ficheros, pero en la mayor parte de las ocasiones utilizaremos apt-get, dejando dpkg para desinstalar paquetes problemáticos o para instalar paquetes sueltos que hemos bajado de internet sin pasar por los repositorios.

FICHEROS TAR Y GZ

El formato tar de ficheros, frecuente en Linux, es una agrupación de éstos (como los zip de Windows pero en este caso no están comprimidos). El empaquetador TAR se utiliza para hacer copias de seguridad de varios archivos o de directorios enteros: el contenido quedará agrupado en un sólo fichero cuyo archivo resultante tendrá, habitualmente, la extensión «.tar». Este programa se utilizó, en un principio, para generar empaquetamientos dedicados a crear copias de respaldo en unidades de cinta externa.

Agrupar y comprimir

El TAR se utiliza frecuentemente en combinación con el GZIP (herramienta de compresión) y así los obtenemos agrupados y comprimidos. Se pueden hacer los dos procesos por separado (agrupar con tar y comprimir después con gzip) pero también se pueden hacer simultaneamente utilizando el carácter «z» con el comando tar. La opción z se utiliza para la compresión y descompresión de archivos.

Ejemplo: tar cvfz fichero

V equivale al modo verboso o prolijo (aparece toda la información del proceso en pantalla); la z es para comprimir.

A los ficheros comprimidos y agrupados se les pone la extensión .tar.gz (gz indica que está comprimido), también, en algunas ocasiones podremos ver la extensión tgz, pero es más común la otra.

Ejemplo: tar cvfz fichero.tar.gz /root

hará una copia del directorio root, comprimida y agrupada, en el fichero.tar.gz, dentro del directorio en el que estamos.

Se pueden hacer a la vez varios directorios separándolos por espacios: tar cvfz directorio1 directorio2 directorio3.

Descomprimir, desagrupar y compilar

Estos paquetes no están en formato DEB ni RPM. Están sin compilar para hacer posible modificaciones de todo tipo incluyendo el código fuente. Antes de compilar un archivo hay que desagrupar y descomprimir. Veamos como haríamos este proceso con el lector de pantallas yasr:

tar xvfz yasr-0.6.7.tar.gz

Se genera un directorio con el nombre del fichero en el directorio en el que estamos que contendrá todos los archivos de código fuente, de documentación y de scripts que sean necesarios para el programa.

Seguidamente se entra en ese directorio y se utilizan los siguientes comandos (en el orden en que figuran):

./configure (esto activa el script de comfiguración y preparación de las variables del compilador y demás partes del sistema; es importante no omitir el ./ (punto barra)).

make (esto arranca la compilación del código fuente para convertirlo a lenguaje que la máquina pueda entender, es decir, se hace que el código fuente se combierta en binario).

make install (esto hace que se instale el programa en las rutas especificadas por el creador del mismo).

De este modo tendríamos instalado el lector de pantallas yasr en nuestro equipo. De todos modos es preferible, si existe el paquete en el formato DEB o RPM intentar instalarlo desde ellos y utilizar solamente el tar.gz cuando no existan o cuando las circunstancias nos lo aconsejen hacer así.Con la orden make clean limpiarás los archivos temporales resultantes del proceso de la compilación y que no nos sirven para nada.

Con make uninstall podrás desinstalar el paquete instalado desde tar.gz.

Existen también diferentes aplicaciones de gestión de paquetes que funcionan en los escritorios gráficos pero de momento vamos a dejarlos de lado y, llegado el caso y dependiendo de su accesibilidad, los trataremos más adelante.

Por otra parte, existen numerosas utilidades para poder gestionar los paquetes en los diferentes escritorios existentes para Linux, pero de momento las dejaremos en espera mientras no comencemos con el trabajo en el modo gráfico y mientras no se consiga una buena accesibilidad.

 

Empezando a conocer linux: el kernel, la shel y la estructura de directorios.

Empezando a conocer a GNU/Linux:

El Kernel o núcleo.

El kernel, es decir, el núcleo de Linux es el componente más importante del sistema operativo. Podríamos decir que es la base que va a soportar a todo el sistema que más adelante se construirá sobre él. Sin el Corazón del sistema (en realidad el kernel es el embrión diseñado por Linus Torvals que luego dio origen a todo lo que hoy conocemos como Linux), nada podría funcionar…, en realidad sin el kernel el resto del sistema es impensable.

Las tareas o funciones principales que lleva a cabo este núcleo son:

A) La planificación y llevar a cabo la ejecución de los diferentes procesos repartiendo el tiempo entre ellos en función de prioridades establecidas y algoritmos determinantes de dicha planificación de las diferentes tareas.

B) La gestión de la entrada/salida y la jerarquía del sistema de ficheros.

C) La administración de las funciones de bajo nivel para controlar todo el hardware.

El usuario casi nunca va a necesitar tocar nada en el núcleo del sistema salvo que le surja la necesidad de actualizarlo o modificar su configuración, ya que el manejo del kernel, aunque no es una tarea imposible, sí es delicada y debería ser perfectamente conocido lo que se quiere hacer y cómo se quiere hacer, ya que una manipulación incorrecta a la hora de recompilarlo podría darnos efectos indeseados.

Un Kernel típico puede constar de más de 20.000 líneas de código de las cuales un 80% está escrito en C y el resto depende de la máquina. Por ello, aunque no es imprescindible, es muy aconsejable que cualquier persona que quiera retocar algo en el núcleo conozca básicamente este lenguaje de programación.

Linux ofrece los ficheros fuente del Kernel bajo la licencia GPL. Estos ficheros tienen el nombre linux-x.y.z.tar, donde x.y.z es el número de la versión.

Ya que, como hemos apuntado antes, la tarea de modificación del kernel de Linux no es tarea fácil ni útil para todo el mundo, creemos que queda fuera de los objetivos de estos apuntes ir más allá en la explicación del proceso de compilación, pero, como siempre en este sistema, existen muchos recursos disponibles en línea para obtener información completa sobre este asunto.

¿Qué es la Shell del sistema?

La Shell de Linux es el programa que recibe información del usuario mediante la entrada estándar por órdenes o ficheros y que transforma en instrucciones que puedan ser entendidas por el Kernel. Además de ser un intérprete de comandos similar a lo que era el command.com en MS-DOS,, la shell es un lenguaje de programación bastante potente que soporta múltiples usuarios, múltiples tareas y varias interfaces. Esto hace pues, que la Shell termine por resultar muchísimo más poderosa que la que tenía el viejo dos. Al igual que en MS-DOS o en FreeDos se pueden generar miniprogramas llamados archivos de procesamiento por lotes y que tienen la extensión bat que se encargan de generar series de comandos para ayudarnos en determinadas tareas del sistema que nos pueden resultar penosas de hacer, en la sehll de linux existen estos mismos procesos por lotes pero tremendamente potenciados, se les conoce como scripts y suelen tener la estensión .sh y llegan casi a ser un verdadero lenguaje de programación.

Al hilo de la extensión sh de los ficheros de scripts adelanto aquí algo en lo que más adelante nos pararemos algo más, pero que considero que es vueno que se vaya conociendo ya. Los ficheros y carpetas de linux normalmente no tienen extensión. Bueno esto no es del todo cierto, muchos ficheros y carpetas tienen extensión pero esta simplemente es indicativa de una posible utilidad de la misma, pero, al contrario que en los sistemas DOS y Windows, las extensiones no hacen a un archivo, es decir, en windows un archivo exe es un archivo ejecutable y el sistema como tal lo trata de ejecutar cuando lo invocamos, o un dll es una librería dinámica, en linux cada archivo es gestionado por el sistema según sea su permiso, es decir, un archivo llamado «programa» si tiene un atributo de ejecutable será ejecutado como programa por el sistema; un archivo llamado «programa.exe» que no tenga el atributo de ejecutable, aunque fuera un programa el sistema no lo entendería como tal. Así que de momento lo que me interesa es que os vayais olvidando de las extensiones como info de atributo de archivo ejecutable. No obstante esto lo profundizaremos más adelante y ahora seguimos con lo que estábamos, que me disperso y esto no es bueno.

El prompt o indicativo de la línea de comandos es la señal con la que el shell indica que está preparado para recibir una orden. Se representa por los signos # o $, dependiendo si se está trabajando como usuario o como root (superusuario), y su aspecto es configurable por el usuario.

Linux ofrece la posibilidad de usar varias shells:

– sh (Bourne Shell): /bin/sh

– ksh (Korn shell): /bin/ksh

– csh (C Shell): /bin/csh

– bash (Bourne Again Shell): /bin/bash

Las dos shell más populares en Unix son el Bourne Shell (System V) y el Cshell (BSD Unix). En Linux es el Bourne Shell (bash) una variante del Bourne clásico

que incluye características más avanzadas y que hoy en día va a ser la que nos aparezca instalada por omisión en la mayor parte de las distribuciones linux más populares.

Para cambiar la shell actual deberás usar el comando: chsh. Pero posiblemente nunca necesitarás hacerlo si no eres de esas personas trasteadoras.

Una vez que un usuario normal accede al sistema con su login y su password, se le cede el control a la shell, la cual normalmente ejecuta dos ficheros de

configuración: el general /etc/profile y el particular /home/DirectorioUsuario/.profile. A continuación la propia shell despliega el literal «inductor

de coma> ESTRUCTURA DE DIRECTORIOS Y ARCHIVOS

Estructura de ficheros

Acceso al sistema y primeras órdenes básicas:

Tecleando nuestras primeras órdenes en el sistema:

Antes de entrar en materia es necesario aclarar un punto que seguramente en cuanto comencemos parecerá obvio: ¿cómo ver lo que ponemos y lo que nos responde el ordenador si, precisamente, el problema es que no vemos?

Bien, en principio voy a explicar unas pocas órdenes básicas del sistema y algo de su filosofía de funcionamiento para luego pasar a explicar el sistema de empaquetamiento de programas y, por tanto, el modo de instalar software en un sistema GNULinux. Por ello con este tema y con el de los paquetes ya se podrá instalar un lector de pantalla y comenzar a probarlo todo. Lo hago así, aun sabiendo que es más teoría, porque posiblemente de otro modo tendría que soltaros una línea de órdenes del sistema para instalar el programa lector de pantallas y no os enteraríais de nada. Así que, teniendo en cuenta esto, comienzo con la explicación de unos rudimentos que luego de enviar el tema sobre la paquetería de Linux podréis ponerlos en práctica. Vamos allá.

En el principio fue el login… presentándonos al sistema:

Como ya apuntamos en pasadas entregas, Linux es un sistema operativo multitarea y multiusuario. Esto quiere decir que podrá haber más de una persona usando un ordenador a la vez, cada uno de ellos ejecutando a su vez diferentes aplicaciones. Para que cada uno de estos posibles usuarios puedan trabajar, es imprescindible que se presenten adecuadamente al sistema operativo y que éste reconozca y se configure independientemente para cada uno de los usuarios según sus privilegios establecidos por un posible administrador. Este proceso, llamado login, consta de dos pasos:

A) Login: se introducirá un nombre de usuario (nombre con que te identificarás ante el sistema, el cual será dado por el administrador).
B) Password: una contraseña, la cual es tu llave personal secreta para entrar en la cuenta. Al ser el único conocedor de la contraseña, nadie más podrá presentarse en el sistema con tu nombre de usuario.

Si bien todo esto es cierto, es necesario conocer también que el superusuario root tiene privilegios absolutos sobre todo el sistema, y esto incluye también las cuentas de usuario y sus contraseñas, por lo que el root podrá eliminar, crear y cambiar todas las cuentas y todas las contraseñas para esas cuentas. Generalmente un ordenador casero utilizado por una única persona seguirá trabajando de este modo, un superusuario root para gestionar todo el sistema y uno o más usuarios para trabajar diariamente. Aunque esto nos pueda parecer absurdo, (venimos formados la mayor parte de nosotros en el trabajo con sistemas DOS o Wuindows), el mantener a los usuarios separados de la administración hacen que los sistemas Linux sean prácticamente invulnerables a los virus.

En casi todas las instalaciones de un sistema linux se nos pedirá en uno u otro momento un nombre de usuario que deberemos dar, una contraseña, y también una contraseña para el usuario root que siempre debe existir ya que sin él no podríamos administrar a Linux. Asimismo, cada sistema Linux tiene un nombre del sistema (hostname) asignado. Este hostname le da nombre a la máquina. El nombre del sistema es usado para identificar máquinas en una red, pero incluso aunque la máquina no esté en red, debería tener su nombre. éste, también se nos suele solicitar en el proceso de instalación. Si omitimos dar uno lo más probable es que el hostname de la máquina sea fijado a Localhost o al nombre de la distribución que estemos instalando.

En la mayor parte de las distribuciones linux, cuando el sistema se carga en memoria, arrancará por defecto el sistema gráfico, ya sea con el gestor de ventanas GNOME, con el KDE o con cualquier otro. Aunque para el entorno GNOME ya existe un lector de pantallas más o menos utilizable, de momento nos vamos a fijar más en el entorno de consola, así que, cuando el sistema nos pida el login, (lo sabremos porque posiblemente en el altavoz interno del PC o en los altavoces externos escucharemos algún sonido que así nos lo indique), pulsaremos la combinación de teclas alt + control + F1, lo que nos colocará en la solicitud del login, pero esta vez en la modalidad de texto, que es la que nos interesa. Si por cualquier razón quisiéramos volver a pasar desde la consola al entorno gráfico que acabamos de avandonar, simplemente pulsando alt + F7 lo haremos, y con alt + control + F1 volveremos de nuevo al entorno sólo texto. Por tanto, Situados en el entorno de consola escribiremos primero el nombre de usuario y pulsaremos intro. tras esto escribiremos la password, daremos intro, y entraremos inmediatamente en el entorno de trabajo. En muchas distribuciones si pulsamos entonces la tecla retroceso escucharemos pitidos en el altavoz interno del PC, lo que nos indica que estamos autorizados correctamente ante el sistema, de lo contrario el ordenador no pitaría. (esto no es válido en muchas otras tales como guadalinex.

Existen, también, otros usuarios especiales como admin, sa o sysadm (usuarios de administración del sistema), o uucp (usuario de comunicaciones) pero de momento éstos quedan fuera de nuestro ámbito de estudio.

Breve nota sobre linux en modo live CD y las contraseñas.

Muchas distribuciones, como ya creo haber comentado en algún otro tema, (entre ellas Guadalinex, oralux o lazarux), han sido diseñadas en un modo especial llamado Live Cd, esto no es ni más ni menos que la posibilidad de arrancar y cargar el GNULinux en memoria desde el CDRom, con la intención de que el usuario pueda probar fácilmente la distro sin tener que tocar nada en el equipo. Son distribuciones funcionales completamente e, incluso, podría llegar a guardarse información en la partición nativa de windows tal como archivos, documentos, etdc. Frente a la facilidad de uso que esto supone, también supone alguna desventaja: la carga del sistema es mucho más lenta, así como la ejecución de los programas, puede haber más problemas en la detección de determinado hardware dado que es necesario que linux cargue los módulos correspondientes para dichos dispositivos, con lo que, si no han sido tenidos en cuenta, no será posible hacer funcionar bien ese ordenador. Por lo que lo normal es que las live CD se Prueben y, si convencen al usuario, se acabe por instalar desde la oportuna utilidad de instalación que exista en esa distribución.

Pues bien, el modo general de uso de estas distribuciones hace que no sea necesario identificarse ante el ordenador por lo cual el modo de arranque y de uso podrá parecerse más a cómo lo veníamos haciendo en otros entornos como Windows. Es por ello también que no existe el usuario root (en realidad si que existe, pero no tiene sentido ya que en este tipo de distribuciones no vamos a poder instalar ni desinstalar nada), así que estaremos utilizando el sistema como un usuario preidentificado por los creadores de la distribución.

Ya dentro del sistema: ¿y ahora?

En cuanto nos identificamos ante el sistema tal cual vimos más arriba, aparecerá normalmente lo que denominamos consola, que no es otra cosa que una pantalla en negro con el promt visible y esperando a recibir órdenes. El prompt no es otra cosa que el púnto indicativo de entrada de las órdenes a la consola , el cual, en linux, se suele representar con el nombre de la máquina, separado por los dos puntos el nombre del usuario seguido del signo # (almohadilla) o $ (dólar) dependiendo de si el usuario es normal o si es el root. Un ejemplo válido sería quetzatl:army´# si estamos en la máquina llamada quetzatl y el usuario actual es army.

En linux podremos tener, a diferencia de otros sistemas de órdenes como ms-DOS o freeDOS, lo que denominamos consolas virtuales. Éstas nos Permiten tener más de una sesión de trabajo activa y ejecutar distintas tareas a la vez. Una vez en el sistema pueden ir activándose con alt+f1, alt+f2,

alt+f3 hasta alt+F6, en principio, aunque es posible habilitar hasta doce sesiones, con el resto de teclas de función. Esto facilita mucho la tarea de la multisesión, ya que podemos tener varios programas corriendo a la vez en una consola, pero también podemos tener varias consolas a la vez corriendo varios programas, o podemos tener un programa por consola. Yo por facilidad de uso suelo tener un programa por consola cuando no supero los cuatro programas corriendo a la vez, pero tampoco estoy convencido que esto sea una buena cosa.

Primeras órdenes dadas:

Un comando u orden se invoca tecleando su nombre y separando con espacios los argumentos opcionales. La shell después de mostrar el prompt del sistema (# o $) espera

a que se le introduzca algo, lo cual será interpretado y ejecutado después de pulsar la tecla [Intro]. Evalúa lo que se ha escrito buscando en primer lugar

si contiene el carácter / (barra inclinada) al principio. En el caso que aparezca lo interpreta como un programa y lo ejecuta. En caso contrario, examina si se trata de

una función (secuencia de comandos identificada por un nombre unívoco) y si no lo es, comprueba que sea un comando interno o palabra reservada para ejecutar.

Por último, hechas estas comprobaciones con resultado negativo, la Shell considera que se trata de un comando externo y comienza su búsqueda en el disco

en los directorios de la variable de entorno PATH. Si no encuentra nada se mostrará el mensaje:

[ComandoTecleado]: command not found (donde el nombre Comando Tecleado es la orden que nosotros hemos tratado de escribir previamente).

Ahora al fin vamos a escribir las primeras órdenes o comandos básicos del sistema para cerrar este tema y pasar a explicar el apartado dedicado a los paquetes para que podais instalaros el lector de pantallas.

La primera orden que vamos a escribir se llama ls. Este comando Lista archivos y directorios de un directorio. Usos:

ls (Lista archivos y directorios del directorio actual. Es igual que ls . (ls punto).

A la vista no hay diferencia entre archivos y directorios).

ls -a (Lista todos los archivos y directorios, incluidos los ocultos, . -directorio actual y .. -directorio anterior).

ls .. (Lista archivos y directorios del directorio anterior).

ls -F (Lista diferenciando archivos de directorios).

ls -l (Lista atributos o permisos de archivos).

Tened en cuenta que, al igual que en los sistemas DOS, . (punto significa directorio actual) y .. (punto punto significa directorio anterior). A los que nunca trabajásteis en sistemas DOS os aclaro que un directorio es lo mismo que una carpeta.

Cambio de directorio: cd.

Cambia el directorio actual de trabajo. Permite indicar el camino desde el directorio raiz «/» (direccionamiento absoluto) o desde el de trabajo (direccionamiento

relativo).

Ejemplos: (Nos encontramos en /home/army y queremos movernos a /home/army/compartidos/edonkey).

relativo: cd compartidos/edonkey .

absoluto: cd /home/army/compartidos/edonkey (Todo el camino desde el raiz «/»).

Otros:

cd .. (Nos mueve al directorio anterior). (ojo a los de MS-DOS o FreeDos que siempre cometemos el mismo error, los puntos van separados de la orden cd.

cd / (Nos mueve al directorio raiz).

cd (Nos mueve a nuestro directorio origen «home», igual que cd ~).

cd compartidos (Nos mueve al subdirectorio compartidos).

Orden mkdir:

Crea un directorio. Ejemplo:

mkdir canciones (Crea el subdirectorio siempre que no exista).

Orden rmdir:

Elimina un directorio. Ejemplo:

rmdir canciones (Borra el subdirectorio siempre que esté vacío).

Orden cp:

Copia entre distintas ubicaciones archivos. Ejemplos:

cp /home/army/archivo1 /home/quetzatl/archivo1

cp archivo1 archivo2 A diferencia de el DOS hay que escribir siempre la ruta completa tanto de destino como de origen incluyendo el nombre del archivo destino, tenedlo muy presente porque esto es una fuente de muchos fallos y, antes de darnos cuenta de la razón, solemos volvernos locos buscando la solución.

Orden mv:

Mueve archivos de una a otra ubicación. Ejemplos:

mv index.htm /home/httpd/intranet/

mv /home/quetzatl/compartidos/edonkey/canción.mp3 /home/army

Si movemos al archivo /null haremos lo mismo que si eliminásemos el archivo.

Orden rm:

Elimina archivos y directorios. Ejemplos:

rm ArchivoPrueba (elimina el archivo llamado ArchivoPrueba)

rm -i ArchivoConfidencial (Pide confirmación antes de eliminar el archivo).

rm -r . (Suprime archivos y subdirectorios. Es un modo de eliminar recursivamente. Úsalo con precaución porque no pregunta).

Por último en esta entrega os voy a comentar tres órdenes más que afectan a la sesión de trabajo y al ordenador.

Orden halt:

Detiene (apaga) el sistema. Solamente es funcional desde el usuario root, ya que por ser Linux un sistema multiusuario no debe permitirse que cualquiera tenga el poder de reiniciar o detener todo.

Ejemplos:

halt -r now (Reinicia el sistema «ahora»).

halt -h now (Detiene el sistema «ahora»). generalmente solo con poner la orden halt desde el usuario root se conseguirá que linux apague el ordenador.

orden exit:

Finaliza la sesión de trabajo actual. Esta es la orden que ha de utilizar cualquier usuario para terminar su sesión. No apaga el sistema, sino que cierra el usuario y la terminal queda en la pantalla de login.

Orden reboot:

Reinicia la máquina. También se puede substituir por la pulsación de la combinación de teclas alt+control+suprimir .

Un breve acercamiento a la instalación del sistema.

Instalación del Sistema: generalidades.

Quizás este tema aquí se nos va fuera por varias razones:

1ª- Hay muchas distros de Linux correteando por la web y, posiblemente, cada una de ellas se instala de un modo diferente y tiene sus propias características.

2.- Como en todos los sistemas operativos, el Proceso de instalación es totalmente inaccesible. Aquí tenemos un par de excepciones, la distro suse que, al menos en teoría, da soporte braille casi desde el principio, pero nunca lo he probado y desconozco si las líneas que utilizamos en España funcionan bien en este modo.

Sí es posible, no obstante, llevar a cabo una instalación en red Hat o en la distribución modificada de fedora por parte de los creadores de Speakup, ciertamente si tenemos el sintetizador apropiado que podamos utilizar con este lector de pantalla, cuestión que no es muy común en muchos usuarios. Sin embargo, si teneis un sintetizador apropiado podreis instalar solos un sistema linux, yo lo he hecho. Debereis leeros el Howto que han preparado para llevar a cabo esto.

También existen algunas distros tipo Oralux, BRLSpeak, Zipspeak o la española Lazarux que se han pensado directamente para ciegos y son capaces de dar accesibilidad desde el principio del proceso, pero los productos específicos siempre dejan fuera funcionalidades que alguien de los que use el ordenador con nosotros y que no sea ciego podría requerir. Esto no pasa con Lazarux ya que utiliza una distribución basada en Debian y creada con las herramientas de Metadistros.

3ª. Creemos, sin embargo, aconsejable que si uno es principiante siempre sería mejor que alguien lo ayudase a crear la instalación ya que así el proceso sería más rápido y siempre sería tiempo ganado a la hora de un posterior aprendizaje.

Hay tres modos primordiales de instalar una distribución de linux dependiendo del tipo de ordenador que vayamos a utilizar e independientemente de la distribución.

1.- Si la BIOS de nuestro equipo soporta secuencias de arranque desde el CDRom el asunto es tan sencillo como iniciar con el primer cd de la distro cargado en el ordenador y esperar a que el programa de instalación comience a examinar el hardware y a pedirnos toda la información que necesite que le administremos durante este proceso.

2.- En equipos antiguos o en aquellos que no dispongan de una BIOS capaz de reconocer la unidad de CDRom en el proceso de arranque necesitarán de una acción por nuestra parte antes de comenzar la instalación. Es necesario crear unos disketes de arranque que hagan que el instalador se pueda iniciar y que sea él quien reconozca luego la unidad de cds. Para ello en un directorio del primer cd de la distro que se suele llamar «dosutils» o «utils» bienen diferentes aplicaciones que nos permitirán crear estos discos a partir de unos ficheros de imágenes que están en algún directorio que se llame algo parecido a «images».

3.- En ordenadores que no poseen una unidad lectora de CDRom se hace un proceso similar al explicado en el punto anterior, pero ahora será necesario crear disketes para toda la distribución y así poder instalarla completamente desde la unidad de diskettes. En realidad hoy en día este caso ya no se suele dar, a no ser que estemos instalando linux en algún ordenador muy antiguo o en algún tipo de equipo específico que no pueda disponer de este tipo de unidades lectoras de cds.

Hoy en día, con los ordenadores que no tengan más allá de 5 años raro será que no se pueda hacer que la BIOS sea capaz de arrancar desde el cd, por lo que el primer punto será, posiblemente, el más utilizado por aquellos que instalen un sistema Linux en su Equipo.

Instalación del Sistema: Dos en 1.

Linux es un sistema muy respetuoso con el resto y por ello es capaz de convivir en equipos que tengan instalado windows o ms-dos. Por desgracia, los sistemas de Microsoft no actúan igual y tienden a agenciarse todo el ordenador. Por ello, es conveniente que si se pretende usar windows y linux en la misma máquina primero se instale Windows y después se proceda con linux, ya que si lo hiciéramos al revés, Windows se cargaría el arranque y no podríamos entrar en Linux a no ser que hubiésemos sido cautos y hubiésemos creado un diskette de arranque.

Hay dos modos principales de tener dos sistemas en el mismo ordenador:

2.- Windows instalado en una partición a lo largo de todo el disco y luego instalar linux de tal modo que funcione como una imagen en un directorio de Windows. Este modo es bueno si solamente se quiere probar el sistema, pero si se va a utilizar con mayores propósitos hace que vaya más lento y que se pierdan muchas cualidades que el sistema instalado de modo normal tendría. De todos modos, si se desea probar un sistema linux sin tener que andar con particiones y directorios lo mejor sería conseguir una distribución en modo Live Cd. Esto significa que se mete el cd en la unidad lectora, se arranca el ordenador y linux se carga en la memoria del equipo permitiéndonos trabajar con él casi como si estuviésemos usando un sistema instalado. Esto se puede hacer con distros basadas en Knophis, caso específico para ciegos es la Oralux que se basa en este tipo de distribución; o ba´sandose en Debian utilizando las herramientas Metadistros, caso específico para ciegos es la distro Lazarux. Si bien hay que tener en consideración que la ejecución de este tipo de distros en live CD va a resultar un poco más lenta de ejecución y que, si queremos guardar datos tendremos que hacerlo en la partición que tenemos para windows.

2.- Instalar windows y linux en dos particiones independientes del disco duro

Particionar un disco significa dividirlo virtualmente en dos porciones para poder dedicar cada una a una cosa sin interferir en nada con la otra. Sería algo así como poseer dos discos duros en uno. El usuario no se dará cuenta de ello, simplemente verá que el tamaño del disco se reduce ya que parte se asigna a una partición y el resto a las otras particiones que se hagan.

Cuando se instala windows éste no pregunta en qué partición debe instalarse, sino que automáticamente toma todo el espacio disponible en el disco duro para así machacar todo lo que haya en el sector de arranque del disco, por eso comenté más arriba que cuando se haga una instalación dual conviene instalar primero windows. Cuando todo esté correctamente se Procederá a particionar el disco y a instalar linux en su lugar correspondiente.

Hoy en día es factible hacer este proceso sin a penas riesgos de pérdidas de información ya que existen programas que permiten trabajar con las particiones sin necesidad de borrarlas.

En los cd de las distribuciones suele venir un programa gratuíto llamado Fips que nos permite trabajar con particiones, crearlas, dimensionarlas, borrarlas, etc.; pero es algo complejo de utilizar para la mayor parte de la gente.

Más sencillo podría resultar el uso de Disk Druid que suele venir acompañando a los instaladores de Red Hat o de Fedora. Pero es posible que cada instalador de cada distribución en particular traiga el suyo, siendo todos muy parecidos.

Existe otro programa de pago para Windows que permite hacer lo mismo y de forma muy intuitiva, se trata del Partition Magic. Por lo que si tenéis un buen control del Windows con vuestro lector de pantallas favorito podríais preferir generar el reparticionamiento con este Programa. Además tiene la ventaja de crear discos de rescate y si cometéis errores podréis subsanarlos más o menos fácilmente.

Antes de crear una partición con cualquiera de estos tres programas deberemos tomar precauciones:

1.- Salvaguardar todos aquellos datos que para nosotros resulten sensibles utilizando nuestro programa favorito de respaldo.

2.- Pasar las herramientas de diagnóstico de disco que tengamos. Por ej.: en windows pasaríamos el scandisk para verificar que no existan problemas físicos y de ruptura de datos en el disco, y luego pasaríamos el defrag para reordenar el contenido del disco y agrupar todos los datos en una parte para que con la otra se pueda hacer la partición para Linux.

3.- Particionar el disco teniendo en cuenta qué espacio se quiere para cada partición. Un modo lógico de hacerlo sería, al menos en principio, dejar un 60% para Windows y el resto para linux en una partición no windows o directamente formateada para linux ext3.

Tras haber hecho esto reiniciaremos el equipo con los discos de instalación de la distro correspondiente metidos en la unidad que necesitemos usar dependiendo de nuestro sistema y el resto se hará desde el Instalador.

Si se va a optar por particionar el disco a posteriori, usaremos en tal caso el programa de particionamiento que traiga cualquiera distribución que vayamos a utilizar.

Lo normal es que si lo hacemos automáticamente, el instalador pregunte primero donde queremos instalar, a lo cual seleccionaremos la partición que no sea para windows, y luego creará a su vez tres particiones dentro de ella, Una para archivos de arranque, donde se suele alojar el gestor de arranque (no tiene por qué ser así, de hecho está en desuso crear particiones boot, algunos instaladores colocan el arranque en ottros sectores de inicio del disco duro), Otra para la memoria swap, es decir, una memoria virtual de intercambio en disco donde se volcará parte de la memoria cuando esta esté llena y necesite liberarse, normalmente esta partición tendrá la misma longitud que cantidad de memoria ram tengamos (windows crea la swap en la misma partición donde está instalado para lo que la hace ser menos eficaz que la de linux que tiene su partición propia). Y por últimola porción más grande se deja para montar el sistema de archivos.

La mayor parte de los instaladores de distribuciones linux ya son capaces de reparticionar ellas mismas sin necesidad de utilizar un programa previo para ello, pero casi todas siguen aconsejando hacer este proceso del modo que acabamos de explicar.

Generalmente casi todos los instaladores en uno de los primeros pasos te presentarán la posibilidad de verificar la integridad de tus discos ya que, en muchas ocasiones, cuando descargas un archivo de internet corres el riesgo de que se pueda corromper. Existe un modo de averiguarlo y es conseguir en la misma web o ftp de donde te descargaste las imágenes de tu linux un código llamado checsum y, utilizando uno de los muchos programas verificadores de códigos checsum compararlo con el que sacarán a tus imágenes descargadas. Un ejemplo de código checsum podría ser este: b0e8f7cc3af7c4eaa1225bbf6a003a8f. Si son idénticos significa que la imagen iso está bien y que puedes quemarla con tranquilidad, si no lo está te tocará descargarlo denuevo. Si no tienes este programa o no te apetece meterte en líos simplemente con esta posibilidad que te da el instalador puedes verificar o no antes de la instalación el estado de los CD. Si estás seguro que no hay errores puedes saltarte este paso tranquilamente, incluso en una ocasión conseguí instalar una distribución pese a que este paso me avisó que el cd estaba mal.

Seguidamente se te suele pedir que selecciones tu lengua de instalación. Pulsarás las flechas hasta localizar el idioma de tu interés y luego seguiremos adelante.

La siguiente pantalla normalmente va a ser para especificar el mapa del teclado que vas a utilizar. La selección por omisión es U.S., por lo que deberás moverte por la lista hasta que consigas localizar el teclado que combiene a tu idioma y país.

Seguidamente se configura la tarjeta de vídeo, se especifica su memoria de vídeo, y se especifica el monitor. El caso más habitual es que el instalador reconozca automáticamente estos componentes y simplemente seguiremos adelante. Si se diera el caso que no reconociera la tarjeta de vídeo habría que indicársela a mano, pero en ordenadores medianamente modernos nunca se me dio el caso.

En este punto saltará el particionador de discos que traiga la distribución. Aquí convendría, ten en cuenta lo explicado más arriba sobre las particiones y pon cada una como te convenga más. Generalmente para un usuario principiante, si lo deja en automático podrá resolver bien el problema, pero si se opta por tocar las particiones hay que ser muy cuidadoso ya que podría dañarse cualquier dato de otra partición agena a linux o, incluso, borrarla irremediablemente. Las particiones suelen hacerse de tal modo que el particionador tome una partición no windows hecha con antelación o que haga una partición no windows en el espacio libre o en parte de ese espacio libre, se le puede marcar al programa o se puede dejar por omisión lo que él quiera. En esa partición hará pues dos particiones más, una llamada partición swap (ya explicada más arriba) y otra más grande llamada / donde se montará todo el sistema de archivos (en realidad podríamos montar tantos sistemas de archivos como quisiéramos y con el nombre que quisiéramos, pero de momento nos quedaremos aquí y tendremos en cuenta que / es lo mismo que en windows c:\). De hecho los linuxeros expertos y cacharreadores nunca aconsejarían dejar al particionador actuar automáticamente, pero yo creo que un principiante no debe hacer florituras y que simplemente debe calcular qué es lo que quiere, es decir, especificar qué longitud quiere darle a la instalación linux. Ciertamente, en caso de tener la oportunidad, mi consejo es que resultaría mejor y más gratificante tener a linux instalado en una máquina para él solo, pero esto no está al alcance de todo el mundo.

Cuando ya las particiones estén diseñadas se pasa a la siguiente pantalla y el sistema de archivos es montado. Se te preguntará qué tipo de instalación quieres realizar. Esta pantalla te ofrece las siguientes opciones: Escritorio Personal, Estación de trabajo, Servidor, portátil, personalizada, actualizar. Es aconsejable que se elija servidor por ser la que más paquetes instala y nos evita tener que instalar más tarde. Podrías también elegir personalizada, pero siempre es algo más compleja.

Seguidamente se te preguntará qué paquetes deseas instalar. Hay una lista muy larga de paquetes disponibles, y ciertamente podrías añadir alguno que no instales ahora

más tarde, pero esto sería un fastidio en el mejor de los casos y tiende a ser confuso para los principiantes. Lo recomendable sería, a mi parecer, ir a la opción «todo» siempre que tengas suficiente espacio en el disco. Una instalación de este tipo podría requerir unos 8 gB.

¿Qué es Linux»

En primer lugar daré por supuesto que todo aquel que esté leyendo este documento sabrá, aunque solamente sea de un modo básico, lo que significa el término Sistema Operativo (S.O. o, en inglés, O.S.). En la actualidad existen una gran cantidad de ellos dependiendo del tipo de ordenador en el que se pretenden ejecutar. Por ejemplo para los PC uno de los sistemas

operativos más difundidos es Microsoft Windows, tanto en las

versiones caseras o 9X, como en las versiones profesionales: NT, 2000 y XP pro. Otros posibles sistemas operativos para este tipo de ordenadores son Solaris, OS/2, BeOS, MS-DOS (existe también un clon del MS-DOS, si cabe más perfeccionado, ya que sigue en desarrollo, que se llama FreeDos), o uno de los sistemas operativos más poderosos y en rápida expansión para PC, LINUX.

Linux es un sistema operativo generalmente gratuito y de libre distribución inspirado en el sistema Unix, aunque no siempre es así, ya que hay variedad de distribuciones que son compiladas y distribuidas por empresas, escrito por Linus Torvalds con la ayuda de miles de programadores en Internet. Unix es un

sistema operativo desarrollado en 1970, una de cuyas mayores ventajas es que es fácilmente portable a diferentes tipos de máquinas (plataformas), por lo que existen versiones de Unix para casi todos los tipos de ordenadores, desde PC y Mac hasta estaciones de trabajo y superordenadores.

Por tanto, Linux es un sistema operativo clon de unix, que fue creado inicialmente como hobby por un joven estudiante, Linus Torvalds, en la Universidad de Helsinki en Finlandia.

Linus estaba interesado en Minix, un pequeño sistema UNIX, y decidió desarrollar un sistema que excediera los estándares de este. Así comenzó a trabajar

en 1991, cuando realizó la versión 0.02 y trabajó constantemente hasta 1994, cuando la versión 1.0 del Kernel de Linux fue liberada. Envió un mensaje a las BBS en Internet para poner en conocimiento de otros programadores lo que había logrado. Así y casi de un modo inesperado, otros muchos programadores comenzaron a desarrollar el sistema potenciándolo hasta límites insospechados. A esto ayudó el que todo el sistema fuera puesto bajo los términos de las licencias de proyecto GNU Auspiciado por Richard Stallman, el cual promocionaba ya desde hacía unos años la vuelta al cooperativismo de los primeros años de la informática promocionando la libertad de usar un código fuente que debería ser abierto para que otros programadores lo mejorasen y, por tanto, tratando de evitar que las empresas de software propietario se apropiasen de todo el sistema para impedir el libre desarrollo de cualquier programa. Desde entonces el nombre real de linux debiera ser GNULinux , pero se suele reducir habitualmente a Linux.

Al contrario que otros sistemas operativos, como por ejemplo MacOS (Sistema operativo de los Apple Macintosh), Unix no está pensado para ser fácil de emplear, sino para ser sumamente flexible. Por lo tanto Linux no es en general tan sencillo de emplear como otros sistemas operativos, aunque, se están realizando grandes esfuerzos para facilitar su uso. Pese a todo la enorme flexibilidad de Linux y su gran estabilidad unido todo ello a su bajo coste, han hecho de este sistema operativo una opción muy a tener en cuenta por aquellos usuarios que se dediquen a trabajar a través de redes, naveguen por Internet, o se dediquen a la programación. Además el futuro de Linux es brillante y cada vez más y más gente y más y más empresas (entre otras IBM, Intel, Corel) están apoyando este proyecto, con lo que el sistema será cada vez más sencillo de emplear y los programas serán cada vez mejores.

Otra ventaja que existe es que Linux se caracteriza por estar muy optimizado con lo que podrá correr en ordenadores más antiguos que ya no estamos usando o que se nos quedan algo cortos para los sistemas devoradores de recursos tales como suelen ser todos los de Microsoft. Yo mismo estoy haciendo correr mi linux en un pentium III a 450 mhz sin ningún tipo de problema. Para ejemplificar esto os comento que el mismo ordenador con sep no era capaz de reproducir las películas en formato DIVX ya que las ejecutaba a saltos y con mala calidad, sin embargo con linux y usando el entorno de ventanas GNOME las mismas películas se veían perfectamente. Incluso existen distribuciones diseñadas para caber en uno o dos disquetes y, por supuesto, también hay versiones que son capaces de ejecutarse en PDA y equipos ultraportátiles similares. Hablando de dispositivos PDA existe un modelo de Sharp en el mercado, llamada zaurus, que implementa un linux en su corazón, e incluso se ha diseñado ya un open zaurus que trata de mejorar las aplicaciones que este dispositivo trae de fábrica, quizás algún día me decida y compre una para intentar accesibilizarla un poco. Asimismo, aparatos más específicos como pueden ser los router, suelen llevar linux empotrados (también llamados embebidos) en su interior, claro caso de esto son los routers linksys.

¿Qué son las distribuciones?

Este término es muy característico de Linux y no existe en otras plataformas tales como Mac, Windows, beos, etc. Una distribución o distro, como también se la conoce, no es otra cosa que la agrupación del núcleo del sistema (kernel) con herramientas necesarias o no para el trabajo. La primera cosa que resulta chocante en cuanto uno se tropieza por primera vez con este sistema operativo es que desde el principio trae casi absolutamente todo lo necesario para poder trabajar, tanto particularmente como profesionalmente. Interfaces de usuario, herramientas de programación, editores de textos, paquetes ofimáticos, herramientas de conectividad, gestores gráficos, etc. Por lo tanto, sería algo así como que fuésemos a la tienda y al comprar un CD de Windows, éste nos trajese además todo el paquete Office, el Adobe Photosop, el Nero Burning ROM, …, y montones de herramientas más. Además imaginad que no sólo tuviéramos el entorno gráfico habitual en Windows, sino que nos ofrecieran en ese mismo CD varios entornos diferentes y varios gestores de consola…, pues bien, eso son las distribuciones de linux, recopilaciones hechas por diferentes grupos o empresas de todo aquél software que a cada uno de ellos le parece más interesante o mejor.

Si bien existen bastantes distros de linux, desde aquellas minimalistas y muy específicas que pueden caber en pocos disquetes hasta grandes recopilaciones del orden de 15 cdROM, de modo general son todas muy parecidas y casi cualquier programa debería funcionar en todas ellas. Suele cambiar, no obstante, el modo y programas de instalación, la forma de empaquetado de los programas…., pero la estructuración de carpetas y montajes de las mismas es similar en todas. Los cambios que pueda haber en la colocación de los programas en la estructura de directorios es mínima.

Entre las distribuciones más importantes están: RedHat http://www.redhat.com/ (la más extendida en el mundo y también la más sencilla en cuanto a su , aunque ahora esta empresa se ha especificado más y su distribución doméstica ha pasado a ser Fedora core. Debian http://www.debian.org/ (dicen que la más estable y poderosa de todas ellas, pero también más compleja de utilizar, con lo que yo no estoy de acuerdo, en su día, la primera distro que instalé fue una suse, ya que las debian por esa fama que las precede me daban miedo, ahora mismo utilizo una guadalinex http://www.guadalinex.org/, que está basada en debian, y me dispongo a instalarme una ubuntu http://www.ubuntu-es.org/, también basada en debian, y digan lo que digan, no pienso volver a pasarme a distribuciones basadas en RedHat). Suse http://www.novell.com/es-es/linux/suse/ (una intermedia entre las dos anteriores pero su paquetería se basa en RedHat, recientemente comprada porNovell,si tenemos suerte no pasará lo que ocurrió hace unos años cuando esta empresa compró WordPerfect y acabó con él ). Mandriva, antes Mandrake, http://www.mandriva.com/ (basada en redHat pero apostando más por la facilidad de manejo mediante la potencia de sus herramientas gráficas); otras pueden ser: Slakware, knophis, Gentoo Fedora y muchas otras de propósito más o menos específico tales como las exclusivamente pensadas para ciegos Oralux http://oralux.org/, Brlzip o la recientemente comenzada en su desarrollo desde un proyecto de fin de carrera llamada Lazarux http://www.grupomads.org/download/, así como la modificación de fedora hecha por los creadores del lector de pantallas Speakup para posibilitar la instalación desde cero de la distribución Fedora de un modo totalmente accesible para un usuario ciego.

Las empresas dedicadas a recopilar el kernel y el resto de material que compondrá la distribución en particular, pueden cobrar cierta cantidad de dinero por ello, pero normalmente también colocarán su trabajo en la Internet a disposición de todos los navegantes, sean clientes o no. Entonces podríamos preguntarnos ¿de dónde obtienen el dinero para subsistir? Pues en realidad vendiendo sus servicios, es decir, cuando uno compra una distro, sea la que sea, suele comprar también un soporte técnico por una determinada cantidad de tiempo, manuales, apoyo, etc. Ciertamente mucha gente, aun teniendo la posibilidad de obtener el producto gratis prefiere pagar por un soporte que le solucione los problemas. Por ejemplo, un empresario podría querer montar su red con ordenadores corriendo linux, y esto le costaría solamente el precio de la conexión a Internet y el tiempo de instalación. Sin embargo, podría preferir contratar a alguien que le instalase el sistema y que le ofreciera soporte en caso de problemas.

Y aquí llega una de las cosas que puede llevarnos a engaños o a malentendidos… GNU/Linux = software libre. En realidad esto del software libre deriva de un verbo en inglés que resulta demasiado oscuro. Free software podría traducirse tanto como software libre como por Software gratuito. Quizás es más cierta la primera de las acepciones, es decir, el software libre regulado bajo las licencias GNU GPL proclama la posibilidad, más que de la gratuidad, de la disponibilidad del código fuente de cada programa para ser libre de modificarlo y/o mejorarlo para el bien público de la sociedad, pero no impide que vendamos ese software, es decir, nosotros podemos tomar el programa x y modificarlo para mejorarlo o adaptarlo a ciertas necesidades y luego de ello podemos venderlo por un determinado dinero…; incluso podemos ir más allá, nosotros podemos recolectar los programas ponerlos en un CD y venderlos, pero estamos también obligados a que ese código fuente o esos programas estén disponibles libremente en algún lugar para que otras personas tengan las mismas posibilidades de acceder a él y actuar con él del mismo o parecido modo. Es por eso que generalmente en los sistemas linux de código abierto los precios de los programas no van a ser tan disparatados. También podría darse la posibilidad de que una empresa diseñase algún programa que corriese bajo linux pero hecho totalmente con tecnología propietaria, pues bien, nunca sería ilegal correr el programa en linux, pero si a alguien se le ocurriera poner los precios de los programas de la plataforma Windows en linux posiblemente no conseguiría vender ninguno de sus Productos… A fin de cuentas, pretendo que os quede claro tras esto, que software libre o free software no tiene por qué significar software gratuito aunque la mayor parte de las veces vayan asociados estos dos términos.

Propuesta de apuntes sobre linux

Tengo la intención de, según voy trasteando mi linux y haciéndole perrerías como puedo, ir preparando unos apuntillos de iniciación a este sistema operativo, a algunas de sus aplicaciones y, sobre todo, a lo que tengamos hasta el momento de accesibilidad.

En un principio pensaba enviar esto solamente a la lista tiflo-linux, pero dado que los que allí estamos se supone que en mayor o menor medida sabemos lo que tenemos entre manos, pues pensé en enviar estas notas a otras listas. Sin embargo, y como no quiero entrar como elefante en cacharrería ajena, quizás exponiendo temas que en las listas no interesan, pues pretendía que los administradores de las listas comentasen si tienen o no tienen inconvenientes a que use estos canales con los fines expuestos.

Por lo tanto, esperaré a tener contestación de los propietarios de las listas y luego comenzaré a enviar correos hablando sobre este apasionante mundo.

Antes de empezar, incluso en este correo que quizás sea una preintroducción (permitidme el palabro), quiero dejar claras varias cosas.

1.- Yo no soy un gurú del linux, de hecho ni siquiera podría considerarme un usuario medio del linux, me da la sensación, asimismo, que usuarios avanzados existen, pero pocos, por lo que posiblemente la gente que esté usando ya este sistema operativo podrá borrar estos correos porque no le dirán nada nuevo.

2.- Aunque considero que linux es mucho mejor que windows, en cuanto a la accesibilidad no esperéis grandes cosas, windows todavía nos lleva ventaja en esto. Ciertamente no soy totalmente antimicrosoft, pero hay ciertas cosas para las cuales, ni aun teniendo una accesibilidad a nivel de jaws podríamos prescindir del windows. Por ello yo, por mucho que mejore esto, seguiré siendo usuario de ambos sistemas, y en cuanto haya voces en español, también de mac… y porque amiga está como está y dudo que nadie haga un lector de pantallas para el amiga OS, si no, no dudéis en que también lo intentaría utilizar.

3. Los correos los iré enviando según pueda y no voy a tener una periodicidad establecida, según los escriba según los envia´re. Tanto pueden caer 3 correos en una semana, como estar dos meses sin enviar nada.

4. No voy a responder dudas en principio, para eso considero que está la lista tiflo-linux. Si respondería a cosas que no estén claras por problemas de mi redacción o a posibles errores que podais detectar en las cosas que os iré contando.

5. Aunque os contaré cosas de cómo se debe instalar un sistema linux, os comento que, en general, instalar linux no es accesible, excepto con un par de distribuciones adaptadas para ello, pero, de todos modos, windows tampoco lo es y no ocurre nada. Con un poco de lógica y un par de ojos amigos podremos instalar el sistema en el ordenador. Yo lo hice en su día así y, como ya os he dicho, no soy un gurú de nada.

6. No hay ni que decir que con los correos que os iré enviando podeis hacer lo que querais, publicandolos donde queráis, aunque se agradecería, si lo hacéis, que mencionáseis su origen.

7. Es posible, sólo posible, que termine por publicarlos en la web, pero lo hare si tengo tiempo.

8. También cabe la posibilidad de que me canse antes de lo debido, de que no tenga tiempo, de que me eternice con estos rollos hasta que os arrepintáis de haberme conocido, o de que pase nada o todo lo contrarios…, es decir, que no tengo ni idea de por donde va a discurrir esto.

Bueno, creo que más o menos os he contado por encima lo que me dispongo a hacer, ahora quedo pendiente de las respuestas afirmativas o negativas de los diferentes owners de las listas para saber dónde lo envío y donde no. Sentiros libres también para reenviarlo a cualquier otra lista que querais, por problemas de atención yo no me voy a dar de alta en ninguna otra lista, pero si alguno de vosotros que comencéis a recibir esto encontrais de interés el bodrio este y pensais que podéis reenviarlo a vuestra lista propia o a otra que os lo permita, pues eso, sentiros libres de hacerlo.

Salud.