244
Linux Principios básicos de uso del sistema Este libro sobre GNU/Linux se dirige a cualquier informático que desee dominar los principios básicos de este sistema operativo o que quiera organizar y consolidar los conocimientos adquiridos con la práctica. Presenta de forma detallada los principios básicos del sistema y describe con precisión los comandos fundamentales para usar la línea de comandos shell, con ayuda de muchos ejemplos: el árbol de Linux, el manejo de archivos, el editor de texto, los permisos de acceso, la gestión de procesos, el shell Bash, los scripts Bash, la gestión de las cuentas de usuario, las herramientas Linux, etc. Los conceptos presentados en este libro son esenciales para entender el funcionamiento del sistema GNU/Linux para usuarios, y a su vez indispensables para el lector que quiera avanzar después en la administración de sistemas. Se puede utilizar como libro de referencia para que el lector adquiera la independencia necesaria tanto en entornos gráficos como en línea de comandos. Con esta nueva edición descubrirá las novedades y particularidades de las últimas distribuciones Linux disponibles. Los capítulos del libro: Prefacio – Introducción – Inicio de sesión y primeros comandos – Documentación – El árbol de Linux – Manipulación de archivos – Edición de archivos de texto - Vi – Permisos de acceso a los archivos – Administración de procesos – Shell Bash – Programación y scripts Bash – Administración de la cuenta de usuario – Herramientas de Linux – Configuración básica del sistema Nicolas PONS Nicolas Pons dirige una consultoría informática y dispone de la certificación del LPI (Linux Professional Institute). Asimismo, es responsable pedagógico y docente en un centro

Linux Principios Básicos de Uso Del Sistema 1

Embed Size (px)

Citation preview

Linux Principios bsicos de uso del sistemaEste libro sobre GNU/Linux se dirige a cualquier informtico que desee dominar los principios bsicos de este sistema operativo o que quiera organizar y consolidar los conocimientos adquiridos con la prctica.

Presenta de forma detallada los principios bsicos del sistema y describe con precisin los comandos fundamentales para usar la lnea de comandos shell, con ayuda de muchos ejemplos: el rbol de Linux, el manejo de archivos, el editor de texto, los permisos de acceso, la gestin de procesos, el shell Bash, los scripts Bash, la gestin de las cuentas de usuario, las herramientas Linux, etc.

Los conceptos presentados en este libro son esenciales para entender el funcionamiento del sistema GNU/Linux para usuarios, y a su vez indispensables para el lector que quiera avanzar despus en la administracin de sistemas. Se puede utilizar como libro de referencia para que el lector adquiera la independencia necesaria tanto en entornos grficos como en lnea de comandos.

Con esta nueva edicin descubrir las novedades y particularidades de las ltimas distribuciones Linux disponibles.

Los captulos del libro:Prefacio Introduccin Inicio de sesin y primeros comandos Documentacin El rbol de Linux Manipulacin de archivos Edicin de archivos de texto - Vi Permisos de acceso a los archivos Administracin de procesos Shell Bash Programacin y scripts Bash Administracin de la cuenta de usuario Herramientas de Linux Configuracin bsica del sistemaNicolas PONS Nicolas Pons dirige una consultora informtica y dispone de la certificacin del LPI (Linux Professional Institute). Asimismo, es responsable pedaggico y docente en un centro de formacin.Su slida experiencia en la administracin y desarrollo de sistemas, junto a su capacidad pedaggica, hacen que el lector tenga entre sus manos una obra realmente prctica sobre los principios bsicos para el manejo de un sistema Linux.

prefacioBienvenidos a este libro sobre el uso del sistema operativo GNU/Linux.Hoy en da, el uso de los sistemas informticos es omnipresente, llega a tal punto que en una entrevista de trabajo se puede llegar a dudar de la capacidad de uno para conducir un vehculo, pero se asume que ya sabe "usar" un sistema informtico! Dicho esto, aunque la mayora de lectores tenga el permiso B1, la cosa no est tan clara cuando se trata de manejar un vehculo de dos ruedas o un semirremolque... Aparquemos ese coche con el que nos sentimos tan seguros -no he dicho llevarlo al chatarrero- y aprendamos a manejar ese cachivache llamado Linux.Aprendo a conducir..."Nunca he cogido un volante y lo de las marchas me da miedo". Si es su caso, ha encontrado el manual adecuado para dar los primeros pasos. Como si fuera un profesor de autoescuela, le acompaar a lo largo de manual aportando detalles de cada concepto bsico. Al principio no tendr que preocuparse por cambiar de marcha, lo iremos aadiendo a medida que vayan pasando los captulos."S conducir desde hace tiempo porque aprend lo bsico con la ayuda de un familiar en la recta que hay delante de casa." Estupendo, muy valiente, pero puede ser peligroso cuando haya que hacer viajes largos o si aparece algn obstculo. En ese caso le ensear los trucos para aparcar a la primera, o le recordar que antes de adelantar hay que poner el intermitente... Aunque podamos alcanzar los 90 km/h en tercera, si entendemos un poco de mecnica nos daremoscuenta rpidamente de que lo mejor es cambiar de marcha."Me saqu el carnet y conduzco bien pero hasta ahora mis trayectos han sido casa-trabajo-supermercado-casa." Pues saquemos el mapa y disfrutemos conduciendo por carreteras secundarias o por autovas. Ser mucho ms agradable y til cuando haya un atasco en hora punta."Soy un gran conductor y s todo lo que hay que saber!" Yo tambin podra decirlo pero debo confesar que nunca me acuerdo en qu lado de la calle puedo aparcar cuando veo esa maldita seal de estacionamiento alterno... Por suerte llevo siempre el manual en la guantera.Paso a paso...Antes de coger el volante veremos qu tenemos entre manos y detallaremos los trminos utilizados en el resto del libro ubicndolos en su contexto histrico. Iremos del desarrollo del motor Linux a los acabados que nos ofrece el concesionario con los folletos para ensalzar la calidad del producto.Y como no puede esperar a escuchar el ruido del motor y no hay nada mejor que ir al grano, a partir del segundo captulo le dar las llaves para arrancar, y una vez en marcha empezaremos a tocar alguno de los botones del salpicadero.Para no perderse por el camino y dado que el modelo tiene un montn de opciones,lo ideal ser conocer, gracias al tercer captulo, que la documentacin est en un lugar concreto. As le ahorrar tirarse un cuarto de hora para cambiar una bombilla mientras se machaca el ndice en el interruptor hasta encontrar la lengeta adecuada!Los captulos cuatro, cinco y seis servirn para visitar ciudades con una densa red de carreteras. Despus de consultar el mapa, vamos a pasar por el laberinto de caminos e incluso aprenderemos a crear nuestro propio mundo... o simplemente a modificar el ya existente. El captulo siete explicar que no estamos solos en carretera, incluso podemos crear un circuito privado e invitar a los amigos a utilizarlo, y si se quiere, podemos utilizar varios vehculos a la vez; de ello hablaremos en el captulo ocho.Cuando se sienta cmodo al volante, veremos las lucecitas y botones del salpicaderoque no conoce pero que son de gran utilidad para nuestra comodidad. En los captulos nueve y diez veremos cmo ajustar la altura del asiento, encender las luces antiniebla y el limitador de velocidad automtico.Los amantes del tunning deben leer el captulo once para que su coche deje de ser uno ms!Por ltimo, el captulo doce ser la caja de herramientas y si le gusta la mecnica, tras ello encontrar los fundamentos de este arte en el ltimo captulo que puede que le conduzca a hacer unas prcticas en un taller.Los camioneros, una gran familia...Con la esperanza de no haberle perdido con mis metforas, sepa que si un da tiene una avera en carretera bastar con extender el pulgar: siempre habr un amable conductor que le ayudar.Buen viaje!Historia de UnixEn 1969, Ken Thompson, desarrollador de los laboratorios Bell (que forman parte de AT&T), invent el sistema Unix.K. Thompson haba trabajado previamente en el sistema Multics que permita, entre otras cosas, ocultar el sistema al usuario e incluso al programador; el objetivo era poder desarrollar nuevas aplicaciones haciendo abstraccin del sistema.Cuando Bell Labs se retir del proyecto Multics, empez a desarrollar su propio sistema en un equipo DEC PDP-7 salvado de la quema. Conserv ciertas ideas desarrolladas por Multics y aadi sus propias innovaciones: acababa de nacer Unix.

UNIX es la abreviatura conservada de UNICS y significa UNiplexed Information and Computing System.A su vez, Dennis Ritchie invent un nuevo lenguaje de programacin: el lenguaje C. En lnea con Unix, este lenguaje pretenda ser amigable, flexible y sin restricciones. Los laboratorios Bell, que conocan las herramientas desarrolladas, respaldaron a este do con una prima en 1971 para la elaboracin de un sistema de automatizacin de escritorio de uso interno.En realidad, los sistemas desarrollados hasta entonces estaban codificados en lenguaje ensamblador, prximo a la arquitectura de hardware, lo que les confera un alto rendimiento, pero obligaba tambin a reescribir el programa cuando el hardware obsoleto era reemplazado por equipos ms recientes. Comprendiendo que los avances tecnolgicos podan paliar una prdida de rendimiento y que las tcnicas de compilacin haban experimentado grandes progresos, D. Ritchie y K. Thompson dieron prioridad a la portabilidad del sistema. Al escribir la totalidad del sistema Unix en lenguaje C, consiguieron hacer funcionar el sistema en muchos equipos de tipos diferentes a partir de1974.As, un compilador de C desarrollado para cada equipo bastaba para hacer posibleel uso del mismo entorno en diferentes equipos; esto no se haba hecho nunca y abra grandes posibilidades.El desarrollo de aplicaciones ya independientes del hardware disminua considerablemente los costes de diseo para el usuario cuando era necesario renovar un equipo que se haba quedado anticuado. Adems, los programadores podan fabricarse cajas de herramientas de software y transferirlas de un equipo a otro sin tener que reinventarlo todo.Bajo el impulso de AT&T Unix se desarroll rpidamente. En 1980, este sistema estaba ya muy extendido en las universidades y en los centros de investigacin.La universidad de California en Berkeley (que utilizaba Unix desde haca variosaos) aport diferentes mejoras a este sistema operativo, actualmente ms conocido por el acrnimo de BSD (Berkeley Software Distribution). De hecho, los desarrollos "Berkeley" se publicaron paralelamente a los realizados por el grupo de trabajo de Unix de AT&T. Actualmente, la mayor parte de los sistemas operativos de tipo Unix en el mercado son una mezcla del cdigo originalde AT&T y de las "mejoras de Berkeley".GNUDebido a la imposibilidad de obtener y modificar el cdigo fuente del controlador de la impresora nueva que lleg a su departamento, Richard Matthew Stallman (conocido con el acrnimo de rms), entonces joven investigador en el laboratorio de Inteligencia Artificial del MIT (Massachusetts Institute of Technology), se concienci de los riesgos vinculados con software propietario; para oponerse a la comercializacin del software y ms particularmente a la falta de disponibilidad del cdigo fuente, inici entonces un movimiento para el desarrollo de software libre de derechos en 1984.

Desarrollador con talento, Richard Stallman es tambin el creador del editor de texto GNU Emacs, del compilador C de GNU y del depurador GNU; su sitio Web personal se encuentra en la direccin: http://www.stallman.org.Este movimiento se tradujo en la creacin de un proyecto que consista en reescribir completamente un sistema operativo libre. El modelo seguido era Unix, Unix y Richard Stallman llam a su proyecto GNU, que significa GNUs Not Unix.El proyecto GNU conoci rpidamente un gran xito y muchas herramientas y aplicaciones de Unix se desarrollaron a partir de cero (from scratch).Sin embargo, el ncleo libre de este sistema, llamado "Hurd", no se desarroll tan rpidamente. El proyecto GNU se limit durante cierto tiempo a ser una gama de herramientas completa de Unix sin ncleo.

El uso de acrnimos recursivos como "GNU" es habitual en el mundo del software libre . De forma general, los programadores de software libre tienen un gran sentido del humor y utilizan a menudo el guio para dar nombre a sus aplicaciones. As, la versin GNU del shell Bourne de Unix se llama el Bash, de Bourne Again SHell (o tambin Born Again SHell). Asimismo, el nombre Hurd significa Hird of Unix-Replacing Daemon y Hird significa a su vez Hurd of Interfaces Representing Depth, lo que forma un doble acrnimo recursivo!1. FSFRichard Stallman cre la Free Software Foundation con el objetivo de recoger fondos destinados a financiar el software libre. Para l, el trmino "libre" se refiere a la libertad, y no al precio. No se opone al hecho de vender programas, siempre que el cdigo fuente est disponible y todo programador est autorizado a modificar y redistribuir el software.Con este espritu, R. Stallman cre en 1985 la FSF (Free Software Foundation - http://www.fsf.org) para promover el apoyo financiero de su proyecto.2. CopyLeft y GPLPara llevar a buen puerto su proyecto y permitir la difusin del software libre, Richard Stallman implement una licencia especfica. Esta licencia evita que cualquiera, tras modificar unas pocas lneas de un software libre, se apropie del cdigo fuente y establezca un copyright.Los fundamentos del software libre se agrupan bajo cuatro libertades: La libertad de ejecutar el software para cualquier uso, comercial o no, y por cualquier persona u organizacin. La libertad de estudiar el funcionamiento del software y de adaptarlo a nuestras necesidades. Para ello, el acceso al cdigo fuente es un requisito. La libertad de distribuir copias, gratuitas o no. La libertad de mejorar el software, publicar esas mejoras para que toda la comunidadpueda disfrutar de ellas. Y como mencionamos en el punto 2, el acceso al cdigo fuente es un requisito fundamental.A esto, la licencia GPL (General Public License) creada por Richard Stallman aade la obligacin de seguir bajo licencia libre; esta nocin se llama "copyleft" (copia permitida) en oposicin a "copyright" (derechos de autor) e implica que cualquier software que utilice una parte del cdigo regido por la GPL se someta automticamente y por completo a los trminos de la GPL.As, todo programa desarrollado bajo los trminos de esta licencia ser totalmente libre de uso sin que pueda apropirselo nadie porque deber seguir siendo GPL. Segn esto, se podra redefinir el acrnimo GPL como Guaranteed Public for Life (garanta de seguir siendo pblico de por vida).

La FSF public el 29 de junio de 2007 la versin 3 de la GPL que permite adaptarse mejor a determinadas evoluciones de la informtica. Trata en particular del problema del software libre embebido cuyo cdigo fuente s est disponible, pero que no puede funcionar modificado en los equipos (appliances) sin una firma digital especfica; la GPL3 prev que los constructores deben dar todos los elementos necesarios al funcionamiento de una versin modificada de un software bajo esta licencia sobre los hardware vendidos. Una variacin a esta restriccin es no poder acceder a un servicio web por el mero hecho de modificar la aplicacin utilizada a pesar de la licencia libre; eso ya no es posible con la versin 3 de la GPL. Otro elemento clave de esta versin de la licencia es la proteccin de los usuarios de software libre contra las patentes de software; as, ya no son posibles acuerdos como el llevado a cabo entre Novell y Microsoft, que contienen la autorizacin para los clientes de Novell de utilizar el software libre que depende de patentes de Microsoft. Toda la informacinsobre esta ltima versin de la licencia libre GPL est disponible en la pgina http://gplv3.fsf.orgSin embargo, no hay que confundir un software bajo GPL con un software perteneciente al dominio pblico; este ltimo no siempre tiene un copyright, cualquiera puede apropiarse de l tras una modificacin menor. Asimismo, un "freeware" no es un software libre porque el cdigo fuente de la aplicacin no est disponible.Finalmente, existen otras licencias para los programas libres, con copyleft o no, como la X Consortium, la Artistic o bien la licencia BSD que, a diferencia de la GPL, no impone la difusin de las modificaciones aportadas.Condiciones generales de uso Copyright - Editions ENILinuxCuando utilizaba el sistema operativo Minix, desarrollado por Andrew S. Tanenbaum con el objetivo de mostrar a sus estudiantes el funcionamiento de un sistema de tipo Unix, en un proyecto de estudios sobre el modo protegido de los procesadores Intel 386, Linus Torvalds empez a desarrollar su propio ncleo Unix para aadirle nuevas funcionalidades.Por tanto, Linux (Linuss Unix) naci en 1991 gracias a un estudiante de la universidad de Helsinki. El xito de Linux se basa en una idea ingeniosa de su creador, L. Torvalds: colocar su proyecto bajo los trminos de la licencia GPL y proponer a todos los programadores y otros hackers de Internet que le ayudaran.

El trmino "hacker" no debe confundirse con el de "cracker", que designa a un individuo que intenta introducirse de forma ilegal en un sistema informtico para utilizar sus recursos o alterar sus datos. El trmino hacker representa aqu a los primeros programadores en los sistemas Unix convertidos sin duda en verdaderos "gurs" en su dominio y no al pirata informtico malintencionado.Fue en un grupo de discusin (Usenet) dedicado al sistema Minix donde L. Torvalds anunci pblicamente su proyecto, que por entonces slo era un pasatiempo sin pretensiones:From: [email protected] (Linus Benedict TorValds)Newsgroups: comp.os.minixSubject: What would you like to see most in minix?Summary: small poll for my new operating systemMessage-ID: Date: 25 Aug 91 20:57:08 GMTOrganization: University of HelsinkiHello everybody out there using minix - Im doing a (free) operating system (just a hobby, wont be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. Id like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).Ive currently ported bash(1.08) and gcc(1.40), and things seem to work.This implies that Ill get something practical within a few months, and Id like to know what features most people would want. Any suggestions are welcome, but I wont promise Ill implement them :-)Linus ([email protected])PS. Yes - its free of any minix code, and it has a multi-threaded fs.It is NOT portable (uses 386 task switching etc), and it probably neverwill support anything other than AT-harddisks, as thats all I have :-(.O, en nuestro idioma:Saludos a los usuarios de minix.Estoy haciendo un sistema operativo (libre), (es slo un pasatiempo, no serimportante y profesional como gnu) para sistemas 386 (486) AT clones. Se inici en abril y est empezando a tomar forma. Me gustara recibir algn comentario sobre las cosas que le gustan o no a la gente en minix, ya que mi sistemaoperativo se parece un poco (la misma disposicin fsica de los archivosdel sistema, debido a razones prcticas entre otras cosas).Ya he exportado bash (1.08) y gcc (1.40) y las cosas parecen funcionar. Eso implica que pondr algo en prctica dentro de unos meses y me gustara saberqu caractersticas desea la mayora de las personas.Cualquier sugerencia ser bienvenida, pero no prometo que puedan ser aplicadas :-)Linus ([email protected])PD. S, es libre de cualquier cdigo de minix y tiene un sistema de ficherosmultihilos.NO es portable (386 utiliza la conmutacin de tareas, etc.), yprobablemente slos er compatible con discos duros AT, ya quees todo lo que tengo :-(.El entusiasmo por Linux proviene en gran parte por el hueco que llen en el ncleo del proyecto GNU: por fin estaba disponible un sistema libre completo!

La mascota de Linux se llama "Tux" y es un pingino, animal especialmente querido por Linus Torvalds.1. CaractersticasLas principales caractersticas de Linux son las siguientes:MultitareaEst diseado para ejecutar varios programas al mismo tiempo (PID - Process ID, codificados en 32 bits). Utiliza un asignador para ejecutar varias acciones con un mismo procesador y tambin puede sacar partido de arquitecturas multiprocesador (hyperthreading, SMP - Symmetric Multi-Processors, NUMA - Non-Uniform Memory Access).MultiusuarioEste sistema permite el uso por parte de varias personas de los recursos que administra. Estas personas se distribuyen en grupos de usuarios y es necesaria una autenticacin para asegurar los derechos individuales. Los UID (Users ID) y GID (Groups ID) estn codificados en 32 bits.MultiplataformaLinux ha sido llevado a un gran nmero de arquitecturas de hardware, como Intel (del 386 al ltimo Pentium) y sus clones (AMD, Cyrix), SPARC, MIPS, Dec Alpha, PowerPC, PalmPilot, x86-64 (64 bits), etc.Encontramos tambin Linux en sistemas embebidos, como autmatas industriales o autorradios MP3 para el particular.Sistemas de archivosLinux soporta un gran nmero de sistemas de archivos, adems de los de tipo Unix, incluidos ISO9660 (CD-ROM), Windows 9x, NTFS y Macintosh. Soporta tambin las ACL (Access Control List) y las cuotas.Administracin de memoriaEn vez de efectuar un swap de procesos completos, el ncleo pagina la memoria virtual, lo que limita los accesos al disco cuando falta memoria fsica. Adems, la memoria compartida con copia en escritura permite que varios procesos utilicen el mismo espacio de memoria; cuando uno de ellos intenta escribir en la memoria, se realiza una copia de la pgina de memoria en otra parte. Este mecanismo optimiza el uso y la cantidad de memoria necesaria en el sistema.Adems, Linux soporta hasta 64 GB de RAM con las funciones de hardware PAE (Physical Address Extension) en arquitecturas 32 bits de Intel.RedesComo cualquier otro Unix, Linux posee una capa de red muy fiable y rpida. Soporta un amplio abanico de protocolos (TCP/IP versiones 4 y 6, Netware, Appletalk, Lan Manager, IPX, IPsec...) y de dispositivos de red (Ethernet, TokenRing, FDDI, Wi-Fi...).Adecuacin a numerosos estndares, como POSIXExiste por ejemplo un grupo de trabajo de la organizacin The Linux Foundation (http://www.linuxfoundation.org/) llamado LSB, de Linux Standard Base, que publica especificaciones y recomendaciones de estandarizacin de Linux. Grandes nombres de la informtica (IBM, Intel, Oracle, AMD, Google, HP, Novell, Red Hat, Dell, Sony...) contribuyen y apoyan este proyecto.CompatibilidadLinux es compatible con Unix System V (AT&T) y BSD a nivel de cdigo fuente, soporta las bibliotecas Unix en formato COFF y ELF y los binarios con SCO SVR3 y SVR4 con los mdulos de emulacin IBCS2.2. DistribucionesHablando con propiedad, Linux no es un sistema operativo, sino slo su ncleo (kernel). Por s solo no constituye la totalidad del sistema operativo; para ello, debe ir acompaado de las herramientas bsicas comunes a todos los Unix.Estas herramientas estndar son en su mayor parte programas libres, que se encuentran tambin en Linux, generalmente en una versin GNU con muchas mejoras respecto a los originales. Entre estos programas, destaca el compilador GNU C/C++, uno de los mejores compiladores disponibles actualmente.Tambin hay que recordar el conjunto de comandos accesibles directamente desde un shell, como grep, find, awk o bien editores de texto, como vi. Para ser exactos, en realidad hay que utilizar el trmino GNU/Linux para designar este sistema y no "Linux", como ocurre demasiado a menudo.Con la ayuda de otros desarrolladores, Linus Torvalds ha ido aadiendo cada vez ms herramientas y aplicaciones. Con el tiempo, diversas universidades, empresas y personas a ttulo individual han ido distribuyendo Linux con su propia seleccin de paquetes para acompaar al ncleo Linux. As nace el concepto de distribucin de Linux.Actualmente, crear y vender una distribucin de Linux puede representar un volumen de negocios de varios millones de dlares y es posible comprar las versiones en "caja" de grandes empresas como Red Hat o SUSE. Sin embargo, la mayor parte de estas distribuciones comerciales se pueden descargar libremente, as como las realizadas por grupos de personas apasionadas.Qu distribucin elegir?La eleccin de una distribucin depende de muchos criterios: el coste, la gama de programas propuestos, la compatibilidad de hardware, las herramientas administrativasproporcionadas...No existen "buenas" ni "malas" distribuciones de GNU/Linux, pero, para ayudar al principiante a elegir, este apartado presenta una clasificacin de las ms conocidas segn el tipo de necesidades a las que responden mejor.A fin de cuentas, la eleccin de una distribucin de Linux depender tanto de las preferencias como de las muy subjetivas costumbres de la persona que quiere iniciarse en la aventura de Linux.

La web DistroWatch (http://distrowatch.com) informa sobre la actualidad, descripcin y la clasificacin de las distribuciones GNU/Linux ms utilizadas. Asimismo, hay disponibles enlaces para descargarlas y para solicitar en lnea versiones grabadas en CD-ROM o DVD-ROM.1. Las distribuciones para el "gran pblico"Estas distribuciones proponen en su paquete de software la mayor parte de las herramientas que un usuario espera encontrar en su puesto de trabajo en red o en su equipo personal: incluyen un paquete de ofimtica, programas de comunicacinen red (navegador web, cliente de correo electrnico...), reproductores de multimedia y aplicaciones de creacin grfica.Las distribuciones propuestas a continuacin se pueden descargar libremente.FedoraEl proyecto Fedora lo distribuye el editor Red Hat, en sustitucin de su distribucin estrella, que ya no est disponible actualmente en GPL. Esta distribucin implementa muy regularmente las ltimas innovaciones del mundo del software libre.Aunque la frecuencia de salida de esta distribucin es elevada (una nueva versin cada seis a doce meses), ofrece une estabilidad y una calidad de integracin ejemplares.Representa, por tanto, una buena opcin para quien se inicia en busca de una distribucin fcil de instalar y que proponga una amplia gama de programas recientes.Sitio del editor: http://fedoraproject.orgopenSUSEEs la variante libre y gratuita de la distribucin profesional SUSE. Es de fcil manejo y cuenta con una gran comunidad de usuarios y desarrolladores.Sitio del editor: http://www.opensuse.orgUbuntuDistribucin derivada de Debian y de su sistema de paquetes. Es muy accesible, los programas libres que ofrece se integran con gran facilidad y dispone de una gran comunidad de usuarios.El entorno de escritorio es Unity, que es una capa que funciona sobre GNOME. Existen adems otras distribuciones como kunbuntu o lubuntu con KDE, Xfce o LXDE.Sitio del editor: http://ubuntu.com.2. Las distribuciones "mviles"No siempre resulta evidente cambiar de un da para otro las costumbres informticas. En ocasiones es preferible probar Linux antes de cambiar de arriba abajo la configuracin de un equipo. Por ello, algunas distribuciones no requieren instalacin en el disco duro.Estas distribuciones estn dotadas de un proceso muy avanzado de configuracin automtica del hardware. Su carga en memoria RAM se hace al iniciar el PC desde el CD-ROM (existen distribuciones arrancables a partir de una memoriaUSB).Adems, este tipo de distribucin permite llevarse y utilizar el mismo sistema en prcticamente cualquier tipo de PC.KNOPPIXKNOPPIX es un CD-ROM arrancable con un sistema operativo (GNU/Linux) para equipos de tipo PC. Gracias a un sistema de descompresin al vuelo, esta distribucin contiene unos 2 GB de programas (9 GB en la edicin DVD-ROM).Tiene, entre otros, los siguientes usos: CD-ROM de demostracin de Linux; CD-ROM de formacin; sistema de seguridad; sistema operativo permanente completo porque puede instalarse tambin en el disco duro; sistema mvil si se instala en una memoria USB.Sitio del editor: http://www.knoppix.orgUbuntuSe presenta como una distribucin para el gran pblico que se puede utilizar directamente desde un CD-ROM, aunque dispone de una herramienta de instalacin que ofrece al usuario la posibilidad de instalarlo directamente en el disco duro de la mquina.Sitio del editor: http://www.ubuntu.com3. Las distribuciones "profesionales"Varios editores ofrecen distribuciones con una orientacin profesional. Sus principales caractersticas son: una estabilidad mejorada al proponer en su paquete de software slo aplicaciones robustas y probadas; un tiempo de vida ms largo con un soporte del editor disponible ms tiempo (actualizaciones de software y correccin de errores); un servicio de soporte tcnico comercial en algunas de ellas; una especializacin en ciertos dominios de Internet (alojamiento de sitio web, cortafuegos, servidor de correo electrnico, herramientas de trabajo en grupo, gestin de parque informtico...).Red HatActualmente es una de las distribuciones ms extendidas. Conocida como RHEL (RedHat Enterprise Linux), su instalacin es relativamente sencilla gracias a la deteccin y autoconfiguracin de los dispositivos conectados. Existe tambin una versin escritorio (desktop) que facilita un entorno de trabajo profesional para los equipos de las empresas.Una de las ventajas de esta distribucin es que es reconocida por los grandes editores de software, en particular por los editores de SGBD (Sistemas de gestin de base de datos); en efecto, toda aplicacin profesional que funcione bajo Linux (Oracle por ejemplo) est disponible para esta distribucin.Red Hat, que se encuentra en el origen de la herramienta RPM (Red Hat Package Manager), utiliza este formato de paquetes.El editor ha puesto fin a la variante estndar bajo licencia de esta distribucin (la ltima era la versin 9.0) y ha optado por concentrarse en una versin "Enterprise" con mayor seguimiento en el tiempo para responder a las necesidades de las empresas.Sitio del editor: http://www.redhat.esSuSEEsta distribucin de origen alemn ofrece una serie de herramientas grficas de configuracin del sistema muy funcionales.Se la conoce tambin con el acrnimo SLES, de SuSE Linux Enterprise Server.Sitio del editor: http://www.suse.com/DebianEs la distribucin de Linux predilecta de los puristas del mundo libre porque no es comercial y ofrece nicamente programas libres en GPL.Tambin se considera la ms estable porque no interviene ninguna motivacin pecuniaria en la eleccin de los paquetes que se deben incluir en la distribucin.La contrapartida a estos puntos a favor es sin duda la falta de accesibilidad para una persona inexperta. La administracin de este sistema requiere un profundo conocimiento del sistema Linux y la configuracin normalmente se realiza mediante un editor de texto, en lugar de una herramienta grfica de ms alto nivel.Adems, esta distribucin cuenta con su propio formato de paquetes de software, con la extensin .deb.Sitio del editor: http://www.debian.orgSlackwareEs una de las primeras distribuciones de Linux, aparecida en 1995. Est considerada como muy estable, pero menos accesible para el nefito.Su paquete de software, ms ligero que en las anteriores, cabe en un CD-ROM (exceptuando los CD-ROM de seguridad, de instalacin en un sistema de archivos Windows y de fuentes, que no son necesarios).Los paquetes de esta distribucin son archivos .tgz o .tar.gz.Sitio del editor: http://www.slackware.com4. Las distribuciones "especializadas"Existen otras distribuciones Linux para usos concretos. Algunas estn especializadas en la recuperacin del sistema, en la enseanza, la seguridad o incluso en la puesta en marcha de servidores multimedia y de archivos.Estn disponibles en el sitio http://distrowatch.com en diferentes idiomas y para una amplia gama de arquitecturas.Convenciones tipogrficasEste apartado presenta rpidamente las convenciones tipogrficas utilizadas en esta obra.1. Estilos de letraLos comandos, opciones, nombres de variables y ejemplos de sintaxis se escriben con este tipo de letra: ejemplo de comando.Los nombres de archivos se escriben en el estilo siguiente: ejemplo de nombre de archivo.Los ejemplos de lnea de comandos se enmarcan as:ejemplo de lnea de comandosMientras que los extractos de archivos de texto tienen la forma:extracto de archivo de texto2. TecladoEl teclado de referencia de esta obra es de tipo 105 teclas espaol. El nombre y la ubicacin de las teclas son:

Una combinacin de teclas expresada con el carcter + como separador significa que hay que pulsar simultneamente las teclas enumeradas. Por ejemplo [Ctrl]+[Alt]+[F1] significa que el usuario tiene que pulsar simultneamente las teclas [Ctrl], [Alt] y [F1Consolas y terminales LinuxLos trminos "consola" y "terminal" se usan para definir el conjunto de dispositivos que permiten al usuario interactuar con el sistema; este conjunto generalmente se compone de una pantalla, un teclado y un ratn.1. Consolas virtualesPara ofrecer varios terminales al usuario desde un mismo conjunto de pantalla/teclado/ratn, Linux proporciona un cierto nmero de consolas virtuales.La ventaja de esta administracin es que se dispone tanto de varias terminales de "texto" para las tareas que deben efectuarse desde una lnea comandos, como de una consola "grfica" que permite lanzar herramientas con una interfaz ms evolucionada, como un programa de retoque de imgenes o un reproductor multimedia.Estas consolas virtuales, que generalmente son seis o siete en las distribuciones como Fedora, Ubuntu o Suse, se componen de cinco a seis terminales de texto y una consola grfica. Se representan por las teclas de funcin [F1] a [F7] del teclado (siendo [F1] o [F7] la consola grfica); para pasar de una a otra, hay que pulsar simultneamente las teclas [Ctrl]+[Alt]+[Fn] donde n es el nmerode la consola virtual.

No es obligatorio pulsar la tecla [Ctrl] para pasar de un terminal de texto a otro.Una consola virtual de texto, o simplemente un terminal de texto, se parece a esto:

La consola virtual grfica puede tomar diversos aspectos, segn el entorno de escritorio elegido y la versin de la distribucin de Linux; por ejemplo, en Fedora 19, con el entorno de escritorio KDE:

Y con el entorno GNOME en Ubuntu 13.04:

Es posible contar con ms (o menos) de seis consolas virtuales de texto y ms de una consola virtual grfica en Linux. La configuracin de este sistema no entra en el marco de este libro, por lo que consideraremos en lo sucesivo que disponemos de siete consolas virtuales, una de las cuales es grfica.2. Emuladores de terminalesBajo la interfaz grfica de Linux, se pueden escribir comandos de la misma manera que en un terminal de texto. Para ello, se utiliza un programa que "emula" la lnea de comandos de Linux dentro de una ventana.Hay muchos emuladores de terminal disponibles para Linux, como xterm, que es un estndar en todos los sistemas UNIX utilizados, o konsole, disponible en el entorno KDE:

La interfaz grfica de Linux facilita generalmente varios iconos o mens con un pictograma parecido a una pantalla o a una concha para ejecutar emuladores de terminal.3. Terminales remotosOtra manera de interactuar con la lnea de comandos de Linux es el uso de una conexin de red y un software de comunicacin remota, como Telnet o SSH, iniciado desde un terminal de texto.Desde ah es posible controlar un sistema Linux desde otro Linux, o incluso desde un equipo Windows utilizando una herramienta como PuTTY bajo licencia GPL y por tanto descargable libremente:Inicio de sesin, autenticacinEl sistema Linux es multiusuario, por lo cual hay que empezar por autenticarse en el equipo.La autenticacin sirve para comprobar que el usuario situado delante de la consola es quien pretende ser. Tiene que facilitar su identidad (nombre de inicio de sesin o login) y una prueba de sta (contrasea) para conectarse.Tanto si se trata del modo texto como del modo grfico, la contrasea escrita por el usuario no se muestra en pantalla.

Al introducir el nombre de inicio de sesin y la contrasea se deben respetar escrupulosamente maysculas y minsculas. De modo general, ya se trate de un nombre de archivo, de un login, de un nombre de variable o de un comando,la letra a no es igual que la letra A.Ejemplo de inicio de sesin en un terminal de textoUbuntu 13.04 ubuntu tty1ubuntu login: nicolasPassword:Last login: Fri May 10 14:34:53 CEST 2013 on tty1Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-19-generic x86 64)* Documentation:https://help.ubuntu.com/[nicolas@ubuntu:~]$Ejemplo de inicio de sesin en un terminal grficoSmbolo del sistema del shell (prompt)Una vez conectado a un terminal de texto, se inicia automticamente un programallamado shell. ste permite escribir los comandos que indicaremos ms adelante.El shell indica que est en espera de una instruccin presentando un smbolo del sistema (o prompt) al principio de la lnea.Segn la configuracin predefinida por el editor de la distribucin de Linux, este prompt puede tener varios aspectos; por ejemplo, en Red Hat:[nicolas@doe tmp]$En Debian o Ubuntu:nicolas@doe:~$O incluso:[root@doe bin]#El elemento ms importante en los prompt que acabamos de presentar es el ltimo carcter de cada uno: un $ o un # en la mayora de los casos. Este carcter indica que el usuario actual conectado es o bien un usuario cualquiera sin derechos especiales ($), o bien el administrador que cuenta con todos los derechos necesarios para la configuracin y el mantenimiento del sistema (#).

Los dems datos del prompt del shell son el nombre del usuario (delante de @), el nombre del equipo (doe) y el nombre de la carpeta actual (tmp, ~ y bin).Para simplificar los ejemplos siguientes, el prompt del shell se reducir a este ltimo carcter ($ o #), precedido eventualmente del nombre del usuario entre corchetes:$o:[nicolas]$Condiciones generales de uso Copyright - Editions ENISintaxis de los comandosEs importante conocer la sintaxis de los comandos para evitar un gran nmero de errores de escritura.En su expresin ms simple, sin opciones ni argumentos, un comando se lanza escribiendo su nombre en la lnea de comandos:$ comando

En los ejemplos siguientes, el $ situado al principio de lnea corresponde al prompt del shell y no debe ser escrito por el usuario.Si hay que especificar argumentos se aaden a continuacin del comando en la misma lnea, separados por un espacio:$ comando arg1 arg2

En la mayora de los casos, los argumentos son los nombres de los archivos sobre los que actuar el comando.Los tratamientos o la salida (visualizacin) de un comando GNU/Linux a menudose pueden modificar mediante una opcin. Estas opciones, especficas para cada comando, provienen habitualmente de las implementaciones originales y de las aportaciones de los diferentes UNIX anteriores a Linux. Por esta razn, para un mismo comando, puede haber varias decenas de opciones con diferentes sintaxis.Existen principalmente dos tipos de opciones: las opciones monocarcter y las opciones largas. Ambas deben escribirse separadas por un carcter de espacio a continuacin del comando y antes de los eventuales argumentos.

El carcter de espacio es un espacio o una tabulacin y puede repetirse variasveces, tanto entre el comando, las opciones y los argumentos como al principio y al final de la lnea.Las opciones monocarcterLas opciones monocarcter corresponden normalmente a las opciones heredadas de la familia UNIX y por lo general van precedidas por el carcter -:$ comando -o -p -t$ comando -o -p -t arg1 arg2El orden de las opciones no es relevante; las dos lneas siguientes son equivalentes:$ comando -o -p -t$ comando -t -o -pLas opciones monocarcter pueden agruparse siempre que se supriman los guiones y los caracteres de espacio intermedios:$ comando -o -p -t$ comando -optPara ciertos comandos con un gran nmero de opciones, las opciones monocarcter pueden introducirse con un + o incluso escribirse directamente:$ comando +o -pt$ comando optPor consiguiente, segn el comando empleado, estas tres lneas no tienen por qu ser equivalentes:$ comando -o$ comando +o$ comando oFinalmente, algunas opciones aceptan una cadena de caracteres como parmetro; en este caso, no hay forzosamente un espacio entre la opcin y su parmetro:$ comando -oparmetro -pt

De manera general, las opciones monocarcter introducidas con un - provienen de comandos desarrollados para los sistemas que responden a la normaUnix98, mientras que las que no requieren guin proceden de los UNIX de la familia BSD.Las opciones largasLas opciones largas generalmente son opciones aadidas en el marco de la reescritura del comando GNU. Son ms explcitas que las anteriores porque su nombre indica su utilidad y van precedidas por dos guiones --:$ comando --help$ comando --versionEn el caso de una opcin con parmetro, ste se separa con un espacio:$ comando --variable parmetroSeparacin de opciones y argumentosSegn su sintaxis, realizar la distincin entre opciones y argumentos puede ser difcil.Si una opcin a va precedida por un guin y la cadena de caracteres -b como argumento, la sintaxis siguiente puede crear confusin:$ comando -a -bEn este ejemplo, la cadena de caracteres -b se tratar como la opcin b introducida por un guin, y no como un argumento.Para evitar toda ambigedad, se separa las opciones de los argumentos en la lnea de comando intercalando dos guiones; en el problema anterior, esto nos da:$ comando -a -- -bCuando el shell encuentra -- en la lnea de comando, interpreta todas las cadenasde caracteres siguientes como argumentos del comando.Aplicaciones con interfaces grficasEs natural iniciar las herramientas grficas utilizando atajos como los iconos y los mens ofrecidos por el entorno de escritorio.Sin embargo, todas estas aplicaciones pueden ser instanciadas a partir de un comando escrito en la lnea de un emulador de terminal. As, la lnea siguiente -de la misma manera que el icono correspondiente- permite ejecutar el navegador web Firefox:$ firefox

Es bueno conocer el nombre de los comandos grficos y ejecutarlos de esa manera ya que puede que no existan los mismos atajos en unos u otros entornos de escritorio o en unas u otras distribuciones.Las opciones de comandos con interfaz grfica presentan una sintaxis diferente de las otras: una cadena de caracteres introducida por un solo guin; por ejemplo, para mostrar el reloj con un fondo rojo:$ xclock -bg redAtajos de teclado1. En modo textoLos atajos presentados aqu son los propios del shell Bash que se usa de modo predeterminado en Linux; funcionan tanto en una consola virtual de texto como en un emulador de terminal.Control de visualizacin[Ctrl]+[l]Borra la pantalla y coloca el prompt del shell en la primera lnea del terminal.

[Mays]+[RePg]Sube media pgina en la pantalla del terminal (igual que un deslizador); muy prctico para ver el resultado de un comando un poco largo. Es posible subir entre cinco y seis pginas en funcin de la configuracin del sistema.

[Mays]+[AvPg]Al contrario del atajo anterior, baja media pgina en la pantalla del terminal.

Edicin de la lnea de comando[Inicio]Mueve el cursor al principio de la lnea.

[Fin]Mueve el cursor al final de la lnea.

[Izquierda]Mueve el cursor un carcter hacia la izquierda.

[Derecha]Mueve el cursor un carcter hacia la derecha.

[Supr]Suprime el carcter a la derecha del cursor.

[Retroceso]Suprime el carcter a la izquierda del cursor.

[Ctrl]+[w]Borra la ltima palabra.

[Ctrl]+[u]Borra toda la lnea.

Historial de comandos[Arriba]Sube por el historial de comandos. Cada pulsacin de esta tecla permite mostrar el comando anterior de los que se han ejecutado anteriormente en el shell; a continuacin se puede modificar el comando antes de ejecutarlo de nuevo.

[Abajo]Baja por el historial de comandos. Esta accin es vlida slo si el usuario ha subido previamente por el historial con el atajo anterior.

[Ctrl]+[r]Busca una cadena de caracteres en el historial de comandos. La bsqueda se efecta a medida que el usuario escribe los caracteres de la cadena. Si la cadena est contenida en varios comandos del historial, una pulsacin ms de [Ctrl]+[r] permite proseguir la bsqueda subiendo ms por el historial.

[Ctrl]+[j] o [Esc]Termina una bsqueda iniciada con [Ctrl]+[r] y permite al usuario modificar la lnea antes de ejecutarla.

[Ctrl]+[g]Anula una bsqueda iniciada con [Ctrl]+[r].

Varios[Ctrl]+[c]Interrumpe el comando en curso sin esperar el fin de su ejecucin normal.

[Ctrl]+[d]Enva el carcter de fin de archivo (EOF o End Of File). Indica al comando en curso que la entrada por teclado ha finalizado.

[Ctrl]+[s]Marca una pausa en la visualizacin del terminal (equivale a una pulsacin de la tecla [Bloq Despl]).

[Ctrl]+[q]Prosigue la visualizacin de un terminal parado anteriormente (equivalente a una segunda pulsacin de la tecla [Bloq Despl]).

2. En modo grficoLos atajos de teclado disponibles en la interfaz grfica dependen del administrador de ventanas y del entorno de escritorio utilizado.Los entornos ms conocidos actualmente son KDE (K Desktop Environment) y GNOME (GNU Network Object Model Environment); su rpida evolucin y la diversidadde aplicaciones disponibles en GNU/Linux no permiten enumerar los numerosos atajos implementados.Condiciones generales de uso Copyright - Editions ENIPrimeros comandosEstas primeras aplicaciones proporcionan un buen ejemplo de uso de la lnea de comando de Linux y permiten efectuar operaciones esenciales del sistema; algunas de ellas se utilizarn de nuevo posteriormente en este libro.1. Identidad de los usuarios: who, whoami, fingerEl comando who enumera todos los usuarios conectados actualmente al sistema:[nicolas]$ whonicolas vc/1 Apr 3 01:04 root pts/0 Apr 2 22:42 (192.168.200.1)En este ejemplo, el usuario nicolas est conectado a la primera consola virtual de texto (vc/1 o tty1) desde el 3 de abril a las 1:04 y el administrador (root) est conectado desde un emulador de terminal (pts/0) remoto (192.168.200.1), desde el 2 de abril a las 22:42.Con la opcin -q, el propio comando who enumera nicamente los nombres de conexin y da el total del nmero de usuarios conectados actualmente:[nicolas]$ who -qnicolas root # usuario=2Por el contrario, el comando who am i que posee una sintaxis muy particular -la cual recuerda las preferencias de los productores cinematogrficos por los sistemas informticos que comprenden el lenguaje natural-, muestra nicamente la lnea que corresponde al usuario conectado:[nicolas]$ who am inicolas vc/1 Apr 3 01:04El comando whoami, por su parte, indica la identidad bajo la que se encuentra actualmente el usuario:[nicolas]$ whoami nicolasSiempre respecto a los usuarios del sistema, el comando finger muestra una descripcin ms precisa de una cuenta:$ fingerLogin Name Tty Idle Login Time Office Office Phonenicolas Nicolas Pons vc/1 1 Apr 3 01:04root root pts/0 Apr 2 22:42 (192.168.200.1)La columna Idle muestra el tiempo de inactividad de los usuarios (en minutos, si no se ha precisado ninguna unidad).Para obtener an ms precisiones sobre un usuario, se indica su nombre de conexin como argumento del comando finger:$ finger nicolasLogin: nicolas Name: Nicolas PonsDirectory: /home/nicolas Shell: /bin/bashOn since Mon Apr 3 01:04 (CEST) on tty1 1 minute 12 seconds idleNo mail.No Plan.Adems de la informacin de conexin del usuario nicolas, se constata aqu que: Su nombre real es "Nicolas Pons". Su directorio personal es /home/nicolas. Su shell predeterminado /bin/bash. Este usuario no tiene mensajes de correo en su buzn. No se indica nada en su archivo personal .plan.

Los usuarios inscriben en su archivo .plan ("planning") sus reuniones, citas y otra informacin que figura en su agenda.2. Cambio de contrasea: passwdEl comando passwd permite al usuario modificar su contrasea. A diferencia del comando anterior, ste es interactivo y solicita al usuario que escriba su antiguacontrasea antes de escribir dos veces la nueva:[nicolas]$ passwdChanging password for nicolas(current) UNIX password:Enter new UNIX password: Retype new UNIX password: passwd: password updated successfullyLas contraseas no aparecen al escribirlas y el sistema exige escribir una contrasea vlida; segn las reglas establecidas por el administrador, la contrasea deber incluir un mnimo de seis caracteres y estar compuesta de letras (minsculas o maysculas) y cifras.

Slo el administrador del sistema tiene autorizacin para cambiar la contrasea de otro usuario especificando el login de la cuenta de usuario como argumento en la lnea de comando.3. Conteo: wcDel ingls "Word Count", el comando wc permite contar el nmero de lneas, palabras y caracteres contenidos en un archivo:[nicolas]$ wc /etc/archivo 2 14 82 /etc/archivoLas opciones -l, -w y -c permiten contar respectivamente slo el nmero de lneas, palabras y caracteres contenidos en el archivo:[nicolas]$ wc -l /etc/archivo2 /etc/archivo[nicolas]$ wc -w /etc/archivo 14 /etc/archivo[nicolas]$ wc -c /etc/archivo 82 /etc/archivo4. Visualizacin: clear, echoEl comando clear borra la pantalla (la ventana virtual):[nicolas]$ clearEl comando echo devuelve la cadena de caracteres recibida como argumento:[nicolas]$ echo hola desde Barcelonahola desde BarcelonaPara ser ms exactos, devuelve todos sus argumentos separados por un solo espacio:[nicolas]$ echo esta vez hay varios espacios entre los argumentosesta vez hay varios espacios entre los argumentos

Aunque muy esquemticos, estos dos ltimos comandos tendrn su utilidad en la escritura de scripts shell.5. Tiempo: date, calComo su nombre indica, el comando date indica la hora del sistema:[nicolas]$ dateVie may 10 14:55:16 CEST 2013Tambin es posible dar formato a la salida, por ejemplo:[nicolas]$ date +"hoy es el %x"hoy es el 10/05/2013

El captulo Documentacin dar la posibilidad al lector de comprender y descubrir las muchas opciones de los comandos anteriores.El comando cal muestra un calendario. Si se llama sin parmetros, se muestra el calendario del mes actual:[nicolas]$ cal mayo 2013lu ma mi ju vi sa do 1 2 3 4 5 6 7 8 9 10 11 12 1314 15 16 17 18 19 2021 22 23 24 25 26 2728 29 30 31Con un argumento, el comando muestra el calendario completo del ao mencionado.Finalmente, si se llama al comando cal con dos argumentos, el primero es el mes que se quiere mostrar y el segundo, el ao en cuestin:[nicolas]$ cal 6 2008 junio 2008lu ma mi ju vi sa do 1 2 3 4 5 6 7 8 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30 31

El ao mencionado como argumento debe ser totalmente definido. As, el ao 08 corresponde al ao 8 d. C., y no a 2008, como se podra suponer!Condiciones generales de uso Copyright - Editions ENICerrar sesinUna vez que el usuario ha terminado el trabajo para el que se ha conectado al sistema Linux, debe cerrar sesin (o desconectarse) para liberar la consola que utiliza.Cerrar una sesin en un terminal de texto puede efectuarse de tres maneras: con el comando exit; con el comando logout (slo funciona a partir del shell ejecutado automticamente en la conexin); pulsando simultneamente las teclas [Ctrl]+[d].

La secuencia de teclas [Ctrl]+[d] corresponde al carcter de fin de archivo. Cuando el terminal recibe este carcter, considera que su "archivo" de entrada (el teclado) ha terminado y, por tanto, termina su ejecucin. Esta nocin de archivo de entrada se detalla en el apartado "Redirecciones" del captulo que trata del shell Bash.Por su parte, las interfaces grficas de Linux permiten cerrar la sesin mediante un men:ManualCon la mayor parte de distribuciones GNU/Linux se instala un manual electrnico.1. SeccionesEste manual trata diferentes puntos, como los comandos y su sintaxis, los archivos de configuracin del sistema, las bibliotecas estndar de programacin...Para ello, el manual se divide en nueve secciones principales: Seccin 1: comandos de usuario. Seccin 2: llamadas al sistema. Seccin 3: bibliotecas de programacin (libc, Perl, SSL, Tcl). Seccin 4: archivos especiales y dispositivos. Seccin 5: archivos de configuracin, formatos y formalismos. Seccin 6: juegos. Seccin 7: varios. Seccin 8: comandos de administracin. Seccin 9: rutinas del ncleo.Las secciones 1 y 8, que describen el conjunto de comandos disponibles en GNU/Linux, son las ms importantes.2. Comando manEl acceso a una pgina del manual se realiza lanzando el comando man y especificando, como argumento en la lnea de comandos, el trmino buscado. Este trmino corresponde al nombre del comando, del archivo o bien de la biblioteca de programacin para lo que se busca informacin.As, para mostrar la pgina del manual sobre el comando finger visto anteriormente:$ man fingerAparece la pgina siguiente:NOMBRE finger - buscar informacin sobre un usuario.SINOPSIS finger [-lmps] [user...] [user@host...] DESCRIPCIN finger muestra informacin sobre los usuarios. Opciones: -s finger muestra el nombre de login, el nombre real, el ordenador y la autorizacin de escritura ( * significa que la escritura sobre el ordenador est prohibida), el tiempo de inactividad, la fecha de login, la direccin y el nmero de telfono del trabajo. La fecha de login se muestra bajo el formato mes, da, hora, minutos, salvo si se remonta a ms de seis meses ya que, en este caso, se muestra el ao en lugar de la hora y los minutos....Navegacin en la pginaLa herramienta man contiene las mismas funciones de desplazamiento y bsqueda que los comandos less y vi descritos ms adelante. Cabe sealar que conviene saber que las flechas [Arriba] y [Abajo] permiten navegar por el documento y la tecla [q] cierra la pgina del manual.Descripcin de una pgina del manualLas pginas del manual electrnico se dividen en varios apartados (en el ejemploanterior: NOMBRE, SINOPSIS, DESCRIPCIN...). Los apartados ms frecuentesson:NOMBRENombre de la pgina del manual seguido de una descripcin sucinta de su contenido.

SINOPSISSintaxis del comando con sus opciones y argumentos. Los [] indican que la opcin o el argumento es opcional y ... indica que la opcin o el argumento anterior puede repetirse.

DESCRIPCINDescripcin detallada del comando. Tpicamente, contiene una explicacin de sus diferentes opciones.

EJEMPLOSComo su nombre indica, proporciona ejemplos de uso del comando.

VER TAMBINIndica las otras pginas del manual relativas al tema de la pgina presentada.

ERRORESAgrupa las observaciones respecto a las diferencias que se pueden encontrar entre el comando GNU presentado aqu y el mismo comando en otro sistema UNIX. Los errores y otros comportamientos anormales detectados pero no resueltos hasta el momento tambin se indican aqu.

TRADUCCINNombre del traductor de la pgina.

OtrosEn funcin del contenido, las pginas del manual pueden tener otros apartados distintos.

Bsqueda en las secciones del manualCuando el usuario busca un trmino en el manual, el comando man recorre las distintas secciones segn este orden: 1, 8, 2, 3, 4, 5, 6, 7, 9. De este modo, el trmino buscado se compara primero con los comandos existentes (comandos bsicos y comandos de administracin) antes de compararse con las llamadas al sistema y otros nombres de archivos de configuracin. Este orden de recorrido de las secciones se puede modificar en el archivo de configuracin /etc/man.config descrito ms adelante.Un mismo trmino puede aparecer en diferentes secciones del manual, por lo que se puede forzar la seccin de la pgina buscada como primer argumento de la lnea de comando. Por ejemplo, man signal devuelve la pgina relativa a la llamada al sistema signal (Seccin 2 del manual), mientras que man7signal devuelve la definicin de las diferentes seales que pueden ser recibidas por los procesos.Encontrar la informacin en el manualLa gran dificultad, para el usuario nuevo en Linux, es encontrar la informacin sin conocer el nombre de los comandos que busca.Para resolver este problema, el comando man acepta la opcin -k. Esta opcin indica que busque la cadena de caracteres pasada como argumento en las descripciones de las pginas del manual, y no slo en el ttulo de las pginas.As, para buscar las pginas del manual asociadas a "calcula", se puede escribir:[nicolas]$ man -k clculoabs (3) - Calcular el valor absoluto de un enteroacl_calc_mask (3) - Calculate the file group class maskallneeded (1) - Force the calculation of all fonts now neededbc (1) - An arbitrary precision calculator languagebc (1) - Un lenguaje de calculadora de precisin arbitrariacarg (3) - calculate the argumentcargf [carg] (3) - calculate the argumentcargl [carg] (3) - calculate the argumentconj (3) - calculate the complex conjugateconj (3) - Calcular el conjugado complejoconjf [conj] (3) - calculate the complex conjugateconjf [conj] (3) - Calcular el conjugado complejoconjl [conj] (3) - calculate the complex conjugateconjl [conj] (3) - Calcular el conjugado complejocvt (1) - calculate VESA CVT mode linesdc (1) - an arbitrary precision calculatordc (1) - una calculadora de precisin arbitrariadifftime (3) - calculate time difference...La visualizacin producida indica que el comando bc, en la seccin 1 del manual (cifra mostrada entre parntesis), permite efectuar clculos matemticos.Otra manera de obtener este resultado es ejecutar el comando apropos:[nicolas]$ apropos clculoabs (3) - Calcular el valor absoluto de un enteroacl_calc_mask (3) - Calculate the file group class maskallneeded (1) - Force the calculation of all fonts now neededbc (1) - An arbitrary precision calculator languagebc (1) - Un lenguaje de calculadora de precisin arbitrariacarg (3) - calculate the argumentcargf [carg] (3) - calculate the argumentcargl [carg] (3) - calculate the argumentconj (3) - calculate the complex conjugateconj (3) - Calcular el conjugado complejoconjf [conj] (3) - calculate the complex conjugateconjf [conj] (3) - Calcular el conjugado complejoconjl [conj] (3) - calculate the complex conjugateconjl [conj] (3) - Calcular el conjugado complejocvt (1) - calculate VESA CVT mode linesdc (1) - an arbitrary precision calculatordc (1) - una calculadora de precisin arbitrariadifftime (3) - calculate time difference...

El comando apropos y la opcin -k de man buscan en las definiciones de las pginas del manual, principalmente en ingls. Es preciso, pues, buscar la cadenade caracteres "print" en lugar de "impresin" para encontrar los comandos que permiten imprimir un documento.Finalmente, es posible escribir esto para obtener ms informacin sobre el comandoman:$ man man3. /etc/man.configEl archivo de configuracin del manual electrnico es /etc/man.config. El administrador del sistema puede editarlo para modificar el comportamiento predeterminado del comando man.Veamos un extracto de este archivo de configuracin; las lneas que empiezan con un # son comentarios:# Directorios que contienen las pginas de manual en el disco#MANPATH /usr/share/manMANPATH /usr/manMANPATH /usr/local/share/manMANPATH /usr/local/manMANPATH /usr/X11R6/man## Rutas de las herramientas subyacentes al comando man.#TROFF /usr/bin/groff -Tps -mandocNROFF /usr/bin/nroff -c -mandocPAGER /usr/bin/less -isrCAT /bin/cat## Orden de consulta de las secciones del manual#MANSECT 1:8:2:3:4:5:6:7:9:tcl:n:l:p:o## Las pginas del manual se guardan generalmente en un formato # comprimido, se indican aqu las herramientas de descompresin utilizadas # segn las extensiones de los archivos#.gz /usr/bin/gunzip -c.bz2 /usr/bin/bzip2 -c d

Algunas distribuciones de GNU/Linux como Fedora incluyen en su ltima versin un paquete llamado man-db para poder editar las pginas del manual. En ese caso, el archivo de configuracin utilizado es /etc/man_db.conf y su sintaxis, descrita en la pgina man 5 manpath, es similar al archivo /etc/man.conf presentado anteriormente.Documentacin Info1. Comando infoEl comando info es una herramienta que agrupa bsicamente la misma informacin contenida en las pginas del manual. Su principal ventaja, respecto a man, es que presenta los datos de forma jerrquica y con vnculos entre s.Para acceder a la documentacin "Info", basta con escribir el comando info:$ infoAparece la visualizacin siguiente:File: dir Node: Top This is the top of the INFO tree This (the Directory node) gives a menu of major topics. Typing "q" exits, "?" lists all Info commands, "d" returns here, "h" gives a primer for first-timers, "mEmacs" visits the Emacs topic, etc. In Emacs, you can click mouse button 2 on a menu item or cross reference to select it.* Menu:Texinfo documentation system* Info: (info). Documentation browsing system.* Pinfo: (pinfo). curses based lynx-style info browser.* Texinfo: (texinfo). The GNU documentation format.* info standalone: (info-stnd). Read Info documents without Emacs.* infokey: (info-stnd)Invoking infokey. Compile Info customizations.* install-info: (texinfo)Invoking install-info. Update info/dir entries.* makeinfo: (texinfo)Invoking makeinfo. Translate Texinfo source.* texindex: (texinfo)Format with tex/texindex. Sort Texinfo index files.* pdftexi2dvi: (texinfo)PDF Output. PDF output for Texinfo.-----Info: (dir)Top, 2089 lines --TopWelcome to Info version 4.11. Type ? for help, m for menu item.Nos encontramos aqu en la raz de la jerarqua (File: dir) y los enlaces (precedidos por el carcter *) apuntan a los diferentes nodos de los archivos de documentacin "Info".

Un nodo puede considerarse como un captulo dentro de un archivo de documentacin.Puede existir un rbol de nodos, y por lo tanto captulos y subcaptulos, en un mismo archivo de documentacin.Para llamar al comando info se puede indicar, como en el comando man, un argumento con el trmino buscado en la documentacin:$ info dateEsto devuelve:File: coreutils.info, Node: date invocation, Next: uname invocation, Up: System context21.1 `date: Print or set system date and time==============================================Synopses: date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [ MMDDhhmm[[CC]YY][.ss] ] Invoking `date with no FORMAT argument is equivalent to invoking itwith a default format that depends on the `LC_TIME locale category.In the default C locale, this format is `+%a %b %e %H:%M:%S %Z %Y,so the output looks like `Thu Mar 3 13:47:51 PST 2005. Normally, `date uses the time zone rules indicated by the `TZenvironment variable, or the system default rules if `TZ is not set.*Note Specifying the Time Zone with `TZ: (libc)TZ Variable. If given an argument that starts with a `+, `date prints thecurrent date and time (or the date and time specified by the `--date--zz-Info: (coreutils.info.gz)date invocation, 40 lines --TopWelcome to Info version 4.11. Type ? for help, m for menu item.En esta ocasin, nos encontramos en el nodo "date invocation" (Node: date invocation) del archivo de documentacin "coreutils" (File: coreutils.info).

Si no existe documentacin "Info" para el trmino buscado, el comando info se limita a mostrar la pgina del manual electrnico relativa a dicho trmino y se observa al principio de la pgina la indicacin File: *manpages*. Si no corresponde ninguna pgina del manual a este trmino, entonces el comando equivale a una llamada sin argumentos a info.Organizacin de la documentacinComo se ha indicado anteriormente, la informacin contenida en los archivos de documentacin "Info" est vinculada internamente y se organiza en forma de rbol. Para saber el lugar donde se encuentra en la documentacin, la primera lnea de la vista proporciona las indicaciones siguientes:FileNombre del archivo de documentacin "Info" actual.

NodeNodo (o captulo) visible actualmente.

NextNodo siguiente o primer subnodo segn el caso.

PrevNodo anterior o nodo padre segn el caso.

UpNodo (o captulo) padre; el nodo visible actualmente (Node) es un subcaptulo de este nodo (Up).

NavegacinVarios comandos (teclas del teclado), bajo info, permiten pasar de un nodo a otro; destacan:[n]Nodo siguiente (Next).

[p]Nodo anterior (Prev).

[u]Nodo padre (Up).

[t]Nodo raz del archivo de documentacin (Top).

[l]Volver al ltimo nodo visitado (Last).

Para consultar la informacin de un nodo que puede ocupar varias pantallas se utilizan las teclas siguientes:[Espacio]Baja pantalla por pantalla en el nodo o pasa al nodo siguiente, segn el caso.

[Supr]Sube pantalla por pantalla en la pgina o pasa al nodo anterior, segn el caso.

[b]Vuelve a la primera lnea del nodo (Beginning).

[e]Va a la ltima lnea del nodo (End).

[Ctrl]+[n]Baja una lnea en el nodo.

[Ctrl]+[p]Sube una lnea en el nodo.

Adems, en la informacin mostrada se encuentran asimismo tambin vnculos de hipertexto a los nodos inferiores (llamados tambin "men") o a otros nodos (llamados tambin "referencias cruzadas"). Para acceder y seguir estos vnculos (precedidos por * para los mens y por *node para las referencias cruzadas):[m] Muestra el nodo referenciado por el men .

[F] Muestra el nodo referenciado por la referencia cruzada .

[Tab]Coloca el cursor en el vnculo siguiente.

[Ecs], [Tab]Coloca el cursor en el vnculo anterior.

[Entr]Muestra el nodo referenciado por el vnculo debajo del cursor.

Para aclarar esta organizacin, veamos un esquema recapitulativo de la estructura de la documentacin "Info":

ConsideracionesAunque el comando info es ms evolucionado que el comando man y la escritura de la documentacin asociada es ms fcil, se utiliza preferentemente el manual en lnea.Las pginas del manual estn traducidas en su mayor parte y la navegacin impuesta por el comando info es bastante compleja. stas parecen ser buenas razones.Es cierto que un sistema GNU/Linux pide probablemente ms esfuerzo al usuario, especialmente debido a la internacionalizacin de los programas y su documentacin.Pero en cuanto a la ergonoma del comando info, existen otras herramientas, como pinfo, que proponen una exploracin de la documentacin "Info" o lynx que es un navegador web de lnea de comandos.Ejemplo de visualizacin con pinfo:

Para navegar dentro de pinfo:[Av Pg]Baja una pantalla en el nodo mostrado.

[Re Pg]Sube una pantalla en el nodo mostrado.

[Abajo]Selecciona el vnculo siguiente en el nodo.

[Arriba]Selecciona el vnculo anterior en el nodo.

[Derecha]Sigue el vnculo seleccionado.

[Izquierda]Vuelve al nodo anterior.

[q]Salir de pinfo.

Condiciones generales de uso Copyright - Editions ENIOpcin --help de los comandos en LinuxAdems de las pginas del manual y de la documentacin "Info" que ya hemos visto, los comandos GNU que se encuentran en Linux aceptan habitualmente la opcin --help.Los comandos invocados con esta opcin devuelven una sucinta ayuda que describe la sintaxis general del comando y las opciones ms utilizadas; por ejemplo:$ wc -helpUsage: wc [OPCION]... [ARCHIVO]... or: wc [OPCION]... --referencia=ARCHIVO-R ARCHIVO...Muestra el nmero de nuevas lneas, palabras y bytes para cada ARCHIVO, y el nmero total de lneas si se especifica ms de un ARCHIVO. Sin ARCHIVO, o cuando ARCHIVO es -, lee la entrada estndar. -c, --bytes muestra el nmero de bytes -m, --chars muestra el nmero de caracteres -l, --lines muestra el nmero de lneas --files0-from=F read input from the files specified by NUL-terminated names in file F -L, --max-line-length print the length of the longest line -w, --words print the word counts --help muestra la ayuda --version muestra el nombre y la versin del programaComunicar las anomalias a .

Esta ayuda resulta muy prctica cuando se conoce ya el comando que hay que emplear, pero se tienen dudas sobre la sintaxis o el nombre de una opcin.Documentacin HOWTOA su manera, los documentos HOWTO aportan una mina de informacin al usuario que quiera dominar el sistema operativo con el que trabaja.Estos documentos de varias pginas se refieren a temas especficos, como la impresin con Linux, la configuracin de red del sistema o bien la administracin de dispositivos SCSI.

Tambin existen otros documentos, llamados "mini-HOWTO", ms sucintos que los otros HOWTO.Por citar slo uno de estos documentos, el HOWTOIndex recoge todos los HOWTO existentes y los clasifica por categoras, dando una descripcin rpida de cada uno.Estos archivos estn disponibles en diferentes formatos:.txtArchivos en formato de texto.

.psArchivos PostScript imprimibles directamente en las impresoras que reconocen este formato.

.pdfArchivos en formato Adobe PDF que pueden leerse con la herramienta xpdf en la interfaz grfica.

.htmlPginas HTML legibles desde cualquier navegador web.

.tex y .dviFormatos de archivo asociados a las herramientas de paginacin y publicacin TeX y LaTeX.

Cuando estn instalados en el equipo, se colocan generalmente en el directorio /usr/share/doc/HOWTO. Pero en este caso, el espacio ocupado es bastante notable. Por otra parte, algunos editores como Red Hat slo los proporcionan en un CD-ROM separado de la distribucin.Si no se encuentran en el equipo, es posible consultarlos en uno de los numerosos sitios espejo presentes en Internet (vase, en este captulo, Internet - Sitios)./usr/share/docAdems de toda la documentacin vista hasta ahora, los desarrolladores y editoresde programas proporcionan generalmente una serie completa de documentosque describen su obra.Esta documentacin se encuentra en subdirectorios de /usr/share/doc/:

[nicolas]$ ls /usr/share/docabattis-cantarell-fonts-0.0.10.1abrt-2.0.19acl-2.2.51aic94xx-firmware-30akonadi-1.8.1alsa-firmware-1.0.25alsa-lib-1.0.26alsa-plugins-pulseaudio-1.0.26alsa-tools-1.0.26.1alsa-utils-1.0.26anaconda-yum-plugins-1.0anthy-9100happer-0.8.0apr-1.4.6apr-util-1.4.1...Al igual que los HOWTO, los archivos se encuentran en diferentes formatos, por ejemplo:[nicolas]$ pwd/usr/share/doc[nicolas]$ ls pam-1.1.6Copyright html Linux-PAM_SAG.txt rfc86.0.txt txts[nicolas]$ ls iproute-3.6.0COPYING README.decnet README.iproute2+tcREADME README.distribution README.lnstatInternet1. SitiosInternet es una inmensa fuente de informacin; veamos una breve seleccin de sitios relacionados con los sistemas GNU/Linux.Genricoshttp://www.gnu.org/home.es.html Ttulo: GNUs Not Unix Idioma: multilinge Descripcin: sitio oficial del proyecto GNU.http://www.tldp.org Ttulo: The Linux Documentation Project Idioma: multilinge Descripcin: sitio oficial que agrupa toda la documentacin de Linux actualizada: HOWTO, guas, FAQ, pginas de manual...Editoreshttp://www.redhat.es Ttulo: Red Hat Espaa Idioma: espaol Descripcin: editor de las distribuciones Red Hat Enterprise.http://fedoraproject.org/ Ttulo: Fedora Idioma: multilinge Descripcin: sitio oficial del proyecto Fedora.http://www.debian.org Ttulo: Debian Idioma: multilinge Descripcin: editor de la distribucin del mismo nombre.http://www.suse.com/es-es/ Ttulo: SuSE Idioma: multilinge Descripcin: editor de las distribuciones SuSE Linux.http://es.opensuse.org/ Ttulo: openSUSE Espaa Idioma: espaol Descripcin: sitio de la distribucin libre openSUSE.http://ubuntu.com/ Ttulo: Ubuntu Idioma: ingls Descripcin: editor de la distribucin del mismo nombre.2. Grupos de discusinDe entre todos los grupos de discusin (o newsgroups) existentes en Usenet, un cierto nmero est dedicado a Linux y a las aplicaciones GNU. Por ejemplo, los grupos de la jerarqua es.comp.os.linux.* son generalmente relevados por los proveedores de acceso a Internet.Programas como tin (en lnea de comandos) o knode (con una interfaz grfica amigable) permiten aprovechar estos grupos de discusin.

Buzones pblicos en los que todo el mundo puede enviar o leer mensajes, es el lugar apropiado para obtener ayuda cuando toda la documentacin vista anteriormenteno basta para resolver un problema.Existen ciertas reglas de uso en estos grupos. Evite, por ejemplo, hacer una pregunta sobre un problema resuelto anteriormente; para ello, conviene consultar los mensajes anteriores y las FAQ (Frequently Asked Questions), documentos que contienen las preguntas hechas con frecuencia acompaadas de sus respuestas.Adems, para tener ocasin de obtener una respuesta correcta ms rpidamente: Enve la pregunta al grupo de discusin adecuado. Primero busque en la documentacin presentada a lo largo de este captulo: normalmente est mal visto preguntar el nombre de una opcin para un comandocuando un simple uso del comando man bastara. Facilite el mximo de informacin para orientar a las personas que quieran responderle: "No consigo imprimir" no permitir obtener ayuda, mientras que "No consigo imprimir a pesar de haber ledo el Printing-HOWTO. Utilizo la distribucin X con una impresora Y. Los mensajes de error son Z" ser sin duda ms fructfero. Sea educado, evidentemente. El rbol de Linux Lo ms difcil, cuando se empieza con Linux, es sin duda conocer la ubicacin de los archivos y la utilidad de los directorios presentes en el rbol. Este captulo propone una panormica general del sistema de archivos de Linux. Organizacin Presentado en forma de rbol, el sistema de archivos de Linux es una jerarqua de directorios que tienen como nica raz / (barra). Al instalar una distribucin de Linux, es posible crear, adems de la particin principal que contiene /, otras particiones dedicadas a ciertos directorios del rbol. Sin embargo, los directorios indispensables para iniciar el sistema deben estar en la misma particin que / y no pueden, por tanto, instalarse en una particin separada; en el esquema anterior, esos directorios esenciales aparecen en gris en el esquema siguiente. En la medida de lo posible, se trazar una analoga entre el rbol de Linux y los directorios clsicos del sistema Microsoft Windows; esto permitir orientarse mejor a los usuarios de este extendido sistema. El rbol de archivos de Linux respeta, exceptuando algunos directorios, el FHS (Filesystem Hierarchy Standard) implementado con el objetivo de homogeneizar la estructura de los sistemas de archivos de Unix. Este documento detalla el nombre y el contenido de los directorios; se encuentra disponible en la direccin http://www.pathname.com/fhs.Directorios principales1. /bin, /sbin, /libEl directorio /bin contiene los ejecutables (binarios) bsicos necesarios para el funcionamiento del sistema; los comandos como date estn aqu.Por su parte, todos los comandos fundamentales de administracin del sistema estn en /sbin ("sper" binarios). Aqu se encuentran, por ejemplo, los comandosde particionado y de administracin de dispositivos de red.Los binarios compilados para Linux utilizan bibliotecas de funciones, lo que permite aligerar en gran medida el tamao de los archivos porque varios ejecutables podrn utilizar la misma porcin de cdigo contenida en una de estas bibliotecas. El directorio /lib (libraries) rene las bibliotecas utilizadas por los binarios incluidos en /bin y /sbin.

En comparacin con un sistema Windows, estos tres directorios corresponden a los ejecutables contenidos en C:\windows con sus bibliotecas (archivos.dll) ubicados en C:\windows\system.Estos tres directorios son vitales para el sistema y deben estar en la misma particin que /.2. /bootEste directorio contiene el ncleo Linux y otros archivos ejecutados al arrancar el sistema.Por razones no detalladas en esta obra, este directorio puede disponer de una particin distinta.3. /devUna de las particularidades de Linux es presentar, en forma de archivos, los dispositivos conectados al sistema.Este directorio contiene archivos como /dev/fd0 y /dev/cdrom que representan respectivamente la unidad de disquetes y la unidad de CD-ROM.

La forma de acceder a los archivos presentes en estos soportes extraibles se aborda en el apartado que trata de los montajes.Siguiendo en el mbito de los archivos especiales, existen en este directorio archivos como /dev/null; ste es en cierto modo una papelera a la que se pueden redirigir todos los datos que no se quiera conservar. Su uso se detallar en el captulo sobre el Shell Bash.La particularidad de los archivos presentes en /dev no guarda relacin con sus nombres, sino con sus nmeros mayor y menor. Estos dos nmeros indican al ncleo Linux el tipo de dispositivo vinculado al archivo; se muestran con el comandols -l que se detallar en el captulo Manipulacin de archivos.Los archivos de este directorio sirven para acceder a los dispositivos o para implementar funcionalidades importantes para el sistema, por lo que /dev debe estar en la misma particin que /.4. /homeEl directorio /home contiene los directorios personales de los usuarios del equipo. As, para las cuentas de usuario nicolas, linus y richard, existirn los directorios /home/nicolas, /home/linus y /home/richard.En su directorio personal es donde un usuario guarda sus archivos de datos; en l se inscriben los archivos de configuracin propios del usuario. Por ejemplo, la configuracin del editor Vi, para el usuario nicolas, se encuentra en el archivo /home/nicolas/.exrc.

El directorio personal del usuario de Linux puede compararse a la carpeta "Mis documentos" de un sistema Windows.Al instalar el sistema, el administrador dedica habitualmente una particin a este directorio para separar fsicamente los datos de usuario y los datos del sistema.5. /rootEste directorio tiene la misma funcin que el anterior, pero est reservado al usuario root que es el administrador del equipo.No se encuentra en /home por razones de seguridad y porque no puede estar en una particin distinta como /home.6. /tmpComo su nombre indica, el directorio /tmp est previsto para acoger los archivos temporales.Todos los usuarios del sistema pueden escribir en este directorio, pero el administrador planifica generalmente una limpieza automtica de este directorio a intervalos regulares. El tiempo de vida de un archivo presente en este directorio se estima en unas horas o en unos das.7. /lost+foundEste directorio se crea automticamente en cada particin de Linux al arrancar el sistema. Lo utiliza la herramienta de verificacin fsck (File System ChecK) para guardar los archivos recuperados tras un incidente en el sistema; por ejemplo, tras un corte de corriente imprevisto.Este directorio debera, si todo va bien, permanecer vaco.8. /mnt/mnt es un directorio vaco o que contiene una serie de directorios vacos predefinidos. Se reserva para el montaje de sistemas de archivos de terceros.Existen generalmente los subdirectorios /mnt/floppy y /mnt/cdrom, previstos para acceder respectivamente a los disquetes y a los CD-ROM.

Las distribuciones recientes prevn tambin puntos de montaje en /media para los sistemas de archivos que provienen de medios extraibles (disquetes, CD-ROM...) y en /misc para los rboles montados automticamente por el montador automtico del sistema.9. /proc/proc es un sistema de archivos virtual que representa el estado del sistema en curso de ejecucin.No ocupa espacio en el disco; slo existe en memoria RAM y cada archivo que contiene da acceso a informacin del sistema, como el uso actual de la memoria, la lista de dispositivos detectados en los diferentes buses del equipo (ISA, PCI, USB...) o bien el enrutamiento de los paquetes de red.

El anlisis de los archivos presentes en /proc es responsabilidad del administrador del sistema y puede ignorarse en el marco del uso diario del puesto de trabajo.Adems, por cada proceso iniciado en el sistema, existe un subdirectorio que lo caracteriza en /proc. Comandos como ps y top, abordados ms adelante en este libro, utilizan esta informacin.Todos estos datos estn presentes en archivos "virtuales", por lo que no se reservaninguna particin particular a /proc.10. /sysA la manera de /proc, /sys es un sistema de archivos virtuales que no ocupan espacio en el disco. Su meta es representar en forma de archivos los diferentes perifricos e indicar caractersticas y estados de hardware.11. /usrEs el directorio ms voluminoso creado al instalar el sistema; /usr contiene todos los programas que no estn en /bin y /sbin. Tambin contiene la documentaciny las fuentes de los programas.

Este directorio corresponde aproximadamente a la carpeta c:\archivos de programa de Windows.Se puede crear una particin especial para este directorio al instalar el sistema./usr/bin, /usr/sbin, /usr/libEstos tres subdirectorios contienen binarios (y bibliotecas asociadas) suplementarios, pero no esenciales para el uso o la administracin bsica del sistema./usr/gamesComo su nombre indica, los juegos instalados en el sistema deberan encontrarse aqu./usr/includeAqu se encuentran las definiciones de las distintas bibliotecas utilizadas en programacin. El contenido de este directorio slo es necesario en la compilacin de programas./usr/localEste directorio est dedicado a las aplicaciones y documentos propios del equipo local; los programas compilados especficamente para el sistema se encuentran, pues, aqu.Este directorio se divide en subdirectorios bin, lib, .../usr/shareAdems de los archivos de internacionalizacin con la traduccin de los mensajes mostrados por las aplicaciones (/usr/share/locale), este subdirectorio contiene la documentacin presentada en el captulo Documentacin (/usr/share/man, /usr/share/info y /usr/share/doc).Los recursos compartidos destinados a las aplicaciones grficas se encuentran en el subdirectorio /usr/share/X11./usr/srcLa mayor parte de los programas utilizados estn desarrollados bajo licencia libre (GPL), por lo que no es raro disponer de su cdigo fuente para recompilarlos de forma especfica.Si es as, el cdigo fuente de estos programas se guarda aqu. Por ejemplo, el cdigo fuente del ncleo Linux se encuentra en el directorio /usr/src/linux.12. /varOtro directorio voluminoso de un sistema de archivos Linux; /var rene todos los archivos de datos "variables" en el tiempo: las colas de espera de impresora, los buzones de los usuarios y los registros del sistema.

Un registro o archivo de "log" contiene el historial de la actividad de un programa. Existe por ejemplo un archivo de log que registra la hora de conexin y desconexin de los usuarios al equipo.El tamao de este directorio depende en gran medida de los servicios implementados en el sistema; as, si el equipo cumple la funcin de servidor de correo, de archivos y de impresora al mismo tiempo, este directorio ser ms grande que en un equipo que sirva nicamente como puesto de trabajo.Finalmente, se puede reservar para este directorio una particin especfica./var/libEste subdirectorio contiene generalmente los archivos de los sistemas de gestin de bases de datos (SGBD), como MySQL./var/logAqu se agrupan todos los registros del sistema y de aplicaciones. La consulta de archivos de log permite al administrador comprender -y por lo tanto resolver- un gran nmero de problemas del sistema y de aplicaciones./var/lockLas aplicaciones de servidor (servidor web, servidor ftp, planificador de tareas) crean cada una un archivo en este directorio para dejar testimonio de su ejecucin. Llamados archivos "de bloqueo", permiten con su presencia evitar que uno de estos programas se ejecute varias veces.Estos archivos, lgicamente, se borran al detener los programas correspondientes./var/runAdems de los archivos de bloqueo (/var/lock), los servicios iniciados en el equipo crean generalmente un archivo que lleva su nombre y contiene el identificador del proceso (PID) correspondiente en /var/run.

En otro captulo abordaremos la nocin de proceso.Estos archivos permiten recuperar ms fcilmente los identificadores de los procesos con los scripts de control./var/spoolEste subdirectorio agrupa los archivos de espera (spool) de diferentes servicios:impresin (/var/spool/lpd y /var/spool/cups), correo electrnico (/var/spool/mail), tareas planificadas (/var/spool/cron).../var/tmpAl igual que el directorio /tmp, todos los usuarios del sistema pueden almacenar archivos temporales en /var/tmp.La diferencia entre estas dos ubicaciones es el tiempo de vida atribuido generalmente por el administrador a estos archivos; desde unos das hasta varias semanas para /var/tmp.13. /etcEl directorio /etc ("etctera") contiene los archivos que no tienen cabida en los otros directorios, es decir, todos los archivos de configuracin y scripts de arranque del sistema.Se divide en subdirectorios, entre los que destacan: /etc/rc.d que acoge los scripts de arranque y de control de los servicios; /etc/skel (directorio "esqueleto"), que contiene los archivos que se copiarnen el directorio del usuario al crear su cuenta Linux; /etc/sysconfig que contiene principalmente la configuracin de los dispositivos.

Este directorio corresponde, en cierto modo, a la base de registros del sistema Windows.Este directorio, fundamental para el sistema operativo, se encuentra obligatoriamente en la particin principal.Montar y acceder a los medios extraiblesConsiderado en su conjunto hasta ahora, el rbol de Linux puede estar compuesto por varios sistemas de archivos guardados en soportes diferentes.De hecho, cada particin o medio extraible habilita un sistema de archivos "fsico". Una vez reunidos, forman el rbol -o sistema de archivos- de Linux que hemos descrito anteriormente. Para ello, una particin del disco duro del equipo se designa como principal y acoge el sistema de archivos raz (el que contiene /), del que se colgarn los dems sistemas de archivos.Por ejemplo:

1. Comando mountPara acceder al contenido de un sistema de archivos fsico, hay que "conectarlo" al rbol de Linux. Esta operacin se llama "montaje" y se efecta mediante el comando mount. Su sintaxis general es la siguiente:mount [-t ] [-o opciones[,...]] Una pgina del manual detalla este comando; slo se exponen aqu los montajes de sistemas de archivos presentes en CD-ROM o disquete.Como se ha indicado anteriormente, los archivos asociados a las unidades de disquetes y de CD-ROM son /dev/fd0 y /dev/cdrom.Para montar los sistemas de archivos presentes en los medios insertados en estosdispositivos, hay que escribir los comandos mount siguientes:mount /dev/fd0mount /dev/cdromEl comando mount sin parmetros indica el directorio utilizado en el rbol de Linux para todos los montajes del sistema de archivos; los directorios de montaje asociados de modo predeterminado a las unidades de disquetes y CD-ROM se definen en el archivo /etc/fstab; para ms informacin sobre este archivo: man 5 fstab.

Segn losderechos otorgados por el administrador en el archivo /etc/fstab, los usuarios pueden no estar autorizados para efectuar montajes. Entonces ser necesario conectarse como root.Por ejemplo, para ver el contenido de un disquete:[root]# mount /dev/hda3 on / type ext3 (rw)none on /proc type proc (rw)[root]# ls /mnt/floppy/ [root]# mount /dev/fd0[root]# mount /dev/hda3 on / type ext3 (rw)none on /proc type proc (rw)/dev/fd0 on /mnt/floppy type vfat (rw,nosuid,nodev)[root]# ls /mnt/floppy/command.com ega2.cpi io.sys keybrd2.sys mode.comconfig.sys ega3.cpi keyb.com keybrd3.sys msdos.sysdisplay.sys ega.cpi keyboard.sys keybrd4.sysEn este ejemplo, el segundo comando mount, sin parmetros, indica que el sistemade archivos presente en el disquete (/dev/fd0) est montado en el directorio /mnt/floppy. Las llamadas del comando ls muestran el contenido del directorio /mnt/floppy antes y despus del montaje efectuado con mount /dev/fd0.

En las distribuciones recientes, se implementa un sistema de automontaje. Esto permite que el usuario acceda a los sistemas de archivos presentes en los disquetes y CD-ROM sin invocar el comando mount, u, nicamente accediendo a los directorios asociados a los dispositivos en el archivo /etc/fstab.2. Comando umountDe igual manera, cuando ya no se quiere acceder a un sistema de archivos en Linux, hay que "desmontarlo" antes de poder extraer el medio de su unidad. En el caso de un CD-ROM, la bandeja de la unidad est bloqueada hasta que se realiza esta accin.

Si bien es posible extraer mecnicamente un disquete de su unidad o una memoria USB de su puerto, sigue siendo obligatorio desmontar el sistema de archivos montado previamente, so pena de perder los datos guardados en el medio.El comando umount, seguido del nombre del dispositivo o del directorio de montaje, permite desmontar el sistema de archivos; por ejemplo, para el disquete:# umount /mnt/floppyo:# umount /dev/fd0Dicho esto, no es posible desmontar un sistema de archivos en uso; hay que tener la precaucin de no encontrarse en el directorio de montaje al llamar a umount.3. Caja de herramientas mtoolsInstalado de modo predeterminado con las distribuciones de Linux recientes, el paquete de software mtools es una serie de comandos que permiten acceder a los medios de la misma manera que en la lnea de comandos del DOS.Estos comandos tienen los mismos nombres que los comandos DOS, aunque poniendo delante la letra "m".Por ejemplo, para leer un disquete DOS y copiar uno de sus archivos al directorio /tmp sin montar, se utilizarn los comandos mdir y mcopy as:[root]# mdir a: Volume in drive A has no label Volume Serial Number is 2A87-6CE1Directory for A:/EGA2 CPI 58870 06-08-2000 17:00 EGA3 CPI 58753 06-08-2000 17:00 EGA CPI 58870 06-08-2000 17:00 KEYB COM 21607 06-08-2000 17:00 KEYBOARD SYS 34566 06-08-2000 17:00 KEYBRD2 SYS 31942 06-08-2000 17:00 KEYBRD3 SYS 31633 06-08-2000 17:00 KEYBRD4 SYS 13014 06-08-2000 17:00 MODE COM 29239 06-08-2000 17:00 COMMAND COM 93040 06-08-2000 17:00 DISPLAY SYS 17175 06-08-2000 17:00 CONFIG SYS 33 03-01-2004 19:16 12 files 448 742 bytes 888 832 bytes free# mcopy a:\command.com /tmp# ls /tmpcommand.com

Atencin: los comandos mtools no pueden acceder a los medios ya montados con el comando mount.Nombres de archivos y de directoriosLos nombres de archivos y de directorios en Linux responden a ciertas reglas de escritura.Descripcin del contenidoEn primer lugar, un nombre de archivo debe proporcionar indicaciones sobre su contenido; esto es vlido para todos los sistemas operativos.Para un profesor, es ms fcil encontrar las notas de historia de la clase de 4 A del primer trimestre de 2011 en el archivo llamado notas.historia.clase.4A.trim.1.2011 que en el archivo llamado vale.SintaxisLa distincin de maysculas y minsculas es determinante en la sintaxis de los nombres de archivos. As, los archivos vale, Vale y VALE son distintos.Slo deben utilizarse los caracteres alfanumricos (de a a z, A a Z y 0 a 9) junto con algunos ms (_, ., @, -, +) en los nombres de archivos.Algunos caracteres tienen un significado especial en la lnea de comandos; stosse detallarn en el captulo dedicado al Shell Bash. Por ejemplo, borrar a* no significa borrar el archivo llamado a*, sino todos los archivos que empiezan por la letra a.

De hecho, pu