Primeros pasos

Esta es una pequeña introducción a el uso de GNU/Linux. No pretende ser ningún completo manual de uso, sino una lectura de apoyo para quienes estén comenzando a usar este sistema operativo (S.O.). Se supone que el lector tiene conocimientos suficientes sobre Windows/DOS, puesto que continuamente se establecen paralelismos entre los comandos en GNU/Linux y en estos otros entornos. No son necesarios conocimentos previos sobre GNU/Linux, aunque unas nociones básicas no vendrían nada mal...

Quiero dejar claro que esto no es más que una lectura de apoyo para el usuario novel de GNU/Linux, creado a partir de pequeños apuntes y notas y mi propia (y escasa) experiencia personal con GNU/Linux. No es, ni pretende ser, un manual sobre el uso del Sistema Operativo. Para este propósito se pueden encontrar en la WEB varios buenos manuales y guías en formato electrónico, algunos de ellos traducidos al castellano por diversos proyectos (por ejemplo los manuales de LuCAS). Para más información sobre estos manuales mirad en la sección información.

Color rojo: comandos.
Color fucsia: ejemplos.

Introducción a linux

Usuarios

Lo primero decir que linux es un sistema multiusuario, en el cual cada cual tiene un nombre y una clave propia para acceder al sistema y  su espacio personal propio. Un usuario puede es propietario de sus archivos y es el propio usuario quien decide si estos archivos pueden ser leidos, modificados o ejecutados por otros o si por el contrario van a resultar completamente inaccesibles al resto. Para que el sistema "se entere" quien está usando el sistema para decidir a que archivos debe dejarle acceder y a cuales no (entre otras cosas) al iniciar el ordenador se procede a efectuar el denominado "login", o lo que es lo mismo, a introducir el nombre y clave personal del usuario que va a utilizar la máquina. La clave personal tiene que ser totalmente privada. Esto no suele tener mucha importancia en un linux "casero", pero sí en máquinas con miles usuarios o accedes a máquinas remotas mediante telnet. Lógicamente todo esto no se organiza solo, hay un usuario especial que se ocupa de mantener el sistema: añadir, modificar o dar de baja usuarios, asignarles "passwords" (claves), configurar el equipo lo mejor posible, instalar aplicaciones para que sean accesibles a todos los usuarios, etc. A esta persona se le denomina "root" o Superusuario. El root tiene acceso de lectura, escritura y ejecución a todos, completamente todos los archivos de la máquina (incluso a los directorios personales de cada usuario). Generalmente todos los archivos y directorios de sistema y de configuración y los programas son propiedad del root, pero suelen tienen acceso de lectura y ejecución para todos los usuarios (si no no los podrían usar). Por ahora no os preocupéis por esto.

Cada usuario tiene su propio espacio personal (directorio) para trabajar y guardar ficheros que se denomina $HOME (suele referirse a él como ~, por ejemplo para cambiar al directorio personal del usuario actual se escribiría cd ~) y generalmente se encuentra en /home/nombre_de_usuario (p.e. /home/juan).

Al concluir la instalación de linux la mayoría de distribuciones preguntan por una clave para el usuario root de la que tenéis que acordaros si queréis poder usar el ordenador (va en serio). Cuando iniciéis linux por primera vez lo más probable es que no existan más usuarios aparte de root. Es recomendable realizar las tareas comunes con una cuenta de usuario propia, accediendo como root sólo para tareas de configuración, instalación de programas, etc., de esta forma se suelen evitar catástrofes y estropicios nucleares muy típicos cuando se comienza con cualquier S.O. He aquí unos comandos básicos necesarios para la gestión de usuarios:

adduser: añade un usuario. Su sintaxis es adduser nombre_usuario . Ej: adduser juan

Al finalizar la creación del usuario se introducirá una nueva entrada en el archivo /etc/passwd con la información sobre el nuevo usuario. Estas entradas siguen este esquema:

nombre_usuario:clave_encriptada:UID:GID:nombre_completo:Home:Interprete_shell

clave: la clave la podemos establecer o cambiar mediante el comando passwd <nombre_usuario>. P.e. passwd juan.
UID: número del usuario.
GID: número del grupo al que pertenece el usuario. (un usuario puede pertenecer a varios grupos). La lista de grupos se encuentra en el archivo /etc/groups.
nombre_completo: ¡Pues el nombre completo del usuario!
Interprete (o shell): equivalente al command.com del MS-DOS. Hay muchos, sh (el clásico), csh, ash, tcsh, etc. uno de los más usados y potentes es el bash. Por ahora no vamos a cambiar nada aquí.

También se creará un directorio en /home con el nombre del usuario (p.e. /home/juan) con los archivos de configuración básicos. Aquí es donde el usuario juan guardará sus trabajos, documentos, etc.

Para borrar un usuario hay que borrar la línea que añadió con adduser (la que se refiere a ese usuario en el campo nombre_usuario). No es necesario borrar el directorio /home/nombre_usuario, pero si el usuario no lo va a volver a usar conviene borrarlo (más que nada por lo del ahorro del espacio).

Si mientras se trabaja con el sistema se desea cambiar de identidad de usuario sin volver a registrarse en el login habrá que utilizar el comando su. Esto puede ser útil si en algún momento hacen falta los privilegios del superusuario (root) para realizar alguna tarea (trabajar con archivos fuera del directorio de trabajo $HOME, por ejemplo). Sintaxis:

su <nombre_usuario>

-l: esta puede ser una opción interesante. Hace al 'shell' (bash, por ejemplo) un 'login shell'.

Si se omite el nombre de usuario el sistema sobreentiende que se quiere tomar la identidad y privilegios del superusuario root. Por supuesto, antes de conceder al usuario esos privilegios le pide la contraseña adecuada para conseguirlos.

El sistema: directorios, archivos y comandos relacionados

Linux es un sistema operativo basado en Unix, que sigue una estructura unificada de directorios, es decir que todos las distribuciones de linux estarán formadas por los mismos directorios principales (o con muy pocas variaciones). He aquí un árbol de directorios que la mayoría de las distribuciones linux tienen en común:

/---
   |
   |-bin
   |-dev
   |-etc
   |-home --
   |       |-juan
   |       |-jorge
   |-lib
   |-proc
   |-root
   |-tmp
   |-usr--
         |-X11R6
         |-bin
         |-lib
         |-local
         |-src

Ya os habréis fijado en que el directorio raiz se representa mediante "/" en vez de "\" en DOS. He aquí una pequeña descripción de algunos de los principales directorios de linux por orden:

/bin: ficheros ejecutables indispensables para el funcionamiento del sistema. Hay otros muchos directorios bin tales como /usr/bin (programas comunes) /usr/X11R6/bin (programas del entorno gráfico), /usr/local/bin, etc.

/dev: controladores de dispositivo para acceder a disqueteras, discos duros, lectores/grabadoras CD-ROM, Zips, tarjetas de sonido, ratones, impresoras, y todos los dispositivos.

/etc: archivos de configuración del sistema. Los personales se encuentran el el directorio $HOME de cada usuario.

/lib: librerías (o mejor dicho bibliotecas) que son usadas por los programas. Tal como ocurren con los directorios "bin" hay diferentes directorios lib en la estructura de linux: /usr/lib, /usr/X11R6/lib, /usr/local/lib, etc.

/proc: un directorio que usa el sistema. En realidad los archivos que aquí residen no se almacenan en el dicos duro sino en  la memoria.

/tmp: aquí se guardan archivos temporales que algunos programas usan durante su ejecución. Similar al TEMP del DOS o W95.

/usr: la mayoría de las aplicaciones del sistema con las que trabajaremos residen aquí.

/usr/X11R6: el entorno gráfico X-Windows.

/usr/local: diferentes aplicaciones no críticas y específicas de cada sistema.

Por ahora no es parte de la estructura estándar de linux, pero se está imponiendo el uso del directorio /opt para aplicaciones (a menudo desempeñando un papel similar al /usr/local). Es probable que en el futuro sea adoptado por la estructura estándar de ficheros.

Pero después de tanta teoría os estaréis preguntando, ¿y ahora que hago? Llevo media hora aquí sentado frente a un cursor parpadeante y no tecleado nada. Pues es muy sencillo.

El comando para moverse por los directorios es cd, igual que en el DOS. Por ejemplo, para ir al directorio raiz se teclea cd / , o para ir al directorio personal del propio usuario cd ~ (recordad que  ~ equivale al directorio personal y que se consigue manteniendo pulsando ALT y luego tecleando 126 en el teclado numérico o pulsando Alt Gr.+4). Para listar el contenido de un directorio se usa la orden ls, la cual funciona de forma similar al dir del DOS. Al comando ls se le pueden pasar muchos parámetros en la línea de comandos, siendo algunos de los más usados los siguientes:

-a: muestra los archivos ocultos (en UNIX los archivos ocultos son los que empiezan por un punto, p.e. .bashrc).
--color: diferencia por medio de colores los directorio (azul oscuro), ejecutables (verde), links (azul celeste), etc.
-F: diferencia por medio de símbolos los diferentes tipos de archivo: directorio /, ejecutable *, link @. En mi opinión la opción --color es más visual y rápida.
-l: saca por pantalla un listado largo de los archivos con información sobre permisos, número de links, propietario, grupo, tamaño, fecha, y hora respectivamente.
-s: muestra el tamaño de los archivos y del directorio.
Nota: en unix suele ser válido combinar al mismo tiempo varias opciónes en la línea de comandos. Por ejemplo en vez de teclear ls -l -a podría ser ls -la.

El comando ls acepta, al igual que el dir de DOS el uso de comodines, y resulta mucho más potente. P.e: ls *.tar muestra por pantalla todos los archivos terminados en tar; ls ?.gz muestra por pantalla todos los archivos que esten formados por un solo caracter seguido de .gz; ls -s --color [pv]* lista de forma larga y en colores todos los archivos que comiencen por p o por v.

Para crear directorios se utiliza el comando mkdir y para borrarlos rmdir. P.e. mkdir midirectorio; rmdir midirectorio; rmdir /usr/local/blender. Para borrar un directorio y todos sus subdirectorios y archivos se usa rm -r nombre_directorio (cuidado con las mayúsculas/minúsculas).

Otros comandos útiles son pwd (que muestra la ruta de acceso al directorio actual) y du (muestra el espacio ocupado del directorio actual y todos sus subdirectorios).

Hablemos ahora de los archivos o ficheros en linux. Linux utiliza un sistema de archivos muy flexible y con innumerables ventajas comparado con el FAT del DOS/W9x. Existen tres tipos de archivos: archivos normales, ocultos (también denominados dot files) y los enlaces (links). Archivos ocultos son todos aquellos que comienzen por un punto, por ejemplo .bashrc o .Xclients. Los enlaces podrían semejarse a los accesos directos de W9x: estos accesos directos mantienen los permisos del archivo al que apuntan. Sobre los permisos ya hablaremos más tarde. Los archivos en linux no están tan limitados como en DOS a la hora de ponerles nombre: puden tener una longitud máxima de 255 caracteres, varios puntos en su interior, espacios (aunque esto último no resulta nada recomendable) y linux diferencia entre mayúsculas y minúsculas de manera que se pueden crear archivos con el nombre de ImPoSiBlE_crEAr_En_DOS.tar.gz o más complejos.

Como he mencionado al principio, linux resulta idóneo para que muchos de usuarios convivan pacíficamente en un mismo sistema. Para eso están los permisos. Hay tres tipos de permisos: de lectura, de escritura y de ejecución. Cada archivo tiene sus propios permisos. Explicaré esto con un archivo-ejemplo sacado de mi directorio $HOME haciendo un ls -l:

-rw-r--r--   1 kepa     kepa          235 Jun  9 22:40 .bashrc

La primera información que nos ofrece la orden ls son diez caracteres. El primero indica el tipo de archivo (d: directorio; l: enlace; -: comun). Los siguientes tres caracteres indican los permisos para el propietario del archivo. Los tres tipos de permisos posibles son los de lectura (r), escritura (w) y ejecución (x) en ese mismo orden. En el ejemplo el usuario kepa tiene permiso de lectura y escritura, pero no de ejecución en el archivo .bashrc (rw-). Si los permisos hubieran sido rwx kepa tendría la posibilidad de ejecutar el fichero. Los próximos tres caracteres indican cuales son los permisos para el grupo, en este caso el grupo puede sólamente leer el archivo .bashrc (r--). Finalmente los últimos tres caracteres nos muestran los permisos para el resto de los usuarios del sistema diferentes del grupo y del propietario, los cuales pueden en el ejemplo leer el archivo y sin embargo no lo pueden modificar ni ejecutar. Si se instala un programa que no tenga activados los permisos de ejecución es necesario hacerlo para poder ejecutarlo, de esa forma sabe el Sistema Operativo lo que debe hacer con él.

Entonces, si los archivos tienen permisos, ¿cómo se los cambiamos? Para esto se suele usar el programa chmod, presente en cualquier UNIX. La sintaxis de este programa es: chmod <usuarios><permisos> <nombre_archivo>.

<usuarios>: estos pueden ser "u" (propietario), "g" (grupo), "o (otros) y "a" (todos).
<permisos>: pueden ser + (para añadir permisos), - (para quitar permisos) o = (para establecer sólo los permisos especificados) rwx (r: lectura, w: escritura y x: ejecución).

Ejemplos:

chmod u +rwx .bashrc: permite acceso de lectura escritura y ejecución al propietario de .bashrc.

chmod ug+r .bashrc: el propietario y el grupo pueden tienen permitida la lectura del archivo.

chmod a=r .bashrc: todos los usuarios tienen sólamente permitida la lectura del archivo.

chmod o-wx  archivo.tar: se le quita el acceso de escritura y ejecución al fichero archivo.tar a cualquier usuario diferente al propietario y no perteneciente al grupo.

chmod go=- archivo.tar: ningún usuario tendrá permiso de acceso de ningún tipo al archivo excepto el propietario, que seguira teniendo los mismos permisos que antes tenía. (el guión sirve para denegar los permisos).

Hay otro modo de usar este programa pero puede que os liéis al principio y prefiero no mencionarlo por ahora.

Para cambiar el propietario de un archivo se usa el comando chown. Su sintaxis es chown [OPCIONES] propietario[.grupo] nombre_archivo. (las partes entre corchetes son opcionales). Para cambiar sólamente el grupo al que pertenece el archivo se utiliza chown [OPCIONES] .grupo nombre_archivo. P.e. chown juan.tenistas programa.tar.gz; chown .futbolistas futbol7.txt.

Aún no hemos visto como se borran, mueven y copian archivos. Facilísimo. Para copiar archivos se utiliza el comando cpnombre_archivo destino. P.e. cp .bashrc /home/juan. Para mover o renombrar archivos mv nombre_archivo nuevo_nombre. P.e. mv /vmlinuz /vmlinuz.old o mv ~/documento /home/juan/. Para borrarlos se usa rm: rm /vmlinuz.old. Todos estos comandos tienen muchas opciones. Por ejemplo rm, el último, tiene dos muy interesantes: -i: pregunta  cada vez que va a borrar un archivo; -r: borra un directorio y todos sus subdirectorios y archivos.

Cuando tengáis que buscar archivos por el disco duro hay una forma sencilla de hacerlo con el comando find que también acepta el uso de comodines. Una sintaxis básica es find -name nombre_archivo. Un ejemplo: find -name .bashrc (busca el archivo .bashrc en el directorio actual y recursivamente en sus subdirectorios).

Para ejecutar programas que se encuetren en la variable $PATH (generalmente la mayoría del sistema, los directorios /bin, /usr/bin/, /usr/X11R6/bin, etc.) símplemente hay que escribir su nombre. Para ejecutar un programa que no esté en el PATH tendremos que escribir su ruta de acceso completa. Por ejemplo si está en /usr/local/bin/programa tecleamos /usr/local/bin/programa para inciarlo, si está en el directorio actual ./programa, etc. Muchas veces no es necesario teclear por completo el comando (o si no nos acordamos de su nombre completo) se pueden teclear las primeras letras y pulsar la tecla de Tabulador: una vez pulsada el ordenador emitirá un pitido para informarnos de que hay más de un comando que coincide con lo escrito hasta ahora, podemos seguir escribiendo o pulsar <Tab.> de nuevo para una lista de los posibles comandos que comiencen por esas letras. Si sólo hay un comando que comienza con las letras escritas, aparecerá escrito por completo en la línea de comandos. Esto también es válido para archivos y directorios. Por ejemplo si queremos entrar en un directorio llamado "tengo-un_nombre muy compilicado" con teclear cd seguido de las primeras letras y pulsar <Tab.> el nombre aparecería por si solo (y en este caso el directorio contiene espacios, y como para hacer referencia a estos archivos hay que entrecomillarlos, el sistema se encargará de colocar las comillas. Cómodo, ¿verdad?).

Editores de texto

Tarde o temprano tendremos que usar algún editor de texto para nuestro uso personal o para configurar el sistema, aunque para esto último están apareciendo multitud de buenas utilidades como linuxconf o control-panel. Aquí explicaré muy por encima el uso del editor que siempre está presente en todo UNIX que se precie: vi. Si queréis más información sobre este y otros editores de más fácil uso tales como joe o pico u otros complejos como Emacs mirad en las páginas del manual o en su documentación.

Vi puede resultar difícil de manejar al principio, pero con el tiempo termina por agradar al usuario por su rapidez y flexibilidad. En principio fué diseñado para poder ser usado en terminales con teclados sencillos, que incluso carecían de cursores, pues en este editor son totalmente prescindibles. El editor funciona a base de comandos y tiene muchísimos, aunque con unos pocos básicos ya se pueden editar textos con suficiente comodidad.

Sitúaros en un directorio en el que tengáis acceso de escritura, por ejemplo vuestro $HOME (cd ~). Si ahora escribís vi sin más entraréis al editor sin editar ningún fichero en concreto, generalmente para editar uno nuevo, aunque en este caso lo más habitual es usar vi nombre_fichero para que luego no haya que ponerle nombre al guardar. De este modo si queréis editar un fichero existente vale con teclear vi nombre_fichero. Ahora queremos probar el vi, así que arrancaremos el programa con vi prueba.txt, y guardaremos el contenido en el archivo prueba.txt, el cual borraremos más tarde.

Al iniciar el programa el cuerpo del texto estará vacío (algo lógico, puesto que no hemos escrito nada aún) y en la parte de abajo debe poner algo así como "prueba.txt" [New File]. Pulsando la tecla "i" entraréis en el modo insertar, que tal como su nombre indica su usa para escribir el texto. Pulsad "i" e inmediatamente aparecerá abajo la palabra -- INSERT -- que indica que nos encontramos en el modo insertar texto. Ahora podéis insertar el textos que queráis. Para crear una nueva línea pulsad <Enter> para moveros por el texto usad los cursores o salid al modo de introducción de comandos (tecla ESC) y usad las teclas "h", "j", "k" y "l".  Normalmente se puede borrar texto mientras escribes con la tecla normal de borrado, si esto no funciona o queréis borrar líneas tendréis que usar los comandos que vi tiene para ello. Pulsad <ESC> para entrar en modo de entrada de comandos.:[x]x: borra [x] número de caracteres a partir de la posición actual del cursor; x: borra el caracter anterior al cursor; :[x]dd: borra [x] número de líneas empezando por la línea actual hacia abajo. P.e. para borrar la línea actual se usaría el comando :1dd, para borrar cuatro caracteres :4x y para borrar 56 líneas :56dd (en todos los comandos los dos puntos ":" van incluidos). Existen muchos más comandos para borrar texto, pero con estos es suficiente para trastear un poco por ahí. Para guardar los cambios realizados en el archivo el comando a utilizar es :w (si estás editando un archivo de sólo-lectura usa :w!). La tecla "u" sirve para deshacer algo que no queríamos haber hecho, al estilo Windoze.

Después de terminar de editar el archivo ha llegado la hora de salir del editor. Si quieres salir sin guardar los cambios teclea el comando :q!, si quieres guardar los cambios :wq.

Algunos archivos de configuración

Linux se configura editando archivos de texto que moran por ciertos directorios del disco duro, principalmente /etc (configuración del sistema, sólo modificable por el usuario root) y en el directorio $HOME de cada usuario (estos los tiene que personalizar cada cual el suyo).

Supongamos que usamos el shell bash (el más extendido). En el directorio $HOME de cada usuario se encontrará el archivo .bashrc, que suele contener los aliases personalizados de cada usuario. Un alias es un nombre al que se le asigna uno o varios comandos/acciones. Los alias se definen de esta manera alias nombre="comando". Por ejemplo si preferimos utilizar la orden ls en color podríamos añadir a nuestro .bashrc la siguiente línea:

alias ls="ls --color"

con la que con sólo teclear ls en la línea de comandos, en vez de ls --color o

alirm="rm -i"as

para que nos pida nuestra confimación cada vez que vayamos a borrar un archivo.

Otro archivo que se puede encontrar en $HOME puede ser .inputrc con comandos para la configuración del teclado. Con este mismo artículo se incluye un archivo .inputrc (el que viene con el artículo tiene por nombre INPUTRC) de muestra (es el que viene con Red Hat 6.0). Si algunas teclas del teclado (Retroceso, Supr, Alt, etc.) no os funcionan bien podéis copiar el archivo INPUTRC que se incluye aquí en vuestro directorio home con el nombre .inputrc.

En el directorio /etc se encuentran la mayoría de los archivos de configuración del sistema, solo modificables por el Superusuario root. Dos bastante importantes y generales son /etc/bashrc y /etc/profile. En el primero se encutran aliases comunes a todos los usuarios y el aspecto del prompt (como el comando prompt del DOS). Este aspecto se guarda en la variable PS1 y se podría establecer con un línea como: PS1="[\u@\h \W]\\# " . En el segundo suelen estar las variables de entorno del sistema, las cuales se establecen de esta manera: export nombre_variable=valor. Ejemplo:

export PATH=$PATH:/usr/local/bin

La línea anterior asigna a la variable PATH el  valor que tenía más la cadena de texto :/usr/local/bin. El símbolo $ se utiliza para referirse a variables. Si la línea hubiera sido export PATH=$PATH la variable hubiera quedado igual.

Existen infinidad de archivos de configuración en GNU/Linux para configurar todo el sistema, y por el momento siempre se hace necesario retocar algún archivo de vez en cuando. De todas formas se están desarroyando magníficas utilidades de configuración del sistema. Una de las más potentes es linuxconf (mencionado anteriormente).Se pueden realizar muchas de las tareas de administración y configuración del sistema sin tocar para nada todos esos "extraños" ficheros de texto. Además cuenta con un entorno bastante amigable que funciona desde la consola o desde el entorno gráfico X-Window..

Apagar e iniciar el equipo con GNU/Linux: ¿cómo demonios apago el equipo?

En linux no se puede hacer los que en MS-DOS, estando en la línea de comandos apagar el equipo y ya está. Hay que seguir un proceso similar al de W95, OS/2, etc. para asegurar un apagado sin riesgo de corromper el disco y para evitar otros problemas.

Hay varias formas de apagar el equipo. Sin duda alguna las más sencillas son halt (para apagar el equipo. Se podrá apagar cuando aparezca un mensaje del tipo System halted) y reboot (para reiniciarlo). También se puede usar el comando shutdown. Algunos ejemplos:

shutdown -r now: reinicia el equipo en el momento de introducir el comando.

shutdown -h now: apaga el equipo en el momento de introducir el comando.

shutdown hora_en_la_que _apagar_el_equipo: apaga el equipo en un momento preciso del día.

Para iniciar el equipo se puede hacer de varias maneras diferentes, aunque aquí sólo se hablará de dos de ellas:

Mediante LiLo: LiLo (Linux Loader) es una utilidad que se encarga de cargar linux. Antes de ejecutar el programa lilo tendremos que configurarlo. Para ello editad el archivo /etc/lilo.conf (con vi, por ejemplo) o usad linuxconf. El archivo lilo.conf se compone de varios campos que vienen explicados a continuación muy por encima:

#
# general section
#
boot = /dev/fd0  # El lugar dónde se va a instalar LiLo. Es más seguro usar el disket (/dev/fd0) e iniciar linux con él para no interferir con W9x.
install = /boot/boot.b
message = /boot/message # El fichero que contiene el mensaje que imprimirá por pantalla LiLo al iniciar (se puede omitir esta línea).
prompt

# wait 20 seconds (200 10ths) for user to select the entry to load
timeout = 200   # Deja al usuario 20 segundos para elejir una opción antes de iniciar el sistema por defecto.

#
# default entry
#

image = /vmlinuz  # Nombre del archivo que contiene el kernel de linux (generalmente /vmlinuz). Si no existe este archivo busca por el disco alguno de igual nombre o que se llame zImage o bzImage (o /boot/vmlinuz).
        label = linux    # Etiqueta que habrá que escribir cuando inicie LiLo para que arranque Linux.
        root = /dev/hda2    # Partición dónde se encuentra instalado Linux.
        read-only
        vga = normal        # Modo vga de texto normal. No es necesaria esta línea.

Ahora que tienes configurado LiLo introduce un disket formateado en la unidad de disketera (si has puesto boot=/dev/fd0) y ejecuta el comando lilo.

Ya está. Cuando enciendas el ordenador con el disket metido y aparezca el mensaje (si lo has activado en /etc/lilo.conf) pulsa la tecla del tabulador para ver una lista de opciones posibles. Si lo tienes configurado como yo arriba, con label=linux, escribe linux y pulsa <Enter>: debería arrancar linux.

NOTA: Para más información sobre particiones mira más abajo en la sección del comando mount o en la documentación y howtos de Linux.

Mediante loadlin: Este es un comando que se ejecuta desde MS-DOS y que suele venir en todas las distribuciones de linux (si estás en Windows tendrás que reiniciar en modo MS-DOS para ejecutarlo). Se trata de copiar el kernel que se encuentre en tu partición linux (p.e /vmlinuz) a un directorio de la partición de Windows (p.e. c:\linux) y ejecutar el programa de la siguiente manera:

loadlin fichero_kernel_de_linux root=partición_de_linux.

Por ejemplo: loadlin c:\linux\vmlinuz root=/dev/hda2.

NOTA: Para saber cómo usar las particiones de Windows o de MS-DOS en linux mira más abajo en la sección del comando mount.Antes de usar este comando tienes que copiar el kernel (normalmente vmlinuz) a la partición en la que tengas instalado Windows o MS-DOS.

 

Comentario breve de algunas tareas básicas

Visualizar archivos de texto

cat: los visualiza de golpe, sin pausas entre pantallas. Ej: cat historia.txt

Dividir la información presentada en pantalla en pantallazos

more: para poder ver el texto que sale por pantalla más fácilmente. Ej: cat historia.txt | more , ls | more , etc.

barra espaciadora: próxima página
b: pagina anterior
q: salir
... (muchos mas)

less: similar al anterior pero mas comodo y con mas opciones y además acepta el uso de los cursores. Ej: cat historia.txt | less ; ls | less ; etc.

Ayuda sobre programas

Se utiliza la orden man (páginas de manual). La mayoría de los comandos, archivos de configuración, etc. tienen alguna página . Es similar a la ayuda del MS-DOS pero mucho más potente y con mucha más informacion. Se utiliza de la siguiente manera: man programa_o_archivo. Ej. man ls; man fstab; etc.

Saber de que tipo es un archivo

Si tenemos un archivo, pero desconocemos de que tipo es, podemos usar la orden file. Su sintaxis es file nombre_archivo. P.e.: file scrsht. Aunque el archivo no tenga extensión alguna la orden file puede "adivinar" la clase de archivo que es.

Descomprimir archivos tar.gz o tgz

Un tipo de archivo comprimido muy extendido en Linux es el formato .tar.gz (o .tgz). Los programas que se instalen mediante uno o varios archivos en este formato se pueden descomprimir con cualquier distribucion de Linux. Primero crea el directorio en el que quieres albergar el programa mediante el comando mkdir. Entra en el directorio y utiliza el siguiente comando: tar -xvzf archivo.tar.gz. La opción "x" sirve para descomprimir el archivo (si en vez de "x" ponemos "t" se simulará el proceso de instalación, pero sin instalar nada realmente en el disco duro). La opción "v" es comun a muchos programas de Linux y sirve para mostrar el proceso por pantalla.  La opción "z" se utiliza cuando el formato a descomprimir es .tar.gz o .tgz, si el formato del archivo es símplemente .tar esta opción se debe omitir. Finalmente la opción "f" indica al programa que la palabra que le sigue  es el nombre del archivo a descomprimir. Un ejemplo: tar -xvzf /mnt/cdrom/emuladores/wine.tgz (descomprime el archivo wine.tgz en el directorio actual); tar -tvzf blender.tar.gz (simula el proceso de descompresión del archivo blender.tar.gz).

Descomprimir archivos rpm

El formato comprimido .rpm fué creado por RedHat para usarlo en sus distribuciones. Hoy en día, sin embargo, muchas distribuciones lo usan como método estándar para instalar aplicaciones y prácticamente todas son capaces de instalar programas comprimidos en este formato. El programa que se utiliza para instalar/desinstalar/comprobar programas es rpm y es mucho más que un compresor: comprueba que el sistema tiene todo los necesario para ejecutar el programa que se intenta instalar y en caso contrario le informa al usuario, los programas se actualizan de forma fácil y rápida, ...

Para instalar programas se usa la orden rpm -i nombre_archivo.rpm. P.e. rpm -i dosemu-0.98.rpm. Si nos dice que nos hacen falta otras librerías o programas para instalarlo y no nos deja, podemos forzar su instalación mediante la opción --nodeps (aunque no resulta nada recomendable).

Para desinstalarlos se usa la orden rpm -e nombre_programa. P.e. rpm -e dosemu. Atención aquí: para desisntalar un programa no hay que indicar el archivo rpm con el que fué instalado, sino el nombre del programa (sin incluir la versión). Por ejemplo si hemos instalado el paquete programa-2.6.3-2.rpm para desinstalarlo tendríamos que teclear rpm -e programa.

Para comprobar la versión del programa que tenemos instalado (o si lo tenemos o no instalado): rpm -q nombre_programa. P.e. rpm -q dosemu. Si queremos más información sobre un programa dado tecleamos rpm -qi nombre_programa: p.e. rpm -qi dosemu.  Si lo que queremos es información sobre un programa que aún no hemos instalado utilizaríamos rpm -qpi archivo_a_instalar.rpm, p.e. rpm -qpi dosemu-0.98.rpm. Para listar todos los paquetes instalados en el sistema: rpm -qa.

Utilizar CD-ROMS, la particion donde este el MS-DOS, los disquetes, etc.

Para todo esto se utiliza la orden mount. Esta orden se utiliza para "montar" las particiones, discos, CD-ROM, ... que queramos utilizar además de nuestra partición linux. Los dispositivos se montan en un directorio cualquiera en el disco (yo los tengo montados en /mnt: el disco de 3 1/2 en /mnt/floppy; el 1er CD-ROM en /mnt/cdrom; el segundo CD-ROM en /mnt/cdrom2; la partición del DOS en /mnt/dos; ...

Sintaxis: (basica)

mount -t Sistema_de_archivos Dispositivo_a_montar Directorio_de_montaje

Sistema_de archivos: hay que elegir un sistema de archivos. Los ejemplo mas usados:

 

filesystem
(sistema archivos)

Descripcion

msdos particiones de MS-DOS o Win95 (archivos con nombre corto 8+3)
ext2 particiones nativas de linux
iso9660 CD-ROMs (también la extensión joliet de W95)
vfat particiones de MS-DOS o Win95 (archivos con nombres largos W95)
Nota: A esta fecha todas las distribuciones de linux pueden utilizar el sistema de archivos FAT32 de Win95 OSR2 y Win98.

Dispositivo_a_montar: unos de los más usuales
 

Dispositivo

Descripcion

/dev/hdax Disco (o cdrom) maestro del canal primario IDE (donde x es el numero de particion)
/dev/hdbx Disco (o cdrom) esclavo del canal primario IDE (donde x es el numero de particion)
/dev/hdcx Disco (o cdrom) maestro del canal secundario IDE (donde x es el numero de particion)
/dev/hddx Disco (o cdrom) esclavo del canal secundario IDE(donde x es el numero de particion)
/dev/fd0 Disquetera (Unidad A: en el DOS)
/dev/fd1 Segunda disquetera (Unidad B: en el DOS)
   
   
   

En mi ordenador, por ejemplo, tengo dos discos duros instalados en el canal primario IDE, uno con una partición y W95 como maestro y otro con dos particiones (la primera de tipo linux y la segunda de tipo DOS) como esclavo. En el canal secundario tengo dos lectores de CD-ROM. Para montar la partición de DOS de mi ordenador haría:

mount -t msdos /dev/hdb2 /mnt/dos  o  mount -t vfat /dev/hdb2 /mnt/dos (si usas W95)

Para montar un cdrom en la primera unidad de cdrom de mi ordenador:

mount -t iso9660 /dev/hdc /mnt/cdrom

Para montar un disket, hay que saber que tipo de formato tiene: linux, msdos, etc. Por ejemplo, con uno de MD-DOS:

mount -t msdos /dev/fd0 /mnt/floppy o mount -t vfat /dev/fd0 /mnt/floppy (si usas W95)

Muchas veces no es necesario especificar el tipo de sistema de archivos o "filesystem" del dispositivo a montar, lo detecta el sistema, con lo que se podria simplemente ordenar: mount /dev/hdc /mnt/cdrom

Hay que acordarse de desmontar el dispositivo cuando se deje de usarlo con la orden umount. Esto es importante, sobre todo en el caso de los CD-ROM y otros sistemas removibles, puesto que el sistema no nos dejara extraer el disco hasta que lo desmontemos. Su sintaxis es:

umount Directorio_a_desmontar

Directorio_a_desmontar: el directorio donde estaba montado el dispositivo que queremos desmontar.
Por ejemplo, para desmontar el primer CD-ROM en mi equipo:

umount /mnt/cdrom

Para montar dispositivos simplemente indicando su directorio (mount /mnt/cdrom) o el dispositivo a montar (mount /dev/hdb2) hay que editar el archivo /etc/fstab. Observa el siguiente ejemplo de unas entradas de un archivo /etc/fstab:

/dev/fd0       /mnt/floppy      auto       noauto,user             0 0
/dev/hdc       /mnt/cdrom       iso9660    noauto,ro,user,exec     0 0
/dev/hdd       /mnt/cdrom2      iso9660    noauto,ro,user,exec     0 0

Se puede observar que cada entrada está organizada por campos:

dispositivo   punto_de_montaje   sistema_de_archivos opciones    <normalmante se dejan a 0>

dispositivo: por ejemplo /dev/cdrom (el cdrom), /dev/hda2 (la segunda partición del primer disco duro), etc.

punto_de_montaje: el directorio donde quieras que se monte

sistema_de_archivos: el sistema de archivos que usa el dispositivo. Si puede utilizar varios tipos (por ejemplo pudes tener disketes formateados para linux y para dos, o lo que es los mismo fat y ext2) sería buena idea poner auto y dejar que el sistema lo detecte.

opciones: opciones de montaje (las mismas que el mount). p.e. noauto (no monta el dispositivo hasta que tú se lo ordenes, de otra forma lo monta al iniciar linux); ro (sólo lectura); user (los usuarios diferentes de root pueden montar el dispositivo); etc.

Es conveniente hacer uso del archivo /etc/fstab para configurar el sistema, dado que ahorra tiempo y esfuerzo a todos los usuarios. De todas formas si no quieres editarlo manualmente hay programas que te pueden echar una mano: lisa en openlinux; linuxconf en muchas distribuciones; creo que el control-panel de RedHat también tiene algún módulo para ello; etc.


Volver a la página sobre linux