Certificación LPI 101

86
Certificación LPIC-1 1 Certificación LPI 101 Métodos de Instalación Métodos de instalación alternativos El proceso de instalación de Sistemas Operativos Linux es una tarea similar para casi todas las distribuciones Linux existentes. Una de las formas mas usadas e implementadas es la basada en los discos de instalación de Linux los cuales puedes descargar directamente en formato .ISO desde la pagina oficial de la distribución Linux que tu elijas. Así mismo, existen métodos de instalación alternativos que pueden ser aplicados cuando por ejemplo no disponemos de un lector DVD en el equipo, algunos de estos métodos alternativos de instalacion son los siguientes: Mediante un servidor HTTP Mediante un Disco Duro Instalacion desde CD o DVD Varias distribuciones linux asignan diferentes nombres para la estructura de sus carpetas de sus discos de instalacion, la escructura generica de estos directorios es la siguiente: Carpeta paquetes Esta carpeta contiene los paquetes precompilados de Linux. La siguiente tabla muestra los nombres asociados a la carpeta “paquetes” de cada una de las distribuciones linux mas relevantes. Sistema Operativo Carpeta que almacena los paquetes precompilados Red Hat Server CentOS CentOS Fedora Fedora Debian dists Ubuntu dists Carpeta imagenes Esta carpeta alberga los ficheros necesarios para llevar a cabo el proceso de instalacion de Linux como son: 1.Ficheros de boteo para el arranque de Linux 2.Modulos del Nucleo de Linux 3.Ficheros para el rescate de sistemas Linux Algunos de estos ficheros pueden ser copiados a una memoria USB o CD para ser usados como discos de arranque. Para sistemas operativos Linux de la familia Red Hat la carpeta imagenes esta relacionada con las carpetas

description

LPI 101 Español

Transcript of Certificación LPI 101

Page 1: Certificación LPI 101

Certificación LPIC-1

1

Certificación LPI 101

Métodos de InstalaciónMétodos de instalación alternativos

El proceso de instalación de Sistemas Operativos Linux es una tarea similar para casitodas las distribuciones Linux existentes. Una de las formas mas usadas eimplementadas es la basada en los discos de instalación de Linux los cuales puedesdescargar directamente en formato .ISO desde la pagina oficial de la distribución Linuxque tu elijas. Así mismo, existen métodos de instalación alternativos que pueden seraplicados cuando por ejemplo no disponemos de un lector DVD en el equipo, algunosde estos métodos alternativos de instalacion son los siguientes:

Mediante un servidor HTTP Mediante un Disco Duro

Instalacion desde CD o DVD

Varias distribuciones linux asignan diferentes nombres para la estructura de sus carpetasde sus discos de instalacion, la escructura generica de estos directorios es la siguiente:

Carpeta paquetes

Esta carpeta contiene los paquetes precompilados de Linux. La siguiente tabla muestralos nombres asociados a la carpeta “paquetes” de cada una de las distribuciones linuxmas relevantes.

Sistema OperativoCarpeta que almacena los paquetesprecompilados

Red Hat Server

CentOS CentOS

Fedora Fedora

Debian dists

Ubuntu dists

Carpeta imagenes

Esta carpeta alberga los ficheros necesarios para llevar a cabo el proceso de instalacionde Linux como son:

1.Ficheros de boteo para el arranque de Linux 2.Modulos del Nucleo de Linux3.Ficheros para el rescate de sistemas Linux Algunos de estos ficheros pueden sercopiados a una memoria USB o CD para ser usados como discos de arranque. Parasistemas operativos Linux de la familia Red Hat la carpeta imagenes esta relacionadacon las carpetas

Page 2: Certificación LPI 101

Certificación LPIC-1

2

images isolinux

Para sistemas operativos Linux de la Familia Debian la carpeta imagenes estarelacionada con las carpetas

casper isolinux

Carpeta dosutils

Este directorio contiene herramientas que pueden ser usadas para preparar la instalacionde Linux. Estas herramientas son programas diseñadas en MS-DOS muy partiularmenteel comando rawrite. Rawrite es un programa que graba una imagen de un archivo en undisquette,cd o USB. Puede ser usado para grabar la imagen de un sistema operativo quesea utilizable como disco de arranque. La versión original fue escrita por Mark E.Becker a petición de Linus Torvalds Existen versiones para otros sistemas operativos.En Linux y otros Unix se puede usar la orden dd que ya viene incluida con el sistemaoperativo.

Instalacion desde un servidor HTTP

Configuracion de la instalacion HTTP

1.El primer paso sera instalar el servidor HTTP. Para sistemas operativos Linux de lafamilia Red Hat la instalacion de hace de la siguiente manera

[BASH] yum install -y httpd

Para sistemas operativos Linux de la familia Debian la instalacion de hace de lasiguiente manera

[BASH] apt-get install -y apache2

2.El siguiente paso sera introducir el medio de instalacion DVD a la unidad lectora dediscos, crear una carpeta dentro de la carpeta publica del servidor HTTP y luegomontarlo sobre dicha carpeta. Para sistemas operativos Linux de la familia Red Hat laubicacion de la carpeta publica es la siguiente:

/var/www/html/

Dentro de esta ruta se tiene que crear la carpeta y nombrarla con el nombre que ustedelija.

Para sistemas operativos Linux de la familia Debian la instalacion de hace de lasiguiente manera

/var/www/

Page 3: Certificación LPI 101

Certificación LPIC-1

3

Dentro de esta ruta se tiene que crear la carpeta y nombrarla con el nombre que ustedelija.

El comando para montar el medio de instalacion DVD es el siguiente:

[BASH] mount -t iso9660 -o loop /dev/dvd /var/www/html/carpeta

Esto ultimo para sistemas operativos Linux de la familia Red Hat y para sistemasoperativos Linux de la familia Debian

[BASH] mount -t iso9660 -o loop /dev/dvd /var/www/carpeta

3.Una vez montado el DVD en la carpeta publica del servidor HTTP deberas copiar elfichero

boot.iso

al escritorio de trabajo o en algun otro lugar Este fichero lo podras encontrar dentro dela carpetaimages

La ruta completa donde puedes escontrar este fichero es la siguiente:/var/www/html/carpeta/images/boot.iso

Esto ultimo para sistemas operativos Linux de la familia Red Hat y para sistemasoperativos Linux de la familia Debian/var/www/carpeta/images/boot.iso

4.Graba el fichero

boot.iso

en formato .iso en un CD con ayuda da algun programa de grabacion de datos comoK3B o Brasero.

5.Inserta el CD de arranque que acabas de crear en el lector del servidor y teclea enter.

6.Selecciona el idioma y tipo de teclado correspondiente:

7.En la seccion “Metodo de Instalacion” elige “HTTP”

8.En configuracion TCP/IP deshabilita la opcion IPv6 y solo deja habilitada la opcionIpv4

9.En configuracion HTTP deberas teclear la direccion IP en la cual tienes montado elmedio de instalacion DVD asi como tambien el nombre del directorio publico quecreaste en el servidor HTTP y teclear el boton “Acpetar”

NOTA:Este metodo de instalacion solo es aplicable a distribuciones Linux de lafamilia Red Hat

Page 4: Certificación LPI 101

Certificación LPIC-1

4

Instalacion desde un disco duro

Configuracion de la instalacion desde disco duro

1.El procedimiento es relativamente parecido al anterior para ello debera contar con losiguiente:

medio de Instalacion DVD La imagen .ISO de la distribucion

1.Si usted cuenta con el medio de instalacion DVD debera convertir este en una imagen.ISO, si ya cuenta con la imagen .ISO omita este punto y salte al siguiente paso, si no esasi siga leyendo. Inserte el medio de instalacion DVD en el lector del equipo y teclee elsiguiente comando para crear la imagen .ISO

[BASH] dd if=/dev/dvd of=/Ruta/En/Donde/Creara/La/Imagen/imagen.iso

2.Monta la imagen .ISO de la siguiente manera

[BASH] mount -t iso9660 -o loop imagen.iso /punto/De/Montaje

3.Copia los ficheros

* initrd.img

vmlinuz}}}

En alguna carpeta del sistema Estos ficheros los podras encontrar en la carpeta

isolinux

de la imagen .ISO que acabas de montar

5.Edita el fichero

/boot/grub/menu.lst

Y agrega el siguiente contenido al final del archivo

titleEn esta linea usted puede agregar un comentario sobre el Sistema Operativo aInstalar

rootEn esta linea se indica el disco duro y la particion del disco duro en donde seencuentra localizada la imagen .ISO del sistema operativo

kernel En esta linea se indica la ruta en donde copio el fichero “vmlinuz”initrd En esta linea se indica la ruta en donde copio el fichero “initrd.img”

No olvides guardar los cambios hechos al fichero

6.Desmonta la imagen .ISO de la siguiente forma:

[BASH] umount /punto/De/Montaje/imagen.iso

Page 5: Certificación LPI 101

Certificación LPIC-1

5

7.Lo siguiente sera reiniciar el equipo y justo cuando arranque el GRUB elegir la lineade instalacion del sistema Operativo Esta accion cargara el instalador del SistemaOperativo como si estuviera leeyendolo desde el medio de instalacion DVD

Disco de Rescate Linux

Si tu sistema operativo Linux se corrompe es posible recuperarlo usando un CD derescate, este CD de rescate es una version reducida de Linux que implementa un sistemade ficheros en la memoria RAM del equipo el cual tiene como funcion acceder alsistema de ficheros del disco duro como usuario “root”

Comenzado con el Disco de Rescate Linux

1.Introduce el medio de instalacion DVD en el lector de discos del equipo

2.Teclea en la pantalla la palabra

linux rescue

3.Selecciona el idioma y tipo de teclado correspondiente:

4.En configuracion de red, selecciona la opcion “No”

5.La siguiente ventana emergente intentara montar el sistema de ficheros de nuestroequipo en la ruta virtual /mnt/sysimage. Seleccione la opcion Continuar

6.Al terminar el proceso de arranque este nos mostrara una interfaz parecida al BASH

7.Teclee el comando

[BASH] fdisk /dev/hda

Esta accion nos arrojara el siguiente mensaje Presione la tecla “p” , esto nos mostrarauna lista con las distintas particiones alojadas en el disco duro, algo muy parecido alsiguiente ejemplo

8.De acuerdo a la informacion obtenida en el anterior punto, monte la particion quecontenga el sistema de ficheros de linux. Ejemplo:

[BASH] mount -t ext3 /dev/hda1 /tmp

9.Aplique el comando

chroot

Sobre la particion que acaba de montar Ejemplo:[BASH] chroot /tmp

Esto es porque existen dos sistemas de archivos , uno relacionado al virtualizando en lamemoria RAM y el segundo relacionado al sistema de ficheros del disco duro. Al

Page 6: Certificación LPI 101

Certificación LPIC-1

6

aplicar “chroot” sobre la particion montada tomaremos el control sobre el sistema deficheros del disco duro y con ello podremos ajecutar comandos administrativos sobre elequipo. 10.Por ultimo, si olvido la contraseña de root o si esta fue cambiada por alguienmas , podra recuperarla tecleando en consola lo siguiente:

[BASH] passwd

Cambiando la contraseña del usuario root. Nueva UNIX contraseña:}}}

Page 7: Certificación LPI 101

Certificación LPIC-1

7

Arquitectura del SistemaAsignacion de recursos

Para permitir que los perifericos y dispositivos del equipo se comuniquen directamentecon los recursos del sistema , en particular con el CPU (Central Processing Unit) elsistema asigna recursos tales como líneas y canales de comunicacion para cadadispositivo. Muy particulamente, estos recursos son conocidos como solicitudes deinterrupcion (IRQ), direcciones de entrada/salida y accesos directos a memoria(DMA).

Solicitudes de interrupcion (IRQ)

Antes de explicar que es una solicitud de interrupcion, entendamos primero cual es lafuncion de un procesador. El procesador es el encargado de procesar y administrar losdatos y peticiones que a este llegan, sin embargo un solo procesador no es capaz deprocesar simultaneamente varias peticiones , por lo que solo atiende de una a una laspeticiones que a el llegan, aqui es donde las solicitudes de interrupcion empiezan a jugarun papel importante. Suponga que un programa1 está siendo atendido por el procesadorpero subitamente una solicitud de interrupción llega al procesador,es entonces cuando elprograma1 llega a ser momentaneamente suspendido por un programa2. Este programa2es ahora el atendido por el procesador y hasta que este termine de ser atendido elprograma1 interrumpido puede continuar ejecutándose . Una interrupción se convierteen una interrupción de hardware cuando es solicitada por uno de los componentes dehardware del equipo. Cuando un periférico desea acceder a un recurso, envía un pedidode interrupción al procesador para llamar su atención. Los periféricos cuentan con unnúmero de interrupción que se denomina IRQ (Peticiones de Interrupción. Es como sicada periférico tirara de un "hilo" que está atado a una campana para indicarle al equipoque desea que le preste atención. Este "hilo" es, de hecho, una línea física que conectacada ranura de expansión así como cada interfaz entrada/salida a la motherboard.

Direcciones de Entrada/Salida

Las direcciones de entrada/ salida representan direcciones especificas en la memoria delsistema, dichas direcciones son asignadas por el CPU a cada uno de los dipositivos delhardware del sistema para que puedan escribir y leer datos sobre la misma.

Accesos Directos a Memoria (DMA)

El acceso directo a memoria (DMA) permite a cierto tipo de componentes del equipoacceder a la memoria del sistema para leer o escribir independientemente delprocesador. Muchos sistemas hardware utilizan DMA, incluyendo controladores deunidades de disco, tarjetas gráficas y tarjetas de sonido. DMA es una característicaesencial en todos los equipos modernos, ya que permite a dispositivos de diferentesvelocidades comunicarse sin someter al procesador a una carga masiva deinterrupciones. Una transferencia DMA consiste principalmente en copiar un bloque dememoria de un dispositivo a otro. En lugar de que el procesador inicie la transferencia,la transferencia se lleva a cabo por el controlador DMA. Un ejemplo típico es mover un

Page 8: Certificación LPI 101

Certificación LPIC-1

8

bloque de memoria desde una memoria externa a una interna más rápida. Tal operaciónno ocupa el procesador y como resultado puede ser planificado para efectuar otrastareas. Las transferencias DMA son esenciales para aumentar el rendimiento deaplicaciones que requieran muchos recursos.

Regularmente un equipo consta de 8 canales DMA. Los primeros cuatro canales DMAposeen un ancho de banda de 8 bits mientras que los DMA 4 a 7 poseen a su vez unancho de banda de 16 bits. Los canales DMA por lo general suelen asignarse de lasiguiente manera:

DMA0: libre DMA1: (tarjeta de sonido)/libre DMA2: controlador de disquete DMA3: puerto paralelo (puerto de la impresora) DMA4: controlador de acceso directo a memoria (conectado a DMA0) DMA1: (tarjeta de sonido)/libre DMA6: (SCSI)/libre DMA7: disponible

Listado de asignacion de recursos

El nucleo de linux agrupa la informacion relacionada a la asignacion de recursos en lacarpeta

/proc

Los ficheros relevantes de esta carpeta son los siguientes:

* /proc/dma ---> Fichero que contiene el historio DMA del equipo

/proc/interrupts ---> Fichero que contiene el historico IRQ del equipo /proc/ioports ---> Fichero que contiene el historico Entrada/Salida del equipo /proc/pci}}}

La asignacion de recursos tambien pueden ser consultada usando comandos como

* lspci

dmesg}}}

lspci

Lspci es un comando que nos imprime informacion detallada sobre los buses ydispositivos PCI conectados al equipo. Asi mismo nos da informacion detallada sobrelos IRQ y direcciones de Entrada/Salida asociados a los dispositivos PCI entontrados,para ello solo se tiene que agregar el parametro -v al comando. Ejemplo

[BASH] lspci -v

Page 9: Certificación LPI 101

Certificación LPIC-1

9

dmesg

dmesg (diagnostic message)es un comando que lista el buffer de mensajes del kernel delinux. Este buffer contiene una gran variedad de mensajes importantes generadosdurante el arranque del sistema y durante la depuración de aplicaciones. Estos mensajespueden ser consultado en el fichero

/var/log/messages

Soporte USB

El bus universal en serie (Universal Serial Bus) es un protocolo de comunicaciondiseñado para conectar dispositivos a un equipo de computo. Estos dispositivos estandivididos en cuatro clases

1.Dispositivos de comunicacion (Tarjetas WiFi) 2.Dispositivos de audio (Bocinas,Microfonos) 3.Dispositivos de almacenamiento de datos (Memorias, Discos Duros,Lectores DVD) 4.Dispositivos de interfaz humana (Mouse, Teclado)

El soporte para dispositivos USB estuvo disponible hasta la version 2.2.7 del kernel delinux y con ello la liberacion de 3 modulos o controladores para la misma.

Controlador Desarrollador Modulo para el KernelOHCI Compaq usb-ohci.o

UHCI Intel usb-uhci.o

EHCI ehci-hdc.o

Asi mismo existe un comando en linux que nos imprime informacion detallada sobre losbuses, dispositivos USB conectados al equipo, IRQ y direcciones de Entrada/Salidaasociados a los dispositivos USB encontrados, el nombre de este comando es elsiguiente.

[BASH] lsusb -v

}

El parametro -v es el encargado de listar la infomacion referente a los IRQ, DMA y lasdirecciones de entrada/salida de los dispositivos USB.

Una forma para cononcer si en nuestro sistema operativo tiene soporte para estoscontroladores es revisando directamente el fichero de modulos del kernel de linux. Laruta de este fichero es la siguiente:

/proc/modules

Dispositivos SCSI

Existen dos tipos de interfaces scsi, estas son

Page 10: Certificación LPI 101

Certificación LPIC-1

10

Una interfaz de 8 bits con un bus que soporta 8 dispositivos, esta incluye elcontrolador por lo tanto sólo hay espacio para 7 dispositivos de bloque

Una interfaz de 16 bits con un bus que soporta 16 dispositivos, esta incluye elcontrolador por lo tanto sólo hay espacio para 15 dispositivos de bloque

Los dispositivos SCSI pueden ser identificados mediante una serie de 3 numerosllamados SCSI ID, estos son:

1.El canal SCSI 2.El numero ID del dispositivo 3.Numero de unidad logica

El canal SCSI

Cada adaptador SCSI soporta un canal de datos en la que atribuimos los dispositivosSCSI (discos, CD-ROM, etc). Estos canales están numerados de 0 en adelante

El numero ID del dispositivo

A cada dispositivo se le asigna un número único de identificación que se puede ajustarusando los jumpers del disco SCSI. Este rango de numeros de identificacion van de 0 a7 para las interfaces de 8 Bits y de 0 a 15 para las interfaces de 16 Bits

Numero de unidad logica

El término es originario del protocolo SCSI como una forma de diferenciar unidades dedisco individuales dentro de un bus SCSI tal que un array de discos

Deteccion de dispositivos SCSI

Todos los dispositivos SCSI son listados en el fichero

/proc/scsi/scsi

El cual contiene las caractersitcas de los dispositivos scsi que el equipo a detectado.Ejemplo:

Attached devices:

Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST3200820AS Rev: 3.AAType: Direct-Access ANSI SCSI revision: 05}}}

Tarjetas de Red

Las tarjetas de red son el punto neuralgico de la comunicacion del equipo con el exteriory viceversa. Para ello el kernel debera tener soporte para este tipo de dispositivos. Unaforma de obtener informacion referente a las tarjetas de red del sistema es haciendo usode los siguientes comandos:

[BASH] dmesg

[BASH] lspci}}} Ejemplo:[BASH] dmesg

Page 11: Certificación LPI 101

Certificación LPIC-1

11

eth0: ADMtek Comet rev 17 at MMIO 0xdffffc00, 00:02:2a:cb:10:2b, IRQ 19.

[BASH] lspci 01:0a.0 Ethernet controller: ADMtek NC100 Network Everywhere FastEthernet 10/100 (rev 11)}}}

En el ejemplo podemos observar que la tarjeta de red cuenta con un chipset ADMtek ,direccion de entrada/salida 0xdffffc00 y solicitud de interrupcion (IRQ)19. Estainformacion puede ser usada si el modulo asociado a la tarjeta de red comienza a entraren conflictos con el kernel. Tambien es util si se requiere insertar un modulo con unadiferente direccion entrada/salida a travez del comando modprobe.

Configuracion de impresoras

Aunque el tema de impresion es tratado mas a profundidad en el curso LPI 102 aquidaremos una breve introduccion. Desde la perspectiva del hardware, las impresoras sondetectadas automaticamente por el equipo cuando este es encendido , asi mismo lasimpresoras detectadas por el sistema son listadas en el fichero

/var/log/dmesg

La forma de gestionar impresoras en linux se puede hacer de dos metodos. El primero esmediante una herramienta actualmente en desuso llamada “printtool” la cualproporciona un entorno gráfico para montar y gestionar impresoras, sin embargo estepaquete ha desaparecido para la mayoria de las distribuciones linux existentes. Elsegundo metodo es actualmente el mas implementado para la mayoria de lasdistribuciones linux y este lleva por nombre CUPS. CUPS(Common Unix PrintingSystem) es un sistema de impresión modular para sistemas operativos de tipo Unix quepermite que un equipo actúe como servidor de impresión.

Usualmente CUPS guarda todos sus ficheros de configuracion en el fichero

/etc/cups

Y generalmente hace uso del puerto 631 para llevar a cabo la administracion de estosrecursos

Tarjetas de Audio

Existen dos proyectos para el soporte de audio en linux , estos son:

OSS.- Open Sound System ALSA.- Advanced Linux Sound Architecture

OSS (Open Sound System)

En efecto, OSS es un proyecto comercial que proporciona controladores de audio a otrasplataformas. El controlador libre paso a formar parte del proyecto Linux a partir de laversion 2.0 del kernel de linux

Page 12: Certificación LPI 101

Certificación LPIC-1

12

ALSA (Advanced Linux Sound Architecture)

Advanced Linux Sound Architecture es un componente del núcleo de Linux destinado asustituir al Open Sound Sistema Algunas de las metas de este proyecto desde suconcepción fueron la configuración automática de tarjetas de sonido y el manejo demúltiples dispositivos de sonido en un sólo sistema, metas que han sido alcanzadas ensu mayor parte.

Identificando las tarjetas de audio

Una forma usual de identificar las tarjetas de audio es haciendo uso del comando dmesgel cual nos informa si el kernel de linux detecto alguna tarjeta de audio. Ejemplo:

[BASH] dmesg | grep ALSA

ALSA sound/pci/hda/hda_codec.c:3303: autoconfig: line_outs=4(0x14/0x15/0x16/0x17/0x0) ALSA sound/pci/hda/hda_codec.c:3307: speaker_outs=0(0x0/0x0/0x0/0x0/0x0) ALSA sound/pci/hda/hda_codec.c:3311: hp_outs=0(0x0/0x0/0x0/0x0/0x0) ALSA sound/pci/hda/hda_codec.c:3312: mono: mono_out=0x0ALSA sound/pci/hda/hda_codec.c:3320: inputs: mic=0x18, fmic=0x0, line=0x1a,fline=0x0, cd=0x1c, aux=0x0}}}

Administracion de tarjetas de audio

Una forma de administrar graficamente las tarjetas de audio en Linux es mediante laherramienta “alsamixer”. alsamixer es un programa de mezclado de audio para laarquitectura de sonido de Linux ALSA. Se utiliza para configurar el sonido y ajustar losvolúmenes. Tiene una interface para usuarios basada en ncurses (modo texto) y nonecesita del sistema X Window System. Soporta gran variedad de placas de sonidos condispositivos múltiples.

-h, -help Ayuda: muestra las opciones disponibles.

-c <número de placa oidentificación>

-D <identificación de

Selecciona la placa de sonido a utilizar, si en el sistemaexisten más de una placa. Las placas se numeran desde 0 (pordefecto).

dispositivo> Selecciona el mezclador para el control.

-g Cambia el uso de colores.-s Minimiza la ventana del mezclador

-V <modo de vista>Selecciona el modo de vista inicial, reproducción, captura otodos.

Page 13: Certificación LPI 101

Certificación LPIC-1

13

Conociendo el Arranque de LinuxSobre los Discos Duros

Un disco duro es un dispositivo de almacenamiento masivo de datos que a su veztambién puede tener instalado algún Sistema Operativo, así mismo funge comomemoria no volátil, es decir, cuando por alguna razón se interrumpe la energía eléctricade nuestra casa u oficina la información anidada en el mismo se almacena de maneracorrecta, salvo algunas excepciones, como por ejemplo cuando se trabaja en tiempo realcon el disco duro y no se guardan con anticipación dichos cambios. Un ejemplo dememoria volátil es la memoria RAM (Random Access Memory), ya que este tipo dememoria solo almacena la información de manera temporal y es borrada nuevamentecuando se interrumpe la energía eléctrica de la computadora. Un disco duro (Hard Disk)emplea un sistema de grabación magnética el cual es aplicado a una una serie de platosmetálicos apilados girando a gran velocidad. Sobre estos platos se sitúan los cabezalesencargados de leer o escribir los impulsos magnéticos. Existen distintos tipos deinterfaces y entre las mas comunes se encuentran las siguientes:

IDE-ATA (Integrated Drive Electronics) SATA (Serial Advanced Technology Attachment) SCSI generalmente usado en servidores

Tipos de Discos Duros

Como anteriormente mencionamos existen 3 tipos de discos duros:

Discos Duros IDE-ATA

Los discos duros con esta denominación hacen uso de una interfaz llamadaIDE(Integrated Device Electronics) ATA(Advanced Technology Attachment) que es laencargada de comunicar al Disco Duro con la tarjeta madre. El estándar IDE-ATA fuediseñado originalmente para conectar discos duros; sin embargo, se desarrolló unaextensión llamada ATAPI que permite interconectar otros periféricos dealmacenamiento como unidades de CD o unidades de DVD en una interfaz IDE-ATA.Habitualmente, un disco duro IDE-ATA puede estar configurado de 3 manerasdiferentes, las cuales son:

Maestro.- Los discos duros con esta configuración indican a la tarjeta madre queel debe ser el primero en ser leido y por ende el primero en arrancar

Esclavo.- Los discos duros con este tipo de configuración no son tomados encuenta al momento de arrancar el sistema por lo que el disco duro maestro puededisponer de los demás discos duros configurados como discos esclavos

Selección por cable.- El dispositivo será maestro o esclavo en función de suposición en el cable. Si hay otro dispositivo, también debe estar configurado

Page 14: Certificación LPI 101

Certificación LPIC-1

14

como cable select. Si el dispositivo es el único en el cable, debe estar situado enla posición de maestro.

Este diseño IDE-ATA tiene el inconveniente de que mientras se accede a un dispositivoel otro dispositivo del mismo conector IDE no se puede usar. Este inconveniente estáresuelto en discos duros como los SATA y en SCSI, que pueden usar dos dispositivospor canal.

Los discos IDE están mucho más extendidos que los SCSI debido a su precio muchomás bajo. El rendimiento de IDE es menor que SCSI pero se están reduciendo lasdiferencias. En la siguiente figura podemos observar un diagrama que muestra la formaen cual debe ser conectado un disco duro IDE-ATA.

Discos Duros SATA

Los discos duros con esta denominación hacen uso de una interfaz llamada SerialAdvanced Technology Attachment que es la encargada de comunicar los dotos delDisco Duro con la tarjeta madre. Estos discos duros sustituyen a los tradicionales IDE-ATA, ademas de que proporciona mayores velocidades, mejor aprovechamiento cuandohay varios discos, mayor longitud del cable de transmisión de datos y capacidad paraconectar discos en caliente (con la computadora encendida). El estándar Serial ATA sebasa en una comunicación en serie. Se utiliza una ruta de datos para transmitir los datosy otra ruta para transmitir las confirmaciones de recepción. En cada una de estas rutas,los datos se transmiten mediante el modo de transmisión LVDS (Señal diferencial debajo voltaje) que consiste en transferir una señal a un hilo y su contrapartida a unsegundo hilo para permitir que el destinatario recree la señal por diferencia. Los datosde control se transmiten por la misma ruta que los datos mediante una secuenciaespecífica de bits que los distingue. Por lo tanto, la comunicación requiere de dos rutasde transmisión, cada una de las cuales está compuesta por dos hilos, con un total decuatro hilos utilizados para la transmisión.

Conectores de Serial ATA

El cable utilizado por el estándar Serial ATA es un cable redondeado que contiene 7hilos con un conector de 8 milimetros en su extremo, tres hilos tienen conexión a tierray dos pares se utilizan para la transmisión de datos, el conector de la fuente dealimentación también es diferente ya que comprende 15 clavijas que alimentan alperiférico con una potencia que varia entre 3.3 Volts, 5 Volts o 12 Volts y tiene unaapariencia similar al conector de datos:

Características

El estándar Serial ATA brinda una velocidad de 187.5 MB/s ó 1.5 Gb/s, cada octeto setransmite con un bit de arranque y un bit de parada, con una velocidad efectiva teóricade 150 MB/s ó 1,2 Gb/s. El estándar Serial ATA II debe contribuir a alcanzar 375 MB/só 3 Gb/s, es decir, una velocidad efectiva teórica de 300 MB/s, y finalmente 750 MB/s ó6 Gb/s, es decir, una velocidad efectiva teórica de 600 MB/s. Los cables del estándarSerial ATA pueden medir hasta 1 metro de longitud (en comparación con los 45 cm quemiden los cables IDE). Además, la baja cantidad de hilos en una envoltura redonda

Page 15: Certificación LPI 101

Certificación LPIC-1

15

permite una mayor flexibilidad y una mejor circulación del aire dentro de la carcasa quela de los cables IDE (incluso si existieran los cables IDE redondeados). A diferencia delos periféricos del estándar ATA, los del Serial ATA se encuentran solos en cada cabley ya no es necesario diferenciar los discos duros maestros de los discos duros esclavos.Otra de la ventajas con este tipo de disco es que permite la conexión en caliente o enpocas palabras, mientras el equipo esta encendido.

Discos Duros SCSI

El estándar SCSI (Small Computers System Interface) es una interfaz que se utiliza parapermitir la conexión de distintos tipos de periféricos a un ordenador mediante unatarjeta denominada adaptador SCSI o controlador SCSI generalmente mediante unconector PCI. El número de periféricos que se pueden conectar depende del ancho delbus SCSI. Con un bus de 8 bits, se pueden conectar 8 unidades físicas y con uno de 16bits, 16 unidades.

Direccionamiento de los Periféricos SCSI

Los periféricos se direccionan mediante números de identificación. El primer número esel ID, número que designa al controlador que se encuentra dentro de cada periférico(definido a través de los caballetes posicionados en cada periférico SCSI o por elsoftware). El periférico puede tener hasta 8 unidades lógicas (por ejemplo, una unidadde CD-ROM con varios cajones). Las unidades lógicas se identifican mediante un LUN(Número de unidad lógica). Por último, un ordenador puede contener diversas tarjetasSCSI y, por lo tanto, a cada una le corresponde un número diferente.

SCSI asimétrico y diferencial

Existen dos tipos de bus SCSI:

el bus asimétrico, conocido como SE (por Single-Ended o Terminación única),basado en una arquitectura paralela en la que cada canal circula en un alambre,sensible a las interferencias. Los cables SCSI en modo SE poseen 8 alambrespara una transmisión de 8 bits (que se denominan limitados) o 16 alambres paracables de 16 bits (conocidos como extendidos). Este es el tipo de bus SCSI máscomún.

el bus diferencial transporta señales a un par de alambres. La información secodifica por diferencia entre los dos alambres (cada uno transmite el voltajeopuesto) para desplazar las interrupciones electromagnéticas, lo que permiteobtener una distancia de cableado considerable (alrededor de 25 metros). Engeneral, existen dos modos: el modo LVD (Voltaje bajo diferencial), basado enseñales de 3,3 V y el modo HVD (Voltaje Alto Diferencial), que utiliza señalesde 5 V. Los periféricos que utilizan este tipo de transmisión son cada vez másraros y por lo general llevan la palabra "DIFF".

Los conectores para las dos categorías de periféricos son los mismos, pero las señaleseléctricas son diferentes. Por lo tanto, los periféricos necesitan ser identificados(mediante los símbolos creados para tal fin) para no dañarlos.

Page 16: Certificación LPI 101

Certificación LPIC-1

16

Estándares SCSI

Los estándares SCSI definen los parámetros eléctricos de las interfaces deentrada/salida. El estándar SCSI-1 de 1986 definió los comandos estándar para elcontrol de los periféricos SCSI en un bus con una frecuencia de 4,77 MHz con un anchode 8 bits, lo que implicaba que era posible alcanzar velocidades de 5 MB/s. Sinembargo, un gran número de dichos comandos eran opcionales, por lo que en 1994 seadoptó el estándar SCSI-2. Éste define 18 comandos, conocidos como CCS (Conjuntode comandos comunes). Se han definido varias versiones del estándar SCSI-2:

El SCSI-2 extendido, basado en un bus de 16 bits (en lugar de 8), ofrece unavelocidad de 10 MB/s

El SCSI-2 rápido es un modo sincrónico rápido que permite un aumento de 5 a10 MB/s para el estándar SCSI y de 10 a 20 MB/s para el SCSI-2 extendido(denominado SCSI-2 extendido rápido).

Los modos Rápido-20 y Rápido-40 duplican y cuadriplican dichas velocidadesrespectivamente.

El estándar SCSI-3 incluye nuevos comandos y permite la unión de 32 periféricos, asícomo una velocidad máxima de 320 MB/s (en modo Ultra-320). El siguiente cuadroresume las características de los diversos estándares SCSI

Configuracion de discos

En Linux, los discos fisicos son listados y representados dentro de la carpeta

/dev

Recordemos: Para ser identificados, el kernel les agrega un identificador el cualcomienza con hd para el caso de discos IDE o sd para el caso de discos PATA o SCSI.Adicionalmente a cada uno de estos identificadores se les agrega una letra del alfabetopara identificar los discos maestros de los esclavos.Identificador del Disco Duro Dispositivo Logicohda Maestro Primario

hdb Esclavo Secundariohdc Maestro Secundario

hdd Esclavo Secundariosda Primer Disco Sata o SCSI

sdb Segundo Disco Sata o SCSI

Configuración de Particiones

Asi como los discos duros son listados y representados, tambien las particionescorrespondientes a cada disco duro son representadas y listadas. Para ser identificados,el kernel le agrega un numero al final de cada identificador para diferenciar de unaparticion primaria, logica o extendida.

Page 17: Certificación LPI 101

Certificación LPIC-1

17

NOTA:Los discos duros ATA y SATA permiten 4 particiones primarias, de lascuales 1 puede ser extendida.Las particiones extendidas pueden ser divididas enparticiones logicas y estas pueden tener un maximo de 64 particiones para discosATA/SATA y 16 particiones para discos SCSI

Aplicaciones graficas para particionar discos duros

Existen aplicaciones libres como alternativas a las aplicaciones propietarias como es elcaso del Partitioning Magic, a continuación se exponen 2 de las mejores:

Gparted

GParted es el editor de particiones de GNOME. Esta aplicación es usada para crear,eliminar, redimensionar, inspeccionar y copiar particiones, como también sistemas dearchivos. Esto es útil para crear espacio para nuevos sistemas operativos, reorganizar eluso del disco y crear imágenes de un disco en una partición. La aplicación utiliza lalibrería libparted para detectar y manipular dispositivos y tablas de partición, mientrasvarias herramientas de sistema de archivos dan mantenimiento a sistemas de archivos noincluidos en libparted. Está escrito en C++ y utiliza gtkmm como herramienta gráfica.Este acercamento es para mantener la interfaz gráfica de usuario lo más simple posible,conforme con las Human Interface Guidelines.

Gparted LiveCD

Se encuentra disponible en LiveCD, basado en Slackware y construido sobre la últimarama estable núcleo de Linux (2.6). LiveCD es actualizado con cada lanzamiento deGParted. El LiveCD de Ubuntu incluye esta aplicación entre sus utilidades. También seencuentra disponible en versión LiveUSB. Cuando se carga LiveCD, se inicia una mini-distribución que contiene las siguientes aplicaciones:

Escritorio Xfce Thunar como gestor de archivos Una aplicación para capturas de pantallas (por medio de Thunar se pueden

guardan en un pendrive) Documentento de ayuda GParted Xfree86

Capacidades y limitaciones

GParted no puede incrementar el tamaño de las particiones sin existir un espacio vacíodespués de dicha partición, es decir, si existen dos particiones juntas no se podráaumentar el tamaño de una en detrimento de la otra; pero esto es más bien unalimitación técnica. En esta tabla se muestran las capacidades de GParted, de acuerdocon cada sistema de archivos.

Si tu deseas probar esta aplicación, la puedes descargar directamente de la pagina oficialdel proyecto

Page 18: Certificación LPI 101

Certificación LPIC-1

18

http://gparted.sourceforge.net

Parted Magic

Parte Magic es un LiveCD que incluye una distribución Linux a medida para poderoperar directamente con ella sin necesidad de ser instalada en el disco duro. No estamoshablando solo de un particionador de discos mas. En este LiveCD podemos encontrarvarias herramientas entre ellas un editor de particiones llamado VisParted basado en elgenuino Gparted con la que podremos crear, redimensionar y borrar nuestras particionesdel disco duro. Parted Magic soporta los siguientes sistemas de archivos: ext2, ext3,ext4, fat16, fat32, hfs, hfs+, jfs, linux-swap, ntfs, reiserfs, reiser4 y xfs. Si tu deseasprobar esta aplicación, la puedes descargar directamente de la pagina oficial delproyecto

http://partedmagic.com/

Formatear y particionar discos duros desde BASH

Formatear y particionar dispositivos de almacenamiento de datos como discos duros ymemorias USB es una tarea sencilla. Para ello usaremos tres herramientas, estas son:

dd fdisk mkfs

Dando formato de bajo nivel con dd

Esta herramienta sirve para dar formato de bajo nivel a un disco duro. La forma deimplementar esta herramienta es la siguiente:

[BASH] dd if=/dev/zero of=/dev/sda

ddEl comando dd (duplicate disk) es un comando bastante útil para transferirdatos desde un dispositivo o archivo hacia otro dispositivo o archivo

if=/dev/zeroif significa input file, es decir, lo que quieres copiar En el ejemplo dearriba llenaremos de ceros el disco duro

of=/dev/sdaof significa output file, o sea, el dispositivo o archivo destino donde se vana copiar los datos.En el ejemplo de arriba nos referimos al disco duro

El proceso puede variar dependiendo del tamaño de almacenamiento del disco duro odel tipo de interfaz (IDE o SATA), por lo que tendra que ser paciente.

Particionando un disco duro con fdisk

Fdisk nos servira para agregar, eliminar, redimensionar o dar formato a un disco duro.La forma de aplicar esta herramienta es la siguiente:

[BASH] fdisk -l /dev/sd[a,b,c]

sd[a,b,c] Hace referencia al numero de disco duro al que se le aplicara esta herramienta

Page 19: Certificación LPI 101

Certificación LPIC-1

19

-l Este parametro listara la tabla de particiones que contiene el Disco duro

La forma correcta de aplicar “fdisk” es de la siguiente manera:

[BASH] fdisk /dev/sd[a,b,c]

La diferencia con el anterior comando radica en la forma en como fue implementado,pues en el primer comando indicamos explicitamente que deseamos conocer lasparticiones anidadas en el disco duro y con este ultimo estamos lanzando la aplicacioncomo tal. Una vez aplicado el comando mostrara un mensaje como este:

Orden (m para obtener ayuda):

Prueba tecleando la letra 'm', esto desplegara un menu con las utilidades de estaaplicacion.:

Orden Acción

a Conmuta el indicador de iniciable b Modifica la etiqueta de disco bsd c Conmuta elindicador de compatibilidad con DOS d Suprime una partición l Lista los tipos departiciones conocidos m Imprime este menú n Añade una nueva partición o Crea unanueva tabla de particiones DOS vacía p Imprime la tabla de particiones q Sale singuardar los cambios s Crea una nueva etiqueta de disco Sun t Cambia el identificador desistema de una partición u Cambia las unidades de visualización/entrada v Verifica latabla de particiones w Escribe la tabla en el disco y sale x Funciones adicionales (sólopara usuarios avanzados)}}}

La forma de agregar una particion al disco duro sera tecleando la letra 'n' lo cual nosdesplegara la siguiente informacion:

Acción de la orden

e Partición extendida p Partición primaria (1-4) p}}}

solo habra que especificar si la particion a añadir sera primaria (p) o extendida (e).

NOTA:Los discos duros ATA y SATA permiten 4 particiones primarias, de lascuales 1 puede ser extendida.Las particiones extendidas pueden ser divididas enparticiones logicas y estas pueden tener un maximo de 64 particiones para discosATA/SATA y 16 particiones para discos SCSI

El siguiente paso sera especificar el tamaño y numero de la particion a la cual haremosel cambio. En el siguiente ejemplo crearemos una particion que ocupara todo el tamañodel disco duro.

Número de partición (1-4): 1

Primer cilindro (1-1019, valor predeterminado 1): 1 Last cilindro, +cilindros or+size{K,M,G} (1-1019, valor predeterminado 1019): 1019}}}

Si se quisiera asignar un tamaño diferente para la particion tambien se podra hacer, Paraello podemos hacer uso de las unidades KiloBytes,Megabytes o GigaBytes pero de

Page 20: Certificación LPI 101

Certificación LPIC-1

20

manera abreviada (K,M,G) Al terminar de aplicar lo cambios solo debera ejecutar laorden 'w' lo cual escribira los cambios al disco duro.

¡Se ha modificado la tabla de particiones!

Llamando a ioctl() para volver a leer la tabla de particiones. Se están sincronizando losdiscos. }}}

Dando formato a un disco duro con mkfs

Por ultimo solo restaria asignarle un formato a las particiones que creamos. Para elloharemos uso de la herramienta mkfs, la cual debe ser aplicada segun la siguientesintaxis

[BASH] mkfs.[ext2|ext3|ext4|vfat|ntfs] /dev/sd[a,b,c][1,2,3]

Page 21: Certificación LPI 101

Certificación LPIC-1

21

Niveles de Ejecucion en LinuxEl Proceso de arranque

El proceso de arranque de un sistema operativo Linux se inicializa de la siguientemanera: Cuando usted enciende su servidor o su computadora personal, esta hace que elBIOS de su equipo inicie las operaciones relacionadas con el arranque. El BIOS (BasicInput Output System) es un pequeño programa escrito en lenguaje ensamblador cuyafunción es cargar el sistema operativo en la memoria RAM (Random Access Memory),una vez que el BIOS carga el sistema operativo en RAM este inicia un proceso llamadoPOST (Power On Self Test) el cual es un proceso de diagnostico y verificación de loscomponentes de entrada y salida de un servidor o computadora y se encarga deconfigurar y diagnosticar el estado del hardware, una vez verificado el hardware seinicia la fase de arranque del sistema (bootstrapping) el cual cede el control al GRUB(Grand Unified Bootloader), el GRUB es un gestor de arranque que hace uso de unmenú gráfico que permite elegir el Sistema Operativo que se desea arrancar; Así mismo,el GRUB realiza las siguientes tareas:

1.Cargar el kernel en memoria. 2.Cargar el sistema de ficheros virtual initrd el cual esusado tipicamente para hacer los arreglos necesarios antes de que el sistema de ficherosraíz pueda ser montado 3.Pasarle los argumentos runlevel e init al kernel 4.Comenzar laejecución del kernel

Al terminar de ejecutar todas las tareas anteriores el GRUB le cede el control total delarranque al kernel y este a su vez se encarga de realizar la llamada a la función starup lacual tiene como función detectar el tipo de CPU con el que el equipo cuenta así como delo principal del sistema operativo, como el manejo de memoria, planificador de tareas,entradas y salidas, comunicación interprocesos, y demás sistemas de control, a partir deeste momento se ejecuta el proceso INIT.

El Proceso INIT

INIT es el primer proceso en ejecutarse despues de la carga del kernel de linux eimplementa dos modelos bajo los cuales puede trabajar, estos son

1.SystemV 2.BSD

Estos modelos son arrancados por un programa (script) de arranque que establece comodeben inicializarse los diferentes servicios, programas o registros que sean necesariospara que el sistema funcione como el administrador lo requiere. Explicaremosbrevemente como es que trabajan estos modelos

SystemV

Es un modelo usado para controlar el inicio y apagado del sistema y fue originalmentedesarrollado por la compañía estadounidense de telecomunicaciones AT&T. SystemVfue una de las versiones del sistema operativo Unix que se encargaba de controlar el

Page 22: Certificación LPI 101

Certificación LPIC-1

22

arranque de los programas en el instante de inicio del equipo. Este modelo esconsiderado por muchos como facil, potente y flexible en comparacion con el sistemade inicio BSD

Existen cuatro versiones release de SystemV (SVR) , las cuales son:

1.SVR1.-Primera version de SystemV lanzada en 1984, incluia el editor de textos Vi2.SVR2.-Incluye mejoras con respecto al nucleo el cual esta implementado comomemoria virtual paginada, el sistema operativo Apple esta basado en este modelo.3.SVR3.-Incluye mejoras en el sistema de ficheros asi como una nueva API de red, elsistema operativo AIX de IBM hace uso de este modelo 4.SVR4.- Fue la versión máspopular de SVR asi como la fuente de varias características comunes del sistemaoperativo Unix, como el script /etc/init.d

Niveles de Ejecucion

Los niveles de ejecucion en SystemV describen ciertos estados del equipo los cuales secaracterizan por ejecutar ciertos procesos. En general existen 8 niveles de ejecucion loscuales van del 0 al 6 y S o s, que son alias del mismo nivel de ejecucion, de estos ochosniveles, tres son considerados reservados, estos son:

0.- Halt 1.-Single user mode 6.-Reboot

Aparte de los niveles de ejecucion 0,1 y 6 todos los sistemas operativos Linux tratan alos niveles de ejecucion un poco diferente. El denominador comun de todas lasdistribuciones linux es el fichero

/etc/inittab

el cual define lo que hace cada nivel de ejecucion. A continuacion un ejemplo decuantos niveles de ejecucion tienen cada una de las distribuciones mas importantes delinux, asi como del sistema operativo solaris y AIX.

En la mayoria de los sistemas operativos linux los usuarios pueden saber bajo que nivelde ejecucion estan trabajando tecleando en una consola y como root lo siguiente:

[root@localhost ]$ runlevel

N 5}}}

Existen tambien los ficheros llamados rcN.d en donde la letra N representa cada uno delos niveles de ejecucion en los que trabaja init.d, la funcion de estos ficheros seexplicara mas a detalle en el siguiente tema.

BSD

El modelo BSD init se ejecuta mediante el script de inicializacion situado en la ruta

/etc/rc

Page 23: Certificación LPI 101

Certificación LPIC-1

23

Algunos de los sistemas operativos que se basan en este modelo son los basados enBSD como:

FreeBSD NetBSD OpenBSD DragonFlyBSD DesktopBSD PCBSD

El fichero init.d

En este fichero se encuentran todos los scripts encargados de levantar cada uno de losservicios del servidor. La ubicación de este fichero esta localizada en: Algunos de losservicios que podemos encontrar en el fichero init.d son los referentes a:

Servidor Web Apache ---->httpd Servidor Samba ----->smb Servidor de Correo --->sendmail Servidor DHCP ---->dhcpd Servidor DNS ---->named Manejador de Base de Datos MySQL ---->mysqld

[root@localhost ~] cd /etc/rc.d/init.d/

[root@localhost init.d] ls -l total 428 -rwxr-xr-x 1 root root 2974 jun 23 10:18 dhcpd . . .-rwxr-xr-x 1 root root 3099 feb 25 2008 httpd -rwxr-xr-x 1 root root 4239 mar 3 2008mysqld . . . -rwxr-xr-- 1 root root 6154 ago 6 05:05 named -rwxr-xr-x 1 root root 1745sep 18 10:26 smb -rwxr-xr-x 1 root root 4112 mar 29 2008 sendmail}}}

El fichero rcN.d

rcN.d es un conjunto de directorios que representan cada uno de los niveles de ejecuciondel sistema operativo. Estos directorios a su vez contienen un conjunto de enlacessimbolicos a los scripts del directorio /etc/rc.d/init.d La funcion que desempeñan estosdirectorios es organizar la manera en como los servicios de un servidor son levantados,como por ejemplo, imaginemos que tenemos instalado un servidor Web apache, y quelo tenemos configurado para que trabaje en los niveles de ejecucion 3 y 5 , por endedeberiamos poder observar dichos enlaces simbolicos en las rutas:

/etc/rc.d/rc3.d /etc/rc.d/rc5.d

Otra de las caracteristicas de estos enlaces simbolicos es la sintaxis de sus propiedades.Esta sintaxis esta conformada por 3 parametros

1.El estado del servicio, los cuales son representados con dos variables:

La letra K.-Esta letra representa que el servicio esta dado de baja La letra S.-Esta letra representa que el servicio esta dado de alta

Page 24: Certificación LPI 101

Certificación LPIC-1

24

1.El orden en el que es arrancado el servicio.- Este parametro indica el orden en el quelos servicios deben ser dados de alta o de baja 2.El nombre del servicio Un ejemplo deesto lo podemos observar de la siguiente tabla, la cual la tomamos de la ruta/etc/rc.d/rc5.d, lo cual indica que los scripts dentro de esta carpeta se ejecutan en el nivelde ejecucion 5 Los detalles del renglon subrayado se explican a continuacion:

El fichero inittab

La ubicación de este fichero la podemos localizar en:

El fichero inittab describe que procesos se inician en la carga asi como los scripts deinicializacion del sistema, tambien distingue los multiples niveles de ejecucion bajo lacual trabaja el sistema operativo, recordemos que los niveles de ejecucion validos son 8,de los cuales tres son reservados y otro mas es alias de algun nivel en particular. Deacuerdo a lo mostrado en la siguiente imagen describiremos la funcion que desempeñacada linea. Para ello usamos como ejemplo el fichero inittab del sistema operativoCentos version 5.2

1.- Este recuadro nos indica los diferentes niveles de ejecucion bajo los cuales trabajaCentOS 5.2 2.-Este es el nivel de ejecucion en el cual arranca por defecto el equipo 3.-Aqui se especifica que script de configuracion se debe cargar para el proceso dearranque del sistema 4.-Aqui se especifican los scripts de arranque que el sistemautilizara para cada nivel de ejecucion o tambien llamados runlevels 5.-Esta seccioncontrola el reseteo del sistema. Se puede comentar esta linea para que no pueda serreseteado el sistema 6.-Estas dos lineas estan relacionadas con las acciones que debende seguirse en caso de una falla de voltaje y la segunda indica que debe hacerse cuandoel voltaje ha sido restablecido. 7.-Lineas encargadas de controlar los procesos getty 8.-Esta linea arranca el entorno grafico del sistema, las cuales pueden ser GNOME o KDE

El fichero rc.sysinit

Este fichero esta localizado en la siguiente ruta La funcion que desempeña este ficheroes ejecutar una serie de scripts que inicializan tareas como:

Configuracion de reloj del sistema Configuracion de los parametros del Kernel Levantamiento de dispositivos RAID y LVM Activacion y Actualizacion de cuotas en disco Activacion de la particion SWAP

El fichero rc.local

Este fichero esta localizado en la siguiente ruta Este fichero es el utimo en ser ejecutadopor el proceso init. La funcion que tiene este script es agregar comandos que nos hagafacil de realizar tareas necesarias como arrancar servicios especiales o inicializardispositivos sin tener que escribir scripts complejos de inicializacion en el directorio/etc/rc.d/init.d ni creando enlaces simbolicos.

Page 25: Certificación LPI 101

Certificación LPIC-1

25

Niveles de Ejecucion

Los niveles de ejecucion o tambien llamados runlevels hacen referencia a los sistemasoperativos Linux que implementan el estilo de sistema de arranque de iniciacion tipoUNIX System V del cual ya hemos hablando extensamente. A lo largo de este temamencionamos 8 niveles de ejecucion bajo los cuales trabajan algunos sistemasoperativos linux, en especial los de la Familia Red Hat. A continuacion mencionaremoslas caracteristicas de cada uno de ellos.

Nivel 0 –Parada Del Sistema

El nivel 0 es usado para especificarle al sistema que debe apagarse, la forma en que estelo hace es a travez del comando halt. Al ejecutarse este comando se apagan todos losservicios que se encuentren activos

Nivel 1 o S -Monousuario o Single User

El nivel 1 o tambien llamado nivel Single (S) solo puede ser iniciado por eladministrador del sistema (root), por lo que ningun usuario podra hacer eso de este nivelde ejecucion En este nivel no se activan los servicios de Red, y tampoco se inician losprocesos (daemons) de inicio por lo que permite reparar problemas o hacer pruebas alsistema.

Nivel 2 -Multiusuario sin Red

Este nivel esta caracterizado por la capacidad de permitir que varios usuarios puedanentrar al sistema pero sin contar con soporte en red, esto quiere decir que no se puedecontar con servidores como NFS o web.

Nivel 3 -Multiusuario con Red

Este sistema esta caracterizado por la capacidad de permitir a varios usuarios entrar alsistema, a diferencia del nivel de ejecucion 2, este si cuenta con soporte de red.

Nivel 4. -Sin Uso

Para la mayoria de las distribuciones linux este nivel de ejecucion no tiene asignadaninguna funcion, pero puede ser personalizado por el administrador para que cumplacon alguna funcion en especial

Nivel 5. -Multiusuario Grafico

Este nivel de ejecucion es identico al nivel 3, la unica diferencia es el alta de entornosgraficos como GNOME o KDE para la administracion del sistema

Page 26: Certificación LPI 101

Certificación LPIC-1

26

Nivel 6. -Reinicio del Sistema

Comando chkconfig

Este comando es una herramienta util para levantar o desactivar servicios los cuales sonaplicados durante el arranque del equipo asi como tambien conocer el estado de losservicios que se estan ejecutando.

Para conocer el estado de los procesos que estan corriendo en su sistema puedeejecutar el siguiente comando

[root@localhost ~]chkconfig --list

Para conocer el status de algun proceso en particular solo teclee esto

[root@localhost ~]chkconfig –-list httpdhttpd 0:desactivado 1:desactivado 2:desactivado 3:desactivado 4:desactivado5:desactivado 6:desactivado}}}

Lo cual nos mostrara bajo que niveles de ejecucion esta corriendo el proceso o servicio.

Para levantar algun proceso o servicio durante el arranque del sistema solo tecleeesto

[root@localhost ~]chkconfig –-level 35 httpd on

De esta manera estamos especificando el sistema que siempre que este inicie levante elservidor web apache en los niveles de ejecucion 3 y 5

Para detener algun proceso o servicio durante el arranque del sistema solo tecleeesto

[root@localhost ~]chkconfig –-level 35 httpd off

De esta manera estamos especificando el sistema que siempre que este inicie tengadetenido el servidor web apache en los niveles de ejecucion 3 y 5

Levantando, deteniendo y reiniciando servicios

Otra forma de levantar, detener o reiniciar servicios en caliente es mediante el uso delsiguiente comando el cual hace uso del fichero init.d del cual hemos habladoanteriormente. La estructura de la sintaxis para poder ocupar el comando es la siguiente:

[root@localhost ~]/etc/init.d/nombreDelServicio{start|stop|status|restart|reload}

A manera de ejemplificar el uso del anterior comando haremos lo siguiente.

Supongamos que tenemos ya instalado y configurado un servidor web apache y lo unicoque falta es levantar el servicio, para ello solo bastara teclear lo siguiente:

Page 27: Certificación LPI 101

Certificación LPIC-1

27

[root@localhost ~]/etc/init.d/httpd start

Para detener este mismo servicio solo debemos cambiar la palabra start por stop

[root@localhost ~]/etc/init.d/httpd stop

De igual manera si se quiere reiniciar el servicio solo debemos cambiar la palabra stoppor restart

[root@localhost ~]/etc/init.d/httpd restart

Otra manera de arrancar, detener o reiniciar servicios sin necesidad de teclear toda laruta anterior es mediante el uso de un alias el cual tiene la siguiente sintaxis

[root@localhost ~] service httpd {start|stop|status|restart|reload}

De igual forma solo debemos teclear start, stop o restar según sea el caso

Ejemplo:

[root@localhost ~]service httpd start

Page 28: Certificación LPI 101

Certificación LPIC-1

28

Manejo de PaquetesIntroduccion a la gestion e instalacion de software

Instalar, actualizar o eliminar software en sistemas operativos linux diferira de la formaen como usted lo hacia en sistemas operativos Windows o Mac, esto es debido a que lamayoria de las aplicaciones desarrolladas para Linux no cuentan con un asistente deinstalacion, en cambio, usted tendra que aprender a aplicar una serie de comandos en suequipo para poder llevar a cabo tareas de administracion y de gestion de paquetes. Laforma en que usted llevara a cabo esta administracion y gestion de paquetes seramediante el uso de las siguientes herramientas

yum

rpm

apt

Yellow dog Updater Modified (YUM) es una herramienta de software libre degestión de paquetes para sistemas Linux basados en RPM, fue desarrolladaprincipalmente para actualizar y controlar los sistemas Red Hat, Fedora,CentOS, y otras distribuciones de GNU/Linux basadas en RPM, incluyendo elmismo Yellow Dog.

Red Hat Package Manager (RPM), es una herramienta de administración depaquetes. Es capaz de instalar, actualizar, desinstalar, verificar y solicitarprogramas. Originalmente desarrollado por Red Hat para Red Hat Linux, en laactualidad muchas distribuciones GNU/Linux lo usan, dentro de las cuales lasmás destacadas son Fedora Linux, Mandriva Linux, SuSE Linux. También seha portado a otros sistemas operativos.

Advanced Packaging Tool (APT) , es un sistema de gestión de paquetescreado por el proyecto Debian. APT simplifica en gran medida la instalación yeliminación de programas en los sistemas GNU/Linux.

aptitude es una interfaz para APT. Muestra una lista de paquetes de software ypermite al usuario elegir de modo interactivo cuáles desea instalar o eliminar.Dispone de un poderoso sistema de búsqueda que utiliza patrones de búsqueda

aptitude flexibles, que facilitan al usuario entender las complejas relaciones dedependencia que puedan existir entre los paquetes. En un principio, se diseñópara distribuciones GNU/Linux Debian, pero hoy día se utiliza también endistribuciones basadas en paquetes RPM, como Mandriva.

El programa dpkg es la base del sistema de gestión de paquetes de Debiandpkg GNU/Linux. Se utiliza para instalar, quitar, y proporcionar información sobre

los paquetes .deb.

Herramienta RPM

RPM (Red Hat Package Manager) es una herramienta de administracion y gestion depaquetes orientada para sistemas operativos Linux, la cual es capaz de instalar,actualizar, desinstalar y verificar paquetes. Los paquetes RPM fueron originalmentedesarrollados por la empresa Red Hat con la intencion de implementarlo en el sistemaoperativo Red Hat Linux. Actualmente los paquetes RPM son utilizados pordistribuciones linux como Fedora, Centos, Suse y White Box.

Page 29: Certificación LPI 101

Certificación LPIC-1

29

Comando Comentariorpm -ivh paquete1.rpm Te permite instalar paquetes .rpmrpm -Uvh paquete1.rpm Te permite actualizar paquetes .rpm

rpm -e nombreDelPaquete Te permite eliminar un paquete

No hay que añadir la extensión, sino sólamente el nombre del paquete, sin la estensiónRPM.

Generalmente, se comienza por listar el paquete para conocer el nombre del mismoantes de desinstalarlo asi como tambien para asegurarse de que el paquete está instaladoen nuestro sistema. rpm -q nombreDelPaquete Nos permite conocer si un paquete seencuentra instalado o no en el equipo rpm -qa | grep nombreDelPaquete Realiza unabusqueda mas profunda sobre los paquetes que tenemos instalados o no en el equipo.

Herramienta YUMComando Comentarioyum install paquete1paquete2 ...paqueteN

Instala paquetes con sus dependencias

yum update paquete1paquete2 ...paqueteN

yum remove paquete1

Te permite actualizar paquetes junto con susdependencias

paquete2 .. paqueteN Te permite eliminar paquetes junto con sus dependencias

yum updateActualiza e instala todos los paquetes del sistemaoperativo

yum update --exclude=ekigaActualiza e instala los paquetes del sistema operativo,solo excluye el definido en la opcion --exclude

Nos ofrece un listado de resultados de los paquetes

yum search paquete1producto de la búsqueda por coincidencia de cadena decaracteres en la descripción, resumen y nombre delpaquete

yum info paquete1 Nos ofrece informacion detallada sobre algun paquete

yum repolist enabledNos permite conocer los repositorios que se encuentranhabilitados

yum localinstallpaquete1.rpm

Te permite instalar paquetes RPM

yum localupdatepaquete1.rpm

Te permite actualizar un paquete RPM

yum list installed Lista todos los paquetes instalados en el sistema

yum list available Lista los paquetes que pueden ser instalados

yum list updates Lista los paquetes que pueden ser actualizados

yum grouplist Lista por grupos los paquetes instaladosyum groupinfo"nombreDelGrupo"

Obtiene información de los grupos y de sus paquetesconstitutivos

yum groupinstall Instala un grupo de aplicaciones

Page 30: Certificación LPI 101

Certificación LPIC-1

30

"nombreDelGrupo"

yum groupupdate"nombreDelGrupo"

Actualiza un grupo de aplicaciones

yum groupremove "KDE (KDesktop Environment)"

Elimina un grupo de aplicaciones.

Configuración de YUM

La configuración general de YUM se encuentra en

/etc/yum.conf

los repositorios YUM configurados en sistemas operativos de la familia Red Hat seencuentran declarados en

/etc/yum.repos.d/

Para usos más avanzados agregaremos nuevas secciones y en caso de no encontrar loque busca consulte man yum.conf.

[main]

cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.logexactarch=1 obsoletes=1 gpgcheck=1 plugins=1 metadata_expire=1800installonly_limit=2 tsflasg=repackage

1. PUT YOUR REPOS HERE OR IN separate files named file.repo2. in /etc/yum.repos.d}}}

La primera cosa que podemos notar de los archivos de configuración es su estructura debloques de secciones con [sección]. Veremos que esta estructura se repite al momentode configurar los repositorios. En este caso yum.conf en la sección [main] define elcomportamiento general de yum y establece las directivas base, por ejemplo, de dóndese encuentran el cache. Comentamos a abajo un poco cada una de las directivas.

cachedir

Directorio donde yum debe almacenar su cache y archivos db. El valor por omisión es‘/var/cache/yum’.

keepcache

Ya sea ‘1’ o ‘0’. Determina si yum debe o no mantener el cache de los encabezados ypaquetes después de una instalación exitosa. Valor por omisión es ’1’ (mantener losarchivos)

debuglevel

Nivel de mensajes de depuración en la salida. El rango práctico es de 0-10. El valor poromisión es ‘2’.

Page 31: Certificación LPI 101

Certificación LPIC-1

31

logfile

Ruta completa al nombre de archivo donde yum debe escribir sus actividades.

exactarch

Ya sea ‘1’ o ‘0’. Puesto a ‘1’ provoca que yum update solo actualice los paquete dearquitectura que haya instalado, es decir, con esta opción habilitada yum no instalará unpaquete i686 para actualziar un paquete i386. Por omisión el valor es ‘1’.

obsoletes

Esta opción sólo tiene efecto durante una actualización. Habilita la lógica deprocesamiento de obsolescencias yum. Es útil cuando se realiza actualizaciones de nivelde distribución (upgrade). Vea también la documentación del comando yum upgradepara más detalles. Opción en la línea de comando: --obsoletes

gpgcheck

Ya sea ‘1’ o ‘0’. Esto le indica a yum si debe o no realizar una verficación de firmaGPG en los paquetes. Cuando está habilitado en la sección [main], establece elcomportamiento por omisión para todos los repositorios. Esta opción también determinasi una instalación de un archivo local RPM será verificado por su firma GPG o no. Elvalor por omisión es ‘0’.

plugins

Ya sea ‘0’ o ‘1’. Conmutador global para habilitar o deshabilitar las extensiones(plugins) de yum. Por omisión su valor es ‘0’ (extensiones deshabilitadas). Vea lasección PLUGINS del manual yum(8) para más información acerca de la instalación deextensiones yum.

metadata_expire

Duración en segundos después del cual los metadatos caducarán. Así entonces si losmetadatos actuales descargados son menos segundos de antiguo, entonces yum noactualizará dichos metadatos a partir del repositorio. Si encuentra que yum no estádescargando la información para actualizaciones tan frecuente como usted quisiera,disminuya el valor de este parámetro. También puede cambiar del formato por omisiónen segundos a días, horas o minutos agregando d, h o m respectivamente al valorespecificado. El valor por omisión es 1.5 hours, para complementar yum-updatesdejecutándose una vez por hora. También es posible usar la palabra "never" implicandoque los metadatos nunca expirarán.

installonly_limit

Cantidad de paquetes listados en installonlypkgs que se deben mantener instalados almismo tiempo. Poner este valor a 0 deshabilita la funcionalidad. Por omisión el valor es’3’.

Page 32: Certificación LPI 101

Certificación LPIC-1

32

tsflasg

Lista separado por comas o espacios de banderas de transacción que serán pasadas arpm. Estas incluyen ’noscripts’, ’notriggers’, ’nodocs’, ’test’, y ’repackage’. Puedeponer todas o cualquiera de ellas. Sin embargo, si no sabe qué hacen éstas banderas enel contexto de una transacción rpm, mejor no toque. Por omisión la lista está vacía.Estas son sólo algunas directivas, para más, man yum.conf. Dentro de yum.conf puedeincluir la configuración de los repositorios pero esa forma de configuracióne está endesuso y se prefiere utilizar archivos individuales en /etc/yum.repos.d/ quecomentaremos más adelante.

Extensiones de YUM

downloadonly

Este paquete nos permite descargar los paquetes RPM de alguna aplicación sin queestos sean instalados. La forma de instalar esta herramienta sera tecleando lo siguiente ..

[BASH] yum install yum-downloadonly

Implementando downloadonly

La manera de usar este comando es de la siguiente forma..

[BASH] yum install –downloadonly paquete1

fastestmirror

Esta extensión está diseñada para ordenar la lista de espejos por velocidad de respuestasde cada uno antes de comenzar una descarga. La forma de instalar esta herramienta seratecleando lo siguiente ..

[BASH] yum install yum-fastestmirror

Implementando downloadonly

La manera de usar este comando es de la siguiente forma..

[BASH] yum install paquete1

Utilidades YUM

yumdownloader

Esta herramienta complementa al plugin downloadonly ya que dicho plugin sólofunciona si el software deseado no está instalado. Veamos como falla y cómo podemosresolver este problema con yumdownloader.

[BASH] yum --downloadonly install openssh-server

Page 33: Certificación LPI 101

Certificación LPIC-1

33

Loading "downloadonly" plugin Setting up Install Process Setting up repositoriesReading repository metadata in from local files Parsing package install argumentsNothing to do}}}

Pues claro, no hay nada que instalar, ya está instalado. Intentemos ahora conyumdownloader.

[BASH] yumdownloader openssh-server

openssh-server-4.3p2-19.f 100% |=========================| 252 kB 00:01}}}

Listo, ya tenemos el rpm que queríamos.

package-cleanup

Esta herramienta ayuda a detectar problemas en la base de datos rpm y a resolverlos.

Comando Comentariopackage-cleanup --orphans

package-cleanup --

Lista paquetes huérfanos o aquellos paquetes que no son provistospor ninguno de los repositorios configurados

dupes Lista los paquetes con duplicados en la base de datos RPM

package-cleanup --problems

Lista los problemas de dependencias en la base de datos RPM

yum-complete-transaction

yum-complete-transaction es un program que busca transacciones yum incompletas oabortadas en el sistema e intenta completarlas. Busca en los archivos transaction-all ytransaction-done que normalmente se encuentran en /var/lib/yum si una transacción hasido abortada en el medio de su ejecución. Si se encuentra más de una transacción noterminada se intentará completar la más reciente primero. Puede ejecutar este programamás de una vez para limpiar todas las transacciones sin terminar. Ejemplo..

[BASH] yum-complete-transaction

Herramienta DPKGComando Comentariodpkg -ipaquete1.deb

Te permite instalar paquetes deb.

dpkg -i .deb Te permite instalar varios paquetes deb.

dpkg -rpaquete1.deb

Borra paquete instalado en el sistemas.

dpkg --purgepaquete1.deb

Borra paquete instalado sin dejar rastro.

dpkg -lpaquete1.deb

Hace búsquedas en SO de los paquetes ya instalados.

Page 34: Certificación LPI 101

Certificación LPIC-1

34

dpkg --infopaquete1.deb

Muestra la información del paquete.

dpkg --statuspaquete1.deb

Muestra el estado del paquete.

dpkg --searchpaquete1.deb

Muestra la información de donde se instalo el paquete.

dpkg –help Obtienes la ayuda del comando dpkg.

dpkg --configure-a

Ayuda arreglar a terminar de configurar paquetes rotos o que no seterminaron de instalar, se ocupa solo en emergencias cuando lasherramientas avanzadas no pueden solucionar el problema.

Herramienta APTITUDEComando Comentarioaptitude installpaquete1

Instala paquete y con las dependencias que tenga.

aptitude removepaquete1

Borra paquete y sus dependencias pero no las configuraciones.

aptitude purgepaquete1

Borra paquete, sus dependencias y archivos de configuración.

aptitude holdpaquete1

Bloquea paquete, para que no sean actualizados o eliminados.

aptitude unholdpaquete1

Desbloquea paquete.

aptitude update Actualiza lista de paquetes nuevos.

aptitude upgrade Actualiza los paquetes que tengamos instalados en nuestro sistema.aptitude dist-upgrade

Actualiza SO a la nueva versión de la misma.

aptitude searchpaquete1

Busca paquetes por nombre o expresión.

aptitude showpaquete1

Muestra información detallada de un paquete.

aptitude clean Elimina los fichero de paquetes descargados.

aptitude autocleanElimina los ficheros de paquetes descargados, como tambiénlimpia las llaves de los repositorios.

Herramienta APTComando Comentario

apt-get update Actualiza la lista de paquetes.apt-get upgrade Actualiza los paquetes de la SO.

apt-get install paquete1 Instala paquetes y con sus dependencias.

apt-get install --reinstallpaquete1

Reinstala paquetes dañados.

apt-get -f install Instala/borra paquetes y dependencias que esten o sin

Page 35: Certificación LPI 101

Certificación LPIC-1

35

cumplir paquetes.

apt-get remove paquete1 Borra paquete y sus dependencias.apt-get remove –purgepaquete1

Borra paquete, sus dependencias y archivos deconfiguración.

apt-get dist-upgrade Actualiza distribución a la mas reciente.

apt-get clean Elimina paquetes descargados.

apt-get autocleanElimina paquetes descargados, también borra cabecerasde repositorios.

apt-get check Verifica que hay dependencias o paquetes .

apt-cache search paquete1 Busca paquete o una cadena de texto.

apt-cache showpkg Muestra información sobre el paquete.

apt-cache dumpavailMuestra información sobre los paquetes que estandisponibles.

apt-cache pkgnames Muestra una lista rápida de todos los paquetes del sistema.

apt-get autoremove Borra paquetes ya obsoletos o no necesarios.

Manejo de comandos

Sobre SHELL

El shell es una interprete de comandos diseñado especificamente para sistemasoperativos Unix y derivados como Linux y BSD, su principal funcion es la de servircomo puente entre los usuarios y el hardare fisico de un equipo; Por puente me refiero aque el shell se encargara de interpretar y traducir los comandos en un lenguaje quepueda ser entendido por el hardware del equipo. El término shell también hacereferencia a un programa particular, tal como el Bourne shell o BASH. El BASH fue elshell usado en las primeras versiones de los sistemas operativos Unix , posteriormentepaso a convertirse en estandar para todos los sistemas operativos Linux

El Ambiente Linux

Para que entiendas lo que es y como funciona el Shell, primero te mostraré comofunciona el ambiente en capas. Para ello analizaremos la siguiente imagen.

En este gráfico se ve que la capa del hardware es la mas profunda y se encuentraconformada por los componentes físicos de tu equipo. Envolviendo a ésta, viene la capadel kernel que es el corazón de Linux, su núcleo, y es quien hace que el hardwarefuncione, efectuando su manejo y control. Los programas y comandos que envuelven elkernel, lo utilizan para realizar las tareas especificas para las cuales fuerondesarrolladas. Encerrando todo eso viene el Shell que tiene este nombre porque eningles, Shell significa concha, envoltura, o sea que, queda entre los usuarios y el sistemaoperativo, de forma que todo lo que interacciona con el sistema operativo, tiene quepasar por su filtro.

Page 36: Certificación LPI 101

Certificación LPIC-1

36

Algunas variantes del SHELL

Bourne Shell (sh)

Desarrollado por Stephen Bourne de la Bell Labs (de AT&T donde también fuedesarrollado el Unix), este fue durante muchos años el Shell patrón del sistemaoperativo Unix. Es también llamado de Standard Shell por haber sido durante variosaños, el único y hasta hoy es el mas utilizado ya que fue transportado para todos losambientes Unix y distribuciones Linux.

Korn Shell (ksh)

Desarrollado por David Korn, también de la Bell Labs, es un superconjunto del sh, osea, posee todas las facilidades del sh y a ellas se agregaron muchas otras. Lacompatibilidade total con el sh esta atrayendo a muchos usuarios y programadores deShell para este ambiente.

Boune Again Shell (bash)

Este es el Shell mas moderno y cuyo número de adeptos crece mas en todo el mundo,sea por ser el Shell default de Linux, su sistema operativo natural, o sea por su grandiversidad de comandos, que incorpora inclusive diversas instrucciones característicasdel C Shell.

CShell (csh)

Desarrollado por Bill Joy de la Berkley University es el Shell mas utilizado enambientes BSD e Xenix. La estrutura de sus comandos es bastante similar al dellenguage C. Su gran pecado fue ignorar la compatibilidad con el sh, partiendo por uncamino propio. Además de estos Shells existen otros, pero contigo voy a hablarsolamente sobre los tres primeros, tratandolos genéricamente por Shell y señalando laspeculiaridades de cada uno que eventualmente tengan.

Introduccion a BASH

Conociendo el SHELL de nuestro equipo

Una forma de conocer sobre cual SHELL estamos trabajando es tecleando el siguientecomando en una terminal

echo $SHELL

/bin/bash}}}

Si obtuviste el mismo resultado que en la linea de ariba entonces estas utilizando elShell Bash, en caso contrario de no haber obtenido lo mismo, significa entonces que tuestas usando algun otro Shell.

Page 37: Certificación LPI 101

Certificación LPIC-1

37

Usando el comando cd

current working directory o cd es el comando utilizado para indicar al Shell el directorioen el cual queremos trabajar. Hagamos una prueba de este comando navegando ennuestro propio sistema de ficheros. En la terminal teclee lo siguiente:

[BASH] cd /

Este comando le indica al BASH que queremos trabajar en el directorio /, tambienconocido como raiz

Rutas (Paths)

Para conocer el directorio actual de trabajo en el que se encuentra el BASH escriba:

[BASH] pwd

/ }}}

En el ejemplo anterior , el argumento / es conocido como la ruta o camino hacia dondequeremos dirigirnos. En particular, el argumento / es un ruta absoluta

Rutas Absolutas

Algunos ejemplos de rutas absolutas son las siguientes:

/boot

/etc /root /usr/local/bin}}}

Note que todas estas rutas absolutas tienen un comun denominador, nos referimos a labarra / Analicemos a detalle la ultima linea del ejemplo: Si usted teclea → cd/usr/local/bin En ella indicamos al Shell a traves del comando cd (current workingdirectory) que primero entre al directorio / , desde ahi luego entrara al directorio usrposteriormente al directorio local y recien desde ahi entrara a bin. Las rutas absolutassiempre comenzaran a evaluarse a partir de /.

Rutas Relativas

Las rutas relativas son todas aquellas que no comienzan a evaluarse desde /

Por ejemplo, si estamos trabajando en la ruta /usr

[BASH] cd /usr

Entonces, ahora usted podra usar una ruta relativa para cambiar el directorio actual detrabajo a /usr/local/bin de la siguiente forma:

[BASH] cd local/bin

[BASH] pwd /usr/local/bin}}}

Page 38: Certificación LPI 101

Certificación LPIC-1

38

Usando el . . (punto a punto)

El uso del . . sirve unicamente para regresar un nivel desde el directorio de trabajo en elcual estamos trabajando. Ejemplo:

[BASH] cd /usr/local/bin

[BASH] pwd /usr/local/bin}}}[BASH] cd ../../

[BASH] pwd /usr}}}

En la primera seccion del ejemplo indicamos a traves del comando cd (current workingdirectory) que primero entre al directorio / , desde ahi luego entrara al directorio usrposteriormente al directorio local y recien desde ahi entrara a bin. En la segunda secciondel ejemplo indicamos mediante el uso del (../) punto punto que regrese un nivel, peroinmediatamente indicamos nuevamente que retroceda otro nivel mas (../) Por cadaretorno de nivel debera hacerse uso del (..) punto punto

Entendiendo el . (punto)

El uso del punto (. ) sirve para ejecutar algún programa situado en el directorio actual.Ejemplo :

[BASH] ./ejecutable

En este ejemplo, se ejecutara el archivo llamado ejecutable que reside en el directorioactual de trabajo.

Page 39: Certificación LPI 101

Certificación LPIC-1

39

Usando los comandos de LinuxEl comando ls

Vamos a darle una pequeña mirada al comando ls, el cual, ya conozca tal vez, pero porsi no lo sabe , este sirve para listar el contenido del directorio actual de trabajo.Hagamos un ejercicio, con ayuda del comando “cd” muevase al directorio de trabajo/var

[BASH] cd /var

Ahora con ayuda del comando “ls” liste el contenido de dicho directorio

[BASH] ls

X11R6 cache crash games lib lock log mail opt run spool tmp }}}

Si al comando ls le agregamos el parametro -a nos listara todos los ficheros deldirectorio incluyendo los ficheros ocultos.Los ficheros ocultos son indentidicados porllevar un punto (.) al princio del nombre del fichero. Ejemplo:

[BASH] ls -a

.emacs .gvfs .pulse .wapi }}}

Para realizar un listado completo sobre la informacion de algun directorio basta conagregar al comando ls el parametro -l Nuevamente con ayuda del comando “cd”muevase al directorio de trabajo /var, pero esta vez use el comando ls junto el parametro-l y compare sus resultados con el primer ejemplo

[BASH] cd /var

[BASH] ls -l total 52 drwxr-xr-x 11 root root 4096 jun 9 04:59 adm drwxr-xr-x 19 rootroot 4096 jun 9 11:28 cache drwxrwxrwt 2 root root 4096 dic 3 2008 crash drwxr-xr-x 2root root 4096 dic 9 2008 games drwxr-xr-x 41 root root 4096 jun 9 11:28 libdrwxrwxr-t 6 root uucp 4096 jun 17 11:40 lock drwxr-xr-x 13 root root 4096 jun 1615:38 log lrwxrwxrwx 1 root root 10 jun 9 04:46 mail -> spool/mail drwxr-xr-x 2 rootroot 4096 dic 3 2008 opt drwxr-xr-x 25 root root 4096 jun 17 11:40 run drwxr-xr-x 12root root 4096 jun 9 04:49 spool drwxrwxrwt 8 root root 4096 jun 17 10:44 tmp drwxr-xr-x 3 root root 4096 dic 9 2008 X11R6 drwxr-xr-x 3 root root 4096 dic 9 2008 yp}}}

La opcion -l le resultara de gran utilidad cuando quiera ver informacion sobre permisos,tiempos de modificacion, tamaño o propiedad de los contenidos listados.

De forma mas detallada, la primer columna muestra la informacion sobre los permisospara cada elemento listado. La columna siguiente lista el numero de links para cadaobjeto del sistema de ficheros. La tercer y cuarta columna listan el propietario delelemento, y el grupo al cual pertenece, respectivamente. La quinta muestra el tamaño delos objetos, mientras que la sexta lista cuando fue realizada la ultima modificacion delobjeto . La ultima columna es el nombre del objeto. Si el archivo es un enlacesimbolico, entonces usted ver una flecha --> y la ruta hacia la cual el link simbolicoapunta. En el capitulo 7 veremos mas a fondo este comando

Page 40: Certificación LPI 101

Certificación LPIC-1

40

Comodines

Los comodines son caracteres que se utilizan en lugar de otros caracteres que el sistemarellena. Los dos comodines más frecuentes son:

El asterisco

*

La interrogación ?

Aunque en ocasiones se confundan, su significado es diferente y producirán resultadostotalmente distintos. El asterisco significa ninguno, alguno o todos los caracteres:Ejemplo:

[BASH] ls e*

ed edusat.txt éxito.pdf eduardo.gif educacion}}}

Este comando mostrará todas las entradas de archivos o directorios dentro del directorioactual que comiencen con la letra e, y que tengan cualquier número de caracteres. Hayque prestar atención a que el comando encuentra la “e” sola y la “e” seguida decualquier número de caracteres a continuación. En contraste, la interrogación (?) es uncontenedor para un y sólo un carácter. Utilizando las mismas posibilidades que antes, elcomando:

[BASH] ls e?

ed }}}

Encontrará entradas de archivos y directorios dentro del directorio actual que comiencenpor la letra “s” y que únicamente tengan una letra más. Si quisiésemos encontrar lasentradas que comiencen por e y cuyo nombre tenga 5 caracteres en total, utilizaríamos:

[BASH] ls e????

En resumen, el asterisco significa todos o ninguno, y el interrogante siempre significauno.

Estos dos comodines no son excluyentes, de modo que se pueden combinar según lasnecesidades.

Por ejemplo, para encontrar sólo los archivos que tengan una extensión de tres letrasdentro del directorio actual, utilizaremos:

[BASH] ls *.???

Para complicar un poco más las cosas también podemos utilizar los corchetes ( [ ] ) paraespecificar posibles valores. Todos los valores posibles deben estar dentro de loscorchetes, y el shell los tratará individualmente: En el siguiente ejemplo encontrará

Page 41: Certificación LPI 101

Certificación LPIC-1

41

todas las entradas que comiencen por “d” o por “e” y que contengan un númeroilimitado de caracteres.

[BASH] ls [de]*

Para encontrar las entradas de longitud de 3 caracteres que comiencen por “d” o por “e”,utilizaremos:

[BASH] ls [de]???

El número de caracteres que podemos incluir dentro de los corchetes es teóricamenteilimitado. Sin embargo, si lo que queremos es encontrar todas las entradas quecomiencen por una letra minúscula pero no por un número u otro carácter, podemosutilizar [abcdefghijklmnopqrstuvwxyz]. Debido a que esto es un rango, una formamucho más simple de obtener el mismo resultado es poniendo:

[BASH] ls [a-z]???

Los rangos no tienen que ser series completas de números o caracteres, podemosexpresar subconjuntos de ellos. Por ejemplo, si queremos buscar entradas quecomiencen por alguna letra entre la “d” y la “t”, podemos utilizar indistintamente[defghijklmnopqrst] o [d-t]. Si la entrada puede comenzar por esas letras tanto enmayúsculas como en minúsculas, podemos usar[DEFGHIJKLMNOPQRSTdefghijklmnopqrst] o [D-Td-t] .

El comando mkdir

Vamos a darle una pequeña mirada ahora al comando mkdir. La funcion de estecomando es la de crear nuevos directorios. Ejemplo:

[BASH] mkdir

agenda.emacs .gvfs .pulse .wapi }}}

Por defecto, el comando mkdir no crea directorios padre; la ruta completa hasta elanteultimo elemento debe existir previamente. De esta manera, si quiere crear losdirectorios → principal/secundario/ultimo tendra que crearlos uno a uno.

[BASH] mkdir principal/secundario/ultimo

mkdir: no se puede crear el directorio "principal/secundario/ultimo": No such file ordirectory [BASH] mkdir principal [BASH] mkdir principal/secundario [BASH] mkdirprincipal/secundario/ultimo }}}

Sin embargo, mkdir tiene la opcion -p la cual puede crear una rama de directorios en unsolo paso

[BASH] mkdir -p principal/secundario/ultimo

Para obtener mas informacion sobre el comando mkdir escriba

[BASH] man mkdir

Page 42: Certificación LPI 101

Certificación LPIC-1

42

comando touch

Touch es un comando que sirve para crear ficheros sin contenido

[BASH] touch archivo1

comando echo

Ahora que el archivo existe, le agregaremos algunos datos. Esto podemos hacerlomediante el comando echo , que toma sus argumentos y los imprime en la salida estndar (standard output). Probemos como funciona el comando echo

[BASH] echo "HELLO LINUX"

Ejecutemos ahora el mismo comando pero ahora redireccionando su salida al ficherovacio que creamos en el punto anterior.

[BASH] echo "HELLO LINUX" > archivo1

El signo mayor (>) le dice al BASH que escriba la salida de echo a un archivo llamadoarchivo1.

comando cat y cp

Para ver los contenidos de un archivo en una terminal, use el comando cat:

[BASH] cat archivo1 HELLO LINUX

Bien,ahora podemos hacer uso del comando cp para crear una copia del ficheronombrado “archivo1”

[BASH] cp archivo1 copiadearchivo1

comando mv

Usemos ahora el comando mv para renombrar “archivo1” a “nuevoarchivo1”.

[BASH] mv archivo1 nuevoarchivo1

Veamos otra manera de usar el comando mv, ya que este comando, ademas depermitirnos renombrar archivos, nos permite mover uno o mas archivos hacia otraubicacion. Por ejemplo, para mover archivo1 a → /var/ escribira

[BASH] mv archivo1 /var/

Procesando cadenas de texto usando filtros

En este capitulo cubriremos los temas referentes a las herramientas comunmenteimplementadas en los procesadores de textos disponibles para Linux Éstas incluyendiversas utilidades de filtrado, que se usan para buscar y cambiar archivos, así como las

Page 43: Certificación LPI 101

Certificación LPIC-1

43

herramientas de entrada y salida. Es necesario comprender el uso de estas herramientas,debido a que son especialmente útiles en las labores administrativas diarias.

Listando el contenido de un fichero

En en capitulo 6.5.6 hablamos un poco sobre el comando cat, el cual comomencionamos es un comando muy usado para listar los contenidos de ficheros deconfiguracion. La sintaxis para usar este comando es la siguiente:

[BASH] cat nombreDelFichero

Ordenando lineas de un fichero con Sort

Sort nos permite ordenar los registros o líneas de uno o más archivos. Se usa paraordenar, mezclar, y comparar líneas de ficheros. Este comando sigue la siguientesintaxis:

[BASH] sort opciones nombreDelFichero

Opciones Descripcion-b Ignora espacios en blanco

-c Revisa si el fichero esta ordenado

-dConsidera solo los caracteres alfanumericos y ordena por directorio detelefono

Este parámetro nos sirve para indicar que las mayúsculas y las minúsculas-f se van a tratar de forma diferente y que por tanto se va a seguir un

ordenamiento alfabético

-m Une los ficheros ya ordenados sin reordenarlos

-M Compara ficheros ordenado

-nEste parámetro nos sirve para ordenar los campos numéricos por su valornumérico

-o FILE Escribe en un fichero específico de salida en lugar de la salida estándar

-r Nos permite realizar una ordenación inversa, es decir, de mayor a menor.

-uNos permite suprimir todas las líneas repetidas después de realizar laordenación.

-k numeroDe este modo especificaremos por qué columna o campo vamos a realizarla ordenación en las versiones más recientes de Linux.

Normalmente, se usa como delimitador de campos el espacio en blanco.- - field -separator

Podemos utilizar el parámetro --field-separator para indicar que vamos ausar otro delimitador de campo cualquiera. Ej: --field-separator=, Laopción abreviada de --field-separator es -t.

- -help Muestra la ayuda y salida

- -version Muestra versión y salida

Ejemplo: Creémos un fichero de texto llamado lista con el siguiente contenido:

[BASH] vi lista

Page 44: Certificación LPI 101

Certificación LPIC-1

44

- - - - - - - - - - - - - - - - - - - - 3 centos 7 Red Hat debian 13 Novell Inc edubuntu 27Canonical fedora 32}}}

Al terminal, ejecute la siguiente orden:

[BASH] sort lista

Observe el resultado, por defecto, se ordena la lista por orden numérico seguido deorden alfabético, con mayúsculas antes que las minúsculas.

13

27 3 32 7 Canonical centos debian edubuntu fedora Novell Inc Red Hat }}}

Genere los siguientes ficheros

Al terminal, ejecute la siguiente orden:

[BASH] sort fichero1 fichero2

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - - centos debian fedora ubuntu }}}

En este otro ejemplo, dos ficheros se fusionan y se ordenan. También es posible ordenarlistas de nombres por campos. Los campos se pueden separar por espacios o tabuladoresy son numerados empezando por cero. Cuando se ordenan campos, el símbolo +precede al numero de campo con cada fichero separado por espacios. Genere el ficherollamado lista con el siguiente contenido

[BASH] vi lista

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - - iliana castillo zaira munivealethya zamano pilar diaz mayra rodriguez mariana rivera }}}

Ordenaremos esta lista por el apellido de estas personas de la siguiente manera:

[BASH] sort +1 +0 lista

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - - iliana castillo pilar diaz zairamunive mariana rivera mayra rodriguez alethya zamano }}}

El uso de estos campos permite mucha flexibilidad en ordenar listas en ficheros. Esimportante recordar que la utilidad sort no cambia el fichero original. La salida se envíaa la salida estándar donde se puede visualizar o redireccionar hacia otro comando ofichero.

Segmentando un texto con Cut

La utilidad cut se usa para escribir partes seleccionadas de un fichero en la salidaestándar o BASH. La utilidad cut también se puede usar para seleccionar columnas ocampos desde ficheros específicos. Es posible tambien seleccionar un trozo de una líneaespecífica, varios trozos, o un rango especifico. La siguiente tabla muestra la gama deopciones que pueden ser integradas al comando cut:

Page 45: Certificación LPI 101

Certificación LPIC-1

45

Opciones Descripcion-b Escribe en la salida el rango de bytes especificos

-c Escribe en la salida solo los caracteres especificados

-fEscribe en la salida solo los campos especificados, delimitados portabuladores

- - help Muestra la ayuda

- -version

Muestra informacion sobre la version

A continuación un ejemplo del uso de estos rangos para escribir en la salida solo losprimeros 5 caracteres de cada línea del fichero que dimos de alta al final de la seccion6.6.2 llamado listas.

[BASH] cut -c 1-5 listas

ilian zaira aleth pilar mayra maria }}}

Pegando texto con Paste

La utilidad paste permite juntar texto desde múltiples ficheros. Las líneascorrespondientes del fichero específico se escriben en la salida estándar con cada líneaseparada por un carácter tabulador . La siguiente tabla muestra la gama de opciones quepueden ser integradas al comando cut:

Opciones Descripcion

-s Pega líneas desde un fichero a la vez-d delimit-list

Usa los caracteres especificados en delimit-list consecutivamente en vezdel carácter tab cuando separa ficheros mezclados.

Genere el fichero llamado apodos con el siguiente contenido

[BASH] vi apodos

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - - hackhat gaymarc bigbuitrejavarambo rufodog }}}

Ahora veremos un ejemplo del comando paste aplicandolo al fichero que acabamos degenerar en conjunto con el fichero de la seccion 6.6.2 llamado listas.

[BASH] paste listas apodos

Nos daría como resultado los nombres de la lista seguidos de los apodos.

[BASH] paste lista apodos

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - - iliana castillo hackhat zairamunive gaymarc alethya zamano bigbuitre pilar diaz javarambo mayra rodriguezrufodog mariana rivera }}}

Page 46: Certificación LPI 101

Certificación LPIC-1

46

Formateando parrafos

El comando fmt formatea cada párrafo en un fichero y la envía a la salida estandar. Estecomando es utilizado para especificar la anchura de las líneas, tambien puede juntar osepara líneas en un esfuerzo para que estas tengan la misma longitud. Otra de lasfunciones de fmt es la de intentar separar las líneas al final de cada sentencia. Cuandoesto no es posible, intenta romper la línea después de la primera palabra o antes de laúltima palabra de la sentencia. La anchura por defecto que utiliza fmt para una línea esde 75 caracteres. El ancho por defecto puede ser modificado usando la opción adecuadaen el comando fmt. La siguiente tabla muestra la gama de opciones que pueden serintegradas al comando fmt.

-c

-t

Opciones DescripcionMantiene igual los espacios de principio de párrafo y alinea el párrafocon margen izquierda en la segunda líneaTrabaja como -c excepto que los espacios de comienzo de la segundalínea sean igual que la primera, considerando la segunda línea comoun párrafo de una línea

-s Especifica que las líneas van a ser divididas y no juntadas

-uEspecifica que espacio uniforme se va a utilizar; esto reduce laseparación entre todas las palabras a un espacio y a dos espacios entrelas sentencias

-NUMERO o -wNumero

Establece la largura de la línea al NUMERO indicado

-p PREFIXEspecifica que las líneas que empiecen por PREFIX seránmodificadas

Genere el fichero llamado apodos con el siguiente contenido

[BASH] vi fedora

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - - Fedora es un sistema operativobasado en Linux que incluye lo último en software libre y de código abierto. Fedora essiempre gratis para que cualquiera lo use, modifique o distribuya. Lo construye gentealrededor del mundo que trabajan juntos como una comunidad: El Proyecto Fedora esabierto y todos son bienvenidos.}}}

Y aplique el comando fmt de la siguiente forma:

[BASH] fmt -40 fedora

Podra verificar que el texto se formateo correctamente.

Borrando o sustituyendo caracteres.

Hay veces en las que se quiere buscar en un documento caracteres específicos y luegoborrarlos o reemplazarlos por otros. Un ejemplo sería un documento que utilizamayúsculas y minúsculas, pero se prefiere que todo el documento esté en minúsculas,

Page 47: Certificación LPI 101

Certificación LPIC-1

47

para ello, el comando tr se encarga de llevar a cabo esta area Este comando sigue lasiguiente sintaxis:

[BASH] tr opciones

La siguiente tabla muestra la gama de opciones que pueden ser integradas al comandotr.

Opciones Descripcion-d Borra un carácter especificado.

-s Remplaza una secuencia de caracteres por un carácter.

- - help Muestra la ayuda

- - version Muestra la version

Genere un fichero llamado semana con el siguiente contenido

[BASH] vi semana

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - - Lunes Martes Miercoles JuevesViernes Sabado Domingo }}}

Y aplique el comando fmt de la siguiente forma:

[BASH] tr -d aeiou

Dicha accion borrara todas las vocales del archivo “semana”

[BASH] cat semana | tr -d

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - - Lns Mrts Mrcls Jvs Vrns SbdDmng }}}

Ver el inicio de un fichero

El comando head nos permite ver el comienzo de un fichero. Por defecto nos muestralas 10 primeras líneas. La siguiente tabla muestra la gama de opciones que pueden serintegradas al comando head.

Opciones Descripcion-c NUMERO Especifica el número de bytes a ser mostrados.

-n NUMERO Muestra el NUMERO de líneas especificado.

-q No muestra las cabeceras.

-v Muestra las cabeceras.

- - help Muestra la ayuda

- - version Muestra la versión.

Este comando sigue la siguiente sintaxis:

[BASH] head opciones nombreDelFichero

Page 48: Certificación LPI 101

Certificación LPIC-1

48

Ver el final de un fichero

Tail nos permite ver el final de un fichero. Como head, el comando tail muestra lasúltimas 10 lineas de un fichero por defecto . La siguiente tabla muestra la gama deopciones que pueden ser integradas al comando tail.

Opciones Descripcion-NUMERO Especifica el número de líneas a ser mostrado.

+NUMEROEspecifica el número de líneas desde el comienzo a partir de dondeempieza a mostrar.

- - retryIndica a las instrucción que se mantenga intentando abrir un ficherocuando este esté inaccesible.

-cNUMERO

Especifica el número de bytes a ser mostrados.

Muestra las líneas y va mostrando líneas según se escriben en el fichero.-f Este comando puede venir bien para ficheros que crecen como por

ejemplo los ficheros LOG.

-nNUMERO Muestra el NUMERO de líneas especificado.

-q No muestra las cabeceras.-v Muestra las cabeceras.

- -help Muestra la ayuda

- - version Muestra la versión.

Este comando sigue la siguiente sintaxis:

[BASH] tail opciones nombreDelFichero

Uniendo multiples ficheros

El comando join en realidad busca en dos ficheros entradas comunes. Las entradasencontradas en los dos ficheros son mostradas en la salida estandar donde pueden serredireccionadas a un fichero. Puedes combinar ficheros usando campos. El comandojoin usa campos de unión para combinar líneas de múltiples ficheros. Antes de usar elcomando join, el fichero debe de comenzar con los campos de unión. Esto se consiguemuchas veces con el comando sort basado en los campos que van a ser juntados. Así, situ estás utilizando dos ficheros que contienen el nombre y el primer apellido y quieresjuntar los ficheros utilizando el apellido, entonces los dos ficheros deben ser ordenadospreviamente utilizando el campo apellido. La siguiente tabla muestra la gama deopciones que pueden ser integradas al comando join.

Opciones Descripcion-I Especifica que caso es ignorado cuando se combinan los ficheros.-1 FIELD Especifica el campo en el fichero 1

-2 FIELD Especifica el campo del fichero 2

Page 49: Certificación LPI 101

Certificación LPIC-1

49

-t char Especifica el carácter separador del fichero de entrada y de salida.

-v FILESe imprime una línea por cada línea no “pareada” encontrada en el ficheroFILE

- - help Muestra la ayuda

- - version Muestra la versión.

Este comando sigue la siguiente sintaxis:

[BASH] join opciones nombreDelFichero

Segmentando un fichero

La utilidad SPLIT se usa para dividir un fichero grande en varios segmentos maspequeños. Esta utilidad crea ficheros de una cierta longitud, cuyo valor por defecto es de1000 líneas, y los nombra de forma secuencial. Los nombres de los archivos estánformados por un prefijo, de valor “x” por defecto, seguido por una combinación deletras que sigue el patrón de “aa”, “ab”, “ac”, etc. Si se deben crear más de 676 ficheros,la sintaxis será “zaa”, “zab”, etc. Cuando no se especifica ningún fichero de entradapara la utilidad SPLIT, la entrada de datos estándar se utilizará por defecto.

La sintaxis correcta para el comando split es la siguiente:

[BASH] split opciones nombreDelFichero ficheroSalida

La siguiente tabla muestra la gama de opciones que pueden ser integradas al comandosplit.

Opciones Descripcion-l LiNEAS Especifica que caso es ignorado cuando se combinan los ficheros.

-b BYTES Especifica el campo en el fichero 1

-c BYTES Especifica el campo del fichero 2

- - verbose Especifica el carácter separador del fichero de entrada y de salida.

- - help Muestra la ayuda

- - version Muestra la versión.

Genere un fichero llamado arreglo con el siguiente contenido

[BASH] vi arreglo

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - - primero segundo tercero cuartoquinto sexto septimo octavo novedo decimo}}}

Y aplique el comando split de la siguiente forma:

[BASH] split -l2 arreglo arreglosegmentado

El fichero “arreglo” se divide en varios archivos nombrados “arreglosegmentado”, cadauno de los cuales contiene cinco líneas.

Page 50: Certificación LPI 101

Certificación LPIC-1

50

Eliminando lineas repetidas en un fichero

El comando uniq es una herramienta que nos ayuda a eliminar los datos repetidos en unfichero Este comando sigue la siguiente sintaxis:

[BASH] uniq opciones nombreDelFichero

La siguiente tabla muestra la gama de opciones que pueden ser integradas al comandouniq.

Opciones Descripcion-c Enumera el número de ocurrencias (líneas que se repiten)

-d Solo conserva las líneas que se repiten

-u Solo conserva las líneas que son únicas

Convirtiendo ficheros para imprimir

La utilidad pr formatea y prepara ficheros para imprimir, escribiéndolos en la salidaestándar, paginándolos y opcionalmente escribiéndolos en un formato de multicolumna.Adicionalmente, también puede unir ficheros, imprimiéndolos en paralelo, uno porcolumna . La sintaxis correcta para el comando pr es la siguiente

[BASH] pr opciones nombreDelFichero

Por defecto, en cada página se escribe un encabezado de cinco líneas: dos líneas enblanco, una línea con la fecha, el nombre del archivo y el contador de página, y doslíneas más en blanco. Igualmente, también se escribe un pie de página de cinco líneas.Hay numerosas opciones para especificar el formato producido con la utilidad PR,algunas de las cuales se muestran en la siguiente tabla :

Opciones Descripcion

-COLUMNASProduce tantas columnas como el número COLUMNAS y equilibrael número de líneas en cada columna dentro de cada página.

-a Imprime las columnas en horizontal en lugar de en vertical.-d Inserta un doble espacio en la salida

-fUtiliza saltos de página en lugar de caracteres de nueva línea paraseparar páginas.

-h TEXTOUtiliza el texto especificado en TEXTO en lugar del nombre delfichero dentro del encabezado

-l LINEAS Establece el número de líneas por página-m Imprime todos los ficheros en paralelo, uno por columna.

-N NUMEROEmpieza contando por NÚMERO en la primera línea de la primerapágina impresa.

-wCARACTERES

Establece el ancho de página a un número de caracteres igual aCARACTERES (el valor por defecto es 72). Solamente se utilizapara formatos de salida multicolumna

Page 51: Certificación LPI 101

Certificación LPIC-1

51

-WCARACTERES

Establece el ancho de página a un número de caracteres igual aCARACTERES siempre. El valor por defecto es 72.

Mostrando estadisticas de un fichero

La utilidad WC cuenta el número de bytes, palabras separadas por espacios en blanco ysaltos de línea para cada uno de los ficheros indicados. Se muestra una línea deresultados para cada uno de los ficheros, y si el fichero fue indicado como unargumento, muestra su nombre a continuación. Si se indica más de un fichero, lautilidad muestra una línea final indicando los resultados acumulativos con el texto“total”. El orden en el que se muestran los resultados es el siguiente: en primer lugar lossaltos de línea, luego las palabras y finalmente los bytes. Por defecto, cada resultado semuestra justificado a la derecha en un campo de siete bytes con un espacio en blancoentre cada uno de los resultados, de manera que los números y los nombres de losficheros se alinean correctamente en columnas, algunas de las cuales se muestran en lasiguiente tabla :

Opciones Descripcion-c Muestra únicamente el número de bytes

-w Muestra únicamente el número de palabras

-l Muestra únicamente el número de líneas

-L Muestra la longitud de la línea más larga

- - help Muestra información de ayuda y termina

- - version Muestra información sobre la versión y termina

La sintaxis correcta para el comando wc es la siguiente

[BASH] wc opciones nombreDelFichero

Añadiendo numeros de linea a un fichero.

La utilidad nl es útil para mostrar los números de línea de un fichero. Se organiza elfichero de entrada en páginas lógicas y por defecto, el número de línea se inicializa a 1al principio de cada una de ellas. Se tratan todos los ficheros de entrada como un únicodocumento y no se inicializan los números de línea ni las páginas lógicas entre ficheros.Una página lógica consiste en tres secciones separadas por una línea en blanco:encabezado, cuerpo y pie de página. Cualquier de ellas puede estar vacía y puede estarnumerada de una forma distinta a las otras dos. El texto que preceda el primer separadorde sección en el fichero de entrada se considerará parte del cuerpo, de manera que lautilidad nl tratará un fichero sin delimitadores de sección como una única sección decuerpo , algunas de las cuales se muestran en la siguiente tabla :

Opciones Descripcion-a Numera todas las líneas-t Numera únicamente las líneas no vacías

-n No numera las líneas. Es el valor por defecto de los encabezados y los

Page 52: Certificación LPI 101

Certificación LPIC-1

52

-iNUMERO

pies de página.Incrementa el número de línea en una cantidad igual a NÚMERO. Elvalorpor defecto es uno.

-p No inicializa los números de línea al principio de cada página lógica.

-s CADENAAñade la cadena de caracteres CADENA después de cada número delínea.

-vNUMERO

Establece el NÚMERO inicial de cada página lógica.

-wNUMERO

Especifica el NÚMERO de espacios que se reservan para los números delínea. El valor por defecto es seis

La sintaxis correcta para el comando nl es la siguiente

[BASH] nl opciones nombreDelFichero

Administracion de Archivos

Listando el contenido de un directorio

Anteriormente estuvimos trabajando un poco con el comando ls (list), el cual comoexplicamos en el capitulo anterior, es un comando para listar el contenido de undirectorio A continuacion indagaremos un poco mas en el uso de este comando. Elcomando ls puede aceptar opciones como argumento. Hay un gran número de opcionespara éste comando que permiten un gran control sobre el resultado. En la tabla siguientese muestran las opciones más usadas:

Opciones Descripcion-a Lista todos los contenidos del directorio.

-A Trabaja como el -a excepto que no lista “.” y el “..”-B No se lista los ficheros que finalizan con |

-d Muestra el nombre del directorio en el listado

-L Muestra la información para los ficheros enlaces o referenciales

-R Muestra los directorios recursivamente.

Una variedad de opciones pueden ser usadas para especificar la información mostradaen un listado de ficheros, algunas de estas opciones se muestran en la siguiente tabla :

Opciones Descripcion-G Especifica que grupo de informacion no se muestra

-I Muestra el numero inode

-lMuestra el tipo de fichero, permisos, contador de enlaces permanentes,propietario, grupo propietario y fecha de la última modificación

-oMuestra la misma información que -l menos la información de grupo que esexcluida

-s Muestra el tamaño del fichero en bloques de 1024 Kb

Page 53: Certificación LPI 101

Certificación LPIC-1

53

El comando ls utiliza a veces opciones para ordenar la salida, las cuales se muestran enla siguiente tabla.

Opciones Descripcion

-cMuestra el resultado acorde con la fecha de modificación o la fecha demodificación de inode

-f Muestra el resultado con el orden en que han sido salvados en el directorio-r Muestra el listado en orden inverso

-S Muestra el listado de acuerdo al tamaño, del más grande al más pequeño

-tMuestra el listado de acuerdo a la fecha de modificación, mostrando primeroel más reciente.

-uMuestra el listado de acuerdo al último acceso, empezando por el másreciente.

La salida producida por el comando ls puede ser también controlada con otra serie deopciones. Estas opciones se muestran en la siguiente tabla

Opciones Descripcion-l La salida se muestra una fila por linea-C La salida se muestra en columnas

-FMuestra el nombre del fichero con una letra para especificar el tipo defichero

-k Muestra el tamaño del fichero en Kb-m Muestra los nombres de ficheros separados por comas

-n Muestra el usuario y el número de grupo

-p Muestra los nombres de ficheros con un carácter para especificar el tipo

-x Muestra el nombre de fichero en columnas ordenadas horizontalmente

-TCOLTS

-WCOLTS

Asume que cada parada de tabulación está a cols columnas de ancho; elvalor predeterminado es 8. ls emplea tabuladores donde es posible en lasalida, por eficiencia. Si cols es cero, no usa tabuladores para nada.

Asume que la pantalla tiene cols columnas de ancho. El valorpredeterminado se toma del controlador de terminal si es posible; si no, seemplea la variable de ambiente COLUMNS si está definida; de otro modo elvalor predeterminado es 80

Todas éstas opciones se pueden combinar para crear una salida muy especifica

Determinando el tipo de fichero

El comando ls provee de mucha información cuando se examinan ficheros, pero nomuestra información sobre el tipo de contenido de los mismos. El comando file puedeser usado para aprender más sobre el tipo contenido de los ficheros en un sistema Linux.La salida del comando file incluye una de las siguientes palabras:

text

Page 54: Certificación LPI 101

Certificación LPIC-1

54

executable data o directory

Este comando acepta argumentos para especificar que ficheros examina Este comandoacepta argumentos para especificar que ficheros examina. Se pueden usar una serie deopciones con este comando, como se muestran en la siguiente tabla.

Opciones Descripcion-b Especifica que el nombre de fichero no se muestre en la salida

-f[ Especifica que el fichero <nombrefichero> contiene los nombres denombreDelFichero los ficheros a examinar.]

Muestra el resultado después del chequeo. Esto puede ser útil-n cuando trabajamos con una serie de ficheros que van a ser enviados

a otro comando.-v Muestra la versión-z Intenta examinar el contenido de los ficheros comprimidos.

La sintaxis para aplicar de manera correcta el comando es la siguiente:

[BASH] file [opciones] nombreDelFichero

Copiando Archivos

Cuando se trabaja con archivos en cualquier sistema, generalmente se necesita copiararchivos. Linux incluye dos comandos para copiar archivos. El comando cp se usa paracopiar archivos y directorios y es el comando estándar para copiar archivos de unalocalización del sistema a otra. Cuando se quiere copiar archivos de un formato dearchivo a otro, se hará uso el comando dd. El comando cp se utiliza para la copiaestándar de archivos en sistemas Linux. Este comando se usa para crear una copia nuevae independiente del archivo o directorio original. Se pueden usar muchas opciones conel comando cp para modificar las copias creadas. Las opciones se resumen en lasiguiente tabla

Opciones Descripcion

-aEspecifica que los enlaces y atributos del archivo original deben sertransferidos a la nueva copia.

-d Especifica que los enlaces se deben mantener cuando se copia.-f Sobreescribe cualquier archivo de destino existente.

-i Pregunta antes de sobreescribir cualquier archivo de destino existente.

-lEspecifica que se creen enlaces fuertes (ver más adelante en este capítulo) enlugar de copias del archivo.

-p Mantiene el propietario, grupo, permisos y timestamp del archivo original.

-rCopia directorios y sus contenidos de forma recursiva mientras copia cadaarchivo como archivo estándar. Esta opción no podrá ser usada con algunos

Page 55: Certificación LPI 101

Certificación LPIC-1

55

archivos especiales.

-RCopia directorios y sus contenidos de forma recursiva, manteniendo losdirectorios.

-sCrea enlaces simbólicos (ver más adelante) de los archivos que no seandirectorios.

-v Muestra todos los nombres de los archivos según se van copiando.

Estas opciones se pueden combinar cuando se copian archivos. Junto con las opciones,también se usan argumentos con el comando cp . La sintaxis para aplicar de maneracorrecta el comando es la siguiente:

[BASH] cp [opciones] origenDelFichero destinoDelFichero

Copiando y convirtiendo archivos con diferente formato

El comando dd (abreviatura de Direct Dump) se usa para copiar y convertir archivos deun formato a otro simultáneamente. El comando dd, por defecto, escribe datos desde laentrada estándar hacia la salida estándar. Las opciones se utilizan para cambiar estosvalores por defecto. Las opciones para el comando dd se muestran en la siguiente tabla :

Opciones Descripcion

if=FILEEspecifica la localización del archivo de origen para ser utilizado en lugarde la entrada estándar. Éste es el archivo de origen.

of=FILEEspecifica la localización del archivo de destino para ser utilizado en lugarde la salida estándar. Éste es el archivo de destino.

ibs=FILE Especifica el número de bytes leídos de cada vez.

obs=FILe Especifica el número de bytes escritos de cada vez.

bs=FILE Especifica el número de bytes a escribir y leer de cada vez.

cbs=FILE Especifica el número de bytes a convertir de cada vez.

skips=FILEEspecifica los bloques a saltar en el archivo de origen antes de empezar acopiar.

seek=FILEEspecifica los bloques a saltar en el archivo de destino antes de empezar aescribir.

count=FILEEspecifica los bloques a copiar del archivo de origen en lugar de copiar elarchivo completo.

Este comando tiene diferentes opciones y diferente sintaxis que el comando cp .Lasintaxis utilizada para el comando dd es la siguiente:

[BASH] cp [opciones] origenDelFichero destinoDelFichero

El comando dd se puede utilizar para variedad de tareas especiales. Por ejemplo:

[BASH] dd if=/dev/dispositivo of=respaldombr.bkp bs=512 count=1

Page 56: Certificación LPI 101

Certificación LPIC-1

56

Esto significa que se copiara bit a bit los primeros 512 bytes del dispositivo ubicado en/dev/dispositivo a un archivo de nombre respaldombr.bkp.

Moviendo Archivos

Se puede mover un archivo manualmente copiándolo a la nueva localización y borrandoluego el archivo original. Sin embargo, Linux incluye un comando para mover archivosque automatiza esta tarea. El comando mv (abreviatura de move) permite mover yrenombrar archivos en sistemas Linux. Este comando funciona como el comando cp,utilizando la misma sintaxis. Las opciones para el comando mv son algo diferentes y seresumen en la tabla siguiente:

Opciones Descripcion-f Borra los archivos existentes sin pedir confirmación.-i Pide confirmación al usuario antes de sobreescribir archivos.

-uEspecifica que los archivos no serán movidos al destino si tienen fecha demodificación igual o más reciente.

v Muestra por pantalla los archivos movidos.

La sintaxis para aplicar de manera correcta el comando es la siguiente:

[BASH] mv [opciones] origenDelFichero destinoDelFichero

Moviendo Archivos

Otra tarea frecuentemente necesaria cuando trabajamos con archivos y directorios es laeliminación de los mismos. El comando rm se utiliza para borrar archivos y directoriosen sistemas Linux . Se pueden utilizar muchas opciones con el comando rm. Lasutilizadas más frecuentemente son las que se muestran en la tabla siguiente

Opciones Descripcion

-dUtilizada por el superusuario. Elimina directorios sin tener en cuenta si estánvacíos.

-fEjecuta el comando sin pedir confirmación, incluso si los archivosespecificados no existen.

-i Pide confirmación al usuario para eliminar los archivos.-r Elimina el contenido del directorio de forma recursiva.

-vElimina archivos y muestra por pantalla los nombres de los archivoseliminados.

La sintaxis para aplicar de manera correcta el comando es la siguiente:

[BASH] rm [opciones] nombreDelFichero

Page 57: Certificación LPI 101

Certificación LPIC-1

57

Creando, monitorizando y matando procesos

Sobre procesos

Un proceso es un concepto manejado por el sistema operativo que consiste en elconjunto formado por:

Las instrucciones de un programa destinadas a ser ejecutadas por elmicroprocesador.

Su estado de ejecución en un momento dado, esto es, los valores de los registrosde la CPU para dicho programa.

Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra información que permite al sistema operativo su planificación.

Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde unproceso consta de uno o más hilos, la memoria de trabajo (compartida por todos loshilos) y la información de planificación. Cada hilo consta de instrucciones y estado deejecución. Los procesos son creados y destruidos por el sistema operativo, así comotambién este se debe hacer cargo de la comunicación entre procesos, pero lo hace apetición de otros procesos. El mecanismo por el cual un proceso crea otro proceso sedenomina bifurcación o fork. Los nuevos procesos pueden ser independientes y nocompartir el espacio de memoria con el proceso que los ha creado o ser creados en elmismo espacio de memoria. En los sistemas operativos multihilo es posible crear tantohilos como procesos. La diferencia estriba en que un proceso solamente puede crearhilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para elproceso.

Estados de un proceso

El principal trabajo del procesador es ejecutar las instrucciones de máquina que seencuentran en memoria principal. Estas instrucciones se encuentran en forma deprogramas. Para que un programa pueda ser ejecutado, el sistema operativo crea unnuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En unentorno de multiprogramación, el procesador intercalará la ejecución de instruccionesde varios programas que se encuentran en memoria. El sistema operativo es elresponsable de determinar las pautas de intercalado y asignación de recursos a cadaproceso.

Diagrama de formacion de un proceso

Se trata de la utilización de dos archivos, un objeto ejecutable y una biblioteca delsistema, que después se colocan en la imagen del proceso dentro de la memoria RAM yposteriormente también se dan de alta dentro de la tabla de procesos, Bloque de controldel proceso.

Page 58: Certificación LPI 101

Certificación LPIC-1

58

Modelo de dos estados

El modelo de estados más simple es el de dos estados. En este modelo, un procesopuede estar ejecutándose o no. Cuando se crea un nuevo proceso, se pone en estado deNo ejecución. En algún momento el proceso que se está ejecutando pasará al estado Noejecución y otro proceso se elegirá de la lista de procesos listos para ejecutar paraponerlo en estado Ejecución. De esta explicación se desprende que es necesario que elsistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el lugarque ocupa en memoria. Además los procesos que no se están ejecutando debenguardarse en algún tipo de cola mientras esperan su turno para ejecutar.

Modelo de cinco estados

El modelo anterior de 2 estados funcionaría bien con una cola FIFO y planificación porturno rotatorio para los procesos que no están en ejecución, si los procesos estuvieransiempre listos para ejecutar. En la realidad, los procesos utilizan datos para operar conellos, y puede suceder que no se encuentren listos, o que se deba esperar algún sucesoantes de continuar, como una operación de Entrada/Salida. Es por esto que se necesitaun estado donde los procesos permanezcan esperando la realización de la operación deEntrada Salida por parte del Sistema Operativo hasta que puedan proseguir. Se divideentonces al estado No ejecución en dos estados: Listo y Espera. Se agregan además unestado Nuevo y otro Terminado.

Los cinco estados de este diagrama son los siguientes según Osëliyo:

Ejecución: el proceso está actualmente en ejecución. Listo: el proceso está listo para ser ejecutado, sólo está esperando que el

planificador de corto plazo así lo disponga. Espera: el proceso no puede ejecutar hasta que no se produzca cierto suceso,

como la finalización de una operación de Entrada/Salida solicitada por unallamada al sistema operativo.

Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistemaoperativo. En general los procesos que se encuentran en este estado todavía nofueron cargados en la memoria principal.

Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya seaporque terminó o por algún fallo, como un error de protección, aritmético, etc.

Los nuevos estados Nuevo y Terminado son útiles para la gestión de procesos. En estemodelo los estados Espera y Listo tienen ambos colas de espera. Cuando un nuevoproceso es admitido por el sistema operativo, se sitúa en la cola de listos. A falta de unesquema de prioridades ésta puede ser una cola FIFO. Cuando se da un suceso se pasana la cola de listos los procesos que esperaban por ese suceso. Si existe un esquema condiferentes niveles de prioridad de procesos es conveniente mantener varias colas deprocesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál es elproceso que más conviene ejecutar a continuación. Asimismo, existen varias colas enestado de espera, como mínimo una por cada periférico. Una de las razones paraimplementar el estado Espera era poder hacer que los procesos se puedan manteneresperando algún suceso, por ejemplo una Entrada/Salida. Sin embargo, al ser muchomás lentas estas operaciones, puede suceder que en nuestro modelo de cinco estados

Page 59: Certificación LPI 101

Certificación LPIC-1

59

todos los procesos en memoria estén esperando en el estado Espera y que no haya másmemoria disponible para nuevos procesos. Podría conseguirse más memoria, aunque esprobable que esto sólo permita procesos más grandes y no necesariamente nuevosprocesos. Además hay un costo asociado a la memoria y de cualquier forma es probableque se llegaría al mismo estado con el tiempo. Otra solución es el intercambio. Elintercambio se lleva a cabo moviendo una parte de un proceso o un proceso completodesde la memoria principal al disco, quedando en el estado Suspendido. Después delintercambio, se puede aceptar un nuevo proceso o traer a memoria un procesosuspendido anteriormente. El problema que se presenta ahora es que puede ser que si sedecide traer a memoria un proceso que está en el estado Suspendido, el mismo todavíase encuentre en espera. Sólo convendría traerlo cuando ya está listo para ejecutar, estoimplica que ya aconteció el suceso que estaba esperando. Para tener esta diferenciaciónentre procesos suspendidos, ya sean listos como en espera, se utilizan cuatro estados:Listo, Espera, Espera y suspendido y Listo y suspendido.

Sobre demonios

Un demonio, daemon o dæmon (de sus siglas en inglés Disk And Execution MONitor),es un tipo especial de proceso informático que se ejecuta en segundo plano en vez de sercontrolado directamente por el usuario (es un proceso no interactivo). Este tipo deprogramas se ejecutan de forma continua (infinita), vale decir, que aunque se intentecerrar o matar el proceso, este continuará en ejecución o se reiniciará automáticamente.Todo esto sin intervención de terceros y sin dependencia de consola alguna. El origende la palabra daemon (demonio), se encuentra en la antigua Grecia, y la figura deldaimon, un espíritu interior, equivalente a un "ángel protector" que guiaba y protegía alos hombres. Los programas demonios reciben este nombre en los sistemas UNIX. Enotros sistemas existen procesos similares como los TSRs de MS-DOS o los servicios deWindows.

Caracteristicas

Los demonios suelen tener las siguientes características:

No disponen de una interfaz directa con el usuario, ya sea gráfica o textual. No hacen uso de la entradas y salidas estándar para comunicar errores o registrar

su funcionamiento, sino que usan archivos del sistema en zonas especiales(/var/log/ en los UNIX más modernos) o utilizan otros demonios especializadosen dicho registro como el syslogd.

Por ejemplo, una máquina que alberga un servidor web utilizará un demonio httpd(HTTP Daemon) para ofrecer el servicio y que los visitantes a dicha web puedanacceder. Otro ejemplo son los demonios "cronológicos" como cron, que realizan tareasprogramadas como mantenimiento del sistema en segundo plano.

Comando ps (process state)

El comando ps es el que permite informar sobre el estado de los procesos. ps estabasado en el sistema de archivos /proc, es decir, lee directamente la información de los

Page 60: Certificación LPI 101

Certificación LPIC-1

60

archivos que se encuentran en este directorio. Tiene una gran cantidad de opciones,incluso estas opciones varían dependiendo del estilo en que se use el comando. Estasvariaciones sobre el uso de ps son las siguientes:

Estilo UNIX, donde las opciones van precedidas por un guión - Estilo BSD, donde las opciones no llevan guión Estilo GNU, donde se utilizan nombres de opciones largas y van precedidas por

doble guión --

Sea cual sea el estilo utilizado, dependiendo de las opciones indicadas, varias columnasse mostrarán en el listado de procesos que resulte, estas columnas pueden ser entremuchas otras, las siguientes:

Opciones Descripcionp o PID Process ID, número único o de identificación del proceso.P o PPID Parent Process ID, padre del proceso

U o UID User ID, usuario propietario del proceso

t o TT oTTY

Terminal asociada al proceso, si no hay terminal aparece entonces un '?'

T o TIME Tiempo de uso de cpu acumulado por el procesoc o CMD El nombre del programa o camndo que inició el proceso

RSS Resident Sise, tamaño de la parte residente en memoria en kilobytes

SZ o SIZE Tamaño virtual de la imagen del proceso

NINice, valor nice (prioridad) del proceso, un número positivo significamenos tiempo de procesador y negativo más tiempo (-19 a 19)

C o PCPU Porcentaje de cpu utilizado por el procesoSTIME Starting Time, hora de inicio del proceso

Status del proceso, estos pueden ser los siguientes:R runnable, en ejecución, corriendo o ejecutándoseS sleeping, proceso en ejecución pero sin actividad por el momento, oesperando por algún evento para continuarT sTopped, proceso detenido totalmente, pero puede ser reiniciado

S o STAT Z zombie, difunto, proceso que por alguna razón no terminó de maneracorrecta, no debe haber procesos zombiesD uninterruptible sleep, son procesos generalmente asociados a accionesde IO del sistemaX dead, muerto, proceso terminado pero que sigue apareciendo, igual quelos Z no deberían verse nunca

Las opciones para el comando dd se muestran en la siguiente tabla :

Opciones Descripcion

-aEl comando ps también muestra los procesos iniciados por los otrosusuarios.

-x También muestra los procesos sin terminal de control alguna o con una

Page 61: Certificación LPI 101

Certificación LPIC-1

61

terminal de control diferente a la que se está utilizando.

-uMuestra, para cada proceso, el nombre del usuario que lo inició y la hora a lacual fue iniciado.

-mOpción del comando ps para mostrar información de memoria (combinesecon p para obtener el número de páginas)

-j Formato de trabajo (jobs) pgid sid-r Sólo procesos que se estan ejecutando

La sintaxis para aplicar de manera correcta el comando es la siguiente:

[BASH] ps [opciones] nombreDelFichero

Podemos obtener mas informacion sobre este comando tecleando en una terminal losiguiente:

[BASH] man ps

O tambien

[BASH] ps --help

Comando pstree y top

Existen dos comandos relacionados con el comando ps que ofrecen una vista de losprocesos ligeramente diferente a como lo hace ps. El primero de ellos es pstree, queofrece una visualización gráfica de las relaciones que existen entre los procesos: Lasintaxis para aplicar de manera correcta el comando es la siguiente:

[BASH] pstree

Como se ve a continuacion

[BASH] pstree

init─┬─acpid ├─auditd─┬─audispd───{audispd} │ └─{auditd} ├─avahi-daemon├─beagled───12[{beagled}] ├─beagled-helper───7[{beagled-helper}]├─bluetoothd ├─bonobo-activati───{bonobo-activati} ├─console-kit-dae───63[{console-kit-dae}] ├─cron ├─cupsd ├─2[dbus-daemon] ├─2[dbus-launch] ├─dhcpcd ├─evince───{evince} ├─2[evolution-data-───2[{evolution-data-}]] ├─firefox───firefox───5[{firefox}] ├─gconfd-2 }}}

El segundo comando relacionado con ps es top. Éste comando, no sólo muestra losprocesos actuales, sino que automáticamente se va actualizando para mostrar loscambios acontecidos. Adicionalmente, en la parte superior se muestra información sobreel número de días que ha estado la maquina en marcha, el número de usuarios, lamemoria, estadísticas de la memoria de intercambio, etc. Mientras el comando top estáen marcha, se pueden usar las siguientes teclas para interactuar con él:

Opciones Descripcion

Page 62: Certificación LPI 101

Certificación LPIC-1

62

h Ayuda

q Salir

s Cambia el tiempo entre actualizaciones (por defecto, 5 segundos)

espacio Actualizar ahora en lugar de esperar al siguiente intervalo de actualizaciónu Muestra un único usuario

Finalizando un proceso

Bajo circunstancias normales, un proceso hijo actúa bajo el padre que lo ha creado.Cuando el proceso hijo ya no es necesario, desaparece. Algunas veces, sin embargo, losprocesos se convierten en procesos 'fugitivos', y aunque no sea necesario que se siganejecutando, continúan su ejecución consumiendo recursos innecesarios.

Un proceso padre no puede (y no debe) finalizar su ejecución mientras tenga procesoshijos asociados a él que estén en funcionamiento. Teniendo ésto en cuenta, cuando unproceso hijo no puede finalizar correctamente su ejecución, origina que el proceso padrese quede en un estado inconsistente, y que no pueda, a su vez, terminar su ejecución,quedando el proceso padre (y el o los hijos 'colgados') en un estado conocido como'zombie', haciendo uso de recursos innecesarios del sistema.

Un ejemplo para entender todo esto: el shell de un usuario ejecuta un proceso (A), queno puede hacer todo por si mismo, así que ejecuta otro proceso (B), que a su vez ejecutaotro proceso (C). Pueden suceder entonces varias cosas: Bajo condiciones normales,cuando el proceso C termina su ejecución, se lo notifica al proceso B, y desaparece (C).El proceso B trata la información, notifica los datos al proceso A, y muere (B). Elproceso A, hace lo propio con los datos recibidos, y retorna la información al shell delusuario, y entonces muere (A) En condiciones anormales, supongamos que el procesoC, después de pasar la información al proceso padre (el proceso B), no muere. Continuaejecutándose, lo que impide que el proceso B finalice, dado que tiene un proceso hijo(C) en marcha. El proceso B trata la información y la reporta hacia el proceso padre (A),que a su vez, devuelve la información hacia el shell que lo originó. Tanto el proceso Acomo el proceso B, no pueden finalizar su ejecución dado que tienen procesos hijos enmarcha. Así pues, un error en el proceso C, que hace que se quede en ejecución cuandono debería, origina que haya tres procesos en marcha en el sistema, consumiendorecursos de forma innecesaria. Otro tipo de problema, podría darse de la siguientemanera: el proceso C, como antes, entra en un estado inestable, y no finaliza suejecución. Aun así, el proceso B, acaba su ejecución y desaparece. El proceso A,también finaliza dado que su hijo, el proceso B, ha finalizado. Así pues, se quedaúnicamente el proceso C en marcha (en estado inestable), pero ahora, no tiene procesospadre a los que reportar. Para resolver los problemas que pueden ocasionar estosprocesos extraños, se puede usar el comando kill. La sintaxis del comando kill es lasiguiente:

[BASH] kill [opciones] PID

Page 63: Certificación LPI 101

Certificación LPIC-1

63

Procesos en segundo y primer plano

Cuando se ejecuta un proceso, por defecto se ejecuta en primer plano. Cuando unproceso se ejecuta en primer plano, se convierte en el único trabajo en el que puedetrabajar el usuario, la interacción se basa entonces, en que se acabe éste trabajo. Porejemplo, cuando un usuario ejecuta el comando ls -l, se mostrará por pantalla elresultado, y hasta que no acabe el comando, no se podrá ejecutar ningún otro comando.Para ejecutar un proceso en segundo plano, simplemente se ha de añadir al final delcomando el signo ampersand (&), esta opción permitirá ejecutar más de un comando ala vez: La sintaxis del comando kill es la siguiente:

[BASH] proceso&

Creando particiones y sistemas de ficheros

Sobre fdisk

Fdisk es una aplicacion disponible para varios sistemas operativos, el cual permitedividir en forma lógica un disco duro, siendo denominado este nuevo espacio comopartición. La descripción de las particiones se guarda en la tabla de particiones que selocaliza en el sector 0 de cada disco. La versión Fdisk de Linux permite crearparticiones en 94 sistemas de archivos distintos, incluyendo FAT32, Ext3, Solaris yQNX. Esta versión de Fdisk cuenta con un menú de texto de ayuda en línea para realizarlas operaciones.

Utilizando fdisk

La forma de comenzar a utilizar fdisk sera de la siguiente manera.

[BASH] fdisk /dev/sd[a|b|c|d][1,2,3,4]

Donde

sd [a|b|c|d] [1|2|3|4]

Hace referencia a una unidad de disco duro,particion o unidad USB Al lanzar laaplicación , esta nos arrojara informacion referente a numero de cabezas, sectores ,cilindros, particiones o tamaño del dispositivo. Ejemplo:

[BASH] fdisk /dev/sda

Command (m for help):

Disk /dev/sda: 146.8 GB, 146815737856 bytes 255 heads, 63 sectors/track, 17849cylinders Units = cylinders of 16065 512 = 8225280 bytes}}}

Una vez que la aplicación esta iniciada, se nos presenta el siguiente mensaje:

Command (m for help):

Page 64: Certificación LPI 101

Certificación LPIC-1

64

Si usted presiona la tecla 'm' se imprimira el menu con las herramientas propias delcomando fdisk. Estas herramientas son:

Opciones Descripciona Conmuta el indicador de iniciableb Modifica la etiqueta de disco bsd

c Conmuta el indicador de compatibilidad con DOS

d Suprime una partición

a Conmuta el indicador de iniciable

b Modifica la etiqueta de disco bsd

c Conmuta el indicador de compatibilidad con DOS

d Suprime una partición

l Lista los tipos de particiones conocidos

m Imprime este menú

n Añade una nueva partición

o Crea una nueva tabla de particiones DOS vacía

p Imprime la tabla de particiones

q Sale sin guardar los cambioss Crea una nueva etiqueta de disco Sun

t Cambia el identificador de sistema de una partición

u Cambia las unidades de visualización/entrada

v Verifica la tabla de particiones

w Escribe la tabla en el disco y sale

x Funciones adicionales (sólo para usuarios avanzados)

Como podemos notar, con la opción "m" podemos imprimir nuevamente este menu.Otro ejemplo, con "p" obtendremos la tabla de particiones actual del disco duro encuestión: Ejemplo:

Command (m for help): p

Disk /dev/sda: 146.8 GB, 146815737856 bytes 255 heads, 63 sectors/track, 17849cylinders Units = cylinders of 16065 512 = 8225280 bytes

Device Boot Start End Blocks Id System /dev/sda1 1 25200781 83 Linux /dev/sda2 26 2575 20482875 83 Linux/dev/sda3 2576 2706 1052257+ 82 Linux swap / Solaris /dev/sda42707 4000 10394055 8e Linux LVM }}}

Si lo que queremos es borrar una partición (digamos la 3):

Command (m for help): d

Partition number (1-4): 3

Command (m for help) }}}

Page 65: Certificación LPI 101

Certificación LPIC-1

65

Veamos como quedó nuestra tabla de particiones:

Command (m for help): p

Disk /dev/sda: 146.8 GB, 146815737856 bytes 255 heads, 63 sectors/track, 17849cylinders Units = cylinders of 16065 512 = 8225280 bytes

Device Boot Start End Blocks Id System /dev/sda1 1 25200781 83 Linux /dev/sda2 26 2575 20482875 83 Linux/dev/sda4 2707 4000 10394055 8e Linux LVM }}}

En el ejemplo hemos borrado la partición correspondiente a la memoria extendida(swap). Vamos a volver a crearla, para ello usamos "n":

Command (m for help): n

Command action e extended p primary partition (1-4) p Selected partition 3 Firstcylinder (2576-17849, default 2576): Using default value 2576 Last cylinder or +size or+sizeM or +sizeK (2576-2706, default 2706): Using default value 2706 }}}

Pongamos atención en las preguntas que se nos hicieron:

Tipo de partición: Aquí se nos pide elegir entre partición primaria y particiónextendida. En un disco IDE o SATA podemos crear únicamente hasta 3particiones primaria en el disco duro. Si requerimos de más particiones podemoscrear una extendida y ahí seguir particionando (hasta un total de 60 particioneslógicas). Si requerimos más, no queda otra que utilizar un segundo disco duro.En el caso de un disco SCSI, éste admite hasta 15 particiones primarias.

Selección de la partición. Aquí escribimos en número de la partición queestamos creando. "3" en nuestro ejemplo.

Primer cilindro. Es el cilindro en el que comienza la partición. Normalmenteelegimos el que el sistema nos marca por default.

Último cilindro o tamaño de la partición. En el caso del ejemplo tomé de nuevola opción por default pues de este modo aprovecho todo el espaciolibre.Generalmente resulta más cómodo proporcionar el tamaño en megas (o enK's). Una opción sería entonces dar: +2048M

Podemos, nuevamente con "p", checar el estado de nuestra tabla de particiones actual:

Command (m for help): p

Disk /dev/sda: 146.8 GB, 146815737856 bytes 255 heads, 63 sectors/track, 17849cylinders Units = cylinders of 16065 512 = 8225280 bytes

Device Boot Start End Blocks Id System /dev/sda1 1 25200781 83 Linux /dev/sda2 26 2575 20482875 83 Linux/dev/sda3 2576 2706 1052257+ 83 Linux /dev/sda4 27074000 10394055 8e Linux LVM }}}

Page 66: Certificación LPI 101

Certificación LPIC-1

66

Analicemos en este punto las siete columnas que la impresión de la tabla de particionesnos da. En la primera columna se encuentra el dispositivo resultado de la partición dedisco sda. Así, podemos observar que en este momento contamos con 4 particiones:sda1, sda2, sda3 ysda4. La segunda columna nos informa que es la primera partición deldisco la que contiene la parte booteable. La tercera y cuarta columna nos daninformación acerca del cilindro en el cual comienza y termina la particiónrespectivamente. La quinta nos dice cuantos blocks ocupa ésta. Por último, con la sextay séptima columna sabemos el tipo de partición (Identificador y sistemarespectivamente).

De nuestro ejemplo, sabemos que contamos con 3 particiones "Linux" (Id 83) y una"Linux LVM" (ide 8e). Si pensamos utilizar la partición recién creada como memoriaextendida, es el momento de asignar el tipo de partición. Ésto lo hacemos con:

Command (m for help): t

Partition number (1-4): 3 Hex code (type L to list codes): 82 Changed system type ofpartition 3 to 82 (Linux swap / Solaris)}}}

Es decir, asignamos el sistema "Linux swap / Solaris" (con id=82). Checamos:

Command (m for help): p

Disk /dev/sda: 146.8 GB, 146815737856 bytes 255 heads, 63 sectors/track, 17849cylinders Units = cylinders of 16065 512 = 8225280 bytes

Device Boot Start End Blocks Id System /dev/sda1 1 25200781 83 Linux /dev/sda2 26 2575 20482875 83 Linux/dev/sda3 2576 2706 1052257+ 82 Linux swap / Solaris /dev/sda42707 4000 10394055 8e Linux LVM}}}

Con fdisk podemos asignar muchos otros tipos de sistema. Con "l" podemos obtener lalista completa de opciones:

Command (m for help): l

0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot 1FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris 2 XENIX root39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT- 3 XENIX usr 3cPartitionMagic 83 Linux c4 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 5 Extended 41 PPC PRePBoot 85 Linux extended c7 Syrinx 6 FAT16 42 SFS 86 NTFSvolume set da Non-FS data 7 HPFS/NTFS 4d QNX4.x 87 NTFS volumeset db CP/M / CTOS / . 8 AIX 4e QNX4.x 2nd part 88 Linux plaintext deDell Utility 9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIta OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access b W95FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O c W95FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor e W95 FAT16(LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs f W95 Ext'd(LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT 10 OPUS 55

Page 67: Certificación LPI 101

Certificación LPIC-1

67

EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/ 11 Hidden FAT12 56 GoldenBow a7 NeXTSTEP f0 Linux/PA-RISC b 12 Compaq diagnost 5c PriamEdisk a8 Darwin UFS f1 SpeedStor 14 Hidden FAT16 <3 61 SpeedStora9 NetBSD f4 SpeedStor 16 Hidden FAT16 63 GNU HURD or Sys abDarwin boot f2 DOS secondary 17 Hidden HPFS/NTF 64 Novell Netware b7BSDI fs fd Linux raid auto 18 AST SmartSleep 65 Novell Netware b8 BSDIswap fe LANstep 1b Hidden W95 FAT3 70 DiskSecure Mult bb BootWizard hid ff BBT 1c Hidden W95 FAT3 75 PC/IX }}}

inalmente, guardamos los cambios:

Command (m for help): w

y salimos

Utilizando mkfs

Una vez se ha creado la partición, el sistema de ficheros debe ser añadido para queLinux pueda hacer uso de este espacio. La utilidad mkfs se usa para crear sistemas deficheros en particiones vacías. La utilidad mkfs se utiliza con muchas opciones distintas,las cuales se pueden ver en la siguiente tabla

Opciones Descripcion-t fstype Especifica el tipo de sistema de ficheros a crear. Por defecto se usa ext2fs -options

Opciones específicas de sistema de ficheros para ser pasados al sistema realde ficheros que vamos a crear.

-cComprueba el dispositivo en busca de bloques defectuosos antes de crear elsistema de ficheros.

-l fichero Lee los bloques defectuosos del fichero.

Produce una salida con más información, incluyendo todas las órdenes-v específicas del sistema de ficheros concreto que se ejecutan. Ésto es

realmente sólo útil para comprobaciones.

Las opciones usadas por mkfs están seguidas por un argumento especificando lapartición que debe ser formateada. Después de la ejecución del comando, el código desalida de 0 (cero) indicará que se ha llevado a cabo con éxito mientras que el código desalida 1 (uno) indicará fallo. La sintaxis correcta para este comando es la siguiente

[BASH] mkfs [opciones] unidadAFormatear → /dev/sd[abcd][1234]

Algunas otras utilidades del comando mkfs son las siguientes:

Opciones Descripcion mkfs.ext2o mke2f Crea un sistema de ficheros ext2 mkfs.msdos omkdosfs Crea un sistema de ficheros MS-DOS mkswap

Crea un sistema de ficheros de Linux swap

mkraid Inicializa y actualiza cadenas de dispositivos RAID

Page 68: Certificación LPI 101

Certificación LPIC-1

68

mkfs.minix Crea un sistema de ficheros Minix

mkfs.bfs Crea un sistema de ficheros SCO BFS

Manteniendo la integridad de los sistemas de ficheros

El monitoreo periodico del sistema de ficheros de sistema operativo resulta tema desuma importancia para los administradores de red, ya que durante el transcurso deltiempo estos sistemas de ficheros pueden terminar presentando problemas como lossiguientes:

El sistema de ficheros se llena hasta el límite de su capacidad, causando que losaplicaciones o quizás, el sistema entero dejen de funcionar.

El sistema de ficheros se corrompe, seguramente por un corte de alimentación opor una caída del sistema.

El sistema de ficheros se queda sin inodos libres de tal forma que no se puedencrear nuevos objetos en el mismo.

Monitorizar y comprobar cuidadosa y regularmente los filesystems de Linux nosayudará a prevenir o corregir estos problemas.

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 nopueda admitir nuevos ficheros. Esto podría ocurrir si nuestro sistea de ficheros se llena osi se queda sin inodos libres. Los inodos son las estructuras de datos dentro del sistemade ficheros que describen los ficheros (valga la redundancia) en el disco. Cada sistemade ficheros contiene un número finito de inodos que se establece en el momento decreación del sistema de fcheros. Este número es, a su vez, el máximo número deficheros que un sistema de ficheros puede acomodar. Como los sistemas de ficheros secrean con un número de inodos enorme, probablemente nunca crearás tantos ficheroscomo para agotar este número. No obstante, es posible quedarse sin inodos libres enparticiones que contengan muchos ficheros pequeños.

Es muy importante prevenir la escasez de inodos libres en las particiones del sistema. Elcomando df proporciona información necesaria tanto sobre la uso del espacio en discocomo de los inodos libres. El comando df nos muestra información general sobre el usodel disco en los sistemas de ficheros montados en directorios. Normalmente, endirectorios indicamos ficheros de dispositivos de particiones como / dev/hda1, pero siindicamos otro tipo de nombre de fichero o directorio obtendremos información sobre lapartición donde está ubicado dicho fichero o directorio. Si omitimos directorios, semostrará la información relativa a los sistemas de ficheros montados en los dispositivosincluidos en / etc/fstab. La forma correcta de utilizar el comando df sera de la siguientemanera.

[BASH] df [opciones] /dev/sd[a|b|c|d][1,2,3,4]

En la tabla siguiente se muestran las opciones más usadas:

Page 69: Certificación LPI 101

Certificación LPIC-1

69

Opciones Descripcion

-hMuestra los resultados en un formato legible para las personas, incluyendosufijos como M(megabytes) y G (gigabytes).

-iMuestra información sobre los inodos libres en lugar de la información pordefecto sobre el espacio libre en disco.

Monitorizando el espacio y los inodos libres del disco

El comando du nos puede ayudar, mostrándonos directorio por directorio el uso delespacio en disco, asi mismo examina los directorios recursivamente y muestrainformación detallada o resumida sobre el espacio en disco consumido. La formacorrecta de utilizar el comando du sera de la siguiente manera.

[BASH] du [opciones] [directorio]

En la tabla siguiente se muestran las opciones más usadas:

Opciones Descripcion-a Muestra todos los ficheros, no solo los directorios.

-c Genera un gran total de todos los elementos listados

-hMuestra los resultados en un formato legible para las personas, incluyendosufijos como M (megabytes) y G (gigabytes).

-sVisualiza un sumario para cada uno de los directorios especificados, en lugarde los totales encontrados recursivamente en cada subdirectorio.

-SExcluye los subdirectorios de las sumas y los totales, limitándose a totalizarlos directorios.

Comprobando la integridad del sistema de ficheros

El comando fsck (file system consistency check) es una utilidad de los sistemas Unix ysimilares, como Linux y AIX que se utiliza ante alguna inconsistencia del sistema dearchivos para corregir los posibles errores en el sistema. fsck se ejecutaautomáticamente al inicio del sistema ante alguna anomalía, pero también puede serutilizada manualmente por el administrador del sistema para forzar un chequeo.

Durante la comprobación del sistema de fsck se hace lo siguiente:

1. Comprueba inodos, bloques y tamaños. 2. Comprueba la estructura de directorios. 3.Comprueba la conectividad de directorios. 4.Comprueba las referencias. 5. Compruebael total de la información.

Para verificar un sistema de archivos es muy aconsejable hacerlo mientras éste estádesmontado. La sintaxis básica de esta utilidad es la siguiente:

[BASH] fsck [-opciones] /dev/hdXXX (o sdXXX)

En la tabla siguiente se muestran las opciones más usadas:

Page 70: Certificación LPI 101

Certificación LPIC-1

70

Opciones DescripcionEjecuta comprobaciones en todos los sistemas de ficheros incluidos en

-A /etc/fstab. Esta opción está pensada para utilizarse en tiempo de carga delsistema, antes de montar los filesystems.

-N No se ejecuta, pero muestra lo que debería hacerse.

Especifica el tipo de sistema de ficheros a comprobar; por defecto se-t tipo

-bsuperbloque

asume ext2. El valor de tipo determina que verificador específico para elsistema de ficheros es utilizado.

Utiliza una copia del superbloque alternativa. En el modo interactivo,e2fsck utiliza automáticamente superbloques alternativos. Normalmente,para restaurar un superbloque defectuoso, utilizarás -b 8193 en el modono interactivo.

-c Comprobar bloques defectuosos.

-f Fuerza una comprobación, incluso si el sistema de ficheros parece limpio.

-p Repara automáticamente el sistema de ficheros sin hacer preguntas.

-yResponde automáticamente "yes" a todas las preguntas interactivaspermitiendo la utilización no interactiva de e2fsck.

-v Muestra el estado del proceso

Montando y desmontando sistemas de ficheros

Controlando el montaje y desmontaje del sistema de ficheros

Como ya se vió anteriormente, la estructura de los sistemas de ficheros estángeneralmente divididos en particiones, unidas todas ellas en el punto de montaje raiz (/)o seapradas . Los sistemas de ficheros de los dispositivos removibles como un USB oun Disco CD se unen a la raiz del sistema de la misma manera, como directorios opuntos de montaje. En principio estos directorios destinados a los dispositivos estánvacíos, a la espera de su montaje, puede darse el caso de que el directorio destinado aeste fin contenga subdirectorios o archivos, en cuyo caso quedarán ocultos hasta que eldispositivo se desmonte.

Administrando la tabla del sistema de ficheros

Para que las diferentes particiones estén disponibles desde un primer momento esnecesario montarlas durante el arranque del sistema, los dispositivos removiblestambién se usan frecuentemente y es aconsejable tenerlos preparados para usar loscomandos de montaje. Toda este información se guarda en el fichero /etc/fstab . Lossistemas de ficheros definidos en este fichero son revisados y montados durante elarranque del sistema. Sus entradas se consultan como fuente de información por defectocuando los usuarios quieren montar dispositivos removibles. 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. type M. Options DF PN

/dev/sda1 / ext2 defaults 1 1 /dev/sda5 /boot ext2 defaults 1 2 /dev/sda9 /home ext2defaults 1 2 /dev/sda10 /tmp ext2 defaults 1 2 /dev/sda11 swap swap defaults 0 0

Page 71: Certificación LPI 101

Certificación LPIC-1

71

/dev/fd0 /mnt/floppy ext2 noauto,users 0 0 /dev/hdc /mnt/cdrom iso966 noauto,ro,users0 0 }}}

Device

Mount point

Filesystemtype

Este campo especifica la partición del sistema de ficheros, por ejemplo/dev/hda1. Este campo no puede contenter el dispositivo entero(/dev/sda)

Aquí se introduce el directorio donde se quiere que el dispositivo seamontado. Por ejemplo si la partición /dev/hda1 tiene el sistema deficheros root, donde está el sistema se montará en /

En este campo se indica que tipo de partición se trata, ext2, ext3, ext4,reiserfs, swap, iso9660

Mount options Se explican más adelante, se separan por comas.

Dumpfrecuency

Pass numberpara el fsck

El programa dump consulta la entrada del /etc/fstab para ver cadacuanto tiempo debe hacer el backup. Normalmente tiene el valor 1 parafilesystems basados en ext2y ext3 y 0 para los demás.

Este campo es usado por la utilidad fsck cuando la opción -A seespecifica, normalmente en tiempo de arranque. Tiene valores:0 - No chequear el sistema1 - Debe ponerse para el filesystem root (/) y ordena al fsck achequearlo primero2 - Hace el chequeo de la unidad, después del chequeo de los marcadoscon un 1

En el ejemplo se tiene un disco duro SATA La primera partición /dev/sda1 tiene eldirectorio root (/), la quinta contiene las imágenes del kernel para el arranque, la 9 parael directorio de los usuarios, la partición 10 es la temporal, la particion 11 para elsistema de swap. Luego se tiene la /dev/fd0 para diskettes y la /dev/hdc para el lector deCD Se pueden añadir/modificar estas entradas en cada caso y según las necesidades decada uno.

Montando el sistema de ficheros

Los sistemas de ficheros son montados con el comando mount. Durante el arranque, lossistemas de ficheros que no contienen un 0 en el pass number son chequeados y luegomontados. Después del arranque se pueden añadir más sistemas de ficherosmanualmente con el comando mount. El comando mount se usa para montar sistemasde fichros dentro de la estructura del árbol del sistema. La primera y segunda entradaconsultan al fichero /etc/fstab para montar los dispositivos y así tomar las opciones quese le especifiquen en el /etc/fstab. La tercera opción es independiente del fichero/etc/fstab y monta el sistema de ficheros en el directorio El comando mount admite dostipos de opciones, unos para el comando en si, y otros para especificar opciones delsistema de ficheros. La sintaxis básica de esta utilidad es la siguiente:

[BASH] mount [opciones] [dispositivo|directorio]

El comando mount admite dos tipos de opciones, unos para el comando en si, y otrospara especificar opciones del sistema de ficheros:

Page 72: Certificación LPI 101

Certificación LPIC-1

72

Opciones Descripcion

-aMonta todos los fileystems especificados en el /etc/fstab menos los quetengan la opción noauto

-h Ayuda del comando mount-o Especifica las opciones del mount en la linea de comandos

-r Monta filesystems en modo de solo lectura

-t fstype Especifica un tipo de fileystem

-v Salida interactiva

-w Monta fileystems de lectura/escritura

Opciones del mount

Estas opciones se especifican en el fichero /etc/fstab o bien en la linea de comandos conla opción -o. Estas opciones modifican el modo de montaje del comando mount, algunasde las opciones son:

Opciones Descripcionasync Toda la E/S al sistema de ficheros debería hacerse asíncronamente.

auto Puede montarse con la opción -a

defaultsEstablece las opciones: rw, suid, dev, exec, auto, nouser y async. Es laopcion por defecto en sistemas ext2

devnterpretar dispositivos especiales de caracteres o bloques en el sistema deficheros

exec Permitir la ejecución de binarios

noautoSólo puede montarse explícitamente (esto es, la opción -a no hará que elsistema de ficheros se monte)

No permitir la ejecución de ningún binario en el sistema de ficherosnoexec montado. Esta opción puede ser útil para un servidor que tiene sistemas de

ficheros que contienen binarios para otras arquitecturas distintas de la suya.

nosuid No permitir el efecto de los bits SUID ni SGID

nouserProhibir a un usuario ordinario (esto es, distinto de root) montar el sistemade ficheros. Esto es lo predeterminado

ro Montar el sistema de ficheros en modo de sólo lectura.

rw Montar el sistema de ficheros de lectura y escritura

suid Permitir el efecto de los bits SUID y SGID

sync Toda la E/S al sistema de ficheros debería hacerse síncronamente.

user Permitir a un usuario ordinario montar el sistema de ficheros

users Permite a cualquier usuario el montaje/desmontaje de el sistema de ficheros

Desmontando el sistema de ficheros

Los sistemas de ficheros pueden ser desmontados usando el comando umount. Cuandoun sistema de ficheros es desmontado, los contenidos del árbol principal se actualizan,no pudiendose usar el umount si el sistema de ficheros que se quiere desmontar está en

Page 73: Certificación LPI 101

Certificación LPIC-1

73

uso. Si el sistema de ficheros está en uso el comando umount dará un error. Esto puedeocurrir por ejemplo cuando tenemos abierto un fichero de un DVD o un proceso estáhaciendo uso del mismo. Otros errores pueden surgir si quitamos dispositivosremovibles sin antes desmontarlos: La sintaxis básica de esta utilidad es la siguiente:

[BASH] umount [opciones] [dispositivo|directorio]

El comando mount admite dos tipos de opciones, unos para el comando en si, y otrospara especificar opciones del sistema de ficheros.

Opciones DescripcionDesmonta todos los filesystems descritos en /etc/mtab. Este fichero está

-a mantenido por los comando mount y umount en tiempo real, se usanormalmente cuando se apaga/reinicia el PC.

-t fstype Desmonta sólo los filesystems del tipo especificado

Administrando cuotas de disco

Establecer y consultar cuotas de disco

La administración del espacio en disco duro del equipo puede ser una tareaproblemática. El espacio disponible es un recurso limitado que muy a menudo seconsume a un ritmo alarmante provocando que un sistema de ficheros bienproporcionado se vuelva insuficiente al cabo del tiempo. En los sistemas multiusuariono importa lo grande que sea el sistema de ficheros los usuarios siempre terminaránllenándolo. Y a nadie le interesa que un sistema de ficheros se llene demasiado pronto.Una forma de prevenir que ésto ocurra es el establecimiento de cuotas de disco, de estaforma podrán establecerse límites a la cantidad de espacio en disco consumido porusuarios independientes o por grupos de éstos. Típicamente un tamaño de cuota esmucho menor que el espacio libre del sistema de fichers donde se configura, de estaforma se puede evitar que un usuario o un grupo consuma demasiado espacio. Puedenconfigurarse cuotas para cada sistemas de ficheros incluido en /etc/fstab, aunquenormalmente solo se aplican en aquellos sistemas de ficheros donde los usuarios finalesguardan sus archivos por ejemplo el /home/nombreDelUsuario No es necesarioestablecer una cuota en /usr, por ejemplo, ya que los usuarios finales no pueden guardarficheros allí. Pueden configurarse cuotas para los usuarios individuales incluidos en/etc/passwd y para los grupos en /etc/group.

Cuotas de Limitacion

Pueden establecerse hasta cinco tipos de cuotas de limitación por cada sistema deficheros. Estas limitaciones se especifican en bloques de disco, normalmente de 1024bytes cada uno y estas son:

Opciones Descripcion

Límite hardpor usuario

El límite hard es la máxima cantidad de espacio en disco que un usuariopuede disponer en el sistema. Una vez que el usuario alcanza este límiteya no se le permitirá realizar nuevas escrituras en el disco.

Page 74: Certificación LPI 101

Certificación LPIC-1

74

Límite softpor usuario

Límite hardpor grupo

Límite softpor grupo

Periodo degracia

Cada usuario puede almacenar datos libremente en el sstema de ficheroshasta que alcance el límite soft. Éste límite actúa como una especie dezona de aviso, advirtiendo al usuario que debe ir limpiando sus directoriospero, a diferencia del límite hard se le permite seguir trabajando. Cuandoel espacio consumido por un usuario supera el límite soft pero no el límitehard se envían mensajes de aviso al terminal del usuario advirtiéndole queestá excediendo su cuota pero las operaciones de escritura terminaráncorrectamente.

Se trata del límite final asignado a un grupo por el sistema de cuotas. Unavez que se alcanza este límite, ninguno de los miembros de dicho grupopodrán realizar escrituras en el disco, incluso aunque no hayan excedidosus límites individuales.

Este límite se comporta de la misma forma que el de usuario pero secontrola en base al espacio consumido por el grupo en lugar de por elusuario individual.

Una vez que se alcanza el límite soft comienza el periodo de gracia para elusuario o el grupo. Cuando expira éste periodo de gracia, el límite soft seconvierte en límite hard hasta que se hayan eliminado los ficherossuficientes para que se resuelva el exceso de cuota. El periodo de graciapuede ajustarse para cualquier número de meses, semanas, días, horas,minutos o segundos. Un valor típico es el de siete días.

Todos estos límites pueden establecerse utilizando el comando edquota, que se detallaráa continuación. Cuando una escritura en disco excede un límite hard o un límite soft conel periodo de gracia expirado, solo se completará una parte de la operación de escrituradejando un fichero truncado y, probablemente, inservible. Puede que el usuario no hayapodido ver los mensajes de fin de cuota porque la aplicación haya ocultado la shell y losmensajes de dicha aplicación lo lleven a confusión al indicarle que el disco está lleno oprotegido de escritura.

Comandos de cuotas

Linux proporciona una serie de comandos para gestión y consulta de las cuotas en lossistemas de ficheros Parte de la configuración requerida para establecer las cuotasinicialmente ha de hacerse a mano y sin ninguno de los comandos específicos de cuotas.Este proceso se explicará en la seccion → Habilitando Cuotas.

quota

Muestra las limitaciones de cuota en usuario o en grupo. La opción -u está activada pordefecto. Solo root puede utilizar la opción -u y usuario para ver las limitaciones de otrosusuarios. El resto de los usuarios usuarios podrán usar la opción -g y grupo para versolamente las limitaciones de los grupos de los que sean miembros, siempre y cuandotengan permiso de lectura en los ficheros quota.group. La sintaxis básica de esta utilidades la siguiente:

[BASH] quota [-u] [opciones] usuario

[BASH] quota -g [opciones] grupo }}}

Page 75: Certificación LPI 101

Certificación LPIC-1

75

Se pueden utilizar muchas opciones con el comando quota. Las utilizadas másfrecuentemente son las que se muestran en la tabla siguiente:

Opciones Descripcion

-qEstablece el modo “silencioso” que solo muestra las situaciones de excesode cuota.

-vEstablece el modo explícito que muestra las cuotas incluso cuando no se haconsumido ningún espacio en disco o no se hayan definido.

Ejemplo 1: Siendo roo t, examina todas las cuotas del usuario mayra:

[BASH] quota -uv mayra

Disk quotas for user mayra (uid 512): Filesystem blks quota limit grace files quota limitgrace /dev/sda9 9456 10000 10200 32 0 0 /dev/hda1 23 0 0 17 0 0 }}}

Este ejemplo muestra que el usuario mayra está cerca de consumir su límite soft de10000 bloques, con un límite hard de 10200 bloques en /dev/sda9, y que no tiene cuotaestablecida en /dev/hda1. La línea correspondiente /dev/hda1 se muestra debido a lautilización de la opción -v. No se muestran los valores correspondientes al periodo degracia porque aun no se ha excedido el límite soft.

Ejemplo 2: Siendo el usuario mayra, examina las cuotas para el grupo contaduria, delque dicho usuario es miembro:

[BASH] quota -gv contaduria

Disk quotas for user mayra (uid 513): Filesystem blks quota limit grace files quota limitgrace /dev/sda9 1000 990 1000 6days 34 3980 4000 /dev/hda1 0 0 0 0 0 0 }}}

En este caso, el grupo contaduria ha excedido el escaso límite soft de 990 bloques y haalcanzado su límite hard de 1000 bloques. El periodo de gracia original en este ejemplose estableció en siete días de los cuales quedan seis días restantes, lo que quiere decirque ha pasado un día desde que se excedió el límite soft.

quotaon

Activa las cuotas configuradas previamente en uno o más sistemas de ficheros. Lasintaxis básica de esta utilidad es la siguiente:

[BASH] quotaon [opciones] puntoDeMontaje → ( Ejemplo:/home /var)[BASH] quotaon [opciones] -a }}}

Se pueden utilizar muchas opciones con el comando quotaon. Las utilizadas másfrecuentemente son las que se muestran en la tabla siguiente:

Opciones DescripcionActiva las cuotas en todos los sistemas de ficheros incluidos en /etc/fstab y

-a que estén marcados como de lectura-escritura y con cuotas. Normalmente seutiliza en el proceso de arranque para activar las cuotas.

Page 76: Certificación LPI 101

Certificación LPIC-1

76

-gActiva las cuotas de grupo. Esta opción no es necesaria si se utiliza -a ya queésta otra activa tanto las cuotas de usuario como las de grupo.

-u Activa las cuotas de usuario; esta es la opción por defecto.

-vEstablece el modo explícito de tal forma que se muestra un mensaje por cadasistema de ficheros en el que se han activado las cuotas.

Ejemplo 1: Activar todas las cuotas definidas en el fichero /etc/fstab

[BASH] quotaon -av

Ejemplo 2: Activar las cuotas de usuario sólo en el sistema de ficheros /home

[BASH] quotaon -av /home

quotaoff

Desactiva las cuotas de disco en uno o más sistemas de ficheros La sintaxis básica deesta utilidad es la siguiente:

[BASH] quotaoff [opciones] puntoDeMontaje → ( Ejemplo:/home /var)[BASH] quotaoff [opciones] -a }}}

Se pueden utilizar muchas opciones con el comando quotaoff. Las utilizadas másfrecuentemente son las que se muestran en la tabla siguiente:

Opciones Descripcion-a Desactiva las cuotas en todos los sistemas de ficheros en /etc/fstab.

-gDesactiva las cuotas de grupo. Esta opción no es necesaria si se utiliza la -aya que ésta última incluye tanto las cuotas de usuario como las de grupo.

-u Desactiva las cuotas de usuario; esta es la opción por defecto.

-vEstablece el modo explícito que mostrará un mensaje para cada sistema deficheros en el que se desactiven las cuotas.

Ejemplo 1: Desactivar todas las cuotas mostrando todos los mensajes

[BASH] quotaoff -av

quotacheck

Revisa los sistemas de ficheros y compila las bases de datos de cuotas. Esta comando noestá incluido específicamente en los objetivos del examen LPI 101, pero es uncomponente importante en el sistema de cuotas de Linux. El comando quotacheck -adebería ser ejecutado de forma regular por medio de cron. La sintaxis básica de estautilidad es la siguiente:

[BASH] quotacheck [opciones] puntoDeMontaje → ( Ejemplo:/home /var)[BASH] quotacheck [opciones] -a }}}

Page 77: Certificación LPI 101

Certificación LPIC-1

77

Se pueden utilizar muchas opciones con el comando quotacheck. Las utilizadas másfrecuentemente son las que se muestran en la tabla siguiente:

Opciones DescripcionComprueba todas las cuotas de los sistemas de ficheros incluidos en

-a /etc/fstab. Se comprobarán tanto las cuotas de usuario como las de gruposegún se indique en las opciones usrquota y grpquota.

-g grupo Compila solamente la información de grupo.

-uusuario

-v

Compila solamente la información de usuario; ésta es la opción por defecto.No obstante, si se especificase la opción -g, entonces habría que incluir estasi se desea que se procesen también las cuotas de usuario.

Establece el modo explícito que mostrará toda la información de lo que elprograma está haciendo. Esta opción indica que el programa está activomediante un símbolo giratorio en el terminal. Ésto queda muy bonito peropodría ser un problema si estamos conectados mediante un módem lento.

Ejemplo 1: Inicializa todos los ficheros de cuotas

[BASH] quotaoff -a

[BASH] quotacheck -aguv [BASH] quotaon -a }}}

Para actualizar los ficheros de bases de datos de cuotas debemos desactivar primero lasmismas.

Ejemplo 2: Con las cuotas activas, actualizar las cuotas de usuario en memoria para elsistema de ficheros /home

[BASH] quotacheck -v /home

edquota

Modifica las cuotas de usuario o grupo. Este es un comando interactivo que utiliza uneditor de texto para configurar los parámetros de cuotas para usuarios o grupos. Pordefecto se utiliza el editor vi. Cuando se envía el comando, se ejecuta un editor con unfichero temporal que contiene las opciones de cuotas. Al guardar el fichero temporal, eleditor finaliza y los cambios se guardan en las bases de datos de cuotas. En la primeraforma del comando, se modifica una lista de usuarios o grupos separados por espaciosen blanco especificados en el apartado nombres. Si se incluye la opción -p y proto-usuario, las cuotas de ese usuario o grupo se utilizarán para los nombres y no se lanzaráningún editor. En la segunda forma del comando, con la opción -t, se editaráninteractivamente los límites soft para cada sistema de ficheros La sintaxis básica de estautilidad es la siguiente:

[BASH] edquota [-p proto-usuario] [opciones] nombres

[BASH] edquota [opciones] -t }}}

Se pueden utilizar muchas opciones con el comando edquota. Las utilizadas másfrecuentemente son las que se muestran en la tabla siguiente:

Page 78: Certificación LPI 101

Certificación LPIC-1

78

Opciones Descripcion

-gModifica las cuotas de grupo. Si se especifica -g, se asumirá que todos losnombres son grupos y no usuarios, incluso si se especificase también -u.

-p proto-usuario

-t

Duplica las cuotas del usuario prototipo para cada grupo o usuarioespecificado. Este es el mecanismo mas habitualmente utilizado parainicializar al mismo tiempo las cuotas de varios usuarios o grupos.

Modifica los límites soft. Este comando interpreta unidades de sec(segundos), min(minutos), hour (horas), day (días), week (semanas), ymonth (meses).

-uModifica las cuotas de usuario. Es la opción por defecto, pero se ignorarási se especificase la opción -g

Ejemplo 1: Modifica las cuotas de usuario para mayra

[BASH] edquota -u mayra

Quotas for user mayra: /dev/sda9: blocks in use: 87, limits (soft = 99900, hard =100000) inodes in use: 84, limits (soft = 0, hard = 0) /dev/hda1: blocks in use: 0, limits(soft = 0, hard = 0) inodes in use: 0, limits (soft = 0, hard = 0) "/tmp/EdP.auHTZJ0" 5lines, 241 characters }}}

En este ejemplo, a mayra se le ha definido en /dev/sda9 un límite soft de 99.900bloques, un límite hard de 100.000 bloques, y ningún límite de ficheros. No tieneninguna limitación en /dev/hda1.

Ejemplo 2: Modificar los límites soft para usuarios en todos los sistemas de ficheros

[BASH] edquota -tu

Time units may be: days, hours, minutes, or seconds Grace period before enforcing softlimits for users: /dev/sda9: block grace period: 7 days, file grace period: 3 days/dev/hda1: block grace period: 7 days, file grace period: 3 days "/tmp/EdP.aiTShJB" 5lines, 249 characters }}}

En este caso se han establecido unos periodos de gracia de siete días para bloques(espacio en disco) y de tres días para ficheros (inodos).

repquota

Se utiliza para obtener un informe de la situación de las cuotas. En la primera forma delcomando, repquota mostrará un informe por usuario o por grupo de las cuotas de lossistemas de ficheros indicados. En la segunda forma, la opción -a hará que se muestreun sumario de todos los sistemas de ficheros con cuotas. Este comando solo podráejecutarlo el usuario root, a menos que los ficheros de bases de datos de las cuotastengan permisos de lectura universales. Para cada usuario se imprime el número deficheros y el espacio en disco utilizados en ese momento junto con las cuotas creadascon edquota. La sintaxis básica de esta utilidad es la siguiente:

[BASH] quotaoff [opciones] puntoDeMontaje → ( Ejemplo:/home /var)[BASH] quotaoff -a [opciones] }}}

Page 79: Certificación LPI 101

Certificación LPIC-1

79

Se pueden utilizar muchas opciones con el comando repquota. Las utilizadas másfrecuentemente son las que se muestran en la tabla siguiente:

Opciones DescripcionHace informes de todas las cuotas de todos los sistemas de fichero delectura-escritura incluidos en /etc/fstab. Se mostrarán tanto las cuotas de

-a usuario como las de grupo según se indique en las opciones usrquota ygrpquota.

-g Muestra las cuotas de grupos.-u Muestra las cuotas de usuarios; es la opción por defecto.

-vActiva el modo explícito, el cual añade una cabecera descriptiva a la salidadel comando.

Ejemplo 1: Informe de las cuotas de usuario para el sistema de ficheros /home

[BASH] repoquota -v /home

Habilitando las cuotas

Para poder utilizar las cuotas, en primer lugar hay que habilitarlas (El kernel debe estarcompilado con soporte para cuotas. En el caso improbable de que no fuese así, habríaque recompilarlo con esta opción.). No es un proceso dificultoso pero,desgraciadamente, tampoco es simple. Para aclarar un poco este proceso, en estasección se incluirá un breve tutorial explicando como habilitar las cuotas de usuario y degrupo en el filesystem /dev/sda9 montado bajo /home. Hay que tener en cuenta quepueden habilitarse cuotas solo de usuario, de grupo o ambas según sea necesario.

1. Definir las opciones en /etc/fstab. En la línea que contiene el sistema de ficheros/home, añadir las opciones usrquota y grpquota a la opción default, como en esteejemplo

/dev/sda9 /home ext3 defaults,usrquota,grpquota 1 2

Estas opciones indican a las utilidades de configuración de cuotas que particiones debenser tratadas por dichas utilidades cuando éstas busquen en /etc/fstab.

2.Crear los ficheros quota.user y quota.group en la raíz del sistema de ficheros /home ydar permisos sólo para root:

[BASH] touch /home/quota.user /home/quota.group

[BASH] chmod 600 /home/quota.user /home/quota.group}}}

Estos dos ficheros son las bases de datos de las cuotas de usuarios y grupos. Cadasistema de ficheros con cuotas utilizará sus propias bases de datos. Al habilitar lascuotas, estos ficheros contendrán datos binarios (no son ficheros de texto). Si se quisieraque los usuarios puedan examinar las cuotas de los grupos a los que pertenecen, elfichero quota.group necesitará un permiso de 644 en lugar de 600.

Page 80: Certificación LPI 101

Certificación LPIC-1

80

3.Ejecutar quotacheck para inicializar las bases de datos:

[BASH] quotacheck -avug

4.Ahora, verificar que los ficheros de bases de datos se han inicializado realmente, paraello nos aseguramos que su tamaño no sea cero (en este ejemplo cada uno ocupa16.192):

[BASH] ls -al /home/quota.*

-rw------- 1 root root 16192 Dec 27 19:53 /home/quota.group -rw------- 1 root root16192 Dec 27 19:53 /home/quota.user }}}

5.Ejecutar quotaon para activar el sistema de cuotas:

[BASH] quotaon -a

6.Verificar que el script de inicialización del sistema ( /etc/rc.d/rc.sysinit o similar)activará las cuotas cada vez que el sistema cargue. Puede ser algo similar al ejemplosiguiente aunque puede variar de sistema a sistema:

if [ -x /sbin/quotacheck ]

then echo "Checking quotas." /sbin/quotacheck -avug echo " Done." fi if [ -x/sbin/quotaon ] then echo "Turning on quotas." /sbin/quotaon -avug fi }}}

7.Añadir un script al directorio crontab del sistema (por ejemplo /etc/crontab.weekly)para que se ejecute quotacheck rutinariamente. El script del ejemplo puede ser válido:

!/bin/bash

/sbin/quotacheck -avug }}}

Alternativamente, podría ponerse /sbin/quotacheck en el fichero crontab de root(utilizando el comando crontab -e) para su ejecución semanal, como en este ejemplo:

ejecutar quotacheck semanalmente

0 3 0 /sbin/quotacheck -avug }}}

En este momento, el sistema de ficheros /home está listo para aceptar cuotas de usuarioo de grupo, controlarlas y emitir informes sobre ellas.

Page 81: Certificación LPI 101

Certificación LPIC-1

81

Permisos de archivos y directoriosAdministracion de Permisos

Los comandos que usaremos para asignar permisos tanto a carpetas como a ficherosseran los sigueintes: La forma es como deben ser usados estos comando sera de lasiguiente manera:

Permisos de archivos y directorios

Los componentes informativos de un fichero estan compuestos por 1 campo y 3secciones, este campo y secciones son las siguientes:

Estas 3 secciones estan compuestas por los siguientes elementos

Opciones DescripcionPermite la lectura de un archivo. Éste es el único permiso necesario para

r copiar un archivo.Cuando se aplica a un directorio, se pueden leer ó ver sus archivos.

Permite escribir en un archivo. Con él se pueden cambiar, modificar o

wsobreescribir los contenidos del archivo. Cuando se aplica en un directorio,este permite borrar y mover archivos incluso si no se tiene el permiso deescritura específico sobre el archivo individual

Permiso de ejecución: permite ejecutar el archivo si contiene los scriptsnecesarios o puede ser ejecutado por el sistema. Aplicado a un directorio,

x este permite el acceso al mismo. Cuando se aplica a un conjunto conpermisos de lectura dentro de un escritorio, este permite buscar dentro dedicho directorio.

- (guion)Indica la ausencia de permiso. Por ejemplo, r-x indica que ese usuario puedeleer y ejecutar, pero no escribir

El elemento llamado campo es un identificador que indica si un elemento es undirectorio, un documento o un enlace simbolico

Por tanto, los 10 campos de permisos se resumen en:

1.Tipo de elementro (archivo, directorio, otro) 2.El propietario puede leer 1.Elpropietario puede escribir 2.El propietario puede ejecutar 3.El grupo puede leer4.El grupo puede escribir 5.El grupo puede ejecutar6.Usuario (no pertenece algrupo y al propietario) puede leer 7.Usuario puede escribir 8.Usuario puedeejecutar

Page 82: Certificación LPI 101

Certificación LPIC-1

82

Estos permisos tienen valores numéricos como se muestran en la siguiente tabla

Permiso Valor Numericor 4w 2

x 1

- (guion) 0

Los valores numéricos hacen posible añadir permisos a la vez y expresarlo de un modosencillo. Por ejemplo, si un archivo permite al usuario rwx, el valor numérico sería4(r)+2(w)+1(x)=7. El formato del conjunto de los permisos de un archivo se muestra enla siguiente figura.

La tabla siguiente muestra la conversión numérica de un conjunto de distintos permisosposibles:

Permiso Valor Numerico1 --------x

2 -------w-

3 -------wx4 ------r--

5 ------r-x

6 ------rw-

10 -----x---

11 -----x--x

22 -----w--w-

33 ----wx-wx

55 ---r-xr-x

77 ---rwxrwx

100 --x------

101 --x-----x

111 --x--x--x

222 -w--w--w-

311 -wx--x--x

322 -wx-w--w-

400 r--------

444 r--r--r--

511 r-x---x--x

544 r-xr--r--

644 rw-r--r--

666 rw-rw-rw

755 rwxr-xr-x

Page 83: Certificación LPI 101

Certificación LPIC-1

83

777 rwxrwxrwx

Comando chmod

Chmod ( change mode ) permite cambiar los permisos de acceso de un archivo odirectorio.

La sintaxis básica de esta utilidad es la siguiente:

[BASH] chmod [modificadores] [opciones] [archivo/directorio]

Donde los modificadores son los antes vistos en la tabla anterior.

Se pueden utilizar muchas opciones con el comando chmod. Las utilizadas másfrecuentemente son las que se muestran en la tabla siguiente:

Opciones Descripcion

-vLista los archivos y directorios a los que se les va aplicando el comando amedida que el mismo se ejecuta

-RAplica el comando chmod recursivamente a todos los archivos ysubdirectorios.

Permisos especiales

Pueden ser utilizados 3 tipos de permisos en determinadas circunstancias. Aparte de lossiempre aplicables de lectura, escritura y ejecución, algunas veces es necesario algo máspara un archivo o directorio. Estos permisos especiales son los 3 siguientes:

Asignar ID de usuario (set user ID) (SUID) Asignar ID de grupo (set group ID) (SGID) Sticky bit

SUID

La asignación de ID de usuario se aplica cuando se desea que un determinado usuarioejecute un programa que de otro modo no podría. Por ejemplo, sólo el usuario root seríacapaz de ejecutar la función funcion xyz (comenzar backups, restaurar el sistema, entraren otros recursos, etc) a causa de las ramificaciones de seguridad, pero se necesita quelos usuarios ejecuten un shell script para realizar esta acción, porque no se dispone deltiempo necesario para hacerlo personalmente. Se puede crear este shell script como rooty asignar el permiso SUID de modo que el usuario que ejecute el script sea root sólodentro de ese script. Antes y después del manuscrito, es únicamente un usuario, perodurante la ejecucion del script es como si fuera root. El permiso numerico de SUID,4000, es sumado al valor de otros permisos. Una vez aplicado este, cambia la x en elcampo del ejecutable para el propietario de los permisos a una s:

Page 84: Certificación LPI 101

Certificación LPIC-1

84

SGID

Similar en la naturaleza a SUID, el permiso de la identificación de grupo del sistema seaplica cuando es necesario que la persona que ejecuta el archivo sea un miembro delgrupo que posee el archivo (y no el propietario). Esto cambia el x en el permiso delgrupo a un s, y el valor numérico es 2000:

Stiky Bit

Este permiso no trabaja como los otros permisos especiales. Con un valor numérico de1000, sus operaciones difieren cuando están aplicadas a un directorio o a un archivo.Cuando está aplicado a un directorio, evita que los usuarios supriman archivos de lascarpetas que les conceden el permiso de escritura, a menos que sean el propietario delarchivo. Por defecto, cualquier usuario que tenga permiso de escritura en un directoriopuede suprimir archivos dentro de ese directorio, incluso si no tiene el permiso deescritura de ese archivo.

Cuando se aplica sobre un archivo, el archivo se convierte en “sticky” (bloqueado). Laprimera vez que se accede o se ejecuta el archivo y se carga en memoria, permanececargado en memoria física (RAM) o espacio swap de modo que pueda funcionar másrápidamente que si se lee desde el disco. Si el archivo no es ejecutable, el último bit depermiso ( para otra categoria) se convierte en T. Si el archivo es un fichero ejecutable, oel permiso se aplica a un directorio, el bit pasado se convierte en una t. Cuando se aplicael permiso chmod y las letras, aparece t de todos modos (sea archivo o directorio).

Administrando el propietario de los ficheros

Comando chown

El comando chown cambia el propietario de cada fichero, usuario o grupo, si sólo se daun nombre de usuario (o UID numérico), entonces ese usuario se convierte en elpropietario de cada fichero dado, y el grupo al que pertenece el fichero no cambia. Si alnombre de usuario sigue un signo de dos puntos y un nombre de grupo o GID numérico,sin espacios entre ellos, entonces también se cambia el grupo al que pertenece cadafichero, se usa con la siguiente sintaxis: La sintaxis básica de esta utilidad es lasiguiente:

[BASH] chown [opciones] usuario:grupo fichero

Se pueden utilizar muchas opciones con el comando quotaon. Las utilizadas másfrecuentemente son las que se muestran en la tabla siguiente:

Opciones Descripcion

-cMuestra un mensaje donde menciona solamente aquellos ficheros cuyopropietario cambia realmente.

-f No muestra mensajes de error sobre ficheros cambiarse.-R Cambia recursivamente el propietario de directorios y sus contenidos.

Page 85: Certificación LPI 101

Certificación LPIC-1

85

-v Describe la acción efectuada (o no) para cada fichero de forma interactiva.

Comando chgrp

El comando chgrp se usa para cambiar el grupo propietario de un fichero o directorio. Elcomando busca en el fichero /etc/group para confirmar la existencia del grupoespecificado antes de cambiar los permisos. La sintaxis básica de esta utilidad es lasiguiente:

[BASH] chgrp [opciones] grupo fichero

Se pueden utilizar muchas opciones con el comando quotaon. Las utilizadas másfrecuentemente son las que se muestran en la tabla siguiente:

Opciones Descripcion

-cMuestra un mensaje donde menciona solamente aquellos ficheros cuyopropietario cambia realmente.

-hActúa sobre enlaces simbólicos propiamente en vez de sobre lo que apunten.Disponible solamente si el sistema proporciona la primitiva lchown

-fNo muestra mensajes de error sobre ficheros cuyo grupo no puedacambiarse.

-RCambia recursivamente el grupo al que pertenecen directorios y suscontenidos. (Y continúa incluso si se encuentran errores.)

-v Describe la acción efectuada (o no) para cada fichero de forma interactiva.

El usuario root puede efectuar los cambios al grupo que desee; para que un usuariopueda hacerlo, debe ser el propietario del archivo y pertenecer al grupo donde estáefectuando el cambio.

Page 86: Certificación LPI 101

Certificación LPIC-1

86

Crear y cambiar enlaces de ficherosCreando links a ficheros

A veces es útil o necesario tener un mismo fichero en varias localizaciones del sistemade ficheros, por ejemplo, para acceder con diferentes permisos sobre un ficherodependiendo de su localización. En Linux existe una solución para eso: los enlaces olinks.

Estos son de dos tipos:

1. Los Duros o Hard Links, y 2. Los Suaves, Symbolic Links o Symlinks.

Los Hard Links

Estos enlaces comparten el inodo del fichero original. De hecho, un hard link esindistinguible del original y por eso los cambios en el link afectan al fichero original,excepto en el borrado. Borrar el link no elimina al original ni a la inversa. Este tipo deenlace conserva los permisos del original y marcas de tiempo. Por contra, no se puedenusar para hacer enlaces a directorios ni pueden extenderse a otros sistemas de ficheros.Su sintaxis es como sigue:

[BASH] ln /ruta/completa/fichero nombre_enlace

Los Symlinks

Estos enlaces si que pueden extenderse a otros sistemas de ficheros. También puedenhacer referencia a directorios, de hecho, pueden referenciar hasta ficheros inexistentes.La lectura y escritura, así como la copia del enlace, afectan al fichero objetivo, mientrasque el borrado afecta al propio enlace. Borrar el fichero objetivo tampoco elimina elenlace automáticamente. Su sintaxis es como sigue:

[BASH] ln -s /ruta/completa/fichero nombre_enlace