Introducción a LINUX

OBJETIVOS Brindar los conocimientos básicos para la utilización del sistema operativo LINUX y preparar al alumno para el examen de certificación LPI 101 Linux Certified Assistance. AUDIENCIA Estudiantes y profesionales de sistemas, administradores y desarrolladores de sistemas REQUISITOS Conocimientos básicos de algún sistema operativo DURACION 27 hs TEMARIO 1.0 Instalación de LINUX • 1.1 - Historia de LINUX y GNU • 1.2 - Distribuciones de LINUX • 1.3 - Conociendo el Hardware • 1.4 - Instalación de Linux • 1.5 - Esquemas de particionamiento • 1.6 - Boot Managers 2.0 Introducción • • • al Shell 2.1 - Uso de la línea de comandos 2.2 - Variables de entorno 2.3 - Administración de procesos. Prioridades

3.0 Instalación de Software • 3.1 - Red Hat Package Manager • 3.2 - Debian Package Manager • 3.3 - Instalación de software a partir del código fuente

25 de Mayo 445 Piso 2 (1002) Bs.As.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

4.0 Procesamiento de texto • 4.1 – Redireccionamiento y tuberías • 4.2 - Modificación de textos con filtros • 4.3 - Búsquedas usando expresiones regulares 5.0 Sistemas de Archivos • 5.1 - Visión general del sistema de archivos de LINUX • 5.2 - Creación de particiones y de sistemas de archivos • 5.3 - Inspección y verificación del sistema de archivos • 5.4 - Montaje y desmontaje de sistemas de archivos 6.0 Administración de archivos • 6.1 - Comandos para administración de archivos • 6.2 - Jerarquía del sistema de archivos • 6.3 - Localización de archivos • 6.4 - Enlaces • 6.5 – Permisos, usuarios y grupos • 6.6 - Herramientas de compresión • 6.7 - Administración de cotas 7.0 Uso de la Documentación • 7.1 - Comando man • 7.2 - Uso de la documentación de /usr/doc • 7.3 - Documentación en Internet 8.0 Proceso de Arranque • 8.1 - Uso de LILO y GRUB • 8.2 - INIT. Niveles de ejecución • 8.3 - Configuración del proceso de arranque 9.0 El Sistema X Window • 9.1 - El lanzamiento X11R6.8 • 9.2 - Entornos de escritorio y gestores de ventanas • 9.3 - Archivos de configuración del servidor X • 9.4 - Fuentes • 9.5 - Niveles de ejecución y X • 9.6 - Recursos adicionales

25 de Mayo 445 Piso 2 (1002) Bs.As.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

1. Instalación de LINUX
• 1.1 - Historia de LINUX y GNU

El autor primario de Linux es Linus Torvalds. A partir de la version original, ha sido mejorado por incontables personas de todo el mundo. Se trata de un clon del sistema operativo Unix, escrito desde cero. Ni USL, ni la Universidad de California, Berkeley, tuvieron participacion en la escritura de Linux. Una de las cosas mas interesantes de Linux es que el desarrollo ocurre simultaneamente alrededor del mundo. La gente ha contribudo desde Australia a Finlandia y esperamos que lo siga haciendo. Linux comenzo como un proyecto para explorar el chip 386. Uno de los primeros proyectos de Linus fue un programa que pueda alternar entre la impresion de AAAA y BBBB . Esto luego evoluciono hacia Linux. Linux ha sido registrado bajo los terminos de la Licencia Publica General GNU (GNU General Public License) o GPL. Esta licencia, escrita por la Free Software Foundation (FSF), esta diseñada para evitar que alguna persona restrinja la distribucion de software. En pocas palabras, dice que aunque Ud. cobre a alguien por entregarle una copia, no podra impedir que ese alguien la regale. Tambien significa que debe estar disponible el codigo fuente4 . Esto es util para los programadores. Cualquiera puede modicar Linux y aun distribuir sus modicaciones, siempre que mantenga el codigo bajo la misma licencia. En Linux puede correr la mayora del software popular en Unix, incluyendo el Sistema de Ventanas X. X se desarrollo en el Instituto Tecnologico Massachusetts, para permitir a los sistemas Unix la creacion de ventanas gracas, y la comoda interaccion con las mismas. En la actualidad, el sistema X se usa en todas las versiones disponibles de Unix. Ademas de las dos variaciones de Unix, System V y BSD, existe un conjunto de documentos de estandarizacion publicados por la IEEE denominados POSIX . Linux antes que nada satisface los documentos POSIX-1 y POSIX-2. Su apariencia se asemeja mucho a la de BSD en ciertas partes, mientras que es parecido a System V en otras. Es una combinacion (y para la mayora de las personas, una buena) de los tres estandares. Algunas de las utilidades includas con las distribuciones de Linux proceden de la Free Software Foundation y son parte del proyecto GNU. El proyecto GNU es un esfuerzo para escribir un avanzado sistema operativo portable con el estilo de Unix. \Portable" signica que pueda correr en una variedad de maquinas distintas, no solo en PCs Intel, Macintoshes, o lo que sea. El sistema operativo del Proyecto GNU se llama Hurd. La principal diferencia entre el Linux y el GNU Hurd no se encuentra en la interfaz del usuario, sino en la del programador |el Hurd es un sistema operativo moderno, mientras que Linux es mas parecido al dise~no original de Unix. La historia precedente de Linux olvida mencionar otra persona mas alla de Linus Torvalds. Por ejemplo, H. J. Lu se ha ocupado de mantener gcc y la biblioteca C de Linux (dos elementos necesarios para todos los programas en Linux) casi desde el principio de la vida del sistema operativo. Ud. puede encontrar una lista de personas que merecen reconocimiento por su trabajo en cada sistema Linux, en el archivo /usr/src/linux/CREDITS .

25 de Mayo 445 Piso 2 (1002) Bs.As.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

aplicaciones. Su objetivo es desarrollar un sistema operativo que se distinga por su excelencia técnica. el núcleo del sistema operativo.As. con el cual usualmente "no se puede hacer nada". el proceso de instalación y otros temas. en realidad Linux es solo un kernel. ¿qué quiere decir Slackware? Es posible que el nombre esté relacionado con la acepción corriente de slack (eliminar tensión). Es una de las distribuciones más antiguas y respetadas. y fue en gran parte la responsable de introducir Linux en el mundo corporativo. dentro del cual se desarrolla esta distribución. RedHat Linux. que dice que slack es la materia prima de la que se origina la felicidad humana 25 de Mayo 445 Piso 2 (1002) Bs.Distribuciones de LINUX QUÉ ES UNA DISTRIBUCIÓN DE LINUX? Como se dijo antes. Entre las distribuciones más usadas en Costa Rica. Las diferencias entre una distribución y otra son muy variadas pero derivan principalmente de los objetivos buscados y la forma en la que se implementan estos objetivos: facilidad de instalación. Es la distribución basada en RedHat que más éxito ha tenido. En un inicio fue desarrollada completamente por una persona. sino que adicionalmente se "empacan" otros programas de utilidades. Su desarrollo se originó a partir de opiniones divergentes respecto a qué hacer con KDE (en términos de su integración en RedHat). cada uno para para 11 arquitecturas distintas. Pero en Linux se va un paso más allá: no solo se distribuye un sistema mínimo. según las estadísticas pasadas de boca en boca. Mandrake Linux. el kernel se utiliza con otros programas que permiten poder interactuar con la máquina.2 . optimizadas para usuarios caseros.. Si se quiere ver de esta forma. es decir. El proyecto Debian. Debido a que Debian no es una compañía. y es desarrollada por casi un millar de programadores en todo el mundo. diseñadas para funcionar como firewalls. el soporte técnico (pagado) es provisto por terceros.. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. para conformar lo que se conoce como una distribución de Linux.ar .com. Patrick Volkerding. La opinión generalizada es que Slackware es algo difícil de instalar y algo difícil de utilizar. se encuentran: Debian GNU/Linux.• 1. los cuales son la base de la definición de Código Abierto (OSD). Slackware Linux. Es una distribución comercial. Se orienta más que todo hacia la producción de una distribución que sea fácil de instalar y administrar. optimizaciones específicas para procesadores Pentium. Así existe una cantidad bastante grande de distribuciones de Linux. juegos. los cuales se mantienen en contacto por medio de Internet. fue donde se originaron los lineamientos de Software Libre de Debian. y que esté basado en software libre. para lo cual han fundado el desarrollo de varios proyectos orientados a este fin. etc. pero eso es con certeza una exageración: Slackware puede ser tan difícil como uno guste. y los paquetes (aplicaciones) incluidas. esto es el equivalente de lo que se distribuye con "el disco de Windows". y a todo esto. y actualmente esto es básicamente aún así. Cuenta con más de 9000 paquetes. etc. Para que este núcleo sea de utilidad como un sistema operativo. Además brinda soporte técnico (pagado) en forma directa. pero es más probable que sea una referencia a la teología de la Iglesia del SubGenio (Church of the SubGenius).

Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Esta labor de reconocimiento de hardware se debe a los programadores encargados de mantener el kernel. En la práctica esto quiere decir que posiblemente podrás instalar linux sin ningun problema. por una mera cuestión de tiempo.com. hasta que los desarrolladores del kernel tengan oportunidad de figurarse como dar soporte. Si es tu caso.As. o esperar a que los parches vayan aterrizando en el kernel y apareciendo en las nuevas distribuciones linux SATA AHCI Uno de los casos comentados es la nueva controladora AHCI ("Advanced Host Controller Interface") de 25 de Mayo 445 Piso 2 (1002) Bs. la solución pasa por usar tu nuevo disco SATA en modo ATA. ¿Como saber si te han vendido un winmodem en lugar de un modem auténtico? fácil.ar . se tratará de un modem hardware que posiblemente podrás conectar. algunos nuevos controladores no son reconocidos.3 . incluso sobre ordenadores antiguos. es prácticamente imposible que puedas conectarlo a internet bajo GNU/Linux. si bien últimamente cada vez mas ordenadores van incorporando controladoras SATA. Con diferencia la forma mas sencilla de conectar tu ordenador a internet es mediante una tarjeta ethernet y un router externo. asi que estos novisimos dispositivos pueden no ser reconocidos automáticamente durante la instalación. la posibilidad de dificultades aumenta si se trata de dispositivos de última generación. Normalmente será un problema temporal. Si por el contrario es externo. o bien parchear el kernel con el driver apropiado a la controladora SATA requerida en tu caso . GNU/Linux soporta variantes de SATA desde siempre. o Serial ATA..Conociendo el Hardware Conoce tu hardware ! Uno de los puntos fuertes de GNU/Linux es su versatilidad. reconociendo gran variedad de hardware.• 1. prácticamente seguro que es un winmodem. Si tu modem es interno. pero desgraciadamente el soporte para GNU/Linux suele ser descuidado. si bien por el problema indicado anteriormente. Si tienes una cosa de esas en tu ordenador. designado para trabajar unicamente en sistemas operativos windows. El caso SATA Durante muchos años los discos duros han funcionado con controladoras ATA (IDE). El caso winmodem Un winmodem es un modem controlado por software. Ningun fabricante en su sano juicio lanzaría al mercado un dispositivo sin contar con soporte previo para Windows. muchas veces sin la colaboración del fabricante. pudiendo instalarse sobre gran variedad de plataformas distintas.. que van añadiendo parches segun aparecen nuevos dispositivos.

por lo que es de esperar que próximamente sea incorporada al kernel. o cualquier otra.org/index.ar .debian. si tienes en tu sistema doble arranque. La aplicación puede simplemente 25 de Mayo 445 Piso 2 (1002) Bs.intel.gentoo. Las unidades SCSI y Serial ATA son etiquetadas mediante /dev/sd*.4 . por ejemplo. explicaremos el término dispositivos de bloque. 2. le guiaremos a través del proceso de creación de particiones y sistemas de ficheros de tu instalación Gentoo Linux. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.guia-ubuntu.xml http://www. sistemas de ficheros de Linux. de forma que Windows use el controlador AHCI y Linux ATA. la opción mas sencilla es instalar tu HD como ATA: 1.html • 1. Se trata de una solución temporal hasta que exista soporte AHCI disponible. Selecciona en su lugar "RAID Autodetect/ATA" Graba los cambios y continua con el arranque del ordenador Por supuesto. para GNU/Linux y windows.5 .Instalación de Linux http://www.es. • 1.redhat. Los dispositivos de bloque mencionados anteriormente representan una interfaz abstracta de disco. Mientras tanto. particiones y dispositivos de bloque.org/releases/stable/i386/index. entonces la primera unidad IDE será /dev/hda.php?title=Instalaci%C3%B3n_est%C3%A1ndar http://www. 4. Si está utilizando el antigo framework de unidades. Para empezar.Esquemas de particionamiento Dispositivos de Bloque Examinaremos de forma detallada los aspectos de Gentoo Linux así como Linux en general que tengan que ver con discos. SCSI. en las series DELL 8400.org/doc/es/index. Las aplicaciones pueden hacer uso de estas interfaces para interactuar con el disco duro de la máquina sin importar el tipo de unidad que tienes: IDE. 3. que puedes encontrar. Reinicia el ordenador y entra en la BIOS (F2) En el menu de la BIOS selecciona "Drives" -> "SATA Operation" Posiblemente veas seleccionada la opción AHCI.html. incluso las unidades IDE son conocidas como /dev/sd* con el nuevo framework libata del kernel.As. y ha recibido elogios de los desarrolladores del kernel.es http://www. que vienen con discos SATA y controladoras SATA AHCI (ICH6). La Arquitectura AHCI es abierta.com.com/docs/manuals/enterprise/RHEL-4-Manual/es/ http://www.com/slackbook/book. Una vez esté familiarizado con las entrañas de los discos y sistemas de ficheros.slackware-es. Quizás el dispositivo de bloque más conocido es el que representa la primera unidad de disco llamada /dev/sda. cada vez que quieras reiniciar con otro sistema operativo deberás pasar por la BIOS y deshacer los cambios.

los dispositivos de bloque enteros se dividen en partes más manejables y pequeñas. Ya que el MBR puede almacenar hasta 512 bytes. Una partición lógica es aquella que está dentro de la partición extendida. esto casi nunca se hace. estas particiones no se definen dentro del MBR. extendidas y lógicas. La partición primaria es aquella que almacena su información en el MBR (registro principal de arranque). sino que se declaran dentro de la partición extendida. En su lugar.com. lo más probable es que desee tener /home en una partición separada para facilitar las tareas de copia de respaldo y aumentar la seguridad. debe tener /var sobre una partición separada ya que es allí dónde se 25 de Mayo 445 Piso 2 (1002) Bs. Diseñando un Esquema de Particionamiento Esquema de Particionamiento por Defecto Si no está interesado en diseñar un esquema de particionamiento particular para tu sistema. En los sistemas éstas se llaman particiones. Al principio no existía este tipo de partición. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Si está instalando Gentoo para funcionar como servidor de correo. Por ejemplo.As. En otras palabras. pero como cuatro primarias eran muy pocas. si la máquina tiene muchos usuarios. puede hacer uso del esquema que utilizaremos en este manual: Partición /dev/sda1 /dev/sda2 /dev/sda3 Sistema de Ficheros ext2 (swap) ext3 Tamaño 32M 512M El resto del disco Descripción Partición de arranque Partición de intercambio Partición de raíz ¿Cuántas? y ¿de qué tamaño? El número de particiones que necesita depende mucho de su entorno particular.ar . sólo pueden definirse cuatro particiones primarias (por ejemplo. Una partición extendida es una partición primaria especial (entendemos que la partición extendida debe ser una de las cuatro posibles particiones primarias) la cual contiene más particiones. Particiones se dividen en tres tipos: primarias.dirigirse al almacenamiento en el disco como a una serie de bloques de acceso aleatorio de 512-bytes situados de forma contigua. se diseñó para extender el esquema de particionamiento sin perder la compatibilidad inversa. desde /dev/sda1 hasta /dev/sda4). Particiones Aunque teóricamente es posible utilizar el disco duro completo para albergar la instalación Linux.

existe un límite de 15 particiones para SCSI y SATA.0G 1. Las razones para todas estas recomendaciones son similares a aquellas que hemos mencionado para el caso de /home: seguridad y salvaguarda de datos.2G 1.conf para que apunte a una partición con espacio libre suficiente para compilar paquetes muy grandes como OpenOffice. una buena elección de sistema de ficheros optimizará el rendimiento del equipo.0G 607M 1. Las estaciones de juegos deben disponer de una partición /opt ya que la mayoría de juegos se instalan en ese directorio. Como ejemplo de un esquema de particionamiento utilizaremos un disco duro de 20 Gb de un portátil para fines de demostración (incluye servidor web. puede acabar teniendo mucho espacio libre en una de las particiones y quedarse sin espacio en otras.com.3G 83% /dev/sda8 ext3 1011M 483M 477M 51% /dev/sda9 ext3 2. Aunque asignar unos cuantos gigabytes de espacio a /var puede parecer excesivo. noexec (los bits de ejecución se ignoran). Pero. servidor de correo.ar . necesitará modificar su variable PORTAGE_TMPDIR en /etc/make. Asimismo. etc. Si se quiere mantener /var de un tamaño razonable. cómo 1 GB.0G 3.3G 32% /dev/sda1 ext2 51M 17M 31M 36% /dev/sda6 swap 516M 12M 504M 2% (Espacio sin particionar para uso futuro: 2 Mounted on / /home /usr /opt /var /boot <not mounted> Gb) /usr parece estar bastante llena (83%).9G 6. pero una vez que todo el software esté instalado no tiende a llenarse más. recuerde que Portgae utiliza esta partición por defecto para compilar paquetes. Además.As. nosuid (los setuid bits se ignoran). gnome.almacena todo el correo. etc. Como puede ver. tener múltiples particiones tiene una gran desventaja: si la configuración no es la adecuada. el tiempo dedicado a las comprobaciones de integridad de sistemas de fichero se reduce ya que las comprobaciones pueden ser llevadas acabo en paralelo (sin embargo esta ventaja es mayor con múltiples discos que con múltiples particiones) • La seguridad puede ser aumentada montando algunas de las particiones en modo sólo lectura.): Ejemplo de particionamiento $ df -h Filesystem Type Size Used Avail Use% /dev/sda5 ext3 509M 132M 351M 28% /dev/sda2 ext3 5. todo depende de lo que quiera conseguir. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Muy recomendable mantener /usr con un tamaño considerable: no salemente contiene la mayor parte de las aplicaciones sino que además el propio árbol de Portage ocupa sobre unos 500 Mbytes sin contar las fuentes que guarda dentro de él. Tener particiones o volúmenes separados tiene las siguientes ventajas: • Puede elegir el mejor sistema de ficheros para cada partición o volumen • El equipo en su totalidad no puede quedar sin espacio si una herramienta o aplicación está escribiendo datos de forma continua al volumen o partición • Si es el caso. 25 de Mayo 445 Piso 2 (1002) Bs.8G 63% /dev/sda7 ext3 7.

As.Utilizando fdisk para particionar su disco Las siguientes instrucciones explican como particionar el disco duro según el esquema descrito anteriormente: Partición Descripción /dev/sda1 Partición de arranque (boot) /dev/sda2 Partición de intercambio (swap) /dev/sda3 Partición de raíz (root) Cambie el esquema de particionamiento según su propio criterio. . Examinando el Esquema de Particionamiento Actual fdisk es una herramienta potente y bastante popular que permite dividir el disco en particiones. 2184 cylinders Units = cylinders of 15120 * 512 bytes Device Boot /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4 /dev/sda5 /dev/sda6 /dev/sda7 /dev/sda8 /dev/sda9 Start 1 15 50 71 71 210 349 627 905 End 14 49 70 2184 209 348 626 904 2184 Blocks Id 105808+ 264600 158760 15981840 1050808+ 1050808+ 2101648+ 2101648+ 9676768+ System 83 Linux 82 Linux swap 83 Linux 5 Extended 83 Linux 83 Linux 83 Linux 83 Linux 83 Linux Tel 4313–2484 /2486/2475 opensource@osi-sistemas. el programa ofrecerá el siguiente símbolo de comandos: Símbolo de espera de órdenes de fdisk Command (m for help): Teclee p para mostrar el esquema de particionamiento actual: Un ejemplo sobre configuración de particiones Command (m for help): p Disk /dev/sda: 240 heads.com.ar 25 de Mayo 445 Piso 2 (1002) Bs. Arranca fdisk sobre tu unidad de disco (en nuestro ejemplo usamos el dispositivo de disco /dev/sda):: Ejecutar fdisk # fdisk /dev/sda Una vez que fdisk esté en ejecución. 63 sectors.

tal como hemos acordado anteriormente. Ya no aparecerá si teclea p. cada uno con su correspondiente partición con la etiqueta "Linux". Si comete una equivocación y desea abortar los cambios realizados. 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot Start End Blocks Id System Command (m for help): Ahora que la tabla de particiones en memoria del sistema está vacía. ¡Claro está. Ahora.0 GB. pero no será eliminada hasta que guarde los cambios realizados. para borrar una partición existente en /dev/sda1: Eliminar una partición > Command (m for help): d Partition number (1-4): 1 La partición ha sido marcada para su borrado. opensource@osi-sistemas. acabará teniendo una tabla de particiones vacía: Una tabla de particiones vacía Disk /dev/sda: 30. que no debe seguir estas instrucciones al píe de la letra si no desea tener una tabla de particiones exactamente igual que la nuestra! Creación de una Partición de Arranque En primer lugar debemos crear una pequeña partición de arranque. debe teclear p en forma repetida para ver el listado de particiones y pulsar d junto con el número de la partición para borrarlas. teclee q inmediatamente y pulse intro.ar . así como una partición de intercambio (swap) que aparece con la etiqueta "Linux swap". Teclee d para eliminar una partición. seguido por intro.Command (m for help): Este disco en particular está configurado para albergar siete sistemas de ficheros Linux.As. Teclee n para crear esta nueva 25 de Mayo 445 Piso 2 Tel 4313–2484 /2486/2475 (1002) Bs. 30005821440 bytes 240 heads. Finalmente. Utilizaremos el esquema por defecto. estamos preparados para crear nuevas particiones. 63 sectors/track.com. Eliminación de todas las Particiones Primero eliminaremos todas las particiones existentes en el disco. las particiones no serán eliminadas. asumiendo que intenta eliminar todas las particiones existentes del disco duro. Por ejemplo.

partición.0 GB.As. pulse intro y cuando pida definir el valor del último cilindro. teclee +32M para crear una partición de tamaño 32 Mb.:: Crear una partición de arranque Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-3876. Teclee a para marcar esta partición como arrancable. debe ver la siguiente partición en la tabla: Una partición creada Command (m for help): p Disk /dev/sda: 30. Cuando el sistema solicite introducir el primer cilindro. 25 de Mayo 445 Piso 2 (1002) Bs. default 1): (Hit Enter) Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-3876. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. default 3876): +32M Si ahora teclea p. verá que el * ha aparecido en la columna "Boot". 63 sectors/track. Si introduce p de nuevo. siguiendo por 1 para elegirla como primera partición primaria. 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot /dev/sda1 Start 1 End 14 Blocks 105808+ Id 83 System Linux Necesitamos hacer que esta partición sea arrancable.com.ar . 30005821440 bytes 240 heads. y luego p para seleccionar una partición primaria.

0 GB. 30005821440 bytes 240 heads. teclee t para establecer el tipo de partición. /dev/sda2 en nuestro caso. Introduzca n para crear la nueva partición. Para hacerlo. Entonces teclee 2 para crear la segunda partición primaria. pulse intro y cuando solicite introducir el valor del último.Creación de una Partición de Intercambio Vamos a crear ahora la partición de intercambio. introducimos p para ver la tabla de particiones que debe parecer mucho a la siguiente: Listado de particiones después de crear la partición de raíz Command (m for help): p Disk /dev/sda: 30. . teclee n para crear una nueva partición.ar 25 de Mayo 445 Piso 2 (1002) Bs. Una vez completados estos pasos la introducción de p visualizará la tabla de particiones que debe ser similar a ésta. también le damos a intro para crear una partición que ocupe todo el espacio restante en el disco. /dev/sda3. mientras que cuando el sistema solicite que introduzcamos el valor del último cilindro. teclee +512M para crear una partición de 512 Mb. A continuación teclee 3 para crear la tercera partición primaria.As. Tras completar todos estos pasos.com. 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot /dev/sda1 * /dev/sda2 /dev/sda3 Start 1 15 82 End 14 81 3876 Blocks 105808+ 506520 28690200 Id 83 82 83 System Linux Linux swap Linux Tel 4313–2484 /2486/2475 opensource@osi-sistemas.0 GB. 63 sectors/track. Al solicitar la introducción del valor del primer cilindro de la partición pulsamos intro. creamos la partición de raíz. y luego p para comunicar a fdisk que debe ser una partición primaria. Cuando el sistema solicite introducir el valor del primer cilindro. 30005821440 bytes 240 heads. 2 para seleccionar la partición que acaba de crear y entonces 82 para fijar el tipo "Linux Swap". Listado de particiones después de la creación de la partición de intercambio Command (m for help): p Disk /dev/sda: 30. Cuando lo haya hecho. p para marcarla como partición primaria. 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot /dev/sda1 * /dev/sda2 Start 1 15 End 14 81 Blocks 105808+ 506520 Id 83 82 System Linux Linux swap Creación de la Partición de Raíz En el último lugar. según nuestro ejemplo. 63 sectors/track.

Creación de Sistema de Ficheros en una Partición 25 de Mayo 445 Piso 2 (1002) Bs. pero no dispone de soporte para transacciones. especialmente cuando trata con mucho ficheros pequeños a costa de emplear más ciclos de CPU. hay muchas opciones alternativas. JFS de IBM es un sistema de ficheros de alto rendimiento con soporte transaccional. Ahora. Listado de Código 3. Utiliza un árbol HTree como índice que permite un alto rendimiento en casi todas las situaciones. sistemas de ficheros de nueva generación con soporte para transacciones cuya integridad puede ser verificada con mayor rapidez. ext3. que proporciona soporte para una rápida recuperación además de otros modos mejorados de funcionamiento como registro completo y ordenado de datos. ResiserFS. Sistemas de ficheros El kernel de Linux soporta varios sistemas de ficheros. ext3 es un buen y fiable sistema de ficheros. Los sistemas de ficheros transaccionales previenen retrasos durante el reinicio del equipo. ReiserFS parece tener menos mantenimiento que otros sistemas de ficheros. Si no le importa el tipo de sistema de ficheros que desee utilizar y está conforme con nuestra elección por defecto. XFS y JFS por ser los más utilizados en sistemas Linux. ext3 es la versión transaccional de ext2. JFS es un sistema de ficheros ligero. incluso cuando el sistema de ficheros está en un estado inconsistente. Creación de Sistemas de Ficheros Introducción Ahora que ya tiene creadas las particiones. XFS es un sistema de ficheros transaccional el cual viene con un juego de características robustas y está optimizado para ser escalable. debe formatearlas para poder tener un sistema de ficheros. rápido y fiable. lo que significa que las comprobaciones rutinarias al arrancar pueden tardar bastante tiempo. por lo que gozan de mayor popularidad. basado en un árbol B+ con un buen rendimiento bajo varias condiciones. puede proseguir con la Creación de Sistemas de Ficheros.10: Guardado y salida del fdisk Command (m for help): w Ahora que las particiones están creadas.Almacenamiento de la Tabla de Particiones Para guardar el esquema de particionamiento y salir del fdisk tecleamos w. XFS parece ser menos robusto ante fallos hardware.com. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. ext2 es un sistema de ficheros Linux probado. En resumen. Explicaremos ext2.ar . ReiserFS es un sistema de ficheros B+ (basado en árboles balanceados) que tiene un gran rendimiento.As.

utilizaría los siguientes comandos: Creación de un sistema de ficheros en una partición # mke2fs /dev/sda1 # mke2fs -j /dev/sda3 Y ahora.ar .com. usa el comando swapon: Activación de una partición de intercambio # swapon /dev/sda2 Crea y activa tu partición de intercambio con los comandos mencionados arriba.Para crear un sistema de ficheros en una partición o volumen existen herramientas específicas para cada sistema de ficheros: Sistema de Ficheros Comando de Creación ext2 mke2fs ext3 mke2fs -j reiserfs mkreiserfs xfs mkfs. 25 de Mayo 445 Piso 2 (1002) Bs. Activando la Partición de Intercambio mkswap es el comando usado para inicializar particiones swap: Inicialización de una partición de intercambio # mkswap /dev/sda2 Para activar la partición.jfs Por ejemplo. para formatear la partición de arranque (/dev/sda1 según el ejemplo) en formato ext2 y la partición de raíz (/dev/sda3 según el ejemplo) en formato ext3. puede crear sistemas de fichero sobre sus particiones o volúmenes lógicos recién creados. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.xfs jfs mkfs.As.

disponemos de GRUB y LILO Pero antes de instalar un gestor de arranque. está utilizando uvesafb y no necesita el parámetro vga. Necesita que se le indique el controlador de framebuffer (vesafb para kernels 2. Este programa es conocido como gestor de arranque.6.txt.Boot Managers Ahora que su kernel está configurado y compilado y los archivos de configuración necesarios han sido llenados correctamente. Para x86.ar . Si está utilizando un kernel parcheado por Gentoo (como puede ser gentoo-sources) tiene la posibilidad de seleccionar uvesafb como tipo de controlador para vesa (VESA driver).As. pero aquí le informamos sobre las más utilizadas: 25 de Mayo 445 Piso 2 (1002) Bs. Todas las variables se pueden encontrar en /usr/src/linux/Documentation/fb/vesafb. La siguiente lista muestra las resoluciones y profundidad de color disponibles y su correspondiente valor para el parámetro vga.4) seguido de los parámetro de control que quiera activar. le informaremos sobre como configurar la memoria de imagen (framebuffer). el empleo de un bonita imagen de Gentoo durante el inicio (bootsplash). Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Lo primero que necesita es conocer que tipo de dispositivo de framebuffer está utilizando.txt (el cual se instala cuando instalas un paquete con las fuentes del kernel) necesita pasar el número VESA correspondiente con la resolución y profundidad de color que quiera. El parámetro vga controla la resolución y la profundidad de color de su framebuffer utilizando vesafb.• Introducción 1. 640x480 0x301 0x310 0x311 0x312 800x600 0x303 0x313 0x314 0x315 1024x768 0x305 0x316 0x317 0x318 1280x1024 0x307 0x319 0x31A 0x31B 256 32k 64k 16M El parámetro video controla las opciones de visualización. ha llegado la hora de instalar el programa que iniciará el kernel cuando arranque el sistema. Como se indica en /usr/src/linux/Documentation/fb/vesafb. Si este es el caso. siempre que usted quiera. Opcional: Memoria de imagen (Framebuffer) Si ha configurado su kernel con soporte framebuffer (o ha utilizado la configuración predeterminada de genkernel) puede activarlo añadiendo el parámetro vga y/o video al archivo de configuración del gestor de inicio. o vesa para kernels 2. Con la memoria de imagen puede ejecutar la línea de comandos de Linux con algunas características gráficas (limitadas) como. por ejemplo.com.6 . claro.

el esclavo primario). (Usualmente son asignados números mayores. Advertimos también que entre los dispositivos hd.write-through (solamente uvesafb) Configura la resolución. continuar al principio cuando ywrap se aproxima al final) Configura los registros MTRR. en lugar de utilizar una "a" y las particiones empiezan con cero en lugar de con un uno. la partición /dev/sdd7 que descrita como (hd1. Además. Su partición Linux /dev/sda1 es denominada (hd0. mode 1024x768-32@85 para una resolución de 1024x768. es el habituarse a la manera en que GRUB se refiere a los discos duros y las particiones. Usando GRUB Comprendiendo la terminología de GRUB La parte más crítica para la comprensión de GRUB. Asumiendo que tiene un disco duro en /dev/sda y dos más en /dev/sdb y /dev/sdc.As.no almacenables en caché mtrr:n 2 . El resultado de estas dos configuraciones podría ser algo como: vga=0x318 video=vesafb:mtrr:3. 25 de Mayo 445 Piso 2 (1002) Bs. A lo mejor puede sonar raro y bien podría serlo.ywrap. profundidad de color 32 bit y una tasa de refresco de 85 Hz.1024x768-32@85. excepto cuando el bios está configurada para arrancar desde los dispositivos scsi). Cuando se le indica la BIOS que arranque desde un disco duro diferente (por ejemplo.0) por GRUB. sólo se cuentan los discos duros y no los dispositivos atapi-ide como cdroms y grabadoras. Por ejemplo. La numeración de los discos duros comienza con un cero. GRUB ofrece un mecanismo de terminación por tabulador que es de gran ayuda para los que tienen una gran cantidad de discos duros y que andan algo perdidos con este esquema de numeración. n puede ser: 0 .ar . que son obligatorios.com.desactivados 1 .write-back 3 . Recuerde (o anote) ésta configuración. la especificación es igual para dispositivos SCSI.0.Control Descripción Asume que su tarjeta gráfica puede volver sobre su memoria.write-combining 4 . ese disco duro se verá como hd0. (ej.ywrap o video=uvesafb:mtrr:3.6). Note los paréntesis alrededor de hd0. La necesitará dentro de poco. pero como veremos. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. la profundidad de color y la tasa de refresco.

6.conf es para quienes no hayan usado genkernel para construir su kernel • El segundo grub. hermosa imagen para ensalzar las cosas un poco :) # Coméntela si no tiene una tarjeta gráfica instalada splashimage=(hd0.conf Ahora vamos a escribir el grub. deberá añadir " ro" a la línea del kernel ya que JFS necesita leer su log antes de permitir montajes de lectura-escritura. default 0 # Cuantos segundos esperar antes de arrancar el título por defecto. Windows reside en la partición /dev/sda6. 1 el segundo.0)/boot/grub/splash.conf # vi -w /boot/grub/grub.0) kernel /boot/kernel-2. todavía necesitamos crear un archivo de configuración para él e instalar GRUB en nuestro MBR para que pueda arrancar automáticamente nuestro kernel recién creado.24-gentoo-r5 root=/dev/sda3 title Gentoo Linux 2.Aunque GRUB esté instalado. Sólo hemos comentado exhaustivamente el primer grub.24-gentoo-r5 root=/dev/sda3 init=/bin/bb # Las siguientes cuatro líneas sólo se usan en caso de arranque dual con un sistema W # En este caso. timeout 30 # Una bella.ar .6. si es necesario.6.24-r5 (rescate) # Partición donde se encuentra la imagen del kernel (o sistema operativo) root (hd0.gz title Gentoo Linux 2. Nota: Si su sistema de fichero para root es JFS.5) makeactive chainloader +1 25 de Mayo 445 Piso 2 (1002) Bs. Asegúrese de utilizar el nombre de su archivo de imagen del kernel y.0) kernel /boot/kernel-2. o cualquier otro editor: Creando / modificando el archivo /boot/grub/grub. etc. Cree el archivo /boot/grub/grub.conf para el ejemplo de particiones que manejamos en esta guía.As. grub.24-r5 # Partición donde se encuentra la imagen del kernel (o sistema operativo) root (hd0.conf es para quienes hayan utilizado genkernel para construir su kernel. title Windows XP rootnoverify (hd0. A continuación encontrará dos posibles archivos grub.com.conf.xpm.conf con nano.conf para quienes no hayan usado genkernel # Cual título arrancar por defecto. el nombre de su imagen initrd. • El primer grub. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.conf. 0 es el primero.6.

el prefijo /boot no es obligatorio. simplemente copie /proc/mounts a /etc/mtab. sencillamente agréguelo al final de la línea de comando del kernel. es realmente necesario.com. Por ejemplo. pero se pueden pasar otras también.Nota: El parámetro udev que se menciona al final de la línea del kernel es necesario para que funcione debido a algunos bugs en algunas versiones de genkernel si se utiliza udev en primera posición (lo cual. necesitará actualizar /etc/mtab. como los parámetros video y/o vga de los que hablamos previamente. excluyendo la línea rootfs si no ha creado una partición separada para boot. En resumen. Los usuarios de genkernel deben saber que sus kernels usan las mismas opciones de arranque que el CD de instalación. Ahora grabe el archivo grub. el cual contiene la información relativa a todos los sistemas de archivos montados. Sin embargo. Ya estamos pasando una opción (root=/dev/sda3 o real_root=/dev/sda3). un enlace simbólico /bootlo hace funcionar. asegúrese que cualquier cosa que siga un dispositivo GRUB (tal como (hd0. haga los ajustes respectivos.0)) sea relativa al punto de montaje y no de la raíz. Aún necesita instalar GRUB en el MBR (Master Boot Record) para que GRUB se ejecute automáticamente cuando arranque su sistema.ar .conf y salga. el prefijo /boot empleado en los ejemplos anteriores. Sin embargo. Afortunadamente hay una manera sencilla de realizar esto. si por alguna razón grubinstall no funciona correctamente todavía tiene la opción de instalar GRUB manualmente. ya que estamos dentro de un entorno chroot. Si está utilizando un kernel 2. si tiene dispositivos scsi. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. los ejemplos anteriores deberían funcionar si ha definido una partición separada para /boot o no. Si ha seguido el plan de particionamiento sugerido. Si necesita pasar algún parámetro adicional al kernel.gz es en realidad /boot/grub/splash.gz ya que (hd0. si se eligió utilizar un esquema de particionamiento diferente y no colocó /boot en una partición separada.xpm. debería agregar el parámetro doscsi al kernel. Sin embargo grub-install no funcionará tal cual se instala. necesitará añadir sda=stroke. Los desarrolladores de GRUB recomiendan utilizar grub-install. viene definido por defecto). Si se utiliza un esquema de particiones y/o imagen de kernel distinta.7 o superior y ha puenteado su disco duro porque la BIOS no puede manejar discos duros grandes.xpm. Configurando GRUB utilizando grub-install Para instalar GRUB necesita ejecutar el comando grub-install. El siguiente comando fucionará en ambos casos: 25 de Mayo 445 Piso 2 (1002) Bs. Antes de seguir. En otras palabras. Además.0) es /boot. (hd0.As.0)/grub/splash.6.

Iniciando el intérprete de comandos de GRUB # grub --no-floppy Nota: Si su sistema no tiene ningún dispositivo de disquetes. configurar GRUB no debería resultar tan duro. Por ejemplo." seguido de una tabulación recibiremos una lista de particiones disponibles para elegir (como pueda ser hd0. e instala el registro de arranque de GRUB en el MBR (Master boot Record) de su disco duro para que lo primero que veamos aparecer al encender el ordenador sea GRUB.Crear /etc/mtab # grep -v rootfs /proc/mounts > /etc/mtab Ahora podemos instalar GRUB utilizando grub-install: Ejecutar grub-install # grub-install --no-floppy /dev/sda Alternativa: Configurando GRUB a mano. Ahora vamos a por ello. cambie los comandos de acuerdo a su modelo: El mecanismo de completar comandos por tabulación de GRUB puede utilizarse dentro de GRUB. Se le presentará el intérprete de comandos propio de grub grub>. debe ejecutar los comandos dentro de grub.0). Tel 4313–2484 /2486/2475 opensource@osi-sistemas. utilizando instrucciones Para comenzar a configurar GRUB. Si tecleamos "root (hd0. añada la opción --no-floppy al comando anterior para evitar que grub pruebe los dispositivos (no existentes) de disquetes. notará que se le presenta una lista de dispositivos (como pueda ser hd0). configuremos GRUB!.As.com. En el ejemplo de configuración queremos instalar GRUB para que lea la información de la partición de arranque /dev/sda1. debe modificar el comando 25 de Mayo 445 Piso 2 (1002) Bs. Por supuesto.ar . si no ha seguido el ejemplo de configuración durante la instalación. si escribe "root (" seguido de una tabulación. Utilizando este mecanismo de completar por tabulación.0) grub> setup (hd0) grub> quit (Especifique donde tiene su partición /boot) (Instalamos GRUB en el MBR) (Salimos del intérprete de comandos de GRUB) Nota: Si quiere instalar GRUB en una partición concreta en lugar del MBR. Ahora necesita ejecutar los comandos necesarios para instalar el registro de arranque de GRUB en su disco duro. Instalando GRUB en el MBR grub> root (hd0.

conf # vi -w /etc/lilo. carece de algunas características de GRUB (razón por la cual GRUB actualmente está ganando popularidad). La razón por la cual LILO sigue en uso es que en algunos sistemas. representa LInuxLOader. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. si quiere que GRUB se instale en /dev/sda3. Alternativa: Utilizando LILO Instalando LILO LILO. deberá añadir la línea append="ro" después de cada 25 de Mayo 445 Piso 2 (1002) Bs. De cualquier manera. debe crear el archivo /etc/lilo.As.conf. pocos usuarios querrán hacer esto. le pedimos que se acordara del nombre de la imagen del kernel creado. si es necesario. Gentoo soporta ambos gestores y por lo visto. sencillamente se instala Instalando LILO # rpm -i lilo o dpkg -i lilo Configurando LILO Para configurar LILO. Nota: Si su sistema de ficheros para root es JFS.com.conf haremos uso del esquema ejemplo de particionamiento.ar . y es el caballito de batalla probado y comprobado de los gestores de inicio de Linux. Hay dos partes separadas: • Para los que no hayan usado genkernel para construir su kernel • Para los que hayan usado un genkernel para construir su kernel Asegúrese de utilizar el nombre de su archivo de imagen del kernel y.2). GRUB no funciona mientras que LILO sí. el comando adecuado sería setup (hd0. ha elegido usar LILO. Use su editor de textos preferido (en el manual usamos nano para ser consistentes) y creemos este archivo.setup para que apunte a la partición correcta.conf Algunas secciones atrás. el nombre de su imagen initrd. En el siguiente ejemplo de lilo. Sin embargo. Instalar LILO es fácil. Por supuesto también se usa porque hay muchos que lo conocen y prefieren seguir con este gestor. Sin embargo. Por ejemplo. Creando /etc/lilo.

conf boot=/dev/sda prompt timeout=50 default=gentoo # Instalar LILO en el MBR # Darle al usuario una oportunidad de seleccionar otra opc # Esperar 5 (cinco) segundos antes de arrancar la opción po # Al transcurrir el plazo de espera. ya que JFS necesita leer su log antes de permitir montajes de lectura-escritura.6. viene definido por defecto).24-gentoo-r5 label=gentoo read-only root=/dev/ram0 append="init=/linuxrc ramdisk=8192 real_root=/dev/sda3 udev" initrd=/boot/initramfs-genkernel-x86-2. ¡No modifique! root=/dev/sda3 # Ubicación del sistema raíz de archivos append="init=/bin/bb" # Lanzar la shell estática de rescate de Gentoo # Para usuarios de genkernel image=/boot/kernel-genkernel-x86-2. agregamos un enunciado video para activar framebuffer: Utilizar append para agregar opciones al kernel 25 de Mayo 445 Piso 2 (1002) Bs. Nota: Si usa un esquema de particionamiento o imagen de kernel distinta.As. A modo de ejemplo.24-gentoo-r5 label=gentoo.ar . arrancar la opción "gent # Para los que no usaron genkernel image=/boot/kernel-2.6. haga los ajustes correspondientes.24-gentoo-r5 label=gentoo # El nombre de la sección read-only # Comience con la raíz solo lectura. other=/dev/sda6 label=windows Nota: El parámetro udev que se menciona al final de la línea del kernel es necesario para que funcione debido a algunos bugs en algunas versiones de genkernel si se utiliza udev en primera posición (lo cual.6. Ejemplo de /etc/lilo.6.elemento de arranque.rescue # El nombre de la sección read-only # Comience con la raíz solo lectura.com.24-gentoo-r5 # La siguientes dos línea solo corresponden si hace arranque dual con un sistema Windows. # En este caso. Windows se encuentra en /dev/sda6. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. incluya un enunciado append a la sección. ¡No modifique! root=/dev/sda3 # Ubicación del sistema raíz de archivos image=/boot/kernel-2. Si hace falta pasar alguna opción adicional al kernel.

com. Ahora. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. necesitará añadir sda=stroke.24-gentoo-r5 label=gentoo read-only root=/dev/sda3 append="video=vesafb:mtrr. salve el archivo y salga del editor.ywrap.image=/boot/kernel-2. Terminando la instalación de LILO # /sbin/lilo 25 de Mayo 445 Piso 2 (1002) Bs. Por ejemplo. debe agregar doscsi como opción del kernel.conf a su sistema (que se instale en el disco).6. Acuérdese de que debe volver a ejecutar /sbin/lilo cada vez que instale un nuevo kernel o haga cambios en el menú. Para terminar. si tiene dispositivos SCSI.7 o superior y ha puenteado su disco duro porque la BIOS no puede manejar discos duros grandes.6. Usuarios de genkernel deben saber que sus kernel usan las mismas opciones de arranque que el CD de instalación.ar . debe ejecutar el comando /sbin/lilo para poder aplicar /etc/lilo.1024x768-32@85" Si está utilizando un kernel 2.As.

Para cambiar de directorio usamos cd. Y porque la línea de comandos permite ejecutar programas con mas opciones (y rapidez) de la que tendriamos usando la interfaz gráfica. Altamente configurable. directorio actual cd.te lleva al ultimo directorio en que hallas estado Creando/borrando directorios Para crear nuevos directorios. el arranque del ordenador por defecto era modo consola.1 . si tienes permisos para ello.com. Hoy en dia ocurre justo al revés.ar .As. directorio padre cd (sin parametros) lleva al home de tu usuario cd ~ nombreusuario te lleva al home de nombreusuario. Introducción al Shell • 2. en la máquina localhost Moviendose por el sistema de archivos El comando pwd nos devuelve la ruta en la que estamos en ese momento.Uso de la línea de comandos La consola En Linux es frecuente el uso de la linea de comandos. arrancando el servidor X (para el entrono gráfico) solo cuando necesitabas utilizar un programa que lo requería.. por defecto es posible que te encuentres con algo parecido a ignacio@localhost:~$ donde te informa que estas logeado en el sistema como usuario ignacio. Para borrar archivos o rm -r carpeta. que tiene varias opciones: • • • • • • • • cd /path/deseado/ nos lleva a /path/deseado cd. Linux ha sido el sistema de linea de comandos por excelencia. usando la opción -r para borrar cualquier subcarpeta directorios. Por defecto tu sistema linux arrancará con Gnome o KDE. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. El prompt del sistema El prompt del sistema es el conjunto de carácteres que te indican la línea donde debes teclear tus órdenes. cd / te lleva al home de tu usuario. y de hecho hasta hace pocos años. rm: 25 de Mayo 445 Piso 2 (1002) Bs. con el comando startx. cd . la opción es mkdir. cd ~ te lleva al home de tu usuario. y para acceder a la linea de comandos deberás lanzar desde el menú de aplicaciones un emulador de terminal.2. Esto es así en primer lugar porque el sistema operativo tiene centenares de utilidades a las que no podrás llegar desde el entorno gráfico.

Y otra diferencia con windows que a veces pasa desapercibida. claro." ls -R listado recursivo ls -l muestra permisos de cada fichero y ultimo acceso ls -s muestra el tamaño de cada fichero listado dot slash . 25 de Mayo 445 Piso 2 (1002) Bs." y ". renombrando.sh solo si este se encuentra en ignacio/home Y ya que hablamos del path.Moviendo./ Y ya que esto es una breve introducción a la consola. es usar un punto y barra para indicar que busque en nuestro directorio: por ejemplo. copiando Usamos cp /ruta/archivo/original /ruta/para/copia para copiar archivos. y luego en cualquier otro directorio incluido en el path. Por el contrario linux no buscará el ejecutable en el directorio actual.. simplemente escribe echo $PATH A algunos les resulta de interés que linux busque siempre ejecutables en el directorio actual.] • • • • • • ls (sin parametros) lista archivos del directorio actual. ls -a muestra todos los archivos. Si es tu caso.. no la invertida propia de windows. simplemente ponlo en el path. incluido el punto al final de la linea.ar . root@localhost: ignacio/home # .com.As. salvo claro está que dicho directorio esté en el path. Tel 4313–2484 /2486/2475 opensource@osi-sistemas./miscript. incluido ocultos ls -A igual que -a menos los archivos ".sh serviría para ejecutar miscript.profile y añadele: PATH=$PATH:$HOME/bin:. este siempre busca el ejecutable en primer lugar en el archivo desde el cual se ejecuta la orden. mv ruta/archivo nueva/ruta/archivo sirve tanto para mover un archivo o carpeta como para renombrarlo listando archivos El comando ls muestra una lista de los archivos de un directorio.. Por tanto la forma de asegurarnos la correcta ejecución de cualquier ejecutable. añadiendo a la variable $PATH un punto: busca en el directorio raiz de tu usuario un archivo oculto . ls [opciones] [archivo|directorio] [archivo|directorio. si estamos en el directorio donde se encuentra. hhay que recordar que en linux las rutas a los archivos siempre se separan con la barra /. si quieres ver que rutas tienes en esta variable. Cuando intentamos ejecutar un comando en windows.

SU Siempre se ha dicho que la buena práctica en linux es acceder al sistema como usuario con derechos limitados, y ganar los privilegios de root solo cuando nos sea necesario, y ello para evitar ejecutar por error algun comando que se cargue el sistema (y porque linux es un sistema multiusuario, presumiendo que varias personas haran uso de el, y no todas ellas serán administradores). Pues bien, desde tu linea de comandos, logueado como usuario, puedes ganar privilegios de root con el comando su. Por ejemplo, tras la orden [ignacio@localhost] ~ $ sudo kedit /etc/fstab el sistema te preguntará por la contraseña de root, y si es correcta, editará el archivo /etc/fstab con el programa kedit, con permisos de root. sudo permite ejecutar como root solamente la instruccion de la línea donde se ejecuta. Como alternativa puedes simplemente escribir su, introducir la contraseña y ganar privilegios de root para esa sesion de consola. Fijate como el promt te identifica como root, no solo por el nombre del usuario, sino también por el signo # que reemplaza el signo $ Ejecutando tareas en segundo plano Si quieres ejecutar un comando o programa que prevees que va a tardar tiempo en completarse, y no deseas cambiar de terminal, puedes ordenar que se ejecute en segundo plano simplemente añadiendo un carácter & al final de la orden, antes de ejecutarla. Para regresar a cualquier proceso que has dejado en segundo plano, generalmente se utilizan los comandos fg o exit. Comodines prácticamente todas las utilidades que emplean la linea de comandos admiten comodines * ? el comodin ? representa cualquier caracter. Por ejemplo, ls diari?.log te mostraria la existencia tanto de diario.log como de diaria.log Y * coincide con cualquier secuencia de caracteres. ls foto.* te indicaria la existencia de foto.jpg, foto.gif etc

25 de Mayo 445 Piso 2 (1002) Bs.As.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

2.2 - Variables de entorno

¿Variables de Entorno? ¿Qué son? Una variable de entorno es un objeto designado para contener información usada por una o más aplicaciones. Algunos usuarios (especialmente aquellos nuevos en Linux) encuentran esto un poco extraño o inmanejable. Sin embargo esto no es cierto: usando variables de entorno hace que cualquiera pueda cambiar una opción de configuración para una o más aplicaciones fácilmente. Ejemplos Importantes La siguiente tabla muestra un listado de variables de entorno usado por un sistema Linux y describe su uso. Los valores de ejemplo se encuentran después de la tabla. Variable Descripción Esta variable contiene una lista de directorios separados por ":" en la cual el sistema buscará los archivos ejecutables. Al introducir el nombre de un ejecutable (como ls, rcPATH update o emerge) que no se encuentre en un de los directorios listados, el sistema no lo encontrará, (a menos que se introduzca la ruta completa, por ejemplo: /bin/ls). Esta variable tiene la misma función que PATH, pero únicamente contiene los ROOTPATH directorios que el sistema debe revisar cuando el usuario root introduce un comando. Esta variable contiene una lista de directorios separados por ":" en la cual el enlazador LDPATH dinámico busca para encontrar una librería. Esta variable contiene una lista de directorios separados por ":" en la cual el comando MANPATH man busca las páginas de manual. Esta variable contiene una lista de directorios separados por ":" en la cual el comando INFODIR info busca las páginas info. Esta variable contiene la ruta hacia el programa utilizado para mostrar el contenido de PAGER los ficheros (como less o more). Esta variable contiene la ruta hacia el programa utilizado para modificar el contenido de EDITOR los archivos (como nano o vi). Esta variable contiene una lista de directorios separados por ":" los cuales contienen KDEDIRS material específico de KDE. CONFIG_PROT Esta variable una lista de directorios separados por espacio los cuales deben ser ECT protegidos por Portage durante las actualizaciones. CONFIG_PROT Esta variable una lista de directorios separados por espacio los cuales no deben ser ECT_MASK protegidos por Portage durante las actualizaciones.

25 de Mayo 445 Piso 2 (1002) Bs.As.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

A continuación puedes encontrar ejemplos de definiciones para todas estas variables: Definiciones de ejemplo PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin" ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3" MANPATH="/usr/share/man:/usr/local/share/man" INFODIR="/usr/share/info:/usr/local/share/info" PAGER="/usr/bin/less" EDITOR="/usr/bin/vim" KDEDIRS="/usr" CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \ /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf" Definiendo variables globalmente El directorio /etc/env.d Para centralizar la definición de estas variables, Gentoo introduce el directorio /etc/env.d. Dentro de este directorio se encuentran varios ficheros como por ejemplo 00basic, 05gcc, etc. los cuales contienen las variables necesarias para la aplicación de la cual llevan el nombre. Por ejemplo, al instalar gcc, un fichero llamado 05gcc que contiene la definición de las siguientes variables, fue creado por el ebuild: /etc/env.d/05gcc PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2" ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2" MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man" INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info" CC="gcc" CXX="g++" LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3" Otras distribuciones le piden modificar o añadir definiciones de variables de entorno semejantes en /etc/profile o en otros sitios. Por otro lado, Gentoo nos hace (y a Portage) más fácil mantener y manejar las variables de entorno sin tener que prestar atención a los numerosos ficheros que pueden contenerlas. Por ejemplo, cuando gcc es actualizado, también es actualizado el fichero /etc/env.d/05gcc sin ser necesaria ninguna interacción por parte del usuario.

25 de Mayo 445 Piso 2 (1002) Bs.As.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

Esto no solo beneficia a Portage. los usuarios que instalaron Gentoo ellos mismos.so. tomamos la variable http_proxy. Para el resto de variables (archivos en orden alfabético en /etc/env. LDPATH. haciendo más fácil a los paquetes (o usuarios) añadir sus propias opciones en las variables de entorno sin interferir con los valores ya existentes. solamente actualiza las variables en la termanal actual y las nuevas 25 de Mayo 445 Piso 2 Tel 4313–2484 /2486/2475 (1002) Bs. el script creará todas las variables de entorno y las colocará en /etc/profile. Los nombres de fichero deben comenzar con dos digitos decimales. CONFIG_PROTECT. Después de esto. PATH. puedes crear el fichero (/etc/env.com:8080" Usando el mismo fichero para todas las variables.ar . Posiblemente. Si quiere observar el efecto de env-update inmediatamente después de ejecutarlo. recordarán estas instrucciones de la instalación: Actualizar el entorno # env-update && source /etc/profile Nota: El comando anterior.d.d)se utilizará el último valor definido Cuando ejecute env-update. Como ejemplo.env (el cual es usado por /etc/profile). PRELINK_PATH y PRELINK_PATH_MASK.so. se obtiene una visión rápida de las variables que definidas por uno mismo. Además.As. opensource@osi-sistemas. este concatenará las múltiples definiciones antes de actualizar las variables de entorno. En ocasiones se podrá pedir establecer cierta variable de entorno para todo el sistema. esto no es un error: cuando ejecute env-update.server. también extraerá la información de la variable LDPATH y la usará para crear /etc/ld.2/bin:/usr/local/bin" La concatenación de variables no siempre funciona.conf.d definen la variable PATH. El script env-update Varios archivos de /etc/env. sino también al usuario. ejecutará ldconfig para recrear el archivo usado por el enlazador dinámico: /etc/ld. CONFIG_PROTECT_MASK. INFODIR. ROOTPATH. ejecute el siguiente comando para actualizar su entorno. En lugar de perder el tiempo con /etc/profile. sólo con las siguientes variables: KDEDIRS.d/99local http_proxy="proxy. MANPATH.com. El script env-update concatenará los valores alfabéticamente ordenados por el nombre de los ficheros de /etc/env.d/99local) y introducir la(s) definición(es) en él: /etc/env.cache. Update order used by env-update 00basic 99kde-env 99local +-------------+----------------+-------------+ PATH="/bin:/usr/bin:/usr/kde/3. INFOPATH.

debemos usar ~/. Para estos momentos necesitará esto. Definiendo variables locales Específicas de usuario No siempre queremos definir variables de entorno globales.As. su variable PATH será actualizada. a la variable PATH. En este caso. Si esta utilizando un gestor de inicio. necesitará salir de la sesión y volver a entrar para las X generen hijos con las nuevas variables. puede definir la variable PATH en su sesión activa usando el comando export. Por ejemplo. se requieren definiciones aún más estrictas.bashrc o ~/. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.bash_profile: Ampliar el PATH para uso local en: ~/. Si queremos definir una variable localmente. Mientra no cierre la sesión. Esto implica que cosas como FOO="$BAR" (donde $BAR es otra variable) están prohibidas.consolas. Definir una variable específica a la sesión # export PATH="${PATH}:/home/my_user/tmp/usr/bin" 25 de Mayo 445 Piso 2 (1002) Bs. si se esta trabajando en X11. Importante: No se pueden utilizar las variables del terminal para definir otras variables.com.d/xdm restart.bashrc (Dos puntos sin incluir después un directorio son tratados como el directorio de trabajo actual) PATH="${PATH}:/home/my_user/bin:" Cuando vuelva a iniciar la sesión. Específicas de sesión En ocasiones. necesitara ejecutar source /etc/profile en cada nueva terminal que abra o reiniciar las X para que todas las nuevas terminales cogan las nuevas variables. la variable PATH usará los valores temporales. Puede querer usar binarios de un directorio temporal que ha creado sin tener que usar la trayectoria completa a los binarios o sin editar ~/. pero no queremos que todos los usuarios de nuestro sistema lo tengan en su PATH. podríamos querer añadir /home/my_user/bin y el directorio de trabajo actual (en el cual nos encontramos).ar .bashrc. Conociendo esto. Si no. conviertase en root y ejecute /etc/init.

es un sistema operativo multitarea y multiusuario. que es siempre un entero positivo.Administración de procesos.com.ar . ps El comando ps es el que permite informar sobre el estado de los procesos. La excepción a lo anterior es el kernel en si. cinco procesos distintos.3 . Prácticamente todo lo que se está ejecutando en el sistema en cualquier momento es un proceso. incluyendo el shell. Prioridades La más simple definición de un proceso podría ser que es una instancia de un programa en ejecución (corriendo).• 2. donde se utilizan nombres de opciones largas y van precedidas por doble guión -- 25 de Mayo 445 Piso 2 (1002) Bs. etc. los recursos del sistema que este consumiendo. Tiene una gran cantidad de opciones. Cada instancia es un proceso separado.As. si cinco usuarios desde equipos diferentes. donde las opciones no llevan guión • Estilo GNU. En un sistema operativo multitarea. es decir. A los procesos frecuentemente se les refiere como tareas. incluso estas opciones varían dependiendo del estilo en que se use el comando. múltiples instancias de un programa pueden ejecutarse sumultáneamente. el ambiente gráfico que puede tener múltiples procesos. ejecutan el mismo programa al mismo tiempo. es decir. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. el cual es un conjunto de rutinas que residen en memoria y a los cuales los procesos a través de llamadas al sistema pueden tener acceso. Cada proceso que se inicia es referenciado con un número de identificación único conocido como Process ID PID. como se sabe. lee directamente la información de los archivos que se encuentran en este directorio. Este contexto puede ser mas procesos hijos que se hayan generado del principal (proceso padre). Cada proceso tiene la "ilusión" que es el único proceso en el sistema y que tiene acceso exclusivo a todos los servicios del sistema operativo. Por ejemplo. El contexto de un programa que esta en ejecución es lo que se llama un proceso. etc. ps esta basado en el sistema de archivos /proc. habría cinco instancias del mismo programa. Linux. Estas variaciones sobre el uso de ps son las siguientes: • Estilo UNIX. Programas y procesos son entidades distintas. Esto quiere decir que múltiples procesos pueden operar simultáneamente sin interferirse unos con los otros. donde las opciones van precedidas por un guión • Estilo BSD. sus atributos de seguridad (tales como su propietario y permisos de archivos asi como roles y demás de SELinux).

com. o esperando por algún evento para continuar • T sTopped. si no hay terminal aparece entonces un '?' Tiempo de uso de cpu acumulado por el proceso El nombre del programa o camndo que inició el proceso Resident Sise. difunto. un número positivo significa menos tiempo de procesador y negativo más tiempo (-19 a 19) Porcentaje de cpu utilizado por el proceso Starting Time. corriendo o ejecutándose • S sleeping. igual que los Z no deberían verse nunca 25 de Mayo 445 Piso 2 (1002) Bs. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. proceso terminado pero que sigue apareciendo. varias columnas se mostrarán en el listado de procesos que resulte. padre del proceso User ID. proceso detenido totalmente. hora de inicio del proceso Status del proceso. muerto. estas columnas pueden ser entre muchas otras. valor nice (prioridad) del proceso. Parent Process ID. número único o de identificación del proceso.ar . estos pueden ser los siguientes • R runnable. son procesos generalmente asociados a acciones de IO del sistema • X dead. en ejecución. proceso en ejecución pero sin actividad por el momento. no debe haber procesos zombies • D uninterruptible sleep. las siguientes (y principales): p o PID P o PPID U o UID t o TT o TTY T o TIME c o CMD RSS SZ o SIZE NI C o PCPU STIME S o STAT Process ID.Sea cual sea el estilo utilizado. proceso que por alguna razón no terminó de manera correcta.As. pero puede ser reiniciado • Z zombie. tamaño de la parte residente en memoria en kilobytes Tamaño virtual de la imagen del proceso Nice. usuario propietario del proceso Terminal asociada al proceso. dependiendo de las opciones indicadas.

. including other users -t by tty g OBSOLETE -. y para ver un resumen de sus opciones más comunes usa ps --help: #> ps --help ********* simple selection ********* ********* selection by list ********* -A all processes -C by command name -N negate selection -G by real group ID (supports names) -a all w/ tty except session leaders -U by real user ID (supports names) -d all except session leaders -g by session OR by effective group name -e all processes -p by process ID T all processes on this terminal -s processes in the sessions given a all w/ tty. o escribiendo en la terminal ps L.ar #> ps -ef (-f muestra opciones completas) UID PID PPID C STIME TTY TIME root 1 0 0 10:12 ? 00:00:01 root 2 0 0 10:12 ? 00:00:00 .-L..-T.As.V show version L list format codes f ASCII art forest -m. .l long u user-oriented --sort --tty --forest --version -F extra full X registers --heading --no-heading --context ********* misc options ********* -V.Las opciones completas de ps las encuentras en las páginas del manual (man ps).Z security data c true command name -c scheduling class -w. root 6130 5662 0 10:24 pts/0 00:00:00 root 6134 6130 0 10:24 pts/0 00:00:00 sergon 6343 5604 0 10:28 ? 00:00:00 file /home/sergon/tmp/ksocket-sergon/kl root 6475 6134 0 10:38 pts/0 00:00:00 25 de Mayo 445 Piso 2 (1002) Bs.m.O preloaded -o v virtual memory --cumulative --format --deselect -l.H threads S children in sum -y change -l format -M.UID -H process hierarchy A continuación algunos cuantos ejemplos de ps con la salida recortada.DO NOT USE -u by effective user ID (supports names) r only running processes U processes for specified users x processes w/o controlling ttys t by tty *********** output format ********** *********** long options *********** -o.com.o user-defined -f full --Group --User --pid --cols --ppid -j.j job control s signal --group --user --sid --rows --info -O. ># ps PID 1 2 3 4 -e TTY ? ? ? ? (-e muestra TIME 00:00:01 00:00:00 00:00:00 00:00:00 todos los procesos) CMD init kthreadd migration/0 ksoftirqd/0 CMD init [5] [kthreadd] su -bash kio_file [kdeinit] ps -ef Tel 4313–2484 /2486/2475 opensource@osi-sistemas.w wide output n numeric WCHAN.

se indican los campos por coma.0.0. sin la ruta.0 0.#> ps -eF (-F muestra opciones completas extra) UID PID PPID C SZ RSS PSR STIME TTY TIME CMD root 1 0 0 412 556 1 16:59 ? 00:00:01 init [5] root 2 0 0 0 0 1 16:59 ? 00:00:00 [kthreadd] sergon 8326 8321 0 902 1272 0 17:07 ? 00:00:00 /bin/sh /usr/lib/firefox-2.0 0. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.0 0 0 root 3 0.8/mozilla-firefox-bin sergon 8570 7726 2 15211 37948 0 17:17 ? 00:00:10 quanta #> ps PID 1 2 3 4 ax TTY ? ? ? ? (formato STAT Ss S< S< S< BSD sin guión.0 0. a muestra todos.8/run-mozilla. lista todos los códigos de formatos) 25 de Mayo 445 Piso 2 (1002) Bs. ver ps --help o ps L) PID TT 1 ? 2 ? 8570 tty 1 8876 pts/1 (muestra árbol de procesos) (lo mismo en formato BSD) (el comando que se esta ejecutando. u USER PID %CPU %MEM VSZ RSS root 1 0.pid.0 0.0 0.0 0 0 [ksoftirqd/0] root 5 0. x sin mostrar tty) TIME COMMAND 0:01 init [5] 0:00 [kthreadd] 0:00 [migration/0] 0:00 [ksoftirqd/0] muestra usuarios y demás columnas) TTY STAT START TIME COMMAND ? Ss 16:59 0:01 init [5] ? S< 16:59 0:00 [kthreadd] ? S< 16:59 0:00 ? ? S< S< 16:59 16:59 0:00 0:00 #> ps aux (formato BSD sin guión.As.sh /usr/lib/f sergon 8331 8326 4 53856 62604 0 17:07 ? 00:00:50 /usr/lib/firefox-2.tty (-o output personalizado. solo el nombre (muestra formato largo de varias columnas.0.0.0 1648 556 root 2 0.0 0 0 [migration/1] #> ps -eo separados USER root root sergon root #> ps #> ps #> ps real) #> ps #> ps -eH axf -ec -el L user.com.0 0 0 [migration/0] root 4 0. muy práctico) (No muestra procesos.ar .

Tel 4313–2484 /2486/2475 opensource@osi-sistemas. que literalmente quiere decir matar.com. pstree --help te da las opciones más comunes. kill El comando kill. Recomiendo uses lo uses con la opción -A y -G para que te un árbol con líneas con líneas estilo ASCII y de terminal VT100 respectivamente. sirve no solo para matar o terminar procesos sino principalmente para enviar señales (signals) a los procesos.pstree Muestra los procesos en forma de árbol. La señal por default (cuando no se indica 25 de Mayo 445 Piso 2 (1002) Bs. puedes añadir también -u para mostrar entre paréntesis al usuario propietario del proceso: #> pstree -AGu init---acpid |-atd(daemon) |-automount----2*[{automount}] |-avahi-daemon(avahi) |-beagled(sergon)----7*[{beagled}] |-beagled-helper(sergio)----3*[{beagled-helper}] |-compiz(sergon)----kde-window-deco |-console-kit-dae----61*[{console-kit-dae}] |-crond |-dbus-daemon(messagebus) |-dbus-daemon(sergio) |-dbus-launch(sergio) |-dcopserver(sergio) |-dhclient |-gam_server(sergio) |-gconfd-2(sergio) |-hald(haldaemon)----hald-runner(root)----hald-addon-acpi(haldaemon) | |-hald-addon-cpuf | |-hald-addon-inpu | |-hald-addon-stor |-httpd---8*[httpd(apache)] |-2*[ifplugd] |-ipw3945d |-kaccess(sergio) .As..ar ..

lo que afectará a todos los procesos que tengan ese nombre. #> kill -l (lista todas las proceso) 1) SIGHUP 2) SIGINT 5) SIGTRAP 6) SIGABRT 9) SIGKILL 10) SIGUSR1 13) SIGPIPE 14) SIGALRM 17) SIGCHLD 18) SIGCONT 21) SIGTTIN 22) SIGTTOU 25) SIGXFSZ 26) SIGVTALRM 29) SIGIO 30) SIGPWR 35) SIGRTMIN+1 36) SIGRTMIN+2 39) SIGRTMIN+5 40) SIGRTMIN+6 43) SIGRTMIN+9 44) SIGRTMIN+10 47) SIGRTMIN+13 48) SIGRTMIN+14 51) SIGRTMAX-13 52) SIGRTMAX-12 55) SIGRTMAX-9 56) SIGRTMAX-8 59) SIGRTMAX-5 60) SIGRTMAX-4 63) SIGRTMAX-1 64) SIGRTMAX posibles señales que pueden enviarse a un 3) 7) 11) 15) 19) 23) 27) 31) 37) 41) 45) 49) 53) 57) 61) SIGQUIT SIGBUS SIGSEGV SIGTERM SIGSTOP SIGURG SIGPROF SIGSYS SIGRTMIN+3 SIGRTMIN+7 SIGRTMIN+11 SIGRTMIN+15 SIGRTMAX-11 SIGRTMAX-7 SIGRTMAX-3 4) 8) 12) 16) 20) 24) 28) 34) 38) 42) 46) 50) 54) 58) 62) SIGILL SIGFPE SIGUSR2 SIGSTKFLT SIGTSTP SIGXCPU SIGWINCH SIGRTMIN SIGRTMIN+4 SIGRTMIN+8 SIGRTMIN+12 SIGRTMAX-14 SIGRTMAX-10 SIGRTMAX-6 SIGRTMAX-2 La lista previa presenta una lista de todas las posibles señales que pueden mandarse a un proceso y estas pueden ser invocadas a través del número de la señal o de su código.com. detenerse releer sus y reiniciar) (manda señal de matar a todos los procesos squid cada uno) Tel 4313–2484 /2486/2475 opensource@osi-sistemas. 1 que es la señal de hang up que obliga al proceso a releer sus archivos de configuración estando en ejecución y 9 que termina rotundamente un proceso. es posible enviar una señal de STOP al proceso y se detendrá su ejecución. Asi por ejemplo. y la sintaxis es kill PID. 18 la continua. Asi por ejemplo si se tienen varias instancias ejecutándose del proxy server squid. pero con la diferencia de en vez de indicar un PID se indica el nombre del programa. siendo PID el número de ID del proceso. que funciona de manera similar a kill.As. mata un proceso completamente) (Lo mismo que lo anterior) Las señales más comunes son la 19 y 20 que detienen momentáneamente la ejecución de un proceso o programa. por ejemplo: #> kill -9 11428 #> kill -SIGKILL 11428 (termina.ninguna es terminar o matar el proceso). después cuando se quiera mandar una señal de CONTinuar y el proceso continuara desde donde se quedo. con killall squid eliminará todos los procesos que se esten ejecutando con el nombre 'squid' #> killall -l #> killall -HUP httpd archivos de configuración #> killall -KILL -i squid pero pide confirmación en 25 de Mayo 445 Piso 2 (1002) Bs.ar . (lista de posibles señales) (manda una señal de "colgar". killall El comando killall.

com. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. y en el segundo con renice quedó en 7. Para lograr esto basta con escribir el comando en cuestión y agregar al final el símbolo & (ampersand). no son lo mismo. Las prioridades van de -20 (la más alta) a 19 la más baja. Solo root o el superusuario puede establecer prioridades negativas que son más altas. más alta o más baja según se requiera. nueva prioridad 7 #> ps -el F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY 4 S 0 12826 12208 4 87 7 708 write_ pts/2 TIME CMD 00:00:15 yes (obsérvese el campo NI en el primer caso en -5. #> nice -n -5 yes (se ejecuta el programa 'yes' con prioridad -5) (dejar ejecutando 'yes' y en otra terminal se analiza con C PRI 4 75 NI ADDR SZ WCHAN TTY -5 708 write_ pts/2 TIME CMD 00:00:00 yes 'ps') #> ps -el F S UID PID PPID 4 S 0 12826 12208 #> renice 7 12826 12826: prioridad antigua -5.ar . en tiempo real) nohup y & Cuando se trata ejecutar procesos en background (segundo plano) se utiliza el comando nohup o el operador &. sin necesidad de detener el proceso. Si se desea liberar la terminal de un programa que se espera durará un tiempo considerable ejecutándose. Por defecto. todos los procesos tienen una prioridad igual ante el CPU que es de 0.nice Permite cambiar la prioridad de un proceso. Esto funciona mejor cuando el resultado del proceso no es necesario mandarlo a la salida estándar (stdin). renice permite alterarla en tiempo real. como por ejemplo cuando se ejecuta un respaldo o se abre un programa Xwindow desde la consola o terminal. #> nice (sin argumentos. devuelve la prioridad por defecto ) 0 #> nice -n -5 comando (inicia comando con una prioridad de -5. Con la opción -l de ps es posible observar la columna NI que muestra este valor. Con nice es posible iniciar un programa (proceso) con la prioridad modificada. Aunque realizan una función similar. entonces se usa .As. lo que le da más tiempo de cpu) renice Asi como nice establece la prioridad de un proceso cuando se incia su ejecución. 25 de Mayo 445 Piso 2 (1002) Bs.

$> yes > /dev/null & $> tar czf respaldo /documentos/* > /dev/null/ & $> konqueror & (con estos ejemplos se ejecuta el comando y se libera la terminal regresando el prompt) Sin embargo lo anterior produce que el padre del proceso PPID que se invocó con sea el proceso de la terminal en si. entonces se usa el comando nohup que permite al igual que '&' mandar el proceso y background y que este quede inmune a los hangups (de ahí su nombre nohup) que es cuando se cuelga o termina la terminal o consola de la cual se ejecutó el proceso. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. no muy conveniente si se desea que el proceso continué en ejecución. indicando asi que se trata del trabajo o de la tarea [1] y su PID. Con los comandos fg (foreground) y bg background es posible manipular procesos que esten suspendidos temporalmente.txt & En el ejemplo previo. por lo que si cerramos la terminal o salimos de la sesión también se terminaran los procesos hijos que dependan de la terminal. y para eos tenemos el comando jobs que lista los procesos actuales en ejecución: #> yes > /dev/null & [1] 26837 #> ls -laR > archivos. Pero si solo se está en una terminal esto puede ser difícil de controlar.txt & [2] 26854 #> jobs [1]. ya sea porque se les envió una señal de suspensión como STOP (20) o porque al estarlos ejecutando se presionó ctrl-Z. $> nohup yes > /dev/null & $> nohup czf respaldo /documentos/* > /dev/null/ $> nohup konqueror Asi se evita que el proceso se "cuelgue" al cerrar la consola. esta es la segunda tarea. jobs Si por ejemplo. se pueden entonces como ya se vió previamente con nohup y el operador '&' mandarlos a segundo plano o background con el objeto de liberar la terminal y continuar trabajando. y se tienen que ejecutar varios comandos que se ejecutarán por largo tiempo.As. Entonces para reanudar su ejecución en primer plano usaríamos fg: #> jobs 25 de Mayo 445 Piso 2 (1002) Bs. se tiene acceso a una única consola o terminal.com.Running [2]+ Running yes >/dev/null & ls --color=tty -laR / >archivos. Para solucionar lo anterior. se ejecutó el comando yes y se envió a background (&) y el sistema devolvió [1] 26837. lo mismo con la segunda tarea que es un listado recursivo desde la raíz y enviado a un archivo.ar .

etc.00 0:00. 0. 257088k used.As. 0.Stopped [2]+ Stopped #> fg %1 #> jobs [1]+ Running [2]. este adquirió el símbolo [+] que indica que esta al frente. 0. presionando 'h' muestra una ayuda de los posibles comandos que permiten configurar top. es interactivo y por defecto se actualiza cada 3 segundos.0 S 0 0. terminaría con el proceso en jobs número 1. top Una utilería muy usada y muy útil para el monitoreo en tiempo real del estado de los procesos y de otras variantes del sistema es el programa llamado top.0 S 0 0.com. 60420k cached PID 26156 1 2 3 4 5 . USER sergon root root root root root PR 15 15 RT 34 RT RT NI 0 0 0 19 0 0 VIRT RES 2160 1016 2012 616 0 0 0 0 0 0 0 0 SHR 784 584 0 0 0 0 S %CPU %MEM R 1 0. 21500k buffers Swap: 1156640k total.38 COMMAND top init migration/0 ksoftirqd/0 watchdog/0 migration/1 Estando adentro de la apliación. Como es natural un archivo puede contener cualquier tipo de información.08 Tasks: 133 total.0%hi.0%st Mem: 497356k total. por ejemplo.txt & yes >/dev/null & ls --color=tty -laR / >archivos. 99. load average: 0.0 TIME+ 0:00. 4 users.Stopped yes >/dev/null & ls --color=tty -laR / >archivos. Archivos: Tipos La base del sistema de archivos de Linux. Y también es posible matar los procesos con kill indicando el número que devuelve jobs: kill %1. 131 sleeping. Lo mismo sería con bg que volvería a reinicar el proceso pero en segundo plano.11.0%wa. se ejecuta desde la línea de comandos. un disquete.0%us.7%id.00 0:00. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. 0.08. 899552k free.98 0:00.0 S 0 0. 472352k used. 0 stopped. 0.txt & Obsérvese como al traer en primer plano al 'job' o proceso 1.2%si. 1 zombie Cpu(s): 0.2 S 0 0.29 0:00.2%sy.[1].1 S 0 0. un CD-ROM o un DVD. $> top top . 0. que no es otra cosa que la estructura empleada por el sistema operativo para almacenar información en un dispositivo físico como un disco duro.93 0:00. desde una imagen en formato PNG o JPEG a un texto o una página WEB 25 de Mayo 445 Piso 2 (1002) Bs.. 6:44.ar . al presionar 's' pregunta por el tiempo en segundos de actualización. 0. es obviamente el archivo.0%ni. 0.. 25004k free. 1 running.13:07:30 up 8 days.

As.jpeg) respectivamente. puesto que permiten compartir el fichero pero centralizan las modificaciones. el cual debe cumplir unas ciertas reglas: • Un nombre de archivo puede tener entre 1 y 255 caracteres. Así. como puede ser una impresora. • Se pueden utilizar números exclusivamente si así se desea.txt.txt que Carta. son los mencionados anteriormente. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. y por lo tanto no es lo mismo carta. las imágenes PNG o JPEG tienen extensiones . Como ejemplo se puede suponer la existencia de un fichero llamado balance. los ficheros de texto. Enlaces Los enlaces son un tipo de archivo ordinario cuyo objetivo es crear un nuevo nombre para un archivo determinado. • Archivos especiales.? [ ] ( ) ! & ~ < >. Las letras mayúsculas y minúsculas se consideran diferentes. al que se crea un enlace simbólico balance.htm (o . Cualquier acceso a balance. … El sistema de archivos es la estructura que permite que Linux maneje los archivos que contiene. • Se puede utilizar cualquier carácter excepto la barra inclinada / y no es recomendable emplear los caracteres con significado especial en Linux.txt.Txt Como en Windows. puesto que representan los dispositivos conectados a un ordenador. • Directorios (o carpetas). Para emplear ficheros con estos caracteres o espacios hay que introducir el nombre del fichero entre comillas. El camino o Path 25 de Mayo 445 Piso 2 (1002) Bs. Pese a esto Linux sólo distingue tres tipos de archivos: • Archivos o ficheros ordinarios.png y . Los enlaces simbólicos son especialmente útiles cuando se quiere que un grupo de personas trabajen sobre un mismo fichero. . que son los siguientes: = ^ ~ ' " ` * .en formato HTML. son la base sobre la que se asienta Linux. . Todos los archivos de Linux tienen un nombre.jpg (o . Para el usuario estos dispositivos tienen el mismo aspecto y uso que los archivos ordinarios.txt. se puede emplear un cierto criterio de "tipo" para marcar las distintas clases de ficheros empleando una serie de caracteres al final del nombre que indiquen el tipo de fichero del que se trata.html). .txt es traducido por el sistema de forma que se accede al contenido de balance.1999.1999.txt. Una vez creado el enlace simbólico éste permite acceder al fichero que enlaza de igual modo que si se hubiera copiado el contenido del mismo a otro fichero. De esta forma introducir información en ese archivo equivale a enviar información a la impresora. HTML.ar .com.txt ó carta. con la ventaja de que este realmente no se ha copiado. es un archivo especial que agrupa otros ficheros de una forma estructurada.

En cualquier sistema operativo moderno la estructura de archivos es jerárquica y depende de los directorios. En general la estructura del sistema de archivos se asemeja a una estructura de árbol, estando compuesto cada nudo por un directorio o carpeta, que contiene otros directorios o archivos. En Windows cada unidad de disco se identifica como una carpeta básica que sirve de raíz a otras, y cuyo nombre es especial a:, c:, d: etc. En los sistemas Unix, y por lo tanto en Linux, existe una única raíz llamada / de la que cuelgan todos los ficheros y directorios, y que es independiente de qué dispositivos estén conectados al ordenador. El camino o path de un fichero o directorio es la secuencia de directorios que se ha de recorrer para acceder a un determinado fichero separados por /. Supongamos la estructura de archivos de la Figura 2.

Existen dos formas del path o camino: • el camino absoluto que muestra toda la ruta a un fichero, /home/luis/Carta.txt. • el path relativo a un determinado directorio, por ejemplo si no encontramos en el directorio /home, el path relativo al fichero Carta.txt es luis/Carta.txt Para complicar aun más las cosas, todos los directorios contienen dos directorios especiales: Figura 2 •=El directorio actual, representado por el punto . •=El directorio padre representado por dos puntos .. Estando en el directorio /home/pedro se puede acceder a Carta.txt con /home/luis/Carta.txt (path absoluto) o bien ../luis/Carta.txt (path relativo). En luis como ./Carta.txt o simplemente Carta.txt. Estructura del sistema de archivos de Linux El sistema de archivo de Linux sigue todas las convenciones de Unix, lo cual significa que tiene una estructura determinada, compatible y homogénea con el resto de los sistemas Unix. Al contrario que en Windows o MS-DOS el sistema de archivos en cualquier sistema Unix no está ligado de una forma directa con la estructura del hardware, esto es, no depende de si un determinado ordenador tiene 1, 2 o 7 discos duros para crear las unidades c:, d: o m:. Todos el sistema de archivos de Unix tiene un origen único la raíz o root representada por /. Bajo este directorio se encuentran todos los ficheros a los que puede acceder el sistema operativo. Estos ficheros se organizan en distintos directorios cuya misión y nombre son estándar para todos los sistema Unix. • • / Raíz del sistema de archivos. /dev Contiene ficheros del sistema representando los dispositivos que estén físicamente instalados en el ordenador. /etc Este directorio esta reservado para los ficheros de configuración del sistema. En este directorio no debe aparecer ningún fichero binario (programas). Bajo este deben aparecer otros dos subdirectorios: Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

25 de Mayo 445 Piso 2 (1002) Bs.As.

• • • • • •

/etc/X11 Ficheros de configuración de X Window /etc/skel Ficheros de configuración básica que son copiados al directorio del usuario cuando se crea uno nuevo. /lib Contiene las librerías necesarias para que se ejecuten los programas que residen en /bin (no las librerías de los programas de los usuarios). /proc Contiene ficheros especiales que o bien reciben o envían información al kernel del sistema (Se recomienda no modificar el contenido de este directorio y sus ficheros). /sbin Contiene programas que son únicamente accesibles al superusuario o root. /usr Este es uno de los directorios más importantes del sistema puesto que contiene los programas de uso común para todos los usuarios. Su estructura suele ser similar a la siguiente: • • • /usr/X11R6 Contiene los programas para ejecutar X Window. /usr/bin Programas de uso general, lo que incluye el compilador de C/C++. /usr/doc Documentación general del sistema.

/usr/etc Ficheros de configuración generales. /usr/include Ficheros de cabecera de C/C++ (.h). /usr/info Ficheros de información de GNU. /usr/lib Librerías generales de los programas. /usr/man Manuales accesibles con el comando man (ver más adelante). /usr/sbin Programas de administración del sistema. /usr/src Código fuente de programas.

• • •

Existen además de los anteriores otros directorios que se suelen localizar en el directorio • • /usr, como por ejemplo las carpetas de los programas que se instalen en el sistema. /var Este directorio contiene información temporal de los programas (lo cual no implica que se pueda borrar su contenido, de hecho, ¡no se debe hacer!)

Acceso a los diferentes sistemas de archivos Como se ha visto anteriormente el sistema de archivos de Linux sólo tiene una raíz y su estructura es independiente de los dispositivos de almacenamiento existentes. Esto implica que el procedimiento a emplear para acceder a la información almacenada en los distintos sistemas de almacenamiento de un ordenador no es tan sencilla como en Windows, y requiere un proceso llamado “montado”, que se verá más adelante. Cuando se ha terminado de trabajar con un determinado dispositivo hay que “desmontarlo” (¡No físicamente!). Por ejemplo el proceso para leer un disquete sería el siguiente: 25 de Mayo 445 Piso 2 (1002) Bs.As. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

1. Introducir el disquete en la disquetera. 2. Montar el sistema de archivos del mismo. 3. Leer, grabar, y manipular el contenido del disquete. 4. Desmontar el sistema de archivos del disquete. 5. Extraer el disquete de la disquetera. El proceso puede parecer complejo pero es el precio a pagar por la seguridad, puesto que de esta forma se garantiza que no exista ninguna aplicación que esté usando el disquete cuando se extraiga. (En el caso de los CD-ROM Linux impide su extracción hasta que se desmonta). Para complicar más las cosas sólo el administrador o root tiene permiso para montar y desmontar un sistema de archivos (por motivos de seguridad), aunque esto puede ser arreglado. Permisos Linux, al igual que todos los sistemas Unix, mantiene un sistema de permisos de acceso a los ficheros muy estricto, a fin de controlar qué es lo que se puede hacer con ellos, y quien lo puede hacer. Estos permisos se identifican con letras y son: r permiso de lectura el fichero w permiso de escritura en el fichero x permiso de ejecución del fichero s permiso para cambiar el propietario del fichero Al contrario que en Windows o MS-DOS los programas ejecutables de Linux no están marcados por una determinada extensión (.exe) sino por un atributo, el permiso de ejecución x. Si se elimina este atributo a un programa, Linux no será capaz de ejecutarlo. A su vez cada uno de estos permisos se aplica: al dueño del fichero (u), al grupo de usuarios al que pertenece el dueño (g), ó al resto de usuarios (a). Así un fichero determinado puede tener permiso para ser leído, escrito y ejecutado por su dueño, leído y ejecutado por el grupo al que pertenece y no tener ningún tipo de acceso para los demás usuarios. Como se puede entender este tipo de mecanismo es especialmente útil cuando se trabaja en grupo en un determinado proyecto.

25 de Mayo 445 Piso 2 (1002) Bs.As.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

Indistintamente del método. archivos de configuración o documentación-. . Estos paquetes pueden tener las extensiones . cualquier PC de arquitectura Intel® o compatible.i586. Sin embargo es importante que el usuario novicio se familiarice con este comando para poder entender el funcionamiento de las mencionadas aplicaciones en el entorno gráfico.rpm que puede utilizarse en cualquier arquitectura. son gnorpm y kpackage.noarch. puede instalar con total seguridad los paquetes para i386. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Tiene como ventaja principal el encargarse de verificar las posibles dependencias o requisitos para la instalación o actualización de un paquete en particular.1 . .i386. es indispensable se conozca primero el uso y el porque de cada método existente para el manejo del software.rpm para Machintosh® PowerPC o . Instalación binarios contenidos en paquetes con formato RPM®. consulte el manual escribiendo man rpm en cualquier terminal o consola.rpm Nos limitaremos a abordar solo las opciones más comúnes que un nuevo usuario de Linux® podría necesitar. Los paquetes de este tipo son programas previamente compilados. es decir. .rpm para PC compatible con al menos un microprocesador 80386.ppc. Sintáxis rpm -[opciones] paquete. almacenados y listos para ser instalados en el sistema. Si desea ver una descripción completa de las posibles opciones del comando rpm.i686. Los paquetes noarch generalmente contiene archivos de texto -guiones para diversas funciones.rpm para PC compatible con microprocesador 80686. De esto se dependerá en adelante para mantener un saludable estado de cualquier sistema Linux®. • 3. es decir.rpm para PC compatible un microprocesador 80486. . Existen dos aplicaciones en el entorno gráfico que utilizan rpm en el trasfondo y que son de muy fácil utilización.As.ar .rpm para PC compatible con microprocesador 80586. no se preocupe por encontrar paquetes i686 para su PC con microprocesador Intel Pentium III. imagenes.Red Hat Package Manager Manejo de paquetes a partir de archivos RPM® El formato RPM® es el más utilizado en la actualidad.• Instalación de Software Antes de continuar. todos se deberá de realizar desde la cuenta de root. sonidos.com. así como también el verificar si el paquete que se procederá a desinstalar es requerido por otros paquetes presentes en el sistema. así que proceda con cuidado. etc..i486. archivos que trabajan indistintamente en uno u otro sistema. En la práctica. La sintáxis que se sugiere utilizar en la mayoría de los casos para instalar o actualizar paquetería es la siguiente: 25 de Mayo 445 Piso 2 (1002) Bs. Analizaremos entonces el uso del comando rpm.

esta no continuará el proceso si existiese en el sistema una versión anterior de dicho paquete. En ocasiones es posible que se encuentre en uns situación como esta: usted encuentra en algún sitio de Internet un paquete RPM® del cual se hablan maravillas en la descripción. a fin de conseguir un proceso limpio.rpm El utilizar la opción U.x y el usuario se topa con que alguna de sus aplicaciones favoritas simplemente ya no funcionan. A continuación se descomprime el archivo .gz o tar.tar. Es de particular ayuda cuando se actualiza.x utilizan.x hacen uso de Glibc. dependiendo de la arquitectura para la que se compiló.src.i386.rpm Confirmación de la existencia de paquetería en particular en el sistema. hace que primero se consulte la base de datos de la paquetería instalada. sobre los cuales seguramente ha leído en los foros y grupos d discusión.bz2 y se inicia la compilación y construcción del paquete RPM® con las especificaciones del spec. La ventaja que tiene la construcción e instalación paquetería a partir de archivos SRPM es que los paquetes resultantes quedan compilados de forma especial para el sistema Linux® que tengamos instalado.gz o tar.x a LinuxPPP® 6. procediendo a desinstalar a continuación la versión anterior e instalando la nueva. Aunque también puede utilizarse la opción i. solo restará instalar o actualizar con el paquete RPM® que ahora encontraremos. en /usr/src/redhat/SOURCES y un archivo. Esto se debe a que la diferencia entre las versiones de las bibliotecas compartidas entre una y otra versión de LinuxPPP puede ser demasiada.i386.src.com.tar.rpm y se procede sobre estos del siguiente modo: rpm --rebuild --clean paquete. ya que el procedimiento implica que se realizará la compilación de programas.rpm -Uvh paquete. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Las distribuciones basadas sobre RedHat® Linux 5. normalmeente un archivo con extención . que significa Update. Desinstalación binarios contenidos en paquetes con formato RPM®. Si al terminar el proceso en la última línea se obtiene + exit 0. pero deconoce si ya lo tendrá 25 de Mayo 445 Piso 2 (1002) Bs. conocido como spec. rpm -Uvh /usr/src/redhat/RPMS/i386/paquete.ar .As. Instalación a partir de código fuente contenido en paquetes con formato RPM®. también conocido como libc6. rpm -e paquete No requiere específicar el número de versión ni la extensión ya que consulta directamente la base de datos de la paquetería instalada en le sistema y procederá a desinstalar el paquete que lleve dicho nombre.bz2. Este procedimiento se aplica a los paquetes denominados SRPM. en alguno de los subdirectorios de /usr/src/redhat/RPMS. que significa install. entre otras cosas.rpm Esta última línea de comando coloca un paquete comprimido. libc5. Estos paquetes SRPM tienen la extensión . en tanto que las versiones basadas cobre 6. y requiere que se encuentren instalados en el sistema los paquetes de desarrollo -los paquetes contenidos en el CDROM de instalación que llevan "-devel-" en el nombre-. por citar un ejemplo. con las especificaciones del paquete en /usr/src/redhat/SPECS. de LinuxPPP® 5.

en las opciones del comando del modo siguiente: rpm -qpi --clean cualquier_paquete_que_haya_descargado. Si resultó un paquete más reciete que el que usted tenía.As. pero si ya lo tenía instalado o bien se trataba de una versión anterior. Si nos interesa examinar la información sobre algún paquete instalado en el sistema.instalado. misma que debe corresponder con la que este proporcione en el sitio web desde donde descargue dicho paquete. usted desearía haber sabido que podía utilizar la siguiente línea de comando: rpm -q nombre_del_paquete_sin_número_de_versión La correspondiente salida de esto nos dirá si el paquete se encuentra o no instalado y el número de versión. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.Debian Package Manager 25 de Mayo 445 Piso 2 (1002) Bs.i386. o si ya tiene una versión más reciente. utilice la siguiente línea de comando para verificar las firmas incluídas en paquetes antes de proceder a instalarlos:rpm -Kv paquete.rpm Esto debe darle la siguiente salida. utilizando una lenta conexión de modem y provando con la línea de comando rpm -Uvh. si usted descarga un paquete RPM® desde un sitio web o servidor FTP distinto al oficial de la distribución o conjunto de paquetes que utilice. Por cuestiones de seguridad. donde las x corresponden a la firma PGP de la persona que construyó el paquete: paquete.ar . Por si acaso.rpm Verificación de firmas de paquetes RPM®.com. utilizamos la siguiente línea de comando: rpm -qi nombre_del_paquete_sin_número_de_versión Lo anterior devuelve los detalles informativos respecto al paquete instalado. habrán valido la pena los 10-15 minutos invertidos en descargar dicho paquete. Si queremos examinar dicha información pero en un paqeute no instalado en el sistema.2 .i386. solo hace flata añadir p.i386. • 3.rpm: MD5 sum OK: xxxxxxxxxxxxxxxxxxxxx Compare la firma PGP con la del empaquetador. JAMÁS descargue e instale paquetes de binarios desde sitios web dedicados a actividades ilegales o de dudosa reputación. podría averiguarlo descargando dicho paquete. que implica que nos referiremos a un paquete. que quizá tenga varios Megabytes en tamaño. lo más saludable será verificar dicho paquete.

tar. 25 de Mayo 445 Piso 2 (1002) Bs. y el nombre más usado para dichos paquetes. ¿Como usarlos? El programa predeterminado para manejar estos paquetes es dpkg. Este el el método universal para todas las distribuciones de Linux® ya que funciona tando en distribuciones basadas sobre RedHat. Luego escribimos escribimos esto: Código: # dpkg -i nombredelpaquete. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. si fuese necesario usamos el comando "cd" para desplazarnos a dicha carpeta. en le caso de distribuciones basadas sobre RedHat® Linux. como Debian.deb es la extensión del formato de paquetes de software de Debian. Código: dpkg -r nombredelpaquete • 3. Y para desinstalar.los archivos que se instalan.gz .tar..deb Y es importante estar logeado como root para poder instalarlo. generalmente via el sistema APT..bz2.toda la metainformación del paquete data. dejar las carpetas resultantes con el código fuente en /usr/src/redhat/BUILD para tener una referencia y evitar romper las posibles dependencias entre los disitntos paquetes. Estructura Interna Estos paquetes contienen tres archivos: • • • debian-binary .Instalación de software a partir del código fuente Instalación de paquetes a partir de paquetes . Debido a que no se guarda un registro sobre lo que se tiene instalado y lo que no.3 .ar . asi como otros pueden ser convertidos a deb.com. Con eso ya debe ser suficiente.tar.gz o . Stampede o Slackware. ahora podemos ejecutar el programa escribiendo su nombre en la consola o buscandolo junto a los otros programas.número de versión del formato debcontrol. Para instalar primero nos situamos en donde este la carpeta con el . NOTA: Posiblemente deban usar comillas ("") en el nombre del paquete. conviene. Los paquetes deb también pueden ser convertidos a otros formatos de paquetes usando la aplicación Alien.As.¿Qué son? .deb.tar.gz .deb Deben cambiar nombre del paquete por el nombre del archivo ..

bz2. Lo primero será copìarlos en la carpeta /usr/src/redhat/SOURCES y lo siguiente consiste en decomprimir estos con la siguiente línea de comando: tar -zxvf /usr/src/redhat/SOURCES/paquete. . con la opción /net si va ser utilizado por varios usuarios.tar. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. denominados tarballs. El procesos puede durar varios minutos. necesitará ejecutar algunos comandos como se muestra a continuación: Compilación desde código fuente.La mayoría de estos paquetes.gz o tar./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var make make install make clean Algunos paquetes de binarios propietarios.gz /usr/src/redhat/BUILD/ Después acceda al interior de la carpeta resultante: cd /usr/src/redhat/BUILD/paquete Es necesario que lea la documentación que acompaña a dicho paquete y seguir las instrucciones proporcionadas por el autor.com. como StarOffice®. cd /usr/src/redhat/BUILD/so51inst/office51 . make Este es el que realiza la compilación del código fuente./configure Este prepara el Makefile y configura las opciones de compilación. make install Este se encarga de realizar la instalación del los binarios y módulos compilados en los lugares correctos. make clean Opcionalmente podemos utilizar este comando para limpiar los remanentes que se originaron por la compilación a fin de recuperar espacio en el disco duro./setup /net En la mayoría de los casos. Por lo general son necesarios al menos tres pasos: . vienen con extensión . mismas que en algunos casos pueden resultar demasiado complejas para un usuario novicio.tar. contenido en la subcarpeta bin. como ocurre con los programas con licencia GPL que se distribuyen como códigos fuentes. incluyen documentación y un instructivo que detalla la instalación.ar .As. 25 de Mayo 445 Piso 2 (1002) Bs. StarOffice requiere se ejecute el binario setup. Además de verifica si el sistema posee las bibliotecas de desarrollo necesarias para la compilación.

en el usuario (si es un archivo nuestro).ar . Éstas complementan algunas de las ya vistas anteriormente.1 . Ejecución de programas en Linux La ejecución de programas (archivos) en Linux es solo una cuestión de permisos. si por ejemplo queremos que sea ejecutable para todos. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Si estamos en el mismo directorio que el archivo será: $ .As.com.• 4. Una vez que ya es ejecutable. podemos solo escribir su nombre. les presentamos unas cuantas típicamente usadas para procesar texto plano. Junto con cada herramienta presentamos algunas de sus opciones y ejemplos de su uso (la documentación completa de cada herramienta puede consultarse en la página del manual o en la documentación info). precedido de la ruta al mismo para que se ejecute. por lo menos. Procesamiento de texto • 4. Para eso haremos uso del comando chmod a+x archivo. cada una de las cuales realiza una labor muy específica pero rápidamente y bien. por lo que podremos ejecutar cualquiera que tenga activado el bit de ejecución./archivo 25 de Mayo 445 Piso 2 (1002) Bs.Redireccionamiento y Tuberías Herramientas importantes Un sistema Linux cuenta con gran cantidad de herramientas.

Intercambia dos letras contiguas. Resultado: apt-get Bloquea el shell. Termina el proceso que esté en ejecución abruptamente. También sirve como atajo del comando exit. En este modo el usuario puede ir escribiendo parte de la linea de comandos que esta buscando. como ejemplos. Realiza un clear pero manteniendo la linea en la que fue pulsada esta combinación de teclas. que se utiliza para buscar comandos que fueron ejecutados anteriormente. Pone el proceso en ejecución a dormir (como una pausa). No lo termina. y el bash va mostrando la línea de comandos que el cree la más adecuada. Desbloquea el shell. que permite salir de la sesión actual.com. Por ejemplo. puesto que son los trucos que nos hacen la vida más fácil desde la consola de comandos. Se trata de los atajos de teclado. ^r ^t ^s ^q top Códigos de estado de procesos D Dormido en forma ininterrumpible R Corriendo o en cola S Dormido a la espera de un evento T Parado momentaneamente a la espera de uan señal de control W Paginado X Muerto (nunca debería aparecer uno de estos) Z Proceso "zombi" 25 de Mayo 445 Piso 2 (1002) Bs. También sirve para salir del man.As. si se escribe aptgte. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.Control de procesos Esto es algo muy interesante de manejar bien. El bash entra en el modo 'reverse-i-search'. enter. Una vez has encontrado la que buscabas. Atajo ^d ^c ^z ^l Acción que realiza Envía un EOF al shell que causa una salida del modo edición. info y top.ar . solo hay que colocarse después o en la 'e' y aplicarlo.

almacenando información en el elemento constituyente de la luz. tail Permiten ver uno o más archivo o parte de uno o más archivos. $ nl archivo. La criptografía cuántica es una de las primeras aplicaciones de la computación cuántica cercana a una fase de producción masiva. el fotón. Complementan el uso de cat.nl. Esto nos puede servir para identificar alguna parte de un texto que queramos tratar luego.txt una línea otra y otra más En el caso de head y tail. nos muestran las primeras o las últimas 10 líneas de uno o más archivos. Veamos el ejemplo en un mismo archivo: $ cat archivo. $ head archivo.As.txt La criptografía es la disciplina de la computación 25 de Mayo 445 Piso 2 (1002) Bs.com.ar . nos muestra un cat. La criptografía cuántica garantiza absoluta confidencialidad de la información transmitida por fibras ópticas. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.txt La criptografía es la disciplina de la computación que trata de la transmisión y almacenamiento de datos de manera que no puedan ser comprendidos ni modificados por terceros. En el caso de nl. respectivamente. pero con los números de línea a la izquierda de cada línea.txt 1 una línea 2 otra 3 y otra más $ cat archivo. head. more y less que ya vimos antes.

txt xaa xab xac xad xae xaf $ cat xaf almacenando información en el elemento constituyente de la luz.txt $ ls archivo. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Por ejemplo. xab. para dividir un archivo grande en partes de 100000 bytes: $ split -b 100000 grande Las partes quedarán en archivos con nombres como xaa. Sin desechar el archivo original! Con el ejemplo anterior.que trata de la transmisión y almacenamiento de datos de manera que no puedan ser comprendidos ni modificados por terceros. el fotón.com. el fotón. almacenando información en el elemento constituyente de la luz. etc. se vería así: $ split -l 4 archivo.ar . Acepta como opciones (-b) bytes o (-l) líneas. split Divide un archivo empleando como criterio el tamaño del mismo. La criptografía cuántica es una de las $ tail archivo. 25 de Mayo 445 Piso 2 (1002) Bs.txt La criptografía cuántica garantiza absoluta confidencialidad de la información transmitida por fibras ópticas.As.

wc Cuenta cantidad de palabras. ordena las líneas de un archivo. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.txt: $ sort nombres.sort Por defecto. Por defecto presenta los tres datos por cada archivo que reciba y después presenta las sumas. Para los archivos de ejemplo anteriores: 25 de Mayo 445 Piso 2 (1002) Bs. Con la opción -c presenta la cuenta de palabras. solo muestra por la stdout la lista ordenada.ar .txt Gomez Claudio Rivero Jacinto Perez José Acuña Rolando Es importante entender que sort no guarda el ordenamiento. con -w la cuenta de palabras y con L la longitud de la línea más larga. puede ordenar de mayor a menor con la opción -r (por defecto ordena de menor a mayor) y puede eliminar líneas repetidas con la opción -u.txt tiene el apellido y después el nombre de una persona separados por espacios. puede ordenarse por nombre con: $ sort -k 2 nombres. considerarlas meses (-M) o dividirlas en campos y emplear algunos campos como llaves de ordenamiento (opción -k para especificar llaves y -t para cambiar separador de campos). Al ordenar puede considerar las líneas completas.As. En las comparaciones puede ignorar diferencias entre mayúsculas y minúsculas con la opción -f. con la opción -m mezcla dos archivos ordenados y con la opción -c verifica que un archivo esté ordenado.com.Por ejemplo para ordenar por líneas el archivo nombres. líneas y caracteres en uno o más archivos. considerarlas números enteros (-n) o flotantes (-g).txt Acuña Rolando Gomez Claudio Perez José Rivero Jacinto si cada línea del archivo nombres. con -l la cuenta de líneas.

$ wc nombres.txt 4 8 54 nombres.txt $ wc archivo.txt 25 72 513 archivo.txt Siempre el orden de la salida es: Líneas Palabras Bytes Nombre_de_archivo

Tuberias

Podríamos representar cada programa como una caja negra que tiene una entrada y una salida que se pueden unir entre ellos. Debido a que la entrada por defecto es el teclado y la salida por defecto es terminal, graficaremos cuando sea necesario ambos. El ejemplo que utilizamos se encuentra esquematizado en la figura

Siendo la entrada estándar el teclado y la salida estándar el terminal o por simplicidad la pantalla. Vamos a suponer un caso ficticio donde necesitamos todas las definiciones de cada palabra en un texto. Primero las ordenamos alfabéticamente, luego utilizamos un comando ficticio llamado diccionario que toma palabras de la entrada estándar y las reescribe junto a su significado en la salida estándar. Su esquema se ve en la figura

En este caso nombramos por separado las entradas y salidas estándares de los dos programas, pero la unión entre ambos programas se puede considerar como un sólo tubo. En ese tubo, el flujo está en un estado intermedio, donde está ordenado, pero no tiene las definiciones de diccionario. En la línea de comandos esto se escribe de la siguiente manera:

25 de Mayo 445 Piso 2 (1002) Bs.As.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

$ sort | dicccionario Donde el caracter " | " representa la conexión entre la salida estándar de un programa y la entrada estándar de otro. Con este fuerte y simple concepto se pueden concatenar gran cantidad de programas como si fuera una línea de producción en serie para generar resultados complejos. Para mejorar nuestro ejemplo sacaremos las palabras repetidas, antes de mostrarlas con definiciones. Suponiendo que exista un programa llamado sacar-repetidas, la línea de comando sería: $ sort | sacar-repetidas | diccionario Simple, utilizando herramientas sencillas logramos algo un poco más complicado. El inconveniente que tenemos en este ejemplo es que hay que escribir aquello a procesar. Normalmente queremos utilizar archivos como entrada de nuestros datos. Es necesario un comando que envíe a la salida estándar un archivo, así se procesa como la entrada estándar del sort y continúa el proceso normalmente. Este comando es cat. La sintaxis es simple cat nombre-de-archivo Quedando nuestro ejemplo: $ cat archivo.txt | sort | sacar-repetidas | diccionario ... esto crea un glosario de las palabras que se encuentren en archivo.txt La combinación de comandos es incalculable y brinda posibilidades enormes. Veamos algunos ejemplos. En el caso que se quieran buscar procesos con el string http: $ ps ax | grep http 3343 ? S 3344 ? S 3975 ? S 12342 pts/6 S

0:00 httpd 0:00 httpd 0:00 httpd 0:00 grep

-DPERLPROXIED -DHAV -DPERLPROXIED -DHAV -DPERLPROXIED -DHAV http

Si queremos eliminar la ultima linea podemos volver a usar grep con la opcion -v $ ps 3343 3344 3975 ax | grep http | grep -v grep ? S 0:00 httpd -DPERLPROXIED -DHAV ? S 0:00 httpd -DPERLPROXIED -DHAV ? S 0:00 httpd -DPERLPROXIED -DHAV

Se pueden filtrar las líneas que contengan la palabra linux del archivo arch1.txt y luego mostrarlas en un paginador como less. 25 de Mayo 445 Piso 2 Tel 4313–2484 /2486/2475 (1002) Bs.As. opensource@osi-sistemas.com.ar

$ cat arch1.txt | grep linux | less Podemos enviar los resultados por correo a un amigo, con un asunto que diga "Tu archivo". $ cat arch1.txt | grep linux | mail -s 'Tu archivo' amigo@email.com

Redirección

En repetidas ocaciones en la vida de un sistema es mejor tener todo en archivos, ya sea para guardar algún historial o para automatizar ciertas funciones dentro de scripts. Para almacenar o sacar información de archivos y vincularlas con entradas o salidas estándares se utilizan las Redirecciones. La redirección se expresa con los símbolos "Mayor" > y "Menor" <. Y se pueden utilizar en forma simple o doble. Utilizando el comando cat se puede hacer una copia de arch1.txt a arch2.txt utilizando redirección. $ cat arch1.txt > arch2.txt O se puede redireccionar un archivo para visualizarlo con el comando less. $ less < arch1.txt Redirección de escritura Para escribir un archivo se utiliza >. Hay que tener mucho cuidado de no borrar un archivo sobreescribiéndolo. Cuando se utilizan redirecciones, debido a su utilidad en los scripts, "no se realizan confirmaciones". Si el archivo a escribir ya existe desde antes, el redireccionador > lo sobreescribe con flujo de texto nuevo. En cambio el operador >> realiza un agregado de texto en el flujo existente. No hay nada mejor que un ejemplo clarificador: $ escribe-en-salida-estandar > archivo.txt El (falso) comando escribe-en-salida-estándar justamente hace eso, escribe unas cuantas cosas en salida estándar.

Puede ser un comando ls, un comando cal (calendario) o cualquier comando antes visto, así como 25 de Mayo 445 Piso 2 (1002) Bs.As. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

edu.com..txt Dónde correo. un texto que se constituirá en la entrada estándar.ar < correo.txt Como por ejemplo: $ mail usuario1@micolegio. Ejemplo: Si queremos combinar el ejemplo de las tuberías con lo aprendido recientemente podríamos escribir: $ cat archivo. Si ejecutamos otro comando redireccionado a archivo. así como su contenido. por teclado.. no se quiere que un acontecimiento nuevo borre a todos los anteriores. que después de un comando.log $ echo Este es el segundo acontecimiento >> bitacora. que indicará fin de entrada (en nuestro ejemplo. Por ejemplo: $ sort <<chau > Perú > Argentina > Brasil > chau Argentina Brasil Perú 25 de Mayo 445 Piso 2 (1002) Bs.txt es lo mismo que saldría en pantalla. La entrada estándar constará de las líneas que se digiten a continuación hasta la primera que contenga sólo la palabra que indicaba fin de entrada. chau). Para lograr esto agregamos en vez de sobreescribir. el contenido de archivo. permite ingresar.ar usuario2@micolegio.log Va a escribir dos líneas en el archivo bitacora.txt | sort | sacar-repetidas | diccionario >> glosario.también una combinación de comandos por tuberías. Otra facilidad para redireccionar entrada estándar es <<. Cuando se necesita tener una lista de acontecimientos.edu. 1 > bitacora.txt (nuevamente). Tel 4313–2484 /2486/2475 opensource@osi-sistemas.As.ar . En este punto. A continuación de << debe ponerse una palabra. éste pierde su contenido y el resultado de la operación pasa a estar en el mismo.txt Redirección de lectura Para la lectura es el símbolo menor < y se utiliza de la siguiente manera: $ comando-que-acepta-stdin < archivo-de-entrada. $ echo Este es el acontecimiento Nro.txt podría ser un archivo que se genere automáticamente.log sin eliminar nada.

. programa. [Ctrl]+[Alt]+[Fn] Cambia a la terminal de texto numero n (n=1.. Cuando trabajamos en una terminal texto.. Así. Apaga el sistema de forma organizada desde una terminal texto..6) [Ctrl]+[Alt]+[F7] Cambia a la primera terminal X (si se esta usando alguna) [Ctrl]+[Alt]+[Fn] Cambia a la terminal X numero n (n=7. archivo. Combinaciones de teclas [Ctrl]+[Alt]+[Del] Shutdown. Si no esta corriendo de fondo 25 de Mayo 445 Piso 2 (1002) Bs. en terminal texto.ar .ordenará las palabras dadas (excepto chau que indica el fin de la entrada). [ArrowUp] (Flecha arriba) Va editando la historia de mandatos que hemos escrito anteriormente en terminal texto.As. [Shift][PgDown]: Scroll la salida de la terminal hacia abajo. en terminal texto. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.. << es equivalente a editar un archivo y después redireccionarlo a la entrada estándar de un programa.com. [Ctrl]+c Termina el proceso actual. directorio. [Shift][PgUp] Scroll la salida de la terminal hacia arriba. [Ctrl]+[Alt]+[F1] Cambia a la primera terminal de texto....12) [Tab] Auto-completa el nombre de un mandato.

Resolución $ ls -l --sort=size | head o $ ls -lS | head Enunciado 3 En un directorio con varios archivos. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com. También es la combinación para el comando exit. Resolución $ ls | head Enunciado 2 Modificar el ejercicio anterior.txt 25 de Mayo 445 Piso 2 (1002) Bs.ar . ordenados alfabéticamente. mostrar sólo los que tienen una determinada terminación. Resolución $ ls | grep *. [Ctrl]+z Manda el proceso actual a correr de fondo. Ejercicios Enunciado 1 Con los comandos aprendidos. [Ctrl]+s Para la transferencia a la terminal. Como por ejemplo . los primeros 10.txt o $ find ~ -name *. para mostrar los 10 archivos de mayor tamaño. mostrar de un directorio de varios archivos.txt utilizando grep y find.As.[Ctrl]+d Termina la terminal actual.

irás memorizando los comandos. Usar vi desde un GUI puede hacer la vida más fácil a los principiantes. editar texto.Modificación de textos. podrás acudir a tu hoja de trucos si te has olvidado de un comando en particular. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.1 .As. es muy importante que sigas todos esos pasos. Ésto puede llevarte tiempo.¿como lo hago para ayudarte a memorizar un montón de comandos en poco tiempo? Para superar el reto. vim es muy popular y tiene un montón de extensiones que hacen a vi mucho más ameno (si en algún momento.el método de la Hoja de Trucos ( by IBM developerWoks ) 1. yo os voy a enseñar como usar una versión de vi llamada vim. este tutorial se ha escrito para hacer de ti un buen usuario de vi sin que tengas que perder mucho el tiempo. un potente editor visual. A continuación puedes ver una captura de pantalla de gvim en mi sistema: Si eres un novato. desde el principio. Utilizando un método especial basado en una hoja de trucos. y uno de los objetivos de este tutorial es no quitarte demasiado tiempo. puedes obtenerlo de www. usar el modo insertar.) Si quieres instalar vim.. filtros Aprendiendo vi . prueba de ejecutar gvim en tu sistema. Una vez hayas completado este tutorial. vas a tener que memorizar unos cuantos.com.. un editor amigable en modo gráfico que puede ser configurado para usar las excelentes librerías para GUIs GTK +. Si desconoces o no te sientes cómodo usando vi.. Después. Empezando Introducción Ésta guia te enseñará a usar vi. Hay una característica de vi que hace difícil aprender su funcionamiento. quizás quieras leer este tutorial y alcanzar la velocidad de la luz con uno de los más populares y poderosos editores visuales para Linux/UNIX Sobre esta guía. Introduciendo a vim Existen muchas versiones de vi. conforme vayamos avanzando en este tutorial. vi tiene muchos comandos.• 4. y cada vez dependerás menos de la hoja.. voy a describirte como funcionan ciertos comandos en particular. voy a pedirte que pruebes esos comandos directamente en vi (para que practiques). Probar un comando y transcribirlo después a tu hoja de trucos te ayudará a memorizar ese comando. vamos a ir haciendo gradualmente una hoja de trucos para vi. tengo un reto -. enseño un comando específico de vim. ¡Vas a aprender a usar vi de la forma más rápida nunca conocida! El proceso de aprendizaje En ésta guia voy a usar varias técnicas para ayudarte a aprender. aprenderás como moverte. Para usar vi de una forma efectiva. lo indicaré. 25 de Mayo 445 Piso 2 (1002) Bs. vim también viene con gvim. En este tutorial. copiar y pegar texto así como usar extensiones útiles de vim como el modo visual y la edición multiventana. Conforme pase el tiempo. Así que. Primero.ar .org. Esta hoja va a contener todos los comandos vi importantes. Además de una linea de comandos vi mejorada. como era de esperar.vim. Si quieres aprender vi rápidamente. entonces te diré que apuntes esos comandos en tu hoja de trucos (para que puedas consultarlo más tarde).

Observa que vi no te sitúa a la cola de la línea anterior presionando h.As. no puedes situarte al principio de la siguiente linea llegando al final de la linea actual presionando l. más que para introducir caracteres literales en el texto.j. segunda parte vi posee atajos especiales para ir al principio o al final de la linea actual. vamos a echarle un vistazo a alguno. Uno de los tipos de comando más esenciales son los comandos de movimiento. escribe vim myfile. puedes usar las teclas h. Intenta usar h. Las versiones modernas de vi (como vim) permiten también usar las teclas PGUP y PGDOWN para este fin. teclea gvim myfile.k y l son prácticas porque.txt. Si prefieres usar gvim. Puedes usar 0 (cero) para saltar al primer carácter de una linea. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Moviéndote Moviéndote en vi. también puedes usar las teclas de cursor.j.2. También puedes usar <CTR>F y <CTR>B para moverte una página adelante o atrás. abajo. arriba y derecha respectivamente. busca un archivo de texto no importante y ábrelo en vi escribiendo: Cargar un archivo en vi $ vi myfile. myfile. Dentro de vi Después de que vi cargue.txt debe ser el nombre de un archivo de texto en tu sistema.estás en vi! A diferencia de muchos otros editores. deberías ver una parte del archivo de texto que cargaste en tu pantalla. en vez de introducir una l en la posición actual del cursor.ar . La gran cantidad de comandos de movimiento que posee vi lo convierten en un gran "pager" (como los comandos more o less. necesitas saber como usar vi para moverte por un archivo. primera parte Cuando estás en modo comando. vi tiene muchos comandos de desplazamiento. Felicidades -. Moviéndote en vi. En el modo comando. 25 de Mayo 445 Piso 2 (1002) Bs. Intenta ahora apretar h hasta llegar al principio de una línea. 3. Esto significa que si presionas l en el teclado. De la misma forma.j.k y l y las teclas de cursor para moverte por el archivo de texto. los caracteres en tu teclado se usan para enviar comandos a vi. Las teclas h. Primeros pasos Escoje un archivo Antes de usar vi para editar archivos. una vez te hayas acostumbrado a ellas. el cursor se va a mover un carácter a la derecha. serás capaz de moverte por el archivo sin tener que mover tus dedos de la misma linea del teclado. Pruébalos y observa como funcionan. y vamos a ver unos cuantos de ellos.txt Si tienes instalado vim. está en un modo especial llamado modo comando. Si estas usando una versión moderna de vi. cuando vi arranca.k y l para mover el cursor izquierda.) Usar vi como pager también te ayudará a aprender todos los comandos de movimiento más rápidamente.com. y $ para saltar al último carácter.txt. Para esta parte del tutorial.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Otras no. Escribiendo :q saldrás de vi.As. y B para saltar al primer carácter de la "palabra grande" anterior.. considerada como cinco palabras: foo. y a su vez.Moviéndote entre palabras. se conoce a cualquier comando que empiece por : como comando ex-mode. usa los comandos de movimiento entre palabras en mayúsculas. Saliendo Ya hemos descubierto los comandos básicos de movimiento. parte 3 Para saltar hacia la siguiente "palabra grande" o hacia la anterior. 4. pulsa e. este comportamiento es el que queremos. has modificado el archivo accidentalmente. serás llevado al modo ex. escribiremos :q!. 25 de Mayo 445 Piso 2 (1002) Bs. Para moverte al último carácter de la siguiente palabra. se considera una única "palabra grande" vi. En estos momentos deberías estar en la línea de comandos. pero todavía hay otro montón de comandos que necesitas saber. Puedes usar los caracteres ( y ) para moverte hacia el principio de la siguiente o anterior frase. Para volver al modo normal de vi. Para moverte al primer carácter de la palabra anterior. parte 2 Después de jugar un poco con los comandos de movimiento entre palabras. Puede usarse de una forma muy parecida a sed para hacer operaciones de modificación desde linea. parte 1 vi también te permite moverte una palabra a la derecha o a la izquierda. En vi. apretar enter desplazará la pantalla entera hacia arriba.ar . pulsa b. Juega con esto.. Moviéndote entre palabras. te habrás dado cuenta de que vi considera palabras tipo foo-bar-oni. Si no funciona. Ésto es así porque vi tiene un editor no-visual integrado llamado ex. foo-bar-oni es. Pruébalo. Ésto significa que foo-bar-oni es considerada como cinco palabras vi. Usa W para saltar hacia el primer carácter de la siguiente "palabra grande". También puedes usar { o } para saltar al principio del párrafo actual o al del siguiente. vi también entiende el concepto de "palabra grande". Moviéndote entre palabras. simplemente teclea vi y pulsa enter.y oni. Además. -.com. Afortunadamente. como ¡cinco palabras separadas! Ésto es así por defecto: vi delimita las palabras por espacios o signos de puntuación. Movimientos mayores Nos quedan pocos comandos por ver antes de empezar a ponerlos juntos en nuestra hoja de trucos. seguramente se deberá a que. Para situar el cursor en el primer carácter de la siguiente palabra. Si te ocurre esto alguna vez. A veces. vi delimita las "palabras grandes" mediante espacios o saltos de linea solamente. puede usarse para salir. de alguna forma. bar. por lo tanto. pulsa w. . Prueba todos éstos comandos y compara los resultados de los comandos de movimiento entre palabras con los de movimiento entre "palabras grandes" hasta que entiendas las diferencias. Para decirle a vi que queremos salir y descartar todos los cambios. Si alguna vez presionas la tecla Q estando en modo comando. E para saltar al último carácter de la siguiente "palabra grande". como ya hemos visto. te enfrentarás cara a cara con un prompt :.

Hoja de trucos vi misceláneo Sigamos con nuestro aprendizaje rápido de comandos. puedes saltar a una linea en concreto tecleando G.gif buscará la siguiente ocurrencia de "foo. no te preocupes -.. Substituye <regexp> por la expresión regular que estás buscando. teclea /<regexp> y presiona enter. Para estos caracteres deberás poner una contra barra (\) como prefijo. Intenta imitar mi diseño si es posible de forma que podamos poner todo en una sola hoja.com. $ o \.As.escribir /foo te llevará a la siguiente ocurrencia de foo.ar . Observa que G está en mayúsculas. teclea 1G. Si quieres saltar a la siguiente aparición de una cadena de texto en particular. Si no sabes como usar expresiones regulares. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. 25 de Mayo 445 Piso 2 (1002) Bs. Para la hoja de trucos necesitarás una hoja tipo folio US o A4 (¡piensa que vamos a poner una gran cantidad de información en ella!) A continuación puedes ver una foto de mi hoja de trucos después de haber transcrito todos los comandos que hemos cubierto hasta ahora. Por ejemplo. .5. En modo comando.gif". Para saltar a la primera linea de un fichero. /foo\. La Hoja de Trucos El principio de la hoja de trucos Hemos visto un montón de comandos. Sólo tendrás que tener cuidado cuando necesites referenciar literalmente los caracteres ^. y listo. y ha llegado el momento de pasarlos a nuestra hoja de trucos.

Si quieres salvar los cambios. 6. seria bueno aprender como deshacer cualquier cambio. teclea <CTR>w<CTR>w (control-w dos veces). y pulsa J (en mayúsculas). dw eliminará el texto desde la posición actual hasta el comienzo de la siguiente palabra. Observarás que dd elimina la linea de texto actual.. tu hoja de trucos debería parecerse a ésta: 25 de Mayo 445 Piso 2 (1002) Bs. prueba estos comandos en tu propio editor vi. Para repetir la búsqueda hacia atrás. Por el momento. Verás que x elimina el carácter situado justo debajo del cursor. teclea :x o :wq. Edición simple Y llegó el momento de comenzar a aprender algunos de los comandos básicos de edición.com. muévete al medio de un párrafo dentro de tu archivo de texto. Para cambiar de una ventana a la otra. Si experimentas un poco. teclea N..ar . Prueba de combinar algunos comandos d y u alternativamente. la versión original de vi permitía deshacer el último cambio.. Para acabar. Como siempre.Para repetir la búsqueda hacia adelante. Lo veremos en breve. Deshacer Ahora que ya hemos experimentado con el borrado.. Las versiones más actuales de vi. escribe :w nombrearchivo. puedes usar el comando d combinado con cualquier comando de movimiento.. teclea :w.txt.un modo que te permite entrar datos directamente desde el teclado. Por ejemplo. Como siempre. También puedes teclear // para repetir la última búsqueda. Ahora. eliminas 4 lineas. y J. :w y :x que uses solo se aplicará a la ventana actualmente activa. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. situate encima de un carácter y presiona r.. situate en una linea cualquiera del archivo y escribe dd. Experimenta un poco con el comando d y el resto de comandos de edición hasta que te sientas cómodo con ellos. Presionando u. junta 4 lineas. te permiten presionar u repetidamente para ir deshaciendo los cambios que hayas podido hacer. puedes tener múltiples buffers abiertos a la vez. vi nos proporciona otro atajo útil :) Para borrar texto. como vim. verás que el carácter original ha sido reemplazado. Repitiendo y borrando Puedes repetir cualquier comando de edición pulsando la tecla .txt para guardarlo como nombrearchivo.As. verás que tecleando dd.. Si quieres guardar y salir. filename. sitúate por encima de algún carácter y presiona x varias veces. Si lo que quieres es guardar los cambios en otro archivo.. Verás que el comando J indica a vi que junte la siguiente linea con el final de la linea actual. Los comandos que vamos a cubrir en esta sección se consideran simples porque te mantienen en modo comando. Para abrir un archivo en un una ventana nueva. escribe :sp filename. :q!. Los comandos "complejos" te ponen automáticamente en modo insertar -. Actualizando la hoja de trucos Hora de actualizar la hoja de trucos! Después de añadir los comandos que hemos aprendido hasta ahora. Ahora. Cualquier comando :q.txt aparecerá abierto para edición en una nueva ventana dividida. y d} eliminará lo que queda de párrafo. luego escribe un nuevo carácter. d) eliminará hasta el final de la siguiente frase. presiona n. En vim (al igual que en otros editores vi avanzados. como elvis). Guardando y Editando Hemos aprendido como usar el comando ex :q para salir de vi.txt.

Para entrar en modo insertar. podrás introducir texto directamente en la pantalla de la misma forma que lo haces con otros editores visuales. De todas formas. y si pulsas a. y mira que ocurre. escribe algo de texto. has aprendido cómo moverte dentro de vi. tu texto será insertado delante del carácter actual. Ventajas del modo Insertar Ves probando los comandos a y i.com. tu texto sera añadido justo después del carácter actual.ar . puedes presionar escape para volver al modo comando. Dentro del modo insertar de vi. ¡todavía no te he enseñado como introducir texto libremente! Lo he hecho intencionadamente. Pulsa tanto a como i. Después de pulsar a o i. realizar e/s de archivos y algunas operaciones básicas de edición. presiona i o a. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. su complejidad (y flexibilidad) se convertirán en una ventaja. Una vez hayas introducido tus modificaciones. prueba de darle a <ENTER>. una vez te acostumbres al modo insertar. Modo Insertar Hasta ahora. y luego pulsa escape para volver al modo comando. Recuerda.Hoja de trucos con comandos de edición 7. De todas formas. 25 de Mayo 445 Piso 2 (1002) Bs. debes presionar <ESC> para volver al modo comando. Al presionar i.As. porque el modo insertar de vi es un poco complicado al principio.

Para reemplazar totalmente la linea actual con una nueva. etc. Prueba a usar varios comandos de desplazamiento con c y pruébalos con tu archivo (pista: cW. en la cual podrás introducir texto.Prueba también a usar las teclas cursor (flechas) y <DEL> para deducir el uso del modo insertar. además de permitir combinaciones del tipo (número)(comando de movimiento). Cambiando texto Hemos usado el comando c (cambiar) por encima cuando hemos tecleado cc. Así. De la misma forma. Pulsa o para crear una nueva linea por debajo de la línea actual. Comandos Combinados vi se vuelve realmente potente cuando comienzas a usar comandos combinados (comandos "combo"). así por ejemplo 3w indicará a vi que salte tres palabras a la derecha. Una vez asimiles estos comandos. Los comandos c0 y c$ son ejemplos de como usar el comando cambiar en combinación con los comandos de desplazamiento. d3w eliminará las 3 palabras siguientes. Usando las teclas cursor y <DEL>. c( . d{ y cw. Presiona A (en mayúsculas) para empezar a añadir texto al final de la línea actual. c funciona de una forma parecida a d. Para reemplazar todo desde la posición actual hasta el final de la linea. Para reemplazar todo desde la posición actual hasta el principio de la línea. A parte de estos comandos. teclea cc.As. teclea c$. 4j.ar . Además de realizar una operación especial. De la misma forma. cc es una forma especial de comando de cambio. también permite combinar d o c con un número o con un comando de movimiento. ce. c0 y c$. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. cada uno de estos comandos te pondrá en Modo Insertar. también puedes combinar un número con cualquier comando de movimiento. similar a dd. teclea c0. Prueba a combinar varios combos con c y d para ver lo potente y ágil que puede ser la edición con vi.) 8. d2j eliminará la siguiente línea y las dos siguientes. y pulsa O (mayúscula) para crear una linea nueva por encima de la actual. Actualizando la hoja de trucos Hora de actualizar de nuevo la hoja de trucos.com. exceptuando que éste te deja en Modo Insertar para que puedas entrar texto de reemplazo en la región recién eliminada. vi. Opciones de Insertar Aquí tienes otras formas prácticas de acceder al modo Insertar. pulsa <ESC> para volver al modo comando. A continuación te muestro algunos ejemplos más de comandos "combo": 12b. Después de introducir tu texto. como por ejemplo. independientemente de tu posición actual en ésa línea. puedes realizar bastantes tareas de edición sin tener que cambiar varias veces de modo comando a modo insertar y viceversa. serás capaz de editar archivos a una velocidad increíble. Más o menos debería parecerse a esto: 25 de Mayo 445 Piso 2 (1002) Bs. pulsa I (mayúscula) para empezar a introducir texto al principio de la línea actual.

As.com. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.Hoja de trucos con comandos combinados 25 de Mayo 445 Piso 2 (1002) Bs.ar .

Tel 4313–2484 /2486/2475 opensource@osi-sistemas. para ser pegado después. realizar ediciones y borrados simples y usar el modo insertar. buscar. salvar y salir. un modo especial que ha sido añadido en versiones modernas de vi. Puedes considerar el modo visual como un modo de "resaltado de texto". pegar. Una vez que el texto queda resaltado. puede ser copiado o eliminado. como vim y elvis. Pese a ésto. copiar. En ésta sección aprenderás como cortar. Modo Visual La mejor forma para cortar y pegar es usar el modo visual. reemplazar y usar autoindentación. hemos visto como movernos. Todas éstas posibilidades ayudarán a hacer a vi un poco más divertido y productivo. deberías ser capaz de usar vi para realizar casi cualquier tarea.com.Características de productividad Hasta ahora.As. puedes resaltar el texto simplemente arrastrando el ratón con el botón izquierdo presionado sobre una región de texto determinada: VIM con texto resaltado 25 de Mayo 445 Piso 2 (1002) Bs. Si estas usando gvim. Con todo ésto en la hoja.ar . vi tiene más comandos útiles.

) Entonces mueve el cursor usando los comandos de movimiento (o más típicamente. y pulsa P para insertar el texto antes del cursor. teclea :s/<regexp>/<reemplazo>/g y pulsa enter. "change". Para reemplazar todas las ocurrencias de un patrón en tu archivo (que normalmente es lo que quieres). Si quieres copiar el texto. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. pero haciendo que vi te confirme cada vez cada cambio.com. Cuando el autoindentado está activo. La mayoría de las versiones modernas de vi (p.As. Puedes también indicar a vi el tamaño de cada tabulación a tu gusto mediante el comando :set tabstop. estará lista para ser cortada o copiada. Si quieres realizar un reemplazo global. Ahora situate en la posición donde quieres insertar el texto copiado o cortado. pulsa d. puedes hacerlo de forma manual con el comando ex :set autoindent. teclea :%s/<regexp>/<reemplazo>/gc (la c viene del inglés. substituye <regexp> por el texto que quieres substituir y <reemplazo> por la cadena con el que lo quieres substituir. :set tabstop=4 es bastante popular. verás que puedes resaltar una región de texto. cambiar) y pulsa <ENTER>. Si el autoindentado no se activa automáticamente.ar . Volverás entonces al modo comando. Reemplazando texto Para reemplazar patrones de texto. puedes usar <CTR>d (control-d) para indentar un nivel hacia la izquierda y <CTR>t (control-t) para indentar a la derecha un nivel. debería quedar como la siguiente: Hoja final de trucos 25 de Mayo 445 Piso 2 (1002) Bs. pulsa y (que proviene del término inglés "yank").c). ideal para editar código fuente. Si estás cortando el texto. escribe :s/<regexp>/<reemplazo>/ y presiona <ENTER>. Indentación vi incluye soporte para autoindentación. Voilà! El copiado/cortado está completo! Pruébalo varias veces antes de avanzar a la siguiente sección.e. La hoja de trucos definitiva Y bien. Si quieres reemplazar el primer patrón que aparece en la línea actual. las teclas de desplazamiento). Cuando la región de texto que quieras esté resaltada. o p para insertarlo después. ¡ya hemos llegado al final de éste tutorial de vi! Una vez añadas todos los comandos de edición avanzada a tu hoja de trucos. vim) activarán automáticamente el modo autoindentado cuando edites un archivo de código fuente (cómo por ejemplo un archivo .Puedes entrar en modo visual pulsando v (que es la única opción que tendrás si usas vi desde la consola. Para reemplazar todas las coincidencias en la línea actual. usamos el modo ex. escribe :%s/<regexp>/<reemplazo>/g.

25 de Mayo 445 Piso 2 (1002) Bs.com. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.ar .As.

vim. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Usa la hoja de trucos cuando la necesites.) #EDITOR="/bin/nano" EDITOR="/usr/bin/vim" #EDITOR="/usr/bin/emacs" Recursos A continuación tienes unos cuantos recursos que pueden resultarte útiles para aprender más sobre vi: • La página de los amantes de vi : http://www. y contiene varias mejoras realizadas por el Equipo de Documentación de Gentoo.As. y empieza a usar vi para editar archivos y escribir correos electrónicos. Este documento es una versión actualizada del artículo original.thomer. • La página de vim : http://www.Ten tu hoja de trucos a mano. Si quieres usar vi como tu editor por defecto haz el siguiente cambio en /etc/rc.org/ El lugar a acudir para todo aquello relacionado con vim • Acerca de éste documento La versión original de este artículo fue publicada por primera vez en IBM developerWoks.com/thomer/vi/vi. y es propiedad de Westtech Information Services.ar . verás que en una semana te sabrás casi todos los comandos de memoria y tu productividad con vi llegará a su máximo.html Un recurso excelente para todo aquello relacionado con vi.com.conf: Usar vi como editor por defecto (Establece EDITOR a tu editor preferido. 25 de Mayo 445 Piso 2 (1002) Bs.

Otros problemas no son tan simples. La shell bash interpreta varios comodines. Esto se consigue con la utilización de las Expresiones Regulares. que tienen un significado especial en el contexto de la línea de comandos. Dos utilidades importantes para los exámenes LPIC Nivel 1 que utilizan estas expresiones regulares son grep y sed. lo que nos permite listar o encontrar ficheros con elementos comunes (p.Redireccionamiento y Tuberias Introducción En éste capítulo se verá como usar expresiones regulares para usar y filtrar ficheros y cadenas de texto.) puede ofrecer un amplio abanico de posibilidades.com. los lenguajes Perl y Python y otras utilidades pero. Este tema tiene un peso (importancia) de 3 de cara al examen final de la certificación LPI 101.. Se crearán construcciones simples con varios elementos de notación así como herramientas para las expresiones regulares que permitirán realizar búsquedas en el sistema de ficheros o en contenidos de ficheros.2 . Utilizando grep Hace mucho tiempo. nombres de fichero o extensiones) con una sola expresión. streams de texto. ya que hay suficientes ejemplos para trabajar con el tema y crear o modificar los existentes para hacer pruebas.As. de momento. los suficientes como para manejar el problema relativamente simple del “filename globbing”. etc. El comando era: g/expresión regular/p Esto es. Estas utilidades son prácticas para las búsquedas de texto. imprime la línea actual cuando se encuentre una 25 de Mayo 445 Piso 2 (1002) Bs. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. variables de cadenas de programas. y extender el concepto de “glob” para cualquier forma genérica de texto (ficheros. Los comandos que se verán en este tema son: grep regexp (Expresiones regulares) sed En este capítulo no se harán ejercicios. Utilizando las Expresiones Regulares Anteriormente se describió el “filename globbing” con comodines. "de forma global.e. el editor de líneas ed incluía un comando para visualizar las líneas del fichero en edición que coincidiesen con una expresión regular determinada. Los “file globs” utilizan caracteres especiales como *. cuando la idea de las expresiones regulares comenzaba a calar.• 4. Hay muchas otras herramientas que hacen uso de las expresiones regulares incluyendo awk. no es necesario preocuparse de ellas para los exámenes LPIC de Nivel 1.ar . El total de la suma de pesos de todos los temas es de 106.

regexp debe estar entrecomillada para evitar la expansión de la shell y poder pasar estos metacaracteres a grep. simplemente. grep incluirá el nombre del fichero como prefijo en las líneas listadas. Cuando se usa el comando echo de bash con la expresión comodín abc* se 25 de Mayo 445 Piso 2 (1002) Bs. la expresión regular es. Se pueden encontrar ambos comandos en cualquier sistema GNU/Linux actual. sino para eliminar información. grep.coincidencia con la expresión regular”. apropiadamente. Cuando se utiliza con varios ficheros se incluye tanto el nombre del fichero como el número de línea. Cuando se especifiquen varios ficheros en la búsqueda.As. Esta es una opción útil e importante. Imprime todas las líneas que no coinciden con regexp.ar . Como un ejemplo simplista de ésto último. solo se listarán las líneas coincidentes. Más adelante se expandió la gramática de las expresiones regulares de grep en un nuevo comando llamado egrep (por "extended grep"). suponiendo que se tiene en el directorio local unos ficheros llamados abc. para encontrar todas las líneas en fichero1 que contengan tanto “Linux” como “linux” se podría utilizar grep de la siguiente manera: $ grep -i linux fichero1 En este ejemplo. Muestra las líneas coincidentes precedidas por su número de línea. Ignora las mayúsculas y minúsculas de tal forma que abc coincidiría tanto con abc como con ABC. podemos utilizar grep con una expresión regular totalmente literal. Por defecto. En la tabla 7-1 se pueden observar algunas opciones del comando.com. abc1. Tabla 7-1 Opciones utilizadas frecuentemente Opción -c -h -i -n -v Uso Muestra solo un contador de las líneas coincidentes pero no las líneas en si mismas. o de forma más simple y en inglés. en situaciones en las cuales regexp incluya metacaracteres que también sean caracteres especiales de la shell (como $ o *). y abc2. "linux." Esta función era tan práctica que pronto se convirtió en una utilidad independiente a la que se le llamó. existiendo ligeras diferencias en la forma de interpretar las expresiones regulares. Ésto está bien para expresiones literales comunes. a veces se quiere utilizar expresiones regulares no solo para seleccionar información. Muestra las líneas coincidentes pero no los nombres de ficheros en búsquedas de múltiples ficheros. No obstante.". Sintaxis grep [opciones] regexp [ficheros] Descripción Busca en ficheros o en la entrada estándar líneas que contengan alguna coincidencia con la expresión regular regexp. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. "global Expresión Regular print. La L mayúscula en "Linux" es coincidente gracias a la opción -i (ignorar mayúsculas/minúsculas). Ejemplos: Como las expresiones regulares pueden contener tanto metacaracteres como literales. Por ejemplo. Para la preparación del examen 101 se usará grep que también puede utilizar las expresiones regulares “extendidas” si se incluye la opción -E. La utilización de -v invierte la salida de ésta forma.

Es una buena práctica habituarse a entrecomillar las expresiones regulares en la línea de comandos para evitar problemas similares. ambos ejemplos obtienen los mismos resultados: $ grep abc* abc abc1 abc2 Ésto era lo que se pretendía. abcc. el editor de streams. se comentó como sed utiliza direcciones para localizar el texto sobre el que operar. se encierra la expresión regular con comillas simples o dobles para protegerla de la expansión de la shell: $ grep 'abc*' abc* o: $ grep "abc*" abc* Después de la expansión. Si no se utiliza las comillas para evitar la expansión de la shell. En el examen: Es usual la aparición de preguntas sobre la utilización de grep y sus opciones. y también se podría utilizar una expresión regular idéntica abc* para encontrar todas las líneas que contengan abc. y abc2. el comando sería: $ grep abc* abc* Después de la expansión de la shell quedaría: $ grep abc abc1 abc2 abc abc1 abc2 # ¡incorrecto! ¡Esto no es lo que se pretendía! grep buscará solo la expresión literal abc. Se debería estar familiarizado con lo que hace cada opción así como con el concepto de utilizar la salida de otros comandos como entrada de grep mediante pipes ( | ) para buscar coincidencias. etc.com.ar . abccc y similares y que se quiere emplear grep para encontrarlas. abccc. ni mucho menos. porque es lo que encuentra como primer argumento. obvios ya que la expansión de la shell es invisible a no ser que se utilice el comando echo. Entre los mecanismos de direccionamiento mencionados estaba la utilización de expresiones regulares delimitadas entre barras inclinadas. La expresión regular abc* se buscará en los tres ficheros abc. abc1. abcc. Utilizando sed Anteriormente se presentó sed. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. como se muestra a continuación: $ echo abc* Ahora suponiendo que estos ficheros contienen líneas con las cadenas abc. Se puede utilizar la expresión comodín abc* para que se expanda para todos los ficheros abc como se mostró con echo más arriba.As. Para evitar ésto. esto se ha hecho 25 de Mayo 445 Piso 2 (1002) Bs. La sintaxis que se vió de sed era: sed [opciones] 'comando1' [ficheros] sed [opciones] -e 'comando1' [-e 'comando2'] [ficheros] sed [opciones] -f script [ficheros] Descripción Se observa que comando1 está escrito entre comillas simples. éstos no son.listarán todos los ficheros que comiencen por abc.

^$ busca una línea en la que el principio y el final coinciden. La parte de dirección de un comando sed puede contener expresiones regulares encerradas entre barras inclinadas. En el examen: se ha de prestar atención especial a los métodos de entrecomillado utilizados para preservar los carácteres especiales porque las distintas formas de entrecomillar no tienen por que producir los mismos resultados. ' (comilla simple). una línea en blanco) coincide con las líneas en blanco y la opción d elimina esas líneas coincidentes de la salida de sed.ar . o un carácter de nueva línea. 25 de Mayo 445 Piso 2 (1002) Bs. En general. y \ (barra invertida). • Comillas simples Encerrar los metacarácteres con comillas simples también los protege de la interpretación de la shell. Hay tres maneras de entrecomillado que pueden utilizarse para preservar los caracteres especiales: • \ (una barra invertida sin comillas) Si se pone una barra invertida antes de un carácter especial.com. '. $ indica final de línea. Por ejemplo. Se asume el valor literal de todos los caracteres entre comillas simples. otra barra invertida. para mostrar el contenido de fichero1 exceptuando las líneas en blanco se podría utilizar la opción eliminar de sed (d) de la siguiente forma: $ sed '/^$/ d' fichero1 En este caso. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. sino que pasará sin alteración hacia el comando que se está introduciendo. es decir. la expresión regular ^$ (^ indica principio de línea. y abc2 la expresión regular abc*. La barra invertida mantiene su significado especial cuando va seguida de $. Entre comillas Como se mostró en los ejemplos de grep y sed es necesario entrecomillar los metacarácteres de las expresiones regulares si se quiere preservar sus funciones especiales. se pueden producir resultados inesperados cuando la shell interprete los metacaracteres como caracteres de file globbing. • Comillas dobles Encerrar los metacarácteres con comillas dobles tiene el mismo efecto que con comillas simples con la excepción de los caracteres $. éste no será interpretado por la shell. las comillas simples son más seguras a la hora de preservar las expresiones regulares. Por ejemplo. el texto en comando1 debe ser protegido de la posible expansión y evaluación de la shell. abc1. el metacaracter * podría utilizarse en una expresión regular de esta forma: $ grep abc\* abc abc1 abc2 Aquí se buscará en los ficheros abc.por las mismas razones que se hizo anteriormente con grep. Si no se hace ésto. Tanto $ como ' mantienen sus significados especiales dentro de las comillas dobles.As. así por tanto.

Una vez identificado el texto que se busca se puede utilizar una de esas herramientas o lenguajes para hacer lo que se necesite con el texto seleccionado. los metacarácteres de las expresiones regulares toman un significado especial en el contexto de la herramienta en la que están siendo utilizados. se les llama expresiones regulares (a menudo se abrevia como regexp o regex). son capaces de editar automáticamente varios ficheros proporcionando una amplia gama de posibilidades para el procesamiento de textos. El resultado ha sido un caso similar al del carro delante del caballo. que significa "el final de una línea".ar . que significa "el principio de una línea" y el signo $. Estas secuencias están compuestas por dos tipos de caracteres: Metacarácteres Al igual que los caracteres de file globbing.com. F. Muchas. en el que las utilidades y lenguajes han ido definiendo su propio tipo de sintaxis para las expresiones regulares.Expresiones Regulares GNU/Linux ofrece muchas herramientas de procesamiento de texto para los administradores de sistemas. En las tablas 7-2. Las expresiones regulares han sido tradicionalmente incorporadas como una prestación en diferentes herramientas con diferentes grados de consistencia e integridad. Las expresiones regulares están formadas por cadenas estructuradas de texto o secuencias. Hay libros completos sobre las expresiones regulares (como el excelente y muy legible Mastering Regular Expresions de Jeffrey E. La definición formal de la sintaxis de las expresiones regulares vino después. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Friedl (ISBN: 1-56592-257-3). cada uno con sus propias extensiones e idiosincrasias. Para aprovechar estas prestaciones se necesita ser capaz de definir y delimitar segmentos de texto específicos dentro de ficheros. publicado por O'Reilly & Associates). En conjunto. sería muy recomendable profundizar en este tema cuando se tenga ocasión. Ejemplos de metacaracteres serían el símbolo ^. 7-3 y 7-4 se puede ver una lista completa de metacaracteres. El examen 101 requiere del uso de expresiones regulares y de las herramientas relacionadas específicamente para realizar búsquedas desde fuentes de texto. Esta sección cubre solo lo básico de las expresiones regulares. Ahora la mayoría de esos pueden ser manejados por grep utilizando la opción -E. a éste lenguaje y a las secuencias en sí mismas. Sintaxis de las Expresiones Regulares Sería razonable asumir que hay alguna especificación que define como se construyen las expresiones regulares. desde streams de texto y variables de cadena. como sed y los lenguajes awk y Perl. Desafortunadamente no hay ninguna. 25 de Mayo 445 Piso 2 (1002) Bs. existen muchos más carácteres especiales para las expresiones regulares extendiendo la utilidad y las prestaciones de las herramientas que las interpretan. Hay unos pocos metacaracteres que generalmente se consideran como parte del "conjunto extendido" de metacarácteres. Aunque las expresiones regulares son conceptualmente similares a los file globs.As. específicamente aquellos introducidos en egrep después de la creación de grep. así como los esfuerzos para hacerla más consistente.

Podría ser una serie de literales. • Conjuntos de caracteres Un conjunto de caracteres busca coincidencias en el texto. Cuando se construyen expresiones regulares se utilizan metacarácteres y literales para especificar tres ideas básicas sobre el texto de entrada: • Referencia de posición Se utiliza una referencia de posición para especificar la posición de uno o más conjuntos de caracteres en relación a la línea de texto completa (como. La tabla 7-2 lista los caracteres de anclaje.Literales Todo lo que no es un metacarácter es. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Esta interpretación sólo tiene sentido cuando el carácter ^ está en el lado izquierdo de la expresión regular. Coincide con el fin de línea. el principio de una línea). como se mencionó antes. podrían diferir ligeramente entre las diferentes herramientas) para comunicar ideas y hacer algún trabajo real. Estos caracteres "dan elasticidad" a una expresión regular permitiendo que las coincidencias tengan longitud variable. La próxima sección lista los metacaracteres más comunes. Tabla 7-2.ar . texto plano o texto literal. Más adelante se verán expresiones regulares más complejas. simplemente. se ponen ejemplos de uso prácticos de expresiones regulares que podrían resultar útiles. A menudo es de ayuda considerar las expresiones regulares como un lenguaje en sí mismo donde el texto literal actuaría como palabras y frases. Esta interpretación sólo tiene sentido cuando el carácter $ está en el lado derecho de la expresión regular. o combinaciones de ambos. La "gramática" del lenguaje estaría definida mediante el uso de los metacarácteres. Anclajes Las referencias de posición se utilizan para describir información sobre posiciones. Anclajes de Posición de Expresiones Regulares Expresión Descripción Regular ^ $ Coincide con el principio de línea. • Modificadores cuantitativos Los modificadores cuantitativos siguen a un conjunto de caracteres e indican el número de veces que el conjunto ha de ser repetido. por ejemplo. 25 de Mayo 445 Piso 2 (1002) Bs. Los ejemplos dados con los metacaracteres son muy simples y solo pretenden demostrar el uso de ese metacaracter en cuestión. Ejemplos de Expresiones Regulares Una vez dejados los detalles desagradables.As. Los dos se combinarían de acuerdo a unas reglas específicas (las cuales. metacaracteres que coincidan con uno o varios caracteres.com.

Los corchetes son sólo para agrupar y no hacen coincidencia por si mismos. Se ha de tener cuidado con confundir esta inversión con el carácter de anclaje ^ que se describió anteriormente. como se muestra en la tabla 7-3. Se hace coincidir cualquier carácter independiente que no esté entre a. b.ar . desconecta (escape) el significado especial de carácter que le sigue convirtiendo metacaracteres en literales. b. Coincidencia inversa. Coincide con cualquier carácter (sólo uno). Las palabras son esencialmente conjuntos de caracteres rodeados de espacios en blanco o situados junto al inicio o fin de la línea o un signo de puntuación. Como se mencionó en la sección de entrecomillado.com. Conjuntos de caracteres de las expresiones regulares Expresión Regular Descripción [abc] [a-z] Grupos y rangos de caracteres independientes. En la segunda forma. se hace coincidir cualquier carácter independiente de entre el rango acotado por los caracteres a y z. En la primera forma se hace coincidir cualquier carácter independiente de entre los caracteres a.As. o c. o sea. que comiencen por dicha cadena: $ grep '^Linux' fichero1 Ejemplo 2 Muestra las líneas en fichero1 donde el último carácter es una "x": $ grep 'x$' fichero1 Muestra el número de líneas vacías en fichero1 encontrando líneas con nada entre el principio y el final: $ grep -c '^$' fichero1 Muestra todas las líneas de fichero1 que contengan sólo la palabra "nulo": $ grep '^nulo$' fichero1 Grupos y rangos Pueden situarse caracteres en grupos y rangos para hacer expresiones regulares más eficientes. o c o en el rango a-z. Las barras invertidas son imprescindibles para que se interpreten de esta forma < y >. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. [^abc] [^a-z] \<palabra\> . Tabla 7-3. excepto el de fin de línea.Ejemplo 1 Muestra todas las líneas de fichero1 en las cuales aparezca la cadena "Linux" en el principio de la línea. (un punto) \ 25 de Mayo 445 Piso 2 (1002) Bs. Coincidencia de palabras.

' fichero1 Ejemplo 7 Muestra todas las líneas de fichero1 que contienen un punto (como .' fichero1 25 de Mayo 445 Piso 2 (1002) Bs. se ha de usar el codigo de escape): $ grep '\.Ejemplo 1 Muestra todas las líneas de fichero1 que contengan "Linux".ar .. "linux". "TurboLinux" y similares: $ grep '[Ll]inux' fichero1 Ejemplo 2 Muestra todas las líneas de fichero1 que contengan tres dígitos numéricos consecutivos: $ grep '[0-9][0-9][0-9]' fichero1 Ejemplo 3 Muestra todas las líneas de fichero1 que comiencen por cualquier carácter que no sea un dígito numérico: $ grep '^[^0-9]' fichero1 Ejemplo 4 Muestra todas las líneas de fichero1 que contengan la palabra completa "Linux" o "linux" pero no "LinuxOS" o "TurboLinux": $ grep '\<[Ll]inux\>' fichero1 Ejemplo 5 Muestra todas las líneas de fichero1 con cinco o más caracteres en una línea (excluyendo el carácter de nueva línea): $ grep '..com.As.. es un metacarácter. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.' fichero1 Ejemplo 6 Muestra todas las líneas no vacías de fichero1 (aquellas que tienen al menos un carácter): $ grep '..

As. "abcc". Tel 4313–2484 /2486/2475 opensource@osi-sistemas. y similares.\{n. o “fichero2”: $ grep -E 'fichero[12]?' fichero1 Ejemplo 5 Muestra todas las líneas de fichero1 que contengan al menos un dígito numérico: $ grep -E '[0-9]+' fichero1 25 de Mayo 445 Piso 2 (1002) Bs. Coincide tanto con la expresión regular especificada antes o después de la barra vertical. Este modificador es una función "extendida" y solo se dispone en grep cuando se utiliza la opción -E. Éste modificador es una función "extendida" y solo se dispone en grep cuando se utiliza la opción -E. Las barras invertidas son imprescindibles y permiten la interpretación de{ y }. Coincide con una o más instancias de la expresión regular que lo precede. y similares: $ grep 'abc*' fichero1 Ejemplo 2 Muestra todas las líneas de fichero1 que contengan "abc". Alternancia.com.ar . "abccc". pero no "ab": $ grep 'abcc*' fichero1 Ejemplo 3 Muestra todas las líneas de fichero1 que contengan dos o más dígitos numéricos consecutivos: $ grep '[0-9][0-9][0-9]*' fichero1 Ejemplo 4 Muestra líneas de fichero1 que contengan "fichero" (porque ? puede hacer coincidir cero ocurrencias). Este modificador es una función "extendida" y solo se dispone en grep cuando se utiliza la opción -E. \{n\} coincide con n ocurrencias.\} coincide con al menos n ocurrencias. “fichero1”. Coincide con cero o una instancia de la expresión regular que lo precede.Modificadores de Expresiones Regulares Expresión Descripción Regular * ? Coincide con un número indeterminado (cero o más) del carácter (o expresión regular) que lo precede. Coincide con un rango de ocurrencias del carácter o la expresión regular que precede ésta construcción. "abccc". "abc". "abcc". y \{n.m\} coincide con cualquier número de ocurrencias entre n y m inclusive.m\} | Ejemplo 1 Muestra todas las líneas de fichero1 que contengan "ab". + \{n.

5\}\>' fichero1 Ejemplo 8 Muestra todas las líneas de fichero1 que contengan "Happy". dos y cuatro dígitos separados por guiones: [0-9]\{3\}-[0-9]\{2\}-[0-9]\{4\} Ejemplo 5 Coincide con un importe en dólares utilizando un signo de dólar escapado. o "angry": $ grep -E '[Hh]appy|[Ss]ad|[Aa]ngry' fichero1 Secuencias básicas de las Expresiones Regulares Ejemplo 1 Coincide con cualquier letra: [A-Za-z] Ejemplo 2 Coincide con cualquier signo (no letra o número): [^0-9A-Za-z] Ejemplo 3 Coincide con una letra mayúscula seguida de cero o más letras minúsculas: [A-Z][a-z]* Ejemplo 4 Coincide con un número de la Seguridad Social de USA (123-45-6789) especificando grupos de tres. un punto escapado y dos dígitos más: \$[ 0-9]*\. "Sad". cero o más espacios o dígitos numéricos.As.5\}$' fichero1 Ejemplo 7 Muestra todas las líneas de fichero1 que contengan cualquier número de tres.[0-9]\{2\} Ejemplo 6 Coincide con el mes de mayo y su abreviatura. "happy"." o "11111" en una línea y nada más: $ grep '^1\{3. cuatro o cinco dígitos: $ grep '\<[0-9]\{3.com." "1111.Ejemplo 6 Muestra todas las líneas de fichero1 que contengan "111. "sad". Tel 4313–2484 /2486/2475 opensource@osi-sistemas. "Angry". La interrogación marca cero o una instancia del carácter o : mayo? 25 de Mayo 445 Piso 2 (1002) Bs. “may”.ar .

As. En éste ejemplo tab significa el carácter tab y va precedido por un espacio: /^[ tab]*$/d Ejemplo 4 Elimina líneas que comiencen por puntos o signos #: /^[.ar . Ejemplo 1 Elimina líneas en blanco: /^$/d Ejemplo 2 Elimina cualquier línea que no contenga #noborrar: /#noborrar/!d Ejemplo 3 Elimina líneas que contengan sólo espacios en blanco (espacios o tabulaciones). Por ejemplo.#]/d Ejemplo 5 Sustituye cualquier número de espacios por un sólo espacio donde quiera que aparezca en la línea: s/ */ /g 25 de Mayo 445 Piso 2 (1002) Bs. los comandos podrían situarse en lugar de comando1 en esta norma de uso: $ sed [opciones] 'comando1' [ficheros] Comandos que podrían aparecer en un script independiente de sed.com. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.Utilizando Expresiones Regulares como direcciones en sed Estos ejemplos son comandos que se proporcionarían a sed.

• 5. Todos los archivos de Linux tienen un nombre.txt.? [ ] ( ) ! & ~ < >. como puede ser una impresora. es obviamente el archivo.jpg (o .com. el cual debe cumplir unas ciertas reglas: • Un nombre de archivo puede tener entre 1 y 255 caracteres. que son los siguientes: = ^ ~ ' " ` * .Visión general del sistema de archivos de LINUX Archivos: Tipos La base del sistema de archivos de Linux. Para emplear ficheros con estos caracteres o espacios hay que introducir el nombre del fichero entre comillas.jpeg) respectivamente. desde una imagen en formato PNG o JPEG a un texto o una página WEB en formato HTML.txt ó carta. Enlaces 25 de Mayo 445 Piso 2 (1002) Bs. • Directorios (o carpetas). las imágenes PNG o JPEG tienen extensiones . . . Pese a esto Linux sólo distingue tres tipos de archivos: • Archivos o ficheros ordinarios. un CD-ROM o un DVD.As. HTML. … El sistema de archivos es la estructura que permite que Linux maneje los archivos que contiene. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Sistemas de Archivos • 5. los ficheros de texto. • Se pueden utilizar números exclusivamente si así se desea. • Se puede utilizar cualquier carácter excepto la barra inclinada / y no es recomendable emplear los caracteres con significado especial en Linux. .html).ar . De esta forma introducir información en ese archivo equivale a enviar información a la impresora.png y . se puede emplear un cierto criterio de "tipo" para marcar las distintas clases de ficheros empleando una serie de caracteres al final del nombre que indiquen el tipo de fichero del que se trata. Las letras mayúsculas y minúsculas se consideran diferentes. un disquete. y por lo tanto no es lo mismo carta. • Archivos especiales.1 . son la base sobre la que se asienta Linux. Así. Para el usuario estos dispositivos tienen el mismo aspecto y uso que los archivos ordinarios. que no es otra cosa que la estructura empleada por el sistema operativo para almacenar información en un dispositivo físico como un disco duro.txt que Carta. es un archivo especial que agrupa otros ficheros de una forma estructurada. Como es natural un archivo puede contener cualquier tipo de información.Txt Como en Windows. puesto que representan los dispositivos conectados a un ordenador. son los mencionados anteriormente.htm (o .

txt es traducido por el sistema de forma que se accede al contenido de balance. 25 de Mayo 445 Piso 2 (1002) Bs. existe una única raíz llamada / de la que cuelgan todos los ficheros y directorios. En Windows cada unidad de disco se identifica como una carpeta básica que sirve de raíz a otras. Como ejemplo se puede suponer la existencia de un fichero llamado balance.txt. y por lo tanto en Linux. d: etc.ar . Cualquier acceso a balance. Una vez creado el enlace simbólico éste permite acceder al fichero que enlaza de igual modo que si se hubiera copiado el contenido del mismo a otro fichero. El camino o Path En cualquier sistema operativo moderno la estructura de archivos es jerárquica y depende de los directorios. que contiene otros directorios o archivos. puesto que permiten compartir el fichero pero centralizan las modificaciones. con la ventaja de que este realmente no se ha copiado. Supongamos la estructura de archivos de la Figura 2.1999. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.As.Los enlaces son un tipo de archivo ordinario cuyo objetivo es crear un nuevo nombre para un archivo determinado. En general la estructura del sistema de archivos se asemeja a una estructura de árbol. En los sistemas Unix. al que se crea un enlace simbólico balance. y que es independiente de qué dispositivos estén conectados al ordenador. El camino o path de un fichero o directorio es la secuencia de directorios que se ha de recorrer para acceder a un determinado fichero separados por /.txt.1999. Los enlaces simbólicos son especialmente útiles cuando se quiere que un grupo de personas trabajen sobre un mismo fichero. c:.txt. y cuyo nombre es especial a:.com. estando compuesto cada nudo por un directorio o carpeta.

todos los directorios contienen dos directorios especiales: Figura 2 •=El directorio actual. representado por el punto .txt (path absoluto) o bien .txt. Estos ficheros se organizan en distintos directorios cuya misión y nombre son estándar para todos los sistema Unix. el path relativo al fichero Carta.ar • • . Bajo este deben aparecer otros dos subdirectorios: • /etc/X11 Ficheros de configuración de X Window /etc/skel Ficheros de configuración básica que son copiados al directorio del usuario cuando se crea uno nuevo.com. opensource@osi-sistemas. • /proc Contiene ficheros especiales que o bien reciben o envían información al kernel del sistema (Se recomienda no modificar el contenido de este directorio y sus ficheros). por ejemplo si no encontramos en el directorio /home. lo cual significa que tiene una estructura determinada.txt es luis/Carta. no depende de si un determinado ordenador tiene 1. •=El directorio padre representado por dos puntos . Todos el sistema de archivos de Unix tiene un origen único la raíz o root representada por /. 25 de Mayo 445 Piso 2 Tel 4313–2484 /2486/2475 (1002) Bs.txt con /home/luis/Carta.Existen dos formas del path o camino: • el camino absoluto que muestra toda la ruta a un fichero. /home/luis/Carta. compatible y homogénea con el resto de los sistemas Unix. • • / Raíz del sistema de archivos. Estructura del sistema de archivos de Linux El sistema de archivo de Linux sigue todas las convenciones de Unix. • /sbin Contiene programas que son únicamente accesibles al superusuario o root. Al contrario que en Windows o MS-DOS el sistema de archivos en cualquier sistema Unix no está ligado de una forma directa con la estructura del hardware. 2 o 7 discos duros para crear las unidades c:.. esto es. /etc Este directorio esta reservado para los ficheros de configuración del sistema.txt Para complicar aun más las cosas.txt.txt o simplemente Carta. /dev Contiene ficheros del sistema representando los dispositivos que estén físicamente instalados en el ordenador.. Bajo este directorio se encuentran todos los ficheros a los que puede acceder el sistema operativo./luis/Carta. En luis como .txt (path relativo). Estando en el directorio /home/pedro se puede acceder a Carta. • /lib Contiene las librerías necesarias para que se ejecuten los programas que residen en /bin (no las librerías de los programas de los usuarios). • el path relativo a un determinado directorio./Carta.As. d: o m:. En este directorio no debe aparecer ningún fichero binario (programas).

/usr Este es uno de los directorios más importantes del sistema puesto que contiene los programas de uso común para todos los usuarios. Su estructura suele ser similar a la siguiente: • • • /usr/X11R6 Contiene los programas para ejecutar X Window. /usr/bin Programas de uso general, lo que incluye el compilador de C/C++. /usr/doc Documentación general del sistema.

/usr/etc Ficheros de configuración generales. /usr/include Ficheros de cabecera de C/C++ (.h). /usr/info Ficheros de información de GNU. /usr/lib Librerías generales de los programas. /usr/man Manuales accesibles con el comando man (ver más adelante). /usr/sbin Programas de administración del sistema. /usr/src Código fuente de programas.

• • •

Existen además de los anteriores otros directorios que se suelen localizar en el directorio • • /usr, como por ejemplo las carpetas de los programas que se instalen en el sistema. /var Este directorio contiene información temporal de los programas (lo cual no implica que se pueda borrar su contenido, de hecho, ¡no se debe hacer!)

Acceso a los diferentes sistemas de archivos Como se ha visto anteriormente el sistema de archivos de Linux sólo tiene una raíz y su estructura es independiente de los dispositivos de almacenamiento existentes. Esto implica que el procedimiento a emplear para acceder a la información almacenada en los distintos sistemas de almacenamiento de un ordenador no es tan sencilla como en Windows, y requiere un proceso llamado “montado”, que se verá más adelante. Cuando se ha terminado de trabajar con un determinado dispositivo hay que “desmontarlo” (¡No físicamente!). Por ejemplo el proceso para leer un disquete sería el siguiente: 1. Introducir el disquete en la disquetera. 2. Montar el sistema de archivos del mismo. 3. Leer, grabar, y manipular el contenido del disquete. 4. Desmontar el sistema de archivos del disquete. 5. Extraer el disquete de la disquetera. 25 de Mayo 445 Piso 2 (1002) Bs.As. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

El proceso puede parecer complejo pero es el precio a pagar por la seguridad, puesto que de esta forma se garantiza que no exista ninguna aplicación que esté usando el disquete cuando se extraiga. (En el caso de los CD-ROM Linux impide su extracción hasta que se desmonta). Para complicar más las cosas sólo el administrador o root tiene permiso para montar y desmontar un sistema de archivos (por motivos de seguridad), aunque esto puede ser arreglado. Permisos Linux, al igual que todos los sistemas Unix, mantiene un sistema de permisos de acceso a los ficheros muy estricto, a fin de controlar qué es lo que se puede hacer con ellos, y quien lo puede hacer. Estos permisos se identifican con letras y son: r permiso de lectura el fichero w permiso de escritura en el fichero x permiso de ejecución del fichero s permiso para cambiar el propietario del fichero Al contrario que en Windows o MS-DOS los programas ejecutables de Linux no están marcados por una determinada extensión (.exe) sino por un atributo, el permiso de ejecución x. Si se elimina este atributo a un programa, Linux no será capaz de ejecutarlo. A su vez cada uno de estos permisos se aplica: al dueño del fichero (u), al grupo de usuarios al que pertenece el dueño (g), ó al resto de usuarios (a). Así un fichero determinado puede tener permiso para ser leído, escrito y ejecutado por su dueño, leído y ejecutado por el grupo al que pertenece y no tener ningún tipo de acceso para los demás usuarios. Como se puede entender este tipo de mecanismo es especialmente útil cuando se trabaja en grupo en un determinado proyecto.

25 de Mayo 445 Piso 2 (1002) Bs.As.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar


Introducción

5.2 - Creación de particiones y de sistemas de archivos

En este tema se verá como crear y formatear particiones con las herramientas que ofrece GNU/Linux. Los comandos que se verán en este tema son: fdisk mkfs En este capítulo no se harán ejercicios, ya que hay suficientes ejemplos para trabajar con el tema y crear o modificar los existentes para hacer pruebas. Este tema tiene un peso (importancia) de 3 de cara al examen final de la certificación LPI 101. El total de la suma de pesos de todos los temas es de 106. Creando particiones y sistemas de ficheros Hay muchas herramientas para crear particiones y sistemas de archivos en sistemas Linux. La utilidad fdisk se usa para trabajar con particiones en discos duros. La utilidad fips se utiliza para redimensionar particiones, y los sistemas de archivos se crean utilizando la utilidad mkfs. Se pueden utilizar estas herramientas conjuntamente para preparar un disco duro para usar sistema Linux. En el mundo real: muchas distribuciones Linux incluyen herremientas que crean automáticamente las particiones y el sistema de archivos Linux durante la instalación. Mucha gente no necesitará nunca usar utilidades como fdisk o mkfs. Sin embargo, los usuarios avanzados y los administradores de sistemas deben estar familiarizados con el uso de estas herramientas. Fdisk La herramienta principal usada para crear particiones de disco es fdisk. La utilitdad fdisk divide el disco en particiones y escribe la tabla de particiones en el sector 0 (conocido como superblock). Cuando se utiliza sin parámetros, fdisk presenta un menú de opciones con las que se puede interactuar. Se puede evitar el menú y ejecutar fdisk con las siguientes opciones: -l: lista las tablas de particiones. -v: Nos da únicamente la versión de fdisk. Si no se utiliza ninguna de esas opciones, fdisk comprueba si el número de cilindros del dispositivo por defecto (hda1) es mayor de 1024 y avisa de ello si es así. Entonces espera una instrucción. Se puede iniciar fdisk con un dispositivo distinto al de defecto especificándolo en la línea de comandos. Por ejemplo, para arrancar fdisk con el tercer driver IDE, se debe poner: $ fdisk /dev/hdc

25 de Mayo 445 Piso 2 (1002) Bs.As.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com.ar

Una vez la utilidad está iniciada. empezando por acciones simples y acabando con algunas más complicadas. En primer lugar. Si se entra p para una primaria. 63 sectors. El prompt preguntará que partición (1 a 4). Los siguientes ejemplos ilustran que se puede hacer con esta utilidad. Sale de la aplicación sin guardar los cambios. Primero entramos el comando d para borrar la partición. se entrará el comando n.ar . algunas de las cuales se listan en la tabla 1-1 Tabla 1-1 Algunas de las opciones del fdisk Opción Función p d n q w m v a Muestra información sobre la partición. En este caso. Crea una partición. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. suponiendo que se quiere crear dos particiones iguales en el espacio que antes ocupaba la tercera partición. 16383 cylinders Units = cylinders of 1008 + 512 bytes Device /dev/hda1 /dev/hda2 /dev/hda3 Boot + Start 1 4064 4317 End 4063 4316 16383 Blocks Id 2047720+ 127512 82 6081768 System 83 Linux Linux swap 83 Linux Se muestra tres particiones (de 1 a 3) en un único disco IDE (hda). el prompt puede no aparecer. Cambia el indicador de estado de arranque de la partición. por lo tanto después de entrar p la secuencia será la siguiente (valores entrados en cursiva) 25 de Mayo 445 Piso 2 (1002) Bs. Muestra los comandos disponibles.com. y ya está. Para crear una nueva partición. Guarda los cambios y sale de la aplicación. seguidamente se pedirá el número (1-4) para crearla. el comando falla ya que primero se debería haber borrado la partición antes de volverla a añadir. no se puede crear otra ya que ésta ya existe. se debe introducir el comando p. Para modificar el sistema de ficheros. Verifica la tabla de particiones. entrando m se presenta una ayuda en forma de menú. la segunda de swap. Borra una partición. si se da un número ya usado. si ya se tiene una partición extendida.As. La primera partición es de arranque (marcada como boot) . El prompt que muestra será: eextendida ppartición primaria (1-4) Si ya se han creado algunas particiones. para ver la tabla de particiones. El resultado se debe parecer a: Disk /dev/hda: 16 head. Por ejemplo. Se entra 3. vamos a cambiar la tercera partición en dos de menor tamaño. y la tercera es el resto del disco.

16383 cylinders Units = cylinders of 1008 + 512 bytes Device /dev/hda1 /dev/hda2 /dev/hda3 Boot + Start 1 4064 4317 End 4063 4316 10350 Blocks Id 2047720+ 127512 82 3041136 System 83 Linux Linux swap 83 Linux Command (m para ayuda): n Command action e extended p primary partition (1-4) p Número de partición (1-4): 4 Primer cilindro (10531-16383. para cambiar la partición existente de swap (la 2) a una partición Linux.Número de particion (1-4): 3 Primer cilindro (4317-16383. 63 sectors. defecto 16383): (aceptar) Usando el valor de defecto 16383 Command (m para ayuda): p Disco /dev/had: 16 head.As. defecto 4317): (aceptar) Usando el valor de defecto 4317 Último cilindro o +size o +sizeM o +sizeK _ (4317-16383.com. 16383 cylinders Units = cylinders of 1008 + 512 bytes Device /dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4 Boot + Start 1 4064 4317 10351 End 4063 4316 10350 16383 Blocks Id 2047720+ 127512 82 3041136 3040632 System 83 Linux Linux swap 83 Linux 83 Linux Para cambiar la tercera partición a sistema de ficheros swap (partición de swap) la secuencia es: Command (m para ayuda): t Número de partición (1-4): 3 Hex code ( L para la lista de códigos): 82 Cambiado tipo de sistema de la partición 3 a 82 (Linux swap) Entonces. 63 sectors. 25 de Mayo 445 Piso 2 (1002) Bs. defecto 16383): 10350 Command (m para ayuda): p Disco /dev/had: 16 head.ar . se debe hacer lo mismo que se ha hecho. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. default 10351): (aceptar) Usando el valor de defecto 10351 Último cilindro o +size o +sizeM o +sizeK _ (10351-16383. pero como código hex el 83. Poniendo L cuando se pida el hex code se mostrarán todos los sistemas de ficheros posibles (igual que poniendo I en el menú principal de fdisk).

se puede salir de fdisk y formatear las particiones que lo necesiten. Si se guardan los cambios. mkfs Una vez se ha creado la partición. Produce una salida con más información. Lee los bloques defectuosos del fichero. las cuales se pueden ver en la tabla 1-2.com. Comprueba el dispositivo en busca de bloques defectuosos antes de crear el sistema de ficheros. Las opciones usadas por mkfs están seguidas por un argumento especificando la partición que debe ser formateada. Tabla 1-2 Opciones usadas con mkfs Opción Uso -t fstype fs -options -c -l fichero -v Especifica el tipo de sistema de ficheros a crear. Ésto es realmente sólo útil para comprobaciones. el código de salida de 0 (cero) indicará que se ha llevado a cabo con éxito mientras que el código de salida 1 (uno) indicará fallo. aparecerá una alerta indicando que la tabla de particiones ha sido alterada y el disco será sincronizado.ar .As. Se deberá reiniciar el sistema para asegurarse de que la tabla está actualizada adecuadamente. Ejemplo de la sintaxis usada: mkfs -opciones argumentos Cuando se crea un sistema de ficheros con mkfs. En la tabla 1-3 se pueden ver algunas de las utilidades prácticas de mkfs.Después de efectuar todos los cambios. se deben salvar con w. incluyendo todas las órdenes específicas del sistema de ficheros concreto que se ejecutan. La utilidad mkfs se utiliza con muchas opciones distintas. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Se pueden hacer muchos cambios con fdisk y deshecharlos si se usa la opción q. 25 de Mayo 445 Piso 2 (1002) Bs. se pueden utilizar muchos comandos para especificar el tipo de sistema de ficheros. Opciones específicas de sistema de ficheros para ser pasados al sistema real de ficheros que vamos a crear. Después de la ejecución del comando. Por defecto se usa ext2. La utilidad mkfs se usa para crear sistemas de ficheros en particiones vacías. Si se desea grabar los cambios realizados. el sistema de ficheros debe ser añadido para que Linux pueda hacer uso de este espacio. Estos comandos son accesibles sólo para el usuario root.

Por ejemplo.com.ext2: # mkfs. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. monitorizar el espacio libre y reparar problemas con el sistema de ficheros.As.Inspección y verificación del sistema de archivos Introducción Este capítulo se verá como verificar la integridad del disco duro.Utilidades para la creación de Sistemas de Ficheros Comando Uso mkfs.ext2 o mke2fs mkfs. se puede hacer uso de las páginas man de Linux.ext3 mkfs. 25 de Mayo 445 Piso 2 (1002) Bs. Los comandos que se verán en este tema son: du df fsck e2fsck mke2fs debugfs dumpe2fs tune2fs Este tema tiene un peso (importancia) de 3 de cara al examen final de la certificación LPI 101. Para crear un sistema de ficheros debe ser usada la herramienta correcta especificada en la tabla 1-3.ext3 /dev/hda3 • 5.3 .ar .msdos o mkdosfs mkswap Crea un sistema de ficheros ext2 Crea un sistema de ficheros ext3 Crea un sistema de ficheros MS-DOS Crea un sistema de ficheros de Linux swap Para obtener más detalles de las opciones al crear cada tipo de sistemas de ficheros. un uso apropiado de estas utilidades es crear un partición ext2 usando mkfs. El total de la suma de pesos de todos los temas es de 106.

No obstante. el máximo número de ficheros que un filesystem puede acomodar. a su vez. Monitorizar y comprobar cuidadosa y regularmente los filesystems de Linux nos ayudará a prevenir o corregir estos problemas. El comando df proporciona información necesaria tanto sobre la uso del espacio en disco como de los inodos libres. quizás. • Un filesystem se queda sin inodos libres de tal forma que no se pueden crear nuevos objetos en el mismo. Cada filesystem contiene un número finito de inodos que se establece en el momento de creación del filesystem. pero si indicamos otro tipo de nombre de fichero o directorio obtendremos información sobre la partición donde está ubicado dicho fichero o directorio. el sistema entero dejen de funcionar. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Tabla 2-1 Opciones frecuentemente del comando df Opción Uso -h Muestra los resultados en un formato legible para las personas. -i Ejemplo 1 Revisar el uso del espacio en disco en todos los filesystems: 25 de Mayo 445 Piso 2 (1002) Bs. Esto podría ocurrir si el filesystem se llena o si se queda sin inodos libres. Sintaxis df [opciones] [directorios] Descripción Muestra información general sobre el uso del disco en los filesystems montados en directorios. Los inodos son las estructuras de datos dentro del filesystem que describen los ficheros en el disco.As. es posible quedarse sin inodos libres en particiones que contengan muchos ficheros pequeños. Monitorizando el espacio y los inodos libres del disco Un sistema de lectura/escritura no sirve de mucho si crece hasta el punto en que no pueda admitir nuevos ficheros. probablemente nunca crearás tantos ficheros como para agotar este número. en directorios indicamos ficheros de dispositivos de particiones como /dev/hda1. se mostrará la información relativa a los filesystems montados en los dispositivos incluidos en /etc/fstab.ar . causando que los programas o. seguramente por un corte de alimentación o por una caída del sistema. Este número es. Como los filesystems se crean con un número de inodos enorme. incluyendo sufijos como M(megabytes) y G (gigabytes). Muestra información sobre los inodos libres en lugar de la información por defecto sobre el espacio libre en disco.com. Normalmente. Si omitimos directorios. Es muy importante prevenir la escasez de inodos libres en las particiones del sistema.Manteniendo la Integridad de los Filesystems (Sistemas de Ficheros) Con el trascurso del tiempo los filesystems activos pueden terminar presentando problemas como los siguientes: • Un filesystem se llena hasta el límite de su capacidad. • Un filesystem se corrompe.

simplemente.9G 406M 1. eliminar ficheros para obtener más espacio libre. /dev/sda1 102800 7062 95738 7% / Cuando un filesystem está próximo a agotar su capacidad podemos. Con ésta tónica de utilización. simplemente. Sin embargo en el caso improbable de una escasez de inodos.3M 272M 3% /var En este ejemplo se observa que en ninguno de los siete filesystems montados por defecto.4G 22% /home 53M 12M 39M 23% /root 99M 104k 93M 0% /tmp 972M 507M 414M 55% /usr 296M 9.2M 276M 2% /boot 1. el espacio utilizado excede del 55 por ciento de su capacidad. Ejemplo 3 Determina rápidamente en que partición está situado el directorio de trabajo actual (puede representarse. Observa que la partición /usr (con el 14 por ciento de los inodos utilizados) ha consumido el 55 por ciento del espacio en disco. por un punto): # df . Tel 4313–2484 /2486/2475 opensource@osi-sistemas. lo más probable es que el volumen /usr agote su capacidad en disco antes de agotar los inodos libres.ar . deberíamos volver a crear el filesystem con un número mayor de inodos a menos que podamos borrar una muy buena cantidad de ficheros.# df -h Filesystem /dev/sda1 /dev/sda5 /dev/sda9 /dev/sda6 /dev/sda10 /dev/sda8 /dev/sda7 Size Used Avail Use% Mounted on 387M 56M 311M 15% / 296M 5.com. 25 de Mayo 445 Piso 2 (1002) Bs. Ejemplo 2 Revisar el uso de inodos en los mismos filesystems: # df -i Filesystem /dev/sda1 /dev/sda5 /dev/sda9 /dev/sda6 /dev/sda10 /dev/sda8 /dev/sda7 Inodes IUsed IFree IUse% Mounted on 102800 7062 95738 7% / 78312 29 78283 0% /boot 514000 934 513066 0% /home 14056 641 13415 5% /root 26104 60 26044 0% /tmp 257040 36700 220340 14% /usr 78312 269 78043 0% /var Entre estas particiones el mayor consumo de inodos es sólo de un 14 por ciento. Está claro que ninguno de éstos filesystems se está acercando en su consumo al máximo disponible.As.

d/init.d 1 /etc/rc.com. Genera un gran total de todos los elementos listados.d/rc3. En algunos sistemas operativos es bastante complicado obtener la respuesta a esta pregunta con las herramientas nativas.As.d 882 /etc/rc.d: # du /etc/rc.d 1 /etc/rc.d 1 /etc/rc. a responder a esta pregunta. incluyendo sufijos como M (megabytes) y G (gigabytes). en /etc: 25 de Mayo 445 Piso 2 (1002) Bs.ar . en /etc: # du -s /etc 13002 /etc Ejemplo 3 Muestra el espacio en disco utilizado por ficheros.d 1 /etc/rc. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. limitándose a totalizar los directorios. el comando du nos puede ayudar. Tabla 2-2 Opciones frecuentemente utilizadas por du Opción Uso -a -c -h -s -S Muestra todos los ficheros. Visualiza un sumario para cada uno de los directorios especificados. en lugar de los totales encontrados recursivamente en cada subdirectorio.d 1 /etc/rc.d 1 /etc/rc.d/rc0. Ejemplo 1 Examinar el uso del disco en /etc/rc. no solo los directorios.d 904 /etc/rc.d/rc1. En Linux.d 1 /etc/rc. incluyendo los subdirectorios interiores.d Ejemplo 2 Muestra el espacio en disco utilizado por ficheros. Excluye los subdirectorios de las sumas y los totales. excluyendo los subdirectorios interiores. Si se omiten los directorios se buscará en el directorio de trabajo actual.d/rc5.Monitorizando el Uso del Espacio en Disco ¿Te has preguntado alguna vez “A donde va todo el espacio consumido en el disco?”.d/rc2.d/rc6. mostrándonos directorio por directorio el uso del espacio en disco.d/rc4. Muestra los resultados en un formato legible para las personas. El comando du examina los directorios recursivamente y muestra información detallada o resumida sobre el espacio en disco consumido. Sintaxis du [opciones] [directorios] Descripción Muestra información sobre el uso del disco en los directorios.

Ejemplo 5 Muestra el mismo sumario. sino que suelen pasar previamente por una cache de memoria. Comprobando la Integridad del Filesystem Independientemente de lo estables que sean.ar .com. Ten en cuenta que el formato legible por las personas no ordenaría de esta forma ya que sort no interpreta dicho formato. las escrituras en el filesystem no suelen ser directas. incluso por algo tan simple como un cable de alimentación desconectado por accidente.As. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.5M /home/httpd 9. fsck es una utilidad específica al tipo de filesystem instalado – esto incluye fsck. los datos implicados se perderían y las partes del disco que se reservaron para ellos quedarían marcadas como en uso. un corte de corriente o una caída del sistema impediría al kernel sincronizar ésta cache con el disco.# du -Ss /etc 1732 /etc Ejemplo 4 Muestra un sumario de todos los subdirectorios bajo /home. Además. Desafortunadamente una interrupción de este tipo puede provocar daños en un filesystem.0k /home/samba 11M total Este resultado muestra que se han utilizado 11 MB del espacio total del disco.ext2. Si se abortase una operación de escritura en disco antes de completarse. los ordenadores terminan fallando. Una parte de la información almacenada en el disco para describir un filesystem es la conocida como 25 de Mayo 445 Piso 2 (1002) Bs. Los filesystems se comprueban con fsck. con una salida legible por las personas: # du -csh /home/* 42k /home/bsmith 1. que es un link al programa e2fsck (mira en las páginas man para más información). pero ordenando los resultados de mayor a menor utilización: # du -cs /home/* | sort -nr 11386 total 9772 jdean 1517 httpd 42 jdoe 42 bsmith 12 lost+found 1 samba Este resultado muestra que el usuario jdean está consumiendo la mayor cantidad de espacio. Al igual que mkfs. Cualquiera de estos casos provocaría que nos encontrásemos con inconsistencias en el filesystem que deberán ser corregidas para asegurar un funcionamiento fiable del mismo.5M /home/jdean 42k /home/jdoe 12k /home/lost+found 1.

Si éste área se corrompiese el filesystem quedaría inaccesible. Como verás. bloques y tamaños. Tabla 2-3 Opciones frecuentemente utilizadas en fsck Opción Uso -A Ejecuta comprobaciones en todos los filesystems incluidos en /etc/fstab. Especifica el tipo de filesystem a comprobar. fsck asume el tipo de filesystem ext2 y funciona de modo interactivo interrumpiendo la ejecución para pedir permiso antes de aplicar las correcciones. Comprobar la estructura de directorios. los corrige. 4. antes de montar los filesystems.Comprobar las referencias. Comprobar bloques defectuosos. Normalmente.superbloque que se encuentra en el bloque 1 de la partición. pero muestra lo que debería hacerse. Utiliza una copia del superbloque alternativa.com. Fuerza una comprobación. e2fsck utiliza automáticamente superbloques alternativos. Comprobar la conectividad de directorios. fsck puede utilizar la información en las copias del superbloque para restaurar el superbloque principal Sintaxis fsck [opciones] [-t tipo] [opciones-fs] filesystems Descripción Comprueba si los filesystems tienen errores y. por defecto cada 8192. Comprobar inodos. se realizan copias del mismo en intervalos regulares del filesystem. Esta opción está pensada para utilizarse en tiempo de carga del sistema. Responde automáticamente "yes" a todas las preguntas interactivas permitiendo la utilización no interactiva de e2fsck. opcionalmente. incluso si el filesystem parece limpio. 3. Comprobar el total de la información. Debido a la importancia del superbloque. En el modo interactivo. por defecto se asume ext2. El valor de tipo determina que verificador específico para el filesystem es utilizado. Durante la comprobación del sistema de fsck se hace lo siguiente: 1. Repara automáticamente el filesystem sin hacer preguntas. No se ejecuta. La primera copia del superbloque se encuentra en el bloque 8193.As. la segunda en el bloque 16385. utilizarás -b 8193 en el modo no interactivo. 2. y así sucesivamente. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. para restaurar un superbloque defectuoso.ar . 5. Por defecto. -N -t tipo -b superbloque -c -f -p -y 25 de Mayo 445 Piso 2 (1002) Bs.

] fsck. 4360/136521 blocks La partición estaba marcada como limpia.14.ar . 9-Jan-1999 for EXT2 FS 0.14 (9-Jan-1999) e2fsck 1. 95/08/09 Pass 1: Checking inodes.com. Ejemplo 2 Fuerza una comprobación: # fsck -f /dev/hda5 Parallelizing fsck version 1.5b.5b.14 (9-Jan-1999) e2fsck 1.As. blocks. en este momento.ext2 -. en este caso con salida de mensajes explícita: # fsck -fv /dev/hda5 Parallelizing fsck version 1. 1011/34136 files. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.14. and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information 1011 inodes used (2%) 1 non-contiguous inodes (0. 9-Jan-1999 for EXT2 FS 0.ext2 /dev/hda5 Parallelizing fsck version 1. 9-Jan-1999 for EXT2 FS 0. and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/hda5: 1011/34136 files (0.Ejemplo 1 Comprueba el filesystem del tipo ext2 en /dev/hda5 que. por tanto fsck no llegó a verificarla.1%) # of inodes with ind/dind/tind blocks: 0/0/0 4360 blocks used (3%) 0 bad blocks 1000 regular files 2 directorios 0 character device files 0 block device files 0 fifos 0 links 0 symbolic links (0 fast symbolic links) 0 sockets -------1002 files 25 de Mayo 445 Piso 2 (1002) Bs. 95/08/09 /dev/hda5: clean.14. no está montado: # fsck /dev/hda5 [/sbin/fsck.14 (9-Jan-1999) e2fsck 1. 95/08/09 Pass 1: Checking inodes.1% non-contiguous). blocks. 4360/136521 blocks Ejemplo 3 Fuerza otra comprobación.5b.

el kernel realiza una comprobación de todos los filesystems incluidos en /etc/fstab utilizando la opción -A. Pass 1: Checking inodes. Detectados pocos enlaces. el sistema se pondría en modo monousuario de tal forma que se pueda ejecutar fsck de forma manual...ar . La información (códigos) de finalización que nos da la utilidad fsck es útil para determinar el resultado de la operación. Bloques no detectados. El código que nos retorna es la suma de las condiciones de salida. Estos códigos se muestran en la Tabla 2-4.14.14 (9-Jan-1999) e2fsck 1. blocks. Directorios que corresponden a inodos no localizados. Algunos de los errores que pueden causar esto son:       Bloques solicitados por múltiples ficheros. Cada código representa un tipo de condición de finalización. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.Ejemplo 4 Permite que fsck realice automáticamente todas las reparaciones en un filesystem dañado especificando la opción -y: [root@smp /mnt]# fsck -y /dev/hda5 Parallelizing fsck version 1. Errores de formato.5b. 95/08/09 Couldn't find ext2 superblock. 25 de Mayo 445 Piso 2 (1002) Bs. 9-Jan-1999 for EXT2 FS 0. and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Block bitmap differences: +1 +2 +3 +4 Fix? yes Inode bitmap differences: +1 +2 +3 +4 +5 +6 Fix? yes /dev/hda5: ***** FILE SYSTEM WAS MODIFIED ***** /dev/hda5: 1011/34136 files (0.As. Es útil examinar el contenido de este directorio después de haber perdido ficheros a consecuencia de un error del sistema. el fichero será ubicado en /lost+found. Bloques solicitados fuera del sistema de ficheros. check forced. Los ficheros entonces se renombran con su número de inodo. En los casos dónde el directorio padre de un fichero no pueda ser determinado. trying backup blocks. Se comprobará cualquier filesystem que no hubiese sido desmontado limpiamente (A menos que la entrada en /etc/fstab incluya la opción noauto) Si dicha comprobación encontrase algún error significativo. 4360/136521 blocks Cuando Linux carga.com. /dev/hda5 was not cleanly unmounted. Los códigos de salida se muestran en la línea de comandos cuando el comando finaliza su operación.1% non-contiguous).

bfs ext2 MD-DOS swap Raid mimix SCO BFS 25 de Mayo 445 Piso 2 (1002) Bs. Por todo esto. a menos que tengas un conocimiento muy detallado del funcionamiento interno del filesystem.ext2 tal como podemos ver: # mke2fs /dev/hda3 Tabla 2-5 Utilidades para la creación de filesystems Comando Tipo de filesystem creado mkfs. Desafortunadamente.As. Un ejemplo de uso correcto de esas utilidades es crear una partición ext2 utilizando mkfs. Error en la librería compartida. Creando un sistema de ficheros Para crear un sistema de ficheros debe ser utilizada la herramienta correcta de las especificadas en la tabla 2-5.Códigos de Finalización de fsck Código Significado 0 1 2 4 8 16 128 Sin error.ext2 o mke2fs mkfs. Errores de sintaxis o uso.com. Errores del sistema de ficheros corregidos.msdos o mkdosfs mkswap mkraid mkfs. lo más normal es utilizar la opción -y y confiar en la suerte. Errores del sistema de ficheros sin corregir. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.mimix mkfs.ar . El sistema debería ser reiniciado. Error operacional. podrás hacer muy poco aparte de permitir que fsck realice todas las reparaciones.

..] ] [ -T hora-ultima-comprobacion ] [ -U UUID ]dispositivo Descripción: tune2fs ajusta los parámetros configurables en un filesystem ext2. Sintaxis: debugfs [ -b tamaño_bloque ] [ -s superbloque ] [ -f fichero_comandos ] [ -R peticion ] [ -V ] [ [ -w ] [ c ] [ -i ] [ dispositivo ] ] Descripción El programa debugfs es un depurador interactivo de filesystems.. 25 de Mayo 445 Piso 2 (1002) Bs.Algunas utilidades de los filesystems Comando debugfs – Depurador de filesystems (sistemas de ficheros) ext2.ajusta los parámetros configurables en un filesystem ext2. /dev/hdXX). Comando tune2fs ..com. Dispositivo indica el fichero especial correspondiente al dispositivo que contiene el filesystem ext2 (p. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.ar .. Comando dumpe2fs – volcado de la información de un filesystem Sintaxis: dumpe2fs [ -bfhixV ] [ -ob superbloque ] [ -oB tamaño_bloque ] dispositivo Descripción: dumpe2fs muestra la información de grupo del superbloque y los demás bloques del filesystem existente en dispositivo..ej.] ] [ -r contador-bloques-reservados ] [ -s sparse-super-flag ] [ -u usuario ] [ -g grupo ] [ -C contador-montajes ] [ -L nombre-volumen ] [ -M directorio-ultimo-montaje ] [ -O [^]caracteristica[. Puede utilizarse para examinar y cambiar el estado de un filesystem del tipo ext2. Sintaxis: tune2fs [ -l ] [ -c contador-max-montajes ] [ -e comportamiento-errores ] [ -f ] [ -i intervalo-entrecomprobaciones ] [ -j ] [ -J opciones-de-diario ] [ -m porcentaje-bloques-reservados ] [ -o [^]opcionesde-montaje[.As.

Toda este información se guarda en el fichero /etc/fstab . los dispositivos removibles también se usan frecuentemente y es aconsejable tenerlos preparados para usar los comandos de montaje. Sus entradas se consultan como fuente de información por defecto cuando los usuarios quieren montar dispositivos removibles. Los filesystems definidos en este fichero son revisados y montados durante el arranque del sistema. como directorios (o puntos de montaje). a la espera de su montaje. Los filesystems de los dispositivos removibles.ro. Options DF ext2 defaults 1 ext2 defaults 1 ext2 defaults 1 ext2 defaults 1 swap defaults 0 noauto. diskettes. También se verá la estructura del fichero /etc/fstab en el que se guardan las particiones del disco duro. discos ZIP. tales como CD-ROM.• 5. la estructura de los sistemas de ficheros en GNU/Linux están generalmente divididos en particiones. puede darse el caso de que el directorio destinado a este fin contenga subdirectorios o archivos. permisos.As. Hoy en día existen herramientas que automatizan este proceso y esconden en cierta forma el trabajo del montado/desmontado. M. en cuyo caso quedarán ocultos hasta que el dispositivo se desmonte. Los comandos que se verán en este tema son: mount umount Y la estructura y funcionalidad de /etc/fstab Controlando el montaje / desmontaje de los Filesystems Como ya se vió anteriormente. etc. type /dev/sda1 / /dev/sda5 /boot /dev/sda9 /home /dev/sda10 /tmp /dev/sda11 swap /dev/fd0/mnt/floppy ext2 /dev/hdc /mnt/cdrom 25 de Mayo 445 Piso 2 (1002) Bs. su formato. se unen a la raiz del sistema de la misma manera. unidas todas ellas en el punto de montaje raiz (/).4 .Montaje y desmontaje de sistemas de archivos Instroduccion En este capítulo se verá como montar y desmontar sistemas de ficheros para poder trabajar con ellos de forma normal.com.users 0 iso966 noauto. En principio estos directorios destinados a los dispositivos están vacíos.users 0 PN 1 2 2 2 0 0 0 Tel 4313–2484 /2486/2475 opensource@osi-sistemas. En el siguiente ejemplo de /etc/fstab se puede ver que se trata de un fichero de texto con 6 campos en cada linea: Device Mount point F.ar . etc. Administrando la tabla de filesystems Para que las diferentes particiones estén disponibles desde un primer momento es necesario montarlas durante el inicio del sistema.

com.As. se separan por comas. iso9660 (CD-ROMS) etc etc Mount options: Se explican más adelante.ar . Luego se tiene la /dev/fd0 para diskettes y la /dev/hdc para el CD-ROM Se pueden añadir/modificar estas entradas en cada caso y según las necesidades de cada uno. Este campo no puede contenter el dispositivo entero (/dev/hda) Mount point: Aquí se introduce el directorio donde se quiere que el dispositivo sea montado. La tercera opción es independiente del fichero /etc/fstab y monta el filesystem (device) en el directorio (directorio) El comando mount admite dos tipos de opciones. Sintaxis mount [opciones] device mount [opciones] directorio mount [opciones] device directorio Descripción: Se usa para montar (y así poder usar) filesystems dentro de la estructura del árbol del sistema. Por ejemplo si la partición /dev/hda1 tiene el filesystem root. la quinta contiene las imágenes del kernel para el arranque. swap. la partición 10 es la temporal. donde está el sistema se montará en / Filesystem type: En este campo se indica que tipo de partición se trata. la 9 para el directorio de los usuarios. y otros para especificar opciones del sistema de ficheros. los filesystems que no contienen un 0 en el pass number son chequeados y luego montados. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Montando filesystems Los filesystems son montados con el comando mount. Normalmente tiene el valor 1 para filesystems basados en ext2 y 0 para los demás. Las opciones de este fichero son importantes de cara al examen. Tiene valores: − 0 . por ejemplo /dev/hda1.Hace el chequeo de la unidad.Debe ponerse para el filesystem root (/) y ordena al fsck a chequearlo primero − 2 . la particion 11 para el sistema de swap. La primera y segunda entrada consultan al fichero /etc/fstab para montar los dispositivos y así tomar las opciones que se le especifiquen en el /etc/fstab. unos para el comando en si. 25 de Mayo 445 Piso 2 (1002) Bs. Dump frecuency: El programa dump (para hacer backups) consulta la entra del /etc/fstab para ver cada cuanto tiempo debe hacer el backup. después del chequeo de los marcados con un 1 En el ejemplo se tiene un disco duro SCSI (dev/sda) La primera partición /dev/sda1 tiene el directorio root (/).No chequear el sistema − 1 . normalmente en tiempo de arranque. Pass number para el fsck: Este campo es usado por la utilidad fsck cuando la opción -A se especifica. Después del arranque se pueden añadir más sistemas de ficheros manualmente con el comando mount. Durante el arranque. reiserfs. ext2.Device: Este campo especifica la partición del filesystem.

.Opciones del comando mount Opción Función -a -h -o -r -t fstype -v -w Monta todos los fileystems especificados en el /etc/fstab menos los que tengan la opción noauto Ayuda del comando mount Especifica las opciones del mount en la linea de comandos Monta filesystems en modo de solo lectura Especifica un tipo de fileystem Salida interactiva Monta fileystems de lectura/escritura Opciones del mount Estas opciones se especifican en el fichero /etc/fstab o bien en la linea de comandos con la opción -o. algunas de las opciones son: Tabla 3-2 Opciones del mount sobre el sistema de ficheros Opción Función async auto defaults dev exec noauto noexec Toda la E/S al sistema de ficheros debería hacerse asíncronamente. la opción -a no hará que el sistema de ficheros se monte) No permitir la ejecución de ningún binario en el sistema de ficheros montado.ar nosuid nouser ro rw suid sync user users 25 de Mayo 445 Piso 2 (1002) Bs. auto. Permitir a un usuario ordinario montar el sistema de ficheros Permite a cualquier usuario el montaje/desmontaje de el sistema de ficheros Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Esta opción puede ser útil para un servidor que tiene sistemas de ficheros que contienen binarios para otras arquitecturas distintas de la suya. dev. nouser y async. distinto de root) montar el sistema de ficheros. exec.As. Montar el sistema de ficheros de lectura y escritura Permitir el efecto de los bits SUID y SGID Toda la E/S al sistema de ficheros debería hacerse síncronamente. Estas opciones modifican el modo de montaje del comando mount.com. Puede montarse con la opción -a Establece las opciones: rw. suid. Es la opcion por defecto en sistemas ext2 Interpretar dispositivos especiales de caracteres o bloques en el sistema de ficheros Permitir la ejecución de binarios Sólo puede montarse explícitamente (esto es. Esto es lo predeterminado Montar el sistema de ficheros en modo de sólo lectura. No permitir el efecto de los bits SUID ni SGID Prohibir a un usuario ordinario (esto es.

sería el caso del comando: $ mount -t iso9660 /dev/hdc /cdrom Ejemplo 3: Montar un diskette (/dev/fd0) con sistema MS-DOS en el directorio /floppy $ mount -t msdos /dev/fd0 /floppy Ejemplo 4: Si da el caso de que la partición /home y /swap fueron desactivadas por algún motivo se podrían volver a montar con la opción -a $ mount -av De este modo montamos los filesystems que no lo estén y nos muestra la acción del comando conforme se va ejecutando (opción -v) Desmontando filesystems Los filesystems pueden ser desmontados usando el comando umount. Tabla 3-3 Opciones del comando umount 25 de Mayo 445 Piso 2 (1002) Bs.com. se mostrará un aviso de que el CD-ROM está protegido contra escritura y se montará como sólo lectura. los contenidos del árbol principal se actualizan. Esto puede ocurrir por ejemplo cuando tenemos abierto un fichero de un CD-ROM o un proceso está haciendo uso del mismo. Cuando un filesystem es desmontado.ar .Ejemplo 1: Para mostrar los filesystems actualmente montados en el sistema $ mount Ejemplo 2: Montar un CD-ROM situado en /dev/hdc en el directorio existente /cdrom de sólo lectura: $ mount -rt iso9660 /dev/hdc /cdrom Si se monta sin la opción -r. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. corrupción de los mismos etc etc Sintaxis: umount [opciones] device umount [opciones] directorios Descripción: Desmonta un filesystem de un dispositivo o un directorio. Otros errores pueden surgir si quitamos dispositivos removibles sin antes desmontarlos: perdida de datos. no pudiendose usar (el umount) si el sistema de ficheros que se quiere desmontar está en uso. Si el sistema de ficheros está en uso el comando umount dará un error.As.

25 de Mayo 445 Piso 2 (1002) Bs. Linux puede manejar varios representándolos en un módelo de sistema de archivos propio del kernel (virtual file system). Desmonta sólo los filesystems del tipo especificado -t fstype Ejemplo 1: Desmontar el cdrom (/dev/hdc) montado en /cdrom $ umount /cdrom o bien $ umount /dev/hdc Ejemplo 2: Desmontar todos los sistemas de ficheros NFS: $ umount -at nfs • 6. Por este diseño pueden montarse y desmontarse diversos sistemas de archivos sobre el mismo arbol de directorios. Este fichero está mantenido por los comando mount y umount en tiempo real.g el directorio /proc.Opción -a Uso Desmonta todos los filesystems descritos en /etc/mtab.As.1 . Cada entrada del árbol de directorios es de uno de los siguientes tipos: regular Se trata de infomación que está almacenada fisicamente en algún dipositivo montado. El sistema de archivos del kernel se organiza a partir del árbol de directorios. en este árbol se encuentran nombres de archivos y directorios. pero al montarlos el kernel suple la carencia con valores por defecto [82].com. cada proceso puede tener su propio directorio raíz (chroot) y puede haber directorios y archivos que no corresponden a información almacenada en dispositivo alguno e.Comandos para administración de archivos Aunque cada tipo de sistema de archivos tiene características propias. es decir programas o datos. Por ejemplo los tipos vfat y msdos no permiten manejar permisos ni propietarios.ar . se usa normalmente cuando se apaga/reinicia el PC. Junto con cada nombre hay un número que identifica de forma única la información y que permite ubicarla en algún dispositivo de almacenamiento ---estos números pueden examinarse con ls -i. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Administración de archivos • 6.

g tarjeta de video. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.g una línea serial. disco duro). Por ejemplo allí se documenta que el dispositivo de caracteres con número mayor 4 es un dispositivo tty (por ejemplo una de las consolas virtuales). 25 de Mayo 445 Piso 2 (1002) Bs.As. rm -f. para crear una entrada en el directorio de trabajo que se refiera a la primera consola virtual con el nombre cons1: mknod cons1 c 4 1 Dispositivo por bloques Representa un dispositivo al que se le pueden enviar bloques de información (e. Para crearlo se usa mknod de la forma como se presentó para dispositivos de caracteres pero con b después del nombre en lugar de c.ar . Pipes y sockets No es información almacenada en dispositivo alguno. Se manejan con mkdir. Directorio Subdirectorio.com.txt o en Internet la documentación más reciente (que corresponde al kernel más nuevo) en: http://www. una terminal). representa un dispositivo físico que se controla enviando de a un caracter (e. Cada proceso tiene un directorio de trabajo que puede administrarse con pwd y cd. entre sus ventajas están: si se borra el archivo enlazado el enlace simbólico ya no funciona. pueden hacerse enlaces simbólicos a directorios (no pueden hacerse enlaces duros a directorios). Algunos números de dispositivos se presenta en el siguiente capítulo.h y están documentados en Documentation/devices.org/pub/linux/docs/devicelist/devices. La desventaja de los enlaces suaves es que hacen el acceso a la información un poco más ineficiente que los enlaces duros. Desde el intérprete de comandos pueden crearse pipes con mkfifo o con mknod seguido del nombre del pipe y la letra 'p'. son canales de comunicación entre programas.kernel. num_mayor y num_menor son números que en Linux identifican de forma única el dispositivo [83]. Dispositivo por caracteres No es información almacenada en dispositivo alguno. Se crean con mknod [-m modo] nombre num_mayor num_menor Donde el modo puede especificarse con números o letras al igual que con chmod (ver Lectura Archivos y permisos). la lista completa está en las fuentes del kernel en include/linux/major. un modem. el número menor indica de que consola virtual se trata (si es un entero entre 1 y 63).Enlace simbólico Vinculo al nombre de otro archivo en el arbol de directorios (este es un enlace suave. Se crean con el programa ln y la opción -s. a diferencia de un enlace duro que referencia el nodo-i).txt.

ar . Este programa puede ser usado por cualquier usuario para cambiar el grupo de sus archivos a otro grupo al que el mismo usuario pertenezca.Además de los permisos presentados en la sección para usuarios (ver Archivos y permisos) en Linux pueden especificarse los siguientes:  setuid bit: empleado con archivos ejecutables cambia la identificación del usuario por la del dueño del archivo.  Ejecución condicionada: se establece con X en el caso de directorios es equivalente a x. en el caso de archivos también es equivalente a x sólo si el archivo al que se modifica el permiso ya tenía permiso de ejecución para algún usuario. debe cambiarse la identificación por la del dueño de ese programa. con un directorio evita que un usuario que no sea el dueño del directorio pero que tenga permiso de escritura. Con chmod se modifica empleando u y s. Por ejemplo chgrp profesores notas* quiz* cambiará todos los archivos con prefijos "notas" y "quiz" al grupo profesores. Se establece con g y s.com.  setgid bit: tambíen empleado con archivos ejecutables. chown usuario[:grupo] archivos 25 de Mayo 445 Piso 2 (1002) Bs. El administrador puede cambiar los permisos de todos los archivos del sistema y puede fijar una política inicial para la mascara de permisos que todos los usuarios tendrán. Este permiso puede ser útil para que usuarios normales ejecuten programas que requieren ser ejecutados por root y por lo mismo debe usarse con precaución. Además de chmod [85] se emplean los siguientes programas para realizar estas labores: chgrp grupo archivos Cambia el grupo de el o los archivos especificados. Cómo opción puede recibir -R para aplicar el cambio recursivamente en un directorio (es decir a subdirectorios también). indica que cuando se ejecute el programa debe cambiarse al grupo del archivo. pueda borrar o renombrar archivos que no le pertenecen. por ejemplo: chmod u+s cvs indica que cuando el programa cvs se ejecute. no tiene efecto sobre archivos [84].  sticky bit: se establece con t.As. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Es útil por ejemplo: chmod a+X * que da permiso de ejecución a todos los usuarios a los archivos ejecutables y a los directorios.

Los permisos de un archivo recién creado se establecen de acuerdo al programa que lo crea y a la máscara. Al igual que chgrp con la opción -R efectua el cambio recursivamente en subdirectorios. umask Este es un comando del intérprete de comandos [86] . En bash pueden especificarse los permisos como con chmod por ejemplo: umask u=rw.ar . 25 de Mayo 445 Piso 2 (1002) Bs. grupo y usuarios. todos quedarán con el grupo administra.g=. para establecer permisos por defecto en archivos nuevos.com. este comportamiento hace que umask sea una buena alternativa.o= hará que por defecto grupo y otros usuarios no tengan permiso de lectura ni escritura. También puede usarse para cambiar el grupo de un archivo (si no se especifica el nombre del usuario). sólo el propietario del archivo los tiene [87] . Puede esperar que los programas no restrinjan seguridad y creen nuevos archivos y directorios con permisos de lectura y escritura para propietario.As.Cambia el usuario (y opcionalmente el grupo) de los archivos especificados. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Por ejemplo chown -R pablo:administra nomina/ Pondrá al usuario pablo como dueño de todos los archivos y subdirectorios del directorio nomina.

getty. ps).2 . algunos de los directorios son: /boot Mantiene el kernel e información indispensable para el arranque del sistema. cat. /sbin Mantiene programas disponibles sólo para el administrador incluso en los modos de ejecución más restringidos (e.ar . ls.Jerarquía del sistema de archivos Para leer o escribir en un medio de almacenamiento es necesario montarlo antes en la jerarquía de directorios. halt). Aunque antes de poderlo montar ya debe estar formateado a bajo nivel y debe contar con un sistema de archivos. dict Diccionarios --usados por ejemplo por ispell y look. al dotarlo de un sistema de archivos se prepara para que el sistema operativo pueda organizar.g. 25 de Mayo 445 Piso 2 (1002) Bs. Formatear un medio de almacenamiento significa prepararlo para que el hardware pueda leerlo y escribirlo. /usr Programas accequibles a usuarios finales y datos de estos programas que no requieren ser modificados (datos de sólo lectura).g fsck. Algunos de sus subdirectorios son: bin. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. /bin Mantiene unos pocos programas que estarán disponibles incluso en los modos de ejecución más restringidos (e. leer y escribir datos. sbin Herramientas para el administrador.• 6.As. bash. Ubicación de archivos y directorios Los directorios y archivos de un sistema Debian tiene una estructura estándar.com. games Programas disponibles para todos los usuarios. login.

25 de Mayo 445 Piso 2 (1002) Bs. /etc Archivos de configuración de diversos programas.com. src Encabezados de algunos componentes del sistema y fuentes de algunos programas. /usr/share/info y /usr/share/man.ar . man Enlaces o complementos a la documentación disponible en /usr/share/doc. lib Librerías de funciones comunes a varios programas (algunas como libc indispensables para todos). zoneinfo que mantiene información sobre zonas horarias. /mnt Directorios para montar disquettes. /cdrom. include. doc.e no provienen de paquetes Debian. local Otros programas y datos compilados por el administrador i. /proc Diversos canales de comunicación con algunos programas (por ejemplo con el kernel). En algunos sistemas otros programas se ubican en /opt.As. locale. /lib Librerías indispensables y módulos (especialmente requeridas durante el arranque del sistema). info. CD-ROMs y otros sistemas de archivos o dispositivos. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. man y info que contienen documentación.share Datos de diversos programas. i18n que mantiene información sobre internacionalización (locale). X11R6 Programas y datos de X-Window. /floppy. entre sus subdirectorios están: doc.

es creado por el sistema para intercambiar información con más facilidad. Para establecerlo se emplea el programa chroot. /var En este directorio los programas que lo requieran pueden mantener archivos que deban modificarse frecuentemente.com. por eso pueden tenerse directorios como /proc y pueden montarse diversos sistemas de archivos sobre la misma jerarquía como se presenta en la siguiente sección. Algunos de sus subdirectorios son: mail donde se mantienen colas de correo de cada usuario. log que mantiene bitácoras./dev Abstracciones a los dispositivos conectados (o que podrían conectarse) al computador. spool colas de impresión y de otros programas. 25 de Mayo 445 Piso 2 (1002) Bs.As. El rigor de esta jerarquía hace que memorizandola sea fácil emplear diversos sistemas Unix. aunque puede no ser la más apropiada en algunas circunstancias. /root Mantiene información del administrador del sistema.ar . tmp archivos temporales (más persistente que /tmp). /proc Este directorio es "virtual". no está presente en el disco. La ruta del programa se especifica con respecto al nuevo directorio raíz y para que el programa pueda ejecutarse. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. run con archivos que mantienen los números de los procesos iniciados al arrancar el sistema. que serán borrados por el sistema operativo durante el arranque. Para simular jerarquías diferentes cada proceso iniciado por el usuario root puede tener un directorio raíz diferente al directorio raíz real del sistema. que recibe como primer parámetro el nuevo directorio raíz y como segundo parámetro el programa por ejecutar. sino sólo en memoria RAM. /home Mantiene información de los usuarios del sistema. Esta jerarquía de directorios en Linux no necesariamente está en un disco. /tmp Archivos temporales creados por algunos programas. deben ubicarse las ibrerías que este requiera en la "nueva" jerarquía (por ejemplo en el nuevo directorio /lib).

dejadme un comentario y lo incluyo en el texto.k. es decir. Además si conoceis otros modificadores o trucos interesantes. Sin embargo. que contiene la palabra “factura”. Cada comando de linux es un programa con multitud de opciones. aunque tus necesidades y las mias seguro que son distintas y quizá encuentres otros modificadores de mayor utilidad en el man que en mi texto. pero yo voy a intentar sintetizarla y ofreceros las opciones y comandos que a mi me resultan más útiles.M o G. y la versatilidad que ofrece al usuario es casi ilimitada. que pertenece al usuario “contable1″. Para centrarnos en la búsqueda de ficheros en Debian vamos a comenzar por el comando find. Por ejemplo si queremos buscar cualquier archivo que empiece por “syslog” en todo el árbol de directorios lo procesaríamos de la siguiente manera: find / -name syslog* *nota: si no ejecutas este comando como root. que tiene entre 1 y 2 Megabytes y que ha sido accedido entre la 12:30 pm y la 13:30 pm del 12 de Octubre es mucho más fácil en linux que en windows. Cuando llevas un tiempo trabajando con linux esta herramienta se hace indispensable y se convierte en tu verdadera fuente de referencia y aprendizaje.• 6. Encontrar un fichero que ha sido modificado entre el 7 y el 9 de octubre. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. pero linux posee un excelente interfaz de ayuda: el man. Veamos un ejemplo: find /var/log/ -size +1M -size -20M buscará todos los archivos dentro de /var/log/ que tengan entre 1 y 20 Megabytes.com. 25 de Mayo 445 Piso 2 (1002) Bs.ar . Es uno de los comandos más utilizados. Es cierto que quizá esa versatilidad sacrifica una cierta claridad en el uso de estas herramientas. y esa información está en el man. simplemente anteponiendo la palabra man al comando de referencia. etc. recibirás un mensaje de error cada vez que find intente acceder a un directorio para el que no tengas permiso. modificadores. Toda la información que ofrezco aquí está en el man. decimos que es más dificil.As. sólo hay que saber “que tornillo apretar”. Megabytes o Gigabytes respectivamente (hay más opciones). lo humanos tendemos a intentar simplificar para no volvernos locos y cuando algo no se parece a lo que estamos acostumbrados a utilizar. Man nos permite obtener información inmediata sobre cada comando. acciones.Localización de archivos En ocasiones se oye decir que linux es un sistema operativo más complicado de utilizar que Windows… Bueno. no estamos siendo objetivos. El comando find: Este comando nos permite buscar archivos indicando un punto de inicio de la búsqueda (path) y una expresión a buscar. kilobytes.3 . purgarlos: find / -name syslog* 2>/dev/null Algunos otros modificadores útiles de find son: -size +/-n[bkMG] donde n es el número de unidades de espacio que serán especificadas por b. es decir. En este caso es recomendable dirigir los errores al dispositivo null. bytes.

Para buscar a partir del directorio actual usaremos por ejemplo: find . las más comunes: d (directorios) . También podemos especificar determinados tipos y así ignorar otros que no nos interesan. Con -perm podemos encontrar archivos que tengan unos permisos determinados. es decir: -atime n y -amin n Por ejemplo 25 de Mayo 445 Piso 2 (1002) Bs. f (archivos normales) o l (links simbólicos). -name nombrearchivo el punto después de find indica que queremos buscar a partir de la ruta en la que nos encontramos. -mmin n Encontrará los ficheros que hayan sido modificados hace n minutos. Ignora las fracciones así que su uso no es tan evidente como el de -mmin.ar . si quisieramos descender un nivel más en la estructura de directorios -maxdepth 2 y así sucesivamente. consultad el man find.Aquí podemos usar otras opciones. find $HOME -name nombrearchivo Find busca de forma recursiva por defecto. Si queremos limitar la búsqueda al nivel de direcorio actual podemos usar el modificador -maxdepth 1. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Si lo combinamos con -user podemos localizar archivos que puedan ser modificados por un usuario determinado: find /var/log/ -perm /222 -user usuario1 Si el resultado es muy amplio lo podemos redireccionar a un archivo para su análisis y añadir el modificador -ls. imaginemos que sólo necestamos buscar directorios: find / -name log* -type d En type podemos especificar varias opciones. como por ejemplo $HOME que corresponde a la ruta del directorio del usuario actual. Incluyo algunos ejemplos de uso más abajo. incluso utilizar variables del sistema. bastante útil para securizar nuestro linux.com. que nos listará ademas información ampliada sobre cada archivo: find /var/log/ -perm /222 -user usuario1 -ls >> datos. Para ver los accesos sólo tenemos que cambiar la primera m por una a . Si indicamos -mtime +1 buscará archivos modificados hace al menos 48 horas.As. sino queda muy claro.txt Otro modificador muy útil es el modificador por tiempo de acceso o modificación: -mtime n Encontrará los ficheros que hayan sido modificados hace n*24 horas.

9_javabin. si ya tuviesemos un archivo llamado tabla. -mtime 1 encontrará archivos que han sido modificados entre las últimas 24 y 48 horas.find / -mmin 1 encontrará todos los archivos que han sido modificados en el último minuto. find . Después hago un salto de línea /n. -maxdepth 1 -name ‘[!. find . -mtime +1 encontrará archivos que han sido modificados hace más de 48 horas. grupo y usuario propietario del archivo. %g y %u respectivamentey por último pongo dos saltos de línea.]*’ le pido que busque a partir del directorio actual pero sin buscar dentro de subdirectorios todos los archivos que no estén precedidos por un punto. Hago lo propio para el tamaño. -atime 0 encontrará archivos que han sido accedidos en las últimas 24 horas. (en linux el punto inicial indica que estos archivos son ocultos). -mtime +2 -mtime -5 encontrará archivos que han sido modificados hace más de 48 horas y menos de 5 dias. utilizando las variables %s. Muy útil cuando queremos saber donde hemos dejado ese archivo que estábamos modificando hace un rato y que ahora no encontramos o qué archivos ha modificado alguna herramienta que hemos utilizado. por ejemplo para redirigirlo a un archivo.2.com.Veamos el siguiente ejemplo: find .ar .zip 127646 -rw-r–r– root Esto es muy interesante ya que podría dirigir toda esta información a un archivo html automáticamente en el servidor web por ejemplo. Con la opción printf podemos dar formato al resultado que obtenemos. Con -printf comienzo a formatear el resultado.]*’ -printf ‘ Nombre: %f\n Tamaño: %s bytes\n Permisos: %M\n Grupo: %g \n Usuario: %u\n\n’ Analizamos el comando: con find . Primero escribo “Nombre” y imprimo el nombre del fichero. -maxdepth 1 ‘[!. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. El operador ! es la negación de lo que viene a continuación. La cosa quedaría tal que así: Nombre: Tamaño: Permisos: Grupo: Usuario: carranz Nombre: Tamaño: Permisos: Grupo: Usuario: carranz Nombre: Tamaño: Permisos: Grupo: Usuario: root Desktop 4096 drwxr-xr-x root mkchroot. permisos. esto lo hacemos con la variable %f.As. find . podríamos rellenar la tabla así: 25 de Mayo 445 Piso 2 (1002) Bs. %M.html que contuviese las cabeceras html y una tabla con los nombres de los campos. find .sh 4542 -rwxr–r– root tightvnc-1.

25 de Mayo 445 Piso 2 (1002) Bs. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.html Después sólo nos quedaría enviar un echo con el cierre de la tabla. Por medio de este comando podemos filtrar la salida de find y ejecutar sobre aquellos archivos encontrados por find algúnprograma como grep.html *nota recoduerda que al redirigir con >> añado al un fichero las líneas que quiero. sino un ejemplo de la utilización de find con -printf. Sin embargo podemos querer encontrar archivos que se llamen prueba O que hayan sido modificados en las últimas 24 horas. para ello empleamos -o: find . no lo sobreescribo. Ya hemos visto que find concatena modificadores por defecto. ¿Útil verdad? Otra poderosa arma es el operador -o.tar Con esto comprimo en logs_backup_diario los archivos syslog que han sido modificados en las últimas 24 horas. el body y el html: echo “</table></body></html>” >> /var/www/tabla. Si lo redirigiese con una sola >. aunque lo detallaré más adelante en futuros artículos. Una de las fomras más útiles de combinar find con xargs: Necesito encontrar un texto dentro de varios archivos.As.]*’ -printf ‘<tr><td> %f</td><td> %s</td><td>%M</td><td> %g</td><td>%u</td></tr>’>>/var/www/tabla. consultad el man find para conocer otras muchas posibilidades. lo sobrescribiría. Por supuesto que hay otras maneras de hacer esto pero no busco el fin. Otra comando para buscar ficheros es locate.ar . Esto nos dejaría el listado de un determinado directorio convertido en html en nuestro servidor web que podríamos consultar o integrar con alguna aplicación web. -maxdepth 1 -name ‘[!.find . tar o gzip. Otro elemento potentísimo es la utilización de pipes con xargs. si ponemos -mtime 0 -name prueba nos buscará archivos que se llamen prueba Y que haya sido modificados en las últimas 24 horas. -name prueba -o -mtime 0 En definitiva find es un comando muy potente que merece ser estudiado detenidamente.com. primero necesito encontrar estos archivos y depués encontrar un texto dentro: find /var/log/ -name syslog* -type f -mtime 0 | xargs grep failed Con esto primero encuentro todos los archivos syslog y después encuentro todas las líneas de estos archivos que contienen la palabra “failed”. Útil en este último caso para hacer backups por ejemplo de logs: find /var/log/ -name syslog* -type f -mtime 0 | xargs tar -rf logs_backup_diario.

285:The Mariner hath his will. Una clase define un grupo de caracteres.txt -n 520:The Sun's rim dips. 364:"God save thee. whose eye is bright. "MARINER" y "mariner". antes) • -f archivo se ejecuta sobre ese archivo • -i no diferencia entre mayúsculas o minúsculas Usemos grep entonces. ancient Mariner! 556:"I fear thee. ancient Mariner!" 829:When the Mariner's trance is abated. Sus posibles opciones son muchísimas. después) y -B número (Before. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Si hubiésemos usado la opción -i la lista sería más larga.As. veamos algo más sobre expresiones regulares. Ahondando un poco en el uso de grep. se buscan todos los carácteres salvo esos. en este caso los alfanuméricos. e incluso "mariners". Hay abreviaturas como [:alnum:]. llamada clase. 25 de Mayo 445 Piso 2 (1002) Bs. el resultado no habría sido el buscado. si no hubiésemos usado las comillas dobles alrededor de "Sun's".txt. Básicamente. Estas bestias son herramientas poderosísimas para usar grep (y también en edición avanzada de textos). con dobles corchetes.grep Este comando busca texto que coincida con el patrón pedido. 290:The bright-eyed Mariner. que busca cualquier carácter alfanumérico. y les agrega el número de línea. Esto es una característica de las expresiones regulares. Variantes: -A número (After. por ejemplo. 1067:The Mariner. una expresión regular es un patrón de búsqueda más o menos complejo. Si quisiéramos encontrar una palabra exacta. usaríamos la opción -w: [rogelio@Edhellond rogelio]$ grep -w "Sun's" docs/rime10. Por ejemplo: grep [1-9] usa una expresión regular. El comando sería grep [[:alnum:]].txt 1:The Project Gutenberg Etext of The Rime of the Ancient Mariner 20:The Rime of the Ancient Mariner 29:**The Rime of the Ancient Mariner by Samuel Taylor Coleridge** 267:It is an ancient Mariner. Si agrego un '^' al principio de la expresión. pero las esenciales puede que sean éstas que veremos: • -número muestra número líneas de texto antes y después de las coincidencias. ancient Mariner! 709:"I fear thee. (encontraría. 315:The bright-eyed Mariner. the stars rush out: [rogelio@Edhellond rogelio]$ Note que. que en este caso busca cualquier número entre 1 y 9. Para empezar. un ejemplo fácil: [rogelio@Edhellond rogelio]$ grep -n -e Mariner docs/rime10.com. [rogelio@Edhellond rogelio]$ busca todas las líneas que contengan la cadena de texto "Mariner" en el archivo rime10.ar .

1 billion Etexts away when the 66:Files by the December 31. es posible hacer muchas cosas que en principio a uno no se le ocurren.c.com). info comando o man comando le darán la ayuda que está buscando.As.000 x 100. El uso depende entonces de lo que quiera y sepa hacer. grep es para buscar cadenas de texto en archivos o en la consola (puede hacerse un grep de lo que un comando devuelve como resultados. usando las opciones -l y -r: grep -l 'main' *. IL 61825 101:or cd etext93 [for new books] [now also in cd etext/etext93] 131:sending a request within 30 days of receiving it to the person 195:or addition to the etext.000=Trillion] 82:Champaign. Por ejemplo. o verla más cómodamente (el desplazamiento por la pantalla de terminal no es eterno). grep -r 'hola' /home busca recursivamente (bajando por los subdirectorios) desde /home. Para estos usos conviene en realidad usar una combinación de grep y find.93*END* [rogelio@Edhellond rogelio]$ grep también puede usarse para buscar archivos. La segunda opción es combinar un comando antes de find: 25 de Mayo 445 Piso 2 (1002) Bs. Un último truco: info ``Finding Files'' (note el uso de acentos graves al principio de la cadena y apóstrofes al final). la cadena hola.ar .com.29. [10. 234:[3] Pay a trademark license fee to the Project of 20% of the 239: Benedictine College" within the 60 days following each 251:Internet (72600.[rogelio@Edhellond rogelio]$ grep [3-6] docs/rime10. 1994 [Etext #151] 36:people.04.000. or [3] any Defect.txt -n 23:July. como un directorio en Linux también es técnicamente un archivo. podría hacerse grep del resultado del comando ls.2026@compuserve. De todos modos. Ahora. Tenemos dos opciones: una es correr find archivo buscado > archivo lo que guarda en el archivo el resultado de la búsqueda. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Combinación de comandos Supongamos que queremos archivar una búsqueda. Cuándo usar uno u otro Normalmente. TEL: (212-254-5093) 252:*END*THE SMALL PRINT! FOR PUBLIC DOMAIN ETEXTS*Ver. 2001. on about 250 million computers currently in existence: 37:then we will have given about 15.c busca todos los archivos que contengan la cadena main y terminen en . find se usa para encontrar nombres de archivo buscando en los directorios.

Además los bit de permisos aparecen todos encendidos dado que no son usados. [shrek@pantano:~]$ [shrek@pantano:~]$ total 2 14438 -r-------14446 lrwxrwxrwx [shrek@pantano:~]$ ln -s hola saludos ls -il 1 shrek 1 shrek user user 64 Apr 29 14:04 hola 4 May 7 08:33 saludos -> hola Como se ve. Los enlaces simbólicos son ampliamente usados para las librerías compartidas. Si en lugar de éste usamos vi o algún otro editor de texto.h' | xargs grep -l mode_t` es una combinación algo extensa: hace que combinemos (con el comando xargs) los comandos grep (de búsqueda de cadenas en archivos) con find (de búsqueda de archivos). se hace necesario que un mismo archivo que va a ser modificado por varias personas pueda estar representado por un nombre distinto con distintos permisos cada uno. Otra particularidad es que se pueden crear enlaces simbólicos de archivos que no existen. Si nos fijamos bien.com. estos enlaces solo dan otro nombre a un archivo pero no hacen un enlace al nivel de inodo. Existen dos tipos de enlaces: los duros y los simbólicos. 25 de Mayo 445 Piso 2 (1002) Bs. Recordemos que los archivos se representan por el número de inodo en el disco y es el único identificador que el sistema tiene del archivo. • 6. Esto nos indica que es un enlace simbólico. Existen diferencias entre este tipo de enlaces y los duros como que ya no están apuntando al mismo inodo. que los presenta en pantalla. Si se quiere ver el inodo que representa un archivo basta solo con agregar el modificador -i al comando ls. no así con los duros. Se puede hacer una comparación con los "Accesos directos" de Windows95. Enlaces simbólicos o symbolic links A diferencia con los enlaces duros.ar . Dada la representación que GNU/Linux le da a los archivos es posible que dos o más nombres apunten al mismo contenido en el disco rígido. en la primera posición de los permisos veremos una letra l. Con los enlaces simbólicos se puede saber a que archivo están apuntando. Los permisos que se utilizan son los del archivo al que se esta apuntando. La orden ln -s genera un enlace simbólico.Enlaces Enlaces de archivos En ocasiones es necesario dar a un mismo archivo distintos nombres o.less `find /usr/include -name '*. luego pasamos el resultado al comando less.4 . para mantener la integridad de los datos. el enlace nos muestra a que archivo esta apuntando. podremos editar la búsqueda inmediatamente para darle el formato que deseemos. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. pero lo mismo no es cierto para los enlaces duros.As.

2 shrek 14438 -r-------.Permisos. Cada usuario pertenece por lo menos a un grupo. 14438. (un enlace apuntando a su directorio padre). Aunque parezca que el contenido se a duplicado. . También que cada directorio tiene dos enlaces duros en él: . siempre apunta a /.ar 25 de Mayo 445 Piso 2 (1002) Bs. De esta forma también podemos decir que un directorio no es más que un archivo que contiene información sobre la translación enlace a inodo.Enlaces duros o hard links Para crear enlaces entre los archivos se utiliza el comando ln. Lo único que se tendría que hacer es agregar a los usuarios que se quieran dar permisos a ese grupo. es el número del inodo donde comienza el contenido del archivo hola.com. Ambos archivos apuntan al mismo sitio.. usuarios y grupos Permisos de archivos. El administrador del sistema puede agregar al usuario a otros grupos. Estos son • • • El dueño de archivo El grupo del archivo Los bits de modo o también llamados permisos de archivo Tel 4313–2484 /2486/2475 opensource@osi-sistemas. esto no es así. Entre los datos que se guardan en esta tabla se encuentran la fecha de creación del archivo. tema que abarcaremos en mayor detalle más adelante. Para cada objeto (archivo) que se encuentre en el sistema. (un enlace apuntando a si mismo) y . Para dar un ejemplo. Esto puede verse dado que el primer número del listado. que es establecido en el momento en que el usuario se crea. En el directorio raíz / el enlace . modificación del archivo y la fecha en que se cambio el inodo.. • 6. si se quisiera hacer un enlace del archivo hola el comando es [shrek@pantano:~]$ ln hola saludo Si ahora hacemos un listado mostrando los inodos [shrek@pantano:~]$ ls -il total 2 14438 -r-------. sus dueños y grupos Para entender mejor el concepto de permisos se tendrá que tener en cuenta que cada usuario puede pertenecer a uno o más grupos. Pero además contiene los datos en los que se centra toda la seguridad en Un*x. GNU/Linux guarda información administrativa en la tabla de inodos. Estos grupos son necesarios para poder establecer una política de acceso más organizada dado que en cualquier momento se podría dar a un archivo el acceso a personas de un grupo determinado.2 shrek user user 64 Apr 29 14:04 hola 64 Apr 29 14:04 saludo Como se ve el número de nombres que los archivos tienen ahora es 2 dado que hemos creado otro nombre que es un enlace al contenido que tenía el archivo hola en el disco.5 . Por esto.As. un archivo no se borra hasta que se haya borrado el último de sus nombres.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas. que si existe un archivo creado por un usuario en particular.bashrc a.sh Como se puede apreciar en este listado. 25 de Mayo 445 Piso 2 (1002) Bs. la posibilidad de ver el contenido del mismo. .pl que. por ejemplo. Estos permisos pueden estar fijados para tres clases de usuario: el propietario del archivo. representado por un punto . . Con esto vemos un listado largo de un directorio. Ellos también poseen permisos y atributos que son mostrados. Esto permite. El permiso de lectura permite a un usuario leer el contenido del archivo o en el caso de que el archivo sea un directorio.. para que se puedan proteger los archivos se estableció un mecanismo por el cual se otorgan permisos a un determinado usuario y/o grupo. Se permite que los archivos sean compartidos entre usuarios y grupos de usuarios.. Los permisos están divididos en tres tipos: lectura. En el caso de un directorio permite la crear nuevos archivos en él o borrar archivos existentes. este será propiedad del usuario y también tendrá el grupo del usuario. Para los directorios permite al usuario cambiarse a él con el comando cd.out hello. el grupo al que pertenece el archivo y para todo el resto de los usuarios. Conceptos Al ser Un*x y GNU/Linux sistemas operativos multiusuario. . Por ejemplo si shrek quisiera puede prohibir los accesos a un archivo determinado que le pertenezca a todos los usuarios que no pertenezcan a su grupo de usuarios. también están el directorio actual.bash_profile .En este tramo nos centraremos en primer medida en entender los permisos y en establecer la forma en que pueden trabajar con ellos. [shrek@pantano:~]$ ls -la total 13 drwxr-sr-x 2 shrek user drwxrwsr-x 4 root staff -rw------1 shrek user -rw-r--r-1 shrek user -rw-r--r-1 shrek user -rwxrwxr-x 1 shrek user -rwxrwxr-x 1 shrek user -r-------1 shrek user -rwxrw-r-1 shrek user -rw-rw-r-1 shrek user -rw-rw-r-1 shrek user -rwxrwxr-x 1 shrek user -rwxrwxr-x 1 shrek user 1024 1024 2541 164 55 0 40 64 337 40 0 175 56 May Apr May Apr Apr Apr Apr Apr Apr Apr May Apr Apr 2 17 2 23 23 14 30 29 29 30 2 30 23 09:04 21:08 22:04 14:57 14:44 19:29 12:14 14:04 13:57 12:31 09:04 12:30 15:08 .bash_history .pl hola lista listador null prue.As. si tiene algo para ejecutarse. y el directorio padre representado por dos puntos . El permiso de ejecución permite al usuario ejecutar el archivo. Para ir entendiendo un poco más vamos a explicar que significan los primeros 10 dígitos. escritura y ejecución (rwx). El permiso de escritura permite al usuario modificar y escribir el archivo.ar . Como se interpretan los permisos Para poder interpretar los permisos de archivos nada mejor que utilizar el comando ls -la.com.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas.com. y se muestran a continuación Tipos de permisos 25 de Mayo 445 Piso 2 (1002) Bs. utilizaremos unas tablas. Esto nos indica que es un archivo común.ar .As. Primero veamos aquellos caracteres que podrían aparecer en el primer lugar. La tabla siguiente explica el significado del primer símbolo de acuerdo al tipo de archivo.Tomemos como ejemplo el siguiente archivo -rw-r--r-1 shrek user 337 Apr 29 13:57 lista Para esclarecer un poco mas que significa cada uno de estos caracteres al inicio. que en el ejemplo anterior es un solo guión. Tipos de archivo Contenido d c b l s p Significado Archivo común Directorio Dispositivo de caracteres (tty o impresora) Dispositivo de Bloque (usualmente disco rígido o CD-ROM) Enlace simbólico Socket Pipe Los siguientes 9 símbolos se toman en grupos de tres y cada grupo pertenece a una clase de permisos.

Como ya dijimos. El segundo grupo de tres símbolos representa los permisos para el grupo al cual pertenece el archivo (group). que en este caso tienen permisos de lectura y escritura. El "337" representa el tamaño del archivo expresado en bytes.3.com. A continuación esta el nombre del dueño del archivo y del grupo al cual pertenece el archivo. escritura y ejecución.ar . 25 de Mayo 445 Piso 2 (1002) Bs.7 8. El tercer grupo de tres símbolos representa los permisos para todo el resto de los usuarios (other) en este caso es solo de lectura. el primer símbolo nos esta indicando que el archivo es un archivo común. El número que sigue (1) representa el número de nombres que el archivo posee.As.10 Se aplica a owner group other Significado Establece los permisos para el dueño del archivo Establece los permisos para el grupo del archivo Establece los permisos para los usuarios que no entran en las categorías anteriores De esta forma podremos interpretar el listado generado a partir de ls -la de mejor manera.4 5.Permiso Significado r w x Permiso de lectura Permiso de escritura Permiso de ejecución Grupos de permisos Columnas 2. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Esto indica la cantidad de enlaces que existen a este archivo y lo veremos más adelante cuando tratemos el tema de enlaces simbólicos y duros.9. Lo siguiente es la fecha y hora de modificación del archivo e inmediatamente después esta el nombre del mismo. El primer grupo de tres símbolos representa los permisos para el dueño del archivo (owner) que en este caso posee permisos de lectura.6.

esta es la forma simbólica. Para ejemplificar un cambio de permisos usaremos el archivo lista. grupo y otros pero no se podrá acceder a él si no se cuenta con permisos de lectura y ejecución en el directorio que los contiene. Solo el dueño del archivo puede cambiarlo con él. Esto también esta dado para toda la ruta del archivo. Cambiando permisos El comando chmod se emplea utilizando símbolos como a. Esto funciona en el caso que se quiera restringir el acceso a un directorio determinado y a todos los archivos que este contiene. para el permiso de escritura (w) y para el permiso de ejecución (x).ar . excepción del root que también lo puede hacer. [shrek@pantano:~]$ ls -l lista total 1 -rwxrw-r-1 shrek user [shrek@pantano:~]$ chmod a-r lista [shrek@pantano:~]$ ls -l lista total 1 --wx-w---1 shrek user 337 Apr 29 13:57 lista 337 Apr 29 13:57 lista De esta forma se le ha sacado a todos los grupos y usuarios los permisos de lectura. tanto para el usuario. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Es decir que no solo el último directorio. sino que todos los directorios que lo preceden también. En un ejemplo común podríamos dar el caso de un archivo que posea todos los permisos. Algunos ejemplos más [shrek@pantano:~]$ chmod u+r lista [shrek@pantano:~]$ ls -l lista total 1 -rwx-w---1 shrek user [shrek@pantano:~]$ chmod o+w lista [shrek@pantano:~]$ ls -l lista total 1 -rwx-w-w-1 shrek user [shrek@pantano:~]$ chmod og-w lista [shrek@pantano:~]$ ls -l lista total 1 -rwx-----1 shrek user 337 Apr 29 13:57 lista 337 Apr 29 13:57 lista 337 Apr 29 13:57 lista Ahora bien. Existen símbolos para agregar (+) quitar (-) o dejar invariantes los permisos (=). En lugar de cambiar los permisos uno por uno solo tenemos que sacarle los permisos necesarios para que se prohíba el acceso mismo al directorio y con esto no podrán ingresar para usarlos. tiene que tener los permisos necesarios. al usuario (u). el cual lo contiene. Además tendrán que usarse los símbolos característicos para cada tipo de permiso. Pero existe una forma un poco más sistemática que es la forma 25 de Mayo 445 Piso 2 (1002) Bs.com. Para el permiso de lectura (r).Dependencias Los permisos de los archivos también dependen del directorio donde estén guardados.o que representan a todos (a "all"). al grupo (g) y a todos los demás (o).As.g.u.

Comúnmente nosotros usamos para contar una representación decimal (0.8. El comando chmod permite establecer los permisos de un archivo por medio de un número octal.1.com.4.de representación octal.2.1.4.ar .9) pero en una representación octal solo se usan 8 números (0.6. Se verá al finalizar el tema 25 de Mayo 445 Piso 2 (1002) Bs. Permisos en notación octal Número octal Permiso 4000 2000 1000 0400 0200 0100 0040 0020 0010 0004 0002 0001 Establece el número de identificación de usuario al ejecutarse SUID [a] Establece el número de identificación de grupo al ejecutarse SGID[a] Establece el bit adhesivo[a] Lectura por parte del dueño Escritura por parte del dueño Ejecución por parte del dueño Lectura por parte del grupo Escritura por parte del grupo Ejecución por parte del grupo Lectura por parte de los otros Escritura por parte de los otros Ejecución por parte de los otros Notas: a.3. Para establecer el permiso habrá que sumar los dígitos octales de acuerdo a una tabla que se dará a continuación.5.7. la suma será trivial. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.6.7).5.3.2. Dado que no se realiza acarreo.As.

ventas lista [root@pantano]# ls -l lista 25 de Mayo 445 Piso 2 (1002) Bs. Si quisiéramos cambiar los permisos para que el dueño tenga permisos de lectura y escritura y que el grupo y otros solo tengan permisos de lectura. tomemos un archivo con los permisos expresados en forma simbólica y realicemos la conversión.ar . Para esto se usa el comando chown y su sintaxis es similar a la de chmod pero con la variante que se dan los nombres del usuario y del grupo. se tendría que poner un punto entre el nombre de usuario y el grupo [root@pantano]# ls -l lista total 1 -rw-r--r-1 shrek user 337 Apr 29 13:57 lista [root@pantano]# chown fiona.Para dar un ejemplo de la suma que se tendrá que realizar. Para representar -rwxr-x--+ 0400 Lectura por parte del dueño + 0200 Escritura por parte del dueño + 0100 Ejecución por parte del dueño + 0040 Lectura por parte del grupo + 0010 Ejecución por parte del grupo ----------------------------------------0750 Resultado De esta forma si lo que quisiéramos es cambiar los permisos de un archivo. la sintaxis es [shrek@pantano:~]$ chmod 0644 lista [shrek@pantano:~]$ ls -l lista total 1 -rw-r--r-1 shrek user 337 Apr 29 13:57 lista Con la práctica se sabrán cuales son las sumas mas utilizadas y podrán ver que es mucho más sencillo el establecer de esta forma los permisos de archivos.com. Si quisiéramos cambiar el nombre de usuario del archivo lista tendremos [root@pantano:/home/shrek]# ls -l lista total 1 -rw-r--r-1 shrek user 337 Apr 29 13:57 lista [root@pantano:/home/shrek]# chown fiona lista [root@pantano:/home/shrek]# ls -l lista total 1 -rw-r--r-1 fiona user 337 Apr 29 13:57 lista Si se quisiera cambiar también el nombre del grupo. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. solo se tendría que efectuar la suma necesaria y establecerlo con el comando chmod.As. Cambiando grupos y usuarios Lo que nos queda por ver es el caso en que se quisiera cambiar el usuario o el grupo del archivo.

com.0022 Umask ------------------------------------------------------0644 Modo resultante El modo resultante es que el dueño tiene permisos de lectura y escritura y los demás y el grupo solo de lectura. Normalmente el administrador del sistema aplica una máscara al usuario en el archivo . O si se quiere. En el caso que solo se quiera cambiar el grupo y no el usuario. se podrá poner el nombre de usuario que estaba anteriormente. Una forma de darse cuenta de la forma en que funciona el umask es tener en cuenta que el valor 2 inhabilita el permiso de escritura mientras que el valor 7 inhabilita los permisos de lectura escritura y ejecución. se tendrá que poner un punto delante del nombre del grupo. omitiendo poner el nombre del algún usuario. La función umask esta integrada al intérprete de comandos. En relación con los programas. [root@pantano]# ls -l lista total 1 -rw-r--r-1 shrek user [root@pantano]# chown .ar . sino se producirá un error.total 1 -rw-r--r-- 1 fiona ventas 337 Apr 29 13:57 lista Por supuesto que tanto el usuario como el grupo al que se hacen referencia tendrán que existir en el sistema. Para ejemplificar el proceso tomemos un archivo creado por el usuario. poseen permisos 0666 que dan permiso de lectura y escritura a cualquier usuario.ventas lista [root@pantano]# ls -l lista total 1 -rw-r--r-1 shrek ventas 337 Apr 29 13:57 lista 337 Apr 29 13:57 lista umask Esta es la abreviatura de user file-creation mode mask o máscara del modo de creación de archivos de usuario y es un número octal de cuatro dígitos que se utilizan para fijar los permisos de los archivos recién creados. 0666 Modo predeterminado de creación de archivos . 25 de Mayo 445 Piso 2 (1002) Bs. Esto puede ocasionar confusión pero en realidad es una utilidad que permite el uso del sistema por múltiples usuarios sin que peligre la privacidad. estos se crean con 0777 donde cualquier usuario puede leer. En la mayoría de los Un*x los archivos que son creados por el usuario.0077 Umask ------------------------------------------------------0600 Modo resultante El modo resultante es que el dueño tiene permisos de lectura y escritura y los demás y el grupo no tienen ningún permiso.As.bash_profile y esta es usada para la creación de archivos haciendo una operación simple "AND" bit por bit con el complemento del valor umask bit por bit. A continuación daremos una tabla con los valores comúnmente usados para el umask. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. escribir y ejecutar el programa. 0666 Modo predeterminado de creación de archivos .

com. y puede ser invocado por cualquier usuario para cambiar su propia contraseña. Se trata del bit de permisos SUID (Set User ID). que como se sabe sirve para cambiar la contraseña del usuario.As. Para entender los dos primeros el SUID y el SGID veamos los permisos para un comando de uso común a todos los usuarios. SGID y de persitencia (sticky bit) Aún hay otro tipo de permisos que hay que considerar. que es el comando passwd. si vemos sus permisos observaremos un nuevo tipo de permiso: 25 de Mayo 445 Piso 2 (1002) Bs. el bit de permisos SGID (Set Group ID) y el bit de permisos de persistencia (sticky bit).ar . Tel 4313–2484 /2486/2475 opensource@osi-sistemas.Valores usuales de la variable umask Umask Accesos del usuario 0000 0002 0007 0022 0027 0077 Todos Todos Todos Todos Todos Todos Accesos del grupo Todos Todos Todos Lectura y ejecución Lectura y ejecución Ninguno Accesos de los otros Todos Lectura y ejecución Ninguno Lectura y ejecución Ninguno Ninguno Bits SUID.

los permisos originales en este ejemplo eran 511 (r-x--x--x). Si no se tuviera el sticky bit activado. Es decir. passwd es un comando propiedad de root. es poder invocar un comando propiedad de otro usuario (generalmente de root) como si uno fuera el propietario. entonces el usuario que pertenezca al grupo 'ventas' podrá ejecutarlo. Estableciendo los permisos especiales Para cambiar este tipo de bit se utiliza el mismo comando chmod pero agregando un número octal (1 al 7) extra al principio de los permisos. entonces en estas carpetas públicas. se cambió el bit SUID reemplazando el bit 'x' del usuario por 's'. Es decir cualquier otro usuario va a poder leer el contenido de un archivo o ejecutarlo si fuera un binario. SGID El bit SGID funciona exactamente igual que el anterior solo que aplica al grupo del archivo. no solo por root. ejemplo: #> ls -l /usr/prog -r-x--x--x 24 root root 4096 sep 25 18:14 prog #>chmod 4511 /usr/prog #> ls -l /usr/prog -r-s--x--x 24 root root 4096 sep 25 18:14 prog Nótese que el valor extra es el '4' y los demás permisos se dejan como se quieran los permisos para el archivo. cualquiera podría eliminar o modificar los archivos de cualquier otro usuario. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. 25 de Mayo 445 Piso 2 (1002) Bs.SUID En vez de la 'x' en el grupo del usuario encontramos ahora una 's' (suid). donde al activarlo obliga al archivo ejecutable binario a ejecutarse como si lo hubiera lanzado el usuario propietario y no realmente quien lo lanzó o ejecutó. pero sólo el propietario original podrá eliminarlo o modificarlo. pero sin embargo debe de poder ser ejecutado por otros usuarios. Es decir. También se muestra como una 's' en vez del bit 'x' en los permisos del grupo. Es aqui donde interviene el bit SUID.com. Lo que hace el bit de persistencia en directorios compartidos por varios usuarios. STICKY BIT (Bit de persistencia) Este bit se aplica para directorios como en el caso de /tmp y se indica con una 't': #> ls -ld /tmp drwxrwxrwt 24 root root 4096 sep 25 18:14 /tmp Puede apreciarse la 't' en vez de la 'x' en los permisos de otros.ar . es que el sólo el propietario del archivo pueda eliminarlo del directorio. Es decir si el usuario pertenece al grupo 'ventas' y existe un binario llamado 'reporte' que su grupo es 'ventas' y tiene el bit SGID activado. y al cambiarlos a 4511.As.

Los posibles valores serían los siguientes: ----------------t = 0 Predeterminado. Se recomienda usar la herramienta de compresión bzip2 porque da la mejor compresión de todas y se encuentra en todos los sistemas operativos del tipo UNIX. Siempre considera y reconsidera si conviene que un usuario normal ejecute aplicaciones propias de root a través del cambio de bits SUID o SGID. y a los archivos comprimidos con zip la extensión . cualquier usuario podrá ejecutarlos como si fueran el propietario original de ese programa... Si necesita pasar archivos de Linux a otros sistemas operativos como MS Windows. ya que recuerda que al establecerlos de esta manera. Puede comprimir archivos en Red Hat Linux con las herramientas gzip. Y esto puede tener consecuencias de seguridad severas en tu sistema. La herramienta de compresión gzip también se encuentra en la mayoría de los sistemas tipo UNIX.....t = 5 Bit suid y sticky ..Herramientas de compresión Los archivos comprimidos utilizan menos espacio en el disco y se descargan más rápido que los archivos no comprimidos..As... sticky bit ..s .com.zip Herramienta de descompresión gunzip bunzip2 unzip En general.. bzip2. No se requiere indicar..gz . sgid y sticky MUY IMPORTANTE: Algo sumamente delicado y que se tiene que tomar muy en cuenta es lo que decidas establecer con permisos de bit SUID y SGID.= 4 Bit suid .s . a los archivos comprimidos con gzip se les da la extensión .bz2. o zip....zip.s . • 6. Mejores alternativas pueden ser los comandos sudo y su. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. sin permisos especiales....s . Herramienta de compresión gzip bzip2 zip Extensión .gz... debería usar zip porque es la herramienta más compatible con estos tipos de sistemas operativos.s ..t = 3 Bit sgid y sticky ..bz2 .6 . 25 de Mayo 445 Piso 2 (1002) Bs...t = 7 Bit suid.s ...= 6 Bit suid y sgid .= 2 Bit sgid de grupo .s ..ar ..s . a los comprimidos con bzip2 se les da la extensión . = 1 Bit de persistencia.

teclee: bunzip2 filename. Gzip y Gunzip Para usar gzip para comprimir un archivo.bz2 file1 file2 file3 /usr/work/school El comando anterior comprime los archivos file1. Para expandir un archivo comprimido. file3.bz2 El filename.gz es luego borrado y reemplazado por filename.bz2. y los contenidos del directorio Tel 4313–2484 /2486/2475 opensource@osi-sistemas. file2.Los archivos comprimidos con gzip se descomprimen con gunzip. file3. los archivos comprimidos con bzip2 se descomprimen con bunzip2.gz. Puede usar gzip para comprimir múltiples archivos y directorios al mismo tiempo listándolos con un espacio de por medio: gzip -r filename.com. Puede usar bzip2 para comprimir múltiples archivos y directorios al mismo tiempo colocándolos en una lista separados con espacios entre ellos: bzip2 filename.ar .gz El filename. Para expandir el archivo comprimido.gz file1 file2 file3 /usr/work/school El comando de arriba comprime file1. escriba el siguiente comando en el intérprete del shell: gzip filename El archivo se comprimirá y guardará como filename. 25 de Mayo 445 Piso 2 (1002) Bs. Bzip2 y Bunzip2 Para comprimir un archivo usando bzip2. escriba el siguiente comando en el intérprete de comandos: bzip2 filename El archivo será comprimido y guardado como filename. y los contenidos del directorio /usr/work/school (asumiendo que este directorio existe) y los mete en un archivo llamado filename. file2.bz2.As. y los comprimidos con zip se descomprimen con unzip. escriba el comando: gunzip filename.bz2 se borra y se reemplaza por filename.

zip Puede usar zip para comprimir múltiples archivos y directorios al mismo tiempo listándolos con un espacio en blanco entre ellos: zip -r filename. • -f — cuando se usa con la opción -c. usa el nombre del archivo especificado para la creación del archivo tar. Para extraer los contenidos de un archivo zip. retira del archivo el archivo específico. La opción -r especifica que quiere incluir todos los archivos contenidos en el directorio filesdir recursivamente. file3.com./usr/work/school (asumiendo que existe) y los coloca en un archivo llamado filename.ar .As. • -t — muestra la lista de archivos en el archivo tar. filename. 25 de Mayo 445 Piso 2 (1002) Bs.gz.zip. • -z — comprime el archivo tar con gzip. Algunas de las opciones que se usan con el comando tar son: • -c — crea un nuevo archivo. escriba el comando siguiente: unzip filename. cuando se usa con la opción -x. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.zip file1 file2 file3 /usr/work/school El comando de arriba comprime file1. • -v — muestra el progreso de los archivos que están siendo archivados. Esta es una forma muy conveniente de hacer copias de seguridad (respaldos).zip representa el archivo que está creando y filesdir el directorio en el que quiere meter el nuevo fichero comprimido con zip.zip filesdir En este ejemplo. Tar Un archivo tar es una colección de muchos archivos y/o directorios en un mismo archivo. y los contenidos del directorio /usr/work/school (asumiendo que existe) y los coloca en un archivo llamado filename. Zip y Unzip Para comprimir un archivo con zip. • -j — comprime el archivo tar con bzip2. escriba el siguiente comando: zip -r filename. file2. • -x — extrae los archivos desde un fichero.

escriba: tar -cvf filename. filename.tar Este comando no remueve el archivo tar.tar.bz2. Para listar los contenidos de un archivo tar. 25 de Mayo 445 Piso 2 (1002) Bs. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. El comando de arriba crea un archivo y luego lo comprime como filename.tbz es eliminado y reemplazado con filename. pero coloca copias de los contenidos no archivados en el directorio actual. Puede hacer tar a múltiples archivos y directorios al mismo tiempo listándolos dejando un espacio en blanco entre cada uno: tar -cvf filename.tbz con el comando bunzip2. Si extrae este archivo filename.com. algunas veces los usuarios archivan usando la extensión tar. Recuerde.tbz. escriba: tar -xvf filename.tar /home/mine/work /home/mine/school El comando de arriba coloca todos los archivos de los subdirectorios work y school de /home/mine en un nuevo archivo llamado filename. el archivo filename. sin embargo.tar directory/file En este ejemplo.txt dentro de un directorio de nombre foo/. Para crear un archivo tar comprimido con bzip. preservando la estructura del directorio que el archivo usa. si el archivo tar contiene un archivo llamado bar.As. use la opción -j: tar -cjvf filename.tar del directorio actual.Para crear un archivo tar. Por ejemplo.tar Para extraer los contenidos de un archivo tar.ar .tbz file A los archivos tar comprimidos con bzip2 se les da la extensión . entonces al extraer el archivo se creará un directorio foo/ en su directorio actual con el archivo bar. escriba: tar -tvf filename.tbz.tar representa el archivo que está creando y directory/file representa el directorio o archivos que quiere introducir en el nuevo archivo.txt dentro de él. el comando tar no comprime los archivos por defecto.

Asi un archivo de 100 bytes. servidores samba.mx conocerás a fondo como implementar y administrar cuotas de disco para control de los usuarios. Recuerda que los archivos se guardan en bloques de disco. pudiendo incluso en casos extremos llenar completamente discos duros haciendo el sistema inservible.Puede además expandir y eliminar el archivo archivado con tar y comprimido con bzip con un único comando: tar -xjvf filename.7 . 25 de Mayo 445 Piso 2 (1002) Bs. Puede expandir un archivo comprimido con gzip y empaquetado con tar con un sólo comando: tar -xzvf filename. el archivo filename. En este manual de LinuxTotal. (El archivo filename.tar y luego lo comprime como filename. Este comando crea un archivo filename.Administración de cotas Sistemas Linux con gran cantidad de usuarios. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.ar .tar no se salva.tbz Para crear un archivo archivado con tar y comprimido con gzip.tgz file A los archivos tar comprimidos con gzip se les da la extensión .tgz es eliminado y reemplazado con filename.tar. tarde o temprano tienen el problema de usuarios que almacenan demasiada información en sus directorios de trabajo. Con el uso de cuotas de disco (disk quotas) es posible limitar la cantidad de espacio disponible para cada usuario o de manera global para todos. use la opción -z: tar -czvf filename.tgz • 6.) Si descomprime el archivo filename.As.com.. ocupará un un bloque de 1kb en el disco duro.com. Tipos de cuota Por Bloques (blocks): Un bloque corresponde a 1 kb y una cuota por bloques correspondería al total de bloques que un usuario puede utilizar en el sistema. etc. como servidores de correo.tgz.tgz con el comando gunzip.tgz.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas. 25 de Mayo 445 Piso 2 (1002) Bs.ar . La primera es que NO se tenga establecido un tiempo de gracia. tienen límites de uso y son de dos tipos: HARD: (Duro) Cuando se establece (para bloques o inodos). En el caso de las cutoas. propietario. el usuario podrá seguir usando bloques o inodos hasta que termine el tiempo de gracía o llegue al límite HARD.Por Inodos (inodes): Un inodo o inode en inglés (Index Node) es un número que actua como apuntador para el sistema de archivos de Linux y le indica en que bloques específicos del disco duro se encuentran los datos de un archivo. El tiempo de gracias se puede establecer por usuario o globalmente y más adelante veremos como establecerlo. fechas. horas. pero será constantemente advertido que el límite de uso para bloques o inodos ya ha sido excedido.com. dos situaciones pueden ocurrir. Se podría ver en una analogía simple que un inodo es como un número de serie único para cada archivo del sistema y a través de este número el sistema recupera sus datos (bloques) y sus atributos (permisos. cualquiera que ocurra primero. propietario. Podría verse como un límite de advertencia que le estará indicando al usuario que su límite ya se excedió y tome medidas. Pero por simplicidad puedes verlo como un 1 inodo = 1 archivo. El usuario no podrá exceder este límite. casi representaría el total de archivos que el usuario puede crear y digo "casi" porque los usuarios podemos crear enlaces simbólicos (ln -s) sobre archivos ya existentes que no aumentan las cantidad de inodos.). minutos o segundos.As. que puede ser en días. es el límite absoluto. También el inodo en su referencia guarda información sobre permisos. y entonces el usuario podrá seguir usando bloques o inodos hasta llegar al límite HARD que será su límite absoluto de uso. etc. una cuota por inodos indicaría el total de indos a los que el usuario tiene derecho. etc. La segunda situación es que SI se tenga establecido el tiempo de gracia. Límites Tanto las cuotas por bloques o por inodos. atributos. puede ser excedido por el usuario. Cuando se usa el límite SOFT. SOFT: (Suave) Este límite (para bloques o inodos) que es siempre menor al HARD. En este caso.

¿Donde se implementan? Las cuotas se establecen por filesystem o sistema de archivos. es obvio que no hace nada. Configuración Todo debe hacerse como root. ext3 ext3 ext3 noatime noatime noatime 1 1 1 1 2 2 (Añadimos en la cuarta columna el tipo de cuotas que deseamos) /dev/sda2 / ext3 noatime 1 1 /dev/sda1 /boot ext3 noatime 1 2 /dev/sda3 /home ext3 noatime....As.grpquota . y como ya se indicó solo agregamos el soporte para cuotas en el sistema de archivos que nos interese. es decir. en los otros dos no tiene caso.noatime) /dev/sda3 on /home type ext3 (rw. 1 2 Algo similar a lo anterior deberá tener tu archivo de configuración. Como se sabe en /home es donde los usuarios tienen sus directorios de trabajo (HOME). En el siguiente ejemplo: #> mount /dev/sda1 on /boot type ext3 (rw.noatime) /dev/sda2 on / type ext3 (rw. pero no hay ningún problema si se instala en todos.usrquota.noatime) none on /proc type proc (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) Lo anterior es un ejemplo típico de un equipo Linux con varios sistemas de archivos (/boot. dependiendo si se desea cuotas por usuario o grupos. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Las cuotas pueden establecerse por usuario.. por grupos o ambos. debes de decidir en donde es más conveniente instalar un sistema de cuotas. y lo primero que haremos es editar el archivo "/etc/fstab" y añadiremos "usrquota" o "grpquota".. asi que solo en este sistema de archivos crearemos cuotas. Lo anterior por si solo. habría que reiniciar el sistema para que se apliquen los cambios pero realmente no es necesario. / y /home). #> vi /etc/fstab /dev/sda2 / /dev/sda1 /boot /dev/sda3 /home .noatime) 25 de Mayo 445 Piso 2 (1002) Bs. lo siguiente re-monta el sistema de archivos "/home": #> mount -o remount /home #> mount /dev/sda1 on /boot type ext3 (rw.com. o incluso ambas.ar .

/dev/sda2 on / type ext3 (rw.grpquota) none on /proc type proc (rw) El sistema de archivos "/home" esta listo ahora para soportar cuotas de disco. Este comando crea. no trates de modificarlos o manipularlos: #> cd /home #> ls -l total 72 -rw------. Los errores que envía es precisamente porque no existía un sistema de cuotas previo.1 root 25 de Mayo 445 Piso 2 (1002) Bs. esto lo podemos comprobar porque en la raíz del sistema de archivos soportado con cuotas deben existir los archivos "aquota.ar .group. Como ves. verifica por soporte de cuotas para grupos.no-remount.group" que son binarios. evita que el sistema se remonte como de solo lectura. en este caso creara el soporte: #> quotacheck -augmv quotacheck: Scanning /dev/sda3 [/home] done quotacheck: Cannot stat old user quota file: No existe el fichero o el directorio quotacheck: Cannot stat old group quota file: No existe el fichero o el directorio quotacheck: Cannot stat old user quota file: No existe el fichero o el directorio quotacheck: Cannot stat old group quota file: No existe el fichero o el directorio quotacheck: Checked 2539 directories and 35556 files quotacheck: Old file not found. g .all. u .noatime. verifica por soporte de cuotas para usuarios. root 8192 2008-05-17 21:38 aquota. m .user. quotacheck: Old file not found.verboso. verifica o repara el control de cuotas en los sistemas que lo soporten. reporta lo que hace conforme progresa. En cuanto a las opciones estas indican lo siguiente: • • • • • a . El siguiente paso es verificar con el comando quotacheck por sistemas de archivos que soporten cuotas.user" y "aquota. es conveniente ejecutar quotacheck periódicamente para que verifique inconsistencias y se corrijan a tiempo. Cuando las cuotas esten en pleno uso. la opción -a en este caso no era necesario puesto que solo tenemos "/home" con cuotas. son los mensajes que salen a la terminal.group Tel 4313–2484 /2486/2475 opensource@osi-sistemas. es decir verifica todos los sistemas de archivos por cuotas. es normal que los envíe. v .usrquota.com. asi que el comando anterior también pudiera ser invocado de esta manera: #> quotacheck -ugmv /home Pues el sistema esta listo para manipular cuotas de usuario.As.noatime) /dev/sda3 on /home type ext3 (rw.

com. o solo uno dependiendo lo que se pidió. Ahora bien.group". del kernel 2. que abrirá el editor de texto que se tenga por defecto y mostrará lo siguiente: #> edquota -u user1 Disk quotas for user user1 (uid 502): Filesystem blocks soft hard 25 de Mayo 445 Piso 2 (1002) Bs.2 o anterior se usaba la versión 1 de cuotas y sus archivos de control se nombraban "quota. Cuando por alguna razón sea necesario desactivar las cuotas. usuarios. se utiliza los mostrados anteriormente.ar .user user1/ user2/ user3/ user4/ (obsérvese los dos archivos de control de cuotas. grupos o ambos.-rw------drwx--x--x drwx--x--x drwx--x--x drwx--x--x 1 4 4 3 3 root user1 user2 user3 user4 root user1 user2 user3 user4 8192 4096 4096 4096 4096 2008-05-17 2008-05-12 2008-05-12 2008-05-05 2008-05-05 21:38 16:13 16:13 12:01 12:01 aquota. entonces utiliza la contraparte. que es el comando quotaoff: #> quotaoff -v /home /dev/sda3 [/home]: group quotas turned off /dev/sda3 [/home]: user quotas turned off Muy bien. Asi que para iniciar habrá que administrar cada usuario a través del comando edquota.4 y posteriores con la versión 2 y 3. Por cierto. Aplicando la cuota a usuarios Ahara hay que aplicar la cuota por usuario. en sistemas con kernel 2. ahora veremos como aplicar estas cuotas con los usuarios.user" y "quota.As. soft hard inodes Tel 4313–2484 /2486/2475 opensource@osi-sistemas. lo anterior deja listo el sistema para el soporte de cuotas pero estás siguen sin ser activadas se requiere activar el soporte de cuotas. hasta aqui ya tienes el sistema de archivos "/home" o el que hayas elegido (o todos) para trabajar con soporte de cuotas para los usuarios y grupos. aunque el sistema de archivos ya soporta cuotas y están habilitadas. para lo cual invocamos el comando quotaon: #> quotaon -ugv /home /dev/sda3 [/home]: group quotas turned on /dev/sda3 [/home]: user quotas turned on Activamos para "/home" cuotas de usuario y grupos. para usuarios y grupos) Si se tuvieran más sistemas de archivos con soporte para cuotas en la raíz de cada uno estarían estos archivos. por defecto ningún usuario tiene establecidas cuotas.

se puede indicar libremente cualquiera de los cuatro valores. Como ya se explicó en la primera parte de este artículo. no habrá advertencias previas y el usuario ya no podrá guardar archivos cuando se llegue al valor. Para modificar cuotas a nivel grupo.ar . En el ejemplo previo se modifica la cuota del usuario "user1" en el sistema de archivos "/home" que es el que se ha usado de ejemplo en este artículo de LinuxTotal. avisará cuando se rebase el límite soft y entrará en juego el periodo de gracia. estando como "root": #> quota -u user1 Disk quotas for user user1 (uid 502): Filesystem blocks quota limit grace /dev/sda3 56 70 100 grace files 14 quota 0 limit 0 Con usuarios que manejan cantidades muy grandes de cuota. se usa el mismo comando pero con la opción -g (edquota -g ventas).com.As. por inodos o ambos. grace files quota limit Tel 4313–2484 /2486/2475 opensource@osi-sistemas.mx. es un poco dificil calcular en términos de megas o gigas el espacio usuado y los límites de cuotas: #> quota -u sergio Disk quotas for user sergio (uid 500): Filesystem blocks quota limit grace 25 de Mayo 445 Piso 2 (1002) Bs. es perfectamente posible establecer valores por bloques. ya sea individualmente o por medio de un reporte global.com. Si se acaba el tiempo de gracias o se llega al har (lo que sea primero) ya no se podrán crear más archivos hasta que no se eliminen algunos de los que se tengan actualmente. Si se establece soft y hard. y las que podemos editar son las columnas "soft" y "hard" de cada caso. Si se desea control de cuotas para un filesystem en específico entonces se agrega la opción -f: #> edquota -u user1 -f /home (solo aplica la cuota en el sistema de archivos indicado) Verificando el uso de las cuotas Como usuario administrador 'root' puedes ver el uso de cuotas de cualquier usuario. el comportamiento por default es modificar cuotas para ese usuario en todos los sistemas de archivos que tengan activo el control de cuotas (quotaon). Por usuario o individualmente se usa el comando quota. Si se establece solo el hard. solo recuerda que el límite soft debe ser menor al hard. es decir nos indican la cantidad de bloques o inodos utilizados actualmente por el usuario.0 /dev/sda3 0 56 0 0 14 Las columnas "blocks" e "inodes" son informativas.

si se desea un reporte global de las cuotas de todos los usuarios o por grupos. sin argumentos. Asi mismo este reporte por defecto es por usuarios. recuerda que debes ser "root": 25 de Mayo 445 Piso 2 (1002) Bs. Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------root -. Estableciendo el tiempo de gracia A nivel global. puedes observar tus cuotas con el mismo comando quota. utiliza la opción -t del comando edquota. si se requiere que repquota reporte por grupos. como se aprecia en el listado que ninguno tiene establecido un tiempo de gracia diferente al global. el reporte será para todos los sistemas de archivos en el equipo que soporten cuotas.As./dev/sda3 42578888 Usando la opción -s se mejora el informe: 0 50000000 34895 0 0 #> quota -s -u sergon Disk quotas for user sergon (uid 500): Filesystem blocks quota limit grace /dev/sda3 41582M 0 48829M grace files 34905 quota 0 limit 0 Como usuario individual del sistema. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Si se usa la opción -a (all) en vez del sistema de archivos "/home". como en el siguiente ejemplo.com.ar . siendo "root" utiliza el comando repquota: #> repquota /home *** Report for user quotas on device /dev/sda3 Block grace time: 7days. Esto aplica para todos los usuarios en global.184280 0 0 11 0 0 sergio -. que es de 7 días tanto para cuotas por bloque como para cuotas por archivos o inodos. Obsérvese en la segunda línea del reporte el tiempo de gracia (grace time).42579852 0 50000000 34902 0 0 user1 -56 70 100 14 0 0 user2 -52 0 0 13 0 0 user3 -28 0 0 7 0 0 user4 -28 0 0 7 0 0 Con repquota es también posible utilizar la opción -s para observar los tamaños en formato legible. un periodo de gracia para todos. Ahora bien. añade entonces la opción -g.

Por usuario específico se realiza con la opción -T del mismo comando e indicando el usuario: #> edquota -u user1 -T Times to enforce softlimit for user user1 (uid 502): Time units may be: days. sin embargo.As. usaremos un pequeño script que te permitira realizarlo. O dejarlo en cero y entonces el global será el que se utilice. minutes. Cuando esto suceda.#> edquota -t Grace period before enforcing soft limits for users: Time units may be: days. pudiéndolo aumentar de nuevo si eres "root". sería "12hours". or seconds Filesystem Block grace period Inode grace period /dev/sda3 7days 7days 7 días es el periodo por defecto. Realmente no existe una manera "oficial" de establecer cuotas masivamente. si lo cambias a digamos 12 horas. hours. Pero si hablamos por ejemplo de una universidad donde pudieran existir miles de cuentas entonces si es un problema establecer cuentas individualmente. minutes. si entras a editar de nuevo el tiempo de gracia del usuario (edquota -u user -T) se reflejara en segundos el tiempo que le queda. establecer las cuotas usuario por usuario no representa ningún problema. Y que este empieza a correr una vez que se ha llegado al límite soft. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. hours. Fijar cuotas de manera global a todos los usuarios En sistemas Linux con pocos usuarios.ar .com. or seconds Filesystem block grace /dev/sda3 unset inode grace unset Lo único que hay que considerar es que los tiempos de gracias por usuario deben ser menores al global. El tiempo de gracia puede ser distinto para el límite soft por bloques o por inodos. no hay problema. Establece la cuota que deseas globalmente en un solo usuario: #> edquota -u user1 Disk quotas for user user1 (uid 502): Filesystem blocks soft hard /dev/sda3 68 0 0 :wq soft 300 hard 400 inodes 17 25 de Mayo 445 Piso 2 (1002) Bs.

Veamos el reporte de cuotas con repquota: [root@segolap ~]# repquota /home *** Report for user quotas on device /dev/sda3 Block grace time: 7days. las columnas de "grace" tendrán valores una vez que se llegue al límite soft o suave. #> edquota -p user1 user2 Con lo anterior "copias" la información de límites de cuotas del "user1" al "user2". e indicamos como acción que en el campo 3 ($3) busquemos todos los UID mayores a 499 y que los imprima ({print $1}). Usaremos entonces la opción -p (protptype) para hacer duplicados a partir del ya establecido.com. uno o cientos de usuarios cuyo UID es mayor a 499) Haciendo uso de repquota de nuevo veamos que pasó: 25 de Mayo 445 Piso 2 (1002) Bs. esto para que el shell lo ejecute primero y el resultado serán los argumentos. asi que hagamos un comando compuesto que nos extraiga los nombres de los usuarios. Ahora solo tenemos que usar este comando junto con edquota -p: #> edquota -p user1 `gawk -F: '$3 > 499 {print $1}' /etc/passwd` (importante: nota el uso de acento grave que abarca al comando gawk. Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------user1 -68 300 400 17 0 0 user2 -352 0 0 13 0 0 user3 -28 0 0 7 0 0 user4 -28 0 0 7 0 0 Solo el usuario "user1" tiene cuotas. no hay límite de cuantos usuarios puedes colocar como argumentos asi que lo siguiente es válido: #> edquota -p user1 user2 user3 user4 Práctico para unos cuantos usuarios pero inútil si necesitamos duplicarlo en cientos de usuarios. se puede usar por ejemplo gawk para realizar lo anterior: #> gawk -F: '$3 > 499 {print $1}' /etc/passwd user1 user2 user3 user4 Usamos el separador ":" de campos (-F).As.ar . Tel 4313–2484 /2486/2475 opensource@osi-sistemas.

#> repquota /home *** Report for user quotas on device /dev/sda3 Block grace time: 7days. Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------user1 -68 300 400 17 0 0 user2 -352 300 400 7days 13 0 0 user3 -28 300 400 7 0 0 user4 -28 300 400 7 0 0 Primero. Ahora solo podrá crear más archivos durante 7 días o cuando llegue a 400.txt sda3: warning. lo primero que ocurra. warnquota viene con los mensajes en inglés por defecto. el sistema permite crear el archivo pero se le notifica con un warning. el archivo de configuración es "/etc/warnquota.com. asumiendo que no borre archivos primeros para recuperar espacio. personalízalo con los mensajes a español para que sea más fácil entender a tus usuarios que han excedido sus cuotas. claro. En este instante como el "user2" no ha llegado al límite "hard" ni ha expirado el tiempo de gracia. Este comando simplemente invócalo desde la línea de comandos. algo como lo siguiente aaprecerá: user2> ls -l > directorio. sin argumentos.. puede ser notificado que su couta esta llegando al límite. user block quota exceeded.. revisará los sistemas de archivos con cuotas activadas (quotaon) y revisará todos los usuarios buscando quien ha excedido el límite soft tanto por bloques como por inodos. Avisos de cuotas excedidas (warnquota) Cuando un usuario llega al límite suave o soft al crear o modificar un documento. A partir del instante que el límite cambió de 0 a 300.. por ejemplo. y a aquellos que lo hayan excedido les enviará un correo notifícandoles de lo anterior. un server de correo electrónico.ar . Pero si lo que deseamos es notificar inmediatamente y via correo electrónico que un usuario llego a su límite. opensource@osi-sistemas. es muy intuitivo y fácil de cambiar.12 * * * root /usr/sbin/warnquota . comenzó el periodo de gracia. un usuario que ha recibido spam y esta saturando su cuenta. Para lo anterior usaremos el comando warnquota.As.conf". Puedes agrgar en cron una línea como la siguiente para que warnquota haga su trabajo cada 12 horas: #> vi /etc/crontab . 0 0. todos los usuarios tienen las mismas cuotas que el "user1" que fue el prototipo para los demás y segundo se observa que el "usuario" que tiene 352 bloques utilizados al pasar el límite suave entro al periodo de gracia automáticamente que el global es de 7 días.. 25 de Mayo 445 Piso 2 Tel 4313–2484 /2486/2475 (1002) Bs.

existe tanto en la misma distribución como en Internet infinidad de documentación que puede ser consultada. Uno de las formas de documentación más populares y simples de acceder es el uso de las man-pages. Pero el mismo no cubre la totalidad de funcionalidades y programas del SO. quedando en manos de los usuarios el adquirir documentación más específica. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.• 7.Se accede a ellas con el comando shrek@pantano$ man <comando> Existen varias opciones que se pueden utilizar y se pueden buscar tecleando 25 de Mayo 445 Piso 2 (1002) Bs.1 .As. Estas páginas de manual vienen en todas las distribuciones y cubren con notable detalle el uso de comandos o programas. Uso de la Documentación • • 7. Si se tomara el tiempo necesario para leer la documentación. El mayor problema al instalar un SO nuevo o un programa.com.Comando man 7.Uso de la documentación de /usr/doc La documentación en GNU/Linux La documentación de todo software es un tema muy preocupante. el costo de servicio técnico se reduciría notablemente y esto en una empresa se tiene que tener en cuenta tratando que los usuarios y administradores puedan tener el material necesario para informarse de todos los aspectos del sistema.2 . Sin embargo. sino solamente lo que corresponde a su implementación particular. Además los programas nuevos que se instalen traerán en su mayoría manpages que se podrán acceder de igual manera que a las propias del sistema.ar . Las distintas distribuciones comerciales de GNU/Linux poseen documentación en formato impreso. es que los usuarios y administradores no se toman el tiempo necesario para leer la documentación y es por ello que la mayoría de las llamadas a servicio técnico se deben más a problemas que están en la documentación que a los inesperados.

Proyectos como LuCAS tratan de que se revierta esto. aportando con su trabajo un aporte invaluable para toda la comunidad hispanoparlante. puede decirse que GNU/Linux es uno de los sistemas con mayor cantidad de documentación que existe.com. que son guías rápidas para la pronta 25 de Mayo 445 Piso 2 (1002) Bs. Muchas veces las páginas de manual indican un número luego del comando Ej. dirigidos por los distintos desarrolladores a sus pares. Esto es bueno para tener un solo lugar en donde buscar toda la información necesaria. abundando los comentarios técnicos y los jocosos. También existen lo que se denomina MINI-HOWTO.As. En muchos casos estos HOWTO fueron escritos por los mismos autores que los programas y en otros por personas que se han visto en un problema real en una empresa. GNU/Linux cuenta con gran cantidad de documentación en varios formatos y uno de los desarrollados por el LDP son los HOWTO que están disponibles muchas veces con la misma distribución o a través de Internet. Esto indica que la información del comando ls puede encontrarse en la sección 1. Por todo lo expuesto hasta aquí. Estos explican todo el proceso de instalación así como también los requerimientos necesarios.tldp. Esta forma se remonta a cuando las man-pages de los sistemas Un*x venían en libros impresos que se dividían en secciones donde se abordaba el tema de un comando de acuerdo a su aplicación.org/ que se alza como una entidad centralizadora de documentación. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. pudiendo haber otros según el programa y/o la distribución. También se puede contar con las páginas de INFO de cada comando. Un lugar donde buscar cuando se instale un nuevo programa es los archivos README. Por esto existen numerosos proyectos que sirven para documentar cada aspecto del sistema y sus aplicaciones. Cabe destacar que mucha de esta información se encuentra en español pero existe un número mucho mayor que esta en inglés. http://www. utilizando el comando shrek@pantano$ info <comando> donde se encontrara información menos detallada que en las man-pages pero de pronta utilización. Uno de los proyectos más conocidos es el LDP (Proyecto de Documentación de Linux). siendo una muy buena fuente de información al momento de meter mano al sistema. Además cada programa cuenta con documentación propia que se podrá encontrar en los directorios /usr/doc y /usr/share/doc.shrek@pantano$ man man con lo que aparecerán las páginas de manual del comando man. tanto libremente como en forma de libros impresos por editoriales de renombre en el campo técnico.Documentación en Internet Desde sus inicios los desarrolladores se han preocupado por mantener todo lo que se hizo en este sistema operativo bien documentado.ar .3 . Existen además muchísimas guías que cubren aspectos muy importantes y de alta complejidad del SO y sus aplicaciones. Los fuentes del kernel también poseen una gran cantidad de información sobre aspectos generales del SO y su funcionamiento. No quedan excusas para no informarse. ls(1). • 7. universidad u otra institución.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas. aunque la personalización de este proceso casi nunca es necesaria. PDF. tanto los HOWTO como los MINI-HOWTO. el proceso de arranque por defecto es idéntico a través de todas las arquitecturas. sin detenerse en aspectos que no se utilizarán o se utilizarán rara vez. La primera etapa del gestor de arranque se autocarga en memoria y lanza la segunda etapa del gestor de arranque desde la partición /boot/. Los usuarios son libres de configurar muchos aspectos del proceso de arranque. En nuestro país existe un mirror de documentación del proyecto: LUCAS (LinUx en CAStellano). De forma parecida. Proceso de arranque A continuación obtendrá las etapas básicas del proceso de arranque para un sistema x86: 1.org/ en el cual se podrán encontrar la mayoría de ellos. El kernel transfiere el control del proceso de arranque al programa /sbin/init. DocBook. Se pueden encontrar. 6. • 8. Sin embargo.com. 3. HTML. sino que también le facilitará resolver problemas relacionados con el inicio y el cierre del sistema. Este capítulo se basa principalmente en la arquitectura x86. Entender el funcionamiento del proceso de arranque y cierre no sólo le permitirá personalizar.tldp. una vez que se encuentra el kernel y se carga por el gestor de arranque. 2. Se le presenta al usuario una pantalla de inicio de conexión para el sistema Linux recien iniciado. Vista detallada del proceso de arranque El inicio del proceso de arranque varía dependiendo de la plataforma de hardware usada. en distintos formatos como en ASCII. PS.ar . lo cual en su momento carga los módulos necesarios y monta la partición root para sólo-lectura. incluyendo qué programas se lanzarán al momento de arranque. etc. El programa /sbin/init carga todos los servicios y herramientas de espacio del usuario y monta todas las particiones listadas en /etc/fstab. 5. La BIOS del sistema comprueba y lanza la primera etapa del gestor de arranque del MBR del disco duro primario. el cierre del sistema finaliza los procesos de forma organizada y configurable. http://es. La segunda etapa del gestor de arranque carga el kernel en memoria.As. 25 de Mayo 445 Piso 2 (1002) Bs. Proceso de Arranque Una de las características más importantes y poderosas de GNU Linux es el método abierto y configurable para el inicio del sistema operativo. 4.implementación de un servicio o un programa.

conf — al momento de arranque. sino que también proporciona una interfaz de bajo nivel para dispositivos periféricos. Una vez que la BIOS haya encontrado y cargado el gestor de arranque en memoria. GRUB.8. La BIOS carga en memoria cualquier programa que resida en el primer sector de este dispositivo. el procesador busca al final de la memoria del sistema por Basic Input/Output System o el programa BIOS y lo ejecuta. así como también la tabla de particiones. Para información sobre el cambio del nivel de ejecución en la línea de comandos del gestor de arranque. Una vez que la segunda etapa del gestor de arranque está en memoria. El gestor de arranque Esta sección revisa los gestores de arranque para la plataforma x86. Su única función es la de localizar el gestor de arranque de la segunda etapa y cargar la primera parte de éste en memoria. Una vez que se haya cargado. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. La MBR sólo tiene 512 bytes de tamaño y contiene las instrucciones de código de máquina para el arranque del equipo.com. En esta pantalla el usuario puede usar las flechas direccionales para escoger el sistema operativo o kernel con el que desea arrancar y presione la tecla . echa un vistazo a las unidades de disco duro del sistema. la BIOS chequea los periféricos y localiza un dispositivo con el que arrancar el sistema. Habitualmente. vea la Sección 2. presenta al usuario con una pantalla gráfica mostrando los diferentes sistemas operativos o kernels que para los que ha sido configurado para arrancar. Dependiendo de la arquitectura del sistema.ar . localizará el binario del kernel correspondiente en el directorio /boot/. llamado Registro de arranque principal o Master Boot Record (MBR). Por ejemplo. y a continuación si esto falla. EFI).As. los ordenadores basados en Itanium usan el Shell Interfaz de Firmware extendible (Extensible Firmware Interface. 25 de Mayo 445 Piso 2 (1002) Bs. En la mayoría de los casos. GRUB tiene la ventaja de ser capaz de leer particiones ext2 y ext3 y cargar su archivo de configuración — /boot/grub/grub. Para instrucciones sobre el uso del gestor de arranque para suministrar argumentos de línea de comandos al kernel.La BIOS Cuando un ordenador x86 se carga. La primera es un código binario de máquina pequeña en el MBR. en primer lugar comprueba cualquier disquete y unidades de CDROM presente por los medios de arranque. Por este motivo se escribe tan sólo en modo lectura. Otras plataformas usan programas diferentes para ejecutar tareas a bajo nivel equivalentes a aquellas de la BIOS en el sistema x86. La BIOS controla no sólo el primer paso del proceso de arranque. Si no se presiona ninguna tecla. El kernel binario es llamado usando el siguiente formato — /boot/vmlinuz-<kernel-version> (donde <kernel-version> corresponde a la versión del kernel especificada en las configuraciones del gestor de arranque). Una vez que el gestor de arranque de la segunda etapa haya determinado qué kernel arrancar. Un gestor de arranque para la plataforma x86 se divide en al menos dos etapas. el orden de búsqueda de las unidades para arrancar es controlado por una configuración de la BIOS y busca por el dispositivo maestro IDE en el bus IDE primario. le deja el control del proceso de arranque a éste. llamado un gestor de arranque. consulte el Capítulo 2. memoria permanente y está siempre disponible para el uso. el gestor de arranque carga la selección predeterminada luego de un período de tiempo de espera (también configurable). el proceso de arranque diferirá ligeramente.

tal como LVM o software RAID antes de completar los procesos initramfs y de liberar toda la memoria que la imagen del disco ocupó anteriormente. El kernel luego crea un dispositivo root. la arquitectura Itanium utiliza el gestor de arranque ELILO. Para configurar el entorno de usuario. Luego. Sin embargo. el kernel descomprime estas imágenes desde la memoria a /boot/. Otro 25 de Mayo 445 Piso 2 (1002) Bs. El kernel Cuando se carga el kernel. ejecuta el script /etc/rc. un sistema de archivos virtual basado en RAM. a través de cpio. éste inicializa y configura la memoria del ordenador y los diferentes hardware conectado al sistema. no se puede hacer mucho más. Por ejemplo. Para una descripción más detallada sobre el gestor de arranque GRUB. verifica los sistemas de archivos y se encarga de todo lo que el sistema necesita tener hecho al momento de la inicialización. Una vez que el kernel y la imagen initramfs se cargan en memoria. El initrd es usado por el kernel para cargar controladores y módulos necesarios para arrancar el sistema. la descomprimirá directamente a /sysroot/ y cargará todos los controladores necesarios.sysinit.com. el kernel inicia el programa /sbin/init. A continuación buscará la imagen comprimida de initramfs en una ubicación predeterminada en memoria. se vuelve el padre o abuelo de todos los procesos que comienzan automáticamente en el sistema. el gestor de arranque pasa el control del proceso de arranque al kernel. Cuando el comando init arranca. por lo tanto. La única diferencia entre el proceso de arranque de cada arquitectura está en la aplicación que se usa para encontrar y cargar el kernel. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Primero. Esto es muy importante si posee unidades de disco duro SCSI o si está el sistema utiliza el sistema de archivos ext3. como no hay aplicaciones de usuario que permitan la entrada significativa de datos al sistema. A continuación inicializa los dispositivos virtuales relacionados con el sistema de ficheros. activa el swap. la mayoría de los sistemas usan un reloj. Programa /sbin/init El programa /sbin/init (también llamado init) coordina el resto del proceso de arranque y configura el ambiente del usuario. monta la partición root como sólo lectura y libera cualquier memoria no utilizada.sysinit lee el archivo de configuración para iniciar el hardware del reloj.El gestor de arranque luego coloca una o más de las imágenes apropiadas de initramfs en la memoria. Por ejemplo. Gestores de arranque para otras arquitecturas Una vez que se carga el kernel y pasa el proceso de arranque al comando init. el kernel está cargado en memoria y operativo. Llegados a este punto. incluyendo todos los procesadores.As. las arquitecturas eServer pSeries de IBM utilizan YABOOT y los sistemas IBM eServer zSeries e IBM S/390 usan el gestor de arranque z/IPL. que establece la ruta del entorno.ar . subsistemas de entrada/salida y dispositivos de almacenamiento. los mismos acontecimientos suceden en cada arquitectura.d/rc. consulte el Capítulo 2. el rc.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas.d/<command> stop.serial. start. Mientras más bajo es el número. que establece el modo en cómo iniciar o matar un programa y cómo determinar el PID del programa. Cuando se arranca el nivel de ejecución 5.d/init. El nombre de cada enlace simbólico comienza con K o S.d/init. consulte la Sección 1. donde <x> es el número de nivel de ejecución. el programa init consulta el directorio /etc/rc. Para más información sobre los niveles de ejecución SysV init. mientras que aquellos que inician por S son procesos a iniciar. 25 de Mayo 445 Piso 2 (1002) Bs. /etc/rc. en el que <command> es el proceso a matar. Los enlaces simbólicos con el mismo número se inician de modo alfabético.d/ es el directorio para el nivel de ejecución 5. A continuación. Por ejemplo. definido por los servicios listados en el SysV directorio /etc/rc. A continuación inicia todos los enlaces simbólicos S al ejecutar root@shrek:~# /etc/rc.com.d/rc5. Los niveles de ejecución son un estado.d/rc5. /etc/rc. o modo.ejemplo es si hay procesos especiales en los puertos seriales que deben ser inicializados.d/. Casi todos los ficheros en /etc/rc.d/rc5.sysinit ejecutará el archivo /etc/rc.d/<command>.d/ son enlaces simbólicos apuntando a los scripts localizados en el directorio /etc/rc. Los enlaces K son procesos eliminados en ese nivel de ejecución. más rápido se arrancará. Los enlaces simbólicos se usan en cada uno de los directorios rc de manera que los niveles de ejecución puedan ser reconfigurados al crear.d/rc<x>. El comando init en primer lugar detiene todos los enlaces simbólicos de K en el directorio mediante la ejecución del comando /etc/rc.d/ para determinar qué procesos iniciar o parar. modificar y eliminar los enlaces simbólicos sin que afecte a los scripts actuales a los que se refiere. Ninguno de los scripts que inician y cierran los servicios están localizados en el directorio /etc/rc.4. el comando init configura la biblioteca de funciones fuente. Cada uno de los enlaces simbólicos se numera para dictaminar el orden de inicio.d/init. Los directorios rc están numerados para corresponder al nivel de ejecución que representan.d/functions. el cual describe cómo se debería configurar el sistema en cada nivel de ejecución SysV init.d/. para el sistema.ar . Usted puede cambiar el orden en el que los servicios inician o paran al cambiar este número. rc.d/rc5.d/. El comando init luego ejecuta el script /etc/inittab. El programa init inicia todos los procesos de fondo buscando en el directorio apropiado rc para el nivel de ejecución especificado por defecto en /etc/inittab.As.d/init.

El script prefdm ejecuta su gestor de pantalla de X preferido[3] — gdm. La lista siguiente muestra los gestores de arranque disponibles para cada arquitectura. mientras que el nivel de ejecución 1 (modo usuario único) tiene tan sólo uno y lo niveles de ejecución del 0 al 6 no tienen ninguno.local lo ejecuta el comando init en tiempo de arranque. En el nivel de ejecución 5.LiLo y GRUB Gestores de arranque y arquitectura del sistema Cada arquitectura de sistemas que pueda ejecutar GNU Linux usa un gestor de arranque diferente. dependiendo de los contenidos del archivo /etc/sysconfig/desktop. toma el nombre y contraseña del usuario. o cuando se cambien niveles de ejecución. Arquitectura AMD® AMD64 IBM® eServer™ iSeries™ IBM® eServer™ pSeries™ IBM® S/390® IBM® eServer™ zSeries® Intel® Itanium™ x86 25 de Mayo 445 Piso 2 (1002) Bs.1 . e inicia el proceso de inicio de sesión.ar . kdm. imprime el indicador de inicio de sesión. Consulte la página man de setserial para más información. Este script ejecuta los comandos setserial para configurar los puertos seriales del sistema. El proceso /sbin/mingetty abre las rutas de la comunicación para los dispositivostty[2]. o xdm. • 8. Se usa el script /etc/rc. Una vez que haya terminado. el script /etc/inittab bifurca un proceso /sbin/mingetty para cada consola virtual (prompt de inicio de sesión) del nivel de ejecución.As. /etc/inittab ejecuta un script llamado /etc/X11/prefdm.d/init.serial si se deben configurar puertos seriales en el momento de arranque. establece sus modos. Gestores de arranque GRUB OS/400® YABOOT z/IPL z/IPL ELILO GRUB Tel 4313–2484 /2486/2475 opensource@osi-sistemas. El agregar comandos al final de este script es una forma fácil de realizar tareas necesarias como arrancar servicios especiales o inicializar dispositivos sin tener que escribir scripts complejos de inicialización en el directorio /etc/rc.com.d/rc. Ejecutar programas adicionales en el momento de arranque El script /etc/rc.Después que el comando init ha progresado a través del directorio adecuado rc para el nivel de ejecución.d/ y creando enlaces simbólicos. el sistema operará en el nivel de ejecución 5 y mostrará la pantalla de inicio de sesión. Los niveles de ejecución del 2 al 5 tienen seis consolas virtuales.

5del gestor de arranque se encuentra en la partición /boot/ o en una pequeña parte del MBR y la partición /boot/. GRUB se carga asímismo en la memoria en las diferentes etapas: 1. 2. La etapa 1 o cargador de arranque primario se lee en la memoria por el BIOS desde el MBR[1]. los sistemas operativos de Microsoft® Windows®. Bajo este método.ar . GRUB soporta ambos métodos de arranque.Gestores de arranque por arquitectura GRUB GNU GRand Unified Boot loader o GRUB es un programa que habilita al usuario a seleccionar qué sistema operativo instalado o kernel cargar en el momento de arranque del sistema. Allí encuentra los archivos necesarios para arrancar el sistema operativo. directo y de carga encadenada. vea la Sección 1. si es necesario. 25 de Mayo 445 Piso 2 (1002) Bs. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Esta interfaz le permite seleccionar qué sistema operativo o kernel arrancar. La Etapa 1.2. El gestor de arranque secundario lee el sistema operativo o el kernel así como también los contenidos de /boot/sysroot/ en memoria. Para hacerse una idea del proceso de arranque. 3. Proceso de arranque en un sistema x86 y GRUB Esta sección explica con más detalle el papel específico que desempeña GRUB al arrancar un sistema x86.com. se cargan mediante un método de arranque de carga encadenada. El método usado para arrancar GNU Linux se conoce como método de carga directa porque el gestor de arranque carga el sistema operativo directamente. permitiendo arrancar desde casi cualquier sistema operativo. así como otros sistemas operativos. El gestor de arranque primario existe en menos de 512 bytes de espacio en disco dentro del MBR y es capaz de cargar bien sea la etapa 1. Por ejemplo. El proceso de arranque usado por otros sistemas operativos puede variar.As. La Etapa 2 o el gestor de arranque secundario se lee en la memoria. No existe un intermediario entre el gestor de arranque y el kernel. 4. pasar argumentos al kernel o ver los parámetros del sistema. El gestor de arranque secundario visualiza el menú GRUB y el entorno de comandos. el MBR señala el primer sector de la partición que tiene el sistema operativo. éste lo carga en la memoria y transfiere el control de la máquina a dicho sistema operativo. Permite también que el usuario transmita argumentos al kernel.5 o la etapa 2 del gestor de arranque. Una vez que GRUB determina qué sistema operativo iniciar. La Etapa 1 del gestor de arranque se lee en la memoria por el gestor de arranque de la Etapa 1. Determinados hardware requieren un paso intermedio para pasar a la Etapa 2 del gestor de arranque. Esto sucede a menudo cuando la partición /boot/ está por encima del cilindro 1024 del disco duro o cuando se usa el modo LBA.

<numero-particion>) El <tipo-de-dispositivo> especifica el tipo de dispositivo desde el cual inicia GRUB. Antes de instalar GRUB. si un sistema tiene más de un disco duro. GRUB se refiere al primer disco duro 25 de Mayo 445 Piso 2 (1002) Bs. Las dos opciones más comunes son hd para un disco duro o fd para un disquete de 3. Al igual que en el caso de <número-dispositivo-bios>.org/software/grub/manual/. a en hda para el kernel es análogo a 0 en hd0 para GRUB. debería asegurarse de que cuenta con el último paquete disponible de GRUB desde los CD-ROMs de instalación. Por ejemplo. el comando siguiente instala GRUB al MBR del dispositivo maestro IDE en el bus IDE primario: /sbin/grub-install /dev/hda La próxima vez que arranque el sistema. por ejemplo. Una vez que el paquete GRUB esté instalado. abra un intérprete de comandos de la shell y ejecute el comando /sbin/grub-install <ubicacion>. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. haga esto usando el formato siguiente (observe que los paréntesis y las comas son muy importantes en la sintaxis): (<tipo-de-dispositivo><numero-dispositivo-bios>. a los discos duros y a las particiones. con a correspondiendo a 0. y así sucesivamente. Un tipo de dispositivo menos usado también está disponible.gnu. El <numero-dispositivo-bios> es el número del dispositivo BIOS. Una vez instalado. Aunque la mayoría de las particiones se especifican con números. La sintaxis es equivalente a aquella utilizada para los dispositivos por el kernel.com. el menú del gestor de arranque gráfico GRUB aparecerá antes del que el kernel se cargue en memoria. se convierte en el gestor de arranque por defecto. El <numero-particion> hace referencia al número de una partición concreta en un dispositivo. Terminología de GRUB Una de las cuestiones más importantes que deben entenderse antes de utilizar GRUB es cómo el programa hace referencia a los dispositivos. b correspondiendo a 1 y así sucesivamente. la mayoría de los tipos de particiones son numeradas comenzando por 0. b en hdb es análogo a 1 en hd1. Para dar un ejemplo.Instalación de GRUB Si no instaló GRUB durante el proceso de instalación.As. Esta información es muy importante si desea configurar GRUB para arrancar varios sistemas operativos. si el sistema usa particiones BSD a éstas se hará referencia con letras. Nombres de dispositivos Cuando se refiera a un dispositivo específico con GRUB. llamado nd para un disco de la red.Las instrucciones sobre la configuración de GRUB para arrancar desde la red están disponibles en http://www. Por ejemplo.5.ar . se puede hacer después. El disco duro IDE primario se numera 0 y un disco duro IDE secundario se numera 1. donde <ubicacion> es la ubicación en la que la Etapa 1 de GRUB debería ser instalado.

As. es muy importante saber el orden de arranque configurado en la BIOS. el archivo imagen (hd0. se vuelve crítico que se acceda primero el tipo de unidad con la partición de arranque. El sistema de archivos raíz de GRUB es el nivel superior del dispositivo especificado. • Para especificar todo un dispositivo sin respetar sus particiones. En esta interfaz hay un menú de sistemas operativos o kernels preconfigurados en forma de lista ordenada por nombres. Luego. pero si tiene una combinación de ambos. establece el sistema de archivos raíz con el cual los usuarios de Linux están familiarizados. Interfaces de GRUB GRUB dispone de tres interfaces eficaces que proporcionan distintos niveles de funcionalidad. De la misma forma. Por ejemplo. GRUB usa las reglas siguientes para denominar los dispositivos y las particiones: • No es relevante si los discos duros que utiliza son IDE o SCSI. • Si un sistema tiene varios dispositivos de discos. Por ejemplo. Cada una de estas interfaces permite a los usuarios arrancar el kernel de Linux u otros sistemas operativos. En general. El sistema de archivos raíz de GRUB original y sus montajes se olvidan.como (hd0) y al segundo como (hd1).ar . opensource@osi-sistemas. GRUB se refiere a la primera partición en la primera unidad como (hd0. El Sistema de archivos raíz y GRUB Algunos usuarios se confunden con el uso del término sistema de archivos raíz tiene un significado diferente con relación a GRUB. se ejecuta el comando kernel con la ubicación del archivo del kernel como una opción. simplemente debe suprimir la coma y el número de partición.0) (la cual es en verdad la partición /boot/ para el sistema). Las interfaces son como sigue: Interfaz de menú Esta es la interfaz por defecto cuando se configura GRUB por el programa de instalación. la única finalidad de su existencia era arrancar el archivo del kernel. Esto es importante para indicarle a GRUB que configure el registro MBR para un disco concreto. Una vez que el kernel de Linux inicia.2). Puede utilizar las teclas de flecha para seleccionar una opción diferente a la selección por defecto y pulsar la tecla 25 de Mayo 445 Piso 2 Tel 4313–2484 /2486/2475 (1002) Bs. Es importante recordar que el sistema de archivos raíz de GRUB no tiene nada que ver con el sistema de archivos raíz de Linux. Todos los discos duros empiezan con las letras hd. (hd0) especifica la MBR en el primer dispositivo y (hd3) especifica la MBR en el cuarto dispositivo.0) y a la tercera partición en el segundo disco duro como (hd1.com. Se utilizan las letras fd para especificar las unidades de disquete.gz está ubicado dentro del directorio /grub/ en el nivel superior (o raíz) de la partición (hd0. Esto es muy sencillo si sólo tiene discos IDE o SCSI.0)/grub/splash.xpm.

se utiliza la entrada predeterminada de GRUB. Interfaz del editor de menú de entrada Para tener acceso al editor de entradas del menú. Con la tecla se omiten los cambios y el usuario vuelve a la interfaz de menú estándar. tales como para moverse al comienzo de la línea y . Como alternativa. modificandola (). GRUB imprimirá el error y solicitará la introducción de valores. presione la tecla desde el menú del gestor de arranque. Si no se presiona ninguna tecla. o borrando una (). Si no puede encontrar el archivo de configuración o si éste no se puede leer. muestra la pantalla de menú de GRUB. Esta interfaz cuenta con algunas funciones similares a las de shell avanzadas. Si se presiona una tecla dentro de tres segundos. Si la corrección falla. Los comandos de GRUB de dicha entrada se muestran aquí y puede alterar estas líneas de comandos antes de arrancar el sistema operativo agregando una línea de comandos ( inserta una nueva línea después de la línea actual y inserta una nueva línea antes de ella).ar . las teclas de flecha. Cuando lo encuentra. . . después del cual GRUB iniciará la carga de la opción por defecto. GRUB informa del error y puede empezar de nuevo. Esto puede ser muy útil. Con la tecla se carga la interfaz de línea de comandos. En esta interfaz de línea de comandos puede escribir cualquier comando de GRUB seguido de la tecla para ejecutarlo. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.As. Si pulsa cualquier tecla se volverá a cargar la interfaz de menú. la tecla ejecuta los comandos y arranca el sistema operativo. Presione la tecla para entrar en la interfaz del editor o la tecla para cargar la interfaz de línea de comandos. Además. GRUB crea una lista de menú y la despliega. GRUB carga la interfaz de línea de comandos para permitirle al usuario escribir manualmente los comandos necesarios para completar el proceso de arranque. existe un período de espera. pero también la que proporciona un mayor control. porque podrá ver con exactitud donde está el problema y corregirlo en el archivo. En el caso de que el archivo de configuración no sea válido. Interfaz de línea de comandos La interfaz de línea de comandos es la más básica de GRUB. donde podrá modificar la opción de menú y corregir el problema según el error que GRUB haya notificado. Orden de carga de las interfaces Cuando GRUB carga la segunda etapa de su gestor de arranque. primero busca por su archivo de configuración. incluyendo el uso de para autocompletar y las combinaciones de teclas con al escribir comandos.para iniciarla. Una vez realizados los cambios. 25 de Mayo 445 Piso 2 (1002) Bs.com.para moverse al final. y funcionan de forma similar al indicador de comandos bash.

tales como cuando la partición se formatea con el sistema de archivos ext3.conf. opensource@osi-sistemas.523.6. partición y archivo donde el primer gestor de arranque puede ser encontrado.com. puede utilizar la notación de lista de bloques.ar . En la lista siguiente se indican algunos comandos útiles: • boot — Arranca el sistema operativo o gestor de encadenamiento que se ha cargado. Algunos de los comandos aceptan opciones después del nombre y estas opciones deben ir separadas del comando por comas y de otras opciones de esa línea por carácteres de espacio.As.0)/grub/stage2. tal como (hd0). • chainloader </ruta/a/archivo> — Carga el archivo especificado como gestor de encadenamiento.Comandos de GRUB GRUB permite varios comandos en su línea de comandos. tal como (hd0. Si el archivo está ubicado en el primer sector de la partición especificada. tal como (hd0. • <etapa-1> — Significa un dispositivo. tal como (hd0. +1.img • install <etapa-1> <disco-instalacion> <etapa-2> p <archivo-configuracion> — Instala GRUB en la MBR del sistema. • <disco-instalacion> — Especifica el disco donde la etapa 1 del gestor de arranque debería ser instalado. Es necesario un initrd cuando el kernel necesita ciertos módulos para poder arrancar adecuadamente. en función de la información de la BIOS. Lo siguiente es un ejemplo del comando chainloader: chainloader +1 • displaymem — Muestra el uso actual de memoria.0)/grub/grub.8-1.0)/grub/stage1. 25 de Mayo 445 Piso 2 Tel 4313–2484 /2486/2475 (1002) Bs. • initrd </ruta/a/initrd> — Le permite especificar un disco RAM inicial para utilizarlo al arrancar. A continuación se muestra un ejemplo del comando initrd: initrd /initrd-2. • <etapa-2> — Pasa la ubicación de la etapa 2 del gestor de arranque a la etapa 1. en vez del nombre del archivo. Esto es útil si no está seguro de la cantidad de RAM que tiene un sistema y todavía tiene que arrancarlo. • p <archivo-configuracion> — Esta opción le indica al comando install que busque por el archivo de configuración de menú especificado por <config-file>.

0) y monta la partición. tal como el comando root pero no monta la partición. También están disponibles otros comandos. • root (<tipo-dispositivo><numero-dispositivo>. Reemplace <opcion-1> con las opciones para el kernel de Linux. tales como root=/dev/hda5 para especificar el dispositivo en el que se ubica la partición root para el sistema. A continuación se presenta un ejemplo para el comando root: root (hd0.gnu.As. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.0) • rootnoverify (<tipo-dispositivo><numero-dispositivo>. consulte la documentación disponible en línea en http://www.<particion>) — Configura la partición raíz para GRUB. — Especifica el archivo del kernel a cargar cuando se cargue el sistema operativo. Reemplace </ruta/a/kernel> con una ruta absoluta desde la partición especificada por el comando root.• kernel </ruta/a/kernel><opcion-1> <opcion-N> .. 25 de Mayo 445 Piso 2 (1002) Bs. Lo siguiente es un ejemplo para el comando kernel: kernel /vmlinuz-2.com..4.ar .21 root=/dev/hda5 La opción en el ejemplo anterior especifica que el sistema de archivos raíz para Linux está ubicado en la partición hda5. Se pueden pasar múltiples opciones al kernel en una lista separada por comas.<particion>) — Configura la partición raíz para GRUB.org/software/grub/manual/. tal como (hd0. Para una descripción de todos los comandos GRUB. escriba help --all para una lista completa de comandos.

así como algunos comandos especiales disponibles tan sólo en el archivo de configuración. usado para crear la lista en la interfaz de menú de GRUB de los sistemas operativos para el arranque.0) kernel /vmlinuz-2.img # section to load Windows title Windows rootnoverify (hd0. básicamente permite al usuario seleccionar un grupo predefinido de comandos para su ejecución. El siguiente es un ejemplo de archivo de configuración de menú de GRUB muy básico diseñado para arrancar bien sea GNU Linux o Microsoft Windows 2000: default=0 timeout=10 splashimage=(hd0.ar . Los comandos para configurar las preferencias globales para la interfaz de menú están ubicados al inicio del archivo.conf. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Se proporcionan dos secciones.Archivo de configuración de menú de GRUB El archivo de configuración (/boot/grub/grub.523.8-1.523 ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2. Estructura del archivo de configuración El archivo de configuración de la interfaz de menú de GRUB es /boot/grub/grub.0) chainloader +1 Este archivo indicará a GRUB que cree un menú con GNU Linux como el sistema operativo predeterminado y que establezca un arranque automático después de 10 segundos.gz hiddenmenu title Red Hat Enterprise Linux AS (2.523) root (hd0.com. seguido de las diferentes estrofas para cada sistema operativo o kernels listados en el menú. 25 de Mayo 445 Piso 2 (1002) Bs.6.6. con comandos específicos para la tabla de partición del sistema. una para cada entrada de sistema.As.8-1.0)/grub/splash.6.xpm.conf). Pueden utilizarse los comandos que se indican en la Sección 2.6.8-1.

d/ rc5.d/. y. Dentro de este directorio. Los siguientes niveles de ejecución están definidos de forma predeterminada para GNU Linux: • • • • 0 — Parar 1 — Modo texto usuario único 2 — Sin usar (usuario-definible) 3 — Modo texto multiusuario completo Tel 4313–2484 /2486/2475 opensource@osi-sistemas. los scripts rc.com. Por ejemplo.local.INIT.ar 25 de Mayo 445 Piso 2 (1002) Bs. el nivel de ejecución 1 (modo usuario único) detiene cualquier servicio de red. .d/ El directorio init.sysinit.d/ contiene los scripts usados por el comando /sbin/init cuando se controlan los servicios. rc.d/ rc4. Las características de un nivel de ejecución dado determinan qué servicios son detenidos o iniciados por init. Niveles de ejecución La idea detrás de los niveles de ejecución de SysV init gira alrededor del hecho que sistemas diferentes se pueden usar de formas diferentes.d/ rc2. el administrador del sistema puede necesitar operar el sistema en un nivel más bajo de ejecución para realizar tareas de diagnóstico. Por ejemplo. init puede fácilmente cambiar el modo de la máquina sin que el usuario tenga que manualmente arrancar o detener servicios.d/ rc1.serial así como los siguientes directorios: init. SysV init fué escogido porque es más fácil de usar y más flexible que el proceso tradicional init estilo BSD. se encuentran los scripts rc. opcionalmente.d/ rc0. un servidor corre de forma más eficiente sin el consumo de recursos del sistema excesivo creado por el sistema X. Los ficheros de configuración para SysV init están en el directorio /etc/rc. mientras que el nivel 3 arranca estos servicios. Cada uno de los directorios numerados representan los seis niveles de ejecución predeterminados configurados por defecto bajo GNU Linux. Otras veces. rc.2 . Niveles de ejecución Niveles de ejecución de SysV Init El sistema de niveles de ejecución SysV init provee de un proceso estándar para controlar cuáles programas init lanza o detiene cuando se inicializa un nivel de ejecución. Asignando servicios específicos a ser detenidos o iniciados en un nivel dado.• 8.d/ rc3. como reparar corrupción del disco duro en el nivel de ejecución 1.As.d/ rc6.

Tel 4313–2484 /2486/2475 opensource@osi-sistemas. • Presione la tecla para añadir al comando kernel. grub append> ro root=/dev/VolGroup00/LogVol00 rhgb quiet 3 25 de Mayo 445 Piso 2 (1002) Bs.• • 4 — Sin usar (usuario-definible) 5 — Modo gráfico multiusuario completo (con una pantalla de inicio de sesión basada en X) 6 — Rearrancar • Generalmente. El nivel de ejecución por defecto para el sistema está listado en /etc/inittab. Ya que los niveles de ejecución 2 y 4 no son usados.3 .As. como indica el número después del punto y coma. modifique /etc/inittab como usuario root. • 8. Para cambiarlo. Para cambiar el nivel de ejecución de una sesión de arranque. busque por la línea similar a la que se muestra abajo cerca de la parte superior de /etc/inittab: id:5:initdefault: El nivel de ejecución predeterminado en este ejemplo es cinco.ar . Para saber el nivel de ejecución por defecto de un sistema. utilice las instrucciones siguientes: • Cuando la pantalla de menú de GRUB aparece durante el arranque. los usuarios a veces personalizan estos niveles para cubrir necesidades específicas. es posible cambiar el nivel de ejecución predeterminado en el momento de arranque. • Añada <espacio><nivel-de-ejecucion> al final de la línea de opciones de arranque para iniciar en el nivel de ejecución deseado.com. los usuarios utilizan GNU Linux al nivel de ejecución 3 o nivel de ejecución 5 — ambos modos multiusuario.Configuración del proceso de arranque Cambiar los niveles de ejecución en el tiempo de arranque Bajo GNU Linux. Por ejemplo. presione cualquier tecla para entrar al menú de GRUB (dentro de los primeros tres segundos). la entrada siguiente iniciará un proceso de arranque en el nivel 3.

8 Las ultimas versiones de GNU Linux utilizan la versión X11R6. Debido a que el servidor X realiza tareas avanzadas en una amplia variedad de formaciones de hardware. El programa de instalación instala y configura X automáticamente. El entorno gráfico para GNU Linux es suministrado por la Fundación X. módulos y documentación. Es importante resaltar que el archivo de configuración para la nueva arquitectura de fuentes basado en Fontconfig es /etc/fonts/fonts. el servidor de fuentes fs. Los archivos relacionados a X11R6.As. El servidor gestiona la comunicación con el hardware.• 9. la cara del sistema operativo es el entorno gráfico proporcionando por el Sistema X Window. Este lanzamiento de GNU Linux incluye específicamente el lanzamiento X11R6. una implementación de código abierto creada para manejar el desarrollo y la estrategia para el sistema X y sus tecnologías asociadas.8 del sistema X Window. Las aplicaciones cliente de X existen en el espacio del usuario. la extensión XRender para fuentes anti-alias. El servidor de X (el binario Xorg) escucha por conexiones desde las aplicaciones cliente X a través de la red o una interfaz local de loopback.Org es un proyecto de gran escala que se apoya en un gran número de desarrolladores en todo el mundo. creando una interfaz gráfica del usuario (GUI) y pasando peticiones al servidor de X.1 .El lanzamiento X11R6. los entornos de ventanas han existido desde hace décadas. Sin 25 de Mayo 445 Piso 2 (1002) Bs.Org. un diseño modular basado en controladores y soporte para hardware de vídeo y dispositivos de entrada modernos. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. siendo éstos precursores de muchos de los utilizados en los sistemas operativos actuales. El Sistema X Window Mientras que el corazón de GNU Linux es el kernel.Org tales como soporte para la aceleración de hardware 3D. • 9. para muchos usuarios. un teclado o un ratón. En el mundo UNIX™.8 residen principalmente en dos ubicaciones: /usr/X11R6/ Contiene el servidor X y algunas aplicaciones cliente así como también archivos de cabecera X. así como la posibilidad de ejecutarse en diferentes sistemas operativos y plataformas. también llamado simplemente X. El sistema X Window utiliza una arquitectura cliente-servidor. los manejadores de display de X y muchos otros componentes base.conf (que deja obsoleto al archivo /etc/X11/XftConfig). X.ar . Presenta una amplia gama de soporte para diferentes dispositivos de hardware y arquitecturas. A través de los años X se ha convertido en el entorno gráfico (GUI) predominante para sistemas operativos del tipo UNIX. la cual incluye muchas mejoras de tecnología de punta para X.com. Esto incluye archivos de configuración para el servidor X mismo.8 no se seleccionen para la instalación. que puede ser una tarjeta gráfica. bibliotecas. un monitor. a menos que los paquetes X11R6.8 como la base del sistema X Window. /etc/X11/ Contiene archivos de configuración para aplicaciones cliente y servidor de X. requiere una configuración detallada.

X necesitará ser reconfigurado.com. La mejor forma de hacer esto es usando la Herramienta de configuración de X.ar . Entornos de escritorio Un entorno de escritorio une diferentes clientes de X. la GTK+ 2 y la Qt. desde el rudimentario Administrador de pestañas de ventanas hasta un entorno de escritorio altamente desarrollado. las aplicaciones KDE pueden ejecutarse en GNOME y viceversa. interactivo como GNOME.conf. Ambos entornos GNOME y KDE tienen aplicaciones de productividad avanzadas. las aplicaciones cliente X pueden conectarlo y crear una GUI para el usuario. En algunas situaciones. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. 25 de Mayo 445 Piso 2 (1002) Bs. vaya al Botón de menú principal (en el Panel) => Configuración del sistema => Visualización. se deben conectar dos clases principales de aplicaciones clientes X al servidor X: un entorno de escritorio y un gestor de ventanas.Entornos de escritorio y gestores de ventanas Una vez que un servidor X se esté ejecutando. los cuales cuando se usan juntos crean un ambiente de usuario gráfico común y una plataforma de desarrollo. tales como procesadores de palabras.2 . Los entornos de escritorio tienen características avanzadas las cuales permiten a los clientes X y a otros procesos en ejecución. /etc/X11/xorg. Un rango de GUIs están disponibles con GNU Linux. • KDE — Un entorno de escritorio alternativo basado en el conjunto de herramientas gráficas Qt 3.embargo. Para comenzar la Herramienta de configuración de X mientras se esté en una sesión activa de X. si la tarjeta de vídeo o el monitor cambian. con el que la mayoría de los usuarios de GNU Linux están familiarizados. Para crear lo último.2.1. una GUI más avanzada. GNU Linux proporciona dos entornos de escritorio: • GNOME — Es el entorno de escritorio por defecto en Red Hat Enterprise Linux basado en el conjunto de herramientas gráficas GTK+ 2. 9. Después de usar la Herramienta de configuración de X durante una sesión de X.As. comunicarse unos con otros a la vez que se permite a todas las aplicaciones escritas para funcionar en ese ambiente a que realicen tareas avanzadas. • 9. Adicionalmente. la reconfiguración del servidor X puede requerir la edición manual de su archivo de configuración. si ambas bibliotecas estan presentes. los cambios tendrán efecto después que cierre la sesión y luego la vuelva a iniciar. tales como operaciones de arrastrar y soltar. hojas de cálculo y navegadores Web así como herramientas para personalizar la apariencia de la GUI.

los vínculos del botón del ratón y teclas especificadas por el usuario.com. • metacity — El gestor de ventanas Metacity es el manejador de ventanas por defecto del entorno GNOME. • twm — El minimalista Administrador de pestañas de ventanas. 25 de Mayo 445 Piso 2 (1002) Bs. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Puesto que está diseñado para ser un gestor que se ejecuta de forma independiente.Archivos de configuración del servidor X El servidor X es un binario ejecutable (/usr/X11R6/bin/Xorg) que carga dinámicamente cualquier módulo de servidor X necesario en el momento de ejecución desde el directorio /usr/X11R6/lib/modules/. no se debería utilizar en conjunto con los entornos de escritorios GNOME o KDE.As. donde <ruta-al-gestordeventanas> es la ubicación del archivo binario de gestor de ventanas. el comportamiento del foco. Cuando se instala GNU Linux.ar .conf. Es instalado como parte de la versión X11R6. Estos gestores de ventanas pueden ejecutarse sin los entornos de escritorio para obtener una mejor impresión de sus diferencias. Se incluyen cuatro gestores de ventanas con GNU Linux: • kwin — El gestor de ventanas KWin es el manejador por defecto para el entorno KDE.3 . mientras que otros son opcionales y deben ser especificados en el archivo de configuración del servidor X. Es un manejador de ventanas eficiente que soporta temas personalizados. Su propósito principal es controlar la forma en que las ventanas gráficas son posicionadas. donde <nombre-de-gestordeventanas> es el nombre del gestor de ventanas sobre el cual está preguntando.9. teclee el comando xinit -e <ruta-algestordeventanas>. • 9. en algunos casos. Gestores de ventanas Los gestores de ventanas son programas clientes de X que son o parte del entorno de escritorio o. es un gestor básico independiente. • mwm — El gestor de ventanas Motif. El archivo binario puede ser encontrado escribiendo which <nombre-degestordeventanas>. los archivos de configuración para X son creados usando la información reunida sobre el hardware del sistema durante el proceso de instalación. El archivo de configuración para el servidor X es /etc/X11/xorg.2. Para hacer esto.8. el cual proporciona el conjunto de herramientas más básicas de cualquier gestor de ventanas y puede ser usado bien sea de forma independiente o con un entorno de escritorio. Los manejadores de ventanas controlan las barras de títulos. Algunos de estos módulos son cargados automáticamente por el servidor.2. El servidor X y los archivos de configuración asociados son almacenados en el directorio /etc/X11/. redimensionadas o movidas. Es un manejador de ventanas simple y eficiente que también soporta temas personalizados. independientes.

conf Mientras que casi nunca se necesita editar manualmente el /etc/X11/xorg.1. • 0.3. A continuación un ejemplo de la sección ServerFlags: Section "ServerFlags" Option "DontZap" "true" EndSection 25 de Mayo 445 Piso 2 (1002) Bs.ar . ServerFlags La sección opcional ServerFlags contiene varios parámetros globales del servidor X. on. Cualquier parámetro en esta sección puede ser sobreescrito por las opciones colocadas en la sección ServerLayout (refiérase a Sección 9. false.3. 9. Los valores boleanos aceptados son: • 1. o yes — Activa la opción. Las líneas que comienzan con un símbolo de almohadilla (#) no son leídas por el servidor X y son usadas como comentarios legibles. Dentro de cada sección.1. Lo siguiente son algunas de las secciones más importantes ordenadas como aparecen en un archivo /etc/X11/xorg.3.1. Cada sección comienza con una línea Section "<nombre-de-seccion>" (donde <nombre-deseccion> es el título para la sección) y termina con una línea EndSection. hay líneas conteniendo nombres de opciones y al menos un valor de opción. 9. es muy útil conocer sobre las diferentes secciones y los parámetros opcionales disponibles. xorg.conf típico.com.conf. La estructura de XFree86 El archivo /etc/X11/xorg. Se puede encontrar más información detallada sobre el archivo de configuración del servidor X en la página man de xorg.3 para más detalles).conf aceptan un interruptor boleano el cual activa o desactiva la característica.3. especialmente cuando se estén solucionando problemas.As.conf. ocasionalmente entre comillas (").9.1.conf está formado de muchas secciones diferentes las cuales hacen referencia a aspectos específicos del hardware del sistema. true. Algunas opciones dentro del archivo /etc/X11/xorg. o no — Desactiva la opción. Cada entrada dentro de la sección ServerFlags están en sus propias líneas y comienzan con el término Option seguido por una opción encerrada en dobles comillas . off.1.2. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.

Como mínimo.com. Si la tarjeta de vídeo tiene más de una cabeza. El ejemplo siguiente ilustra una sección ServerLayout típica: Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection Las entradas siguientes son usadas a menudo en la sección ServerLayout: • Identifier — Especifica un nombre único para esta sección ServerLayout.3. 9.1. • Screen — Especifica el nombre de la sección Screen a ser usado con el servidor X.As. 25 de Mayo 445 Piso 2 (1002) Bs. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Los números a la derecha de "Screen0" proporcionan las coordenadas absolutas X y Y para la esquina superior izquierda de la pantalla (0 0 por defecto).para terminar inmediatamente el servidor X. • "DontZoom" "<boleano>" — Cuando el valor de <boleano> está colocado a verdadero. esta configuración previene el uso de la combinación de teclas -. esta sección debe especificar un dispositivo de salida y al menos dos dispositivos de entrada (un teclado y un ratón).3.y --. ServerLayout La sección ServerLayout vincula los dispositivos de entrada y salida controlados por el servidor X. será necesaria otra entrada Screen con un número diferente y un identificador de sección Screen. Lo siguiente es un ejemplo de una entrada Screen típica: Screen 0 "Screen0" 0 0 El primer número en esta entrada de ejemplo Screen (0) indica que el primer conector del monitor o head en la tarjeta de vídeo usa la configuración especificada en la sección Screen con el identificador "Screen0".La siguiente es una lista de las opciones más útiles: • "DontZap" "<boleano>" — Cuando el valor de <boleano> está configurado a verdadero. Pueden estar presentes más de una opción Screen.ar . esta configuración previene moverse a lo largo de las resoluciones de vídeo configuradas usando las combinaciones de teclas -.

el servidor sólo leerá la primera sección que aparezca a menos que se especifique una sección ServerLayout alterna como un argumento de línea de comando. Es posible crear más de una sección ServerLayout.As.com. El siguiente ejemplo ilustra una sección Files: Section "Files" RgbPath FontPath EndSection "/usr/X11R6/lib/X11/rgb" "unix/:7100" Las siguientes entradas son usadas comúnmente en la sección Files: • RgbPath — Especifica la ubicación de la base de datos de colores RGB. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. 9. Reemplace <nombre-opcion> con una opción válida listada para esta sección en la página man de xorg. • FontPath — Especifica dónde el servidor X debe ser conectado para obtener las fuentes tipográficas desde el servidor de fuentes xfs. tal como la ruta de las fuentes tipográficas. • Option "<nombre-opcion>" — Una entrada opcional que especifica parámetros extra para esta sección. Sin embargo.conf.1.• InputDevice — Especifica el nombre de una sección InputDevice a ser usada con el servidor X. Cualquier sección listada aquí sobreescriben aquellas listadas en la sección ServerFlags. Por defecto. Vea la Sección 7. Files La sección Files configura las rutas para servicios vitales al servidor X.4. la FontPath es unix/:7100.3. Al menos deben haber dos entradas InputDevice: una para el ratón por defecto y una para el teclado por defecto. Esta base de datos define todos los esquemas de color en X y los junta para valores RGB especificos. • ModulePath — Un parámetro opcional el cual especifica directorios alternativos que almacenan 25 de Mayo 445 Piso 2 (1002) Bs. Las opciones CorePointer y CoreKeyboard indican que estos son el ratón y el teclado principales.4 para más información sobre X y fuentes tipográficas. Esto le dice al servidor X que obtenga información de fuentes usando sockets de dominio UNIX para la comunicación entre procesos (IPC) en el puerto 7100.ar .

Los sistemas típicamente tienen al menos dos secciones InputDevice. • Driver — Especifica el nombre del controlador del dispositivo que X debe cargar para el dispositivo. un teclado y un ratón.As. • Option — Especifica las opciones necesarias pertinentes al dispositivo. Para un ratón.com. Module La sección Module especifica cuales módulos del directorio /usr/X11R6/lib/modules/ cargará el servidor X. estas opciones incluyen: 25 de Mayo 445 Piso 2 (1002) Bs.módulos de servidor X. Esto es una entrada requerida. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. El ejemplo siguiente ilustra una sección Module típica: Section "Module" Load "dbe" Load "extmod" Load "fbdevhw" Load "glx" Load "record" Load "freetype" Load "type1" Load "dri" EndSection 9.6.ar . Los módulos añaden funcionalidad adicional al servidor X.1. InputDevice Cada sección InputDevice configura un dispositivo de entrada para el servidor X.3.3. El ejemplo siguiente ilustra una sección InputDevice típica para un ratón: Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "IMPS/2" Option "Device" "/dev/input/mice" Option "Emulate3Buttons" "no" EndSection Las entradas siguientes son comúnmente usadas en la sección InputDevice: • Identifier — Especifica un nombre único para esta sección InputDevice. 9.1.5.

0 A continuación se muestran entradas comunes usadas en la sección Monitor: • Identifier — Proporciona un nombre único para esta sección Monitor.0 50. La mejor forma de configurar un monitor es configurando X durante la instalación o usando la Herramienta de configuración de X.• Protocol — Indica el protocolo usado por el ratón. 25 de Mayo 445 Piso 2 (1002) Bs. el tamaño físico del área de dibujo del monitor. 9. la sección InputDevice tiene comentarios para permitir a los usuarios configurar opciones adicionales.1.com.conf para una lista de las opciones válidas para esta sección.0 . Por defecto.ViewSonic G773-2" 320 240 30. Esta es una entrada requerida. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.As. • Emulate3Buttons — Especifica si se va a permitir a un ratón de dos botones a que se comporte como uno de tres cuando se presionen ambos botones simultáneamente.3.180. tal como IMPS/2.ar . • DisplaySize — Un parámetro opcional que especifica. Consulte la página man de xorg. Monitor Cada sección Monitor configura un tipo de monitor usado por el sistema.7. en milímetros. pueden ocurrir varias instancias para cada tipo de monitor en uso con la máquina.70.0 . • Device — Indica la ubicación del dispositivo físico. Mientras una sección Monitor es lo mínimo. • VendorName — Parámetro opcional que muestra el nombre del fabricante del monitor. Este ejemplo muestra una sección de Monitor típica: Section "Monitor" Identifier VendorName ModelName DisplaySize HorizSync VertRefresh EndSection "Monitor0" "Monitor Vendor" "DDC Probed Monitor . • ModelName — Parámetro opcional que muestra el nombre del modelo del monitor.

• Driver — Especifica cuál controlador debe cargar el servidor X para poder utilizar la tarjeta de vídeo. Aunque una sección Device es lo mínimo.• HorizSync — Especifica el rango de la frecuencia de sincronización horizontal compatible con el monitor. Estos valores ayudan al servidor X a determinar la validez de las entradas Modeline especificadas o incorporadas para el monitor. el cual es instalado con el paquete hwdata. Device Cada sección Device configura una tarjeta de vídeo en el sistema. Reemplace <nombre-opcion> con una opción válida listada para esta sección en la página man de xorg.com. en kHz. 25 de Mayo 445 Piso 2 (1002) Bs. también se pueden tener instancias adicionales para cada tarjeta de vídeo instalada en la máquina.3.conf. La mejor forma de configurar una tarjeta de vídeo es configurando X durante el proceso de instalación o usando la Herramienta de configuración de X. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. en Hz.ar . Se puede encontrar una lista de los controladores en /usr/X11R6/lib/X11/Cards. El siguiente ejemplo ilustra una sección Device típica para una tarjeta de vídeo: Section "Device" Identifier Driver VendorName BoardName VideoRam Option EndSection "Videocard0" "mga" "Videocard vendor" "Matrox Millennium G200" 8192 "dpms" Las siguientes entradas son usadas comúnmente en la sección Device: • Identifier — Especifica un nombre único para esta sección Device. • Option "<nombre-opcion>" — Una entrada opcional que especifica parámetros extra para la sección. • Modeline — Un parámetro opcional el cual especifica los modos de vídeo adicionales para el monitor en resoluciones particulares. Esta es una entrada requerida. Estos valores ayudan a que el servidor X determine la validez de las entradas incorporadas o especificadas en Modeline para este monitor.8. Vea la página man de xorg. • VertRefresh — Especifica los rangos de frecuencias de actualización verticales soportados por el monitor.conf para una explicación más detallada de las entradas Modeline. con ciertas resoluciones de refrescamiento vertical y sincronización horizontal.1.As. 9.

1. Si múltiples monitores son conectados a diferentes cabezales en la misma tarjeta de vídeo.conf. Esta opción es útil solamente para tarjetas de vídeo con múltiples cabezales. Este valor sólo es necesario para tarjetas de vídeo que el servidor X no puede probar para detectar la cantidad de RAM. Reemplace <nombre-opcion> con una opción válida listada para esta sección en la página man de xorg.• VendorName — Un parámetro opcional el cual especifica el fabricante de la tarjeta de vídeo. Una de las opciones más comunes es "dpms". Mientras que una sección Screen es lo mínimo. Screen Cada sección Screen vincula una tarjeta de vídeo (o cabezal) a un monitor referenciando la sección Device y la sección Monitor para cada uno. deben existir secciones Device separadas y cada una de estas secciones debe tener un valor Screen diferente.9. • BoardName — Un parámetro opcional el cual especifica el nombre de la tarjeta de vídeo.com. • Option "<nombre-opcion>" — Una entrada opcional que especifica parámetros extra para la sección. • Screen — Una entrada opcional la cual especifica que conector de monitor o cabezal en la tarjeta de vídeo configura la sección Device. pueden ocurrir instancias adicionales para cada combinación de tarjeta de vídeo y monitor presente en la máquina. El valor para cada cabezal adicional incrementa este valor en uno. • VideoRam — Un parámetro opcional el cual especifica la cantidad de RAM disponible en la tarjeta de vídeo en kilobytes.As. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Esta opción es necesaria solamente para sistemas con múltiples tarjetas. El primer cabezal en la tarjeta de vídeo tiene un valor de 0.3. El ejemplo siguiente ilustra una sección Screen típica: Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 16 SubSection "Display" Depth 24 25 de Mayo 445 Piso 2 (1002) Bs. 9. • BusID — Una entrada opcional la cual especifica la ubicación del bus de la tarjeta de vídeo. la cual activa la configuración de conformidad de energía Service Star para el monitor. Los valores para la entrada Screen deben ser enteros.ar .

DRI puede mejorar el rendimiento de 2D a través de la aceleración de hardware.Modes "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x EndSubSection SubSection "Display" Depth 16 Modes "1152x864" "1024x768" "800x600" "640x480" EndSubSection EndSection Las siguientes entradas son usadas a menudo en la sección Screen: • Identifier — Especifica un nombre único para esta sección Screen. 9. Múltiples entradas de DefaultDepth son permitidas.3. Además. El ejemplo siguiente muestra una sección DRI típica: Section "DRI" Group 25 de Mayo 445 Piso 2 (1002) Bs. 0 Tel 4313–2484 /2486/2475 opensource@osi-sistemas. • DefaultDepth — Especifica la profundidad del color por defecto en bits. el valor por defecto es 16. si es soportado por el controlador de la tarjeta. pero al menos una debe estar presente. • Device — Especifica el nombre único de una sección Device. Reemplace <nombre-opcion> con una opción válida listada para esta sección en la página man de xorg. • Monitor — Especifica el nombre único de una sección Monitor.conf.10. Esta es una entrada requerida.com. • SubSection "Display" — Especifica los modos de la pantalla disponibles en una profundidad de color particular. Una sección Screen puede tener múltiples subsecciones Display. lo que proporciona miles de colores. DRI es una interfaz que permite a las aplicaciones de software 3D sacar provecho de las capacidades de aceleración de hardware 3D incorporadas en la mayoría del hardware moderno de vídeo. • Option "<nombre-opcion>" — Una entrada opcional que especifica parámetros extra para la sección. En el ejemplo anterior.ar . Esta es una entrada requerida. Esta es una entrada requerida.1. DRI La sección opcional DRI especifica parámetros para Direct Rendering Infrastructure (DRI).As. pero debe haber al menos una para la profundidad de color especificada en la entrada DefaultDepth. Esta sección es ignorada a menos que DRI esté activada en la sección Module.

tales como -adobe-helvetica-medium-r-normal--*-120-*-*-*25 de Mayo 445 Piso 2 (1002) Bs.net/.gtkrc.com. Este sistema es usado automáticamente para aplicaciones programadas usando el conjunto de herramientas gráficas Qt 3 o GTK+ 2. las aplicaciones GTK+ 1. se puede configurar una fuente añadiendo las líneas siguientes al archivo ~/. El subsistema de fuentes más nuevo Fontconfig simplifica la gestión de fuentes y proporciona características de visualización avanzadas.conf el cual no se debería modificar manualmente. xfs). llamado el subsistema de fuentes tipográficas base de X. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.As.4 – Fuentes GNU Linux utiliza dos métodos para manejar y mostrar fuentes tipográficas bajo X. el subsistema de fuentes Fontconfig/Xft reemplazará el subsistema de fuentes base de X.ar .2 no son afectadas por ningún cambio realizado a través del diálogo Preferencias de tipografía (accesado al seleccionar Botón de menú principal [en el Panel] => Preferencias => Fuentes).1.4. 9. está basado en el Servidor de fuentes tipográficas de X (X Font Server.mine: style "user-font" { fontset = "<font-specification>" } widget_class "*" style "user-font" Sustituya <font-specification> con una especificación de fuente en el estilo utilizado por las aplicaciones X tradicionales. el cual tiene más de 15 años.sourceforge. tales como anti-aliasing. Esta sección discute cómo configurar fuentes para X usando ambos sistemas.Mode EndSection 0666 Puesto que tarjetas de vídeo diferentes utilizan DRI de formas diferentes. Este sistema. Fontconfig El subsistema de fuentes Fontconfig permite a las aplicaciones accesar directamente fuentes en el sistema y usar Xft u otros mecanismos de traducción de fuentes para interpretar fuentes Fontconfig con anti-aliasing avanzados. • 9. Por compatibilidad. no modifique estos valores para esta sección sin primero referirse al http://dri. Con el tiempo. Es importante resaltar que Fontconfig utiliza el archivo de configuración /etc/fonts/fonts. GNU Linux incluye el subsistema de fuentes original. Las aplicaciones gráficas pueden usar la librería Xft con Fontconfig para dibujar texto a la pantalla. Para estas aplicaciones. Sugerencia Debido a la transición al nuevo sistema de fuentes.

9.4 para más información sobre la entrada FontPath. 2.As.d/init. 25 de Mayo 445 Piso 2 (1002) Bs. Para añadir fuentes para un usuario individual.2. Los diferentes servidores deberán estar separados por comas.com. Utilice el comando fc-cache para actualizar la información caché de la fuente. tal como local/ o similar.*-*-*. La siguiente es una lista de algunas opciones comunes: • alternate-servers — Configura una lista de servidores alternativos de fuentes tipográficas que podrán ser utilizados en el caso de que el servidor actual no esté disponible.4. copie las nuevas fuentes en el directorio .d/xfs inicia el servidor xfs.conf. 1. Sistema de fuentes base de X Por compatibilidad. El servidor X busca por un servidor de fuentes tipográficas especificado en la directiva FontPath bajo la sección Files del archivo de configuración /etc/X11/xorg.3.2. Se pueden configurar muchas opciones dentro del archivo /etc/X11/fs/config.1.4. Es una buena idea crear un nuevo subdirectorio. para ayudar a distinguir entre las fuentes del usuario y las instaladas por defecto. Se puede obtener una lista completa de las fuentes base ejecutando xlsfonts o creándolas interactivamente usando el comando xfontsel. Configuración de xfs El script /etc/rc.fonts/).4. Refiérase a la Sección 7. Para añadir fuentes tipográficas globales al sistema. GNU Linux proporciona el subsistema de fuentes tipográficas base de X. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. El servidor X se conecta al servidor xfs en un puerto especificado para adquirir la información sobre las fuentes tipográficas. como en el ejemplo siguiente: fc-cache <path-to-font-directory> En este comando. el cual utiliza el servidor de fuentes X (xfs) para proporcionar fuentes tipográficas a las aplicaciones clientes X. Por esta razón. sustituya <path-to-font-directory> con el directorio conteniendo las nuevas fuentes (bien sea /usr/share/fonts/local/ o /home/<user>/.ar . copie las fuentes al directorio /usr/share/fonts/. 9. el servicio xfs debe estar ejecutándose para que X pueda arrancar. Añadir fuentes a Fontconfig Añadir fuentes al subsistema Fontconfig es un proceso bastante directo.1.1.1.fonts/ en el directorio principal del usuario. 9.

para activarla para todas las fuentes utilice all.As. • default-resolutions — Especifica una lista de las resoluciones soportadas por el servidor X. Cada resolución de la lista debe estar separada por una coma. Para desactivar esta característica utilice none. esta opción está configurada con tcp para evitar que xfs escuche utilizando puertos TCP. • error-file — Le permite especificar la ruta y el nombre de archivo donde se almacenarán los informes de error de xfs. El valor por defecto de 120 se corresponde a fuentes de 12 puntos. • default-point-size — Configura el tamaño de punto por defecto para cualquier fuente que no especifique este valor. • clone-self — Permite al servidor de fuentes clonar una nueva versión de sí mismo si se llega al límite definido por el parámetro client-limit. • no-listen — Dice a xfs que no escuche determinados protocolos. Puede utilizar la cadena :unscaled inmediatamente después de la ruta hacia las fuentes para hacer que las fuentes no escalables se carguen primero. El número por defecto es 10. El valor de esta opción está estimado en décimas de puntos. Entonces. Por defecto.com.ar .• catalogue — Lista ordenada de rutas que contienen las fuentes tipográficas a utilizar. por motivos de seguridad. elimine esta línea. • 25 de Mayo 445 Piso 2 (1002) Bs. esta opción está configurada como on. o para activar esta característica solamente para fuentes de 16-bit use 16. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. • client-limit — Configura el número máximo de clientes que el servidor de fuentes podrá servir. use-syslog — Especifica si utilizar el registro de errores del sistema. podrá especificar la ruta completa de nuevo de tal forma que las otras fuentes que sean escalables puedan ser cargadas también. • deferglyphs — Especifica si retrasar la carga de glyphs (el gráfico usado para visualmente representar una fuente). Sugerencia Si está utilizando xfs para servir fuentes sobre la red. Cada ruta hacia las fuentes deberá estar separada por una coma en la lista. • port — Especifica el puerto TCP en el cual xfs escuchará si no-listen no existe o está entre comentarios. Por defecto.

sin embargo.5.2 para más información sobre los gestores de visualización.As. conocido como nivel de ejecución 5. El comando startx es una interfaz del programa xinit el cual lanza el servidor X (Xorg) y conecta aplicaciones clientes X al mismo.com. Nivel de ejecución 3 Cuando estamos en el nivel de ejecución 3. Añadir fuentes a xfs Para añadir fuentes al subsistema base de fuentes de X (xfs). Vuelva a cargar el archivo de configuración del servidor de fuentes xfs.5 .scale 4. utilizando el comando siguiente como root: service xfs reload • 9. 9.Niveles de ejecución y X En la mayoría de los casos.4. Copie el nuevo archivo de fuente en el directorio /usr/share/fonts/local/ 3. Refiérase a la Sección 9.1. Es posible.4. 25 de Mayo 445 Piso 2 (1002) Bs. Las siguientes subsecciones revisan cómo inicia X en los niveles de ejecución 3 y 5.2. Si aún no existe. consulte la Sección 1. la forma habitual de iniciar una sesión X es escribiendo el comando startx. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.9. la instalación por defecto de GNU Linux configura una máquina para arrancar en un entorno de conexión gráfico. Actualice la información de la fuente emitiendo el siguiente comando como root: ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/fonts. cree un directorio llamado /usr/share/fonts/local/ usando el comando siguiente como usuario root: mkdir /usr/share/fonts/local/ Si es necesario la creación del directorio /usr/share/fonts/local/. se debe añadir a la ruta xfs usando el comando siguiente como root: chkfontpath --add /usr/share/fonts/local/ 2. Puesto que el usuario ya está conectado al sistema en el nivel de ejecución 3.5. siga los pasos siguientes: 1. Para más información sobre los niveles de ejecución. startx no lanzará un gestor de visualización o autenticará al usuario.ar . arrancar en el modo multiusuario de sólo texto llamado nivel de ejecución 3 y comenzar una sesión X desde allí.2.

Dependiendo de los entornos de escritorio instalados en su máquina. Xmodmap y Xkbmap en el directorio /etc/X11/.As.2. reinicio o conexión al sistema. Luego.Xclients en el directorio principal del usuario inicia el entorno de escritorio especificado por el usuario en el archivo . incluyendo . Si existen los archivos Xmodmap y Xkbmap. reiniciar o conectarse al sistema. estos son usados por la utilidad xmodmap para configurar el teclado. el script estándar /etc/X11/init/Xclients intenta iniciar otro entorno de escritorio. El script por defecto xinitrc luego buscará por los archivos definidos por el usuario y archivos de sistema por defecto.Xkbmap en el directorio principal del usuario y Xresources. 9. El archivo Xresources es leído para asignar valores de preferencia específicos a las aplicaciones.Xclients en el directorio principal del usuario y cambia a /etc/X11/xinit/Xclients si no lo puede encontrar. El propósito del archivo Xclients es arrancar el entorno de escritorio o posiblemente.xinitrc no se encuentra.xinitrc en el directorio principal del usuario para definir el entorno de escritorio y posiblemente otras aplicaciones clientes X a ejecutar.ar .com. llamada un gestor de visualización. Después de configurar estas opciones. Un script muy importante en este directorio es xinput.5. . el script xinitrc intenta ejecutar . • GNOME — Es por lo general el gestor de visualización por defecto para GNU Linux y permite que el usuario configure los parámetros de idioma. El usuario debe autenticarse usando el gestor de visualización antes de que se inicien cualquier entorno de escritorio o gestores de ventanas.Xclients no existe en el directorio principal del usuario. busca un archivo . El script . Tel 4313–2484 /2486/2475 opensource@osi-sistemas. Nivel de ejecución 5 Cuando el sistema arranca en el nivel de ejecución 5. sólo un gestor de ventanas básico.d/. el cual configura los parámetros tales como el idioma por defecto. El usuario es devuelto a una sesión de modo texto después de desconectarse de X del nivel de ejecución 3.Xmodmap y . xdm — Este es un gestor de visualización muy básico que sólo permite que el usuario se conecte al sistema.Xclients-default. KDE — El gestor de visualización de KDE que permite a los usuarios apagar. se lanza una aplicación cliente de X especial.Xresources. Si este archivo .Cuando startx comienza. intentando primero con GNOME y luego con KDE seguido por twm. • • 25 de Mayo 445 Piso 2 (1002) Bs. se utilizará el archivo por defecto /etc/X11/xinit/xinitrc. el script xinitrc ejecuta todos los scripts localizados en el directorio /etc/X11/xinit/xinitrc. están disponibles tres gestores de visualización diferentes para manejar la autenticación de los usuarios. Si . cierre del sistema.

xsession y . Una vez que el usuario se conecte al sistema. consulte /usr/share/doc/gdm-<version-number>/README (donde <version-number> es el número de la versión para el paquete gdm instalado) y la página man de xdm. el script /etc/X11/xdm/Xsession verificará los archivos . los clientes que se conectan a él y la variada gama de entornos de escritorio y gestores de ventanas.d/.Recursos adicionales Se podría decir mucho más sobre el servidor X. El usuario es devuelto al gestor de visualización después de desconectarse de X desde el nivel de ejecución 5. Cuando el usuario termina una sesión X en la visualización por defecto (:0) y se desconecta. Si el entorno de escritorio no es especificado en el gestor de visualización.6. el script prefdm determina el preferido haciendo referencia al archivo /etc/sysconfig/desktop. • 9. incluyendo la configuración del sistema y los recursos del usuario. El usuario puede especificar cuál entorno de escritorio desea utilizar cuando se autentican usando los gestores de visualización GNOME o KDE. el script /etc/X11/xdm/Xsession se ejecuta para llevar a cabo muchas de las tareas que son normalmente realizadas por el script xinitrc cuando arranca X desde el nivel de ejecución 3. se utiliza el archivo /etc/X11/xinit/Xclients para seleccionar un entorno de escritorio o gestor de ventanas para usarse de la misma forma que en el nivel de ejecución 3. Para más información sobre cómo los gestores de visualización controlan la autenticación de los usuarios. Como último recurso. el script /etc/X11/xdm/GiveConsole corre para asignar la propiedad de la consola al usuario. El gestor de visualización original. gestor de visualización Refiérase al archivo (donde <versionlistado de las opciones Cada uno de los gestores de visualización hace referencia al archivo /etc/X11/xdm/Xsetup_0 para configurar la pantalla de conexión. Esto reinicia el servidor X.1. seleccionándolo desde el menú Sesiones (accesado al seleccionar Botón de menú principal [en el Panel] => Preferencias => Más Preferencias => Sesiones).Cuando arranque en el nivel de ejecución 5. toma el control liberando un nuevo gestor de visualización. despliega una nueva ventana de conexión y reinicia el proceso completo otra vez. así como también ejecutar los scripts en el directorio /etc/X11/xinit/xinitrc. el script /etc/X11/xdm/TakeConsole se ejecuta y vuelve a asignar la propiedad de la consola al usuario root.com. que continúa ejecutándose después que el usuario se conecta.6 . /usr/share/doc/initscripts-<version-number>/sysconfig. 25 de Mayo 445 Piso 2 (1002) Bs.Xclients en el directorio principal del usuario para decidir cuál entorno de escritorio cargar. Documentación instalada • /usr/X11R6/lib/X11/doc/README — Describe brevemente la arquitectura de XFree86 y cómo obtener información adicional sobre el proyecto XFree86 como nuevo usuario. 9.txt number> es el número de la versión del paquete initscripts) para ver un disponibles para este archivo.ar . Luego. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.As.

9.conf — Contiene información sobre los archivos de configuración xorg. GTK+/GNOME Application Development por Havoc Pennington. Tel 4313–2484 /2486/2475 opensource@osi-sistemas.org/ — Página principal del entorno de escritorio KDE. http://www. Prima Publishing — Discute XFree86 y su relación con los entornos de escritorio más populares. mostrando cómo iniciarse con GTK+.freedesktop.conf incluyendo el significado y la sintaxis para las diversas secciones dentro de los archivos.As. — Introduce a los programadores la arquitectura de GNOME.gnome. Wrox Press. http://www. centrándose en código de ejemplo a través de una visión de las APIs disponibles.8.Org.• /usr/X11R6/lib/X11/doc/RELNOTES — Para usuarios avanzados que deseen leer más sobre las últimas características presentes en XFree86. Sitios Web útiles • • • • http://www.com. • • • 25 de Mayo 445 Piso 2 (1002) Bs.org/ — Página principal del proyecto GNOME. Beginning GTK+ and GNOME por Peter Wright. Inc. http://nexp.2. http://xorg. Que — Proporciona un punto de vista experto sobre la operación de XFree86 en sistemas Linux. 9.X. man Xorg — Describe el servidor de pantallas X11R6.8 se proporciona junto con GNU Linux para controlar el hardware necesario y proporcionar un entorno GUI.8 del sistema X Window.3.6.ar .cs.kde. man xorg. proporcionando binarios y documentación para el sistema X Window. que produce el lanzamiento X11R6.6.org/ — Página principal de la Fundación X.sourceforge.8.Org — La página man principal para información sobre la Fundación X. El lanzamiento X11R6.org/ — Página principal para el lanzamiento XR116. http://dri. Libros relacionados • • • • • • The Concise Guide to XFree86 for Linux por Aron Hsiao. The New XFree86 por Bill Ball.net/ — Página principal del proyecto DRI (Direct Rendering Infrastructure). man X.edu/fontconfig/ — Página principal del subsistema de fuentes Fontconfig para X. New Riders Publishing — Una visión avanzada del corazón de la programación en GTK+.pdx.Org. como GNOME y KDE. DRI es el corazón del componente de aceleración 3D de X.

• KDE 2.ar . modificar y/o distribuir esta documentación siempre y cuando cite a los autores de estas páginas.tldp. y su distribución o reproducción en cualquier forma y por cualquier medio está restringida a los términos de la licencia GNU GPL http://es.As. Sams Publishing — Instruye a los programadores principiantes y avanzados sobre cómo sacarle partido a las diferentes pautas de entorno necesarias para construir aplicaciones QT para KDE. Tel 4313–2484 /2486/2475 opensource@osi-sistemas. 25 de Mayo 445 Piso 2 (1002) Bs. Copyrleft © 2008-2009 OSI-Sistemas. Los documentos publicados en estas páginas son propiedad de sus respectivos autores.0 Development por David Sweet y Matthias Ettrich.com.html salvo indicación expresa que afirme lo contrario. Usted está autorizado a copiar.org/htmls/gpl.

Sign up to vote on this title
UsefulNot useful