Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 8 de 15

Introducción e instalación de Linux

Esta es una discusión para el tema Introducción e instalación de Linux en el foro Tips - Manuales GNU-Linux, bajo la categoría GNU/Linux; Historia y filosofía de desarrollo El sistema operativo Linux nació en el año 1991 a partir de una idea original del finlandés Linus Benedict Torvalds1.1, un estudiante de la Universidad ...
Página: 1


  1. #1
    Senior Member

    Fecha de ingreso
    08 nov, 04
    Mensajes
    1,611
    Historia y filosofía de desarrollo


    El sistema operativo Linux nació en el año 1991 a partir de una idea original del finlandés Linus Benedict Torvalds1.1, un estudiante de la Universidad de Helsinki que por aquellos días contaba con tan solo 21 años. Linus necesitaba un sistema operativo que aprovechara bien las potencialidades de su PC con procesador Intel 386. Primeramente pensó en Unix, el sistema en esa fecha de mayor distribución y utilización en el mundo empresarial, pero era imposible con sus escasos recursos conseguir una versión del mismo pues los precios para adquirirlo eran muy elevados para su alcance. La segunda opción era Minix, original de Andrew Tanenbaum1.2, todo un experto en Sistemas Operativos que creó a Minix basado en Unix y con fines fundamentalmente académicos. Pero Minix no satisfacía del todo las necesidades de Linus y por ello decidió finalmente hacer su propio sistema operativo al cual bautizaría con el nombre de Linux haciendo alusión a su nombre y tomando la ``x'' final de Unix.

    La primera versión del kernel1.3 de Linux, identificada como 0.01, fue programada completamente en ensamblador. Esta carecía de mucha utilidad pues sólo contenía los códigos básicos de un kernel rudimentario que dependía de Minix para su funcionamiento. Dos meses después, el día 5 de octubre de 1991, Linus hizo el primer anuncio oficial de su sistema operativo. A esta segunda versión la identificó como 0.02. Ya ofrecía la posibilidad de ejecutar gcc (el compilador de C de GNU (proyecto para la protección del software libre de la Free Software Foundation1.4) además de bash (Bourne Again Shell de GNU también). El anuncio oficial de esta versión lo hizo en la lista de noticias comp.os.minix, donde posteriormante se sucitaron los primeros debates acerca de Linux. He aquí un fragmento de lo que escribió:



    ``Do you pine for the nice days of Minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on Minix? No more all-nighters to get a nifty program working? Then this post might be just for you.

    As I mentioned a month ago, I'm working on a free version of a Minix-lookalike for AT-386 computers. It has finally reached the stage where it's even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution. It is just version 0.02...but I've successfully run bash, gcc, gnu-make, gnu-sed, compress, etc. under it.''


    Después de esta versión, Linus pasó a la 0.03 y luego a la 0.10 dando un salto cualitativo en cuanto al nivel de programación pues comenzó a emplear el lenguaje C dejando atrás al primitivo ensamblador. En este punto se unieron al proyecto más colaboradores que trabajaban tanto en la programación y corrección de errores como en la detección de los mismos. En marzo de 1992, luego de numerosas revisiones, el kernel de Linux llegó a su versión 0.95, y en diciembre de 1993 ya se contaba con la 0.99.pl141.5, aproximándose cada vez más a la 1.0, que es el número que se le da generalmente a la primera versión libre de errores de un software. La versión 1.0 finalmente se alcanzó el 13 de marzo de 1994. Para ver toda la historia de las versiones del kernel de Linux se puede consultar la dirección: Debido al contenido fuera de tema del link aqui expuesto, se tomo la iniciativa de eliminarlo. Disculpen las molestias ocacionadas. .

    Actualmente existe un equipo de alrededor de 100 personas que se encargan de mejorar y corregir el kernel de Linux. Un grupo muy reducido de ellas lidereadas por Linus Torvalds y que son conocidos como ``key players'', se ocupan de decidir que adaptación o cambio se le hace a cada nuevo kernel. Las distintas versiones del kernel son identificadas utilizando tres números: el primero indica el número principal de la versión, el segundo indica, en caso de que sea impar, que estamos en presencia de un kernel en fase de prueba (no estable aún), por el contrario un número par representa una versión estabilizada. El tercer número indica los parches sucesivos que se le aplican a cada versión sea estable o no. También se utiliza un cuarto número para indicar el release de acuerdo a la distribución (Ver sección ). Un kernel estable puede ser el 2.2.16-22 o el 2.0.3-6. Actualmente el kernel de Linux se encuentra en su versión 2.4.

    Un aspecto muy importante que ha garantizado el acelerado avance de Linux es la forma en que este se concibió en un principio y la que se asumió posteriormente para su desarrollo. Durante la concepción de Linux, Torvalds manifestó siempre su deseo de que este fuera un sistema operativo libre en cuanto a su distribución y mantenimiento y que nadie pudiera obtener dinero por su venta. Posteriormente las versiones oficiales del kernel de Linux han sido distribuidas bajo la licencia pública general GPL (General Plublic License)1.6 de GNU que es menos restrictiva. Esta licencia establece que el sistema se distribuye de forma libre ya que todo aquel que lo posea tendrá la posibilidad de ver el código fuente, modificarlo y redistribuirlo, teniendo como única restricción el mantenimiento de la licencia. La redistribuición podrá cobrarse si se desea pero no se podrá restringir los derechos que da la licencia GPL al comprador. De esta forma se garantiza el desarrollo y perfeccionamiento contínuo del sistema, así como su disponibilidad para cualquier adaptación o mejora por parte de los que lo usen. Este es uno de los aspectos más atractivos de Linux y el que lo ha convertido en uno de los sistemas de más rápido desarrollo en la actualidad. Aunque está basado en Unix, todo su código fuente ha sido reescrito desde cero con una marcada eficiencia y robustez.

    ------------------------------------------------------------------------------------------

    Distribuciones

    Linux es un nombre genérico que se le da a todos los sistemas operativos que empleen un kernel Linux. Pero de nada nos serviría un kernel si no contamos con un conjunto de aplicaciones que permitan interactuar con el sistema más amigablemente. Las aplicaciones para Linux se han desarrollado a la par del kernel por numerosos programadores interrelacionados a través de Internet. De acuerdo a esto se generan varias distribuciones de Linux, cada una con sus características particulares.

    Básicamente una distribución no es más que la agrupación de un kernel, varias aplicaciones, algunas utilidades y un programa de instalación. Existen decenas de distribuciones de Linux1.7. Algunas son conocidas como mayoritarias pues poseen un desarrollo sostenido e independiente, otras son basadas en las anteriores tomando de estas una parte de sus características agradables y modificando otras. También existen micro-distribuciones que pueden almacenarse en uno o dos disquetes. Entre las distribuciones más conocidas y utilizadas pueden citarse a:

    Red Hat Linux1.8

    Mandrake Linux1.9

    Caldera OpenLinux1.10

    Debian/GNU Linux1.11

    SuSE Linux1.12

    Slackware1.13

    Todas ellas ofrecen sus ventajas y desventajas particulares. Para más información se puede consultar los siguientes enlaces:

    http://www.linux.org/dist/

    http://www.linux.about.com/compute/l...istributions5/

    En este entrenamiento utilizaremos la distribución Red Hat en su versión 7.1 (conocida como Seawolf). Esta es una de las más desarrolladas y está muy bien soportada por la compañía comercial del mismo nombre. Red Hat se caracteriza por ser una distribución fácil en su instalación, configuración y mantenimiento. Se perfecciona contínuamente. La mayoría de las aplicaciones Linux están portadas para Red Hat. Es la distibución de Linux de más popularidad en América. Posee como principal inconveniente, en mi criterio, la poca flexibilidad de su programa de instalación nombrado Anaconda, aunque este ha mejorado en comparación con su versiones anteriores. A continuación se listan las últimas versiones de la distribución Red Hat Linux y la fecha aproximada en que fueron liberadas:

    Red Hat Linux 7.3 (Valhalla) - Mayo 2002

    Red Hat Linux 7.2 (Enigma) - Septiembre 2001

    Red Hat Linux 7.1 (Seawolf) - Abril 2001

    Red Hat Linux 7.0 (Guinness) - Septiembre 2000

    Red Hat Linux 6.2 (Zoot) - Febrero 2000

    Red Hat Linux 6.1 (Cartman) - Octubre 1999

    Red Hat Linux 6.0 (Hedwig) - Abril 1999

    Red Hat Linux 5.2 (Apollo) - Noviembre 1998

    Red Hat Linux 5.1 (Manhattan) - Mayo 1998

    Red Hat Linux 5.0 (Hurricane) - Noviembre 1997

    Red Hat Linux 4.2 (Biltmore) - Mayo 1997

    Red Hat Linux 4.1 (Vanderbilt) - Febrero 1997

    Red Hat Linux 4.0 (Colgate) - Noviembre 1996

    --------------------------------------------------------------------------------------------

    Características generales de Linux

    De forma general el sistema operativo Linux presenta las siguientes características:

    Es un sistema operativo multitarea y multiusuario, similar a Unix en muchos aspectos pero completamente independiente de este.

    Surgió como respuesta a las necesidades personales de Linus Torvalds quien lo puso a disposición de todos para su utilización y perfeccionamiento. De ahí que su desarrollo actual se deba a la cooperación de miles de programadores en Internet que se han dedicado tanto al mejoramiento del kernel como al desarrollo y mantenimiento de numerosas aplicaciones conformando decenas de distribuciones.

    Se distribuye bajo la licencia GPL de GNU, lo cual le ha permitido desarrollarse y distribuirse con rapidez, además de ser un sistema fácilmente ajustable a las necesidades personales de sus usuarios o administradores.

    Está portado para numerosas plataformas computacionales. Ejemplos: Intel, Macintosh, Alpha y SPARC.

    Se caracteriza por tener un código muy eficiente que lo convierte en un sistema robusto y estable con un futuro prometedor.

    Posee soporte para gran cantidad de hardware.

    Linux está especialmente orientado al trabajo en redes pues existen numerosas aplicaciones, nativas o portadas para él, que implementan casi todos los protocolos utilizados para la comunicación, tanto el lado cliente como el servidor. Ejemplo de ello son: FTP, HTTP, TCP/IP, PPP, UUCP, SMTP, SNMP, gopher, wais, news, IPX, SMB/CIFS, POP, IMAP, etc. Gracias a esto una máquina Linux puede proveer servicios de correo electrónico, resolución de nombres, news, Web, acceso remoto, compartir recursos a través de la red, etc.

    Las versiones actuales del kernel soportan numerosos sistemas de ficheros como FAT16/32, NTFS (sólo lectura) e iso9660 (para discos compactos). Posee un file system propio denominado ext2 y se desarrollan ext3 y reiserfs con mejoras considerables.

    Ofrece numerosas posibilidades para la programación en diversos lenguajes, tanto interpretados como compilados. Ejemplo de ello son: C, C++, Java, Pascal, SmallTalk, FORTRAN, LISP, Perl, Tcl/Tk y Python. También en Linux se dispone de varios shells como bash, csh, ksh y otros. Todos permiten, además de una interacción más o menos amigable con el sistema, la programación de shells scripts.

    Sobre Linux se implementan diversos ambientes conocidos como interfaces X que son interfaces gráficas cuya funcionalidad y belleza pueden compararse con las de cualquier sistema comercial. Existe una implementación completa del servidor X Window de Unix portada para Linux conocida como XFree86. Entre los ambientes gráficos se destacan KDE, GNOME y WindowMaker. El sistema operativo en sí es completamente independiente de estas aplicaciones para funcionar correctamente.

    Las máquinas Linux se pueden interconectar y relacionar fácilmente con otras con sistemas operativos diferentes como OS/2, Apple Machintosh, Windows 9x y NT.

    En una misma computadora se puede instalar Linux junto a otros sistemas operativos y ejecutarlos luego, indistintamente.

    No requiere necesariamente de grandes recursos de hardware. Sin interfaz gráfica puede ejecutarse correctamente en máquinas con 16 MB de RAM o menos contando además con espacio Swap1.14 en el disco duro. Los requerimientos de espacio en disco pueden hacerse despreciables pues se han logrado micro-distribuciones que caben en un disquete1.15.

    Existen actualmente herramientas que permiten la ejecución de aplicaciones MS-DOS (DOSEMU1.16) y Windows sobre Linux (WINE1.17). También existe una poderosa herramienta conocida como VMWARE1.18 que provee la facilidad de tener varias máquinas virtuales con distintos sistemas operativos ejecutándose a la vez en una misma computadora. Vale aclarar que este último es un producto comercial, por lo que para utilizarlo por tiempo indefinido hay que pagar una licencia.

    -------------------------------------------------------------------------------------------

    Instalación

    Para instalar Linux en una máquina es conveniente conocer de antemano algunas características de su hardware, aunque muchas veces estos aspectos son detectados automáticamente por los programas de instalación. De todos modos siempre es útil tener a mano las características de los siguientes dispositivos:

    Tarjeta de red (si se va a trabajar en red).

    Tarjeta de vídeo (si se va a instalar alguna interfaz gráfica X Window).

    Monitor (si se va a instalar alguna interfaz gráfica X Window). Sólo es necesario conocer la Frecuencia Vertical o de Refrescamiento (FV) y la Frecuencia Horizontal o de Sincronización (FH).

    Mouse (es conveniente tanto para las interfaces gráficas como para la texto).

    Discos duros disponibles y espacio libre en ellos.

    Si existen o no dispositivos SCSI.

    Todos estos aspectos se pueden reconfigurar una vez instalado el sistema, además de que en dependencia de cuan amigable sea el programa de instalación se brindarán sugerencias u opciones posibles a tomar. Los programas de instalación y de configuración de hardware de las distribuciones actuales casi siempre detectan el tipo de los dispositivos presentes en la computadora, pero si no es así no hay porque atormentarse pues las soluciones aparecen siempre y rápidamente. Muchas veces cuando se hace el release de alguna nueva versión de cualquier distribución, enseguida aparecen las actualizaciones (updates) de algunos programas corrigiendo errores detectados en las versiones originales. Este es el caso de la distribución que utilizaremos.

    En cuanto al software, para instalar una máquina Linux, no se necesita conocer de antemano que servicios esta va a brindar en el futuro, pues cualquier programa se puede instalar, desinstalar o configurar con posterioridad. No obstante la posibilidad de hacerlo desde la instalación permite una mayor rapidez en la configuración de la máquina y su puesta a punto.

    ---------------------------------------------------------------------------------------------

    Particionado de discos

    Antes de adentrarse propiamente en los detalles de la instalación de Linux es necesario abordar el tema relacionado con el particionado de los discos duros, ya que en este sistema, es muy útil y casi siempre imprescindible dominar en que consiste y para que sirve este proceso. También es importante conocer acerca del particionado cuando se desea tener, en el mismo disco, además de Linux, otros sistmas operativos.

    El particionado de un disco duro (u otro dispositivo similar) consiste en dividir dicho disco en varias partes o porciones, cada una independiente de la otra en su contenido y manipulación por parte del sistema operativo. De esta forma, cada partición puede poseer un sistema de ficheros propio totalmente limitado al espacio que le corresponde, sin afectar el contenido y/o formato del resto de las particiones con las que convive en el mismo disco.

    Podemos afirmar que el particionado permite, además de una mayor organización, otros dos aspectos muy importantes:

    Separar la información de acuerdo a las distintas fuentes generadoras en el sistema. De esta forma si es necesario afectar la información en una de las particiones (``formatear'') no se perjudicaría el resto de las particiones ni la información contenida en ellas. Por ejemplo se podrían separar los datos de los usuarios en una partición, el sistema operativo en otra, y las aplicaciones de terceros instalarlas1.19 en una tercera partición.

    Restringir el espacio disponible para una acción determinada en el sistema. Por ejemplo: crear una partición para guardar las trazas del sistema operativo permitirá que dichas trazas al aumentar no llenen el disco duro correspondiente.

    El inconveniente mayor del particionado es que en muchas ocasiones se puede derrochar el espacio en una partición y ser necesario en otra. Para resolver este problema sin afectar los datos se pueden utilizar herramientas muy potentes, no obstante siempre existe el riesgo de perder información al realizar los ajustes.

    Como ya se ha afirmado en Linux es necesario particionar el disco aunque sea de forma muy básica. Existen varias sugerencias de como realizar el proceso de acuerdo a diversos criterios tales como: los servicios que va a brindar la máquina Linux, la cantidad de usuarios que van a utilizarla y para qué, la memoria RAM de que se dispone, y por supuesto del espacio libre en disco (sin particionar) que se pueda utilizar.

    En Linux se pueden crear particiones conocidas como Swap, que se utilizan para facilitar la implementación del mecanismo de memoria virtual del sistema operativo. No obstante también se pueden emplear uno o varios ficheros para dicha función, como hacen los sistemas operativos de Microsoft.

    En los sistemas operativos de Microsoft cualquier dispositivo que posea algún sistema de ficheros soportado, se asocia con una letra del alfabeto, por ejemplo para la primera partición se emplea la denominación ``C'', si existieran otras podrían llamarse ``D'', ``E'', etc. Utilizando esta forma se establece de forma lógica un sistema de ficheros de múltiples raíces con ciertas limitantes para los usuarios. En el caso de Linux el sistema de ficheros desde el punto de vista lógico, consiste en una estructura jerárquica pero de una sola raíz que se representa mediante el caracter /. Cualquier partición que se cree se asociará a un directorio descendiente de dicha raíz. La acción de asociar una partición (u otro dispositivo) a un determinado directorio se conoce como ``montar''. En Linux existen además amplias posibilidades de configurar dónde, cómo y quienes pueden montar y desmontar cada dispositivo en el sistema.

    Una forma básica de particionar el disco al instalar Linux consta de las siguientes particiones:


    Una partición para Swap: se recomienda que su tamaño sea mayor que la memoria RAM disponible en la máquina, no excediendo el doble de esta, salvo en algunos casos donde puede recomendarse el triplo de la RAM.

    Una partición raíz: es donde estará todo el sistema (kernel, aplicaciones, datos, etc.) si no se crean particiones más específicas. Se monta en el directorio raíz /. Su tamaño dependerá de todos los aspectos antes mencionados.

    También se pueden crear particiones para las siguientes funcionalidades:

    Guardar los datos de los usuarios del sistema. Se monta en el directorio /home

    Guardar las trazas del sistema. Se monta en /var/log

    Guardar las aplicaciones (fuentes, librerías, binarios, documentación). Se monta en /usr

    Guardar los ficheros temporales. Se monta en /tmp

    Guardar los buzones de los usuarios si se trata de una máquina servidora de correo electrónico. Se monta en /var/spool/mail

    Otros directorios comunes en el sistema de ficheros de Linux son:

    /etc - almacena numerosos ficheros de configuración del sistema y de los servicios que este puede brindar, también contiene algunos programas scripts para manipular los servicios. No puede constituir una partición.

    /bin - contiene los ejecutables de numerosos comandos básicos del sistema. Existen además /sbin, /usr/bin y /usr/sbin que también contienen scripts y ejecutables. No puede constituir una partición.

    /boot - contiene los ficheros de inicio y el kernel del sistema compilado. Puede constituir una partición y en ocasiones es necesario que lo sea.

    /var - contiene un conjunto de directorios y ficheros por lo general en constante transformación y con múltiples propósitos. Puede constituir por si mismo una partición, y/o contener directorios que también lo sean como /var/log o /var/spool/mail

    /usr/local - se puede emplear para instalar en él las aplicaciones de terceros, o sea, aquellas que están en un formato diferente al que emplea la distribución de Linux para manejar sus programas. Puede constituir una partición.

    En Linux, al igual que en Unix, los dispositivos del hardware tiene un tratamiento peculiar pues cada uno se representa a través de un fichero con una sintaxis particular. Estos ficheros son especiales y se crean automáticamente en el directorio /dev una vez instalado el sistema. El sistema los utiliza para copiar y leer en los distintos dispositivos físicos. A estos ficheros se les conoce como dispositivos especiales de caracteres o de bloques.

    Ejemplos:

    Los discos duros con controlador IDE se identifican como hda, hdb, hdc, ..., hdh. A su vez las particiones en el primer disco se representan por hda1, hda2, hda3, ..., hda16

    Los discos SCSI se llaman sda, sdaa, sdab..., sdb, ..., sdz (un total de 128) y las particiones del primer disco, sda1, sda2, sda3, ..., sda15.

    El disquete y la cinta magnética para backup (tape backup) pueden ser fd0 y fd1 respectivamente.

    Las impresoras conectadas localmente se denominan lp0, lp1 y lp2.

    En las computadoras personales actuales con discos IDE existen dos cintas controladoras, cada una con la posibilidad de conectar dos discos, para un total de cuatro discos, incluyendo a la torre de CD-ROM, si esta fuese IDE también. Por tanto en el sistema Linux se identifica al disco master de la primera cinta controladora IDE como hda, al disco esclavo de esa misma cinta como hdb, el master de la segunda cinta IDE es hdc y el esclavo, hdd. El CD-ROM podrá ser cualquiera de los cuatro mencionados en dependencia de como esté conectado a la motherboard. No obstante, en el sistema puede que exista además otro fichero nombrado cdrom en el directorio /dev con el cual se referencia a dicho dispositivo de forma independiente a como esté conectado.

    -----------------------------------------------------------------------------------------

     
     
  2. #2
    Senior Member

    Fecha de ingreso
    08 nov, 04
    Mensajes
    1,611
    La carga de Linux



    Otro aspecto a introducir antes de pasar a describir propiamente el proceso de instalación, y que reviste mayor importancia si se tiene otro sistema operativo previamente instalado, es la forma básica en que se carga un sistema operativo Linux. Para ello la vía más simple y utilizada es un pequeño programa llamado LILO (LInux LOader) que permite cargar tanto Linux como cualquier otro sistema operativo instalado en la misma computadora.



    La parte inicial del LILO se puede ubicar en dos zonas diferentes del disco duro:





    En el MBR (Master Boot Record) del primer disco duro. En esta forma el LILO tomará el control una vez finalizada la ejecución del programa del BIOS, siendo el encargado de iniciar la carga de todos los sistemas operativos instalados en la máquina.



    En el sector de arranque de la partición raíz de Linux o en el de la partición /boot de existir esta. En este caso no será el LILO el programa inicial de carga sino otro que lo referencie como puede ser el cargador de Windows NT. Solo se recomienda esta forma cuando existen otros sistemas operativos instalados previamente como Windows NT o 2000 y se desea conservar el arranque mediante el programa que estos proveen.



    Cuando se tiene previamente instalado solo Windows NT o 2000, no se debe ubicar al LILO en el MBR, pues en este caso se puede borrar el programa de carga de estos sistemas que se ubica también en esa zona en aquellos casos en que no exista además un sistema Windows 9x previamente instalado. En caso de que se tenga Windows 9x en la primera partición entonces este y cualquier otro sistema Windows adicional, se podrá direccionar y cargar utilizando el LILO desde el MBR.



    Cuando se utilice el sector de arranque de una partición para colocar al LILO se deberá crear un disquete de carga del sistema durante la instalación, pues sino será imposible acceder al mismo sin alguna herramienta de recuperación. Luego se podrán seguir los pasos que se explican en la sección (pág. ) para lograr la carga de Linux desde el menú inicial de Windows NT o 2000.



    En el caso de Red Hat, el programa de instalación permitirá configurar (o lo hará automáticamente) el arranque dual de Linux y otros sistemas operativos previamente instalados a través del LILO o de otro cargador como GRUB (GRand Unified Bootloader), disponible a partir de Red Hat 7.2.



    Para más información acerca de LILO y de su configuración puede consultarse la sección (pág. ). También se puede emplear su documentación oficial, particularmente el texto que está en /usr/share/doc/lilo-xxx/doc/User_Guide.ps (donde xxx es el número de la versión del LILO instalado).



    Existen algunas limitaciones en cuanto a la carga de Linux utilizando LILO impuestas por el BIOS de la mayoría de las computadoras con arquitectura Intel. Para verlas puede consultarse la Guía de Referencia de Red Hat 7.1, en el apéndice B la sección titulada ``BIOS-Related Limitations Impacting LILO''1.20. Estas limitaciones básicamente restringen la ubicación de todos los ficheros que intervien en la carga de Linux (agrupados en /boot) antes del cilindro 1024 del primer disco duro.



    --------------------------------------------------------------------------------------------



    Características de la instalación de Red Hat Linux 7.x



    La instalación de Red Hat Linux se puede hacer a través de varios medios. El más simple es mediante el empleo de los dos compactos básicos de la distribución, pero también se pueden colocar los ficheros necesarios para la instalación en el propio disco duro, o acceder a dichos ficheros por la red utilizando los servicios FTP, HTTP o NFS (Network File System).



    La forma más cómoda es empleando los compactos, pues para el resto además de que son más lentas, se necesitará de un disquete para acceder a los paquetes de la instalación ya sea por una u otra vía. La distribución ofrece las imágenes de estos disquetes en el directorio images/, además de la herramienta rawrite.exe (en el directorio dosutils) que permite crear los disquetes correspondientes sobre MS-DOS. Para el caso de la instalación desde disco duro la imagen del disquete correspondiente se nombra boot.img (también se emplea cuando no se puede cargar directamente desde el CD-ROM), y para la red, bootnet.img.



    Cuando comienza el proceso de instalación propiamente, ya sea por un medio u otro, lo primero que se realiza es seleccionar el modo de instalación. Una vez cargado el kernel del sistema y puesto en funcionamiento el programa de instalación, se muestra una pantalla de bienvenida con una ayuda breve acerca de los posibles modos a utilizar. En la parte inferior aparecerá la línea



    boot:



    donde se escribirá el modo seleccionado. Las opciones más importantes se listan a continuación, así como una breve descripción de cada una:



    Modo gráfico : será el que se utilizará por defecto en caso de que se detecten automáticamente la tarjeta de vídeo y el mouse. Este modo es el más cómodo para casi todos los usuarios, pues permite utilizar las capacidades del mouse, además de mostrar la ayuda durante las distintas fases de la instalación.



    Modo texto : se cargará automáticamente si no se detectan el mouse o la tarjeta de vídeo. Para seleccionarlo bastaría con teclear text. En este modo la forma de interactuar es a través del teclado. Se utilizarán las teclas de movimiento tradicionales para mover el cursor mientras que TAB y Alt-TAB permitirán moverse hacia adelante o hacia atrás entre controles. Para marcar o desmarcar un elemento en un check box se utilizará Space y para presionar un botón, Space o Enter. Oprimir F12 equivaldrá a presionar el botón OK. Para ver la ayuda se podrá usar la tecla F1. Esta forma es la que utilizan por lo general todas las aplicaciones Linux con interfaz texto.



    Modo rescate : permite cargar un sistema mínimo para reparar cualquier dificultad que se halla presentado en un sistema ya instalado. Este modo se activa tecleando linux rescue. Se obtendrá un prompt con un pequeño conjunto de comandos que permitirán reconfigurar el sistema o por lo menos copiar la información más importante.



    Modo experto : deshabilita todas las pruebas de detección de hardware automáticas, permitiendo al usuario seleccionar cada driver manualmente. Para utilizarlo se tecleará expert.



    En Linux usualmente se distribuyen los programas o aplicaciones en forma de paquetes. Cada distribución posee su forma particular de empaquetar sus programas aunque hay algunas que se han vuelto estándar, tal es el caso del Red Hat que adopta la forma RPM (RedHat Package Managment). Las distribuciones deben proporcionar además, una herramienta que permite manipular estos paquetes: instalarlos, desinstalarlos, chequear dependencias entre paquetes, ver sus características, entre otras posibilidades.



    Un tipo de instalación se caracteriza fundamentalmente por los paquetes que se instalen y la forma en que se particionan los discos por defecto. Esto último siempre se podrá hacer de forma personalizada. Cada distribución provee varios tipos de instalación. Algunas son muy liberales y otras más restrictivas. Las distribuciones serias actuales traen consigo una guía de instalación y un manual de referencia1.21 que permiten conocer a fondo sus características propias. En el caso de Red Hat 7.x este trae toda su documentación en un CD independiente de los de instalación.



    Actualmente Red Hat 7.x ofrece cuatro tipos de instalación fundamentales:





    1-.

    WorkStation



    2-.

    Server



    3-.

    Custom



    4-.

    Upgrade



    En las tres primeras se almacenará la lista de paquetes instalados en el fichero /tmp/install.log y en la última, en /tmp/upgrade.log.



    Red Hat 7.1 incorpora un tipo de instalación especial para las computadoras portátiles o Laptops.



    --------------------------------------------------------------------------------------------



    Instalación Workstation



    Se instalará una máquina con las funcionalidades básicas para un usuario, además de una interfaz gráfica que puede ser KDE, GNOME, o ambas. No se instala ningún servicio. Si no se particiona el disco manualmente se borrarán todas las particiones Linux existentes de forma previa a la instalación. Si se tienen otros sistemas operativos en la máquina estos se conservarán y el arranque dual a través de LILO se proporcionará automáticamente1.22. LILO se escribirá en el MBR por lo que se borrará el programa de carga de cualquier otro sistema instalado previamente, aunque como ya se dijo LILO brindará la posibilidad de acceder a ellos al igual que a Linux. El particionado automático creará las siguientes particiones:





    Una partición raíz que se monta en / cuyo tamaño dependerá del que haya disponible.



    Una partición para swap de 64 MB.



    Una partición /boot de 16 MB.



    Según la guía de instalación de Red Hat 7.1, para las aplicaciones en una instalación Workstation se requiere un espacio mínimo en disco de 1.2GB si se instala KDE o GNOME solamente, y para ambos, 1.5GB.



    --------------------------------------------------------------------------------------------



    Instalación Server



    En la instalación Server no se instalará ni configurará el sistema X Window. Se podrán seleccionar cuatro tipos de servicios:





    News Server



    NFS Server



    Web Server



    Domain Name Server



    Además se instalarán otros servicios tales como: telnet, FTP, Correo Electrónico (a través del MTA1.23sendmail1.24), Samba, etc.



    En el caso de que se particione de forma automática se borrarán todas las particiones en todos los discos duros y se crearán las siguientes particiones:





    Una partición para swap de 256MB.



    Una partición raíz de 256MB.



    ------------------------------------------------------------------------------------------



    Instalación Custom



    Es el tipo de instalación más flexible pues permite seleccionar lo instalado de acuerdo a grupos de programas o subsistemas. Además, en ella se puede configurar la ubicación del LILO: si es en el MBR del disco o en el primer sector de la partición raíz del sistema. Los grupos de funcionalidades o subsistemas que brinda esta instalación son:





    Printer Support (seleccionado por defecto)

    X Window System (seleccionado por defecto)

    GNOME (seleccionado por defecto)

    KDE

    Mail/WWW/News Tools (seleccionado por defecto)

    Dos/Windows Connectivity

    Graphics Manipulation

    Games

    Multimedia Support (seleccionado por defecto)

    Laptop Support

    Networked Workstation (seleccionado por defecto)

    Dialup Workstation (seleccionado por defecto)

    News Server

    NFS Server

    SMB (Samba) Server

    IPX/Netware(tm) Connectivity

    Anonymous FTP Server

    Web Server

    DNS name Server

    SQL Server

    Network Management Workstation

    Authoring/Publishing

    Emacs

    Development

    Kernel Development

    Utilities

    Everything



    Esta instalación requiere como mínimo 300MB de espacio en disco y como máximo, si se seleccionan todos los paquetes, 2.4GB.



    El particionado también se podrá hacer automático creándose las mismas particiones que en la instalación tipo Workstation.





    Una partición /boot de 16MB.



    Una partición /var de 256MB.



    Una partición de hasta 512MB para /home.



    Una partición de hasta 512MB para /usr.



    Según la guía de instalación de Red Hat 7.1, para las aplicaciones de una instalación tipo Server se requiere un espacio en disco de 650MB en una instalación mínima y de 1.2GB en una instalación completa.



    -------------------------------------------------------------------------------------------



    Actualización o Upgrade



    Cuando se hace upgrade del sistema se actualizan todos los paquetes instalados previamente incluyendo el propio kernel y los ficheros de configuración. Las versiones anteriores de estos ficheros se guardan con la extensión .rpmsave. Si es necesario se instalarán los paquetes nuevos que requieran las nuevas versiones.



    En las versiones más actuales de Red Hat aunque se seleccione una instalación de tipo WorkStation o Server se podrán adicionar o eliminar manualmente otros paquetes durante la instalación



    -------------------------------------------------------------------------------------------



    Configuración del arranque dual



    Si la instalación se realizó sobre una máquina con uno o varios sistemas Windows instalados previamente (con file system fat o vfat en la partición primaria1.25) y se colocó al LILO en el MBR este se configurará automáticamente para reconocer dicha partición y direccionar los programas de carga de Windows ubicados en ella a través de la palabra ``dos''. Para el caso de Linux se direccionará su partición raíz y kernel utilizando la etiqueta ``linux''. En la instalación tipo Custom estas etiquetas se podrán cambiar.



    Siempre que se encienda la máquina y el programa del BIOS termine su ejecución cede el control al LILO. En las versiones anteriores de Red Hat se mostraba el siguiente prompt al final de la pantalla:



    lilo boot:



    Si se teclea en este punto ``dos'' (sin las comillas) se ejecutará el programa de carga del sistema instalado en la partición primaria (probablemente Windows). Si tecleamos ``linux'' o oprimimos ``enter'' entonces se cargará el kernel de Linux instalado. También ocurrirá esto cuando transcurran 5 segundos. Tanto el que se cargue Linux por defecto como el tiempo máximo de espera son aspectos fácilmente configurables. Cuando aparece lilo boot: se podrá pulsar TAB y se mostrarán todas las etiquetas de sistemas o kernels disponibles.



    A partir de la versión 7.0 del Red Hat, se incorporó la facilidad de un menú gráfico cuando carga el LILO. Este brinda una lista con las posibles opciones a seleccionar. Pero el LILO ofrece otras facilidades además de seleccionar el sistema operativo o kernel a cargar, como es el poder indicarle ciertos argumentos al kernel y de esta posibilidad no se dispone en la pantalla gráfica, por lo que si se requiere, se podrá entrar a la interfaz texto presionando Ctrl-x.



    Si se hubiera instalado al LILO en el primer sector de la partición raíz del sistema pues se deseaba continuar iniciando con el programa de carga de Windows, se deberá configurar el menú inicial de Windows añadiéndole una opción que permita cargar a Linux. Para ello se deben seguir los siguientes pasos:







    1-.

    Entrar a Linux con el disco de arranque creado en la instalación.



    2-.

    Copiar el primer sector de la partición raíz donde está LILO en un fichero. Para ello se emplea el comando dd (duplicate disk) que permite hacer copias fieles o imágenes de discos o partes de ellos.

    Ejemplo: Suponiendo que la partición raíz de Linux es /dev/hda2 la línea de comando sería:

    # dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1





    3-.

    Copiar el fichero creado en un disco MS-DOS utilizando el comando mcopy.

    Ejemplo: $ mcopy /bootsect.lnx a:





    4-.

    Reiniciar la máquina en Windows y copiar el fichero creado anteriormente en la partición C.

    Ejemplo: En C:\bootsect.lnx





    5-.

    Editar el fichero boot.ini de Windows añadiendo una entrada para cargar Linux. Esta entrada aparecerá en el menú de inicio de Windows.

    Ejemplo: C:\bootsect.lnx="Red Hat Linux 7.1"





    6-.

    Reiniciar la máquina y entonces aparecerá en el menú de arranque de Windows la opción que permitirá ejecutar el LILO y a su vez cargar Linux.



    En el caso de que el LILO esté en el MBR se puede copiar con la utilidad boot.exe de MS-DOS, además del dd de Linux.



    Ejemplos:



    A:\> boot /r /drive:0 mbr a:\bootsect.lnx # en MS-DOS

    # dd if=/dev/hda of=/boot.lin bs=512 count=1 # en Linux

    Para borrar el LILO del MBR y restablecer el menú de carga de Windows como vía de entrada a la máquina, se puede utilizar la opción no documentada /mbr del programa fdisk de MS-DOS.



    Ejemplo: A:\> fdisk /mbr



    Saludos Cordiales

     
     
  3. #3
    Senior Member

    Fecha de ingreso
    08 nov, 04
    Mensajes
    1,611
    Estructura del Entrenamiento



    El Entrenamiento Básico en Linux permite introducir y profundizar en gran medida, en los principales aspectos de Linux como sistema operativo. De forma general trata de abordar todos aquellos contenidos que permiten una comprensión global y profunda de este sistema partiendo de una experincia previa con otros sistemas operativos como los de la familia Microsoft.



    El entrenamiento se divide en cinco clases o conferencias teóricas de 4 horas de duración. Este manual recoge en forma ordenada y orgánica cada uno de los contenidos impartidos en dichas clases. Cada clase se corresponde con un capítulo dentro del manual. A su vez los distintos temas tratados en el entrenamiento se organizan en secciones y subsecciones. A continuación se describen dichos contenidos siguiendo el mismo orden en que son abordados en el entrenamiento.







    Primera clase: Introducción e instalación de Linux



    Mediante esta clase se explican los siguientes contenidos:



    Historia y filosofía de desarrollo (sección , pág. ): aquí se hace un recuento de como surge Linux, en que fecha se originó la primera versión, quien fue y es su autor principal, para que surgió, como se fue desarrollando, etc. También se aborda el concepto de kernel o núcleo del sistema y que esquema de numeración se sigue actualmente para identificar las versiones de dicho kernel en Linux. Por último se explica cómo es el desarrollo de Linux actualmente y en que forma se distribuye, identificando lo que es licencia GPL, GNU y la FSF.



    Distribuciones (sección , pág. ): en este tema se explica en que consiste una distribución de Linux, como se clasifican y cuales son las principales distribuciones en la actualidad. Se hace incapié en las características principales de la distribución Red Hat Linux, la cual se emplea para el desarrollo del resto de las clases.



    Características generales de Linux (sección , pág. ): aquí se abordan de forma breve las principales características del sistema operativo Linux desde diferentes puntos de vista como son: su forma de distribución, portabilidad, necesidades de hardware, facilidades para el desarrollo de aplicaciones, convivencia y compatibilidad con otros sistemas operativos, etc.



    Instalación (sección , pág. ): en esta parte, inicialmente además de abordar que aspectos del hardware deben conocerse para desarrollar un proceso de instalación de Linux, se introducen algunos temas necesarios para realizar dicho proceso haciendo incapié en la posibilidad de que Linux pueda convivir con otros sistemas operativos. Estos temas son:



    El particionado de los discos (sección , pág. ): describe en que consiste este proceso, para que sirve, que ventajas y desventajas posee, así como la forma en que está concebido en Linux.



    La carga de Linux (sección , pág. ): se explica qué es el programa LILO y en que formas puede instalarse de acuerdo a los otros sistemas operativos que se desee cargar en la máquina.



    Posteriormente se mencionan algunas características del proceso de instalación de la distribución Red Hat Linux (sección , pág. ). Por ejemplo a partir de que medios se puede desencadenar dicho proceso, en que formas se realiza, que tipos de instalación provee Red Hat y las características esenciales de cada uno de estos tipos.





    Configuración del arranque dual (sección , pág. ): en esta parte se abunda acerca de como es el empleo del programa LILO para cargar a Linux y a otros sistemas operativos. También se detallan los pasos a seguir para configurar el cargador de Windows NT o 2000 para a partir de ellos iniciar también a Linux.







    Segunda clase: Interacción con Linux



    Mediante esta clase se explican los siguientes contenidos:



    Consolas virtuales y shells (sección , pág. ): aquí se pretende exponer como es que se puede interactuar con Linux a través de las terminales o consolas virtuales, tanto en modo texto como gráfico, como un usuario se conecta al sistema y qué es el prompt. Se explica además qué es el shell, qué tipos existen y cual se emplea más en Linux. De este último conocido como bash se explican algunas de sus principales ventajas en aras de crear habilidades en el trabajo con la línea de comandos, acuya estructura se dedica también una sección.



    Formas de obtener ayuda (sección , pág. ): en aras de facilitar el aprendizaje de los próximos contenidos a tratar, se dedica una sección a explicar las distintas formas de obtener ayuda en los sistemas Linux, por ejemplo el sistema de manuales, el sistema ``info'', LDP, Internet, etc.



    Usuarios y grupos (sección , pág. ): en esta parte se explican los conceptos de usuario y grupo en el sistema Linux y la forma en que se manejan por el sistema.



    Sistema de ficheros (sección , pág. ): aquí se trata en esencia la forma en que se organizan físicamente los ficheros en los sistemas Linux. También se dan a conocer algunos aspectos relacionados con la organización lógica del sistema de ficheros así como de los permisos que existen. En esta última parte además de abordar el tema desde el punto de vista teórico, se describen los comandos que permiten consultar, modificar y establecer los permisos por defecto. Por último se introduce el concepto de enlace en el sistema de ficheros de Linux.





    Tercera clase: Comandos y profundización en bash



    Mediante esta clase se explican los siguientes contenidos:



    Comandos básicos (sección , pág. ): en este tema se mencionan, describen y ejemplifican una gran gama de comandos básicos que son muy útiles para interactuar con el sistema Linux desde el shell. Para una mejor comprensión, dichos comandos se agrupan de acuerdo a la utilidad que brindan, por ejemplo: comandos para manejar el sistema de ficheros, comandos para visualizar y editar ficheros, comandos para hacer búsquedas, comandos para compactar ficheros, comandos para administrar usuarios y grupos, etc. De esta forma se recogen comandos como: ls, cd, pwd, mkdir, mv, cp, rm, chown, cat, less, more, grep, locate, find, head, tail, pico, vi, gzip, tar, file, alias, sort, w, who, ping, du, write, wall, finger, useradd, userdel, passwd, su, type, etc.



    Flujos de datos (sección , pág. ): este tema recoge una de las ventajas más importantes de los shells en Linux: se trata de la posibilidad de redireccionar los distintos flujos de datos (entrada, salida, etc.) que posee un proceso, hacia o desde un fichero. Además en este tema se explica en que consisten las tuberías o encaminamientos (pipes) que también es un mecanismo muy potente para conectar los flujos de datos de los procesos en el shell.



    Entornos de trabajo en bash (sección , pág. ): aquí se introducen algunos aspectos más avanzados respecto al shell bash. Estos están relacionados con las facilidades que brinda dicho shell para adecuarlo, mediante: variables del entorno y ficheros perfiles. Por último se explican las dos formas de ejecución de un programa en bash.







    Cuarta clase: Algunos elementos de administración e interfaces gráficas



    Mediante esta clase se explican los siguientes contenidos:



    Procesos (sección , pág. ): en este tema se aborda la forma de administrar los procesos en Linux. Se describe en que consiste un proceso, qué lo caracteriza, como pueden visualizarse los procesos actuales en el sistema y sus características, como interactuar con ellos, que facilidades ofrece el shell bash en ese sentido y como alterar la prioridad de los procesos. De esta forma se mencionan y describen los comandos: ps, top, bg, fg, jobs, kill, nice, renice y nohup.



    Interfaces gráficas (sección , pág. ): en este tema se abordan las características novedosas que tiene el sistema de interfaces gráficas de Linux nombrado X Window. Se explica la arquitectura cliente-servidor de este sistema y las potencialidades que brinda dicha arquitectura. Además se aclaran y ejemplifican los conceptos Gestor de Ventanas (Window Manager), Entorno Gráfico de Escritorio (Graphical Desktop Environment) y Gestor de Pantallas (Display Manager). Luego se explica y ejemplifica la forma de ejecutar aplicaciones gráficas de forma remota, tanto aplicaciones independientes como sesiones gráficas completas mediante XDMCP.



    Dispositivos de almacenamiento (sección , pág. ): este tema amplía las cuestiones relacionadas con la manipulación de los dispositivos en Linux, en particular los dispositivos que se emplean para almacenar datos como son los discos duros (particiones), los disquetes, los discos compactos, etc. Para esto se estudia el fichero del sistema fstab, los comandos mount, umount y df. Además se mencionan y describen una serie de comandos afines con el tema comos son: fdformat, mkfs, dd, fsck, mkbootdisk, las herramientas MS-DOS, etc. Como parte de este tema también se hace referencia al particionador estándar de Linux fdisk, así como la forma de crear y activar particiones y ficheros Swap.



    Instalación de paquetes (sección , pág. ): en este tema se aborda como es el manejo de los paquetes en la distribución Red Hat Linux. Mediante los paquetes se logra la instalación, actualización, desinstalación y la realización de consultas acerca de las aplicaciones en el sistema. Para ello se estudia el comando rpm que permite todas estas facilidades. También se describen las reglas básicas que deben seguirse para realizar correctamente la actualización de los paquetes en el sistema.







    Quinta clase: Nuevos elementos de admnistración

    Mediante esta clase se explican los siguientes contenidos:



    Configuración del LILO (sección , pág. ): en este tema se explica la forma básica de configurar al LILO, el cargador de Linux. Esto es necesario fundamentalmente cuando se quiere configurar la carga de otros sistemas operativos en la misma máquina o cuando se instala otro kernel en el mismo sistema Linux.



    Aplicaciones para la administración y configuración del sistema (sección , pág. ): en este tema se mencionan y describen una serie de aplicaciones de los sitemas Red Hat Linux que permiten configurar y/o administrar algunos aspectos en el sistema. Una parte de estas aplicaciones se trabajan desde el shell (interfaz texto) y otras son de entornos gráficos. Ejemplos: setup, netconfig, kbdconfig, sndconfig, lokkit, Xconfigurator, linuxconf, printtool, ksysguard, kuser, gnorpm, entre otras.



    Definición de tareas periódicas (sección , pág. ): en este tema se explican los tipos de tareas periódicas que se pueden crear en Linux y como se define cada una. Se mencionan las tareas tipo at, tipo cron y tipo anacron distinguiendo entre aquellas que son para los usuarios y las del sistema.



    Inicialización y configuración del sistema (sección , pág. ): en este tema se explica como es el proceso de inicialización de un sistema Linux de estilo System V. Asociado a esto se explica el concepto de run level o nivel de corrida, se presentan los scripts de inicio para el manejo de servicios y se detalla la estructura del fichero de configuración inittab. También se explica como activar, conocer el estado y desactivar los distintos servicios y subsistemas mediante los scripts de inicio, así como establecer la acción a realizar para cada run level. Se mencionan los comandos init, runlevel, chkconfig y service.



    Introducción al servicio de impresión (sección , pág. ): en este tema se introducen los aspectos necesarios para comprender el sistema de impresión de Linux. También se mencionan y describen los comandos básicos para utilizar dicho servicio desde el shell.



    Desinstalación del sistema (sección , pág. ): en esta parte se explica como desinstalar de forma sencilla un sistema Linux.

     
     
  4. #4
    Senior Member

    Fecha de ingreso
    08 nov, 04
    Mensajes
    1,611
    Interacción con Linux

    Sumario

    Consolas virtuales y shells

    Formas generales de obtener ayuda

    Usuarios y grupos

    Sistema de ficheros

    --------------------------------------------------------------------------------------------

    Consolas virtuales y shells

    Una vez instalado e inicializado un sistema Red Hat Linux se dispone de dos vías fundamentales de interacción: una gráfica (si se instaló una interfaz X y se configuró adecuadamente la máquina -tarjeta de vídeo, fundamentalmente) y una texto conocida como consola o terminal.

    Al igual que Unix, Linux ofrece el mecanismo de consolas o terminales virtuales. Este consiste en que a partir de una entrada (el teclado) y con una salida (el monitor) se simulen varias terminales, donde el mismo, o distintos usuarios puedan conectarse indistintamente. De esta forma es posible tener más de una sesión abierta en la misma máquina y trabajar en ellas indistintamente. Este mecanismo también facilita la característica multiusuario del sistema Linux pues las diferentes conexiones se pueden establecer con diferentes usuarios.

    Por defecto en Red Hat, las consolas desde la uno a la seis tienen asociado un programa que permite conectarse al sistema en modo texto, mientras que la siete, si se instaló y activó el ``modo gráfico'', constituye una consola gráfica.

    El cambio de una consola a otra se realiza a través de la combinación de teclas Alt y Fx, donde x oscila entre 1 y 12. De esta forma se pueden acceder un total de 24 consolas virtuales: para las doce primeras se utiliza el Alt izquierdo y para las otras doce el derecho. Por ejemplo para llegar a la consola 16 se presionarían las teclas Alt derecho y F4. No obstante normalmente solo se puede acceder a las consolas con algún proceso o funcionalidad definida.

    Desde una consola gráfica para cambiar a otra tipo texto se debe además presionar la tecla Ctrl, pues las combinaciones Alt + Fx son capturadas e interpretadas por las aplicaciones gráficas de otra forma.

    Con la tecla Alt izquierda combinada con las flechas cursoras (derecha e izquierda) se puede además, realizar un movimiento circular entre todas aquellas consolas que tengan un proceso asociado (texto, gráfico, etc.).





    Figura: Esquema que representa la estructura básica de un sistema Linux


    Si nos remitimos a una consola texto podremos apreciar que en ella se mostrará para el caso de Red Hat, el nombre de la distribución, el release, la versión del kernel y la arquitectura de la máquina. También aparecerá el nombre que se le asignó al sistema en la instalación2.1 y la palabra login. Aquí puede entrarse el login de un usuario del sistema (seguramente root, si no se crearon más cuentas durante la instalación). Luego se pedirá el password que al ser entrado no se muestra ningún eco en la pantalla. Si ambos son válidos se establecerá la conexión y se mostrará lo que se conoce como prompt, con forma similar a esta:


    [root@sion /root]$

    Para abreviar, en lo sucesivo se colocará el caracter $ para hacer referencia al prompt de un usuario común, y # para el prompt del superusuario root.

    Al igual que en Unix, el programa que se ejecuta en Linux cada vez que un usuario se conecta y que le permite interactuar con el sistema se conoce como shell o concha. Este es capaz de interpretar una gran gama de comandos y sentencias. Constituye a su vez un poderoso lenguaje de scripting. Muchos programas y comandos son shell scripts, por lo que el conocer este lenguaje permite no sólo entenderlos y ajustarlos a las necesidades particulares sino también, hacer nuevos scripts para automatizar diversas tareas.

    Existen muchos tipos de shells orientados a caracteres portados para Linux.

    Ejemplos:


    ash: A shell

    csh: C shell

    tcsh: una extención al C shell

    ksh: Korn Shell

    bsh: Bourne Shell

    bash: Bourne Again Shell

    Algunos shells se originan de otros o toman sus características más avanzadas. De los mencionados anteriormente bash clasifica como el más empleado en Linux. Este es un producto de la FSF (Free Software Foundation). Es uno de los más desarrollados y está portado para múltiples plataformas. Toma las facilidades de csh y ksh. Ofrece entre otras posibilidades las siguientes:

    1-.

    Completamiento durante la escritura


    Al teclear uno o varios caracteres se puede pulsar TAB con el objetivo de que en caso de que pueda completarse de forma unívoca un comando, nombre de fichero o una variable (en dependencia del contexto), se realice el completamiento de forma autómatica (se escriba el resto de la palabra). Si existieran varias posibilidades de completamiento se oirá la campana del sistema y volviendo a pulsar TAB se mostrarán en pantalla todas las posibilidades existentes. En caso de existir muchas posibilidades (por defecto más de 100) se pregunta si se desea mostrarlas todas o no.

    2-.

    Historial de comandos

    Esta es una facilidad de muchos otros shells que permite el movimiento a través de los últimos N comandos ejecutados, en la sesión actual o en las anteriores. N por defecto es 1000, pero puede modificarse.


    3-.

    Poderosas estructuras de control

    Ejemplos: if, for, while, select y case

    4-.

    Definición de funciones y alias para comandos

    Las funciones permiten definir subrutinas programadas usando el lenguaje de bash y los alias, asociar nombres a llamados a comandos con ciertas opciones y argumentos de forma más nemotécnica o abreviada. En la sección (pág. ) se explica como definir un alias.

    5-.

    Diversas combinaciones de teclas asociadas a funciones y comandos

    Ejemplos:

    !prefijo

    Ejecuta la última línea de comando que comience con el prefijo indicado y que esté almacenada en el historial de comandos.

    Esc .

    Escribirá en pantalla el último argumento del último comando ejecutado (``Esc'' se refiere a presionar la tecla del mismo nombre). También puede usarse Esc _

    Ctrl l

    Limpia la terminal.

    Ctrl i

    Completa durante la edición de la línea de comandos (equivalente a TAB).

    Esc = y Esc !

    Ofrecen sugerencias para el completamiento durante la escritura.

    Esc l y Esc u

    Permiten convertir lo escrito a partir del cursor en minúscula y mayúscula respectivamente.

    Existe además la posibilidad de cambiar estas asociaciones o definir otras a través del comando bind.

    6-.

    Opciones de edición de la línea de comando tipo emacs o vi2.2

    Esta posibilidad permite editar la línea de comando con más facilidad

    Ejemplos:

    Ctrl a - mueve el cursor al inicio.

    Ctrl e - mueve el cursor al final.

    Ctrl k - borra desde el cursor hasta el final.

    Ctrl u - borra desde el cursor hacia adelante.

    Alt f - mueve el cursor una palabra hacia adelante.

    Alt b - mueve el cursor una palabra hacia atrás.

    End, Home, Delete, BackSpace, etc.

    7-.

    Facilidades para el manejo de procesos

    Serán discutidas más adelante en la sección

    8-.

    Múltiples secuencias de caracteres especiales para variar el prompt

    Permiten configurar el prompt de cada usuario de acuerdo a su gusto personal. En la sección (pág. ) se describen estas secuencias.

    -----------------------------------------------------------------------------------------

    Comandos

    La forma de trabajar con el sistema en el entorno texto es a través del empleo de numerosos y diversos comandos. Los comandos en esencia, son programas que permiten, dados ciertos argumentos y opciones, desencadenar una acción en el sistema generando cierta salida. El shell es el que se encarga de interpretar y ejecutar una línea de comando, la cual por lo general toma la forma:

    <nombre_del_comando>
    [lista_de_opciones]
    [lista_de_argumentos] <retorno>

    En muchos casos, las opciones pueden mezclarse con los argumentos siempre y cuando no se afecte la interpretación del comando.

    Las opciones generalmente poseen las formas siguientes:

    -x [valor]

    --xxxx [valor]

    --xxxx=valor

    xxx=valor

    Por lo general las opciones se separan por espacios. En el primer caso, si no llevan valor asociado, pueden ponerse unidas con un único signo menos. A veces este también se puede omitir si no afecta la interpretación.

    Ejemplos:

    $ ls --help

    $ rm -r basura.sucia -f

    $ mkdir -mode=755 tmp

    $ mount -t ext2 /dev/fd0 /mnt/floppy

    $ tar cvfz tesis.tgz tesis/

    $ dd if=/dev/hda of=/mnt/floppy/boot_sector count=1

    $ ps axu

    $ rpm -qa

    ----------------------------------------------------------------------------------------</retorno></nombre_del_comando>

     
     
  5. #5
    Senior Member

    Fecha de ingreso
    08 nov, 04
    Mensajes
    1,611
    Formas generales de obtener ayuda



    Existen múltiples y variadas formas de obtener ayuda en un sistema Linux. A continuación se describen algunas de ellas:





    Muchos comandos poseen una opción para mostrar una ayuda breve acerca de su utilización. Esta opción usualmente es -h, --help ó -?.



    El comando man formatea y despliega un manual bastante amplio acerca de comandos, formatos de ficheros de configuración, llamados al sistema, etc. Los manuales están disponibles y pueden instalarse en múltiples idiomas. Estos se dividen internamente en secciones. Un mismo objetivo puede estar representado en varias secciones. De no especificarse ninguna sección a través del primer argumento del comando se tomará la primera donde aparezca. A continuación se listan las secciones del man:





    1-.

    User commmands



    2-.

    System calls



    3-.

    Subroutines



    4-.

    Devices



    5-.

    File Formats



    6-.

    Games



    7-.

    Miscellanous



    8-.

    System Administration



    9-.

    New



    Sintaxis: man [opciones] [sección] <nombre>



    Ejemplos:



    $ man man

    $ man chmod

    $ man 5 shadow

    $ man -a passwd # despliega todas las secciones donde aparece el objetivo



    Existe un conjunto de comandos integrados (builtin) al bash que no poseen un manual propio. Para ellos se puede emplear el comando help. Si se usa man sólo se mostrará la lista de los comandos integrados. La ayuda que muestra help es un fragmento del manual de bash ($ man bash), el cual es muy amplio y resulta incómoda la búsqueda. Algunos de los comandos integrados al bash y que veremos más adelante son: cd, fg, bg, logout, exit, umask, set, help, source, alias, echo, kill, jobs y export.

    Ejemplo: $ help logout





    El programa info despliega información acerca de comandos, en ocasiones más amplia que la que brinda man. Las páginas de info poseen una estructura arbórea (nodos), a través de las cuales se puede navegar con ayuda de comandos especiales.

    Ejemplo: $ info ln





    El comando whatis realiza una búsqueda en las secciones del man y muestra la descripción abreviada del comando en cada una de las secciones que aparezca. Este comando trabaja con una base de datos que se actualiza periódicamente y se crea con el comando makewhatis. Ejemplo: $ whatis shadow



    El comando apropos, dada una palabra busca en toda la base de datos del whatis desplegando todo lo encontrado. Ejemplo: $ apropos passwd



    Muchos programas se empaquetan con su documentación en diversos formatos2.3. En el caso de Red Hat estas se agrupan en el directorio /usr/share/doc. También existen los HOWTOs (Como lograr...) escritos en muchos idiomas y formatos para varios temas disponibles. Algunos se empaquetan como cualquier otro programa o se localizan en Internet2.4



    En Internet de forma general existen una gran cantidad de grupos de noticias, listas de discusión, sitios Web y FTP sobre Linux.

    Ejemplo:





    The Linux Home Page at Linux Online

    LinuxWorld: Open Source Solutions for the Enterprise

    Linux.com | The source for Linux information

    Linux Journal | The Original Magazine of the Linux Community

    http://www.linuxpapers.org

    Linux Today - Linux News On Internet Time.

    Linux HeadQuarters







    LDP (Linux Documentation Project): es un proyecto para la documentación de Linux que incluye el desarrollo en varios idiomas de algunas guías, de los HOWTOs, las FAQ (Frequently Asked Questions), las páginas del man y una revista de Linux. Algunas de las guías son:



    Installation and Getting Started Guide



    The Linux System Administration Guide (sag)



    The Linux Network Administrators' Guide (nag)



    The Linux Programmer's Guide



    The Linux Users' Guide



    The Linux Kernel



    Toda esta información está disponible en múltiples formatos e idiomas en: www.linuxdoc.org [5]



    --------------------------------------------------------------------------------------------



    Usuarios y grupos



    Como ya se ha afirmado Linux es un sistema multiusuario, lo cual permite que varios usuarios puedan conectarse y trabajar en él de forma simultánea. Las conexiones como ya se ha visto se pueden realizar a través de varias terminales locales o utilizando servicios de red como el Telnet y el SSH.



    Un usuario se caracteriza por su login el cual debe indicar para conectarse al sistema, además de su password o contraseña. Además puede poseer un conjunto de datos adicionales mencionados más adelante.



    El usuario con más privilegios en Linux es aquel cuyo login es root. Este es el único con derechos suficientes para crear o eliminar a otros usuarios, además de acceder a todo el sistema de ficheros sin ninguna restricción.



    En Linux además existen grupos de usuarios también administrados por root o por un usuario designado por este. Los grupos permiten otorgar los mismos privilegios a un conjunto de usuarios.



    Siempre que se añada un usuario al sistema se creará un grupo con su mismo nombre, llamado grupo primario. Durante la creación o posteriormente, se podrá incorporar el usuario a otros grupos secundarios.



    Tanto los usuarios como los grupos se identifican por el sistema a través de un identificador (ID) numérico. El usuario root siempre tiene el ID cero. Cada usuario cuando se conecta al sistema posee un identificador de usuario asociado (uid) y un identificador de grupo (gid).



    Al añadir un usuario también se creará un directorio base para el mismo con el nombre de su login. Este directorio se coloca por defecto en el directorio /home excepto para root, cuyo directorio base es /root.



    La información asociada a los usuarios en un sistema Linux se guarda en el fichero /etc/passwd y las contraseñas y datos afines en /etc/shadow. Por su parte la información de los grupos, sus miembros y passwords están en /etc/group y /etc/gshadow respectivamente.



    --------------------------------------------------------------------------------------------



    Sistema de ficheros



    Una de las características más importantes de Linux es que soporta una gran cantidad de sistemas de ficheros diferentes. Esto le permite convivir e interactuar con otros sistemas operativos. Ejemplos de sistemas de ficheros soportados en Linux son: ext, ext2, ext3, reiserfs, msdos, vfat, xia, minix, umsdos, proc, smb, ncp, iso9660, sysv, hpfs, affs y ufs. El sistema de ficheros propio de Linux es el conocido como ext2 y más recientemente, el ext3. Los elementos de dicho sistema de ficheros se pueden clasificar en:



    Ficheros



    Directorios



    Enlaces simbólicos



    Dispositivos de caracteres y de bloques



    Tuberías (pipes) y sockets



    Físicamente un fichero no se almacena de forma continua en los distintos dispositivos de almacenamiento. Aunque los sistemas de ficheros de Linux tienden a la continuidad física en la medida que se empleen más frecuentemente (a diferencia de Windows), siempre existe la posibilidad de que el contenido de un fichero se fragmente en pequeños bloques de longitud fija no contínuos en el disco. Debido a esto es necesario la existencia de una estructura adicional que direccione estos bloques para cada fichero. Esta estructura en Unix se conoce como i-nodo y almacena, entre otras características, las direcciones físicas de los bloques que constituyen un fichero. Cada i-nodo ocupa un área fija (4k), pequeña y continua, y se identifica a través de un número entero. Su estructura está formada por los siguientes campos:





    El tipo del fichero y sus permisos.



    El identificador del usuario dueño y del grupo del fichero.



    La cantidad de bytes del fichero.



    Los tiempos de: último acceso al fichero (lectura o ejecución), última modificación del fichero (escritura), última modificación del i-nodo.



    Las direcciones de los 20 bloques directos del fichero, del indirecto de primer nivel, del indirecto de segundo nivel y del indirecto de tercer nivel.



    En la figura se representa el esquema de un i-nodo.



    </nombre>
    <nombre></nombre>
    <nombre></nombre>
    <nombre>


    Figura: Esquema que representa las partes de un i-nodo



    El sistema de ficheros de Linux de forma lógica posee una estructura arbórea cuya raíz es única y se representa por / que además constituye el caracter separador en el camino (path) de cualquier recurso del sistema. En la figura se muestra un esquema general de los principales directorios presentes en el sistema de ficheros de Linux.



    </nombre>
    <nombre></nombre>
    <nombre></nombre>
    <nombre>


    Figura: Estructura lógica en el sistema de ficheros de Linux



    Para nombrar los ficheros es posible emplear una cantidad no mayor de 256 caracteres que pueden ser de cualquier tipo con excepción de /, por ser el separador de caminos (path). De todos modos es conveniente no incluir caracteres especiales que son interpretados por el shell de otra manera (ver apéndice , pág. ). No existe el concepto de extensión asociada a un fichero, aunque en muchos casos se utiliza para dar una idea acerca de su contenido. Linux es un sistema case sensitive, o sea no es lo mismo el fichero ``document.ps'' que ``DocumenT.ps''. Los ficheros ``ocultos'' en Linux son aquellos cuyo nombre comienza con el caracter ``.''.



    En todos los directorios existen dos ficheros ocultos especiales nombrados ``.'' y ``..'', el primero se refiere al directorio actual y el segundo, al directorio padre.</nombre>

     
     
  6. #6
    Senior Member

    Fecha de ingreso
    08 nov, 04
    Mensajes
    1,611
    Permisos



    Cada uno de los elementos del sistema de ficheros de Linux posee permisos de acceso de acuerdo a tres tipos de usuarios:





    Su dueño (casi siempre el creador) representado por la letra u (user).



    Su grupo representado por la letra g (group).



    El resto de los usuarios que no son el dueño ni pertenecen al grupo. Se representa con o (other).



    Nota: Para representar a todos los tipos de usuarios se utiliza la letra a (all).



    Para cada uno de estos tres grupos de usuarios existen tres tipos de permisos fundamentales:





    r: read (lectura). El usuario que tenga este permiso podrá si es un directorio, listar los recursos almacenados en él, y si es cualquier otro tipo de fichero podrá leer su contenido.



    w: write (escritura). Todo usuario que posea este permiso para un fichero podrá modificarlo. Si se posee para un directorio se podrán crear y borrar ficheros en su interior.



    x: execute (ejecución). Este permiso para el caso de los ficheros permitirá ejecutarlos desde la línea de comandos y para los directorios, el usuario que lo posea tendrá acceso para realizar el resto de las funciones permitidas mediante los otros permisos (lectura y/o escritura).



    Para determinar los permisos finales siempre se deben tener en cuenta los siguientes aspectos:





    Para poder realizar operaciones sobre cualquier directorio (leer o escribir) será necesario siempre, tener otorgado además el permiso de ejecución.



    Para acceder a un recurso de cualquier forma (ejecución, lectura o escritura) se deben tener permisos de ejecución para todos los directorios que contienen al recurso directa e indirectamente.



    Los tres tipos de permisos mencionados poseen una representación numérica basada en el sistema octal que parte de representar como ``1'' los bits de los permisos otorgados y ``0'' para los negados. Luego se transforma la representación binaria así obtenida en octal. De esta forma se obtienen para cada tipo de permiso los siguientes valores:







    r-- = 100 (4 en octal)

    -w- = 010 (2 en octal)

    --x = 001 (1 en octal)



    La combinación de los tres tipos de permisos para un tipo de usuario oscila desde cero (ningún permiso) hasta siete (todos los permisos).



    Ejemplos:





    rw- = 110 (6 en octal)

    rwx = 111 (7 en octal)

    r-x = 101 (5 en octal)



    Los permisos ``totales'' de un recurso constan de nueve indicadores, donde los tres primeros indican los permisos asociados al dueño, los otros tres, al grupo y los últimos, al resto de los usuarios.



    Ejemplos:





    rwx r-x --- = 111 101 000 (750 en octal)

    rw- r-- r-- = 110 100 100 (644 en octal)



    Sólo el dueño de un recurso siempre tendrá derecho a cambiar sus permisos, además de root.



    Existen otros tipos de permisos más complejos:





    s y S : es un permiso que de no administrarse correctamente puede provocar problemas de seguridad. Para su representación a través de caracteres se utiliza el lugar del permiso de ejecución y de ahí la diferencia entre s y S: si es s (minúscula) significa que incluye además el permiso de ejecución a diferencia de S (mayúscula). Este permiso se puede asociar al dueño o al grupo del recurso. Si se asocia a un fichero significa que cuando este se ejecute por un usuario que tenga permisos para ello adquirirá los permisos de su dueño o grupo en depencia de a cual de los dos está asociado el permiso. Un ejemplo de fichero con este permiso es el comando passwd, el cual adquiere los permisos de root al ser ejecutado por los usuarios (sin argumentos) para poder modificar el fichero /etc/shadow que es donde se guardan las contraseñas de los usuarios. Para el caso de un directorio este permiso sólo tiene validez para el grupo del mismo permitiendo a los ficheros y a los subdirectorios que se creen en él heredar el grupo, los subdirectorios heredarán también el permiso s. Un ejemplo de directorio con este permiso es aquel donde se guardan los documentos de un sitio FTP anómimo. Este permiso se conoce como setuid bit o setgid bit, para el usuario y el grupo, respectivamente.



    t y T : cuando está asociado a un directorio junto al permiso de escritura para un grupo de usuarios, indica que estos usuarios pueden escribir nuevos ficheros en el directorio pero estos sólo podrán ser borrados por sus dueños o por root. Para un fichero el permiso expresa que el texto de este se almacena en memoria swap para ser accedido con mayor rapidez. Este permiso sólo se asocia al resto de los usuarios y para su representación se emplea el bit correspondiente al permiso de ejecución: si es t (minúscula) significa que incluye además el permiso de ejecución y T (mayúscula) no lo incluye . Ejemplo de un directorio con este permiso es /tmp donde todos los usuarios pueden escribir pero sólo los dueños pueden borrar sus ficheros, además de root. Este permiso se conoce también como sticky bit.



    Para representar los permisos t y s en el sistema binario se utilizan tres bits adicionales: el primero para s en el dueño, el segundo para s en el grupo y el tercero para t. Estos se colocan al inicio de la cadena numérica de nueve bits vista anteriormente. En la cadena de caracteres se mezclan con el permiso de ejecución y de ahí la necesidad de emplear las mayúsculas y minúsculas.



    Ejemplos:





    rws rwS r-- = 110 111 110 100 (6764 en octal)

    rwx rws -wT = 011 111 111 010 (3772 en octal)



    Después de toda esta introducción teórica a los permisos en Linux veamos como estos se muestran, modifican y se les asigna un valor por defecto.



    Posiblemente el comando más empleado en Linux es aquel que muestra el contenido de un directorio, llamado ls. Este comando con la opción -l permite observar los permisos que tienen asociados los recursos listados, además de otras características. Los permisos se muestran a través de una cadena de 10 caracteres donde el primero indica el tipo de recurso que es:





    d : directorio

    l : enlace simbólico (ver sección )

    b : dispositivo de bloque

    c : dispositivo de caracteres

    s : socket

    p : tubería (pipe)

    - : fichero regular



    Los otros nueve caracteres representan propiamente a los permisos del recurso. El resto de las columnas de la salida representan para cada elemento:





    El número de enlaces duros que posee (ver sección ). En el caso de un directorio, indica la cantidad de subdirectorios que contiene contando a los directorios especiales ``.'' y ``..''.



    El identificador del dueño.



    El identificador del grupo.



    El tamaño en bytes si es un fichero y si es un directorio el tamaño en bloques que ocupan los ficheros contenidos en él.



    La fecha y hora de la última modificación. Si la fecha es seis meses antes o una hora después de la fecha del sistema se coloca el año en lugar de la hora.



    El nombre del recurso.

    Ejemplos:



    drwx---r-x 3 alina alina 4096 Oct 11 12:52 doc

    -rw-r--r-- 1 alina alina 330106 Sep 7 08:39 tesis.tgz

    drwxrwxrwt 5 root root 1024 Nov 15 10:40 tmp

    lrwxrwxrwx 1 alina alina 21 Oct 1 09:46 curso -> ../documentación

    brw-rw---- 1 root disk 3, 1 Fri Mar 23 2001 /dev/hda1



    En la sección se mencionan otras opciones del comando ls.







    Para cambiar los permisos de un recurso se utiliza el comando chmod.



    Sintaxis: chmod [opciones]
    <ficheros>



    Las formas de expresar los nuevos permisos son diversas, se puede emplear la representación numérica o utilizando caracteres.



    Ejemplo:



    $ chmod u+x clase.txt # añade el permiso de ejecución al dueño

    $ chmod g=rx program.sh # asigna exactamente los permisos de lectura y ejecución al grupo

    $ chmod go-w profile # elimina el permiso de escritura en el grupo y en otros

    $ chmod a+r,o-x *.ts # adiciona el permiso de lectura para todos los usuarios y elimina

    # el de ejecución para otros

    $ chmod +t tmp/ # adiciona el permiso especial t

    $ chmod 755 /home/pepe/doc/ # asigna los permisos con representación octal 755 (rwxr-xr-x)

    $ chmod -R o+r apps/ # adiciona el permiso de lectura a otros para un directorio de

    # forma recursiva (incluyendo todo su contenido)

    $ chmod +x ./bin/* # adiciona el permiso de ejecución a todos los usuarios que les

    # corresponde por defecto

    # chmod 4511 /usr/bin/passwd # asigna los permisos con representación octal 4511 (r-s--x--x)



    Para determinar cuales permisos se asocian por defecto a los ficheros o directorios creados, cada usuario posee una máscara de permisos. Esta se expresa en el formato numérico octal o sea posee tres digitos entre cero y siete (Ej. 166). La máscara indica que permisos no se desea que tenga el recurso creado. Por defecto esta máscara es 002 para los usuarios comunes y 022 para root2.5. La máscara realmente se asocia al shell y se hereda por los subshells2.6.



    Para calcular los permisos finales dado que se tiene la máscara 022, se hace la siguiente operación por parte del sistema:



    Ficheros = totales_para_ficheros - máscara = 666 - 022 = 644 = -rw-r--r--



    Directorios = totales_para_directorios - máscara = 777 - 022 = 755 = drwxr-xr-x



    Para colocar u observar la máscara se puede emplear el comando umask. Sintaxis: umask [-S] [máscara]



    Ejemplos:



    $ umask # sin argumentos muestra la máscara actual en formato numérico

    022



    $ umask -S # muestra el complemento de la máscara en formato de caracteres

    u=rwx,g=r,o=r



    $ umask -S 037 # asigna la máscara 037 (niega permisos de ejecución y de escritura para el grupo,

    u=rwx,g=r,o= # y todos los permisos para el resto de los usuarios). Se muestra el resultado en

    # formato de caracteres



    $ umask g=rx,o= # especifica el complemento la máscara utilizando el formato de caracteres



    Para ser bien restrictivos se recomienda hacer: $ umask 077



    Los nuevos directorios tendrán el permiso: 700 = drwx------



    Los nuevos ficheros tendrán el permiso: 600 = -rw-------



    ---------------------------------------------------------------------------------------------



    Enlaces

    En Linux pueden definirse enlaces a elementos del sistema de ficheros para poder accederlos desde distintos lugares en la jerarquía. Un enlace no es más que un nombre que apunta a un determinado recurso del sistema de ficheros, sea físico o lógico. Debido a esto se clasifican en dos tipos:



    Fuertes o duros: son aquellos que no se diferencian en nada del fichero original. Realmente un fichero existe físicamente (ocupa una zona en algún dispositivo de almacenamiento) y su nombre no es más que un enlace fuerte a él. Si se creara otro enlace fuerte solo se estaría apuntando a la misma zona física a través de otro nombre. De esta forma se obtendrían dos o más copias lógicas de un fichero, pero solo habría una copia física. De aquí se deduce que un fichero no desaparece físicamente hasta que no se borren todos los enlaces fuertes que apunten a él. Los enlaces duros a un fichero determinado se almacenan en la estructura del i-nodo que lo representa.



    Simbólicos o débiles: son apuntadores al nombre del fichero, no a su contenido. Si desaparece el fichero original (todos los enlaces duros a este) los enlaces simbólicos correspondientes quedan inconsistentes.



    En la figura se representan esquemáticamente las diferencias entre los enlaces simbólicos y fuertes.



    </ficheros>
    <ficheros></ficheros>
    <ficheros></ficheros>
    <ficheros>


    Figura: Esquema que representa las diferencias entre los enlaces simbólicos y fuertes



    No se pueden crear enlaces fuertes a directorios, ni a ficheros en particiones distintas. Para crear enlaces se emplea el comando ln.



    Sintaxis:



    ln [opciones] <fichero |="" directorio=""> [nombre_del_enlace]

    ln [opciones] <lista_de_ficheros> <directorio>

    Opción: -s se utiliza para crear enlaces simbólicos en lugar de fuertes como es por defecto



    Ejemplo:





    $ ln -s /home/pepe/public_html/raiz.html index.html

    $ ln doc/important.doc clases/* backup/

    # ln -s /usr/bin /binarios



    ---------------------------------------------------------------------------------------------</directorio></lista_de_ficheros></fichero></ficheros>

     
     
  7. #7
    Senior Member

    Fecha de ingreso
    08 nov, 04
    Mensajes
    1,611
    Ayuda en el sistema



    Para obtener más información puede hacerse:



    $ man bash / $ info bash

    $ man man

    $ help help

    $ man info / $ info info

    $ man whatis

    $ man apropos

    $ man ls / $ info ls

    $ man chmod / $ info chmod

    $ help umask

    $ man ln / $ info ln



    --------------------------------------------------------------------------------------------



    Comandos y profundización en bash



    Sumario



    Comandos básicos

    Flujos de datos

    Entornos de trabajo en bash



    -------------------------------------------------------------------------------------------



    Algunos comandos básicos



    En las siguientes secciones mencionaremos y describiremos brevemente la utilidad de un grupo de comandos básicos para interactuar con un sistema Linux. Algunos de ellos como man, ls, chmod y umask ya han sido referenciados, otros se mencionarán más adelante en dependencia de los temas que se traten. Muchos de estos comandos están presentes también en los sistemas Unix aunque a veces varían sus opciones y argumentos en dependencia de las versiones. Por esto no puede encontrarse una documentación que diga la última palabra respecto a uno u otro comando, la práctica es la mejor forma de comprobar como funciona cada uno. Para su mejor comprensión clasificamos los comandos en varias categorías:





    Comandos para manipular ficheros y directorios



    Comandos para paginar, visualizar y editar ficheros



    Comandos para hacer búsquedas de ficheros y patrones



    Comandos para filtrar ficheros



    Comandos para compactar y agrupar ficheros



    Comandos para la comunicación entre usuarios



    Comandos para desconectarse del sistema



    Comandos para administrar usuarios y grupos



    Comandos variados



    -------------------------------------------------------------------------------------------



    Comandos para manipular ficheros y directorios



    Comando ls



    El comando ls ya mencionado anteriormente permite listar el contenido de un directorio.



    Sintaxis: ls [opciones] [directorio|fichero]



    Algunas opciones:



    -l :

    muestra la salida en formato largo.



    -R :

    lista recursivamente un directorio.



    -a :

    lista además los ficheros ocultos (sus nombres comienzan con punto).



    -h :

    muestra el tamaño de los ficheros en forma más legible (Ej: 16M, 4k, etc.)



    -i :

    muestra el identificador del i-nodo asociado a cada elemento.



    -full-time :

    combinado con el formato largo muestra la fecha completa de la última modificación de cada elemento.



    Ejemplos:



    $ ls -hl /etc

    $ ls -R /usr

    $ ls -al

    $ ls -ali ..



    -----------------------------------------------------------------------------------------



    Comando cd

    El comando cd se utiliza para cambiar el directorio actual.



    Sintaxis: cd [directorio]



    Ejemplos:



    $ cd /tmp

    $ cd # cambia hacia el directorio base del usuario actual

    $ cd - # cambia hacia el directorio anterior

    $ cd .. # cambia hacia el directorio padre

    $ cd ~ # cambia hacia el directorio base del usuario actual. El caracter ~ bash lo

    # interpreta como el directorio base un usuario

    $ cd ~pepe # cambia hacia el directorio base del usuario pepe



    ------------------------------------------------------------------------------------------



    Comando pwd

    El comando pwd indica el camino absoluto del directorio en el cual nos encontramos actualmente.



    Ejemplo:



    $ pwd

    /home/pepe/backup/pruebas



    ------------------------------------------------------------------------------------------



    Comando mkdir

    El comando mkdir se utiliza para crear directorios.



    Ejemplos:



    $ mkdir bin

    $ mkdir -p docs/linuxdocs/howtos/pdf # se crean los directorios intermedios si es necesario



    ------------------------------------------------------------------------------------------



    Comando mv



    El comando mv mueve un fichero hacia otro, o varios ficheros hacia un directorio. Este permite a su vez renombrar ficheros o directorios.



    Sintaxis:



    mv [opciones] <fuente> <destino>

    mv [opciones] <ficheros> <directorio>

    Algunas opciones:





    -i :

    ejecuta el comando de forma interactiva, o sea, pregunta ante de sobrescribir el destino si existiera.



    -u :

    actualiza (upgrade) el destino con el fuente solo si este es más reciente.



    Ejemplos:



    $ mv mail.cf mail.cf.old # renombra un fichero

    $ mv -i *.txt /tmp # mueve ficheros terminados en .txt al directorio /tmp

    $ mv bin/ exe # renombra un directorio. Si existe el destino mueve el fuente hacia este

    $ mv -u program.c src/ # actualiza el fichero destino si es menos reciente que el fuente



    ------------------------------------------------------------------------------------------



    Comando cp

    El comando cp permite copiar un fichero en otro, o varios ficheros en un directorio.



    Sintaxis:



    cp [opciones] <fuente> <destino>

    cp [opciones] <ficheros> <directorio>

    Algunas opciones:





    -p :

    si es posible preserva los atributos (dueño, grupo y permisos) de los ficheros originales en las copias.



    -d :

    preserva los enlaces simbólicos en lugar de copiar los ficheros a los que estos apuntan. Actualmente es así por defecto.



    -L :

    no preserva los enlaces simbólicos, o sea copia los ficheros a los que estos apuntan.



    -R :

    copia recursivamente un directorio.



    -a :

    es equivalente a las opciones -dpR.



    -i :

    utiliza una forma interactiva (pregunta antes de sobrescribir el destino).



    -l :

    hace enlaces fuertes a los ficheros fuentes en lugar de copiarlos.



    Ejemplos:



    $ cp /etc/passwd . # copia un fichero en el directorio actual

    $ cp -a /etc/mail mailb/ # copia recursivamente un directorio preservando atributos y enlaces

    $ cp -i /usr/bin/*sh /tmp # copia interactivamente los ficheros terminados en sh en un directorio

    $ cp -l /bin/* bin/ # hace enlaces fuertes a todos los ficheros en un directorio



    ------------------------------------------------------------------------------------------



    Comando rm

    El comando rm se utiliza para borrar (desenlazar) ficheros



    Sintaxis: rm [opciones] <ficheros | directorios>



    Algunas opciones:





    -r :

    borra recursivamente un directorio.



    -f :

    borra forzosamente en caso de que no se tenga permiso de escritura en forma directa.



    -i :

    ejecuta el comando de forma interactiva.



    Ejemplos:



    $ rm prueba

    $ rm -i bin/*

    $ rm -rf temp/



    ------------------------------------------------------------------------------------------



    Comando chown

    El comando chown se utiliza para cambiar el dueño y el grupo de un fichero. Existe también el comando chgrp que se emplea de forma similar pero para cambiar el grupo solamente. El dueño de un fichero solo lo puede cambiar el usuario root mientras que el grupo además de root, lo puede cambiar el propio dueño, siempre que pertenezca al nuevo grupo.



    Sintaxis:



    chown [opciones] <dueño>[.grupo] <ficheros>

    chown [opciones] .<grupo> <ficheros>

    Opción: -R en los directorios cambia el dueño y/o el grupo recursivamente.



    Ejemplos:



    # chown pepe.pepe tesis/

    # chown -R root /tmp/oculto

    # chgrp ftp /usr/ftp



    ------------------------------------------------------------------------------------------



    Ayuda en el sistema

    Para obtener más información puede hacerse:





    $ man ls / $ info ls

    $ help cd

    $ man mv / $ info mv

    $ man cp / $ info cp

    $ help pwd

    $ man mkdir / $ info mkdir

    $ man rm / $ info rm

    $ man chown / $ info chown

    $ man chgrp / $ info chgrp



    ------------------------------------------------------------------------------------------

     
     
  8. #8
    Senior Member

    Fecha de ingreso
    08 nov, 04
    Mensajes
    1,611
    Comandos para paginar, visualizar y editar ficheros



    Comando cat

    El comando cat concatena (catenate) ficheros y los imprime en la salida estándar. Si no se le pasa ningún argumento lee de la entrada estándar. Existe también zcat que hace lo mismo pero con ficheros compactados.



    Ejemplo: # cat /etc/passwd /etc/shadow



    ---------------------------------------------------------------------------------------------



    Editor pico

    El editor pico es un editor simple pero poderoso.



    Sintaxis: pico [opciones] [fichero]



    Algunas opciones:





    -w :

    deshabilita el picado automático de las líneas.



    -m :

    habilita la funcionalidad del mouse en entornos gráficos, para posicionarse en el texto.



    +<n> :

    se establece el comienzo de la edición en la línea n-ésima.



    Algunas opciones durante la edición:





    Ctrl k :

    borra y copia la línea actual en el clipboard.



    Ctrl u :

    inserta el contenido del clipboard en el texto.



    Ctrl o :

    salva el texto.



    Ctrl x :

    sale del editor. Pregunta si se desea salvar primero en caso de haberse modificado el texto



    ---------------------------------------------------------------------------------------------



    Editor vi

    El editor vi es el editor estándar de Unix. Es orientado a comandos. Existe una versión conocida como vim (Vi IMproved) muy poderosa que permite la edición de múltiples ficheros, highlighting para varios lenguajes de programación, ayuda en línea, selección visual, varios niveles de undo, etc. Para algunos usuarios, vi resulta incómodo pues para utilizar todas sus potencialidades es necesario conocer muchas combinaciones de teclas, pero si se llega a dominar resulta muy funcional.



    Básicamente vi posee dos modos de interacción: el de inserción (edición) y el de comandos. Para pasar al modo comando se pulsa Esc y para pasar al de inserción se pulsa i.



    Algunos comandos útiles en vi:





    dd -

    borra la línea actual.



    D -

    borra desde la posición actual hasta el final de la línea.



    dG -

    borra hasta el final del fichero.



    u -

    deshace el último comando.



    :q -

    sale del editor (si se han hecho modificaciones y no se ha salvado se genera un error).



    :q! -

    sale sin salvar.



    :w -

    salva.



    :wq -

    salva y sale.



    :x -

    salva y sale.



    <n><c> -

    ejecuta el comando c n veces.



    ---------------------------------------------------------------------------------------------



    Comandos more y less

    Los comandos more y less paginan (dividen en páginas) uno o varios ficheros y los muestran en la terminal. De no indicárseles un fichero, paginan la entrada estándar. Se diferencian en las facilidades que brindan. Por ejemplo more es más restrictivo en cuanto al movimiento dentro del texto, mientras que less no limita este aspecto pues acepta el empleo de todas las teclas de movimiento tradicionales. Cuando se alcanza el final del último fichero a paginar, more termina automáticamente, no así less. También more muestra sucesivamente el porcentaje del fichero visto hasta el momento.



    Tanto less como more proveen una serie de comandos para moverse con facilidad dentro del texto paginado.



    Ejemplos:



    q -

    permite interrumpir el proceso y salir.



    /p -

    realiza búsquedas del patrón p dentro del texto. Para repetir la búsqueda del mismo patrón sólo es necesario escribir /.



    [n]b -

    en more permite regresar n páginas (por defecto n es 1).



    [n]f -

    en more se adelantan n páginas y en less, n líneas.



    El man, para dar formato a su salida, utiliza por defecto el paginador less. Existen además los comando zless y zmore que permiten paginar con less y more respectivamente, a los ficheros compactados sin necesidad de descompactarlos previamente.



    ---------------------------------------------------------------------------------------------



    Ayuda en el sistema

    Para obtener más información puede hacerse:



    $ man cat / $ info cat

    $ man pico

    $ man vi

    $ man more

    $ man less



    ---------------------------------------------------------------------------------------------

     
     
Página 1 de 2 12 ÚltimoÚltimo

Temas similares

  1. formateo e instalación de linux y windows
    Por Net en el foro GNU/Linux
    Respuestas: 3
    Último mensaje: 11/05/2008, 16:13
  2. PB INSTALACION LINUX
    Por felipedelaxe en el foro GNU/Linux
    Respuestas: 4
    Último mensaje: 24/02/2008, 11:31
  3. Instalacion linux windows
    Por cama123 en el foro GNU/Linux
    Respuestas: 5
    Último mensaje: 04/02/2006, 19:26
  4. instalacion suse linux 9.3 pro
    Por gabrielbatta en el foro GNU/Linux
    Respuestas: 1
    Último mensaje: 22/09/2005, 05:25
  5. Instalacion linux se detiene
    Por Cerec en el foro GNU/Linux
    Respuestas: 1
    Último mensaje: 17/01/2005, 23:17

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •