Linux a fondo

Introducción a Linux 

Orígenes de Linux

Entre los sistemas operativos que había hace una década estaba Minix, un sistema operativo tipo Unix, de fuentes publicas, que se había escrito a modo didáctico para los estudiantes de ingeniería informática. Funcionaba en un 8086, por lo que era un poco limitado. Linus Tolvards un estudiante finlandés de informática que investigando y profundizando en los entresijos de los microprocesadores 386 decidió hacer, partiendo de cero, un sistema operativo, basado en Minix, pero que aprovechase toda la potencia del 386, memoria virtual, multitarea y otras cosas. Así que empezó a crearlo, las primeras versiones eran poco atractivas, apenas ejecutaban el GCC ( un compilador de C creado según el estilo GNU) el bash ( el equivalente al command.com). Pero Linus, lo publico en internet, con sus fuentes, y un montón de gente se intereso en él, modificándolo, mejorándolo y añadiéndole cosas, a la vez que Linus lo mejoraba y coordinaba todo el trabajo que hacían el resto de la gente. Y así sigue siendo hoy, cientos de versiones después hasta convertirse en lo que tenemos delante. La gente de GNU creó un montón de programas para su sistema operativo que gracias a que son software libre son también usados e Linux y por eso a Linux se le llama muchas veces GNU/Linux. Linux se distribuye bajo la licencia GPL, es un tipo de licencia, dentro de lo que podríamos llamar el Open Source Software, básicamente dice que cojas el programa, lo uses, aprendas, lo mejores y compartas esas mejoras con el resto del mundo. Además la licencia GNU fija una serie de derechos a programador que le protegen, pero en resumidas cuentas: Un Programa con Licencia GPL puede ser vendido, alquilado, prestado modificado, lo que se quiera, pero: • No se puede limitar el número de usuarios o copias. • No se puede cobrar por usar el programa ( pero sí por distribuirlo). • No se puede impedir que otros lo vendan o distribuyan. • Tienes que dar las fuentes del programa de una manera publica. • Puedes modificar el programa, o aprovechar parte del código, pero el resultado tiene que seguir la misma filosofía. Es básicamente lo que llamaríamos un programa Freeware, o Gratis. Linux sigue esta licencia. Por eso te encontraras a revistas que lo regalan a gente que cobra por él, a gente que lo coge de Internet, y lo encontraras en distribuciones, pero de esto ya hablaremos en otra ocasión. Características de Linux 32 Bits Esto es algo que seguro estas cansado de oír, 32 Bits, básicamente significa que necesitas como mínimo un 386 para ejecutarlo, significa además bastantes mas cosas, rapidez, seguridad, eficacia, únicamente diré que es un sistema 100% de verdad de 32 Bits, no como otros, no tiene código de 16 bits. Multitarea Esto significa que el ordenador puede estar haciendo varias cosas a la vez, y que no tendrás que esperar a que acabe una para hacer otra, la multitarea esta controlada por el S.O. no por las aplicaciones, por lo que a diferencia de otros S.O. nunca se te quedara parado por culpa de una mala aplicación que consuma todos los recursos del ordenador. Aquí si podrás bajar correo de Internet, formatear un disco, imprimir 100 hojas y jugar al Quake a la vez, y sin problemas. Multiusuario Si has manejado antes un ordenador, seguramente usarías MAC OS o Windows, en estos S.O. tú eres el único que lo usas, en Linux, puede haber varias personas usando el ordenador, compartiendo el microprocesador, así puedes ponerle un par de pantallas y teclados mas a los puertos serie del ordenador, y estar haciendo tres cosas a la vez ( suponiendo que tuvieses manos para todo) o puede estar otra persona navegando por internet, escribiendo una carta, jugando en su pantalla, mientras tu estas en otra haciendo otra cosa completamente diferente, y estaréis ambos en el mismo ordenador. POSIX Esto a los usuarios normales nos importa poco, POSIX es un estándar de la industria, que asegura una calidad mínima en ciertas partes del S.O. y asegura su compatibilidad, a nivel de código, es decir, programas POSIX que funcionan en otros Unix, no tendrán problema para compilarse y ejecutarse en Linux, Para muchas empresas esto es muy importante, a la hora de decantarse por un S.O. u otro (por eso Windows NT es compatible POSIX). Compatibilidad Cuando tocamos este tema, siempre pasa lo mismo, la gente dice, JO!!!, No puedo ejecutar mi aplicación favorita XXXX for windows 95, bueno, tampoco alguien con MAC, ni con IRIX, etc., además en Linux hay peros: Pero

No 1: Ficheros Linux No tiene ningún problema para tragarse cualquier tipo de disco de cualquier cosa que excita, leerlo y usar su contenido, además existen Suites como OpenOffice o Corel WordPerfect que permiten leer y usar ficheros de aplicaciones comunes como puedan ser Word o Excel. Pero No

2: Programas Si puedes ejecutar programas de otros S.O. para MAC tienes el Executor, que si bien hay que pagar por él, dicen que es buenísimo. De pago también esta el WABI, un emulador de Windows 3.1, con el que no tendrás problemas. Pero además existe Wine, un emulador gratuito de windows 3.1 y windows 95, con el que podrás ejecutar ( y sino puedes espera un poco que aun lo están desarrollando) cualquier programa. Además si el programa es para MS-Dos existe DosEmu, un emulador de MS-Dos ( bueno no exactamente, mas bien habría que decir de 386) donde podrás ejecutar a pantalla completa, como en la realidad, o en ventana de X Window, cualquier programa para este S.O. Estabilidad Linux es robusto, no se colgara ( el S.O. una aplicación si esta mal echa por supuesto que se colgara, pero no afectara al resto del sistema, nunca tendrás que reiniciar el ordenador por que un programa lo ha colgado), hay que notar que es posible bloquear el teclado o la pantalla, pero eso no significa que se cuelgue el ordenador, puedes entrar al ordenador por otro sitio ( un terminal, por red) y desbloquearlo, y seguir usándolo, o si se te bloquea un programa mientras estabas conectado a Internet y cogiendo correo, quizás no puedas usar el ordenado, pero seguirá bajando el correo sin problemas. Es libre Es decir no te costara nada, no tendrás que pagar licencias, podrás copiarlo, venderlo, instalarlo donde quieras sin problemas, pero lo más importante es que dispones del código fuente, esto significa que si un DIA te encontrases con un problema del S.O. no tendrías que esperar inútilmente a que su creador decidiese que era un problema importante y crease un service pack para el S.O., tu mismo puedes solucionar el problema. O puedes indicarle a una 3o personal el problema, y esta no tendrá que ser de la empresa que creo el S.O. para poder solucionártelo. 

Soporte 

Parece mentira, siendo gratis, pero aparte del que te da caldera, SUSE, o redhat si le comprar los CD a estas empresas, existen cientos de personas, de todos los idiomas conocidos, que gustosos te ayudaran a solucionar cualquier problema que tengas con Linux, y en pocos días. No dudes de unirte a las listas de distribución que hay en Internet, no solo aprenderás, podrás ayudar a otros en los problemas que tengan. Adaptación Linux es uno de los S.O. que más rápido evoluciona, se adapta al mercado y soluciona los problemas rápidamente, como por ejemplo el bug F00F del Pentium, Linux fue el primero en tener solución, Soporta el sistema FAT32 de Microsoft antes que sus propios Sistemas Operativos ( Windows NT 4 ), y un largo etc de cosas. Prácticamente las mayores pegas que se le puede echar a Linux son: • Dificultad de Configuración – No es exacto, simplemente no hay botones, se hace todo por ficheros de configuración ASCII, además actualmente las distribuciones incluyen su propio GUI (Interfaz Grafica para el Usuario) para la configuración del equipo, aunque esta depende de cada distribución. • 

Hay pocos juegos - Los hay, no todos pero sí muy buenos, Quake I & II, Doom I & II. Abuse, Freeciv, Descent, y un monton de ellos sencillos. El sistema X Windows Linux es un sistema en modo texto, como puede serlo el MS-Dos, además, incluye una extensión, el sistema X window versión 11, conocido como las X, o como X11. Este sistema se carga encima del de modo texto, pero a diferencia de lo que sucede con MS-Dos+windows 3.1, no disminuye su rendimiento, al ser ya de por sí Linux un sistema multitarea de 32 bits, en cierto modo es como windows 95. Por lo anterior dicho, es conveniente empezar a aprender a manejar Linux desde modo texto. además hay que tener en cuenta que el sistema de ventanas de Linux, se basa en una arquitectura Cliente-Servidor, mas o menos esto significa que el programa no tiene por que ejecutarse en el mismo ordenador en que lo estas viendo, y que un mismo ordenador puede ejecutar varios programas o sesiones X para uno o mas pantallas, En la practica esto simplemente significa que si tuvieses que proporcionar ordenadores a 10 personas que en un determinado momento necesitasen mucha potencia, podrías darles 10 ordenadores muy potentes, o 10 ordenadores anormalitos y un gran ordenador que todos compartirán cuando necesiten ponencia ( que suele ser lo mas barato, quizás no con 10 pero sí con 100). El sistema X windows, en un principio se creo para solucionar la necesidad de ciertas personas de ver gráficos de sus aplicaciones, o de tener mas de una pantalla a la vez, estas personas normalmente eran científicos o programadores, así que las X se limitan a dar un trozo de pantalla donde puedes dibujar o leer. Mas tarde la gente descubrió que lo del ratón era intuitivo y que en lugar de teclear largas líneas de comandos era más fácil hacer click con el ratón apuntando sobre un cuadrado con unas letras (botón). Además como les quedaba muy soso lo de los tres o cuatro trozos en la pantalla decidieron añadir un marco a esos trozos llamados ventanas. Surgen así dos temas, bastante controvertidos en Linux.

• Los Widget, o ventartilugios, como alguien llamo ( los botones y demás)

• Los Window Manager, los administradores de ventanas ( lo bordes) Los Windows Manager son el programa que se encarga de dar marco a las ventanas, como cada uno hace lo que quiere, hay cientos, desde cutres como el TWM, eficaces como el Fvwm 2. a supervistosos y barrocos como el Enlightment, además suelen proporcionar unos menús y alguna aplicación para hacer un poco menos inhóspitas las X, ( principalmente menús, o una barra de herramientas para ejecutar aplicaciones). Los widget son los que dan aspecto a los programas, es lo que diferencia un botón de Mac de uno de Win95 y de uno de SCO, aquí ya no depende de lo que tu elijas, si no de lo que elija el programador, aunque se puede cambiar a través de temas, algunos de los mas conocidos son el polémico QT, Motif, Gtk, Athena, Xform. Como cada programador hace lo que quiere, suele pasar que tengas varias aplicaciones y no se parezcan nada entre ellas. Últimamente ha surgido una serie de movimientos que intentan cambiar esto, así aparecen los gestores de escritorio, que básicamente son: Un gestor de ventanas, una libreria de widgets, un montón importante de aplicaciones tontas ( el buscaminas, el reloj, la agenda), y algunas más importantes, ( Procesador de Textos, Hoja de Calculo, Base de Datos, Navegador de Internet, Programa de Presentaciones) y algunas utilidades para configurar todo esto a base de ventanas. Su interés es conseguir unas X atractivas y fáciles de manejar, hay dos principalmente; Kde ya en su versión estable 3.0 añadiéndole Koffice aun en desarrollo, su principal achaque es que el widget esta desarrollado por una empresa privada, y puede cortar su futuro desarrollo, aunque esta posibilidad es mínima gracias a que QT ya es software libre, el aspecto es soberbio. Otro es Gnome esta basado en gtk, un widget completamente libre, y con unas vistas un poco mas altas ( gnome no solo da las aplicaciones con un aspecto único, intenta dar toda una serie de objetos para el desarrollo de aplicaciones) Ya va por la versión 2.0, y también tiene un conjunto ofimático tipo Office, Además habría que hablar también de OpenStep, un entorno imitación de NextStep, que tiene muchos admiradores. Las distribuciones Linux es libre, eso significa que cualquiera puede cogerlo y vendértelo, o regalártelo, pero linux además es solo un pequeño programa, el kernel, que solo no vale de nada, así que existen una serie de empresas, o grupos de gente que se dedica a unir Linux a un grupo de aplicaciones, en muchos casos libres también, en otros no, meterlo todo en un CD o discos y distribuirlo. Veremos por encima las principales que hay: Red Hat Red Hat es una de las empresas que más influye en el mundo Linux actualmente, tiene dos tipos de distribución una, la de pago, que incluye software comercial, y otra, la gratuita que sustituye este software comercial por otro con licencia Libre. A Red Hat hay que agradecerle el sistema de paquetes RPM, que es el adoptado por el LBS ( Linux Base Standar es un conjunto de normas para conseguir que un programa funcione perfectamente sin importar en que distribución se instale). 

Paquete es un fichero donde se han metido un programa, junto con la información necesaria para su correcta instalación, esto ahorra el tener que compilar el fichero, como se hacía antes, te avisa si falta algo en el ordenador que instalas, y te permite desinstalar el programa sin ningún problema. Básicamente existen 3 tipos de paquetes, los RPM, los Deb y los Tgz, de estos dos hablare mas adelante. La instalación de Red Hat es de lo más sencillo que hay, menús que guían al usuario en la instalación, y una instalación grafica permiten, junto a una guía bastante bien echa, que cualquiera pueda instalar esta distribución. La única pega es cierta costumbre de red hat a apurarse al sacar las distribuciones, lo que hace que sea necesario recoger varios parches de Internet si tienes una versión vieja. Debian Esta distribución siempre ha sido famosa por su fiabilidad, estabilidad y por ser completamente gratuita ( el resto de las distribuciones suelen incorporar programas shareware, o con licencias restrictivas). Tiene el sistema de paquetes.deb, bastante más potente que el RPM, aunque menos extendido. Incorpora la herramienta Alien que le permite utilizar paquetes de cualquier otra distribución. Su instalación es muy sencilla, únicamente es muy tedioso la selección de que partes de la distribución quieres instalar, ya que te da de golpe una lista de 7000 o más paquetes a instalar, y hay que decir sí o no a los 7000. Como consejo si te decantas por debían, no instales ninguno, y cuando necesites hacer X, busca el paquete que te permita hacer X he instálalo. SUSE Esta distribución alemana, basada en RPM, esta pegando fuerte, Incluye KDE y la herramienta de configuración YAST, muy cómoda de usar, muy profesional, la gente que la ha probado no cambia. Últimamente esta siendo muy criticada por no permitir bajarse la versión CD desde la web Slackware Esta distribución tiene el mérito de haber sido mantenida por una única persona, usa el sistema de paquetes TGZ ( este sistema es muy rudimentario, he incluye muy pocas facilidades para el usuario). No cumple la organizacion estándar de ficheros de Linux, y no incorpora ningún programa de configuración con lo que todo se configura a mano. Así todo es una de las más veteranas, y la gente que la instalo ( normalmente por primera vez) es reacia a cambiar, además es ideal para experimentar. Mandrake Esta distribución estaba basada en red hat y se diferencia de esta en: • Esta compilada para Pentium, con lo que todo funciona mas fluido, en contra no podrás instalarla en un 486. • Tiene el sistema de instalación más cómodo y automatizado, auto detectando y configurando la mayoría del hardware. Por esto es probablemente la mas recomendada para el principiante Y que distribución elijo? Esa es una pregunta complicada, lo ideal seria que probases varias y eligieses en función de con cual estas mas a gusto. Si eres principiante probablemente la mejor sea Mandrake. Otra opción es red hat, tan fácil como mandrake pero con mucha mas experiencia en el mercado. 

Si Quieres un sistema GNU/Linux 100% y gratis, consigue Debian. Si tienes ganas de romperte el cráneo instala Slackware. Total en el fondo da igual, son todas Linux. Dónde conseguir Linux Existen dos opciones, comprarla o conseguirla gratis de internet. Comprarla: En Caja, en una tienda de informática, unos grandes almacenes o en la web de la distribución. Tiene las ventajas de incluir un manual, programas comerciales y soporte técnico por un periodo de tiempo. Con una revista, tiene la ventaja de poder comprarla en el quiosco de la esquina, y es relativamente barato, como desventaja sola suele ser el primer CD y no siempre tiene la calidad espera. Por último puedes comprar un conjunto de CDs pregrabado (idénticas a las que te bajarías gratis de internet) de http://www.linuxiso.com o http://www.cheapbytes.com a un precio muy ajustado. Obtenerla "gratis" Puedes bajarla de la pagina principal de la distribución. Además hay sitios dedicados a almacenar imágenes ISO que luego puedes grabar en CD, como http://www.linuxiso.org Instalación de Linux Cuando no se esta acostumbrado a instalar linux, este proceso que suele ser metodico y simple, suele parecer pesado y complicado. Debido a que el proceso de instalación es una de las mayores diferencias entre una distribución y otra de linux, no nos vamos a detener en el proceso de instalación, y recomendamos al alumno que consiga el Manual de Instalación de la distribución que haya elegido, el cual suele venir con la propia distribución (en caso de comprar linux “en caja”) o estar disponible Online bien en Lucas, bien el la web de la distribucion. Primeros pasos con Linux Las Sesiones Por ser multiusuario, varios usuarios, personas ( o una misma persona en varios sitios) puede estar usando el ordenador a la vez, bien por varios terminales, en el caso de que estén conectados al ordenador ( por el puerto serie, por ejemplo) a través de telnet, o mediante las consolas virtuales ( a estas se acede de manera general pulsando ALT+Fx siendo x un numero generalmente entre el 1 y el 6, aunque esto varia y se puede configurar a tu gusto, como TODO en linux. Si estamos en una sesión X, no funcionara, tendremos que usar CTRL+ALT+Fx, que nadie se espere encontrar otra sesión X vacía, aparecerá otra sesión en modo texto, si queremos tener dos pantallas X a la vez, deberemos lanzar la 2o a mano desde la sesión de modo texto ( es fácil, pero consume mucha memoria) o utilizar los escritorios virtuales, que es bastante mas practico. Al principio te pide un login, esto es el nombre por el que se te conoce dentro de la maquina, después de eso una clave, te la tiene que haber dado tu administrador, si no te gusta después de haber entrado, esto es introducido los dos valores correctamente ( el primero aparecerá en pantalla, pero el segundo no, es una medida de seguridad, para que no puedan ver lo que tecleas). Puedes cambiarlo, basta con escribir passwd, y te pedirá el antiguo ( para comprobar) y que escribas es nuevo dos veces ( para verificar que esta bien escrito). Ahora estas en el prompt del sistema, veras algunas cosas y al final el signo $ si entraste como usuario normal y # si entraste como root, si has entrado como root, créate un nuevo usuario, con adduser nombre, te hará un par de preguntas, nombre, clave, grupo al que pertenece, dirección, teléfono, directorio del home, introduce el nombre que quieras para el login, la clave, y el resto admite los que te propone, por ahora vale con lo que el ordenador da, luego cuando estés mas avanzado, ya comprenderás para que sirven. Ahora lo interesante es salir, si quieres acabar la sesión, por ejemplo, para entrar como otro usuario, (muy habitual si eres root, el root, solo debería ser utilizado en casos de necesidad, por ejemplo cuando quieres instalar algo, o quieres cambiar algo de la configuración, en cualquier otro caso es recomendable ser un usuario normal, por seguridad, y por comodidad, aunque al principio te parezca poco cómodo el estar cambiando cada 2x3 de usuario, cuando tengas el ordenador a tu gusto, no necesitaras entrar como root para nada. Basta con escribir logout o exit, mas o menos es lo mismo. Y por ultimo no puedes apagar el ordenador por las buenas, como harías con la tele, debes antes decirle que lo vas a apagar, para que el ordenador deje las cosas en orden, ( el ordenador no guarda todos los datos en disco duro, los guarda en memoria, y cuando lo cree conveniente los pasa al disco duro, así esa carta, que acabas de hacer, puede que aun no este en el disco duro, si no en memoria, debes decirle que pase todo lo que tiene pendiente al ordenador antes de apagar, esto se conoce como cache, además ciertos procesos ( otros programas que están funcionando y que no ves, he aquí la multitarea) tienen que cerrarse civilizadamente. Apagar es algo que solo puede hacer el root, o habitualmente el que esta situado en la consola ( consola es el conjunto de monitor-teclado principal, es decir el que esta conectado directamente al ordenador y no a un puerto serie, o por telnet) Si estas situado en la consola, pulsa ctrl-alt-del, esto debería iniciar el proceso de apagado o reinicio de la maquina, según lo configures, al final, deberías ver un mensaje que pone SYSTEM HALTED, o el típico mensaje de la bios al arrancar, ahora es cuando debes apagar el equipo. Suponiendo que seas root, para apagar el equipo teclea shutdown -fh now, no es necesario que estés en la consola La f significa que el próximo arranque sea rápido, es decir que no compruebe los discos al iniciarse. La h significa que se pare, ( al final veras el mensaje system halted) si hubieses puesto una r se reiniciaría, y verías el mensaje de la bios. Now, significa que reinicies en ese instante, si pones una hora, el reinicio se realizara a esa hora, si pones +n, el reinicio se hará en n minutos, esto es útil, por que se envía un mensaje a todos los usuarios que hay indicándoles que en n ( o a la hora x) se reinicia el ordenador, y de paso impide nuevas entradas de usuarios. Si hubiese un proceso de reinicio en curso ( por ejemplo has dicho que reinicie dentro de 5 minutos) puedes cancelarlo con shutdown -c.


Moviendose por tu linux


Según entras en una sesión de Linux, estas en tu home, también llamado ~, es un sitio del disco duro, reservado para ti, donde vas a poder hacer lo que quieras, fuera de este sitio no vas a poder tocar nada, ver pero no tocar, normalmente suele ser /home/nombredelogin, a veces aparece delante del prompt, si no teclea pwd y te dirá donde estas. Si eres root, lo normal es estar el /root y puedes ver y tocar todo, absolutamente todo. Por eso no se suele recomendar entrar como root. El disco duro esta organizado en directorios o carpetas, unas dentro de otras, por ejemplo esta la principal, el raíz / de hay cuelga varias, home, usr, var, lib, tus estas dentro de home, de están cuelgan a su vez otras, tu estarás en una en concreto, yo entro con login pepe, y estoy ahora en /home/pepe, como una esta dentro de otra, las puedes escribir juntas separándolas por el signo/, la carpeta en la que ahora estas sea cual sea la puedes llamar como. y la carpeta de la que cuelga en la que estas el.., cualquier carpeta puede tener mas carpetas, o ficheros, los ficheros son como hojas de papel dentro de las carpetas, puede ser una carta, una foto o un programa, eso da lo mismo. Cada una tiene un nombre que la identifica, y que es diferente al resto de esa misma carpeta, aunque puede ser igual al de otro fichero o carpeta que este en otro sitio diferente. Para ver lo que hay en la carpeta en la que estas escribe ls -p, ( el -p puede que no sea necesario, según que Linux/Unix utilices) veras que aparecen todos los archivos y las carpetas que cuelgan de él aparecerán con el signo / detrás ( -p hace que aparezca este signo, sin el no habría diferencia entre carpetas y ficheros) también es posible que aparezcan de colores, o con otros signos ( * y @ por lo menos son comunes) también puedes ver el contenido de otra carpeta, si escribes su ruta detraes, ej; ls -p / , ls -p / usr/doc , ls -p /home/pepe. Si lo que quieres es moverte por las carpetas utiliza cd seguido de donde quieres ir, así cd / te llevara a la raíz, cd ~ a tu home ( cd a secas hace lo mismo, útil si te pierdes por hay) cd /usr/doc te lleva al directorio de documentación del sistema. Investiga un poco por tu ordenador con ls y cd, para ver lo que hay. Si quieres crear una carpeta ( o varias) lo puedes hacer en tu home, usando mkdir y el nombre de la carpeta que quieres crear, luego entra en ella con cd. Para borrar una carpeta escribe rmdir nombre, pero la carpeta tiene que estar vacía y tienes que tener permiso para borrarla ( eso por ahora no importa que es, tienes permiso para borrar todas las que consigas crear, con eso vale). Conseguir información En Linux, lo normal es que tenga información de todos los comandos que puedes utilizar, esta se encuentra principalmente en cuatro sitios:


Las paginas man, a estas se acede escribiendo man capítulo nombre_de_comando donde capítulo es el capítulo del manual a consultar ( déjalo en blanco, y el ordenador suele acertar solo, capitulo en un numero, el 1 corresponde a los comandos que los usuarios normales pueden utilizar, 2 es la referencia del programador, 6 son los juegos, 8 los comandos que solo root puede usar, etc., hay varios).


Si simplemente te interesa saber que hace un comando, bastante mas útil que las paginas del man será la orden apropos nombre_del_programa que te dice que hace el programa, o te informa de programas similares. Si no sabes que comandos existen pulsa TAB, TAB te da todas las posibles opciones que tienes a la hora de escribir comandos ( quizá tengas que pulsarlo dos veces, y contestar s o y a la pregunta de si quieres verlos todos) además te permite completar comandos, así para escribir shutdown, basta con escribir shut y TAB para que el ordenador lo complete (si quieres ver todos los comandos que empiezan por a pulsa la a y luego tab. También te puede ser de utilidad saber que todas las paginas del man se encuentran almacenadas en tres o cuatro directorios, /usr/man, /usr/local/man y /usr/local/man, dentro de este encontraras una serie de carpetas, con los idiomas disponibles, ej es para el español, de para el alemán, y carpetas con man1, man2, etc, que son los capítulos, dentro de estas estarán los ficheros de ayuda, suelen estar comprimidos, pero te vale para sacar el nombre, así la ayuda del less será algo así como less.gz less.x.gz o less.1.gz o algo similar. Para salir del man suele bastan con pulsar q e intro.


Otra ayuda muy completa suelen ser las páginas info, para ello teclea info, y accedes a un programa donde veras una lista de todas las opciones, info es un poco suyo a la hora de usarlo, pero esta hay y es útil por que para algunos programas no hay pagina man, solo info. Además sueles tener mas información y/o ayuda en la documentación, que siempre se encuentra en /usr/share/doc/nombredeprograma. para verla, entra en el directorio que te interese y utilizando cat, more o less ( son tres programas que te permitirán ver ficheros, al cual más cómodo, en ese orden) seguido del nombre del fichero, si el fichero acaba el gz lo usual es que este comprimido, usa zless para verlo, si acabase en .html, .tex, .dvi, . ps, .pdf, no podrás verlo necesitas un programa especial, Además es posible que te interese crear tus propios documentos, podrás crear los que quieras en tu HOME usando vi, el editor que normalmente se usa en Linux, es bastante cómodo cuando le coges el tranquillo, para empezar: ESC y luego o para empezar a escribir ESC y luego: wq para guardar los cambios y salir ESC y luego: q! para salir sin guardar los cambios ESC y luego: help para una completa información sobre como usarlo. Al final de los apuntes hay un apéndice mucho mas completo sobre vi. Si tienes suerte y tienes Gnome o Kde instalados, tendrás un bonito programa que te permitirá ver la anterior documentación de una manera muy cómoda, además, si estas en X deberías probar cosas como xman, tkman, tkinfo, que son versiones gráficas de los anteriores programas. 

Permisos 

Linux/Unix son sistemas multiusuario, donde mucha gente puede estar usando el mismo disco duro, así que debe haber un sistema que sea capaz de poner un poco de orden a todo esto y decidir de quien es cada cosa, y quien puede usarla. Todo en Linux tiene un dueño y un grupo, el dueño es generalmente el que lo creo, aunque se puede cambiar, y el grupo es un grupo de usuarios que tiene privilegios especiales sobre el resto del mundo, imagina que una empresa usa un ordenador, y dentro de esa empresa, hay departamentos de marketing, investigación y dirección, es posible crear grupos de usuarios que pertenezcan a uno o mas de esos grupos, y tener ficheros que un grupo vea y otro no ( por ejemplo para evitar que los de marketing cotilleen lo que hacen los de investigación. El dueño, adema puede tener otro tipo de privilegios sobre el grupo, e.j. puede además de verlo, modificarlo. Para ver los permisos y dueños de un fichero utiliza ls -l, veras que aparecen columnas, la primera es una letra (que indica el tipo de archivo que es) y un grupo de guiones, x,w, y r, luego un numero, y luego dos nombres o números, el primero, el dueño del fichero y el segundo el grupo, luego aparece tamaño y fecha de creación y por ultimo el nombre del fichero. Para cambiar el dueño chown nombre fichero(s), para cambiar el grupo chgrp nombre fichero(s), o todo de una vez, chown nombre.grupo fichero(s). La primera columna de ls -l indica los privilegios o permisos de cada tipo de usuario, además del tipo de fichero. La primera letra será una d si es un directorio, un guión si es un fichero normal y otro signo si es un fichero especial. Luego hay tres conjuntos de letras xrw, o en su lugar guiones, indican los permisos del dueño, del grupo y del resto de usuarios. La x indica que es un fichero ejecutable, un programa, y según donde aparezca lo podrán ejecutar el dueño, grupo y/o todos los usuarios. La r indica quien puede leer ese fichero. La w indica quien puede escribir ( o modificar o borrar) ese fichero. Así puedes hacer que un documento solo lo puedas ver tu dándole permisos -rw------, o que lo pueda ver y modificar la gente de tu grupo, y el resto del mundo solo leerlo, -rw- rw-r-. Cambiar los permisos es un poco complicado, hay que usar chmod permisos nombredeficheros Permisos puede ser gente+accion+permiso, siendo gente u - usuario, g - grupo, o - los otros, la acción un guión para quitar el permiso y el signo + para darlo y luego x,r y/o w según el permiso, así: chmod go+rw fichero hace que el grupo y todo el mundo puede leer y escribir el fichero. chmod o-rwx fichero hace que los otros no pueden ni leer ni escribir ni ejecutar el fichero. Además si sabes un poco de binario y octal puedes sustituir eso por un numero, así xrwxr-xr ( tu puede leer/modificar y ejecutar, el resto solo leer y ejecutar) seria chmod 755 fichero, permisos -rw-r---- seria 640, sustituye cada letra por un uno binario, y cada guión por un cero binario, y luego pásalo a octal, con la practica es muchísimo mas rápido de usar que la opción anterior. 

Peculiaridades del Shell


Comodines 

Como shell ( interprete de comandos, el programa que intenta comprender lo que tu dices y lo ejecuta) normalmente suele ser el bash, este permite usar comodines ( como las cartas) a la hora de escribir un nombre de fichero ( además la tecla tab te permite completar rutas a la hora de escribir, escribe /ho y pulsa tab veras como aparece /home/) Los principales son *,? y los corchetes [], así el asterisco sustituye a cualquier grupo de letras, eje pe* vale para pepe, pepa, película y pe. el ? sólo vale para una letra, así pep? vale para pepe, pepa, pero no para película Los corchetes valen por un conjunto así pep[aAe] vale para pepa, pepA, pepe, pero no para peps, ni para pepE, en unix son muy importantes las mayúsculas y la minúsculas, hasta el punto de que puedes tener dos ficheros que se llamen igual, por ejemplo pepe y Pepe, ya que uno tiene mayúsculas y otro no. Además puedes usar [letrainicio-letrafinal], ejemplo [a-d]* vale por cualquier fichero que empiece por a,b,c o d. Hay que tener en cuenta que los nombre que empiezan por . se supone que están ocultos, ( al hacer un ls no salen, necesitas ls -a, pruébalo en tu home, verás como aparecen varios ficheros que no sabias que estaban ahí) y el asterisco no los pilla, es necesario indicar.* para que los coja.


Opciones


Normalmente todos los programas permiten opciones, por ejemplo ls permitía -a -p -l, etc, las opciones se suelen colocar justo detrás del nombre del programa, antes que los otros parámetros, por ejemplo en el caso de ls seria ls -l /usr/doc, aunque suele funcionar si lo colocas en otro sitio, lo normal es ahí, por facilidad a la hora de leer el comando y pensar lo que hace. Cuando hay varias opciones, lo normal es que se puedan colocar juntas, así podríamos poner ls -pla para usar las tres opciones, en ciertos casos especiales se podrá además omitir el guión, aunque lo normal es ponerlo. También en algunos casos es posible utilizar opciones largas, así es lo mismo usar en ls -a que --all, en estos casos se utiliza un doble guión, para diferenciar --all de -a -l -l ( -all ) Tuberías En Unix existen los conceptos de entrada estándar, salida estándar y tuberías que debemos aprender a manejar. En Unix, se utiliza una filosofía diferente a Windows, en Windows estamos acostumbrados a megaprogramas que hacen de todo, en Linux, lo normal es utilizar pequeños programas específicos que saben hacer una y solo una cosa, estos programas normalmente cogen los datos que necesitan de la entrada estándar, y de la línea de comandos ( parámetros y opciones), y dan sus resultados por la salida estándar. Después, puedes coger la salida de un programa y pasárselo como datos a otro, para realizar tareas más complejas, esto se realiza con las tuberías (el carácter | que se obtiene con ALTGR+1), y mediante shell scripts ( pequeños programas como los .bat del ms- dos) si la tarea es complicada, o se va a repetir varias veces. Por defecto la entrada estándar es el teclado, pero puedes hacer que sea un fichero con las teclas a pulsar, para ello usar comando < fichero, si el resultado del programa quieres que pase a un fichero, en lugar de a pantalla usar comando > nombredefichero, pero ojo que > borra el fichero que hubiese, y lo sustituye por el resultado del programa, comando >> fichero no lo borra, si no que lo añade al final.


Por último se pueden usar tuberías, hay ocasiones en que lo que nos interesa no es conservar el resultado de un programa, si no pasárselo a otro como datos, como entrada estándar, sin necesidad de usar un fichero temporal como podríamos hacer con comando1 > file.tmp; comando2 < file.tmp; rm file.tmp. , para esto utilizamos las tuberías, quedando el conjunto de tres ficheros anteriores como comando1 | comando2. Así por ejemplo sort coge lo que haya a la entrada y lo ordena y lo pone a la salida, si quieres ver un ls ordenado usar ls | sort. si además quieres que el resultado aparezca en un fichero usar ls | sort > fichero. Además puedes usar la salida de un programa como opciones para otro, si pones el comando entre acentos graves find / -name `ls` por ejemplo buscaría por todo el disco duro fichero que se llamasen igual que los del directorio actual ( dados por ls).


Uso de unidades de disco


Hasta ahora hemos estado trabajando desde el disco duro, suponemos, en nuestro directorio home, pero en un ordenador normal, sobre todo si trabajamos en casa ( si trabajamos en una red, y estamos detrás de un terminal, esto no tendría tanto sentido) tenemos unidades de disco, Zips, CD-Rom, etc... en los que tendremos cosas que ver. En Linux, no existe el concepto de unidad de disco, que existe en otros S.O., en Linux, las unidades se "montan" como directorios, que cuelgan de donde elijamos, así lo normal es que la disquetera este en /floppy o en /mnt. Linux es un sistema multiusuario, eso significa que puede haber varias personas que usan los dispositivos a la vez, imagínate que follón si estáis dos trabajando en el mismo ordenador, y al 2o se le ocurre sacar el CD de donde tu estas copiando cosas para meter uno suyo, tú aplicación daría error y tu si no estas delante de la unidad no tendrías ni idea de por que. Para evitar eso, Linux tiene dos "defensas", por un lado, el root, es en principio, el único que tiene permiso para montar y desmontar discos, esto es hacer que estén disponibles para el posible usuario. La otra defensa ( que no es útil para los discos) es que hasta que no desmontes la unidad ( esto es la hagas no disponible a los usuarios) no podrás sacar el CD, Zip, o lo que sea de la unidad. ( Aquí es muy importante destacar que a diferencia de los floppy de Macintosh, en que la disquetera es eléctrica y saca ella los discos, en los PC, es manual, es MUY IMPORTANTE desmontar los disquetes antes de sacarlos, ya que de otra manera se puede perder su contenido, es como apagar el PC si esperar. Y NO VALE VOLVER a meter el disco, si lo sacas, tienes que jorobarte. Para montar se utiliza mount -t tipo_fs dispositivo lugar_montaje tipo_fs es el tipo de sistema de ficheros, es la manera en que se almacenan los datos en el disco, normalmente cada sistema operativo tiene el suyo propio, así por ejemplo msdos usa fat , windows 95 usa vfat, iso9660 para los CD-Rom, os2 usar hpfs, windows nt usar ntfs, y linux usa ext2, en la practica basta con montar los disco linux con ext2, iso9660 para los CDs y el resto con vfat. Dispositivo es el nombre del dispositivo a utilizar, en linux, todos los dispositivos del sistema se encuentran en un directorio especial, en /dev/, así la disquetera suele ser / dev/fd0 o /dev/fd1, el disco duro suele ser /dev/mdxy siendo m la letra h si es IDE y la letra s si es SCSI, x una letra entre al a y la d si es IDE ( en función de donde este , primario master, primario slave, secundario master, etc... ) o un numero del ID SCSI, y luego en numero de partición. Es un poco complicado, por lo general el CD-Rom será /dev/hdb o /dev/hdc,. Por último hay que indicar donde quieres que se monte, es la ruta de un directorio que este vació, así para montar el típico disco de MS-Dos, puesto en la unidad a:, seria mount -orw -t fat /dev/fd0 /mnt Un cd seria mount -t iso9660 /dev/hdb /mnt Si te has fijado ambos se montan en /mnt, no es posible montar los dos a la vez, así que antes hay que desmontarlos, o montarlos en sitios diferentes, para desmontarlos umount dispositivo o umount lugar_montaje. Todo este proceso se puede automatizar, con la configuración adecuada, para que baste con poner mount /dev/cdrom por ejemplo para que monte el cdrom. Pero eso se vera mas adelante. Organizacion de directorios Hasta ahora nos hemos estado hablando de unos pocos directorios del disco, si has investigado, veras que hay muchos directorios, cada uno con un significado especial, veamos para que valen:

/ El directorio raíz, de este cuelgan todos los demás. 

/sbin Contiene programas de administración indispensables 

/bin Contiene los programas básicos para el uso normal /root El home del administrador del ordenador 

/tmp Es un directorio que todo el mundo puede usar como temporal, normalmente se borra su contenido cada cierto tiempo de manera automática 

/lib Contiene las librerías necesarias para los programas 

/etc Contiene toda la configuración del ordenador, es similar al registro de windows, cualquier programa que este instalado tendrá un archivo en modo texto (esto es, que lo podemos editar con un editor de textos común como puede ser vi) en algún lugar de este directorio. 

/proc Contiene información del funcionamiento del ordenador, prueba a entrar en el y ver con cat el contenido de los ficheros que tiene. 

/lost+found Contiene los ficheros que se encuentran después de realizar una comprobación del disco, suelen aparecer después de fallos del PC. /dev Contiene los dispositivos que tiene el ordenador disponibles. 

/var Contiene datos sobre programas que son comunes a todos los usuarios, records de los juegos, la cola de impresión, los buzones de correo y los log ( registros de sucesos en programas) de los demonios (programas que siempre están funcionando aunque no lo veamos ni los notemos. 

/mnt /floppy /cdrom /dos Son directorios donde se suelen montar los sistemas de almacenamiento, depende de cada distribución o administrador. 

/home De aquí cuelgan todos los home de los usuarios del sistema. /usr Dentro de este directorio hay varios directorios no imprescindibles /usr/sbin Programas de administración no indispensables 

/usr/bin Programas de usuarios no básicos /usr/games Juegos y programas que pueden comprometer la seguridad, el superusuario no suele poder usarlos. 

/usr/lib Librerías de los programas de /usr/xxx /usr/man Páginas de los manuales 

/usr/doc Documentación de todos los programas instalados /usr/src Fuentes de programas para compilar ( normalmente el kernel ) /usr/X11R6 Es el sistema de ventanas X window system, dentro de él encontrarás man, bin, lib, etc... 

/usr/local Este directorio es como /usr ( tiene su bin, su lib, su man, pero se refiere a programas o datos propios de ese ordenador, es decir aquellos que no serán visibles en otros ordenadores conectados en red (es posible compartir el mismo disco duro entre varios ordenadores, de esta manera por ejemplo, da igual en cual te pusieses, siempre tendrías tu home y tus aplicaciones. Otros comandos Interesantes Supongo que tendrás un montón de fichero basura de tus últimos experimentos rm fichero(s) elimina el/los fichero(s) que le indiques, y MUCHO OJO, por que no se pueden recuperar de ninguna manera. además rm -D directorio borra el directorio y todo lo que hubiese dentro ( y tampoco se puede recuperar). Sobre el manejo de ficheros pocas cosas quedan por ver, únicamente destacaría el comando para mover, mv, este permite dos operaciones, por un lado nos permite cambiar un fichero de sitio, para esto es necesario que tengamos permiso de escritura sobre ese fichero y el lugar de destino, simplemente indicando mv nombre_origen ruta_destino, cabe destacar que es posible no solo mover fichero, si no también directorios, o todos los ficheros de un directorio utilizando comodines. La otra operación que se puede realizar con mv es el cambio de nombre, así basta con indicar el nombre de un fichero o directorio, y luego su nuevo nombre. Otra cosa interesante es saber cuanto espacio estamos ocupando en un determinado directorio, basta con escribir du. Para saber el espacio que hay libre en el disco, utilizaremos df. Si queremos borrar la pantalla utilizaremos clear. Con esto estarían vistos los comandos básicos para desenvolverse operativo. 

No hay comentarios:

Publicar un comentario

Directorio de empresas Uruguayas