Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Linux
Javier Blanco
blanco@mate.uncor.edu
Damin Barsotti
damian@famaf.unc.edu.ar
Copyright c 2003 Damin Barsotti y Javier Blanco. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.
ndice general
1. Introduccin 1.1. Presentacin de Linux . . . . . . . . . . . . . 1.2. Caractersticas de Linux . . . . . . . . . . . 1.2.1. Caractersticas generales . . . . . . . 1.2.2. Un paseo como usuario . . . . . . . . 1.3. Esquema inicial de Internet . . . . . . . . . . 1.4. Fuentes de informacin . . . . . . . . . . . . 1.4.1. Manuales de sistema (man pages) . . 1.4.2. Manuales en formato info (info pages) 2. Herramientas tiles 2.1. Cambiar el password . . 2.2. Mail . . . . . . . . . . . 2.3. X . . . . . . . . . . . . 2.4. Emacs . . . . . . . . . . 2.5. Trabajando con disquetes 2.6. Ms comandos . . . . . 2.7. Otros programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 5 9 10 10 12 13 13 13 17 19 22 23 25 27 27 27 28 31 32 36 37 39 39 42 43 44 45 45
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Comandos avanzados 3.1. Shells . . . . . . . . . . . . . . . . . . . . . . 3.1.1. Expansin de nombres . . . . . . . . . 3.1.2. Redireccionando la salida . . . . . . . 3.1.3. Variables de entorno . . . . . . . . . . 3.1.4. Envo de seales a procesos . . . . . . 3.1.5. Archivo de conguracin del bash . . . 3.2. Usuarios y Grupos . . . . . . . . . . . . . . . 3.3. Dueos y permisos de archivos . . . . . . . . . 3.3.1. Conceptos generales . . . . . . . . . . 3.3.2. Cambiando dueos, grupos y permisos 3.4. Instalando programas . . . . . . . . . . . . . . 3.4.1. Archivos TAR y GZIP . . . . . . . . . 3.4.2. Archivos en formato RPM . . . . . . . 3.5. Organizacin de directorios FHS . . . . . . . .
II
A. Breve historia de la computacin (el porque de los S.O., la administracin y el Software Libre) 47 A.1. Sus inicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 A.2. Surge la computacin con nes comerciales . . . . . . . . . . . . . . . . . . . . . . . . . 48 A.3. Multitarea y multiusuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 A.4. Surge Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 A.5. Crisis del Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 A.6. Surgimiento del Software Libre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 A.7. Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 B. Informacin adicional B.1. Ubicacion de las man pages . . . . . . . . . . . . . . . B.2. Otras fuentes de informacin . . . . . . . . . . . . . . B.2.1. HOWTO y mini HOWTO . . . . . . . . . . . B.2.2. SAG y NAG . . . . . . . . . . . . . . . . . . B.2.3. En Internet . . . . . . . . . . . . . . . . . . . B.2.4. Documentacin de Red Hat . . . . . . . . . . B.2.5. Recomendaciones de bsqueda de informacin B.3. Otras caractersticas de Linux . . . . . . . . . . . . . . B.3.1. rbol de procesos . . . . . . . . . . . . . . . B.3.2. Demonios . . . . . . . . . . . . . . . . . . . . B.3.3. Congurable por archivos de texto . . . . . . . B.3.4. Estructura del S.O. Linux . . . . . . . . . . . . B.3.5. Proceso de arranque del sistema . . . . . . . . C. GNU Free Documentation License C.1. Applicability and Denitions . . . . . C.2. Verbatim Copying . . . . . . . . . . . C.3. Copying in Quantity . . . . . . . . . C.4. Modications . . . . . . . . . . . . . C.5. Combining Documents . . . . . . . . C.6. Collections of Documents . . . . . . . C.7. Aggregation With Independent Works C.8. Translation . . . . . . . . . . . . . . C.9. Termination . . . . . . . . . . . . . . C.10. Future Revisions of This License . . . ndice de Tareas Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 54 55 55 55 55 56 56 57 57 58 58 58 60 61 61 62 62 63 64 64 65 65 65 65 67 69
III
Captulo 1
Introduccin
Este apunte pretende ser una gua para las personas que comienzan a utilizar el sistema operativo Linux. El mismo fue concebido como material para la materia Algoritmos y Estructuras de Datos I de la carrera Licenciatura en Ciencias de la Computacin que se dicta en la Facultad de Matemtica Astronoma y Fsica de la Universidad Nacional de Crdoba. Su contenido est orientado al uso de las plataformas de trabajo que se encuentran actualmente en el laboratorio de computacin de dicha facultad, pero puede ser til como introduccin al uso del sistema operativo Linux en general.
Red Hat Linux release 7.1 (Seawolf) Kernel 2.4.28pre1 on an i686 hp01 login: _
El encargado de mostrar esto es un programa llamado login, lo primero a ingresar es el nombre del usuario (denominado login 1 ), luego se nos pedir una contrasea, para ello aparecer en pantalla lo siguiente:
Password: _
Al ingresar la contrasea no se mostrarn en pantalla los caracteres tipeados. Esto es as para que no puedan ver nuestra clave al momento de entrar al sistema. Aclaramos que Linux como todos los UNIX diferencian las mayscula de las minsculas tanto en el nombre de nuestro usuario como en su clave de acceso. Habiendo ingresado un usuario correcto con su palabra clave correcta habremos ingresado al sistema, la pantalla completa de ingreso al sistema seria algo as:
Red Hat Linux release 7.1 (Seawolf) Kernel 2.4.28pre1 on an i686 hp01 login: martin Password: Last login: Wed Jan 9 17:45:09 on tty1 [martin@maq martin]$ _
nombre es por lo general el que aparece antes del smbolo de arroba (@) en la direccin de mail que tendr el usuario.
Importante: Lo nico que maneja el sistema para corroborar la identidad de un usuario es el login y la contrasea. Esto quiere decir que si otra persona conoce esta informacin puede utilizar nuestros recursos indiscriminadamente. Es por ello que no debe brindar la contrasea a otras personas. Tarea 1.2 Ver terminales virtuales Linux permite que varios usuarios ingresen al sistema al mismo tiempo en la misma consola, utilizando lo que se denomina terminales virtuales. Una vez que ya ingresamos al sistema oprimiendo conjuntamente las teclas [Alt][F2] vamos a ver una pantalla similar a la siguiente:
Red Hat Linux release 7.1 (Seawolf) Kernel 2.4.28pre1 on an i686 hp01 login:
Esta es idntica a la primera pantalla de ingreso al sistema y aqu cualquier usuario (generalmente el mismo) puede utilizarlo tambin. Por lo general estn denidas 6 terminales virtuales (esto es congurable en el sistema), las cuales pueden ser accedidas con las combinaciones de teclas [Alt][F1] a [Alt][F6]. Volvamos ahora a la pantalla original oprimiendo [Alt][F1].
Orientado a Shell Ya entramos al sistema como usuario y vimos que se muestra una pantalla en modo texto con algo parecido a:
Red Hat Linux release 7.1 (Seawolf) Kernel 2.4.28pre1 on an i686 hp01 login: martin Password: Last login: Wed Jan 9 17:45:09 on tty1 [martin@maq martin]$ _
En este momento se activ un proceso llamado shell que se encarga de atender los pedidos del usuario para utilizar el sistema; de aqu en adelante el sistema espera que el usuario ingrese nombres de programas para ser ejecutados. Esta es la forma predenida para utilizar el sistema. Por lo general se utiliza el shell para ejecutar programas. De esta forma funciona como interfase entre el usuario el sistema operativo para indicarle a este ltimo que los ejecute. Se denomina proceso a un programa en ejecucin. Cada proceso tiene un programa asociados: un mismo programa puede estar ejecutndose muchas veces hasta por distintos usuarios. El mismo shell tambin tiene un programa asociado. Si bien Linux cuenta con potentes entornos grcos la interfase por defecto y ms potente para usar Linux es el shell, por varios motivos: Es tremendamente estable, a diferencia de los entornos grcos que son muy inestables, en todos los sistemas operativos, incluso en Linux. Es totalmente programable, lo que lo hace muy verstil. Tiene la rapidez del entorno carcter. 3
Vienen muchas mas herramientas para este, que para los entornos grcos. Es ms, los entornos grcos en Linux son programas que se pueden lanzar desde el shell (generalmente el programa startx). La comunicacin con el sistema por medio del shell es una caracterstica heredada desde los primeros Unix. En la seccin 1.2.2 (pg. 5) se vern algunos programas que se pueden ejecutar por medio del shell. Abstraccin sistema de archivos El sistema de archivos de linux es mucho ms que una representacin o abstraccin de los almacenamientos de memoria. Los archivos pueden tambin representar otros dispositivos como teclados, monitores, impresoras o dispositivos de sonido. As, por ejemplo, si se escribe sobre el archivo que representa el monitor de video se escribirn caracteres en la pantalla del mismo. De la misma forma si se lee el archivo que representa un micrfono conectado a la placa de sonido se estar viendo un archivo de sonido en algn formato predenido. Tambin el sistema de archivos permite representar enlaces de comunicacin entre procesos locales o en red. As, si se quiere enviar cierta informacin a algn proceso, solo hay que escribir en el archivo que representa una conexin con el mismo. La comunicacin para comprobar o modicar el comportamiento del sistema operativo tambin se realiza leyendo o modicando ciertos archivos especiales (generalmente estos archivos estn en el directorio /proc). Como se puede observar, todo en Linux es un archivo. Esta inclinacin a basar toda la interfase entre las funcionalidades del hardware con el usuario a travs del sistema de archivos es tambin heredada de los viejos sistemas Unix y provee cierta uniformidad en el manejo del sistema operativo. Software Libre Linux no es un programa de dominio pblico, varios de sus componentes tienen derecho de autor; los derechos de autor del kernel bsico2 son de propiedad de Linus Torvals. La mayora de los componentes de Linux estn regidos bajo las leyes del GNU General Public License. El software GNU tiene copyright, pero sus autores han dado su autorizacin para que se distribuya de acuerdo a algunas condiciones. Estas condiciones se reeren a la necesidad de suministrar el cdigo fuente y que a ninguna de las partes del software se las someta a copyright. Esto signica que si un programador, por ejemplo, tomara el cdigo fuente de algn programa GNU y lo modicara en alguna parte, este a su vez debe permitir al acceso a ese cdigo modicado. En ocasiones esta licencia se denomina GNU Copyleft, cubre todos los programas producidos por GNU y por la Free Software Fundation. El GNU Copyleft o GPL permite a los creadores de programas conservar sus derechos de autor, pero permitiendo al resto de los usuarios la posibilidad de copiarlos y modicarlos a sus necesidades. Esta licencia benecia fuertemente la distribucin de Linux. Es as que existen empresas que se encargan de empaquetar el kernel junto con otros programas (editores, juegos, entorno grco, etc.) y creando programas instaladores del sistema (generalmente bajo la misma licencia). Las ms representativas quiz sean la Red Hat, Slackware, Suse, Caldera, Debian, etc. Auto-documentado El sistema operativo Linux, por su caracterstica de software libre benecia la documentacin de todas sus funcionalidades. Todas las distribuciones brindan esta documentacin en varios formatos aunque la documentacin ms importante es el cdigo de los programas en s.
2 El kernel de Linux es el sistema que provee los servicios bsicos, como por ejemplo administrador de procesos, memoria virtual, drivers, manejo de archivos, etc. En otras palabra es el nivel ms bajo del sistema operativo.
Distintas fuentes de informacin se vern en la seccin 1.4 (pg. 10). Comunicacin por red Linux es un sistema orientado a comunicacin en red. Provee distintos protocolos (TCP/IP, IPX, Samba, etc) junto con aplicaciones que brindan servicios para redes (servidores de web, mail, etc.). El mismo sistema de ventanas grco (XFree) esta orientado para ser utilizado en red. Sistema X Windows El sistema X Windows est basado en el modelo cliente-servidor en donde el X server es un programa que corre sobre el sistema Linux y maneja el hardware grco. Un cliente X es un programa que se comunica con el servidor, envindole pedidos tales como dibujar una lnea o atender el teclado. Ejemplos de estos clientes son editores de texto, juegos, navegadores web, etc. X es un sistema grco orientado a red; los clientes X pueden estar corriendo (utilizando cpu, memoria, etc.) en otra mquina. El servidor escucha los pedidos de estos (por conexiones TCP/IP) tanto como los locales, y acta sobre el hardware grco donde est corriendo. Es as que uno podra tener funcionando un editor de texto en una mquina en otro pas y usarlo en casa. Es importante tener en cuenta que el sistema X Windows no hace gran diferencia si el cliente es remoto o local; los protocolos de conexin entre el servidor y los clientes son, en un nivel ms alto, el mismo. Para una explicacin sobre este tipo de arquitectura cliente-servidor sobre Internet leer la seccin 1.3 (pg. 9). Otra caracterstica del sistema es la idea de manejador de ventanas (window manager). Los clientes corriendo bajo X son presentados dentro de una o ms ventanas en la pantalla. Pero la forma en que son manipuladas (cambiar de tamao, moverlas, etc.) y decoradas no es controlada por el servidor, si no por otro cliente llamado window manager que corre concurrentemente con los otros clientes. De esta forma uno puede elegir como ver y manipular el entorno (looks and feels) cambiando el window manager a gusto personal. Ms caractersticas de este s.o. se pueden encontrar en el apndice B.3 (pg. 57).
pwd
La linea que comienza con [martin@maq martin]$_ se la denomina lnea de comando y all es donde, escribiendo con el teclado, me comunico con el shell. Ahora veremos un poco ms como el usuario interacta con el s.o. a travs del shell, haciendo hincapi en el sentido de multiusuario y tratando el sistema de archivos como un recurso compartido con proteccin. Lo ms frecuente es que cada usuario en Linux tenga su propio directorio, lo que se llamara el home del usuario. En la mayora de los casos los usuarios comunes tienen un directorio en /home. Por ejemplo si nuestro usuario se llama martin tendr un directorio de home /home/martin3 . Para saber en que directorio nos encontramos debemos de ejecutar el comando pwd.
3 En
sistemas con gran cantidad de usuarios este directorio puede ser distinto.
Otra funcin muy til es listar los archivos del directorio donde nos encontramos. Para ello usamos el comando ls. Tarea 1.4 Usemos ls Ejecutemos el comando:
[martin@maq martin]$ ls Desktop [martin@maq martin]$ _
Como podemos observar, ls nos presenta los archivos que tenemos en nuestro directorio, sin embargo es conveniente usarlo con algunos argumentos para que se nos muestre mas informacin de estos archivos:
[martin@maq martin]$ ls -la total 88 drwx-----6 martin martin drwxr-xr-x 6 root root -rw------1 martin martin -rw-r--r-1 martin martin -rw-r--r-1 martin martin -rw-r--r-1 martin martin drwxr-xr-x 3 martin martin -rw-r--r-1 martin martin drwxr-xr-x 4 martin martin -rw-r--r-1 martin martin -rw-rw-r-1 martin martin -rw------1 martin martin -rw------1 martin martin [martin@maq martin]$ _
4096 4096 233 24 224 124 4096 747 4096 3728 52 0 1763
ene 25 00:36 . feb 6 1996 .. ene 24 02:15 .bash_history dic 4 17:47 .bash_logout dic 4 17:47 .bash_profile dic 4 17:47 .bashrc dic 5 21:21 Desktop dic 4 17:47 .emacs dic 4 17:54 .kde dic 4 17:47 .screenrc dic 4 17:57 .sversionrc dic 5 21:21 .Xauthority dic 5 21:21 .xsession-errors
El argumento -la hace que se muestre todos los archivos incluidos los ocultos (en Unix son los que comienzan con un .) y que utilice el formato de salida completa, que incluyen los permisos, propietarios, tamao, fecha y hora de creacin de cada archivo.
cd
En el caso de que queramos movernos por la estructura de subdirectorios, tenemos el comando cd que sirve para tal motivo. Este cumple las mismas funciones que su par de DOS, sirve para cambiar de un directorio a otro.
Con l ingresaremos al subdirectorio "Desktop", si es que queremos retornar al subdirectorio anterior usaremos:
[martin@maq Desktop]# cd .. [martin@maq martin]$ _
Existe otra forma de referirnos a nuestro directorio personal cuando utilizamos el shell bash. Si hacemos:
[martin@maq /]# cd ~/ [martin@maq martin]$ _
obtenemos el mismo resultado anterior. La ventaja de esta abreviacin es que sirve con cualquier comando, por ejemplo para copiar o mover archivos como veremos ms adelante.
mkdir
Existen dos archivos en todos los directorios ellos son el punto (.) y los dos puntos (..). El primero referencia al directorio donde estamos posicionados, el segundo al directorio anterior. Ahora si lo que queremos es crear un subdirectorio usaremos el comando mkdir. Tarea 1.6 Creemos subdirectorios Ejecutemos el comando:
[martin@maq martin]$ mkdir trabajos [martin@maq martin]$ _
Con esto generamos un subdirectorio al que llamamos trabajos Que podemos utilizar para guardar los archivos que hagamos en la materia.
cp
El comando cp sirve para copiar archivos. los dos argumentos mas importantes e imprescindibles son el archivo o directorio origen y el destino. 7
Como se puede observar siempre hay que sealar el directorio (o archivo) destino, a diferencia que en DOS.
mv
El comando mv sirve para mover o cambiar de nombre un archivo o directorio. Tarea 1.8 Renombremos archivos Cambiemos de nombre el archivo que acabamos de copiar:
[martin@maq martin]$ mv XF86Config XF86Config.mio [martin@maq martin]$ _
rm
Para borrar archivos se utiliza el comando rm. Tarea 1.9 Borremos archivos Probemos borrar el archivo XF86Cong.mio:
[martin@maq martin]$ rm XF86Config.mio [martin@maq martin]$ _
Si nos ejecutamos un ls veremos que efectivamente el archivo fue borrado. Ahora probemos borrar un archivo que no este en nuestro directorio personal:
[martin@maq martin]$ rm /etc/X11/XF86Config rm: remove write-protected file /etc/X11/XF86Config? y rm: cannot unlink /etc/X11/XF86Config: Permiso denegado [martin@maq martin]$ _
Vemos que al ejecutar el comando el sistema nos pide conrmacin para borrar un archivo protegido y aunque conrmemos la operacin no se nos permite realizarla. Esto es debido a que el archivo no nos pertenece. Recordemos que Linux es un sistema multiusuario donde se protegen los recursos compartidos. Ms adelante veremos como se administran estos permisos.
exit
Si quisiramos terminar la sesin para que pueda utilizar la mquina otro usuario, utilizaremos el comando exit. Importante: Hay que acordarse siempre se salir de todas las terminales que tengamos abiertas con este comando. Si nos olvidamos de hacerlo, el sistema no tiene forma de comprobar que otra persona use nuestros recursos indiscriminadamente (ver seccin 1.2.1 (pg. 2)). Esto quiere decir que por ejemplo puede venir alguien y borrar nuestros documentos sin ningn problema.
Cliente de mail
Cliente de web
Figura 1.1: Red como grafo Los nodos, como ya dijimos son bsicamente 2 tipos de mquinas: computadoras y routers. Las primeras son las que ya conocemos; son mquinas de estados que son ejecutadas por software que implementan tanto programas de usuarios como los protocolos de comunicacin en red. Los routers son computadoras especializadas en la transferencia de comunicacin en red. Estas tienen solo la clase de software que implementan los protocolos de comunicacin. Esta separacin en la realidad no es tan tajante; por ejemplo las computadoras con Linux tambin pueden funcionar como routers y como computadoras comunes. El software de red de los nodos implementa el protocolo TCP/IP de comunicacin. El software del protocolo esta organizado en capas jerrquicas (ya veremos de que se trata esto). Por lo general los routers solo implementan hasta la capa IP. 9
Los nodos que son computadoras tienen software a nivel aplicacin. El software de Internet (para web, mail, etc.) est organizado en una arquitectura cliente servidor; por ejemplo en las mquinas existe tanto el software para leer los mails (clientes de mails) como los servidores de este servicio que se encargan de transportar los mails desde su origen a su destino.
man
Con ello se ejecuta un visor donde se pueden ver todos los parmetros posibles y su signicado para el comando en cuestin. Este visor permite avanzar o retroceder el texto con la informacin a travs de las echas del teclado. Al nal de cada man page hay una lista de comandos relacionados que es muy til cuando queremos saber como realizar cierta tarea. Una accin frecuente dentro de este visor es buscar algn texto. Para hacerlo, dentro del visor oprimimos la tecla [/] y escribimos el texto a buscar. Una vez efectuado este paso, se oprime [Enter] y el visor seala la primera ocurrencia del texto. Si despus de esto oprimimos la combinacin de teclas [/][Enter] buscar la prxima ocurrencia. Hacer: Busquemos la opcin -l y veamos que signica. Para ir al principio del documento oprimamos la tecla [g]. Para ir al nal oprimamos la tecla [G] Para terminar la ejecucin del visor se oprime la tecla [q].
10
apropos
Para buscar una man page existe el comando apropos. Cada man page tiene una descripcin de la informacin que contiene. Las palabras de estas descripciones son indexadas en bases de datos que pueden ser consultadas con este comando. Tarea 1.11 Uso del comando apropos Ejecutemos el comando apropos para buscar informacin sobre editores:
[martin@maq martin]$ apropos editor QLineEdit [qlineedit] (3qt) - One-line text editor QMultiLineEdit [qmultilineedit] (3qt) - Simple editor for inputting text ed (1) - text editor ed [red] (1) - text editor editres (1x) - a dynamic resource editor for X Toolkit applications mcedit (1) - Full featured terminal text editor for Unix-like systems pico (1) - simple text editor in the style of the Pine Composer prompter (1) - prompting editor front-end for nmh red (1) - text editor red [ed] (1) - text editor sed (1) - a Stream EDitor tksysv (8) - a runlevel service editor vim (1) - Vi IMproved, a programmers text editor vim [ex] (1) - Vi IMproved, a programmers text editor vim [rvi] (1) - Vi IMproved, a programmers text editor vim [rview] (1) - Vi IMproved, a programmers text editor vim [vi] (1) - Vi IMproved, a programmers text editor vim [view] (1) - Vi IMproved, a programmers text editor xedit (1x) - simple text editor for X [martin@maq martin]$ _
La segunda columna de la salida del comando indica la seccin a la cual pertenece la man page (ver apndice B.1 (pg. 54)).
man
Como se puede observar, el comando apropos muestra la seccin a la que pertenecen las man pages. Suele suceder que existan dos programas o funciones de libreras que existan con el mismo nombre. Por ejemplo existe el programa printf que sirve para escribir por pantalla especicando un formato, y existe una funcin con el mismo nombre en las libreras del lenguaje C. Si ejecutamos apropos printf veremos que la primera pertenece a la seccin 1, y la segunda a la 3. Para indicarle al programa man que muestre la man page de una seccin particular (ver apndice B.1 (pg. 54)), hay que anteceder al nombre de la misma el nmero de la seccin. Tarea 1.12 Elegir la man page de una seccin Veamos la man page de la funcin C printf:
11
Una cuestin que hay que mencionar es el carcter de la informacin que brindan las man pages. La informacin de las mismas se supone que es solo para consulta y suele ser de poca ayuda en el caso que se quiere aprender algn tpico sin ningn conocimiento previo. De todas formas, como es muy fcil de accederlas (solo hay que usar el comando man) es siempre el primer paso que se da cuando queremos resolver algn problema. Adems estn disponibles en todas las distribuciones.
info
Observemos que existe un cursor que se mueve con las echas del teclado y permite recorrer la pgina, similar a un editor de textos.
Las info pages tienen una estructura de hiper-texto. Esto quiere decir que existe una pgina principal y desde ella se puede navegar por la documentacin de programas y funciones de librera, de forma similar a la que se hace desde un navegador de Web. Es por ello que las mismas tienen una estructura de rbol, con pginas padres e hijos. La forma de manipular este entorno es por medio del teclado. Algunos comandos son: [Enter] sobre el tem: baja a la pgina hijo. [u] : (up) Va a la pgina padre. [p] : (previous) Va a la pgina hermano anterior. [n] : (next) Va a la pgina hermano siguiente. [l] : (last) Va a la pgina anterior visitado. [/] : Bsqueda. Funciona igual que las man pages. [q] : Salir. Otras fuentes de informacin alternativas y ms orientadas a la administracin de sistemas puede encontrarse en el apndice B.2 (pg. 55).
12
Captulo 2
Herramientas tiles
Este captulo se vern algunos programas para realizar las actividades ms comunes que se suelen realizar como usuario. Se mostrarn solo las opciones ms comunes de los mismos. Si se quiere profundizar sobre ellos ya se dieron las fuentes de informacin donde se puede acceder a este conocimiento (seccin 1.4 (pg. 10)).
El usuario ya est creado pero falta asignarle una clave de acceso. Para ello usaremos el comando
passwd.
Primero se nos pedir que ingresemos la contrasea vieja. Si la hemos introducido bien, se nos pedir la nueva. Luego se nos pedir que la conrmemos para lo cual tendremos que volverla a ingresar. Ver que no aparece la clave en pantalla cuando la escribimos. Recordemos que las claves en Unix tienen en cuenta minsculas y maysculas. Adems deben ser palabras que no aparezcan en el diccionario (ni en ingls). Una buena costumbre es que tengan ms de seis caracteres y que incluyan letras y nmeros.
2.2. Mail
pine
Uno de los clientes de mail ms utilizados en los ambientes Unix es el pine. Veamos como recibir mails:
13
Tarea 2.2 Leer mails recibidos Una vez ingresado al sistema con el login y la contrasea, ejecutemos el comando pine:
[martin@maq martin]$ pine
Si es la primera vez que usa pine Aparecer una pantalla una pantalla de bienvenida. Oprima la tecla [e] para continuar. Seguidamente aparecer otra pantalla:
En ella espera a que se ingrese la contrasea. Ingrese la misma que utiliz para autenticarse al sistema. A partir de aqu la pantalla mostrara un men de opciones. Este se puede navegar con las echas del teclado. Por defecto queda sealada la opcin FOLDER LIST. Si Oprimimos la tecla [Enter] mientras est sealada esta opcin aparecer la pantalla siguiente:
14
En la parte superior aparece tambin un men que se puede navegar con las echas1 . Cada una es una representa una carpeta donde se almacenan distintas clases de mails2 : INBOX representa el contenedor de los mails que me llegan. Cuando quiero ver si tengo nuevos mails tengo que revisar esta carpeta. sent-mail contiene los mails que he enviado. saved-messages contiene los mails que he guardado. Por lo general son mails que se encontraban en INBOX pero que los quiero tener separados Ahora veamos los mails que han llegado oprimiendo la tecla[Enter] sobre la opcin INBOX. Haciendo esto aparecer lo siguiente:
1 En la parte de abajo aparece una ayuda con las teclas asignadas para ejecutar distintas funciones. Esta caracterstica se mantendr en la mayor parte de las pantallas. 2 Puede haber otras carpetas dependiendo como se haya congurado el programa.
15
Aqu se muestra una lista de mails que han llegado. Los que comienzan con la una letra N son mails que todava no he ledo. Para leer alguno hay que seleccionarlo con las echas y apretar la tecla [Enter]:
Para ejecutar algunas acciones con el mail actual se utilizan las siguientes teclas: [<] [r] [d] [m] para volver a la lista de mails. para responder el mail. para borrarlo. para volver a la pantalla inicial.
16
Para componer un mail se oprime la tecla [c]. Tarea 2.3 Componer un mail Oprimamos la tecla [c], con lo que aperecer la siguiente pantalla:
En la parte superior de la pantalla aparecen una serie de campos a llenar. Los ms importantes son: To: donde se escribe la direccion de mail a la cual quiero enviar un mensaje. Subject: el ttulo del mail. Este es el encabezamiento del mismo y por lo general es lo primera que se observa cuando se recibe el mail. Ms abajo (por debajo de la linea que dice Message Text comienza el area de texto donde se escribe el mail. Estos campos y esta rea son seleccionables con las echas de teclado como ya es habitual. Si se quiere anular el mail que se esta escribiendo hay que oprimir las teclas [Control][c] (como dice en la ayuda de la parte inferior). Hacer: Ahora pregunte a algn compaero de curso (del sexo que desee) la direccin de mail que le asignaron y envele un mail con una carta de amor. Espere un rato sin desesperarse y fjese si le llego algn mail.
2.3. X
Ya hablamos del sistema X en la seccin 1.2.1 (pg. 5). El servidor X es un programa ms de nuestro entorno. 17
y oprimir la tecla [Enter]. A partir de aqu aparecer una pantalla grca similar a la esta:
La pantalla que acabamos de ver es distinta a las terminales virtuales que vimos en la seccin 1.2.1 (pg. 2). Tarea 2.5 Cambiar de terminal Dentro del entorno grco oprimamos las teclas [Control][Alt][F1]. Con esto aparecer la terminal modo texto donde lanzamos el X. Este programa habr escrito en la misma un montn de informacin referente al estado del hardware de video y su conguracin. Desde esta terminal, oprimiendo las teclas [Alt][F2] ( cualquiera de las vistas en la seccin 1.2.1 (pg. 2)) se podr ingresar al sistema autenticndose como usuario nuevamente. Para volver al entorno de ventanas hay que oprimir las teclas [Alt][F7]3.
En la ventana del X aparece una barra de botones en la parte inferior (se suele denominar panel). Cliqueando con el mouse sobre los diferentes conos podemos arrancar programas. Tarea 2.6 Terminal X
3 Esto puede cambiar segn la conguracin del sistema. Por lo general la tecla de funcin es la que le sigue a la ltima terminal modo texto del sistema.
18
Cliquear con el mouse el icono que tiene dibujado una pantalla de monitor. El programa que arranca haciendo esto es como una terminal de las que vimos en modo texto pero corriendo en el entorno grco. Aqu podemos arrancar cualquier programa como por ejemplo el pine. Para salir de esta terminal ejecutemos el comando exit (al igual que antes), cliqueemos sobre el botn con una x en la esquina superior derecha o oprimamos la combinacin de teclas [Alt][F4].
Para salir del X hay que cliquear sobre el botn del panel que tiene dibujado el smbolo de apagar (parecido a ).
2.4. Emacs
emacs
Una herramienta imprescindible para programar es un editor de texto plano. Estos se diferencian de los editores grcos4 que solo escriban secuencias de caracteres sin ningn formato (por ejemplo tamao de letras) ms que el salto de linea. Uno de los ms utilizados es el Emacs5 Tarea 2.7 Arrancar Emacs Una vez que hemos entrado al X oprimir el botn que tiene dibujado una cabeza de un animal con cuernos. Otra forma es entrando a una terminal (como vimos en la seccin 2.6 (pg. 19)) y ejecutando el comando emacs. Con esto aparecer una ventana como sigue:
4 Se
5 Este
los suele denominar WYSWYG: what you see what you get, en castellano lo que usted escribe es lo que usted obtiene. editor tiene muchas ms prestaciones. Por ejemplo sirve como cliente de mails. Muchas personas lo usan como shell.
19
El Emacs dentro de X6 tiene un men de opciones en la parte superior de la ventana y una seccin en la parte inferior (llamada minibuffer) donde por lo general se escriben comandos del programa y se reciben mensajes del mismo. Tarea 2.8 Mens de Emacs Cliqueemos con el mouse el men que dice Files:
Este es e men principal del Emacs. Aqu se muestran un serie de opciones que son seleccionables con el mouse. Algunas son: Open File: Para abrir archivos ya existentes o crear nuevos. Si se elije se pedir que se ingrese el nombre de un archivo en el minibuffer. Si este archivo ya existe se lo abre. Si no, se crear uno nuevo. Cada archivo abierto para editar se lo denomina un buffer. Save Buffer As: Sirve para guardar en disco lo que hemos escrito. Kill Current Buffer: Cerrar el documento que estemos editando. Make New Frame: Abrir otra ventana de Emacs para editar otros textos (o el mismo). Exit Emacs: Termina el programa. Si estamos editando varios textos al mismo tiempo en una misma ventana. se puede intercambiar entre ellos con las opciones del men Buffers. Se puede elegir una seccin de texto para cortar (borrarlo) o pegar (duplicarlo) el mismo cliqueando el comienzo del mismo manteniendo el botn izquierdo del mouse apretado y pintando la seccin del mismo que se quiera seleccionar. Una vez hecho esto se puede borrar lo elegido con la tecla [Del] o
6 Tambin
20
[Supr] o se puede pegar oprimiendo los dos botones del mouse de forma conjunta7 sobre el lugar donde queremos copiarlo. Las acciones de copiar, pegar y borrar se pueden seleccionar tambin desde el men Edit seleccionado Copy, Paste y Cut respectivamente. Las teclas para seleccionar, copiar y pegar que se usan habitualmente en programas DOS son [Shift][Flecha], [Control][Ins] y [Shift][Ins] respectivamente. Por defecto Emacs no tiene esta asociacin de teclas. Pero se puede congurar8 para que si la tenga. Fjese si estas teclas funcionan y si no es as pregunte a los profesores como congurarlo. Tarea 2.9 Editar texto Si recibi la carta de amor por mail (de la seccin 2.3 (pg. 17)) escriba un texto respondindola (como crea conveniente) con el Emacs en un archivo que se encuentre en el directorio trabajos que cre en la seccin 1.2.2 (pg. 7). Si lamentablemente no recibi ninguna escriba un chiste y no se haga problema. Envelo por mail (estando en el X) al compaero que le envi la carta o en su defecto a cualquier otro. Ayuda: Para mandar un mail con el pine de un texto ya escrito, lea la ayuda de la parte inferior de la pantalla del pine.
Como ya se dijo el Emacs sirve para ms cosas que slo escribir texto. Ms adelante veremos como utilizarlo para correr programas en Haskell. Por ahora veremos como utilizarlo para leer las info pages que ya vimos en la seccin 1.4.2 (pg. 12).
7 En
8 Emacs
sistemas con mouse de tres botones se puede oprimir el botn del medio para hacer esto. se congura cambiando el archivo .emacs que se encuentra el directorio home del usuario.
21
Tarea 2.10 Info pages en Emacs Seleccionemos el men Browse Manuals whith Info que se muestra en la siguiente gura:
Con esto se puede navegar por las info pages desde el Emacs.
mdir
mcopy
Para copiar archivos a un disquete se usa el comando mcopy. Su sintaxis de uso es:
mcopy <nombres de archivos a copiar> a:
Si lo que queremos hacer es copiar archivos de un disquete a nuestro directorio la sintaxis es:
mcopy a:<nombres de archivos a copiar> ./ mkdosfs
Para formatear un disquete se utiliza el comando mkdosfs. Para usarlo hay que ejecutar:
/sbin/mkdosfs -cv /dev/fd0
Otros comandos para trabajar con disquetes pueden consultarse con man mtools.
22
2.6. Ms comandos
rmdir
A continuacin se vern algunos comandos tiles para ejecutar desde consola. Para borrar directorios se utiliza el comando rmdir. Tarea 2.11 Borremos el directorio Entremos al sistema y hagamos un directorio llamado dir_prueba (ver el comando mkdir seccin 1.2.2 (pg. 7)). Comprobemos que efectivamente fue creado. Probemos el comando:
[martin@maq martin]# rmdir dir_prueba [martin@maq martin]# _
less
Ya vimos el comando cat que sirve para volcar por pantalla un archivo. Pero si queremos ver un archivo que ocupe ms de una pantalla, este comando no nos sirve. Pero el comando less si permite recorrer un archivo. Tarea 2.12 less Veamos el archivo de conguracin del sistema X Windows. Para ello ejecutemos:
[martin@maq martin]# less /usr/X11/XF86Config
Este comando permite recorrer el documento de la misma forma que lo hace el comando man. Para buscar texto tambin se usa la tecla [/]. Busquemos la palabra keyboard y luego Keyboard (con mayscula).
Las bsquedas con less funcionan distinto que con man; con less si importan las maysculas y minsculas. Este comando admite argumentos que modican este comportamiento. Tarea 2.13 Opcin de less Ejecutemos ahora
[martin@maq martin]# less -i /usr/X11/XF86Config
El parmetro opcional -i permite que las bsquedas sean sin importar maysculas y minsculas. Hacer: Repitamos la bsqueda de la palabra keyboard.
more
ln
Hay sistemas que no tienen instalado el comando less. Por lo general el mismo es reemplazado por su antecesor more. El mismo es menos potente; solo permite desplazarse por el documento pgina por pgina. Para desplazarse a la pgina siguiente se usa la barra espaciadora, y para ir a la anterior se usa la tecla [b].
23
El sistema de archivos de Linux permite tener enlaces simblicos. Estos son archivos especiales que referencian a archivos o directorios ya existentes. Son similares a los accesos directos de Windows. Su sintaxis ms comn es:
ln -s <nombre de archivo ya existente> <nombre del archivo del enlace>
Este comando cre un enlace en nuestro directorio personal desde el archivo ~/x11 al directorio /etc/X11. Para ver si se ha creado con xito ejecutemos el comando:
[martin@maq martin]# ls -l total 8 drwxr-xr-x 3 martin martin lrwxrwxrwx 1 martin martin [martin@maq martin]# _
Ahora podemos acceder al enlace como si fuera el directorio al cual apunta. Hacer: Vayamos a este directorio, a travs del enlace, con el comando cd x11 y ejecutemos el comando pwd. Que pas?
grep
Otro comando de uso muy frecuente en la administracin es grep. El mismo sirve para buscar palabras (ms especcamente expresiones regulares) en archivos. Tarea 2.15 Comando grep Busquemos, otra vez, la palabra keyboard en el archivo /etc/X11/XF86Config:
[martin@maq martin]# grep keyboard /etc/X11/XF86Config # Specify which keyboard LEDs can be user-controlled (eg, with xset(1)) # To customise the XKB settings to suit your keyboard, modify the # keyboard, you will probably want to use: # If you have a US Microsoft Natural keyboard, you can use: [martin@maq martin]# _
Este comando muestra las lneas donde se encuentra esta palabra. Tambin, este comando admite muchos argumentos (ver las man pages). Por defecto, el comando tiene en cuenta maysculas y minsculas. Para revertir esta opcin se utiliza el argumento -i:
[martin@maq martin]# grep -i keyboard /etc/X11/XF86Config # Keyboard section Section "Keyboard"
24
# Specify which keyboard LEDs can be user-controlled (eg, with xset(1)) # To disable the XKEYBOARD extension, uncomment XkbDisable. # To customise the XKB settings to suit your keyboard, modify the # keyboard, you will probably want to use: # If you have a US Microsoft Natural keyboard, you can use: [martin@maq martin]# _
De esta forma muestra tambin las apariciones de la palabra Keyboard (con mayscula).
quota
Generalmente en los entornos multiusuario se restringe la cantidad de espacio en disco que cada uno puede utilizar. Para ver la utilizacin de este espacio y si nos hemos excedido del asignado se utiliza el programa quota. Tarea 2.16 Viendo el espacio utilizado en disco Probar este comando y si nos hemos excedido de lo permitido borrar copiar en disquete para su traslado algunos archivos que no necesitemos.
mc
Ghostview: Es un visor de archivos de tipo postscript. Son archivos que terminan en .ps. Muchos prcticos (y este mismo apunte) estarn disponibles en este formato. Para usarlo hay que ejecutar en una terminal grca:
gv <nombre de archivo postscript>
xdvi
Xdvi: Es un visor de archivos de tipo xdvi. Son archivos que terminan en .dvi. Tambin algunos prcticos estarn disponibles en este formato. Para usarlo hay que ejecutar en una terminal grca:
xdvi <nombre de archivo dvi>
acroread
Acrobat Reader: Es un visor de archivos de tipo pdf. Para usarlo hay que ejecutar en una terminal grca:
acroread <nombre de archivo pdf>
display
Visor de imgenes: Para poder visualizar imgenes en casi cualquier formato (jpeg, png, bmp, gif, etc.) se puede utilizar el programa display. El mismo tambin sirve para manipularlas. Para usarlo hay que ejecutar en una terminal grca: 25
Haskell: El intrprete Haskell instalado es el hugs. Para usarlo hay que ejecutar en cualquier terminal el comando hugs. Si abrimos un archivo de programa haskell (con extension .hs) con el emacs y tenemos instalada la conguracin para la materia podremos ejecutar el hugs desde este editor. El compilador Haskell que suele estar instalado es el ghc. El mismo nos permitir crear ejecutables de programas que hemos hecho para la materia.
ghc
gcc
Compilador C: El compilador c instalado es el gcc. Para usarlo hay que ejecutar en cualquier terminal:
gcc3
Tambin se encuentra una versin ms nueva del mismo bajo el nombre gcc3.
g++ java fpc fp lazarus squeak pl
Este ltimo programa tiene un entorno modo texto integrado de programacin llamado fp. Otro entorno para el mismo compilador pero en modo grco es lazarus.
squeak es un compilador de SmallTalk. pl es un compilador de Prolog.
opera
Navegador web: Para navegar en la web el las maquinas del laboratorio cuentan con el programa opera. Para utilizarlo solo hay que ejecutarlo en X desde una terminal (ver seccin 2.6 (pg. 19)). Hay que tener en cuenta que para poder usarlo se debe congurar el proxy de http. Para hacerlo hay que ir al men Edit Preferences Network Proxy severs y poner como proxy a hal.famaf.unc.edu.ar con puerto 8080.
26
Captulo 3
Comandos avanzados
A continuacin se vern otras comandos, al mismo tiempo que se profundizarn algunos conceptos necesarios para su uso.
3.1. Shells
Vimos que los usuarios interactan con el sistema a travs del shell. Los shell corren como cualquier otro proceso en el sistema. Hasta ahora utilizamos el programa bash, pero existen otros shells, por ejemplo csh (C Shell), ksh (Korn Shell), sh, tcsh, zsh. Por lo general las distribuciones proveen la mayora de los que nombramos. Tarea 3.1 Ver si tenemos instalado otro shell Para ver si tenemos instalado el shell csh usemos un nuevo comando:
[martin@maq martin]# which csh /bin/csh [martin@maq martin]# _
which
A continuacin veremos algunas funcionalidades del shell bash, aunque tambin son aplicables a otros.
27
El carcter * sirve para sealar cualquier palabra, incluso la palabra vaca. En realidad con el mismo, indicamos al shell bash que ejecute el comando. ls .bash_history .bash_logout .bash_profile .bashrc
Observemos que se listan todos los archivos en el directorio que comiencen con f, que continen con cualquier letra, que sigan con una letra p y terminen con cualquier cosa. Tambin se le puede indicar al shell que muestre solo caracteres en un rango (orden ASCII). Por ejemplo, podemos solicitar al shell que muestre todos los archivos que comiencen con bash y continen con un carcter alfabtico:
[martin@maq martin]# ls .bash[a-z]* .bashrc [martin@maq martin]# _
Oro ejemplo es si queremos mostrar todos los archivos ocultos que contengan la subpalabra |sh|:
[martin@maq martin]# ls .*sh* .bash_history .bash_logout .bash_profile [martin@maq martin]# _
.bashrc
.cshrc
Estas expresiones regulares funcionan con cualquier comando. Por lo cual hay que tener cuidado de no ejecutar por ejemplo el comando rm *.
Con esto se cre un archivo nuevo dirvar.txt con el volcado a la salida estndar de comando. Si vemos el nuevo archivo encontraremos el listado del directorio /var: 28
du
El comando du sirve para ver cuanto espacio ocupan los directorios, recursivamente desde los directorios que le indiquemos. Si queremos que nos muestre solo el total de los directorios indicados, tendremos que usar el modicador -s. Tarea 3.3 Comando du Ejecutemos el comando du:
[martin@maq martin]# du -s /usr/share/man/* 72 /usr/share/man/de_DE 3708 /usr/share/man/es 72 /usr/share/man/fr_FR 28 /usr/share/man/ja 32 /usr/share/man/man 6920 /usr/share/man/man1 1004 /usr/share/man/man2 11408 /usr/share/man/man3 176 /usr/share/man/man4 1000 /usr/share/man/man5 88 /usr/share/man/man6 456 /usr/share/man/man7 1588 /usr/share/man/man8 4 /usr/share/man/man9 1256 /usr/share/man/mann 16 /usr/share/man/pl 68 /usr/share/man/pt_BR 24 /usr/share/man/ru 20 /usr/share/man/sk 4 /usr/share/man/tmac.h [martin@maq martin]# _
Aqu usamos una expresin regular que hace que el shell active el comando du pasndole como parmetro todos los archivos del directorio /usr/share/man. Para cada uno de ellos el comando calcula el total del espacio utilizado sin recorrerlos recursivamente. Hacer: Guardemos esta salida del comando en un archivo llamado du_salida.
sort
Un comando que sirve para ordenar archivos de texto es el comando sort, el mismo presenta muchas opciones (ver man page). Por defecto este ordena las lneas de un archivo utilizando como clave el principio de ellas hasta los primeros caracteres en blanco. Tarea 3.4 Comando sort Ejecutemos el comando: 29
[martin@maq martin]# sort -n du_salida 4 /usr/share/man/man9 4 /usr/share/man/tmac.h 16 /usr/share/man/pl 20 /usr/share/man/sk 24 /usr/share/man/ru 28 /usr/share/man/ja 32 /usr/share/man/man 68 /usr/share/man/pt_BR 72 /usr/share/man/de_DE 72 /usr/share/man/fr_FR 88 /usr/share/man/man6 176 /usr/share/man/man4 456 /usr/share/man/man7 1000 /usr/share/man/man5 1004 /usr/share/man/man2 1256 /usr/share/man/mann 1588 /usr/share/man/man8 3708 /usr/share/man/es 6920 /usr/share/man/man1 11408 /usr/share/man/man3 [martin@maq martin]# _
El comando utiliza por defecto el orden lexicogrco (el del diccionario) sobre el primer campo de cada lnea. El argumento -n indica que utilice el orden numrico sobre estos campos, en vez del lexicogrco (el del diccionario) que es el que usa por defecto. Hacer: Ejecutar el mismo comando pero sin -n.
Como ya vimos se puede redireccionar la salida estndar a un archivo. Tambin es posible hacerlo pero a la entrada estndar de otro proceso. Esto se hace con el carcter | (se denomina pipe). Tarea 3.5 Usando pipes En el ejemplo anterior volcamos la salida estndar del comando du y la escribimos a un archivo temporal. Despus ordenamos su contenido con el comando sort. Pero se puede hacer estas dos cosas de una vez. Ejecutemos el comando:
[martin@maq martin]# du -s /usr/share/man/* | sort -n 4 /usr/share/man/man9 4 /usr/share/man/tmac.h 16 /usr/share/man/pl 20 /usr/share/man/sk 24 /usr/share/man/ru 28 /usr/share/man/ja 32 /usr/share/man/man 68 /usr/share/man/pt_BR 72 /usr/share/man/de_DE
30
72 /usr/share/man/fr_FR 88 /usr/share/man/man6 176 /usr/share/man/man4 456 /usr/share/man/man7 1000 /usr/share/man/man5 1004 /usr/share/man/man2 1256 /usr/share/man/mann 1588 /usr/share/man/man8 3708 /usr/share/man/es 6920 /usr/share/man/man1 11408 /usr/share/man/man3 [martin@maq martin]# _
Aqu, a la entrada del proceso sort se redireccion la salida del comando du y aquel volc el resultado por su salida estndar. Adems de esto se puede redireccionar esta salida al comando less:
[martin@maq martin]# du -s /usr/share/man/* | sort -n | less
Para ms alternativas de redireccin que ofrece el shell bash remitirse a su man page.
set
31
Se pueden ver los nombres de las variables (lado izquierdo del =) y su valor (lado derecho del =). Observemos que aqu hay informacin de, por ejemplo, cual es el nombre de la mquina (variable HOSTNAME) y cual es el camino de los programa que podemos ejecutar (variable PATH). En la misma no est el path ./ por lo que si queremos ejecutar algn programa que no este en el path, tendr que ser. Esto es congurado as por razones de seguridad.
export
Para crear variables de entorno nuevas o cambiar su valor se utiliza el comando export. Su sintaxis es:
export <nombre de la variable>= <valor>
Con esto habremos creado (o modicado si ya exista) la variable MIVARIABLE con el valor hola. Comprobar que efectivamente fue creada la variable. Ayuda: Usar tambin el comando grep.
top
Este parmetro hace que solo se muestren los procesos que consumen CPU.
32
3:29am up 1 day, 9:08, 2 users, load average: 0,02, 0,03, 0,04 55 processes: 54 sleeping, 1 running, 0 zombie, 0 stopped CPU states: 1,3% user, 1,3% system, 0,0% nice, 97,2% idle Mem: 126352K av, 98920K used, 27432K free, 0K shrd, 3552K buff Swap: 354768K av, 48084K used, 306684K free 47556K cached PID USER 12876 martin PRI 12 NI 0 SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 1040 1040 828 R 0,1 0,8 0:00 top
Aqu se puede ver que el nico proceso que est consumiendo CPU es el mismo top.
Una de las formas de enviar seales a procesos es por medio de teclas especiales. Tarea 3.9 Terminar un proceso Para terminar un proceso se le enva una seal con la combinacin de teclas [CTRL]-[c]. Ejecutemos el comando yes:
[martin@maq martin]# yes y y y y y
Lo nico que hace este comando es escribir sucesivas y por su salida estndar. Para terminar el procesos enviemos la seal oprimiendo las teclas [CTRL]-[c]. Ahora ejecutemos el comando pero redireccionando su salida al dispositivo especial /dev/null. Este dispositivo virtual funciona como un resumidero de datos; todo lo que se enva al mismo desaparece. Lo utilizaremos para no saturar la pantalla con caracteres:
[martin@maq martin]# yes > /dev/null _
Veamos en la otra consola con el comando top que efectivamente este proceso est corriendo. Ahora oprimamos [CTRL]-[c] para que se detenga.
33
Los procesos en Unix tambin pueden estar corriendo en background. Esto es, sin bloquear la consola1 , permitindonos ejecutar otros comandos. Una de las formas de hacerlo es agregando el carcter & al nal de la lnea de comando. Tarea 3.10 Ejecutando un proceso en background Corramos en background el comando anterior:
[martin@maq martin]# yes > /dev/null & [1] 13367 [martin@maq martin]# _
Observemos los dos nmeros que aparecen en pantalla despus de ejecutar la accin. El primero se llama nmero de trabajo, el segundo es el identicador de proceso (PID). Ms adelante este ltimo en ms detalle. Con esto el programa sigue corriendo. Volvamos a la consola con el proceso top para vericarlo.
fg
Para volver a este proceso (ponerlo en foreground)se usa el comando fg. Este comando toma como argumento el nmero de trabajo del proceso que pusimos en background. Tarea 3.11 Poniendo un proceso en foreground Con el proceso yes todava corriendo, ejecutemos:
[martin@maq martin]# fg 1 yes >/dev/null _
Tambin podemos indicarle a un proceso que se detenga a travs de una nueva seal. Para hacerlo hay que oprimir las teclas [CTRL]-[z]. Tarea 3.12 Deteniendo un proceso Ejecutemos otra vez el proceso yes:
[martin@maq martin]# yes > /dev/null _
Veamos en la otra consola con el proceso top si el mismo se est ejecutando. Detengamos el proceso yes con las teclas [CTRL]-[z]:
1 En
34
[martin@maq martin]# yes > /dev/null [1]+ Stopped [martin@maq martin]# _ yes >/dev/null
El primer nmero que aparece en la consola es otra vez el nmero de trabajo. Veamos en la consola con el proceso top que yes no consume ms CPU.
bg
A un proceso detenido (como con el que acabamos de hacer) se lo puede despertar ponindolo en background. Para ello se usa el comando bg. Tambin lleva como argumento el nmero de trabajo del proceso que deseamos despertar. Tarea 3.13 Despertando un proceso Ejecutemos en la consola:
[martin@maq martin]# bg 1 [1]+ yes >/dev/null & [martin@maq martin]# _
Veamos que efectivamente el proceso est corriendo (con el proceso top de la otra consola). Si queremos ponerlo en foreground ejecutemos el comando fg con el nmero de trabajo como argumento:
[martin@maq martin]# fg 1 yes >/dev/null _
kill
Otra forma de enviar seales es con el comando kill. Esto es utilizado cuando no tenemos acceso por consola para enviarle seales, por ejemplo cuando queremos detener demonios. Su sintaxis es:
kill [- <seal>] <identicador de proceso>
ps
El parmetro de seal es optativo; por defecto enva la seal para terminar la ejecucin. La lista de seales posibles se puede ver ejecutando el comando con el argumento -l nicamente (probar ejecutarlo). Tambin se pueden escribir en formato numrico (ver archivo /usr/include/asm/signal.h. Para conocer el identicador de proceso se puede utilizar el comando ps (el comando top tambin sirve). El mismo tiene muchos argumentos posibles. Para ver los identicadores de todos los procesos se utiliza el parmetro -x. Tarea 3.14 Comando kill Probemos enviar seales con el comando kill. Para ello ejecutemos otra vez el comando yes: 35
[martin@maq martin]# yes > /dev/null & [1] 13416 [martin@maq martin]# _
El primer nmero que aparece es el que estamos buscando. Ejecutemos ahora el comando kill con este nmero:
[martin@maq martin]# kill 13416 [martin@maq martin]# _
Nota Hay procesos que no atienden las seales de terminacin normales (SIGTERM). Si tratamos de terminar uno de estos procesos con el comando kill sin indicarle la seal, no los vamos a lograr. Para poder hacerlo hay que indicarle la seal -9 (SIGKILL). Nota Los procesos tienen como atributo el usuario que los lanz (ya lo veremos con profundidad). Si queremos terminar un proceso de otro usuario, no lo vamos a poder hacer. nicamente el usuario dueo del proceso (quien lo ejecut) y el root pueden concluirlos.
36
usuario 1
grupo 2
grupo 3
Figura 3.1: Grupos y usuarios regla es que no pueden existir usuarios que no pertenezcan a ningn grupo. De esta forma todos los usuarios tienen su grupo primario. Este es un grupo distinguido para cada usuario. Los recursos tienen informacin sobre que usuarios y que grupos pueden utilizarlos y de que manera hacerlo. Por ejemplo, cada archivo y directorio del sistema de archivos, tiene un usuario y un grupo al cual pertenecen. Las personas reales que utilizan el sistema utilizan los recursos a travs de procesos que ellos ejecutan. Cada persona, cuando entra al sistema, se autentica como un usuario (a travs del password) y ejecuta programas que utilizan recursos. Es por ello que cada proceso tiene informacin del usuario que los ejecut. Adems tiene informacin del grupo primario (si no se especica otra cosa) de este usuario. De esta forma cada proceso tiene, por lo menos 3 atributos2 : Identicador de proceso (PID). Esto ya lo vimos. Identicador del usuario (UID). Identicador del grupo (GID). Todos estos atributos son nmeros. Para poder ser ledos ms fcilmente por humanos, los UIDs y GIDs tienen asociados nombres. El nombre de nuestro UID es el que usamos cuando entramos al sistema. El
2 En
realidad existen dos UIDs: el real y el efectivo. Lo mismo ocurre con el GID.
37
sistema operativo se rige por los nmeros, no por el nombre (podramos tener dos nombres de usuarios distintos asignados al mismo nmero). La denicin de estos usuarios y grupos est en archivos de texto, los archivos /etc/passwd y /etc/group. Tarea 3.16 Veamos los archivos passwd y group Hagamos en consola:
[martin@maq martin]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: adm:x:3:4:adm:/var/adm: lp:x:4:7:lp:/var/spool/lpd: sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail: news:x:9:13:news:/var/spool/news: uucp:x:10:14:uucp:/var/spool/uucp: operator:x:11:0:operator:/root: games:x:12:100:games:/usr/games: gopher:x:13:30:gopher:/usr/lib/gopher-data: ftp:x:14:50:FTP User:/var/ftp: nobody:x:99:99:Nobody:/: martin:x:500:501:Usuario de prueba:/home/martin:/bin/bash [martin@maq martin]# _
Este archivo consta de de una serie de campos por lnea, separados por el carcter :. En cada lnea, el primer campo es el nombre del usuario. El segundo sera su clave encriptada si no usramos shadow password (ya veremos que es eso). El tercero es el UID. El cuarto es nmero del grupo primario del usuario. Hacer: Que son los otros campos? Ahora veamos el archivo /etc/group:
[martin@maq martin]# cat /etc/group root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin,adm adm:x:4:root,adm,daemon tty:x:5: disk:x:6:root lp:x:7:daemon,lp mem:x:8: kmem:x:9: wheel:x:10:root mail:x:12:mail news:x:13:news uucp:x:14:uucp man:x:15:
38
Este archivo tiene la misma separacin de campos que el anterior. El primero es el nombre del grupo, el tercero el nmero del grupo que tiene ese nombre, y el cuarto es la lista de usuarios que pertenecen a ese grupo. En esta lista no hace falta que gure el usuario si este es su grupo primario. En este ejemplo el usuario bin pertenece a los grupos bin, daemon y sys. La ltima lnea no se reere al usuario martin si no a un grupo que tiene el mismo nombre que el usuario. Notar que es el grupo primario del mismo. Hacer: Buscar informacin acerca del signicado del segundo campo.
Por convencin, los UIDs y GIDs menores que 500 (esto puede no ser as) no representan a usuarios reales y se suelen utilizar para congurar las polticas de seguridad de los demonios. Se suelen llamar cuentas del sistema. Puede suceder que el grupo primario de los usuarios sea el mismo para todos ellos. En algunos sistemas hay un grupo llamado users al cual pertenecen todos los usuarios comunes (mayores que 499). Red Hat y otros sistemas utilizan como poltica de creacin de usuarios que cada uno tenga un grupo primario propio, con el mismo nombre que el usuario. Este esquema se denomina User Private Groups (UPG) y tiene algunas ventajas. Tarea: Leer la seccin User Private Group del captulo 2 de Red Hat Linux Reference Guide. En distribuciones ms nuevas viene un sistema de autenticacin llamado shadow password. La principal caracterstica es que las claves de los usuarios no son guardadas en los archivos /etc/passwd y /etc/group. En vez de ello se almacenan en archivos ocultos a todos los usuarios, excepto el root, llamados /etc/shadow y /etc/gshadow. Esto tiene la ventaja que las claves no pueden ser accedidas por los usuarios comunes pero la informacin de los mismos (directorios /home por ejemplo) s lo pueden ser por aplicaciones que necesiten estos datos. Adems los nuevos archivos guardan informacin adicional. Hacer: Buscar informacin sobre la sintaxis de los archivos /etc/shadow y /etc/gshadow. Un comando que sirve para ver los grupos a los que pertenece un usuario es id. Este se ejecuta seguido del nombre del usuario del cual queremos obtener informacin.
id
En cada archivo, su dueo, grupo y dems usuarios hay lo que se denominan permisos. Hay tres clases de ellos: permiso de lectura (read) signica que se puede leer el archivo. permiso de escritura (write) signica que se puede modicar o escribir el archivo. permiso de ejecucin (execute) signica que se puede correr el archivo si es un programa. Ya tenemos todos los componentes bsicos del sistema de proteccin del sistema de archivos. En la gura 3.2 (pg. 40) se muestra un programa ejecutable con permisos tpico. Esta salida fue generada con en comando ls -l.
Otros pueden leer y ejecutar El dueo puede leer, escribir y ejecutar
Grupo
rwx rx rx
Este es un archivo comn El grupo puede leer y ejecutar
2 pepe users
Dueo
12423 Nov 9
09:32 mi_ejec
En esta gura, la serie de caracteres - rwx r-x r-x nos indica los permisos de estos archivos. El primer carcter es un guin, el cual indica que se trata de un archivo comn. Este carcter puede ser d si es un directorio, l si es un enlace simblico, c si es un dispositivo de carcter (ver subseccin B.3.4 (pg. 58) o b si es un dispositivo de bloque. Los caracteres, de aqu en adelante, se reeren a permisos y se representan internamente por bits. Los primeros tres bits (caracteres en la salida del programa ls) se aplican al dueo. Aqu el usuario martin tiene todos los permisos. Los siguientes tres bits se aplican a los miembros del grupo: ellos pueden leer el archivo y ejecutarlo, pero no pueden escribirlo ya que el carcter que contendra una w contiene un guin. Los ltimos tres bits se aplican a los dems usuarios que no son el dueo ni el grupo. Estos tienen los mismos permisos que en el caso del grupo. Existe otro grupo de 3 bits adicionales (no se muestran separados con el comando ls) que sirven para indicar caractersticas adicionales (setuid,setgid y sticky bit). Mas adelante veremos de que se trata esto. Nota Las entidades dueo, grupo y otros se las suele denominar niveles de proteccin. El signicado de los permisos cambia si el archivo es un directorio. En este caso los permisos signican: r permite que se pueda listar el contenido del directorio. w permite crear una nueva entrada en el directorio (un archivo o un subdirectorio) o borrar una existente. x permite que se pueda listar la informacin del directorio. No hay mucha diferencia con el permiso r. Se suele denominar permiso de paso ya que permite atravesar un directorio hacia sus subdirectorios. Se suele aplicar junto con el permiso r (los dos o ninguno). 40
Recordemos que el usuario root puede hacer cualquier cosa. As aunque por ejemplo puede borrar o crear archivos en los directorios personales, aunque no tenga permisos explcitamente. Cada permiso puede representarse con valores numricos: r=4 w=2 x=1 -=0 Cuando estos valores son sumados, el total puede ser usado para manipular los permisos. Por ejemplo para el archivo mi_eject de la gura anterior, tenemos los permisos en forma numrica: (rwx) | 4+2+1 (r-x) | 4+0+1 (r-x) | 4+0+1
El total para el dueo es siete, el total para el grupo es cinco y para los dems usuarios es cinco. Los permisos entonces pueden ser ledos como 755. A continuacin se muestra una lista de permisos comnmente usados: -rw------- (600) Solo el dueo y el root tienen permiso de lectura y escritura. -rw-r--r-- (644) Solo el dueo y el root tienen permiso de lectura y escritura. El grupo y otros solo puede leer. -rwx------ (700) Solo el dueo y el root pueden leer, escribir y ejecutar el archivo. -rwxr-xr-x (755) El dueo y el root pueden leer escribir y ejecutar el archivo. El grupo y los otros solo pueden leerlo y ejecutarlo. -rwx--x--x (711) El dueo y el root pueden leer escribir y ejecutar el archivo. El grupo y los otros solo pueden ejecutarlo. Esto quiere decir que por ejemplo no pueden copiarlo (con el comando cp). -rw-rw-rw- (666) Todos pueden leerlo y escribirlo (hay que tener cuidado con estos permisos. -lrwxrwxrwx (777) Todos pueden leerlo escribirlo y ejecutarlo (de nuevo, estos permisos pueden ser peligrosos). A continuacin veremos permisos comnmente usados para directorios: drwx------ (700) Solo el dueo y el root pueden listar el contenido del directorio, crear nuevos elementos o borrarlos. drwxr-xr-x (755) Cualquiera puede ver el listado de archivos de este directorio, pero solo el dueo y el root pueden crear nuevos elementos o borrarlos. Nota Cabe mencionar que en los dos ltimos ejemplos con directorios, ningn usuario distinto de root va poder borrar un archivo dentro del mismo, aunque el archivo le pertenezca. En el ltimo ejemplo, si el usuario es dueo, lo va poder modicar (pero no borrar). En el primero no porque ni va a poder entrar al directorio. Si tuviera permiso de paso si lo podra hacer.
41
El comando chown sirve para cambiar el dueo de un archivo y chgrp sirve para cambiar el grupo. Solo el usuario root puede ejecutar chown. La sintaxis de estos comandos es muy simple. Por ejemplo, para cambiar el dueo y el grupo a bin de un programa llamado mi_prog se utilizaran los comandos:
[root@maq root]# chown bin mi_prog [root@maq root]# chgrp bin mi_prog [root@maq root]# _
chmod
Estos comandos permiten el argumento -R para cambiar recursivamente todo un directorio. La sintaxis para cambiar permisos es ms complicada. Los permisos son usualmente llamados modos de archivo y el comando para cambiarlos es chmod. Tarea 3.17 Comando chmod
touch
Exploremos este comando. Antes, creemos un archivo llamado mi_prog con el comando touch. Este comando sirve, entre otras cosas, para crear archivos vacos. en nuestro caso lo vamos a usar para tener un archivo de prueba. Ejecutemos entonces el comando:
[martin@maq martin]# touch mi_prog [martin@maq martin]# _
Supongamos que este archivo es un programa (actualmente es un programa vaco) y queremos que tenga permiso de ejecucin:
[martin@maq martin]# chmod +x mi_prog [martin@maq martin]# _
El signo + signica agregar permisos, y la x indica que permiso agregar. Ejecutemos ls para ver como cambiaron los permisos. Usado de esta forma, el comando asigna permisos a todos los niveles de proteccin (dueo, grupos y otros). Si queremos sacar el permiso usemos el signo - en el lugar del +:
[martin@maq martin]# chmod -x mi_prog [martin@maq martin]# _
Supongamos que no queremos que cualquiera pueda usar nuestro programa. Podemos asignarle solo permiso de ejecucin para el dueo solamente con el comando (ejecutarlo):
[martin@maq martin]# chmod u+x mi_prog [martin@maq martin]# _
42
Veamos con ls que sucedi. Todo lo que va antes del signo + son los nivel de proteccin (dueo, grupo o otros) y lo que va despus son los tipos de permisos. Los permisos del dueo se designan se designan con u, los del grupo con g y los de los otros con o. Entonces para asignarle permisos al grupo y a nosotros mismos ejecutemos:
[martin@maq martin]# chmod gu+x mi_prog [martin@maq martin]# _
La man page del comando es muy completa y guran otras formas abreviadas para el comando. Una opcin muy utilizada por administradores es el argumento -R. Tiene el mismo efecto que para los comandos chown y chgrp, cambiar recursivamente los permisos de todos los archivos en un directorio.
Existen otros permisos para archivos y directorios que no son muy usados pero pueden ser muy importantes en la tarea de administracin. Ellos son: setuid Este permiso se aplica a archivos ejecutables. Si un programa lo tiene activado cualquier persona que tenga permiso para hacerlo, levantar el proceso correspondiente con el UID del dueo del programa. Este tipo de permisos es muy peligroso en el caso que el dueo sea el root. La sintaxis del comando chmod para activarlo es:
chmod u+s <nombre del programa>
setgid Idntico que el anterior pero cambia el GID del proceso activado. La sintaxis del comando chmod para activarlo es:
chmod g+s <nombre del programa>
Tambin se utiliza para directorios. En este caso si un proceso se ejecuta dentro del directorio cambiar su GID al grupo del mismo. Para que esto funcione el usuario que ejecuta el proceso debe pertenecer al grupo. sticky bit Funciona solo para directorios. Este permiso hace que todos los archivos del directorio puedan ser borrados solo por el dueo, el usuario root o el dueo del directorio. Se usa generalmente en directorios utilizados por todos los usuarios como el /tmp. La sintaxis del comando chmod para activarlo es:
chmod o+t <nombre del directorio>
43
Uno debe conocer de antemano cuales son estas ubicaciones y copiar estos archivos a las mismas. Otra razn es que los programas en Linux suelen hacer uso de libreras. Por lo tanto si queremos que el programa funcione deberemos tener instaladas las libreras que utiliza. Adems las libreras tienen diferentes versiones que deben concordar con la que el programa necesita. Existen muchas soluciones a estos problemas. La ms clsica es distribuir los programas y archivos de conguracin en archivos que guardan la informacin de su ubicacin, por lo general comprimidos. Adems suelen venir compilados de forma que el cdigo de libreras ya vienen dentro del ejecutable (son compilados de forma esttica). Esto ltimo hace que se incremente el tamao de los programas Otra posibilidad, aprovechando que el software es libre, es distribuir los archivos fuentes. Al compilarlos pueden ser congurados para que utilicen las libreras que tengamos instaladas. Otra forma es distribuir versiones ya compiladas en forma de paquetes para cada distribucin en particular. Los programas en Linux se instalan de diferente forma segn la distribucin que tengamos y las mismas ofrecen una serie de aplicaciones para instalarlos u mantenerlos.
tar
Si queremos archivar un directorio con todo lo que el contiene, la sintaxis del comando es:
gzip tar xvf <nombre de archivo tar a crear> <directorio a archivar>
Para comprimir o descomprimir archivos se utiliza el comando gzip. Si queremos comprimir un archivo, la sintaxis del comando es:
gzip <nombre de archivo a comprimir>
Al comprimir un archivo, el comando borra el archivo original y crea uno comprimido con el mismo nombre que el anterior pero agregando la extensin .gz. Para descomprimir un archivo la sintaxis del comando es:
gzip -d <nombre de archivo comprimido>
Al descomprimir un archivo, si el mismo tiene extensin .gz, el comando borra el archivo original y crea uno descomprimido con el mismo nombre que el anterior pero borrando dicha extensin. El algoritmo de compresin de este comando permite detectar errores en los archivos comprimidos. Para hacerlo la sintaxis es:
bzip2 gzip -tv <nombre de archivo comprimido>
Otro comando que se suele utilizar para comprimir archivos es bzip2. El mismo utiliza un algoritmo de compresin mejor pero su complejidad (utilizacin de CPU) es mayor. Como ya dijimos los programas suelen distribuirse archivados con tar y comprimidos con gzip. Por lo general su extensin es .tar.gz o .tgz. Por ende para instalarlos deberemos primero descomprimirlos y despus extraer los archivos. Si el programa es binario, deberemos copiar los archivos. Por lo general dentro del archivo tar hay un archivo llamado README o INSTALL que indica como hacer esto. Si tenemos los fuentes de los programas, los archivos que nos pueden ayudar tienen por lo general el mismo nombre. 44
rpm
Los paquetes RPM pueden depender de otros paquetes, lo que signica que requieren que otro paquete est instalado con anterioridad para poder correr debidamente. Si tratamos de instalar un paquete cuyas dependencias no estn resueltas, el comando emitir un mensaje de error. Estas dependencias no resueltas por lo general son debidas a que faltan instalar paquetes con libreras compartidas. Si queremos desinstalar un programa la sintaxis es:
rpm -e <nombre del programa>
donde el nombre del programa es el prejo del archivo RPM que utilizamos al instalarlo. Si queremos ver una descripcin del paquete mas el listado de archivos que contiene la sintaxis del comando es:
rpm -qilp <nombre de archivo RPM>
Si queremos ejecutar la misma operacin, pero sobre un paquete ya instalado la sintaxis es:
rpm -qilp <nombre del programa>
donde el nombre del programa es el prejo del archivo RPM que utilizamos al instalarlo. El formato RPM permite detectar errores en los paquetes. Para chequear si el archivo RPM tiene errores, la sintaxis del comando es:
rpm --checksig --nopgp --nogpg <nombre de archivo RPM>
45
/usr/share Archivos que no dependen de la arquitectura. /usr/local Archivos que no se instalan como paquetes (tgz). /usr/lib Libreras. /sbin Ejecutables del root para el arranque. /lib Contiene libreras compartidas para los programas que estn en /sbin y /bin. Tiene un subdirectorio que contiene los mdulos del kernel. /var Archivos de administracin que escriben los demonios (logs, spooler de impresin, ftp en distribuciones nuevas). /var/log Archivos de logs. /proc Contiene archivos especiales que sirve de comunicacin con el kernel. /mnt donde se montan los sistemas de archivos de medios removibles.
46
Apndice A
A.1.
Sus inicios
La computacin nace a principios de siglo como un intento de resolver el problema fundacional de la matemtica (aunque usted no lo crea). Resumiendo bastante, en 1905 el matemtico alemn David Hilbert propone como proyecto para el progreso matemtico futuro (en esa poca hubo una crisis en esta ciencia como en muchas otras) encontrar una fundacin rme de toda la matemtica probando su consistencia; propone efectuar un cambio metodolgico tal que a partir de axiomas se pueda probar la verdad o falsedad de cualquier problema matemtico aplicando una serie nita de pasos lgicos (o sea de manera simblica). Esta pretensiosa labor permitira hipotticamente tener una mquina (computadora) que resolviera cualquier problema matemtico, en particular que pudiera demostrar cualquier teorema. En 1931 el matemtico austraco Kurt Gdel demuestra que esta tarea es imposible a partir de su teorema de incompletitud: dado cualquier conjunto de axiomas para una teora consistente que incluya la aritmtica se pueden formular proposiciones matemticas de las cuales no puede probarse su verdad o falsedad (proposiciones indecidibles). En 1936 el matemtico ingls Alan Mathison Turing, motivado por los trabajos de Gdel, trabaja en encontrar un mtodo algortmico que determine cuando una proposicin es indecidible y as poder desecharla de las matemticas. Prueba que no puede existir tal algoritmo, por lo tanto la matemtica siempre tiene estas proposiciones. Con esta prueba se derrumba totalmente el proyecto de Hilbert. Para hacer su prueba desarrolla un modelo matemtico de una computadora que ejecuta algoritmos llamado mquina de Turing. Este dispositivo imaginario posea las propiedades fundamentales de las computadoras modernas: un programa, un lugar para almacenar los datos y un modo de aplicar paso a paso operaciones matemticas. Turing sigue trabajando en el ao 1938 pero en una actividad totalmente prctica: a principios de la segunda guerra mundial se une al proyecto de descifrar cdigos de guerra alemn, generados por un dispositivo llamado Enigma. Para este proyecto se decide construir una computadora de propsito especco1 . Con el xito del proyecto se demuestra la utilidad prctica del desarrollo en computacin, ya que hasta ese momento los conocimientos de esta ciencia no eran ms que resultados matemticos sin aplicacin directa.
1 Al terminar la guerra Turing es declarado hroe nacional y comienza a trabajar en la construccin de la Automatic Computing Engine (ACE). En 1952 muere. Aparentemente comete suicidio por el tratamiento mdico que fue forzado a tomar en prisin como cura a su homosexualidad.
47
En la dcada del 40, se comienzan a construir varias computadoras con el principal n de probar distintos diseos tecnolgicos. En el ao 1942 el matemtico hngaro John von Newmann escribe un paper proponiendo un diseo de computadoras con almacenamiento binario de los programas en dispositivos de memoria y una unidad de procesamiento de operaciones aritmticas y lgicas (CPU), basado en la mquina de Turing. Este diseo es el que se emplea hasta nuestros das.
A.2.
En la dcada del 50 se comienzan a construir computadoras con nes comerciales. En 1952, en base a los diseos de von Newmann, se construye la primera orientada a estos nes, la Mark I. El uso de estas mquinas era muy costoso y se cobraba por tiempo de utilizacin. Eran manejadas por un operario que reciba los programas (en tarjetas) y los introduca uno por uno. Esta persona fue el primer administrador de sistemas y haca las veces de sistema operativo; si un programa se detena (quizs por un error en el cdigo) deba apagar la computadora e introducir el prximo, con lo que se perda dinero por el desperdicio de tiempo de uso. Esto muestra la aparicin del problema de los errores en los programas (los cuales fueron llamados bugs): si bien la computacin ya haba resuelto el problema tecnolgico de construir computadoras (desarrollo tecnolgico impulsado por benecios econmicos), todava no era una disciplina lo sucientemente madura como para resolver el problema de los bugs en los programas. Cabe mencionar que en este momento los programas resolvan generalmente problemas matemticos bien denidos y de pequea escala por lo que los errores en la programacin no eran demasiados. De todas formas se comienza a vislumbrar como la computacin se transforma en una disciplina cuyo desarrollo es guiado muy fuertemente por intereses comerciales y econmicos en contraste con otras ciencias como la matemtica y la fsica. Adems del problema de los bugs, las computadoras comenzaron a alquilarse pero sin los perifricos. De esta forma quienes las rentaban deban tener perifricos compatibles. Los dos problemas fueron encarados introduciendo la idea de monitor. Este antecesor del sistema operativo era almacenado en tarjetas que se introducan previamente a los programas, las cuales contenan los drivers para los perifricos y brindaban funciones que podan ser llamadas por los programas cuando haba errores. Estas llamadas se las denominaba traps, antecesores de las systems calls.
A.3.
Multitarea y multiusuario
En la dcada del 60, los problemas que resuelven los programas cambian. Como ya se mencion, en la dcada anterior eran generalmente problemas matemticos y de pequea escala. En esta dcada aparecen con ms frecuencia problemas de ndole contable y administrativo donde se necesitaban manipular una gran masa de datos. Esto hace que los programas utilicen una mayor parte de su tiempo en operaciones de entrada-salida con el consiguiente desperdicio de tiempo de CPU (donde se realizan las operaciones aritmticas y lgicas) y de dinero. Es as que se desarrolla la idea de multitarea: se puede tener varios programas corriendo al mismo tiempo en una mquina y cuando alguno hace una operacin de entradasalida se ejecutan instrucciones de CPU de otro proceso. El concepto de multitarea gener la idea relacionada de multiusuario: aprovechando que se pueden tener varios procesos a la vez (multitarea) se podran disear computadoras con varias terminales donde cada usuario podra hacer uso de la misma. Las ideas de multitarea y multiusuario generaron nuevos problemas. Surge la necesidad de implementar sistemas con mecanismos de proteccin para que los distintos procesos de los distintos usuarios accedan de manera armnica a los recursos compartidos de la computadora (CPU, memoria y acceso a dispositivos). Con el n de resolver estos problemas se hizo necesario implementar sistemas operativos ms robustos y
48
que brindaran mtodos para poner en funcionamiento distintas polticas de administracin de los recursos2 . Surge con esto la necesidad de que un grupo de personas se encarguen de la tarea de instrumentar estos mtodos: los administradores de sistemas. Debido a su gran tamao y complejidad, los sistemas operativos presentan problemas en su implementacin generalmente en la forma de bugs. Es as que surgen, nuevamente, ideas del sector cientco para resolver dichos problemas. Uno de los primeros trabajos serios de investigacin en el rea del desarrollo de sistemas operativos fue el de Edsger Wybe Dijkstra, fsico holands considerado uno de los fundadores de la Ciencia de la Computacin. En 1968 desarrolla el sistema operativo T.H.E. el cual estaba implementado con una arquitectura en capas: el sistema operativo es una representacin del hardware real (abstraccin del hardware real) y est organizado en capas de software independientes con funcionalidades bien denidas, pretendiendo minimizar la informacin que comparten las mismas. Este esquema lgico de sistema operativo se utiliza hasta nuestros das.
A.4.
Surge Unix
En 1970, Ken Thompson, trabajaba programando simulaciones del sistema solar en una computadora con Multics. Harto del costo y de las dicultades que le provocaba trabajar con este sistema operativo decide trasladar sus programas a una computadora menos costosa. Para ella construye el sistema operativo UNIX junto con Dennis M. Ritchie y Brian W. Kernighan. Este sistema introduce como innovaciones la representacin de dispositivos con archivos (basado en las ideas de abstraccin de Dijkstra), interface con el usuario por medio de un shell y la escritura del cdigo del sistema en un lenguaje de alto nivel (lenguaje C) lo que permita poder ser portado a distintas computadoras con muy poco esfuerzo (todas estas caractersticas las posee Linux). En la dcada del 70 comienza la denominada Crisis del Software [Gib94] cuyos efectos mas catastrcos se vern ms adelante (dcada del 80 hasta nuestros das). En el ao 1976 Dijkstra publica A discipline of programming[Dij76]. Este libro ser el basamento de la mayor parte de las investigaciones futuras en programacin3. Desde los 80 en adelante la evolucin en computacin es guiada mayormente por intereses econmicos, aumentando la brecha entre los desarrollos comerciales y cientcos. Cuatro hechos marcan la historia de la computacin en esta dcada: el agravamiento de la Crisis del Software [Gib94] el surgimiento de Internet, la aparicin de las computadoras personales (PC) y el comienzo del Software Libre. El fenmeno de la Crisis del Software y el surgimiento del Software Libre estn relacionados fuertemente entre s.
A.5.
A partir de esta brecha entre sector econmico y cientco se van produciendo una serie de proyectos fallidos dentro de la industria del software [Gib94]. A continuacin enumeraremos los ms catastrcos.
Aeropuerto de Denver
A principio de los 90 se construye este aeropuerto, el cual tiene un sistema informtico de ruteo de equipaje que consta de 4000 carros teledirigidos, 21 millas de vas para estos carros y 100 computadoras conectadas a 5000 ojos electrnicos, 400 lectores de cdigos de barras.
ejemplo de estos primeros grandes sistemas operativos fue Multics. en este ao comienza mediante un golpe de estado el proceso de reorganizacin nacional lo que explica el retraso en computacin que sufre la Argentina
3 Tambin 2 Un
49
La inauguracin del aeropuerto estaba prevista para noviembre del ao 1993. La misma se pospone para diciembre porque el sistema no funcionaba. En diciembre se traslada dicha inauguracin para marzo de 1994 y de marzo para mayo del mismo ao. En junio todava no se pudo inaugurar y se declara una prdida de 1,1 milln de dolares por da desde la primera pretendida inauguracin.
Proyecto AAS
La Administracin Federal de Aviacin (FAA) de los Estados Unidos decide reemplazar su sistema de control de trco areo con uno nuevo denominado Advanced Automation System (AAS). Este sistema crtico contena un milln de lneas de programa y estaba distribuido sobre muchos nodos, en aviones y estaciones de trabajo controladoras del trco. Su implementacin recae en la empresa IBM la cual estima un costo 5 veces superior al estimado. Ms tarde la empresa decide duplicar el costo debido a que fue necesario reescribir, en promedio, todas la lneas de cdigo. Adems los test que se hicieron sobre el software demostraron una gran cantidad de errores. Finalmente la FAA decide cancelar la mitad del proyecto (por 144 millones de dolares). La otra parte del proyecto sigue hasta nuestros das con un costo de 1.400 millones de dolares y con riesgo de ser cancelado.
Taxi espacial
Esta nave posee 5 computadoras redundantes para asegurar que no haya fallas. En 1981 el primer vuelo se pospone por dos das debido a que las 5 computadoras fallaron en ponerse de acuerdo debido a un bug. En 1985 se vuelve a postergar el lanzamiento por un da. En 1992 pierde un satlite (el Intelsat 6).
Caso Intel
En los aos 80 producen en masa el coprocesador matemtico 80387 con un bug en las operaciones de punto otante. En 1994 pasa lo mismo con el procesador Pentium por lo que tuvieron que reemplazar cientos de miles de chips ya vendidos.
Caso Microsoft
Gran empresa monoplica cuyo mayor inversin en dinero no es la tecnologa si no su departamento de asuntos legales. En la dcada del 80 desarrollan DOS, sistema operativo muy primitivo el cual representa un retraso en la evolucin de los mismos ya que no es ni multitarea ni multiusuario (ni pretende serlo). Copia mal algunas ideas de Unix en que presenta un shell muy bsico como interface al usuario. Al principio de la dcada del 90 desarrollan el Windows 3. Se calcula que el mismo tena miles de bugs. Como solucin utilizan a millones de usuarios como beta testers. Estos mismos usuarios luego tuvieron que pagar por una nueva versin hecha en base a su tiempo perdido. Ms adelante desarrollan Windows 95, NT, 98, 2000, Milenium, etc. Otra vez utilizan la misma estrategia de solucin a los miles de bugs. Vale la pena mencionar que esta estrategia ya haba sido refutada en el ao 1976 por Dijkstra quien argumenta que el testing slo puede hacer evidente la presencia de errores en la programacin, no su ausencia [Dij76]. Esto quiere decir que nunca se puede tener una razonable seguridad de que todos los errores hayan sido encontrados o de que alguna de las reparaciones de errores viejos no hayan introducido otros nuevos. Este ltimo fenmeno es conocido como efecto Hydra. Algunas caractersticas de estos sistemas operativos son: Una muy mala implementacin de la multitarea desde el momento que el sistema no logra imponer medidas de seguridad para que los procesos utilicen los recursos compartidos de manera armnica.
50
Esto produce que la mquina se clave (famosa pantalla azul) cuando los procesos pisan sus zonas de memoria privada o cuando uno de ellos no quiere liberar el control de la CPU [Al00][Cos98]. Uso de un sistema de archivos que se fragmentan progresivamente con el uso. Cabe mencionar que en los 70 ya exista la tecnologa para disear estos sistemas de forma tal que la fragmentacin se mantenga acotada y el nivel de la misma disminuya con el uso. Esta tecnologa es de conocimiento pblico, como lo muestra Linux que hace uso de la misma [Cos98]. Esto hace que los windows brinden la aplicacin defrag. El uso de la misma tiene el defecto (adems de varios bugs) que mientras est corriendo no se puede usar la computadora ya que si se hace, la aplicacin no avanza en su tarea de defragmentacin. El sistema operativo es vendido sin ninguna garanta ni soporte tcnico [Al00] [Cos98] . El punto 6 del contrato de licencia Microsoft dice expresamente: 6_SOPORTE TCNICO. El soporte tcnico para el PRODUCTO SOFTWARE no es proporcionado por Microsoft Corporation o sus subsidiarias. Para obtener soporte tcnico, remtase al nmero de soporte del Fabricante de PC suministrado en la documentacin para la computadora (ordenador). Si tiene dudas con respecto a este CLUF (Contrato de Licencia para el Usuario Final), o si desea comunicarse con el Fabricante de PC por cualquier otra razn, remtase a la direccin proporcionada en la documentacin de la COMPUTADORA/ORDENADOR. Contiene las llamadas puertas traseras con la consiguiente violacin a la privacidad de la gente que lo utiliza. El cientco Andrew Fernandes, que trabaja en una empresa de seguridad canadiense llamada Cryptonym, descubri que windows posea una puerta trasera (backdoor) que nadie conoca, y que servira para que el gobierno de EE.UU., ms especcamente la agencia de seguridad nacional (NSA) pudiese entrar en millones de computadores alrededor del mundo, siendo estas de organizaciones o personas sin que estas tengan conocimiento de ello. Tratando de buscar alguna escusa Scott Culp gerente de seguridad de Windows NT, declar a Wired News que la puerta trasera es exclusiva para el uso de Microsoft, y no la compartimos ni con la NSA ni con nadie. Con esta declaracin ya se tiene la certeza de que Microsoft oculta, llamemosle, cualidades de su sistema operativo a sus consumidores y competidores para benecio propio. La NSA, rehus hacer declaraciones al respecto[Al00]. Los sistemas operativos enmarcados como Software Libre no tienen este problema ya que su cdigo es de conocimiento pblico. Ninguno de estos sistemas aportaron novedades tecnolgicas. Utilizaron ideas copiadas principalmente en el entorno de ventanas de Macintosh. Su xito en ventas se apoya en la capacidad de comercializacin de la empresa Microsoft la que pone en el mercado productos mediocres y costosos publicitados como los mejores[Cos98].
A.6.
El surgimiento de Internet y las computadoras personales (tan accesibles que cada usuario puede tener una) produjo una explosin en el uso de tecnologas digitales haciendo que sea ms fcil copiar y modicar la informacin. Esto, sumado a los malos productos que las empresas ponan en el mercado (crisis del software en su apogeo) hizo que se generaran movimientos de cooperacin entre los usuarios de software para combatir esta situacin.
51
En 1983 surge un proyecto emprendido por la Free Software Foundation4 para desarrollar un sistema completo de software libre llamado GNU (GNU No es Unix) que sea compatible con Unix. El mismo fue concebido como una forma de devolver el espritu cooperativo que prevaleca en la comunidad computacional en das pasados; hacer la cooperacin posible al remover los obstculos impuestos por los dueos de software propietario [Stac][Stab][Staa]. Junto con ello se redacta la licencia GNU/GPL (GNU/General Public License), la cual estipula la libre distribucin, ejecucin, modicacin y estudio del software creado bajo la misma. Con dicha licencia surge la idea del software libre la cual brinda a los usuarios las siguientes libertades [Tev01]: 1. La libertad de correr el programa con cualquier propsito. 2. La libertad de estudiar como funciona el programa y adaptarlo a las necesidades de cada usuario. El acceso al cdigo fuente es una precondicin para esto. 3. La libertad de distribuir copias de manera que se puede ayudar a otros usuarios. 4. La libertad de mejorar el programa, y liberar las mejoras al pblico de tal manera que toda la comunidad se benecie. El acceso al cdigo fuente es una precondicin para esto. Para asegurar estas libertades, las personas que adapten o modiquen este software no pueden ocultar estos cambios aprovechndose del desarrollo original, si no que deben tambin hacerlos pblicos. Por ello si un programa es adquirido bajo esta licencia, cualquier modicacin del mismo tambin debe distribuirse bajo la misma. La losofa de esta licencia no es la de promover el software gratuito (el software tiene derecho de autor y se puede cobrar por l) si no la de beneciar la libre de circulacin del conocimiento. El libre acceso a este conocimiento es un derecho de todos los usuarios de programas. Un usuario debe tener la posibilidad de conocer el comportamiento de los programas que utiliza (ya se mencion la existencia de puertas traseras en Windows). El software libre brinda este derecho obligando a la total difusin del cdigo. Adems esta difusin debe hacerse de forma masiva; por ms que un usuario no sepa analizar el cdigo debe tener la conanza de que alguien pueda hacerlo por l y esto es logrado nicamente con una apertura total del cdigo de los programas.
A.7.
Linux
En 1990, Linus Torvals, un estudiante de 23 aos de la Universidad de Helsinki, en Finlandia, comenz a desarrollar como hobby un proyecto basado en el sistema operativo MINIX (desarrollado con nes acadmicos por Andrew Tenembaum). Quera llevar a cabo sobre una computadora con procesador Intel 80386 un sistema operativo tipo UNIX que ofreciese ms capacidades que el limitado MINIX, aprovechando la arquitectura de este procesador 5 . Linus Torvals empez escribiendo el ncleo del proyecto en ensamblador, y luego comenz a aadir cdigo en C, lo cual increment la velocidad de desarrollo, e hizo que empezara a tomarse en serio su idea de hacer un MINIX mejor que MINIX. La primera versin, la 0.01 no tena driver de disquete, y ni siquiera la dio a conocer. Llevaba incorporado un pequeo sistema de archivos y un driver de disco con mucho errores pero funcionaba. En octubre de 1991, anuncio la primera versin ocial de LINUX, la 0.02, que ya era capaz de ejecutar el shell bash y el compilador gcc de GNU. En comp.os.minix, un foro de discusin en Internet acerca del sistema operativo de Tenembaum, Linus Torvals escribi un llamamiento que comenzaba con una famosa frase:
4 http://www.fsf.org 5 Recordemos
52
Aoras los maravillosos das del MINIX-1.1, cuando los hombres eran hombres y escriban sus propios drivers? Careces de proyectos interesantes y te mueres por desaar a un sistema operativo que puedas modicar a tu antojo? Te resulta frustrante hacer que todo funcione con MINIX? Ests harto de trasnochar para poder conseguir que funcione un programa? Entonces, esta carta puede ser justamente para ti. Como coment hace un mes, estoy trabajando en una versin libre de un sistema tipo MINIX para computadoras AT-386. Finalmente ha sido mejorado el entorno, que incluso se puede utilizar, y estoy deseoso de sacar las fuentes de una distribucin ms potente. Es solo la versin 0.02... pero ha conseguido que funciones bien bash, gcc, GNU make, GNU sed, compress, etc., bajo l" A partir de ah, el sistema de Linus empez a crecer . De todas partes le llegaba correspondencia interesndose por la idea, y comenzaron a desarrollarse proyectos destinados a incrementar la potencia de la plataforma. Por qu esperar a que una empresa saque su software si lo podemos hacer entre todos? Por qu pagar por un s.o. mal hecho y lleno de errores que no podemos solucionar? Estas fueran algunas de las cuestiones que incentivaron el desarrollo de Linux por cooperacin gratuita de usuarios en el mundo. El desarrollo de Linux no se pudo haber realizado sin las aplicaciones de GNU creadas por la Free Software Fundation. Adems muchos de los componentes de Linux, como drivers, protocolos o shells salieron de otro sistema Unix de libre distribucin llamado FreeBSD, desarrollado en la Universidad de Berkeley. Pero sin duda, el factor esencial y determinante en el xito y la rpida difusin del sistema operativo ha sido la red de redes, Internet. A travs de foros de discusin y noticias, miles de personas de todo el mundo se han propuesto demostrar que, sin mediar los intereses econmicos de las empresas, se pueden conseguir productos que incluso superen en calidad a los desarrollados por los gigantes del software.
53
Apndice B
Informacin adicional
B.1. Ubicacion de las man pages
Las man pages son archivos que estn ubicados en directorios preestablecidos y agrupados en secciones segn su contenido. Tarea B.1 Ubicacin de las man pages Veamos con el comando ls donde estn estos archivos:
[martin@maq martin]$ ls /usr/share/man/ de_DE ja man2 man5 man8 pl es man man3 man6 man9 pt_BR fr_FR man1 man4 man7 mann ru [martin@maq martin]$ _ sk tmac.h
En los directorios listados que comienzan con man estn las man pages. Vemos que las man pages estn ubicadas en el directorio /usr/share/man/. En Unix tambin suelen estar en /usr/man/ Ejecutemos ahora:
[martin@maq martin]$ ls /usr/share/man/man4 console.4.gz full.4.gz isdnctrl.4.gz console_codes.4.gz hd.4.gz isdninfo.4.gz console_ioctl.4.gz ibod.cf.4.gz kmem.4.gz console_ioctls.4.gz initrd.4.gz libxml.4.gz dsp56k.4.gz intro.4.gz lp.4.gz fd.4.gz ipfw.4.gz mailcap.4.gz fifo.4.gz isdn_audio.4.gz mem.4.gz [martin@maq martin]$ _ mouse.4.gz null.4.gz port.4.gz ram.4.gz random.4.gz sd.4.gz st.4.gz tty.4.gz ttyI.4.gz ttys.4.gz vcs.4.gz vcsa.4.gz zero.4.gz
Los nombres de los archivos, sin el prejo 4.gz corresponden a las man pages de la seccin 4.
Seccin 1: Comandos del usuario. Son comandos comunes que se pueden utilizar en el shell como por ejemplo ls, mv, etc. Seccin 2: Llamadas al sistema operativo (systems calls). Seccin 3: Funciones de libreras de lenguajes de programacin. Seccin 4: Dispositivos. Aqu estn las man pages de los dispositivos sobre el sistema de archivos (ver subseccin 1.2.1 (pg. 4). Seccin 5: Gramtica de los archivos de conguracin. Seccin 6: Juegos y demos. Seccin 7: Especiales del formato de las man pages (formato troff ). Seccin 8: Comandos de administracin del sistema. Seccin 9: X Windows System.
B.2.2.
SAG y NAG
Son guas completas de administracin que cubren los principales tem. SAG son las siglas de System Administrator Guide y NAG de Network Administrator Guide. A veces vienen en las distribuciones. De todas formas se las puede encontrar en Internet en http://www.linuxdoc.org. Son guas muy detalladas y no estn pensadas como tutorials. Adems son una buena fuente de informacin cuando lo que queremos hacer es aprender el funcionamiento del sistema para poder administrarlo.
B.2.3.
En Internet
Otra fuente de informacin es Internet. Recordemos que gracias a la facilidad de intercambio de informacin que hay en este medio, se hizo posible el nacimiento de Linux (seccin A.7 (pg. 52)). Algunos lugares donde podemos comenzar a buscar son:
55
http://www.linuxdoc.org Sitio que contiene casi todos los manuales (estn todos los anteriores) y links a revistas especializadas on-line (linux Gazette y Linux Focus). Este sitio publica uno de los proyectos para organizar y compilar la informacin sobre Linux, denominado Proyecto LDP (Linux Document Proyect) Grupos de usuarios Los grupos de usuarios fueron la base de la creacin de Linux. Por lo general estos grupos implementan listas de mails donde uno puede hacer preguntas. Estos grupos tienen pginas Web donde cualquiera puede asociarse a la lista o buscar en mails anteriores. Un buen ejemplo local es http://www.grulic.org.ar. Buscadores Hay mucha documentacin como por ejemplo HOWTOs y mini HOWTOs que son muy recientes y no estn publicados en http://www.linuxdoc.org. Para encontrarla existen muchos buscadores en Internet que nos pueden ayudar (google, yahoo, Altavista, etc).
B.2.4.
Otra fuente de informacin muy completa es la que ofrece la empresa Red Hat. Las mismas son especcas de esta distribucin pero pueden ser utilizadas para la administracin en general. Estn en http://www.redhat.com/docs/manuals/linux/RHL-<versin>-Manual. Algunas de ellas son: Installation Guide: Manual de Instalacin. Getting Started Guide: Manual de usuario. Customization Guide: Manual de Administracin. Reference Guide: Manual del sistema y administracin.
B.2.5.
Cada vez que tengamos que buscar informacin para resolver algn problema, el orden de bsqueda es, ms o menos, el que hemos seguido en esta seccin: 1. Primero busquemos en las man pages (es la forma ms directa de encontrar informacin). 2. Si no resolvimos el problema o si encontramos algo en ellas pero la informacin es insuciente busquemos en las info page. 3. Si todava no encontramos informacin, busquemos en los HOWTO. Suele suceder que, aunque no encontremos la informacin precisa que estamos buscando, haya algunos HOWTO que tratan sobre problemas similares con la cual podemos resolver nuestro problema. 4. Si todava no pudimos resolver el problema, es tiempo que revisemos la teora. Las SAGs y NAGs son una buena documentacin general donde se explica de manera general como administrar el sistema. Tambin se puede buscar en los manuales de Red Hat. 5. Si nuestro problema sigue sin resolver busquemos en Internet o hagamos la pregunta a algn grupo de usuarios. 56
Tarea B.2 Buscar bibliografa Que es el total que aparece en la primera lnea al ejecutar ls -l? Ayuda: Realizar el proceso de bsqueda recomendado
B.3.1.
rbol de procesos
Los procesos que estn corriendo en una mquina Linux se organizan en forma jerrquica de tipo rbol: un proceso llamado init se lanza apenas arranca la mquina, este a su vez lanza otros procesos hijos (por ejemplo los que atienden los ingresos de usuarios al sistema) que a su vez tienen la posibilidad de lanzar otros (por ejemplo el shell) y as sucesivamente. Tarea B.3 Ver rbol de procesos
pstree
Un comando que permite ver este rbol es el comando pstree. Ejecutemos el mismo en la consola escribiendo su nombre y oprimiendo la tecla [Enter]:
[martin@maq martin]$ pstree init-+-atd |-automount |-crond |-gpm |-keventd |-klogd |-login---bash---pstree |-lpd |-5*[mingetty] |-syslogd |-xfs -xinetd [martin@maq martin]$ _
Aqu podemos en la primera lnea de la salida de este comando el proceso init que es el padre de todo los dems. Tambin se muestra un hijo del anterior llamado login que a su vez tiene como hijo el shell, llamado bash. Este, tiene como hijo el proceso pstree que fue el que acabamos de activar. Otro proceso hijo de init es mingetty. Este es el que atiende los ingresos por cada una de las consolas virtuales. Ver que pstree los muestra de forma abreviada en la lnea que dice 5*mingetty; en realidad hay 5 procesos que atienden cada una de las consolas virtuales libres (recordemos que por lo general son 6 pero una esta siendo usada por nosotros). Ms adelante veremos con mas detalles como es por lo general esta jerarqua de procesos cuando arranca la mquina.
57
B.3.2.
Demonios
Al ejecutar el comando pstree se pueden ver procesos que no fueron lanzados por ningn usuario los cuales sirven para ejecutar tareas de mantenimiento del sistema de forma automtica o pueden tambin brindar servicios a usuarios locales o en red. Por ejemplo, la salida pstree muestra el proceso syslogd que es el que guarda la informacin del funcionamiento del sistema a travs del tiempo (logging). El proceso lpd hace de servidor local y remoto de impresin. Estos procesos son comnmente llamados demonios y existen en todos los sistemas Unix. Otros ejemplos de ellos son los servidores de mail o web.
B.3.3.
Todas las modicaciones del comportamiento del sistema y su administracin se hacen mediante la modicacin de archivos de texto. Con cualquier editor simple se pueden cambiar estos archivos de forma muy simple. Por supuesto, estos archivos poseen una gramtica que debe ser entendida, pero existe documentacin de sobra para poder hacerlo. Tarea B.4 Ver archivos de conguracin
cat
El comando cat vuelca por consola un archivos de texto. En la misma escribamos cat /etc/fstab y oprimamos [Enter]:
[martin@maq martin]$ cat /etc/fstab LABEL=/ / /dev/hda8 /boot /dev/fd0 /mnt/floppy none /proc none /dev/pts /dev/hda6 swap /dev/cdrom /mnt/cdrom [martin@maq martin]$ _
Este archivo sirve para congurar los puntos de acceso y otras caractersticas de los distintos dispositivos de almacenamiento.
B.3.4.
En esta subseccin daremos un pantallazo muy por arriba de la estructura del kernel de Linux. El kernel de este sistema operativo es de tipo monoltico. Esto bsicamente quiere decir, que todos los drivers para manejar dispositivos estn en l, en contraposicin a los sistemas con microkernel, que mantienen en el mismo, slo los administradores de procesos y de memoria. Este tipo de arquitectura tiene como una de sus deciencias que los drivers estn en memoria, a pesar de no estar siendo utilizados; por ejemplo el driver controlador de la lectora de CD estara siempre en memoria aunque no tengamos ningn CD puesto en ella para leer. Esta deciencia fue solucionada en Linux haciendo uso de los mdulos: parte del cdigo del kernel est en archivos separados, los cuales son cargados
58
en memoria al momento de ser utilizados. Una vez que no se necesiten ms pueden ser descargados de la misma. Un diagrama muy bsico del kernel es el de la gura B.1 (pg. 59).
programas del usuario
libreras interfaz con las llamadas al sistema mdulos sistema de control de procesos comunicacin entre procesos
subsistema de archivos
subsistema de archivos
planificador
buffer cach
buffer cach
gestor de memoria
caracter
bloque
caracter
bloque
device drivers
device drivers
control de hardware
59
cuya transferencia de informacin se realiza en bloques y de forma randmica, por ejemplo discos rgidos. Se puede ver en la gura B.1 (pg. 59) que estos drivers se comunican directamente con el sistema de archivos lo cual implementa la abstraccin en el mismo de los dispositivos, como ya se mencion. Otra caracterstica es que el kernel implementa un gestor de memoria unicado para los programas como para los buffers cach de los drivers de los dispositivos.
B.3.5.
Dadas ya vistas las caractersticas generales de Linux podemos explicar el proceso de arranque del sistema. Para hacerlo reiniciemos el sistema encendiendo la mquina, si estaba apagada, u oprimiendo la combinacin de teclas [Ctrl][Alt][Del], si ya estbamos corriendo Linux. Al realizarse este proceso se vern una serie de mensajes en la pantalla que muestran informacin sobre el mismo. Es muy til conocer como se sucede este proceso ya que de esta forma se podrn interpretar estos mensajes con ms facilidad y as poder detectar problemas en el arranque. Al arrancar la mquina el control de la misma la tiene la BIOS (Basic Input/Output System). Esta es un programa contenido en memoria no voltil que viene de fbrica en las computadoras. Despus de chequear algunos dispositivos, la BIOS ejecuta el cdigo de arranque que se encuentra en el primer sector del disco rgido llamado Master Boot Record (MBR). Este programa MBR lee el boot record de la particin activa. Normalmente esta seccin de la particin contiene instrucciones para cargar el sistema operativo. Linux permite que en una misma mquina coexistan varios sistemas (por ejemplo Window y Linux o varios Linux) pero solo uno a la vez puede tener el control de la computadora. Es por esto que las distribuciones de Linux vienen con un programa de arranque por lo general llamado lilo (o grub) el cual permite elegir, al momento de encender la mquina, el sistema operativo a utilizar. De esta forma el MBR carga el lilo, el cual muestra una pantalla grco o de texto donde el usuario puede ingresar el sistema operativo a utilizar. En el caso de pantalla en modo texto se muestra:
boot: _
Ingresando una de ellas se podr utilizar el sistema operativo deseado. Si solo oprimimos la tecla [Enter] se cargar la primera opcin, en este caso linux:
boot: linux dos boot: Loading linux....
En este momento el kernel de Linux se est cargando en memoria para ser ejecutado. Una vez que se termina de cargar el kernel comienza a identicar los dispositivos conectados. Al terminar esta operacin el kernel arranca el programa llamado init (el proceso padre del que ya habamos hablado). El mismo es el que se encarga de ejecutar los demonios. Al mismo tiempo init ejecuta los 6 procesos mingetty que esperan en cada una de las consolas virtuales a que ingrese un usuario. Como ya dijimos, para utilizar el sistema hay que ingresar el nombre de usuario (login) y el password. En este momento el proceso mingetty, que atiende el ingreso, deja su lugar al programa login el cual verica el login y el password, y si son correctos arranca el proceso shell. Todos estos procesos aparecieron cuando ejecutamos el programa pstree (pg. 57). 60
Apndice C
Preamble
The purpose of this License is to make a manual, textbook, or other written document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modications made by others. This License is a kind of copyleft, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
C.1.
This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The Document, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as you. A Modied Version of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modications and/or translated into another language. A Secondary Section is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Documents overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example,
61
if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The Invariant Sections are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. The Cover Texts are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Transparent copy of the Document means a machine-readable copy, represented in a format whose specication is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent le format whose markup has been designed to thwart or discourage subsequent modication by readers is not Transparent. A copy that is not Transparent is called Opaque. Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo inA put format, LTEX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modication. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only. The Title Page means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, Title Page means the text near the most prominent appearance of the works title, preceding the beginning of the body of the text.
C.2.
Verbatim Copying
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies.
C.3.
Copying in Quantity
If you publish printed copies of the Document numbering more than 100, and the Documents license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to t legibly, you should put the rst ones listed (as many as t reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each
62
Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
C.4.
Modications
You may copy and distribute a Modied Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modied Version under precisely this License, with the Modied Version lling the role of the Document, thus licensing distribution and modication of the Modied Version to whoever possesses a copy of it. In addition, you must do these things in the Modied Version: Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modications in the Modied Version, together with at least ve of the principal authors of the Document (all of its principal authors, if it has less than ve). State on the Title page the name of the publisher of the Modied Version, as the publisher. Preserve all the copyright notices of the Document. Add an appropriate copyright notice for your modications adjacent to the other copyright notices. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modied Version under the terms of this License, in the form shown in the Addendum below. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Documents license notice. Include an unaltered copy of this License. Preserve the section entitled History, and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modied Version as given on the Title Page. If there is no section entitled History in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modied Version as stated in the previous sentence. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the History section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. In any section entitled Acknowledgements or Dedications, preserve the sections title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. 63
Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. Delete any section entitled Endorsements. Such a section may not be included in the Modied Version. Do not retitle any existing section as Endorsements or to conict in title with any Invariant Section. If the Modied Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modied Versions license notice. These titles must be distinct from any other section titles. You may add a section entitled Endorsements, provided it contains nothing but endorsements of your Modied Version by various parties for example, statements of peer review or that the text has been approved by an organization as the authoritative denition of a standard. You may add a passage of up to ve words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modied Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modied Version.
C.5.
Combining Documents
You may combine the Document with other documents released under this License, under the terms dened in section 4 above for modied versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodied, and list them all as Invariant Sections of your combined work in its license notice. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections entitled History in the various original documents, forming one section entitled History; likewise combine any sections entitled Acknowledgements, and any sections entitled Dedications. You must delete all sections entitled Endorsements.
C.6.
Collections of Documents
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
64
C.7.
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modied Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an aggregate, and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Documents Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.
C.8.
Translation
Translation is considered a kind of modication, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.
C.9.
Termination
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
65
Copyright c YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled GNU Free Documentation License. If you have no Invariant Sections, write with no Invariant Sections instead of saying which ones are invariant. If you have no Front-Cover Texts, write no Front-Cover Texts instead of Front-Cover Texts being LIST; likewise for Back-Cover Texts. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.
66
67
ndice de tareas
1.1. Ingresar al sistema . . . . . . . . . . 1.2. Ver terminales virtuales . . . . . . . . 1.3. Ver en que directorio nos encontramos 1.4. Usemos ls . . . . . . . . . . . . . . . 1.5. Cambiemos de directorios . . . . . . 1.6. Creemos subdirectorios . . . . . . . . 1.7. Copiemos archivos . . . . . . . . . . 1.8. Renombremos archivos . . . . . . . . 1.9. Borremos archivos . . . . . . . . . . 1.10. Comando man . . . . . . . . . . . . . 1.11. Uso del comando apropos . . . . . . 1.12. Elegir la man page de una seccin . . 1.13. Uso de info . . . . . . . . . . . . . . 2.1. Cambiar un password . . . . . . . . 2.2. Leer mails recibidos . . . . . . . . . 2.3. Componer un mail . . . . . . . . . 2.4. Arrancar el X . . . . . . . . . . . . 2.5. Cambiar de terminal . . . . . . . . 2.6. Terminal X . . . . . . . . . . . . . 2.7. Arrancar Emacs . . . . . . . . . . . 2.8. Mens de Emacs . . . . . . . . . . 2.9. Editar texto . . . . . . . . . . . . . 2.10. Info pages en Emacs . . . . . . . . 2.11. Borremos el directorio . . . . . . . 2.12. less . . . . . . . . . . . . . . . . . 2.13. Opcin de less . . . . . . . . . . . 2.14. Creando enlaces simblicos . . . . . 2.15. Comando grep . . . . . . . . . . . . 2.16. Viendo el espacio utilizado en disco 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. Ver si tenemos instalado otro shell Volcado de la salida a un archivo . Comando du . . . . . . . . . . . . Comando sort . . . . . . . . . . . Usando pipes . . . . . . . . . . . Ver variables de entorno . . . . . Creacin de variables de entorno . Comando top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 6 6 7 7 8 8 8 10 11 11 12 13 14 17 18 18 18 19 20 21 22 23 23 23 24 24 25 27 28 29 29 30 31 32 32
3.9. Terminar un proceso . . . . . . . . . . 3.10. Ejecutando un proceso en background . 3.11. Poniendo un proceso en foreground . . 3.12. Deteniendo un proceso . . . . . . . . . 3.13. Despertando un proceso . . . . . . . . . 3.14. Comando kill . . . . . . . . . . . . . . 3.15. Mostrar uso de espacio en disco . . . . 3.16. Veamos los archivos passwd y group 3.17. Comando chmod . . . . . . . . . . . . B.1. B.2. B.3. B.4. Ubicacin de las man pages . . Buscar bibliografa . . . . . . Ver rbol de procesos . . . . . Ver archivos de conguracin . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
33 34 34 34 35 35 36 38 42 54 57 57 58
69
Bibliografa
[Al00] Adrian Pablo Al. La era de la estupidez. Linux Users Group Tucumn - Repblica Argentina, 2000. http://www.tucuman.linux.org.ar/textos/estu.html. [Cos98] Roberto Di Cosmo. Trampa en el http://www.dmi.ens.fr/~dicosmo/Piege/trampas. Cyberespacio, 1998.
[Dij76] Edsger W. Dijkstra. A Discipline of Programming. Prentice Hall Series in Automatic Computation. Prentice Hall, 1976. [Gib94] W. Wayt Gibbs. Softwares chronic crisis. Scientic American, page 86, September 1994. [Ray03] Eric Steven Raymond. The Art of Unix http://www.catb.org/~esr/writings/taoup/html. [Staa] [Stab] [Stac] Programming, 2003.
Richard Stallman. Por qu el Software debera ser libre. Free Software Foundation, Inc. http://www.gnu.org/philosophy/shouldbefree.es.html. Richard Stallman. Por Qu El Software No Debe Tener Propietarios. Free Software Foundation, Inc. http://www.gnu.org/philosophy/why-free.es.html. Richard Stallman. Revision del Proyecto GNU. Free Software Foundation, Inc. http://www.gnu.org/gnu/gnu-history.es.html.
[Tev01] Mario Jos Teves. Entender la losofa GNU. Linux Users Group Tucumn - Repblica Argentina, 2001. http://www.tucuman.linux.org.ar/textos/introfilosofia.html.
70