============================================================================= --------------------------------------------------------------------------08- -----( Curso Linux V 1.0 )---------------------------------------------RM-11] -----[ KuKulKan ]--------------------------------[kukulkan@raza-mexicana.org] Curso Linux (version 1.0) 12/2000 Curso introductorio al sistema operativo Linux. Este sistema operativo a crecido en importancia en los ultimos a~os debido a su gran desempe~o, el ser un sistema operativo multiusuario-multitarea, al creciente numero de aplicaciones de diversos tipos tales como suites de oficina (StarOffice), bases de datos (Oracle, Adabas, etc.), aplicaciones graficas (The Gimp), entre otras tantas, las cuales son de uso "libre" y sin costo para el usuario final. Su alto desempe~o como servidor de red lo ha hecho competir con rivales importantes como windows NT, Solaris entre otros, ademas de que compa~ias importantes lo han instalado en sus servidores como sistema operativo (IBM,HP). Sobre todo esto sobresale el hecho de que puede ser instalado en una PC sin ninguna desventaja notable, teniendo un sistema operativo robusto, confiable y ahora con aplicaciones de todo tipo ;-). Para el area de ciencias exactas existen programas tales como el scilab, un buen rival para el matlab, en electronica existen varios tales como Geda y pcb, ademas del famoso Spice, y otros tantos en otras areas de las ciencias exactas. Linus Trovals creo a Linux, y al escribir su primer version dijo: "Comence a utilizar el C tras escribir algunos drivers, y ciertamente se acelero el desarrollo. En este punto senti que mi idea de hacer un `un Minix mejor que Minix se hacia mas seria. Esperaba que algun dia pudiese recompilar el gcc bajo Linux. . . "Dos meses de trabajo, hasta que tuve un driver de discos (con numerosos bugs, pero que parecia funcionar en mi PC) y un peque"no sistema de ficheros. Aqui tenia ya la version 0.01 [al final de Agosto de 1991]: no era muy agradable de usar sin el driver de disquetes, y no hacia gran cosa. No pense que alguien compilaria esa version." El 5 de Octubre de 1991, Linus anuncio la primera version "oficial" de Linux, la 0.02. Ya podia ejecutar bash (el shell de GNU) y gcc (el compilador de C de GNU), pero no hacia mucho mas. La intencion era ser un juguete para hackers[1]. No habia nada sobre soporte a usuarios, distribuciones, documentacion ni nada parecido. Hoy, la comunidad de Linux aun trata estos asuntos de forma secundaria. Lo primero sigue siendo el desarrollo del kernel. ¿Que ofrece Linux? 1/ Edicion de texto. 2/ Entorno de Programacion. 3/ Varios interpretes de comando. 4/ Varios cleintes graficos (Gnome, KDE, Another Step, OWM y muchos mas). 5/ Y muchisimas cosas mas... Filosofia de LINUX Linux ha sido desarrollado principalmente por un grupo de programadores de todo el mundo unidos por Internet. A traves de Internet, cualquiera tiene la oportunidad de unirse al grupo y ayudar al desarrollo y depuracion del nucleo, portar nuevo software, escribir documentacion o ayudar a los nuevos usuarios. La comunidad de Linux se comunica principalmente mediante diversas listas de correo y grupos de USENET. Existen algunos acuerdos en el desarrollo, como que cualquiera que desee que su codigo sea incluido en la version "oficial" del nucleo deberia ponerse en contacto con Linux Torvalds, quien comprobara el codigo y lo incluira en el nucleo. Por lo general, estara encantado en hacerlo, siempre que no estropee otras cosas. El sistema se ha dise~ado siguiendo una filosofia abierta y de crecimiento. Por regla general hay una nueva version del nucleo cada dos meses (a veces cada menos tiempo) Esto depende del numero de errores a corregir, la cantidad de informacion recibida de los usuarios, y lo que haya dormido Linus esta semana. Por lo tanto, es dificil decir que todos los errores hayan sido corregidos en cierta fecha. Pero conforme el sistema va apareciendo libre de errores criticos o manifiestos, se considera "estable" y se lanzan nuevas revisiones. Hay que recordar que no se pretende realizar un sistema perfecto, sin errores. Simplemente, se pretende desarrollar una implementacion gratuita de UNIX. Linux esta hecho para desarrolladores, mas que para otro tipo de personas. Si alguien desarrolla una aplicacion o nueva caracteristica para el nucleo, se a"nade inicialmente en una etapa "alfa", es decir, pensada ser probada por usuarios atrevidos que aceptan los fallos que tenga. Dado que la comunidad de Linux se basa sobre todo en Internet, el software "alfa" es enviado, normalmente, a servidores FTP dedicados a Linux y anunciado mediante un mensaje puesto en un grupo USENET dedicado a Linux. Los usuarios que se llevan el software lo prueban e informan sobre errores o sugerencias al autor por correo electronico. Una vez que se corrigen los problemas iniciales, el codigo pasa a una etapa "beta", en la que se considera estable pero incompleto (o sea, funciona, pero no incluye todas las funcionalidades previstas). Tambien se puede pasar a una etapa "final" en la que el software se considera terminado. Para el codigo del nucleo, una vez que se ha terminado, el desarrollador puede pedir a Linus que lo incluya en el nucleo estandar, o bien que lo ponga como codigo optativo. Recuerda que lo anterior son solo convenciones, y no leyes. Algunos programas pueden no necesitar fases "alpha". Es el desarrollador quien tomara las decisiones al respecto. Estara sorprendido de que un grupo de programadores y aficionados voluntarios, relativamente desorganizados, hayan podido hacer algo. Sin embargo, este grupo constituye uno de los mas eficientes y motivados. Todo el nucleo de Linux ha sido escrito de la nada, sin emplear ningun codigo de fuentes propietarias. Todo el software, librerias, sistemas de ficheros y drivers han sido desarrollados o portados desde otros sistemas; y se han programado drivers para los dispositivos mas populares. Como se puede apreciar, Linux es un sistema que ha sido desarrollado por programadores de todo el mundo, actualmente existen miles de aplicaciones totalmente gratuitas en Internet, por ejemplo los sites www.linuxberg.com , www.linux.org , www.fsf.org ofrecen programas de esta indole por citar a algunos. Para aquellas personas que tengan "miedo" de migrar a otro sistema operativo, una vez ya acostumbrado al ambiente impuesto por el Sr. gates tendria un sentido hace 9 a~os, pero ahora existen programas que igualan o superan a sus contrapartes comerciales, por ejemplo StarOffice de Sun Microsystems, The Gimp, PCB, gEDA, moonlight, blaze, y muchisimo software distribuido bajo la licencia GPL. En la Universidad de Guadalajara se esta gestando un interes por este sistema operativo, actualmente existe un grupo de Linux, coordinado por Hugo Mora, el cual se encarga de difundir este sistema operativo, sus ventajas y desventajas, la puesta en marcha y el asesoramiento, la pagina web del grupo es: Http://linux.udg.mx y la lista de correos es linux@listas.udg.mx ¿Que necesita para instalar Linux en mi computadora? ¿Necesito una enterprise 10,000 de 1 millon de Dlls?, ¡claro que no!, es un hecho el que Linux corre en una 386 con 4 Mb de RAM y 40 Mb en disco duro, cualquier computadora que supere estas caracteristicas funcionara correctamente (La computadora donde se escribio y modifico este texto es una pentium mmx a 250 Mhz [si, overclocking =) ] 64 Mb de RAM, discos duros de 2 Gb y 10Gb, tarjeta de sonido ESS1868 ISA, modem Blaster 56 Kbps, tarjeta de video Voodoo Rush con 6 Mb). Ahora, se debe tener una distribucion a instalar, existen ya varias de ellas. Una distribucion no es mas que un conjunto de programas con un programa principal de instalacion que se obtiene por FTP, o por CDs principalmente. Cada distribucion tiene un maximo y minimo de programas a instalar y por ende de espacio en disco, las distribuciones mas populares son Red Hat, SuSe, Stampede, Slackware, Debian aunque cabe se~alar que existen unas 30 diferentes segun necesidades y plataformas, por ejemplo hay para PowerPC, para Sparc y Alhpa aparte de Intel. En Linux encontraras de todo, desde reproductores de mp3, programas de animacion 3D, programas CAD, de dise~o electronico, de matematicas, astronomia, quimica, desarrollo de software, en fin, una amplia gama de programas se encuentran disponibles por Internet. Introduccion a Linux Ahora empezaremos con una introduccion a Linux, lo cual es basicamente a UNIX. UNIX es un sistema operativo multitarea y multiusuario. Esto significa que puede haber mas de una persona usando un ordenador a la vez, cada uno de ellos ejecutando a su vez diferentes aplicaciones. (Esto difiere de MS-DOS, donde solo una persona puede usar el sistema en un momento dado). Bajo UNIX, para que los usuarios puedan identificarse en el sistema, deben presentarse (login), proceso que consta de dos pasos: Introducir el nombre de usuario (login) (el nombre con que sera identificado por el sistema), y una palabra de paso (password), la cual es su llave personal secreta para entrar en la cuenta. Como solo usted conoce su palabra de paso, nadie mas podra presentarse en el sistema con su nombre de usuario. En los sistemas UNIX tradicionales, el administrador del sistema asignara el nombre de usuario y una palabra de paso inicial en el momento de crear la cuenta de usuario. Como usted es el administrador del sistema, debe configurar su propia cuenta antes de poder presentarse. Para el resto de las discusiones, usaremos el nombre de usuario "larry". Ademas, cada sistema UNIX tiene un nombre del sistema (hostname) asignado. Este "hostname" le da nombre a la maquina, ademas de caracter y encanto. El nombre del sistema es usado para identificar maquinas en una red, pero incluso aunque la maquina no este en red, deberia tener su nombre. En nuestros ejemplos, el nombre del sistema sera "mousehouse" Antes de poder usar el sistema, deberia configurarse una cuenta de usuario. Esto es necesario, porque no es buena idea usar la cuenta de root para los usos normales. La cuenta de root deberia reservarse para el uso de comandos privilegiados y para el mantenimiento del sistema. Para crear su propia cuenta, necesita entrar en la cuenta de root y usar las ordenes useradd o adduser. En el momento de presentarse en el sistema, vera la siguiente linea de comandos en la pantalla: mousehouse login: Ahora, introduzca su nombre de usuario y pulse |_Return_|. Nuestro heroe larry, teclearia lo siguiente: mousehouse login: larry Password: Ahora introduzca la palabra de paso. Esta no sera mostrada en la pantalla conforme se va tecleando, por lo que debe teclear cuidadosamente. Si introduce una palabra de paso incorrecta, se mostrara el siguiente mensaje Login incorrect y debera intentarlo de nuevo. Una vez que ha introducido correctamente el nombre de usuario y la palabra de paso, esta oficialmente "presentado" en el sistema y libre para comenzar a trabajar. Tan pronto como entra en el sistema, el sistema arranca un interprete de comandos y Ud. ya puede teclear 'ordenes al sistema. Veamos un ejemplo rapido. Aqui, Larry entra en el sistema y es situado en el interprete de comandos mousehouse login: larry Password: larry's password Welcome to Mousehouse! /home/larry# "/home/larry#" es el "prompt" del interprete de comandos, indicando que esta listo para recibir ordenes. Tratemos de decirle al sistema que haga algo interesante: /home/larry# make love make: *** No way to make target `love'. Stop. /home/larry# Bien, como resulta que make es el nombre de un programa ya existente en el sistema, el interprete de comandos lo ejecuta. (Desafortunadamente, el sistema no esta siendo muy amigable). Esto nos lleva a una cuestion importante: ¿Que son ordenes? ¿Que ocurre cuando tecleamos "make love"?. La primera palabra de la orden, "make", es el nombre de la orden a ejecutar. El resto de la orden es tomado como argumentos de la orden. Ejemplos: /home/larry# cp foo bar Aqui, el nombre de la orden es "cp", y los argumentos son "foo" y "bar". Cuando teclea una orden, el interprete de comandos hace varias cosas. Primero , busca el nombre de la orden y comprueba si es una orden interna. (Es decir, una orden que el propio interprete de comandos sabe ejecutar por si mismo. Hay bastantes ordenes de ese tipo que veremos mas adelante). El interprete de comandos tambien comprueba si la orden es un "alias" o nombre sustitutorio de otra orden. Si no se cumple ninguno de estos casos, el interprete de comandos busca el programa y lo ejecuta pasandole los argumentos especificados en la linea de comandos. En nuestro ejemplo, el interprete de comandos busca el programa llamado make y lo ejecuta con el argumento love. make es un programa usado a menudo para compilar programas grandes, y toma como argumentos el nombre de un "objetivo" a compilar. En el caso de "make love", ordenamos a make que compile el objetivo love. Como make no puede encontrar un objetivo de ese nombre, falla enviando un mensaje de error y volviendo al interprete de comandos. Que ocurre si tecleamos una orden y el interprete de comandos no puede encontrar el programa de ese nombre?. Bien, probemoslo: /home/larry# eat dirt eat: command not found /home/larry# Bastante simple, si no se puede encontrar el programa con el nombre dado en la orden (aqui "eat"), se muestra un mensaje de error que deberia de ser autoexplicativo. A menudo vera este mensaje de error si se equivoca al teclear una orden (por ejemplo, si hubiese tecleado "mkae love" en lugar de "make love". Antes de ahondar mas, deberiamos ver como salir del sistema. Desde la linea de ordenes usaremos la orden /home/larry# exit Para salir. Hay otras formas, pero esta es la mas facil. Comandos equivalentes Existe un cierto numero de comandos equivalentes en UNIX de DOS, he aqui una lista UNIX DOS UNIX DOS cp copy more more mv move cat type rm del rd rd pico edit cd cd cfdisk fdisk rm deltree man help mkdir mkdir mv ren ls dir Para obtener una ayuda mas precisa, escriba man comando para obtener una ayuda mas completa. Directorios en Linux /bin /bin es la abreviacion de "binaries", o ejecutables. Es donde residen la mayoria de los programas esenciales del sistema. Use la orden "ls -F /bin" para listar los ficheros. Podra ver algunas ordenes que reconocera, como cp, ls y mv. Estos son los programas para estas ordenes. Cuando usa la orden cp esta ejecutando el programa /bin/cp.Usando ls -F vera que la mayoria (si no todos) los ficheros de /bin tienen un asterisco ("*") a~adido al final de sus nombres. Esto indica que son ficheros ejecutables. /dev El siguiente es /dev. Echemosle un vistazo de nuevo con ls -F. Los "ficheros" en /dev son conocidos como controladores de dispositivo (devicedrivers) son usados para acceder a los dispositivos del sistema y recursos, como discos duros, modems, memoria, etc. Por ejemplo, de la misma forma que puede leer datos de un fichero, puede leerla desde la entrada del raton leyendo /dev/modem. Los ficheros que comienzan su nombre con fd son controladores de disqueteras. fd0 es la primera disquetera, fd1 la segunda. Ahora, alguien astuto se dara cuenta de que hay mas controladores de dispositivo para disqueteras de los que hemos mencionado. Estos representan tipos especificos de discos. Por ejemplo, fd1H1440 accedera a discos de 3.5"de alta densidad en la disquetera 1. Aqui tenemos una lista de algunos de los controladores de dispositivo mas usados. Notese que incluso aunque puede que no tenga alguno de los dispositivos listados, tendra entradas en dev de cualquier forma. o /dev/console hace referencia a la consola del sistema_ es decir, al monitor conectado directamente a su sistema. Los dispositivos /dev/ttyS y /dev/cua son usados para acceder a los puertos serie. Por ejemplo, /dev/ttyS0 hace referencia a "COM1" bajo MS-DOS. Los dispositivos /dev/cua son "callout", los cuales son usados en conjuncion con un modem. Los nombres de dispositivo que comienzan por hd acceden a discos duros. /dev/hda hace referencia a la totalidad del primer disco duro, mientras que /dev/hda1 hace referencia a la primera particion en /dev/hda. Los nombres de dispositivo que comienzan con sd son dispositivos SCSI. Si tiene un disco duro SCSI, en lugar de acceder a 'el mediante /dev/hda, debera acceder a /dev/sda. Las cintas SCSI son accesadas via dispositivos st y los CD-ROM SCSI via sr. Los nombres que comienzan por lp acceden a los puertos paralelo. /dev/lp0 hace referencia a "LPT1" en el mundo MS- DOS. /dev/null es usado como "agujero negro"_ cualquier dato enviado a este dispositivo desaparece. Para que puede ser util esto?. Bien, si desea suprimir la salida por pantalla de una orden, podria enviar la salida a /dev/null. Hablaremos mas sobre esto despues. Los nombres que comienzan por /dev/tty hacen referencia_a_"consolas_virtuales" de su sistema (accesibles mediante las teclas |_alt-F1_|, |_alt-F2_|, etc). /dev/tty1 hace referencia a la primera VC, /dev/tty2 a la segunda, etc. Los nombres de dispositivo que comienzan con /dev/pty son "pseudoterminales". Estos son usados para proporcionar un "terminal" a sesiones remotas. Por ejemplo, si su maquina esta en una red, telnet de entrada usara uno de los dispositivos /dev/pty. /etc /etc contiene una serie de ficheros de configuracion del sistema. Estos incluyen /etc/passwd (la base de datos de usuarios), /etc/rc (guiones de inicializacion del sistema), etc. /sbin sbin se usa para almacenar programas esenciales del sistema, que usara el administrador del sistema. /home /home contiene los directorios "home" de los usuarios. Por ejemplo, /home/larry es el directorio del usuario "larry". En un sistema recien instalado, no habra ningun usuario en este directorio. /lib /lib contiene las imagenes de las librerias compartidas. Estos ficheros contienen codigo que compartiran muchos programas. En lugar de que cada programa contenga una copia propia de las rutinas compartidas, estas son guardadas en un lugar comun, en /lib. Esto hace que los programas ejecutables sean menores y reduce el espacio usado en disco. /proc /proc es un "sistema de ficheros virtual". Los ficheros que contiene realmente residen en memoria, no en un disco. Hacen referencia a varios procesos que corren en el sistema, y le permiten obtener informacion acerca de que programas y procesos estan corriendo en un momento dado. /tmp Muchos programas tienen la necesidad de generar cierta informacion temporal y guardarla en un fichero temporal. El lugar habitual para esos ficheros es en /tmp. /usr /usr es un directorio muy importante. Contienen una serie de subdirectorios que contienen a su vez algunos de los mas importantes y 'utiles programas y ficheros de configuracion usados en el sistema. Los directorios descritos arriba son esenciales para que el sistema este operativo, pero la mayoria de las cosas que se encuentran en /usr son opcionales para el sistema. De cualquier forma, son estas cosas opcionales las que hacen que el sistema sea util e interesante. Sin /usr, tendria un sistema aburrido, solo con programas como cp y ls. usr contiene la mayoria de los paquetes grandes de programas y sus ficheros de configuracion. /usr/X386 /usr/X386 contiene el sistema X Window si usted lo instala. El sistema X Window es un entorno grafico grande y potente el cual proporciona un gran numero de utilidades y programas graficos, mostrados en "ventanas" en su pantalla. Si esta familiarizado con los entornos Microsoft Windows o Macintosh, X Window le sera muy familiar. El directorio /usr/X386 contiene todos los ejecutables de X Window, ficheros de configuracion y de soporte. /usr/bin /usr/bin es el almacen real de programas del sistema UNIX. Contiene la mayoria de los programas que no se encuentran en otras partes como /bin. /usr/etc Como /etc contiene diferentes ficheros de configuracion y programas del sistema, /usr/etc contiene incluso mas que el anterior. En general, los ficheros que se encuentran en /usr/etc/ no son esenciales para el sistema, a diferencia de los que se encuentran en /etc, que si lo son. /usr/include /usr/include contiene los ficheros de cabecera para el compilador de C. Estos ficheros (la mayoria de los cuales terminan en .h, de "heder") declaran estructuras de datos, subrutinas y constantes usados en la escritura de programas en C. Los ficheros que se encuentran en /usr/include/sys son generalmente usados en la programacion de en UNIX a nivel de sistema. Si esta familiarizado con el lenguaje de programacion C, aqui encontrara los ficheros de cabecera como stdio.h, el cual declara funciones como printf(). /usr/g++-include /usr/g++-include contiene ficheros de cabecera para el compilador de C++ (muy parecido a /usr/include). /usr/lib /usr/lib contiene las librerias equivalentes "stub" y "static" a los ficheros encontrados en /lib. Al compilar un programa, este es "enlazado" con las librerias que se encuentran en /usr/lib, las cuales dirigen al programa a buscar en /lib cuando necesita el codigo de la libreria. Ademas, varios programas guardan ficheros de configuracion en /usr/lib. /usr/local /usr/local es muy parecido a /usr_contiene programas y ficheros no esenciales para el sistema, pero que hacen el sistema mas divertido y excitante. En general, los programas que se encuentran en /usr/local son especificos de su sistema_estos Tipos de interpretes de comandos es, el directorio /usr/local difiere bastante entre sistemas UNIX. Aqui encontrara programas grandes como TEX (sistema de formateo de documentos) y Emacs (gran y potente editor), si los instala. /usr/man Este directorio contiene las paginas de manual. Hay dos subdirectorios para cada pagina "seccion" de las paginas (use la orden man man para mas detalles). Por ejemplo, /usr/man/man1 contiene los fuentes (es decir, los originales por formatear) de las paginas de manual de la seccion 1, y /usr/man/cat1 las paginas ya formateadas de la seccion 1. /usr/src /usr/src contiene el codigo fuente (programas por compilar) de varios programas de su sistema. El mas importante es /usr/src/linux, el cual contiene el codigo fuente del Nucleo de Linux. /var /var contiene directorios que a menudo cambian su tama~o o tienden a crecer. Muchos de estos directorios solian residir en /usr, pero desde que estamos tratando de dejarlo relativamente inalterable, los directorios que cambian a menudo han sido llevados a /var. Algunos de estos directorios son: /var/adm /var/adm contiene varios ficheros de interes para el administrador del sistema, especificamente historicos del sistema, los cuales recogen errores o problemas con el sistema. Otros ficheros guardan las sesiones de presentacion en el sistema, asi como los intentos fallidos. /var/spool /var/spool contiene ficheros van a ser pasados a otro programa. Por ejemplo, si su maquina esta conectada a una red, el correo de llegada sera almacenado en /var/spool/mail hasta que lo lea o lo borre. Articulos nuevos de las "news" tanto salientes como entrantes pueden encontrarse en /var/spool/news, etc. Mas sobre LINUX Ahora daremos una introduccion mas general a Linux. Bien, ahora exploremos el directorio con ls, ¿y si quiero tener mas informacion sobre los archivos en ese directorio?, hay una lista de argumentos para el comando ls, si se quiere averiguar mas acerca de ese directorio, probemos con ls -F. Como se puede observar este agrega un "/" al final de un archivo cuando este es en realidad un subdirectorio, tambien agrega un "*" cuando el archivo es un ejecutable. ¿Requieres mas informacion?, prueba con ls -a, este comando muestra los archivos "ocultos", en Linux un archivo oculto empieza su nombre con un "." el cual indica que es un archivo oculto, y para poder listarlo es necesario el argumento -a en el comando ls. Hay una gran variedad de argumentos para este comando, puedes combinarlos y agregarlos a tu archivo .bashrc en un alias , puedes hacer que se coloree la salida del comando asignando un color a cada tipo de archivo con el argumento -- color, puedes ver esto y mas con "man bash" . ¿Como se crea un directorio en Linux?, con el comando mkdir , al igual que en DOS. ¿Y como copio un archivo?, con el comando cp , cp [OPTION]... SOURCE DEST, donde SOURCE es el archivo a copiar y DEST es el destino, a donde queremos copiar el archivo. Para mover un archivo utilizamos el comando mv al igual que el comando cp, la diferencia es que con el comando cp queda el archivo original, y con mv el original es borrado. Para renombrar un archivo se utiliza asimismo el comando mv , solo que el destino es el mismo directorio. Si por el contrario se desea borrar un archivo seutiliza el comando rm, para borrar un directorio se utiliza rmdir , tambien con rm se borran enlaces, los cuales explicare mas adelante. ¿Con que comando puedo ver el contenido de un archivo?, con el comando cat , con este comando se despliega en pantalla el contenido de un archivo, cat archivo. Si tengo un disco duro o una particion donde tengo documentos importantes y deseo consultarlos, o tengo un CD con 200 mp3 y quiero escucharlo, ¿como le hago?. Es algo muy sencillo, aunque muy confuso para muchas personas, en Linux (hasta la version 6.0 del red-hat o 5.1 del SuSE) no se podia meter un cd y esperar que lo reconociera inmediatamente, se montaba el CD o floppy, si es un usuario con poca experiencia y se ha subido al CD o al floppy o en el peor de los casos, a su computadora, entonces debera leer lo siguiente. Montar un CD, un floppy,una particion o un disco duro no es algo mas que decirle a Linux "hey lara (en el caso que su computadora se llame lara), tengo un dispositivo que es un CD, quiero que el contenido lo muestres en el directorio /mp3 ", hay varios dispositivos predefinidos en Linux, se pueden ver en el archivo fstab en el directorio etc , cat /etc/fstab , con este comando podra observar ese archivo. Muchas veces Linux propone tipos de sistemas de archivo no compatibles con nuestro floppy principalmente, para arreglar esto editemos el archivo fstab y donde este el floppy, cambiemos el ext2 por vfat , vfat permite leer archivos generador pon w*nd*ws 9x (al autor del este texto le cuesta demasiado escribir nombres de software de Micro.. esa compa~ia del se~or billy gatorades o algo asi, aprecie el esfuerzo) ya que con la opcion umsdos o msdos los nombres de los archivos se veran recortados y no tendras idea de que es ese archivo. ¡¿Pero, como monto?!, calma, eso es lo que veremos enseguida, primero dirigase a la tienda "El Charro" y compre el atuendo adecuado (si, solo es broma), despues teclee mount /cdrom o mount /mnt/cdrom (el primer caso es para usuarios SuSE, el segundo para RedHat) esto es asi porque ya en el archivo fstab se encuentra una entrada para el CD-Rom, pero si se requiere montar un disco duro o una particion el comando completo es mount -t dispositivo directorio donde -t es el tipo de sistema de archivos (vfat, msdos, umsdos, ext2, iso9660) por ejemplo mount -t vfat /dev/floppy /floppy aqui el tipo de sistema de archivos es vfat , el dispoditivo es /dev/floppy alias el disquito donde guarda esas fotos de internet cuando va a los cibercafes, y /floppy es el punto de montaje, esto es el directorio donde linux mostrara el contenido de el disco. Bien, ahora ya puede presumir con los amigos que es un experto montando cd's y floppy's en Linux. El uso de comodines es el mismo que en DOS, y como el usuario de linux por lo general antes utilizo DOS, me ahorrare la explicacion (si solo utilizabas DOS para jugar War Craft II o solo utilizabas W*nd*ws .. mmm, hay muchos libros enla biblioteca que explicaran eso =) ). Otro concepto importante de Linux es el permiso de lectura/escritura/ejecucion de los archivos. En Linux a diferencia de Ventanas 95 de Peque~itoSuave, es que se tiene un sistema de archivos denominado Ext2 el cual permite el "dar permisos" a los archivos, por ejemplo, despues de crear un usuario, y entras con el usuario juan, notaras que ya no es posible entrar al directorio /root, o que ya no puedes editar el archivo /etc/fstab o cosas parecidas, que significa eso, ¿tu computadora ya no te quiere?, ¡claro que no!, son los permisos, si ejecutas ls -l te daras cuenta de que existe a la izquierda una cadena como esta -rwx-w-r-x, y ... ¿que es eso?, pues indica que el usuario tiene derecho de lectura (r) de escritura (w) y de ejecucion (x) esa linea se divide en 4 partes, el primer caracter indica el tipo de archivo (d para directorio, l para enlace o "Link", b para dispositivo de bloquies, y - para un archivo normal) los siguientes 9 se dividen en 3 grupos de rwx para el Usuario, rwx para el Grupo y rwx para los Otros usuarios. Si tienes una carta que no quieres que nadie vea, con el comando chmod puedes cambiar los permisos de ese archivo se puede hacer de 2 formas, la numerica que es con valores binarios de 3 bits, donde r vale 4 w vale 2 y x vale 1, y se agrupa en 3 numeros consecutivos para los 3 grupos de personas que se definieron anteriormente, (User Group Other), por ejemplo chmod 701 carta.txt, con esto tu tienes todos los derechos, tu grupo no tiene algun derecho sobre ese archivo y los otros solo pueden ejecutarlo, pero no leerlo ni escribir. La otra opcion es chmod [ugo][-/+][rwx] donde se selecciona el tipo de usuario despues si se da o quita el permiso y despues se especifica que permiso. Aplicandolo al caso anterior seria chmod u+rwx carta.txt despues chmod g-rwx y finalmente chmod o-rw. Otra caracteristica que cabe se~alar son los enlaces, estos son ligas a otros lugares sin estar fisicamente presentes en ese directorio, por ejemplo tenemos un archivo carta.txt en el directorio /home/juan y queremos tenerlo tambien en /etc, entonces hacemos una liga a etc del archivo carta.txt ln /etc/secreto.txt /home/juan/carta.txt con esto se hace una liga "dura", esto es tanto /etc/secreto.txt como /home/juan/carta.txt son el mismo archivo, si se edita alguno, el otro tambien. Pero si se hace una liga simbolica esta liga solo indica donde esta el verdadero archivo, no son el mismo hablando estrictamente, cabe se~alar que la liga dura solo se puede hacer en un sistema de archivos solamente, no de uno a otro. Esta es solo una peque~a introduccion al mundo de Linux, si quieres saber mas, no queda mas que leer las man-pages, la documentacion de linux LDP o su traduccion al espa~ol LuCAS. Y principalmente tener Linux instalado en tu maquina. Por cierto, Linux se pronuncia asi "Linucs" no "lainucs" ni cosas asi (pasen para estar iguales, ¿no?), y eso no lo digo yo, lo dice Linus Trovals en un archivo .au =) Parte de este texto fue copiado de la traduccion del documento install- guide del LDP. Saludos al Grupo de Usuarios de Linux de la U de G, a Hugo Mora (osea yo), este texto esta bajo la licencia GPL y de la LPD, osea que se lo puden fusilar, editar etc especificando de donde se tomo y redistribuir tu texto editado a todos los Linuxeros. Gracias a Lara por su apoyo, fidelidad, comprension, y todo lo que me ha brindado en los ultimos 7 a~os (si, adivinaron, es mi computadora), saludoa a mis maestros, amigos, compa~eros, y a todos los $@?% de mis "amigos" en internet que se la pasan haciendo desmanes de 8 pm a 6 am. Dudas, sugerencias, correcciones a : kukulkan_@hotmail.com Saludos a los Hackers de Mexico Cabe se~alar que Hacker no es lo que se ha estado manejando ultimamente por las noticias, no es un pirata informatico ni se la pasa crackeando paginas web, ni robando bancos ni nada de eso, a continuacion pondre la definicion como viene en el RFC1983 de Hacker: Hacker A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular. The term is often misused in a pejorative context, where "cracker" would be the correct term. See also: cracker. Cracker A cracker is an individual who attempts to access computer systems without authorization. These individuals are often malicious, as opposed to hackers, and have many means at their disposal for breaking into a system. See also: hacker, Computer Emergency Response Team, Trojan Horse, virus, worm. Ven la diferencia?, B1t32 ^KuKulKan^ (^KuK^) P.S. KuKulKan: Dios maya de la Sabiduria, nada que ver con el ku kux klan, ok!!, porque hay cada persona que..... =X ----------------------- [1]Por "hacker" queremos referirnos a programadores fervientemente dedicados, por hobby, a explotar sus ordenadores al maximo, con resultados utiles para otras personas. Este concepto es contrario al habitualmente aceptado, que dice que un "hacker" es un pirata informatico. En el RFC1983 encontrara una definicion mas precisa.