You are on page 1of 85

Detalle del Documento: Entrenamiento para el LPI101

Autor: José María Schenone


Fecha: 15 de mayo de 2011

LPI101

Curso LPI101 www.carreralinux.com.ar Pagina 1 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Índice de contenido
Métodos de Instalación................................................................................................................ 7
Metodos de instalacion alternativos........................................................................................7
Instalacion desde CD o DVD...................................................................................................7
Carpeta paquetes.....................................................................................................................7
Carpeta imagenes...................................................................................................................7
Carpeta dosutils......................................................................................................................8
Instalacion desde un servidor HTTP.......................................................................................8
Configuracion de la instalacion HTTP...................................................................................8
Instalacion desde un disco duro..............................................................................................9
Configuracion de la instalacion desde disco duro..................................................................9
Disco de Rescate Linux.........................................................................................................10
Comenzado con el Disco de Rescate Linux.........................................................................10
Arquitectura del Sistema ........................................................................................................... 11
Asignacion de recursos.........................................................................................................11
Solicitudes de interrupcion (IRQ)........................................................................................11
Direcciones de Entrada/Salida..............................................................................................12
Accesos Directos a Memoria (DMA)...................................................................................12
Listado de asignacion de recursos.............................................................................................12
lspci......................................................................................................................................13
dmesg....................................................................................................................................13
Soporte USB......................................................................................................................... 13
Dispositivos SCSI.................................................................................................................. 14
El canal SCSI........................................................................................................................14
El numero ID del dispositivo................................................................................................14
Numero de unidad logica.....................................................................................................14
Deteccion de dispositivos SCSI...........................................................................................14
Tarjetas de Red..................................................................................................................... 14
Configuracion de impresoras.................................................................................................15
Tarjetas de Audio.................................................................................................................. 15
OSS (Open Sound System)..................................................................................................16
ALSA (Advanced Linux Sound Architecture).....................................................................16
Identificando las tarjetas de audio........................................................................................16
Administracion de tarjetas de audio.....................................................................................16
Conociendo el Arranque de Linux..............................................................................................17
Sobre los Discos Duros.........................................................................................................17
Tipos de Discos Duros.......................................................................................................... 17
Discos Duros IDE-ATA=......................................................................................................17
Discos Duros SATA..............................................................................................................18
Discos Duros SCSI...............................................................................................................18
Configuracion de discos........................................................................................................19
Configuracion de Particiones.................................................................................................20

Curso LPI101 www.carreralinux.com.ar Pagina 2 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Aplicaciones graficas para particionar discos duros..............................................................20


Gparted.................................................................................................................................20
Parted Magic.........................................................................................................................21
Formatear y particionar discos duros desde BASH...............................................................21
Dando formato de bajo nivel con dd....................................................................................21
Particionando un disco duro con fdisk.................................................................................21
Dando formato a un disco duro con mkfs............................................................................23
Niveles de Ejecucion en Linux...................................................................................................23
El Proceso de arranque.........................................................................................................23
El Proceso INIT..................................................................................................................... 24
SystemV...............................................................................................................................24
BSD......................................................................................................................................25
El fichero init.d....................................................................................................................... 25
El fichero rcN.d...................................................................................................................... 25
El fichero inittab..................................................................................................................... 26
El fichero rc.sysinit................................................................................................................ 26
El fichero rc.local................................................................................................................... 27
Niveles de Ejecucion............................................................................................................. 27
Nivel 0 –Parada Del Sistema................................................................................................27
Nivel 1 o S -Monousuario o Single User.............................................................................27
Nivel 2 -Multiusuario sin Red..............................................................................................27
Nivel 3 -Multiusuario con Red.............................................................................................27
Nivel 4. -Sin Uso..................................................................................................................27
Nivel 5. -Multiusuario Grafico.............................................................................................28
Nivel 6. -Reinicio del Sistema..............................................................................................28
Comando chkconfig............................................................................................................... 28
Levantando, deteniendo y reiniciando servicios....................................................................28
Manejo de Paquetes.................................................................................................................. 29
Introduccion a la gestion e instalacion de software...............................................................29
Herramienta RPM................................................................................................................. 30
Herramienta YUM................................................................................................................. 30
Configuración de YUM .......................................................................................................31
Extensiones de YUM............................................................................................................33
Utilidades YUM...................................................................................................................33
Herramienta DPKG............................................................................................................... 34
Herramienta APTITUDE........................................................................................................35
Herramienta APT.................................................................................................................. 35
Manejo de comandos................................................................................................................. 36
Sobre SHELL........................................................................................................................ 36
El Ambiente Linux................................................................................................................. 36
Algunas variantes del SHELL................................................................................................37
Bourne Shell (sh)..................................................................................................................37
Korn Shell (ksh)...................................................................................................................37
Boune Again Shell (bash).....................................................................................................37

Curso LPI101 www.carreralinux.com.ar Pagina 3 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

CShell (csh)..........................................................................................................................37
Introduccion a BASH............................................................................................................. 37
Conociendo el SHELL de nuestro equipo............................................................................37
Usando el comando cd.........................................................................................................37
Rutas (Paths).........................................................................................................................38
Rutas Absolutas....................................................................................................................38
Rutas Relativas.....................................................................................................................38
Usando el . . (punto a punto)................................................................................................38
Entendiendo el . (punto).......................................................................................................39
Usando los comandos de Linux............................................................................................39
El comando ls.......................................................................................................................39
Comodines............................................................................................................................40
El comando mkdir................................................................................................................41
comando touch.....................................................................................................................42
comando echo.......................................................................................................................42
comando cat y cp .................................................................................................................42
comando mv.........................................................................................................................42
Procesando cadenas de texto usando filtros.........................................................................42
Listando el contenido de un fichero.......................................................................................43
Ordenando lineas de un fichero con Sort..............................................................................43
Segmentando un texto con Cut.............................................................................................45
Pegando texto con Paste.......................................................................................................45
Formateando parrafos...........................................................................................................46
Borrando o sustituyendo caracteres......................................................................................47
Ver el inicio de un fichero....................................................................................................48
Ver el final de un fichero......................................................................................................48
Uniendo multiples ficheros..................................................................................................49
Segmentando un fichero.......................................................................................................49
Eliminando lineas repetidas en un fichero ..........................................................................50
Convirtiendo ficheros para imprimir....................................................................................51
Mostrando estadisticas de un fichero...................................................................................51
Añadiendo numeros de linea a un fichero............................................................................52
Administracion de Archivos........................................................................................................53
Listando el contenido de un directorio...................................................................................53
Determinando el tipo de fichero.............................................................................................54
Copiando Archivos................................................................................................................ 55
Copiando y convirtiendo archivos con diferente formato.......................................................55
Moviendo Archivos................................................................................................................ 56
Moviendo Archivos................................................................................................................ 57
Creando, monitorizando y matando procesos............................................................................57
Sobre procesos..................................................................................................................... 57
Estados de un proceso..........................................................................................................57
Diagrama de formacion de un proceso.................................................................................58
Modelo de dos estados.........................................................................................................58
Modelo de cinco estados......................................................................................................58

Curso LPI101 www.carreralinux.com.ar Pagina 4 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Sobre demonios.................................................................................................................... 59
Caracteristicas......................................................................................................................59
Comando ps (process state)......................................................................................................59
Comando pstree y top........................................................................................................... 61
Finalizando un proceso.........................................................................................................62
Procesos en segundo y primer plano....................................................................................63
Creando particiones y sistemas de ficheros...............................................................................63
Sobre fdisk............................................................................................................................ 63
Utilizando fdisk...................................................................................................................... 63
Utilizando mkfs...................................................................................................................... 67
Manteniendo la integridad de los sistemas de ficheros.........................................................68
Monitorizando el espacio y los inodos libres del disco..........................................................68
Monitorizando el espacio y los inodos libres del disco..........................................................69
Comprobando la integridad del sistema de ficheros..............................................................69
Montando y desmontando sistemas de ficheros........................................................................70
Controlando el montaje y desmontaje del sistema de ficheros..............................................70
Administrando la tabla del sistema de ficheros.....................................................................70
Montando el sistema de ficheros ..........................................................................................71
Desmontando el sistema de ficheros....................................................................................72
Administrando cuotas de disco..................................................................................................73
Establecer y consultar cuotas de disco.................................................................................73
Cuotas de Limitacion................................................................................................................. 73
Comandos de cuotas............................................................................................................ 74
quota.....................................................................................................................................74
quotaon.................................................................................................................................75
quotaoff.................................................................................................................................76
quotacheck............................................................................................................................76
edquota.................................................................................................................................77
repquota................................................................................................................................78
Habilitando las cuotas........................................................................................................... 79
Permisos de archivos y directorios............................................................................................80
Administracion de Permisos..................................................................................................80
Permisos de archivos y directorios........................................................................................80
Comando chmod................................................................................................................... 82
Permisos especiales............................................................................................................. 82
SUID.....................................................................................................................................83
SGID.....................................................................................................................................83
Stiky Bit................................................................................................................................83
Administrando el propietario de los ficheros..............................................................................83
Comando chown................................................................................................................... 83
Comando chgrp..................................................................................................................... 84
Crear y cambiar enlaces de ficheros..........................................................................................84
Creando links a ficheros........................................................................................................84

Curso LPI101 www.carreralinux.com.ar Pagina 5 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Los Hard Links ..................................................................................................................... 85


Los Symlinks ........................................................................................................................ 85

Curso LPI101 www.carreralinux.com.ar Pagina 6 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Métodos de Instalación

Metodos de instalacion 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
• images
• isolinux
Para sistemas operativos Linux de la Familia Debian la carpeta imagenes esta relacionada con las carpetas
• casper
• isolinux

Curso LPI101 www.carreralinux.com.ar Pagina 7 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Carpeta dosutils
Este directorio contiene herramientas que pueden ser usadas para preparar la instalacion de Linux. Estas
herramientas son programas diseñadas en MS-DOS muy partiularmente el comando rawrite. Rawrite es un
programa que graba una imagen de un archivo en un disquette,cd o USB. Puede ser usado para grabar la
imagen de un sistema operativo que sea 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 sistema operativo.

Instalacion desde un servidor HTTP

Configuracion de la instalacion HTTP


1.El primer paso sera instalar el servidor HTTP. Para sistemas operativos Linux de la familia 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 la siguiente manera
[BASH]# apt-get install -y apache2

2.El siguiente paso sera introducir el medio de instalacion DVD a la unidad lectora de discos, crear una
carpeta dentro de la carpeta publica del servidor HTTP y luego montarlo sobre dicha carpeta. Para sistemas
operativos Linux de la familia Red Hat la ubicacion 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 usted elija. Para sistemas
operativos Linux de la familia Debian la instalacion de hace de la siguiente manera
/var/www/

Dentro de esta ruta se tiene que crear la carpeta y nombrarla con el nombre que usted elija.
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 sistemas operativos 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 el fichero
boot.iso

al escritorio de trabajo o en algun otro lugar Este fichero lo podras encontrar dentro de la carpeta
images

Curso LPI101 www.carreralinux.com.ar Pagina 8 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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 sistemas operativos 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 como K3B 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 opcion Ipv4
9.En configuracion HTTP deberas teclear la direccion IP en la cual tienes montado el medio de instalacion
DVD asi como tambien el nombre del directorio publico que creaste en el servidor HTTP y teclear el boton
“Acpetar”
NOTA:Este metodo de instalacion solo es aplicable a distribuciones Linux de la familia Red Hat

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 lo siguiente:
• 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 es asi siga leyendo. Inserte el medio de
instalacion DVD en el lector del equipo y teclee el siguiente 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

Curso LPI101 www.carreralinux.com.ar Pagina 9 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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

title En esta linea usted puede agregar un comentario sobre el Sistema Operativo a Instalar
En esta linea se indica el disco duro y la particion del disco duro en donde se encuentra
root
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

7.Lo siguiente sera reiniciar el equipo y justo cuando arranque el GRUB elegir la linea de instalacion del
sistema Operativo Esta accion cargara el instalador del Sistema Operativo 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 de rescate, este CD de
rescate es una version reducida de Linux que implementa un sistema de ficheros en la memoria RAM del
equipo el cual tiene como funcion acceder al sistema 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 nuestro equipo 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

Curso LPI101 www.carreralinux.com.ar Pagina 10 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Esta accion nos arrojara el siguiente mensaje Presione la tecla “p” , esto nos mostrara una lista con las
distintas particiones alojadas en el disco duro, algo muy parecido al siguiente ejemplo
8.De acuerdo a la informacion obtenida en el anterior punto, monte la particion que contenga 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 la memoria RAM y el
segundo relacionado al sistema de ficheros del disco duro. Al aplicar “chroot” sobre la particion montada
tomaremos el control sobre el sistema de ficheros del disco duro y con ello podremos ajecutar comandos
administrativos sobre el equipo. 10.Por ultimo, si olvido la contraseña de root o si esta fue cambiada por
alguien mas , podra recuperarla tecleando en consola lo siguiente:
[BASH]# passwd
Cambiando la contraseña del usuario root.
Nueva UNIX contraseña:

Arquitectura del Sistema

Asignacion de recursos
Para permitir que los perifericos y dispositivos del equipo se comuniquen directamente con los recursos del
sistema , en particular con el CPU (Central Processing Unit) el sistema asigna recursos tales como líneas y
canales de comunicacion para cada dispositivo. Muy particulamente, estos recursos son conocidos como
solicitudes de interrupcion (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 la funcion de un
procesador. El procesador es el encargado de procesar y administrar los datos y peticiones que a este
llegan, sin embargo un solo procesador no es capaz de procesar simultaneamente varias peticiones , por lo
que solo atiende de una a una las peticiones que a el llegan, aqui es donde las solicitudes de interrupcion
empiezan a jugar un papel importante. Suponga que un programa1 está siendo atendido por el procesador
pero subitamente una solicitud de interrupción llega al procesador,es entonces cuando el programa1 llega a
ser momentaneamente suspendido por un programa2. Este programa2 es ahora el atendido por el
procesador y hasta que este termine de ser atendido el programa1 interrumpido puede continuar
ejecutándose . Una interrupción se convierte en una interrupción de hardware cuando es solicitada por uno
de los componentes de hardware del equipo. Cuando un periférico desea acceder a un recurso, envía un
pedido de interrupción al procesador para llamar su atención. Los periféricos cuentan con un número de
interrupción que se denomina IRQ (Peticiones de Interrupción. Es como si cada periférico tirara de un "hilo"

Curso LPI101 www.carreralinux.com.ar Pagina 11 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

que está atado a una campana para indicarle al equipo que desea que le preste atención. Este "hilo" es, de
hecho, una línea física que conecta cada 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 del sistema, dichas
direcciones son asignadas por el CPU a cada uno de los dipositivos del hardware 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 equipo acceder a la memoria
del sistema para leer o escribir independientemente del procesador. Muchos sistemas hardware utilizan
DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido. DMA es una
característica esencial en todos los equipos modernos, ya que permite a dispositivos de diferentes
velocidades comunicarse sin someter al procesador a una carga masiva de interrupciones. Una
transferencia DMA consiste principalmente en copiar un bloque de memoria 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 bloque de memoria desde una memoria externa a una interna más rápida.
Tal operación no ocupa el procesador y como resultado puede ser planificado para efectuar otras tareas.
Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran
muchos recursos.
Regularmente un equipo consta de 8 canales DMA. Los primeros cuatro canales DMA poseen un ancho de
banda de 8 bits mientras que los DMA 4 a 7 poseen a su vez un ancho de banda de 16 bits. Los canales
DMA por lo general suelen asignarse de la siguiente 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 la carpeta
/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

Curso LPI101 www.carreralinux.com.ar Pagina 12 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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 y dispositivos PCI conectados
al equipo. Asi mismo nos da informacion detallada sobre los 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

dmesg
dmesg (diagnostic message)es un comando que lista el buffer de mensajes del kernel de linux. Este buffer
contiene una gran variedad de mensajes importantes generados durante el arranque del sistema y durante
la depuración de aplicaciones. Estos mensajes pueden ser consultado en el fichero
/var/log/messages

Soporte USB
El bus universal en serie (Universal Serial Bus) es un protocolo de comunicacion diseñado para conectar
dispositivos a un equipo de computo. Estos dispositivos estan divididos 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 de linux y con ello la
liberacion de 3 modulos o controladores para la misma.

Controlador Desarrollador Modulo para el Kernel


OHCI 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 los buses, dispositivos
USB conectados al equipo, IRQ y direcciones de Entrada/Salida asociados a los dispositivos USB
encontrados, el nombre de este comando es el siguiente.
[BASH]# lsusb -v

}
El parametro -v es el encargado de listar la infomacion referente a los IRQ, DMA y las direcciones de
entrada/salida de los dispositivos USB.
Una forma para cononcer si en nuestro sistema operativo tiene soporte para estos controladores es

Curso LPI101 www.carreralinux.com.ar Pagina 13 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

revisando directamente el fichero de modulos del kernel de linux. La ruta de este fichero es la siguiente:
/proc/modules

Dispositivos SCSI
Existen dos tipos de interfaces scsi, estas son
• Una interfaz de 8 bits con un bus que soporta 8 dispositivos, esta incluye el controlador 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 el controlador por lo
tanto sólo hay espacio para 15 dispositivos de bloque
Los dispositivos SCSI pueden ser identificados mediante una serie de 3 numeros llamados 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 dispositivos SCSI (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 ajustar usando los jumpers
del disco SCSI. Este rango de numeros de identificacion van de 0 a 7 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 de disco 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.AA
Type: Direct-Access ANSI SCSI revision: 05

Tarjetas de Red
Las tarjetas de red son el punto neuralgico de la comunicacion del equipo con el exterior y viceversa. Para

Curso LPI101 www.carreralinux.com.ar Pagina 14 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

ello el kernel debera tener soporte para este tipo de dispositivos. Una forma de obtener informacion
referente a las tarjetas de red del sistema es haciendo uso de los siguientes comandos:
[BASH]# dmesg
[BASH]# lspci

Ejemplo:
[BASH]# dmesg
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 Fast Ethernet
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. Esta informacion puede ser usada si el modulo
asociado a la tarjeta de red comienza a entrar en conflictos con el kernel. Tambien es util si se requiere
insertar un modulo con una diferente 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 aqui daremos una breve
introduccion. Desde la perspectiva del hardware, las impresoras son detectadas automaticamente por el
equipo cuando este es encendido , asi mismo las impresoras 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 es mediante una
herramienta actualmente en desuso llamada “printtool” la cual proporciona un entorno gráfico para montar y
gestionar impresoras, sin embargo este paquete ha desaparecido para la mayoria de las distribuciones linux
existentes. El segundo metodo es actualmente el mas implementado para la mayoria de las distribuciones
linux y este lleva por nombre CUPS. CUPS(Common Unix Printing System) es un sistema de impresión
modular para sistemas operativos de tipo Unix que permite 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 estos recursos

Tarjetas de Audio
Existen dos proyectos para el soporte de audio en linux , estos son:
• OSS.- Open Sound System
• ALSA.- Advanced Linux Sound Architecture

Curso LPI101 www.carreralinux.com.ar Pagina 15 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

OSS (Open Sound System)


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

ALSA (Advanced Linux Sound Architecture)


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

Identificando las tarjetas de audio


Una forma usual de identificar las tarjetas de audio es haciendo uso del comando dmesg el 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=0x0
ALSA 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 la herramienta
“alsamixer”. alsamixer es un programa de mezclado de audio para la arquitectura de sonido de Linux ALSA.
Se utiliza para configurar el sonido y ajustar los volúmenes. Tiene una interface para usuarios basada en
ncurses (modo texto) y no necesita del sistema X Window System. Soporta gran variedad de placas de
sonidos con dispositivos múltiples.

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


-c <número de placa o Selecciona la placa de sonido a utilizar, si en el sistema existen más de
identificación> una placa. Las placas se numeran desde 0 (por defecto).
-D <identificación de
Selecciona el mezclador para el control.
dispositivo>
-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 o todos.

Curso LPI101 www.carreralinux.com.ar Pagina 16 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Conociendo el Arranque de Linux

Sobre los Discos Duros


Un disco duro es un dispositivo de almacenamiento masivo de datos que a su vez también puede tener
instalado algún Sistema Operativo, así mismo funge como memoria no volátil, es decir, cuando por alguna
razón se interrumpe la energía eléctrica de nuestra casa u oficina la información anidada en el mismo se
almacena de manera correcta, salvo algunas excepciones, como por ejemplo cuando se trabaja en tiempo
real con el disco duro y no se guardan con anticipación dichos cambios. Un ejemplo de memoria volátil es la
memoria RAM (Random Access Memory), ya que este tipo de memoria solo almacena la información de
manera temporal y es borrada nuevamente cuando 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
platos metálicos apilados girando a gran velocidad. Sobre estos platos se sitúan los cabezales encargados
de leer o escribir los impulsos magnéticos. Existen distintos tipos de interfaces 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 llamada IDE(Integrated Device
Electronics) ATA(Advanced Technology Attachment) que es la encargada de comunicar al Disco Duro con la
tarjeta madre. El estándar IDE-ATA fue diseñado originalmente para conectar discos duros; sin embargo, se
desarrolló una extensión llamada ATAPI que permite interconectar otros periféricos de almacenamiento
como unidades de CD o unidades de DVD en una interfaz IDE-ATA. Habitualmente, un disco duro IDE-ATA
puede estar configurado de 3 maneras diferentes, las cuales son:
• Maestro.- Los discos duros con esta configuración indican a la tarjeta madre que el 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 en cuenta al momento de
arrancar el sistema por lo que el disco duro maestro puede disponer de los demás discos duros
configurados como discos esclavos
• Selección por cable.- El dispositivo será maestro o esclavo en función de su posición en el cable. Si
hay otro dispositivo, también debe estar configurado como cable select. Si el dispositivo es el único
en el cable, debe estar situado en la posición de maestro.
Este diseño IDE-ATA tiene el inconveniente de que mientras se accede a un dispositivo el 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 dispositivos por canal.
Los discos IDE están mucho más extendidos que los SCSI debido a su precio mucho más bajo. El
rendimiento de IDE es menor que SCSI pero se están reduciendo las diferencias. En la siguiente figura

Curso LPI101 www.carreralinux.com.ar Pagina 17 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

podemos observar un diagrama que muestra la forma en 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 Serial Advanced Technology
Attachment que es la encargada de comunicar los dotos del Disco Duro con la tarjeta madre. Estos discos
duros sustituyen a los tradicionales IDE-ATA, ademas de que proporciona mayores velocidades, mejor
aprovechamiento cuando hay varios discos, mayor longitud del cable de transmisión de datos y capacidad
para conectar discos en caliente (con la computadora encendida). El estándar Serial ATA se basa en una
comunicación en serie. Se utiliza una ruta de datos para transmitir los datos y 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 de bajo voltaje) que consiste en transferir una señal a un hilo y su
contrapartida a un segundo hilo para permitir que el destinatario recree la señal por diferencia. Los datos de
control se transmiten por la misma ruta que los datos mediante una secuencia específica de bits que los
distingue. Por lo tanto, la comunicación requiere de dos rutas de transmisión, cada una de las cuales está
compuesta por dos hilos, con un total de cuatro 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 7 hilos con un conector
de 8 milimetros en su extremo, tres hilos tienen conexión a tierra y dos pares se utilizan para la transmisión
de datos, el conector de la fuente de alimentación también es diferente ya que comprende 15 clavijas que
alimentan al periférico con una potencia que varia entre 3.3 Volts, 5 Volts o 12 Volts y tiene una apariencia
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 se transmite con un bit
de arranque y un bit de parada, con una velocidad efectiva teórica de 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ándar Serial ATA pueden medir hasta 1 metro de longitud (en comparación con los 45 cm que miden los
cables IDE). Además, la baja cantidad de hilos en una envoltura redonda permite una mayor flexibilidad y
una mejor circulación del aire dentro de la carcasa que la de los cables IDE (incluso si existieran los cables
IDE redondeados). A diferencia de los periféricos del estándar ATA, los del Serial ATA se encuentran solos
en cada cable y 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 en pocas palabras, mientras el
equipo esta encendido.

Discos Duros SCSI


El estándar SCSI (Small Computers System Interface) es una interfaz que se utiliza para permitir la
conexión de distintos tipos de periféricos a un ordenador mediante una tarjeta denominada adaptador SCSI
o controlador SCSI generalmente mediante un conector PCI. El número de periféricos que se pueden
conectar depende del ancho del bus SCSI. Con un bus de 8 bits, se pueden conectar 8 unidades físicas y
con uno de 16 bits, 16 unidades.
Direccionamiento de los Periféricos SCSI
Los periféricos se direccionan mediante números de identificación. El primer número es el ID, número que

Curso LPI101 www.carreralinux.com.ar Pagina 18 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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 el software). El periférico puede tener hasta 8 unidades lógicas
(por ejemplo, una unidad de 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 tarjetas SCSI 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 alambres para una transmisión de 8 bits (que se denominan
limitados) o 16 alambres para cables de 16 bits (conocidos como extendidos). Este es el tipo de bus
SCSI más común.
• el bus diferencial transporta señales a un par de alambres. La información se codifica por diferencia
entre los dos alambres (cada uno transmite el voltaje opuesto) para desplazar las interrupciones
electromagnéticas, lo que permite obtener una distancia de cableado considerable (alrededor de 25
metros). En general, existen dos modos: el modo LVD (Voltaje bajo diferencial), basado en señales
de 3,3 V y el modo HVD (Voltaje Alto Diferencial), que utiliza señales de 5 V. Los periféricos que
utilizan este tipo de transmisión son cada vez más raros y por lo general llevan la palabra "DIFF".
Los conectores para las dos categorías de periféricos son los mismos, pero las señales eléctricas son
diferentes. Por lo tanto, los periféricos necesitan ser identificados (mediante los símbolos creados para tal
fin) para no dañarlos.
Estándares SCSI Los estándares SCSI definen los parámetros eléctricos de las interfaces de
entrada/salida. El estándar SCSI-1 de 1986 definió los comandos estándar para el control de los periféricos
SCSI en un bus con una frecuencia de 4,77 MHz con un ancho de 8 bits, lo que implicaba que era posible
alcanzar velocidades de 5 MB/s. Sin embargo, un gran número de dichos comandos eran opcionales, por lo
que en 1994 se adoptó el estándar SCSI-2. Éste define 18 comandos, conocidos como CCS (Conjunto de
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 una velocidad de 10 MB/s
• El SCSI-2 rápido es un modo sincrónico rápido que permite un aumento de 5 a 10 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 velocidades respectivamente.
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 cuadro resume 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 cual comienza 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 alfabeto para identificar los discos maestros de los esclavos.

Curso LPI101 www.carreralinux.com.ar Pagina 19 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Identificador del Disco Duro Dispositivo Logico


hda Maestro Primario
hdb Esclavo Secundario
hdc Maestro Secundario
hdd Esclavo Secundario
sda Primer Disco Sata o SCSI
sdb Segundo Disco Sata o SCSI

Configuracion de Particiones
Asi como los discos duros son listados y representados, tambien las particiones correspondientes 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 una particion primaria, logica o extendida.
NOTA:Los discos duros ATA y SATA permiten 4 particiones primarias, de las cuales 1 puede ser
extendida.Las particiones extendidas pueden ser divididas en particiones logicas y estas pueden
tener un maximo de 64 particiones para discos ATA/SATA y 16 particiones para discos SCSI

Aplicaciones graficas para particionar discos duros


Existen aplicaciones libres como alternativas a las aplicaciones propietarias como es el caso 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 de archivos. Esto es útil para crear
espacio para nuevos sistemas operativos, reorganizar el uso del disco y crear imágenes de un disco en una
partición. La aplicación utiliza la librería libparted para detectar y manipular dispositivos y tablas de partición,
mientras varias herramientas de sistema de archivos dan mantenimiento a sistemas de archivos no incluidos
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 última
rama estable núcleo de Linux (2.6). LiveCD es actualizado con cada lanzamiento de GParted. El LiveCD de
Ubuntu incluye esta aplicación entre sus utilidades. También se encuentra 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

Curso LPI101 www.carreralinux.com.ar Pagina 20 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

espacio vacío despué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 una limitación técnica. En esta tabla se
muestran las capacidades de GParted, de acuerdo con cada sistema de archivos.
Si tu deseas probar esta aplicación, la puedes descargar directamente de la pagina oficial del proyecto
http://gparted.sourceforge.net

Parted Magic
Parte Magic es un LiveCD que incluye una distribución Linux a medida para poder operar directamente con
ella sin necesidad de ser instalada en el disco duro. No estamos hablando solo de un particionador de
discos mas. En este LiveCD podemos encontrar varias herramientas entre ellas un editor de particiones
llamado VisParted basado en el genuino Gparted con la que podremos crear, redimensionar y borrar
nuestras particiones del 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 deseas probar esta aplicación, la
puedes descargar directamente de la pagina oficial del proyecto
http://partedmagic.com/

Formatear y particionar discos duros desde BASH


Formatear y particionar dispositivos de almacenamiento de datos como discos duros y memorias 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 de implementar esta
herramienta es la siguiente:
[BASH] # dd if=/dev/zero of=/dev/sda

El comando dd (duplicate disk) es un comando bastante útil para transferir datos desde
dd
un dispositivo o archivo hacia otro dispositivo o archivo
if=/dev/z if significa input file, es decir, lo que quieres copiar En el ejemplo de arriba llenaremos
ero de ceros el disco duro
of=/dev/s of significa output file, o sea, el dispositivo o archivo destino donde se van a copiar los
da datos.En el ejemplo de arriba nos referimos al disco duro
El proceso puede variar dependiendo del tamaño de almacenamiento del disco duro o del 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

Curso LPI101 www.carreralinux.com.ar Pagina 21 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

esta herramienta es la siguiente:


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

sda,b,c Hace referencia al numero de disco duro al que se le aplicara esta herramienta
-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 las particiones anidadas en el disco duro y con
este ultimo estamos lanzando la aplicacion como 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 esta aplicacion.:
Orden Acció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 cambios
s 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)

La forma de agregar una particion al disco duro sera tecleando la letra 'n' lo cual nos desplegara 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 las cuales 1 puede ser
extendida. Las particiones extendidas pueden ser divididas en particiones logicas y estas pueden
tener un maximo de 64 particiones para discos ATA/SATA y 16 particiones para discos SCSI*
El siguiente paso sera especificar el tamaño y numero de la particion a la cual haremos el cambio. En el
siguiente ejemplo crearemos una particion que ocupara todo el tamaño del disco duro.

Curso LPI101 www.carreralinux.com.ar Pagina 22 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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, Para ello podemos
hacer uso de las unidades KiloBytes,Megabytes o GigaBytes pero de manera abreviada (K,M,G) Al terminar
de aplicar lo cambios solo debera ejecutar la orden '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 los discos.

Dando formato a un disco duro con mkfs


Por ultimo solo restaria asignarle un formato a las particiones que creamos. Para ello haremos uso de la
herramienta mkfs, la cual debe ser aplicada segun la siguiente sintaxis
[BASH]# mkfs.[ext2|ext3|ext4|vfat|ntfs] /dev/sd[a,b,c][1,2,3]

Niveles de Ejecucion en Linux

El Proceso de arranque
El proceso de arranque de un sistema operativo Linux se inicializa de la siguiente manera: Cuando usted
enciende su servidor o su computadora personal, esta hace que el BIOS de su equipo inicie las operaciones
relacionadas con el arranque. El BIOS (Basic Input Output System) es un pequeño programa escrito en
lenguaje ensamblador cuya funció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 llamado POST
(Power On Self Test) el cual es un proceso de diagnostico y verificación de los componentes de entrada y
salida de un servidor o computadora y se encarga de configurar y diagnosticar el estado del hardware, una
vez verificado el hardware se inicia 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 un menú 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 es usado tipicamente
para hacer los arreglos necesarios antes de que el sistema de ficheros raíz pueda ser montado 3.Pasarle
los argumentos runlevel e init al kernel 4.Comenzar la ejecución del kernel
Al terminar de ejecutar todas las tareas anteriores el GRUB le cede el control total del arranque al kernel y
este a su vez se encarga de realizar la llamada a la función starup la cual tiene como función detectar el tipo
de CPU con el que el equipo cuenta así como de lo 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 de este momento se ejecuta el proceso INIT.

Curso LPI101 www.carreralinux.com.ar Pagina 23 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

El Proceso INIT
INIT es el primer proceso en ejecutarse despues de la carga del kernel de linux e implementa 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 como deben inicializarse
los diferentes servicios, programas o registros que sean necesarios para que el sistema funcione como el
administrador lo requiere. Explicaremos brevemente como es que trabajan estos modelos

SystemV
Es un modelo usado para controlar el inicio y apagado del sistema y fue originalmente desarrollado por la
compañía estadounidense de telecomunicaciones AT&T. SystemV fue una de las versiones del sistema
operativo Unix que se encargaba de controlar el arranque de los programas en el instante de inicio del
equipo. Este modelo es considerado por muchos como facil, potente y flexible en comparacion con el
sistema de 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 Vi 2.SVR2.-Incluye
mejoras con respecto al nucleo el cual esta implementado como memoria 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, el sistema operativo AIX de IBM hace uso de este modelo 4.SVR4.- Fue la versión
más popular de SVR asi como la fuente de varias características comunes del sistema operativo Unix, como
el script /etc/init.d
Niveles de Ejecucion
Los niveles de ejecucion en SystemV describen ciertos estados del equipo los cuales se caracterizan por
ejecutar ciertos procesos. En general existen 8 niveles de ejecucion los cuales van del 0 al 6 y S o s, que
son alias del mismo nivel de ejecucion, de estos ochos niveles, 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 a los niveles de
ejecucion un poco diferente. El denominador comun de todas las distribuciones linux es el fichero
/etc/inittab

el cual define lo que hace cada nivel de ejecucion. A continuacion un ejemplo de cuantos niveles de
ejecucion tienen cada una de las distribuciones mas importantes de linux, asi como del sistema operativo
solaris y AIX.
En la mayoria de los sistemas operativos linux los usuarios pueden saber bajo que nivel de 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 de los niveles de

Curso LPI101 www.carreralinux.com.ar Pagina 24 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

ejecucion en los que trabaja init.d, la funcion de estos ficheros se explicara 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

Algunos de los sistemas operativos que se basan en este modelo son los basados en BSD 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 los servicios del
servidor. La ubicación de este fichero esta localizada en: Algunos de los servicios 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 2008 mysqld
.
.
.
-rwxr-xr-- 1 root root 6154 ago 6 05:05 named
-rwxr-xr-x 1 root root 1745 sep 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 ejecucion del sistema
operativo. Estos directorios a su vez contienen un conjunto de enlaces simbolicos a los scripts del

Curso LPI101 www.carreralinux.com.ar Pagina 25 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

directorio /etc/rc.d/init.d La funcion que desempeñan estos directorios 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 que lo tenemos configurado para que trabaje en los niveles de ejecucion 3 y 5 , por ende
deberiamos 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
1.El orden en el que es arrancado el servicio.- Este parametro indica el orden en el que los servicios deben
ser dados de alta o de baja 2.El nombre del servicio Un ejemplo de esto 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 nivel de 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 de inicializacion del
sistema, tambien distingue los multiples niveles de ejecucion bajo la cual 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. De acuerdo a lo mostrado en la siguiente imagen describiremos la funcion
que desempeña cada linea. Para ello usamos como ejemplo el fichero inittab del sistema operativo Centos
version 5.2
1.- Este recuadro nos indica los diferentes niveles de ejecucion bajo los cuales trabaja CentOS 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 de arranque del sistema 4.-Aqui se especifican los scripts de
arranque que el sistema utilizara para cada nivel de ejecucion o tambien llamados runlevels 5.-Esta seccion
controla el reseteo del sistema. Se puede comentar esta linea para que no pueda ser reseteado el sistema
6.-Estas dos lineas estan relacionadas con las acciones que deben de seguirse en caso de una falla de
voltaje y la segunda indica que debe hacerse cuando el 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 fichero es 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

Curso LPI101 www.carreralinux.com.ar Pagina 26 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

• 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 ejecutado por el proceso init.
La funcion que tiene este script es agregar comandos que nos haga facil de realizar tareas necesarias como
arrancar servicios especiales o inicializar dispositivos sin tener que escribir scripts complejos de
inicializacion en el directorio /etc/rc.d/init.d ni creando enlaces simbolicos.

Niveles de Ejecucion
Los niveles de ejecucion o tambien llamados runlevels hacen referencia a los sistemas operativos Linux que
implementan el estilo de sistema de arranque de iniciacion tipo UNIX System V del cual ya hemos hablando
extensamente. A lo largo de este tema mencionamos 8 niveles de ejecucion bajo los cuales trabajan
algunos sistemas operativos linux, en especial los de la Familia Red Hat. A continuacion mencionaremos las
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 este lo hace es a
travez del comando halt. Al ejecutarse este comando se apagan todos los servicios 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 el administrador del sistema (root),
por lo que ningun usuario podra hacer eso de este nivel de ejecucion En este nivel no se activan los
servicios de Red, y tampoco se inician los procesos (daemons) de inicio por lo que permite reparar
problemas o hacer pruebas al sistema.

Nivel 2 -Multiusuario sin Red


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

Nivel 3 -Multiusuario con Red


Este sistema esta caracterizado por la capacidad de permitir a varios usuarios entrar al sistema, 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 asignada ninguna funcion, pero
puede ser personalizado por el administrador para que cumpla con alguna funcion en especial

Curso LPI101 www.carreralinux.com.ar Pagina 27 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Nivel 5. -Multiusuario Grafico


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

Nivel 6. -Reinicio del Sistema

Comando chkconfig
Este comando es una herramienta util para levantar o desactivar servicios los cuales son aplicados durante
el arranque del equipo asi como tambien conocer el estado de los servicios que se estan ejecutando.
• Para conocer el estado de los procesos que estan corriendo en su sistema puede ejecutar el
siguiente comando
[root@localhost ~]#chkconfig --list

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


[root@localhost ~]#chkconfig –-list httpd
httpd 0:desactivado 1:desactivado 2:desactivado 3:desactivado
4:desactivado 5: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 teclee esto
[root@localhost ~]#chkconfig –-level 35 httpd on

De esta manera estamos especificando el sistema que siempre que este inicie levante el servidor web
apache en los niveles de ejecucion 3 y 5
• Para detener algun proceso o servicio durante el arranque del sistema solo teclee esto
[root@localhost ~]#chkconfig –-level 35 httpd off

De esta manera estamos especificando el sistema que siempre que este inicie tenga detenido 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 del siguiente comando el
cual hace uso del fichero init.d del cual hemos hablado anteriormente. 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 unico que falta es
levantar el servicio, para ello solo bastara teclear lo siguiente:

Curso LPI101 www.carreralinux.com.ar Pagina 28 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

[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 stop por restart
[root@localhost ~]#/etc/init.d/httpd restart

Otra manera de arrancar, detener o reiniciar servicios sin necesidad de teclear toda la ruta 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

Manejo de Paquetes

Introduccion a la gestion e instalacion de software


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

Yellow dog Updater Modified (YUM) es una herramienta de software libre de gestión de
paquetes para sistemas Linux basados en RPM, fue desarrollada principalmente para
yum
actualizar y controlar los sistemas Red Hat, Fedora, CentOS, y otras distribuciones de
GNU/Linux basadas en RPM, incluyendo el mismo Yellow Dog.
Red Hat Package Manager (RPM), es una herramienta de administración de paquetes. Es
capaz de instalar, actualizar, desinstalar, verificar y solicitar programas. Originalmente
rpm desarrollado por Red Hat para Red Hat Linux, en la actualidad muchas distribuciones
GNU/Linux lo usan, dentro de las cuales las más destacadas son Fedora Linux, Mandriva
Linux, SuSE Linux. También se ha portado a otros sistemas operativos.
Advanced Packaging Tool (APT) , es un sistema de gestión de paquetes creado por el
apt proyecto Debian. APT simplifica en gran medida la instalación y eliminación de
programas en los sistemas GNU/Linux.
aptitude aptitude es una interfaz para APT. Muestra una lista de paquetes de software y permite 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 flexibles, que facilitan al
usuario entender las complejas relaciones de dependencia que puedan existir entre los
paquetes. En un principio, se diseñó para distribuciones GNU/Linux Debian, pero hoy día

Curso LPI101 www.carreralinux.com.ar Pagina 29 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

se utiliza también en distribuciones basadas en paquetes RPM, como Mandriva.


El programa dpkg es la base del sistema de gestión de paquetes de Debian GNU/Linux.
dpkg
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 de paquetes orientada
para sistemas operativos Linux, la cual es capaz de instalar, actualizar, desinstalar y verificar paquetes. Los
paquetes RPM fueron originalmente desarrollados por la empresa Red Hat con la intencion de
implementarlo en el sistema operativo Red Hat Linux. Actualmente los paquetes RPM son utilizados por
distribuciones linux como Fedora, Centos, Suse y White Box.
Comando Comentario
rpm -ivh paquete1.rpm Te permite instalar paquetes .rpm
rpm -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ón RPM.
Generalmente, se comienza por listar el paquete para conocer el nombre del mismo antes de desinstalarlo
asi como tambien para asegurarse de que el paquete está instalado en nuestro sistema. rpm -q
nombreDelPaquete Nos permite conocer si un paquete se encuentra instalado o no en el equipo rpm -qa |
grep nombreDelPaquete Realiza una busqueda mas profunda sobre los paquetes que tenemos instalados o
no en el equipo.

Herramienta YUM
Comando Comentario
yum install paquete1
Instala paquetes con sus dependencias
paquete2 ...paqueteN
yum update paquete1 paquete2
Te permite actualizar paquetes junto con sus dependencias
...paqueteN
yum remove paquete1
Te permite eliminar paquetes junto con sus dependencias
paquete2 .. paqueteN
yum update Actualiza e instala todos los paquetes del sistema operativo
Actualiza e instala los paquetes del sistema operativo, solo excluye
yum update --exclude=ekiga
el definido en la opcion --exclude
Nos ofrece un listado de resultados de los paquetes producto de la
yum search paquete1 búsqueda por coincidencia de cadena de caracteres en la
descripción, resumen y nombre del paquete
yum info paquete1 Nos ofrece informacion detallada sobre algun paquete
yum repolist enabled Nos permite conocer los repositorios que se encuentran habilitados

Curso LPI101 www.carreralinux.com.ar Pagina 30 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

yum localinstall paquete1.rpm Te permite instalar paquetes RPM


yum localupdate paquete1.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 instalados
yum groupinfo
Obtiene información de los grupos y de sus paquetes constitutivos
"nombreDelGrupo"
yum groupinstall
Instala un grupo de aplicaciones
"nombreDelGrupo"
yum groupupdate
Actualiza un grupo de aplicaciones
"nombreDelGrupo"
yum groupremove "KDE (K
Elimina un grupo de aplicaciones.
Desktop Environment)"

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 se encuentran declarados
en
/etc/yum.repos.d/

Para usos más avanzados agregaremos nuevas secciones y en caso de no encontrar lo que busca consulte
man yum.conf.
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800
installonly_limit=2
tsflasg=repackage

# PUT YOUR REPOS HERE OR IN separate files named file.repo


# in /etc/yum.repos.d

La primera cosa que podemos notar de los archivos de configuración es su estructura de bloques de
secciones con sección. Veremos que esta estructura se repite al momento de configurar los repositorios. En

Curso LPI101 www.carreralinux.com.ar Pagina 31 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

este caso yum.conf en la sección main define el comportamiento general de yum y establece las directivas
base, por ejemplo, de dónde se 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 y paquetes después de
una instalación exitosa. Valor por omisión es ’1’ (mantener los archivos)
debuglevel
Nivel de mensajes de depuración en la salida. El rango práctico es de 0-10. El valor por omisión es ‘2’.
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 de arquitectura que haya
instalado, es decir, con esta opción habilitada yum no instalará un paquete 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 de procesamiento de
obsolescencias yum. Es útil cuando se realiza actualizaciones de nivel de distribución (upgrade). Vea
también la documentación del comando yum upgrade para 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 firma GPG en los paquetes.
Cuando está habilitado en la sección main, establece el comportamiento por omisión para todos los
repositorios. Esta opción también determina si una instalación de un archivo local RPM será verificado por
su firma GPG o no. El valor 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 la sección PLUGINS del manual yum(8) para más
información acerca de la instalación de extensiones yum.
metadata_expire
Duración en segundos después del cual los metadatos caducarán. Así entonces si los metadatos actuales
descargados son menos segundos de antiguo, entonces yum no actualizará 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ón
en segundos a días, horas o minutos agregando d, h o m respectivamente al valor especificado. El valor por
omisión es 1.5 hours, para complementar yum-updatesd ejecutándose una vez por hora. También es
posible usar la palabra "never" implicando que los metadatos nunca expirarán.

Curso LPI101 www.carreralinux.com.ar Pagina 32 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

installonly_limit
Cantidad de paquetes listados en installonlypkgs que se deben mantener instalados al mismo tiempo. Poner
este valor a 0 deshabilita la funcionalidad. Por omisión el valor es ’3’.
tsflasg
Lista separado por comas o espacios de banderas de transacción que serán pasadas a rpm. Estas incluyen
’noscripts’, ’notriggers’, ’nodocs’, ’test’, y ’repackage’. Puede poner todas o cualquiera de ellas. Sin embargo,
si no sabe qué hacen éstas banderas en el 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 puede
incluir la configuración de los repositorios pero esa forma de configuracióne está en desuso y se prefiere
utilizar archivos individuales en /etc/yum.repos.d/ que comentaremos más adelante.

Extensiones de YUM
downloadonly
Este paquete nos permite descargar los paquetes RPM de alguna aplicación sin que estos 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 respuestas de cada uno
antes de comenzar una descarga. La forma de instalar esta herramienta sera tecleando 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ólo funciona si el software
deseado no está instalado. Veamos como falla y cómo podemos resolver este problema con
yumdownloader.
[BASH]# yum --downloadonly install openssh-server
Loading "downloadonly" plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files

Curso LPI101 www.carreralinux.com.ar Pagina 33 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Parsing package install arguments


Nothing to do

Pues claro, no hay nada que instalar, ya está instalado. Intentemos ahora con yumdownloader.
[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 Comentario
package-cleanup Lista paquetes huérfanos o aquellos paquetes que no son provistos por
--orphans ninguno de los repositorios configurados
package-cleanup
Lista los paquetes con duplicados en la base de datos RPM
--dupes
package-cleanup
Lista los problemas de dependencias en la base de datos RPM
--problems
yum-complete-transaction yum-complete-transaction es un program que busca transacciones yum
incompletas o abortadas en el sistema e intenta completarlas. Busca en los archivos transaction-all* y
transaction-done* que normalmente se encuentran en /var/lib/yum si una transacción ha sido abortada en el
medio de su ejecución. Si se encuentra más de una transacción no terminada se intentará completar la más
reciente primero. Puede ejecutar este programa más de una vez para limpiar todas las transacciones sin
terminar. Ejemplo..
[BASH]# yum-complete-transaction

Herramienta DPKG
Comando Comentario
dpkg -i
Te permite instalar paquetes deb.
paquete1.deb
dpkg -i *.deb Te permite instalar varios paquetes deb.
dpkg -r
Borra paquete instalado en el sistemas.
paquete1.deb
dpkg --purge
Borra paquete instalado sin dejar rastro.
paquete1.deb
dpkg -l
Hace búsquedas en SO de los paquetes ya instalados.
paquete1.deb
dpkg --info
Muestra la información del paquete.
paquete1.deb
dpkg --status Muestra el estado del paquete.

Curso LPI101 www.carreralinux.com.ar Pagina 34 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

paquete1.deb
dpkg --search
Muestra la información de donde se instalo el paquete.
paquete1.deb
dpkg –help Obtienes la ayuda del comando dpkg.
Ayuda arreglar a terminar de configurar paquetes rotos o que no se terminaron
dpkg --configure
de instalar, se ocupa solo en emergencias cuando las herramientas avanzadas no
-a
pueden solucionar el problema.

Herramienta APTITUDE
Comando Comentario
aptitude install
Instala paquete y con las dependencias que tenga.
paquete1
aptitude remove
Borra paquete y sus dependencias pero no las configuraciones.
paquete1
aptitude purge
Borra paquete, sus dependencias y archivos de configuración.
paquete1
aptitude hold paquete1 Bloquea paquete, para que no sean actualizados o eliminados.
aptitude unhold
Desbloquea paquete.
paquete1
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 search
Busca paquetes por nombre o expresión.
paquete1
aptitude show
Muestra información detallada de un paquete.
paquete1
aptitude clean Elimina los fichero de paquetes descargados.
Elimina los ficheros de paquetes descargados, como también limpia las
aptitude autoclean
llaves de los repositorios.

Herramienta APT
Comando 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 --reinstall Reinstala paquetes dañados.

Curso LPI101 www.carreralinux.com.ar Pagina 35 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

paquete1
Instala/borra paquetes y dependencias que esten o sin cumplir
apt-get -f install
paquetes.
apt-get remove paquete1 Borra paquete y sus dependencias.
apt-get remove –purge
Borra paquete, sus dependencias y archivos de configuración.
paquete1
apt-get dist-upgrade Actualiza distribución a la mas reciente.
apt-get clean Elimina paquetes descargados.
Elimina paquetes descargados, también borra cabeceras de
apt-get autoclean
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 dumpavail Muestra información sobre los paquetes que estan disponibles.
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 sistemas operativos Unix y derivados
como Linux y BSD, su principal funcion es la de servir como puente entre los usuarios y el hardare fisico de
un equipo; Por puente me refiero a que el shell se encargara de interpretar y traducir los comandos en un
lenguaje que pueda ser entendido por el hardware del equipo. El término shell también hace referencia a un
programa particular, tal como el Bourne shell o BASH. El BASH fue el shell usado en las primeras versiones
de los sistemas operativos Unix , posteriormente paso 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é como funciona 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 encuentra conformada por los
componentes físicos de tu equipo. Envolviendo a ésta, viene la capa del kernel que es el corazón de Linux,
su núcleo, y es quien hace que el hardware funcione, efectuando su manejo y control. Los programas y
comandos que envuelven el kernel, lo utilizan para realizar las tareas especificas para las cuales fueron
desarrolladas. Encerrando todo eso viene el Shell que tiene este nombre porque en ingles, Shell significa
concha, envoltura, o sea que, queda entre los usuarios y el sistema operativo, de forma que todo lo que
interacciona con el sistema operativo, tiene que pasar por su filtro.

Curso LPI101 www.carreralinux.com.ar Pagina 36 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Algunas variantes del SHELL

Bourne Shell (sh)


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

Korn Shell (ksh)


Desarrollado por David Korn, también de la Bell Labs, es un superconjunto del sh, o sea, posee todas las
facilidades del sh y a ellas se agregaron muchas otras. La compatibilidade total con el sh esta atrayendo a
muchos usuarios y programadores de Shell 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 gran diversidad de comandos, que incorpora
inclusive diversas instrucciones características del C Shell.

CShell (csh)
Desarrollado por Bill Joy de la Berkley University es el Shell mas utilizado en ambientes *BSD e Xenix. La
estrutura de sus comandos es bastante similar al del lenguage C. Su gran pecado fue ignorar la
compatibilidad con el sh, partiendo por un camino propio. Además de estos Shells existen otros, pero
contigo voy a hablar solamente sobre los tres primeros, tratandolos genéricamente por Shell y señalando las
peculiaridades 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 siguiente comando en una
terminal
# echo $SHELL
/bin/bash

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

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

Curso LPI101 www.carreralinux.com.ar Pagina 37 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

[BASH]# cd /

Este comando le indica al BASH que queremos trabajar en el directorio /, tambien conocido 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 donde queremos 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 la barra / 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 working directory) que primero entre al directorio / , desde ahi luego entrara al
directorio usr posteriormente al directorio local y recien desde ahi entrara a bin. Las rutas absolutas siempre
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 de trabajo a
/usr/local/bin de la siguiente forma:
[BASH]# cd local/bin
[BASH]# pwd
/usr/local/bin

Usando el . . (punto a punto)


El uso del . . sirve unicamente para regresar un nivel desde el directorio de trabajo en el cual estamos
trabajando. Ejemplo:
[BASH]# cd /usr/local/bin
[BASH]# pwd
/usr/local/bin

Curso LPI101 www.carreralinux.com.ar Pagina 38 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

[BASH]# cd ../../
[BASH]# pwd
/usr

En la primera seccion del ejemplo indicamos a traves del comando cd (current working directory) que
primero entre al directorio / , desde ahi luego entrara al directorio usr posteriormente al directorio local y
recien desde ahi entrara a bin. En la segunda seccion del ejemplo indicamos mediante el uso del (../) punto
punto que regrese un nivel, pero inmediatamente indicamos nuevamente que retroceda otro nivel mas (../)
Por cada retorno 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 directorio actual de trabajo.

Usando los comandos de Linux

El comando ls
Vamos a darle una pequeña mirada al comando ls, el cual, ya conozca tal vez, pero por si 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 del directorio incluyendo los
ficheros ocultos.Los ficheros ocultos son indentidicados por llevar 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 con agregar 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 root root 4096 jun 9 11:28 cache
drwxrwxrwt 2 root root 4096 dic 3 2008 crash
drwxr-xr-x 2 root root 4096 dic 9 2008 games

Curso LPI101 www.carreralinux.com.ar Pagina 39 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

drwxr-xr-x 41 root root 4096 jun 9 11:28 lib


drwxrwxr-t 6 root uucp 4096 jun 17 11:40 lock
drwxr-xr-x 13 root root 4096 jun 16 15:38 log
lrwxrwxrwx 1 root root 10 jun 9 04:46 mail -> spool/mail
drwxr-xr-x 2 root root 4096 dic 3 2008 opt
drwxr-xr-x 25 root root 4096 jun 17 11:40 run
drwxr-xr-x 12 root 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 permisos para cada elemento
listado. La columna siguiente lista el numero de links para cada objeto del sistema de ficheros. La tercer y
cuarta columna listan el propietario del elemento, y el grupo al cual pertenece, respectivamente. La quinta
muestra el tamaño de los objetos, mientras que la sexta lista cuando fue realizada la ultima modificacion del
objeto . La ultima columna es el nombre del objeto. Si el archivo es un enlace simbolico, entonces usted ver ́
una flecha --> y la ruta hacia la cual el link simbolico apunta. En el capitulo 7 veremos mas a fondo este
comando

Comodines
Los comodines son caracteres que se utilizan en lugar de otros caracteres que el sistema rellena. Los dos
comodines más frecuentes son:
• El asterisco *
• La interrogación ?
Aunque en ocasiones se confundan, su significado es diferente y producirán resultados totalmente 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 directorio actual que
comiencen con la letra e, y que tengan cualquier número de caracteres. Hay que prestar atención a que el
comando encuentra la “e” sola y la “e” seguida de cualquier número de caracteres a continuación. En
contraste, la interrogación (?) es un contenedor para un y sólo un carácter. Utilizando las mismas
posibilidades que antes, el comando:
[BASH]# ls e?
ed

Encontrará entradas de archivos y directorios dentro del directorio actual que comiencen por la letra “s” y
que únicamente tengan una letra más. Si quisiésemos encontrar las entradas 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 significa uno. Estos dos

Curso LPI101 www.carreralinux.com.ar Pagina 40 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

comodines no son excluyentes, de modo que se pueden combinar según las necesidades. Por ejemplo,
para encontrar sólo los archivos que tengan una extensión de tres letras dentro del directorio actual,
utilizaremos:
[BASH]# ls *.???

Para complicar un poco más las cosas también podemos utilizar los corchetes ( ) para especificar posibles
valores. Todos los valores posibles deben estar dentro de los corchetes, y el shell los tratará
individualmente: En el siguiente ejemplo encontrará todas las entradas que comiencen por “d” o por “e” y
que contengan un número ilimitado 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óricamente ilimitado. Sin
embargo, si lo que queremos es encontrar todas las entradas que comiencen por una letra minúscula pero
no por un número u otro carácter, podemos utilizar abcdefghijklmnopqrstuvwxyz. Debido a que esto es un
rango, una forma mucho 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, podemos expresar subconjuntos
de ellos. Por ejemplo, si queremos buscar entradas que comiencen 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
en mayú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 este comando 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 el anteultimo elemento debe
existir previamente. De esta manera, si quiere crear los directorios → 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 or directory
[BASH]# mkdir principal
[BASH]# mkdir principal/secundario
[BASH]# mkdir principal/secundario/ultimo

Sin embargo, mkdir tiene la opcion -p la cual puede crear una rama de directorios en un solo paso
[BASH]# mkdir -p principal/secundario/ultimo

Curso LPI101 www.carreralinux.com.ar Pagina 41 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Para obtener mas informacion sobre el comando mkdir escriba


[BASH]# man mkdir

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 hacerlo mediante el comando
echo , que toma sus argumentos y los imprime en la salida est ́ndar (standard output). Probemos como
funciona el comando echo
[BASH]# echo "HELLO LINUX"

Ejecutemos ahora el mismo comando pero ahora redireccionando su salida al fichero vacio 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 llamado archivo1.

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 fichero nombrado “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 de permitirnos renombrar
archivos, nos permite mover uno o mas archivos hacia otra ubicacion. 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 comunmente implementadas en los

Curso LPI101 www.carreralinux.com.ar Pagina 42 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

procesadores de textos disponibles para Linux Éstas incluyen diversas utilidades de filtrado, que se usan
para buscar y cambiar archivos, así como las 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 como mencionamos es un comando
muy usado para listar los contenidos de ficheros de configuracion. 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 para ordenar, mezclar, y
comparar líneas de ficheros. Este comando sigue la siguiente sintaxis:
[BASH]# sort opciones nombreDelFichero

Opciones Descripcion
-b Ignora espacios en blanco
-c Revisa si el fichero esta ordenado
-d Considera solo los caracteres alfanumericos y ordena por directorio de telefono
Este parámetro nos sirve para indicar que las mayúsculas y las minúsculas se van a
-f
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
-n Este parámetro nos sirve para ordenar los campos numéricos por su valor numé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.
-u Nos permite suprimir todas las líneas repetidas después de realizar la ordenación.
De este modo especificaremos por qué columna o campo vamos a realizar la
-k numero
ordenación en las versiones más recientes de Linux.
Normalmente, se usa como delimitador de campos el espacio en blanco. Podemos
- - field utilizar el parámetro --field-separator para indicar que vamos a usar otro delimitador
-separator de campo cualquiera. Ej: --field-separator=, La opció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

Curso LPI101 www.carreralinux.com.ar Pagina 43 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

- - - - - - - - - - - - - - - - - - - -
3
centos
7
Red Hat
debian
13
Novell Inc
edubuntu
27
Canonical
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 de orden 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 ordenar listas de nombres
por campos. Los campos se pueden separar por espacios o tabuladores y 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 fichero llamado lista con el siguiente contenido
[BASH]# vi lista
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - -
iliana castillo
zaira munive
alethya zamano

Curso LPI101 www.carreralinux.com.ar Pagina 44 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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
zaira munive
mariana rivera
mayra rodriguez
alethya zamano

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

Segmentando un texto con Cut


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

Opciones Descripcion
-b Escribe en la salida el rango de bytes especificos
-c Escribe en la salida solo los caracteres especificados
-f Escribe en la salida solo los campos especificados, delimitados por tabuladores
- - 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 los primeros 5 caracteres
de cada línea del fichero que dimos de alta al final de la seccion 6.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íneas correspondientes del fichero
específico se escriben en la salida estándar con cada línea separada por un carácter tabulador . La
siguiente tabla muestra la gama de opciones que pueden ser integradas al comando cut:

Curso LPI101 www.carreralinux.com.ar Pagina 45 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Opciones Descripcion
-s Pega líneas desde un fichero a la vez
-d delimit- Usa los caracteres especificados en delimit-list consecutivamente en vez del carácter
list tab cuando separa ficheros mezclados.
Genere el fichero llamado apodos con el siguiente contenido
[BASH]# vi apodos
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - -
hackhat
gaymarc
bigbuitre
javarambo
rufodog

Ahora veremos un ejemplo del comando paste aplicandolo al fichero que acabamos de generar 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
zaira munive gaymarc
alethya zamano bigbuitre
pilar diaz javarambo
mayra rodriguez rufodog
mariana rivera

Formateando parrafos
El comando fmt formatea cada párrafo en un fichero y la envía a la salida estandar. Este comando es
utilizado para especificar la anchura de las líneas, tambien puede juntar o separa líneas en un esfuerzo para
que estas tengan la misma longitud. Otra de las funciones de fmt es la de intentar separar las líneas al final
de cada sentencia. Cuando esto 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 es de 75
caracteres. El ancho por defecto puede ser modificado usando la opción adecuada en el comando fmt. La
siguiente tabla muestra la gama de opciones que pueden ser integradas al comando fmt.

Opciones Descripcion
Mantiene igual los espacios de principio de párrafo y alinea el párrafo con
-c
margen izquierda en la segunda línea
Trabaja como -c excepto que los espacios de comienzo de la segunda línea sean
-t igual que la primera, considerando la segunda línea como un párrafo de una
línea
-s Especifica que las líneas van a ser divididas y no juntadas

Curso LPI101 www.carreralinux.com.ar Pagina 46 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Especifica que espacio uniforme se va a utilizar; esto reduce la separación entre


-u
todas las palabras a un espacio y a dos espacios entre las sentencias
-NUMERO o
Establece la largura de la línea al NUMERO indicado
-wNumero
-p PREFIX Especifica que las líneas que empiecen por PREFIX serán modificadas
Genere el fichero llamado apodos con el siguiente contenido
[BASH]# vi fedora
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - -
Fedora es un sistema operativo basado en Linux que incluye lo último en software
libre y de código abierto.
Fedora es siempre gratis para que cualquiera lo use, modifique o distribuya.
Lo construye gente alrededor del mundo que trabajan juntos como una comunidad:
El Proyecto Fedora es abierto 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 luego borrarlos o
reemplazarlos por otros. Un ejemplo sería un documento que utiliza mayúsculas y minúsculas, pero se
prefiere que todo el documento esté en minúsculas, para ello, el comando tr se encarga de llevar a cabo
esta area Este comando sigue la siguiente sintaxis:
[BASH]# tr opciones

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

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
Jueves
Viernes
Sabado
Domingo

Curso LPI101 www.carreralinux.com.ar Pagina 47 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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
Sbd
Dmng

Ver el inicio de un fichero


El comando head nos permite ver el comienzo de un fichero. Por defecto nos muestra las 10 primeras
líneas. La siguiente tabla muestra la gama de opciones que pueden ser integradas 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

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 de opciones que pueden ser integradas al comando
tail.

Opciones Descripcion
-NUMERO Especifica el número de líneas a ser mostrado.
Especifica el número de líneas desde el comienzo a partir de donde empieza a
+NUMERO
mostrar.
Indica a las instrucción que se mantenga intentando abrir un fichero cuando este esté
- - retry
inaccesible.
-c NUMERO Especifica el número de bytes a ser mostrados.

Curso LPI101 www.carreralinux.com.ar Pagina 48 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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.
-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]# tail opciones nombreDelFichero

Uniendo multiples ficheros


El comando join en realidad busca en dos ficheros entradas comunes. Las entradas encontradas en los dos
ficheros son mostradas en la salida estandar donde pueden ser redireccionadas a un fichero. Puedes
combinar ficheros usando campos. El comando join usa campos de unión para combinar líneas de múltiples
ficheros. Antes de usar el comando join, el fichero debe de comenzar con los campos de unión. Esto se
consigue muchas veces con el comando sort basado en los campos que van a ser juntados. Así, si tu estás
utilizando dos ficheros que contienen el nombre y el primer apellido y quieres juntar los ficheros utilizando el
apellido, entonces los dos ficheros deben ser ordenados previamente utilizando el campo apellido. La
siguiente tabla muestra la gama de opciones 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
-t char Especifica el carácter separador del fichero de entrada y de salida.
Se imprime una línea por cada línea no “pareada” encontrada en el fichero
-v FILE#
FILE#
- - 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 mas pequeños. Esta utilidad
crea ficheros de una cierta longitud, cuyo valor por defecto es de 1000 líneas, y los nombra de forma
secuencial. Los nombres de los archivos están formados por un prefijo, de valor “x” por defecto, seguido por
una combinación de letras que sigue el patrón de “aa”, “ab”, “ac”, etc. Si se deben crear más de 676

Curso LPI101 www.carreralinux.com.ar Pagina 49 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

ficheros, la sintaxis será “zaa”, “zab”, etc. Cuando no se especifica ningún fichero de entrada para 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 comando split.

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
cuarto
quinto
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”, cada uno de los cuales
contiene cinco líneas.

Eliminando lineas repetidas en un fichero


El comando uniq es una herramienta que nos ayuda a eliminar los datos repetidos en un fichero Este
comando sigue la siguiente sintaxis:
[BASH]# uniq opciones nombreDelFichero

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

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

Curso LPI101 www.carreralinux.com.ar Pagina 50 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

-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 salida estándar, paginándolos y
opcionalmente escribiéndolos en un formato de multicolumna. Adicionalmente, también puede unir ficheros,
imprimiéndolos en paralelo, uno por columna . 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 en blanco, una línea con
la fecha, el nombre del archivo y el contador de página, y dos lí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
Produce tantas columnas como el número COLUMNAS y equilibra el número
-COLUMNAS
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
Utiliza saltos de página en lugar de caracteres de nueva línea para separar
-f
páginas.
Utiliza el texto especificado en TEXTO en lugar del nombre del fichero dentro
-h TEXTO
del encabezado
-l LINEAS Establece el número de líneas por página
-m Imprime todos los ficheros en paralelo, uno por columna.
Empieza contando por NÚMERO en la primera línea de la primera página
-N NUMERO
impresa.
Establece el ancho de página a un número de caracteres igual a CARACTERES
-w
(el valor por defecto es 72). Solamente se utiliza para formatos de salida
CARACTERES
multicolumna
-W Establece el ancho de página a un número de caracteres igual a CARACTERES
CARACTERES 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 y saltos de línea
para cada uno de los ficheros indicados. Se muestra una línea de resultados para cada uno de los ficheros,
y si el fichero fue indicado como un argumento, muestra su nombre a continuación. Si se indica más de un
fichero, la utilidad 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 los saltos de línea, luego las palabras y
finalmente los bytes. Por defecto, cada resultado se muestra justificado a la derecha en un campo de siete

Curso LPI101 www.carreralinux.com.ar Pagina 51 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

bytes con un espacio en blanco entre cada uno de los resultados, de manera que los números y los
nombres de los ficheros se alinean correctamente en columnas, algunas de las cuales se muestran en la
siguiente 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 el fichero de entrada en
páginas lógicas y por defecto, el número de línea se inicializa a 1 al principio de cada una de ellas. Se tratan
todos los ficheros de entrada como un único documento 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 estar numerada
de una forma distinta a las otras dos. El texto que preceda el primer separador de sección en el fichero de
entrada se considerará parte del cuerpo, de manera que la utilidad nl tratará un fichero sin delimitadores de
sección como una única sección de cuerpo , 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
No numera las líneas. Es el valor por defecto de los encabezados y los pies de
-n
página.
Incrementa el número de línea en una cantidad igual a NÚMERO. El valorpor
-i NUMERO
defecto es uno.
-p No inicializa los números de línea al principio de cada página lógica.
-s CADENA Añade la cadena de caracteres CADENA después de cada número de línea.
-v NUMERO Establece el NÚMERO inicial de cada página lógica.
Especifica el NÚMERO de espacios que se reservan para los números de línea. El
-w NUMERO
valor por defecto es seis
La sintaxis correcta para el comando nl es la siguiente
[BASH]# nl opciones nombreDelFichero

Curso LPI101 www.carreralinux.com.ar Pagina 52 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Administracion de Archivos

Listando el contenido de un directorio


Anteriormente estuvimos trabajando un poco con el comando ls (list), el cual como explicamos en el capitulo
anterior, es un comando para listar el contenido de un directorio A continuacion indagaremos un poco mas
en el uso de este comando. El comando ls puede aceptar opciones como argumento. Hay un gran número
de opciones para éste comando que permiten un gran control sobre el resultado. En la tabla siguiente se
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 mostrada en 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
Muestra el tipo de fichero, permisos, contador de enlaces permanentes, propietario,
-l
grupo propietario y fecha de la última modificación
-o Muestra la misma información que -l menos la información de grupo que es excluida
-s Muestra el tamaño del fichero en bloques de 1024 Kb
El comando ls utiliza a veces opciones para ordenar la salida, las cuales se muestran en la siguiente tabla.

Opciones Descripcion
Muestra el resultado acorde con la fecha de modificación o la fecha de modificación de
-c
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
Muestra el listado de acuerdo a la fecha de modificación, mostrando primero el más
-t
reciente.
-u Muestra el listado de acuerdo al último acceso, empezando por el más reciente.
La salida producida por el comando ls puede ser también controlada con otra serie de opciones. Estas

Curso LPI101 www.carreralinux.com.ar Pagina 53 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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
-F Muestra el nombre del fichero con una letra para especificar el tipo de fichero
-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
Asume que cada parada de tabulación está a cols columnas de ancho; el valor
-T COLTS predeterminado es 8. ls emplea tabuladores donde es posible en la salida, por eficiencia.
Si cols es cero, no usa tabuladores para nada.
Asume que la pantalla tiene cols columnas de ancho. El valor predeterminado se toma
-W
del controlador de terminal si es posible; si no, se emplea la variable de ambiente
COLTS
COLUMNS si está definida; de otro modo el valor 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 no muestra información
sobre el tipo de contenido de los mismos. El comando file puede ser 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
• executable
• data o directory
Este comando acepta argumentos para especificar que ficheros examina Este comando acepta argumentos
para especificar que ficheros examina. Se pueden usar una serie de opciones 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 de los
[nombreDelFichero] ficheros a examinar.
Muestra el resultado después del chequeo. Esto puede ser útil cuando
-n
trabajamos con una serie de ficheros que van a ser enviados a otro comando.
-v Muestra la versión

Curso LPI101 www.carreralinux.com.ar Pagina 54 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

-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 copiar archivos. Linux
incluye dos comandos para copiar archivos. El comando cp se usa para copiar archivos y directorios y es el
comando estándar para copiar archivos de una localización del sistema a otra. Cuando se quiere copiar
archivos de un formato de archivo a otro, se hará uso el comando dd. El comando cp se utiliza para la copia
estándar de archivos en sistemas Linux. Este comando se usa para crear una copia nueva e independiente
del archivo o directorio original. Se pueden usar muchas opciones con el comando cp para modificar las
copias creadas. Las opciones se resumen en la siguiente tabla

Opciones Descripcion
Especifica que los enlaces y atributos del archivo original deben ser transferidos a la
-a
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.
Especifica que se creen enlaces fuertes (ver más adelante en este capítulo) en lugar de
-l
copias del archivo.
-p Mantiene el propietario, grupo, permisos y timestamp del archivo original.
Copia directorios y sus contenidos de forma recursiva mientras copia cada archivo como
-r
archivo estándar. Esta opción no podrá ser usada con algunos archivos especiales.
-R Copia directorios y sus contenidos de forma recursiva, manteniendo los directorios.
-s Crea enlaces simbólicos (ver más adelante) de los archivos que no sean directorios.
-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 manera correcta 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 de un formato a otro
simultáneamente. El comando dd, por defecto, escribe datos desde la entrada estándar hacia la salida
estándar. Las opciones se utilizan para cambiar estos valores por defecto. Las opciones para el comando dd
se muestran en la siguiente tabla :

Opciones Descripcion

Curso LPI101 www.carreralinux.com.ar Pagina 55 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Especifica la localización del archivo de origen para ser utilizado en lugar de la


if=FILE
entrada estándar. Éste es el archivo de origen.
Especifica la localización del archivo de destino para ser utilizado en lugar de la salida
of=FILE
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=FILE Especifica los bloques a saltar en el archivo de origen antes de empezar a copiar.
seek=FILE Especifica los bloques a saltar en el archivo de destino antes de empezar a escribir.
count=FIL Especifica los bloques a copiar del archivo de origen en lugar de copiar el archivo
E completo.
Este comando tiene diferentes opciones y diferente sintaxis que el comando cp .La sintaxis 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

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 borrando luego el archivo
original. Sin embargo, Linux incluye un comando para mover archivos que automatiza esta tarea. El
comando mv (abreviatura de move) permite mover y renombrar 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 se resumen 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.
Especifica que los archivos no serán movidos al destino si tienen fecha de modificación
-u
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

Curso LPI101 www.carreralinux.com.ar Pagina 56 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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

Opciones Descripcion
-d Utilizada por el superusuario. Elimina directorios sin tener en cuenta si están vacíos.
Ejecuta el comando sin pedir confirmación, incluso si los archivos especificados no
-f
existen.
-i Pide confirmación al usuario para eliminar los archivos.
-r Elimina el contenido del directorio de forma recursiva.
-v Elimina archivos y muestra por pantalla los nombres de los archivos eliminados.
La sintaxis para aplicar de manera correcta el comando es la siguiente:
[BASH]# rm [opciones] nombreDelFichero

Creando, monitorizando y matando procesos

Sobre procesos
Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:
• Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
• Su estado de ejecución en un momento dado, esto es, los valores de los registros de 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 un proceso consta de
uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación.
Cada hilo consta de instrucciones y estado de ejecución. Los procesos son creados y destruidos por el
sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo
hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina
bifurcación o fork. Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria
con el proceso que los ha creado o ser creados en el mismo espacio de memoria. En los sistemas
operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso
solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para
el proceso.

Estados de un proceso
El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria
principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser
ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las

Curso LPI101 www.carreralinux.com.ar Pagina 57 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

instrucciones del mismo. En un entorno de multiprogramación, el procesador intercalará la ejecución de


instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable
de determinar las pautas de intercalado y asignación de recursos a cada proceso.

Diagrama de formacion de un proceso


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

Modelo de dos estados


El modelo de estados más simple es el de dos estados. En este modelo, un proceso puede estar
ejecutándose o no. Cuando se crea un nuevo proceso, se pone en estado de No ejecución. En algún
momento el proceso que se está ejecutando pasará al estado No ejecución y otro proceso se elegirá de la
lista de procesos listos para ejecutar para ponerlo en estado Ejecución. De esta explicación se desprende
que es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el
lugar que ocupa en memoria. Además los procesos que no se están ejecutando deben guardarse 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 por turno rotatorio para
los procesos que no están en ejecución, si los procesos estuvieran siempre listos para ejecutar. En la
realidad, los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o
que se deba esperar algún suceso antes de continuar, como una operación de Entrada/Salida. Es por esto
que se necesita un estado donde los procesos permanezcan esperando la realización de la operación de
Entrada Salida por parte del Sistema Operativo hasta que puedan proseguir. Se divide entonces al estado
No ejecución en dos estados: Listo y Espera. Se agregan además un estado 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 una llamada al sistema operativo.
• Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo. En general
los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal.
• Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque 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 este modelo los estados
Espera y Listo tienen ambos colas de espera. Cuando un nuevo proceso es admitido por el sistema
operativo, se sitúa en la cola de listos. A falta de un esquema de prioridades ésta puede ser una cola FIFO.
Cuando se da un suceso se pasan a la cola de listos los procesos que esperaban por ese suceso. Si existe
un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas de
procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál es el proceso que más

Curso LPI101 www.carreralinux.com.ar Pagina 58 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

conviene ejecutar a continuación. Asimismo, existen varias colas en estado de espera, como mínimo una
por cada periférico. Una de las razones para implementar el estado Espera era poder hacer que los
procesos se puedan mantener esperando algún suceso, por ejemplo una Entrada/Salida. Sin embargo, al
ser mucho más lentas estas operaciones, puede suceder que en nuestro modelo de cinco estados todos los
procesos en memoria estén esperando en el estado Espera y que no haya más memoria disponible para
nuevos procesos. Podría conseguirse más memoria, aunque es probable que esto sólo permita procesos
más grandes y no necesariamente nuevos procesos. Además hay un costo asociado a la memoria y de
cualquier forma es probable que se llegaría al mismo estado con el tiempo. Otra solución es el intercambio.
El intercambio se lleva a cabo moviendo una parte de un proceso o un proceso completo desde la memoria
principal al disco, quedando en el estado Suspendido. Después del intercambio, se puede aceptar un nuevo
proceso o traer a memoria un proceso suspendido anteriormente. El problema que se presenta ahora es
que puede ser que si se decide traer a memoria un proceso que está en el estado Suspendido, el mismo
todavía se encuentre en espera. Sólo convendría traerlo cuando ya está listo para ejecutar, esto implica que
ya aconteció el suceso que estaba esperando. Para tener esta diferenciación entre 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 ser controlado directamente por el
usuario (es un proceso no interactivo). Este tipo de programas se ejecutan de forma continua (infinita), vale
decir, que aunque se intente cerrar 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 origen de
la palabra daemon (demonio), se encuentra en la antigua Grecia, y la figura del daimon, un espíritu interior,
equivalente a un "ángel protector" que guiaba y protegía a los hombres. Los programas demonios reciben
este nombre en los sistemas UNIX. En otros sistemas existen procesos similares como los TSRs de MS-
DOS o los servicios de Windows.

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 especializados en 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 puedan acceder. Otro ejemplo son los demonios
"cronológicos" como cron, que realizan tareas programadas 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 esta basado en el sistema de
archivos /proc, es decir, lee directamente la información de los archivos que se encuentran en este

Curso LPI101 www.carreralinux.com.ar Pagina 59 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

directorio. Tiene una gran cantidad de opciones, incluso estas opciones varían dependiendo del estilo en
que se use el comando. Estas variaciones 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 columnas se mostrarán en el
listado de procesos que resulte, estas columnas pueden ser entre muchas otras, las siguientes:

Opciones Descripcion
p 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 o
Terminal asociada al proceso, si no hay terminal aparece entonces un '?'
TTY
T o TIME Tiempo de uso de cpu acumulado por el proceso
c 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
Nice, valor nice (prioridad) del proceso, un número positivo significa menos tiempo
NI
de procesador y negativo más tiempo (-19 a 19)
C o PCPU Porcentaje de cpu utilizado por el proceso
STIME Starting Time, hora de inicio del proceso
Status del proceso, estos pueden ser los siguientes:
* R runnable, en ejecución, corriendo o ejecutándose
*S sleeping, proceso en ejecución pero sin actividad por el momento, o esperando por
algún evento para continuar
*T sTopped, proceso detenido totalmente, pero puede ser reiniciado
S o STAT * Z zombie, difunto, proceso que por alguna razón no terminó de manera correcta, no
debe haber procesos zombies
* D uninterruptible sleep, son procesos generalmente asociados a acciones de IO del
sistema
* X dead, muerto, proceso terminado pero que sigue apareciendo, igual que los Z no
deberían verse nunca
Las opciones para el comando dd se muestran en la siguiente tabla :

Opciones Descripcion
-a El comando ps también muestra los procesos iniciados por los otros usuarios.
También muestra los procesos sin terminal de control alguna o con una terminal de
-x
control diferente a la que se está utilizando.

Curso LPI101 www.carreralinux.com.ar Pagina 60 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Muestra, para cada proceso, el nombre del usuario que lo inició y la hora a la cual fue
-u
iniciado.
Opción del comando ps para mostrar información de memoria (combinese con p para
-m
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 lo siguiente:
[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 los procesos ligeramente
diferente a como lo hace ps. El primero de ellos es pstree, que ofrece una visualización gráfica de las
relaciones que existen entre los procesos: La sintaxis 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 los procesos actuales, sino

Curso LPI101 www.carreralinux.com.ar Pagina 61 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

que automáticamente se va actualizando para mostrar los cambios acontecidos. Adicionalmente, en la parte
superior se muestra información sobre el número de días que ha estado la maquina en marcha, el número
de usuarios, la memoria, 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
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ón
u 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, los procesos se convierten en procesos
'fugitivos', y aunque no sea necesario que se sigan ejecutando, continúan su ejecución consumiendo
recursos innecesarios.
Un proceso padre no puede (y no debe) finalizar su ejecución mientras tenga procesos hijos asociados a él
que estén en funcionamiento. Teniendo ésto en cuenta, cuando un proceso hijo no puede finalizar
correctamente su ejecución, origina que el proceso padre se 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), que no puede hacer todo
por si mismo, así que ejecuta otro proceso (B), que a su vez ejecuta otro 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). El proceso A, hace lo propio con los datos recibidos, y retorna la información al shell del usuario, y
entonces muere (A) En condiciones anormales, supongamos que el proceso C, después de pasar la
información al proceso padre (el proceso B), no muere. Continua ejecutá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 A como el proceso B, no pueden finalizar su ejecución dado que tienen procesos hijos en
marcha. Así pues, un error en el proceso C, que hace que se quede en ejecución cuando no debería,
origina que haya tres procesos en marcha en el sistema, consumiendo recursos de forma innecesaria. Otro
tipo de problema, podría darse de la siguiente manera: el proceso C, como antes, entra en un estado
inestable, y no finaliza su ejecució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 procesos padre a los que reportar. Para resolver los
problemas que pueden ocasionar estos procesos extraños, se puede usar el comando kill. La sintaxis del
comando kill es la siguiente:
[BASH]# kill [opciones] PID

Curso LPI101 www.carreralinux.com.ar Pagina 62 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Procesos en segundo y primer plano


Cuando se ejecuta un proceso, por defecto se ejecuta en primer plano. Cuando un proceso se ejecuta en
primer plano, se convierte en el único trabajo en el que puede trabajar el usuario, la interacción se basa
entonces, en que se acabe éste trabajo. Por ejemplo, cuando un usuario ejecuta el comando ls -l, se
mostrará por pantalla el resultado, 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 del comando el
signo ampersand (&), esta opción permitirá ejecutar más de un comando a la 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 permite dividir en forma lógica un
disco duro, siendo denominado este nuevo espacio como partición. La descripción de las particiones se
guarda en la tabla de particiones que se localiza en el sector 0 de cada disco. La versión Fdisk de Linux
permite crear particiones en 94 sistemas de archivos distintos, incluyendo FAT32, Ext3, Solaris y QNX. Esta
versión de Fdisk cuenta con un menú de texto de ayuda en línea para realizar las 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 la aplicació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, 17849 cylinders
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):

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

Curso LPI101 www.carreralinux.com.ar Pagina 63 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Opciones Descripcion
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
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 cambios
s 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 en cuestión: Ejemplo:
Command (m for help): p

Disk /dev/sda: 146.8 GB, 146815737856 bytes


255 heads, 63 sectors/track, 17849 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System


/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 2575 20482875 83 Linux
/dev/sda3 2576 2706 1052257+ 82 Linux swap / Solaris
/dev/sda4 2707 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

Curso LPI101 www.carreralinux.com.ar Pagina 64 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Command (m for help)

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, 17849 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System


/dev/sda1 * 1 25 200781 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
First cylinder (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ón extendida. En un disco
IDE o SATA podemos crear únicamente hasta 3 particiones primaria en el disco duro. Si requerimos
de más particiones podemos crear una extendida y ahí seguir particionando (hasta un total de 60
particiones ló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 que estamos creando. "3" en
nuestro ejemplo.
• Primer cilindro. Es el cilindro en el que comienza la partición. Normalmente elegimos el que el
sistema nos marca por default.
• Último cilindro o tamaño de la partición. En el caso del ejemplo tomé de nuevo la opción por default
pues de este modo aprovecho todo el espacio libre.Generalmente resulta más cómodo proporcionar
el tamaño en megas (o en K'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, 17849 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

Curso LPI101 www.carreralinux.com.ar Pagina 65 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

/dev/sda1 * 1 25 200781 83 Linux


/dev/sda2 26 2575 20482875 83 Linux
/dev/sda3 2576 2706 1052257+ 83 Linux
/dev/sda4 2707 4000 10394055 8e Linux LVM

Analicemos en este punto las siete columnas que la impresión de la tabla de particiones nos da. En la
primera columna se encuentra el dispositivo resultado de la partición de disco 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 del disco la que contiene la parte booteable. La tercera y cuarta columna
nos dan información acerca del cilindro en el cual comienza y termina la partición respectivamente. La
quinta nos dice cuantos blocks ocupa ésta. Por último, con la sexta y séptima columna sabemos el tipo de
partición (Identificador y sistema respectivamente).
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 memoria extendida, 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 of partition 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, 17849 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System


/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 2575 20482875 83 Linux
/dev/sda3 2576 2706 1052257+ 82 Linux swap / Solaris
/dev/sda4 2707 4000 10394055 8e Linux LVM

Con fdisk podemos asignar muchos otros tipos de sistema. Con "l" podemos obtener la lista completa de
opciones:
Command (m for help): l

0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot


1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O

Curso LPI101 www.carreralinux.com.ar Pagina 66 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

c W95 FAT32 (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 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard 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 que Linux pueda hacer uso
de este espacio. La utilidad mkfs se usa para crear sistemas de ficheros 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 ext2
Opciones específicas de sistema de ficheros para ser pasados al sistema real de ficheros
fs -options
que vamos a crear.
Comprueba el dispositivo en busca de bloques defectuosos antes de crear el sistema de
-c
ficheros.
-l fichero Lee los bloques defectuosos del fichero.
Produce una salida con más información, incluyendo todas las órdenes específicas del
-v 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 la partición que debe ser
formateada. Después de la ejecución del comando, el código de salida de 0 (cero) indicará que se ha
llevado a cabo con éxito mientras que el código de salida 1 (uno) indicará fallo. 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.ext2 o mke2f Crea un sistema de ficheros ext2
mkfs.msdos o mkdosfs Crea un sistema de ficheros MS-DOS

Curso LPI101 www.carreralinux.com.ar Pagina 67 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

mkswap Crea un sistema de ficheros de Linux swap


mkraid Inicializa y actualiza cadenas de dispositivos RAID
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 de suma importancia para
los administradores de red, ya que durante el transcurso del tiempo estos sistemas de ficheros pueden
terminar presentando problemas como los siguientes:
• El sistema de ficheros se llena hasta el límite de su capacidad, causando que los aplicaciones o
quizás, el sistema entero dejen de funcionar.
• El sistema de ficheros se corrompe, seguramente por un corte de alimentación o por una caída del
sistema.
• El sistema de ficheros se queda sin inodos libres de tal forma que no se pueden crear nuevos
objetos en el mismo.
Monitorizar y comprobar cuidadosa y regularmente los filesystems de Linux nos ayudará 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 no pueda admitir nuevos
ficheros. Esto podría ocurrir si nuestro sistea de ficheros se llena o si se queda sin inodos libres. Los inodos
son las estructuras de datos dentro del sistema de ficheros que describen los ficheros (valga la redundancia)
en el disco. Cada sistema de ficheros contiene un número finito de inodos que se establece en el momento
de creación del sistema de fcheros. Este número es, a su vez, el máximo número de ficheros que un
sistema de ficheros puede acomodar. Como los sistemas de ficheros se crean con un número de inodos
enorme, probablemente nunca crearás tantos ficheros como para agotar este número. No obstante, es
posible quedarse sin inodos libres en particiones que contengan muchos ficheros pequeños.
Es muy importante prevenir la escasez de inodos libres en las particiones del sistema. El comando df
proporciona información necesaria tanto sobre la uso del espacio en disco como de los inodos libres. El
comando df nos muestra información general sobre el uso del disco en los sistemas de ficheros montados
en directorios. Normalmente, en directorios indicamos ficheros de dispositivos de particiones como /
dev/hda1, pero si indicamos otro tipo de nombre de fichero o directorio obtendremos información sobre la
partición donde está ubicado dicho fichero o directorio. Si omitimos directorios, se mostrará la información
relativa a los sistemas de ficheros montados en los dispositivos incluidos en / etc/fstab. La forma correcta de
utilizar el comando df sera de la siguiente manera.
[BASH]# df [opciones] /dev/sd[a|b|c|d][1,2,3,4]

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

Opciones Descripcion
-h Muestra los resultados en un formato legible para las personas, incluyendo sufijos como

Curso LPI101 www.carreralinux.com.ar Pagina 68 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

M(megabytes) y G (gigabytes).
Muestra información sobre los inodos libres en lugar de la información por defecto
-i
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 del espacio en disco, asi
mismo examina los directorios recursivamente y muestra información detallada o resumida sobre el espacio
en disco consumido. La forma correcta 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
Muestra los resultados en un formato legible para las personas, incluyendo sufijos como
-h
M (megabytes) y G (gigabytes).
Visualiza un sumario para cada uno de los directorios especificados, en lugar de los
-s
totales encontrados recursivamente en cada subdirectorio.
Excluye los subdirectorios de las sumas y los totales, limitándose a totalizar los
-S
directorios.

Comprobando la integridad del sistema de ficheros


El comando fsck (file system consistency check) es una utilidad de los sistemas Unix y similares, como
Linux y AIX que se utiliza ante alguna inconsistencia del sistema de archivos para corregir los posibles
errores en el sistema. fsck se ejecuta automáticamente al inicio del sistema ante alguna anomalía, pero
también puede ser utilizada 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. Comprueba el 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:

Opciones Descripcion
Ejecuta comprobaciones en todos los sistemas de ficheros incluidos en /etc/fstab.
-A Esta opción está pensada para utilizarse en tiempo de carga del sistema, antes de
montar los filesystems.

Curso LPI101 www.carreralinux.com.ar Pagina 69 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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


Especifica el tipo de sistema de ficheros a comprobar; por defecto se asume ext2. El
-t tipo valor de tipo determina que verificador específico para el sistema de ficheros es
utilizado.
Utiliza una copia del superbloque alternativa. En el modo interactivo, e2fsck utiliza
-b
automáticamente superbloques alternativos. Normalmente, para restaurar un
superbloque
superbloque defectuoso, utilizarás -b 8193 en el modo no 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.
Responde automáticamente "yes" a todas las preguntas interactivas permitiendo la
-y
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án generalmente 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 o un Disco CD se unen a la raiz del sistema de la misma manera,
como directorios o puntos de montaje. En principio estos directorios destinados a los dispositivos están
vacíos, a la espera de su montaje, puede darse el caso de que el directorio destinado a este fin contenga
subdirectorios o archivos, en cuyo caso quedarán ocultos hasta que el dispositivo se desmonte.

Administrando la tabla del sistema de ficheros


Para que las diferentes particiones estén disponibles desde un primer momento es necesario montarlas
durante el arranque del sistema, los dispositivos removibles también se usan frecuentemente y es
aconsejable tenerlos preparados para usar los comandos de montaje. Toda este información se guarda en
el fichero /etc/fstab . Los sistemas de ficheros definidos en este fichero son revisados y montados durante el
arranque del sistema. Sus entradas se consultan como fuente de información por defecto cuando 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 ext2 defaults 1 2
/dev/sda10 /tmp ext2 defaults 1 2
/dev/sda11 swap swap defaults 0 0
/dev/fd0 /mnt/floppy ext2 noauto,users 0 0
/dev/hdc /mnt/cdrom iso966 noauto,ro,users 0 0

Curso LPI101 www.carreralinux.com.ar Pagina 70 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Este campo especifica la partición del sistema de ficheros, por ejemplo /dev/hda1.
Device
Este campo no puede contenter el dispositivo entero (/dev/sda)
Aquí se introduce el directorio donde se quiere que el dispositivo sea montado.
Mount point Por ejemplo si la partición /dev/hda1 tiene el sistema de ficheros root, donde está
el sistema se montará en /
En este campo se indica que tipo de partición se trata, ext2, ext3, ext4, reiserfs,
Filesystem type
swap, iso9660
Mount options Se explican más adelante, se separan por comas.
El programa dump consulta la entrada del /etc/fstab para ver cada cuanto tiempo
Dump frecuency debe hacer el backup. Normalmente tiene el valor 1 para filesystems basados en
ext2y ext3 y 0 para los demás.
Este campo es usado por la utilidad fsck cuando la opción -A se especifica,
normalmente en tiempo de arranque. Tiene valores:
Pass number
0 - No chequear el sistema
para el fsck
1 - Debe ponerse para el filesystem root (/) y ordena al fsck a chequearlo primero
2 - Hace el chequeo de la unidad, después del chequeo de los marcados con un 1
En el ejemplo se tiene un disco duro SATA La primera partición /dev/sda1 tiene el directorio root (/), la quinta
contiene las imágenes del kernel para el arranque, la 9 para el directorio de los usuarios, la partición 10 es
la temporal, la particion 11 para el sistema de swap. Luego se tiene la /dev/fd0 para diskettes y la /dev/hdc
para el lector de CD Se pueden añadir/modificar estas entradas en cada caso y según las necesidades de
cada uno.

Montando el sistema de ficheros


Los sistemas de ficheros son montados con el comando mount. Durante el arranque, los sistemas de
ficheros que no contienen un 0 en el pass number son chequeados y luego montados. Después del
arranque se pueden añadir más sistemas de ficheros manualmente con el comando mount. El comando
mount se usa para montar sistemas de fichros dentro de la estructura del árbol del sistema. La primera y
segunda entrada consultan al fichero /etc/fstab para montar los dispositivos y así tomar las opciones que se
le especifiquen en el /etc/fstab. La tercera opción es independiente del fichero /etc/fstab y monta el sistema
de ficheros en el directorio El comando mount admite dos tipos de opciones, unos para el comando en si, y
otros para especificar opciones del sistema 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 otros para especificar
opciones del sistema de ficheros:

Opciones Descripcion
Monta todos los fileystems especificados en el /etc/fstab menos los que tengan la opción
-a
noauto
-h Ayuda del comando mount
-o Especifica las opciones del mount en la linea de comandos

Curso LPI101 www.carreralinux.com.ar Pagina 71 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

-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 con la opción -o. Estas
opciones modifican el modo de montaje del comando mount, algunas de las opciones son:

Opciones Descripcion
async Toda la E/S al sistema de ficheros debería hacerse asíncronamente.
auto Puede montarse con la opción -a
Establece las opciones: rw, suid, dev, exec, auto, nouser y async. Es la opcion por
defaults
defecto en sistemas ext2
dev nterpretar dispositivos especiales de caracteres o bloques en el sistema de ficheros
exec Permitir la ejecución de binarios
Sólo puede montarse explícitamente (esto es, la opción -a no hará que el sistema de
noauto
ficheros se monte)
No permitir la ejecución de ningún binario en el sistema de ficheros montado. Esta
noexec 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
Prohibir a un usuario ordinario (esto es, distinto de root) montar el sistema de ficheros.
nouser
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. Cuando un 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 uso. Si el sistema de ficheros está en uso el comando
umount dará un error. Esto puede ocurrir por ejemplo cuando tenemos abierto un fichero de un DVD o un
proceso está haciendo uso del mismo. Otros errores pueden surgir si quitamos dispositivos removibles sin
antes desmontarlos: La sintaxis básica de esta utilidad es la siguiente:

Curso LPI101 www.carreralinux.com.ar Pagina 72 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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

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

Opciones Descripcion
Desmonta todos los filesystems descritos en /etc/mtab. Este fichero está mantenido por
-a los comando mount y umount en tiempo real, se usa normalmente 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 tarea problemática. El espacio
disponible es un recurso limitado que muy a menudo se consume a un ritmo alarmante provocando que un
sistema de ficheros bien proporcionado se vuelva insuficiente al cabo del tiempo. En los sistemas
multiusuario no importa lo grande que sea el sistema de ficheros los usuarios siempre terminarán
llená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 esta forma podrán establecerse
límites a la cantidad de espacio en disco consumido por usuarios independientes o por grupos de éstos.
Típicamente un tamaño de cuota es mucho menor que el espacio libre del sistema de fichers donde se
configura, de esta forma se puede evitar que un usuario o un grupo consuma demasiado espacio. Pueden
configurarse cuotas para cada sistemas de ficheros incluido en /etc/fstab, aunque normalmente solo se
aplican en aquellos sistemas de ficheros donde los usuarios finales guardan sus archivos por ejemplo el
/home/nombreDelUsuario No es necesario establecer una cuota en /usr, por ejemplo, ya que los usuarios
finales no pueden guardar ficheros 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 de ficheros. Estas
limitaciones se especifican en bloques de disco, normalmente de 1024 bytes cada uno y estas son:
Opciones Descripcion
El límite hard es la máxima cantidad de espacio en disco que un usuario puede
Límite hard
disponer en el sistema. Una vez que el usuario alcanza este límite ya no se le permitirá
por usuario
realizar nuevas escrituras en el disco.
Límite soft Cada usuario puede almacenar datos libremente en el sstema de ficheros hasta que
por usuario alcance el límite soft. Éste límite actúa como una especie de zona de aviso,
advirtiendo al usuario que debe ir limpiando sus directorios pero, a diferencia del
límite hard se le permite seguir trabajando. Cuando el espacio consumido por un
usuario supera el límite soft pero no el límite hard se envían mensajes de aviso al
terminal del usuario advirtiéndole que está excediendo su cuota pero las operaciones

Curso LPI101 www.carreralinux.com.ar Pagina 73 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

de escritura terminarán correctamente.


Se trata del límite final asignado a un grupo por el sistema de cuotas. Una vez que se
Límite hard
alcanza este límite, ninguno de los miembros de dicho grupo podrán realizar escrituras
por grupo
en el disco, incluso aunque no hayan excedido sus límites individuales.
Límite soft Este límite se comporta de la misma forma que el de usuario pero se controla en base
por grupo al espacio consumido por el grupo en lugar de por el usuario individual.
Una vez que se alcanza el límite soft comienza el periodo de gracia para el usuario o
el grupo. Cuando expira éste periodo de gracia, el límite soft se convierte en límite
Periodo de
hard hasta que se hayan eliminado los ficheros suficientes para que se resuelva el
gracia
exceso de cuota. El periodo de gracia puede 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 con el periodo de gracia expirado, solo
se completará una parte de la operación de escritura dejando un fichero truncado y, probablemente,
inservible. Puede que el usuario no haya podido ver los mensajes de fin de cuota porque la aplicación haya
ocultado la shell y los mensajes de dicha aplicación lo lleven a confusión al indicarle que el disco está lleno
o protegido de escritura.

Comandos de cuotas
Linux proporciona una serie de comandos para gestión y consulta de las cuotas en los sistemas de ficheros
Parte de la configuración requerida para establecer las cuotas inicialmente 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 por defecto. Solo root
puede utilizar la opción -u y usuario para ver las limitaciones de otros usuarios. El resto de los usuarios
usuarios podrán usar la opción -g y grupo para ver solamente las limitaciones de los grupos de los que sean
miembros, siempre y cuando tengan permiso de lectura en los ficheros quota.group. La sintaxis básica de
esta utilidad es la siguiente:
[BASH]# quota [-u] [opciones] usuario
[BASH]# quota -g [opciones] grupo

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

Opciones Descripcion
-q Establece el modo “silencioso” que solo muestra las situaciones de exceso de cuota.
Establece el modo explícito que muestra las cuotas incluso cuando no se ha consumido
-v
ningún espacio en disco o no se hayan definido.
Ejemplo 1: Siendo roo t, examina todas las cuotas del usuario mayra:

Curso LPI101 www.carreralinux.com.ar Pagina 74 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

[BASH]# quota -uv mayra


Disk quotas for user mayra (uid 512):
Filesystem blks quota limit grace files quota limit grace
/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 de 10000 bloques, con un
límite hard de 10200 bloques en /dev/sda9, y que no tiene cuota establecida en /dev/hda1. La línea
correspondiente /dev/hda1 se muestra debido a la utilización de la opción -v. No se muestran los valores
correspondientes al periodo de gracia porque aun no se ha excedido el límite soft.
Ejemplo 2: Siendo el usuario mayra, examina las cuotas para el grupo contaduria, del que dicho usuario es
miembro:
[BASH]# quota -gv contaduria
Disk quotas for user mayra (uid 513):
Filesystem blks quota limit grace files quota limit grace
/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 ha alcanzado su límite
hard de 1000 bloques. El periodo de gracia original en este ejemplo se estableció en siete días de los cuales
quedan seis días restantes, lo que quiere decir que 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. La sintaxis 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ás frecuentemente son las
que se muestran en la tabla siguiente:

Opciones Descripcion
Activa las cuotas en todos los sistemas de ficheros incluidos en /etc/fstab y que estén
-a marcados como de lectura-escritura y con cuotas. Normalmente se utiliza en el proceso
de arranque para activar las cuotas.
Activa las cuotas de grupo. Esta opción no es necesaria si se utiliza -a ya que ésta otra
-g
activa tanto las cuotas de usuario como las de grupo.
-u Activa las cuotas de usuario; esta es la opción por defecto.
Establece el modo explícito de tal forma que se muestra un mensaje por cada sistema de
-v
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

Curso LPI101 www.carreralinux.com.ar Pagina 75 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

[BASH]# quotaon -av /home

quotaoff
Desactiva las cuotas de disco en uno o más sistemas de ficheros La sintaxis básica de esta 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ás frecuentemente son las
que se muestran en la tabla siguiente:

Opciones Descripcion
-a Desactiva las cuotas en todos los sistemas de ficheros en /etc/fstab.
Desactiva las cuotas de grupo. Esta opción no es necesaria si se utiliza la -a ya que ésta
-g
última incluye tanto las cuotas de usuario como las de grupo.
-u Desactiva las cuotas de usuario; esta es la opción por defecto.
Establece el modo explícito que mostrará un mensaje para cada sistema de ficheros en el
-v
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 no está incluido
específicamente en los objetivos del examen LPI 101, pero es un componente importante en el sistema de
cuotas de Linux. El comando quotacheck -a debería ser ejecutado de forma regular por medio de cron. La
sintaxis básica de esta utilidad es la siguiente:
[BASH]# quotacheck [opciones] puntoDeMontaje → ( Ejemplo:/home /var)
[BASH]# quotacheck [opciones] -a

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

Opciones Descripcion
Comprueba todas las cuotas de los sistemas de ficheros incluidos en /etc/fstab. Se
-a comprobarán tanto las cuotas de usuario como las de grupo según se indique en las
opciones usrquota y grpquota.
-g grupo Compila solamente la información de grupo.
Compila solamente la información de usuario; ésta es la opción por defecto. No
-u usuario obstante, si se especificase la opción -g, entonces habría que incluir esta si se desea que
se procesen también las cuotas de usuario.

Curso LPI101 www.carreralinux.com.ar Pagina 76 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Establece el modo explícito que mostrará toda la información de lo que el programa está
haciendo. Esta opción indica que el programa está activo mediante un símbolo giratorio
-v
en el terminal. Ésto queda muy bonito pero podrí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 las mismas.
Ejemplo 2: Con las cuotas activas, actualizar las cuotas de usuario en memoria para el sistema de
ficheros /home
[BASH]# quotacheck -v /home

edquota
Modifica las cuotas de usuario o grupo. Este es un comando interactivo que utiliza un editor de texto para
configurar los parámetros de cuotas para usuarios o grupos. Por defecto se utiliza el editor vi. Cuando se
envía el comando, se ejecuta un editor con un fichero temporal que contiene las opciones de cuotas. Al
guardar el fichero temporal, el editor finaliza y los cambios se guardan en las bases de datos de cuotas. En
la primera forma del comando, se modifica una lista de usuarios o grupos separados por espacios en 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án interactivamente los límites soft para cada sistema de ficheros La sintaxis básica de
esta utilidad 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ás frecuentemente son las
que se muestran en la tabla siguiente:

Opciones Descripcion
Modifica las cuotas de grupo. Si se especifica -g, se asumirá que todos los nombres
-g
son grupos y no usuarios, incluso si se especificase también -u.
Duplica las cuotas del usuario prototipo para cada grupo o usuario especificado.
-p proto-
Este es el mecanismo mas habitualmente utilizado para inicializar al mismo tiempo
usuario
las cuotas de varios usuarios o grupos.
Modifica los límites soft. Este comando interpreta unidades de sec (segundos),
-t
min(minutos), hour (horas), day (días), week (semanas), y month (meses).
Modifica las cuotas de usuario. Es la opción por defecto, pero se ignorará si se
-u
especificase la opción -g
Ejemplo 1: Modifica las cuotas de usuario para mayra

Curso LPI101 www.carreralinux.com.ar Pagina 77 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

[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" 5 lines, 241 characters

En este ejemplo, a mayra se le ha definido en /dev/sda9 un límite soft de 99.900 bloques, un límite hard de
100.000 bloques, y ningún límite de ficheros. No tiene ninguna 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 soft limits 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" 5 lines, 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 del comando, repquota
mostrará un informe por usuario o por grupo de las cuotas de los sistemas de ficheros indicados. En la
segunda forma, la opción -a hará que se muestre un 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
cuotas tengan permisos de lectura universales. Para cada usuario se imprime el número de ficheros y el
espacio en disco utilizados en ese momento junto con las cuotas creadas con edquota. La sintaxis básica de
esta utilidad es la siguiente:
[BASH]# quotaoff [opciones] puntoDeMontaje → ( Ejemplo:/home /var)
[BASH]# quotaoff -a [opciones]

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

Opciones Descripcion
Hace informes de todas las cuotas de todos los sistemas de fichero de lectura-escritura
-a incluidos en /etc/fstab. Se mostrarán tanto las cuotas de usuario como las de grupo
según se indique en las opciones usrquota y grpquota.
-g Muestra las cuotas de grupos.
-u Muestra las cuotas de usuarios; es la opción por defecto.
Activa el modo explícito, el cual añade una cabecera descriptiva a la salida del
-v
comando.

Curso LPI101 www.carreralinux.com.ar Pagina 78 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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 estar compilado con
soporte para cuotas. En el caso improbable de que no fuese así, habría que recompilarlo con esta opción.).
No es un proceso dificultoso pero, desgraciadamente, tampoco es simple. Para aclarar un poco este
proceso, en esta sección se incluirá un breve tutorial explicando como habilitar las cuotas de usuario y de
grupo en el filesystem /dev/sda9 montado bajo /home. Hay que tener en cuenta que pueden 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 este ejemplo
/dev/sda9 /home ext3 defaults,usrquota,grpquota 1 2

Estas opciones indican a las utilidades de configuración de cuotas que particiones deben ser 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 y dar 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. Cada sistema de ficheros con
cuotas utilizará sus propias bases de datos. Al habilitar las cuotas, estos ficheros contendrán datos binarios
(no son ficheros de texto). Si se quisiera que los usuarios puedan examinar las cuotas de los grupos a los
que pertenecen, el fichero quota.group necesitará un permiso de 644 en lugar de 600.
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, para ello nos
aseguramos que su tamaño no sea cero (en este ejemplo cada uno ocupa 16.192):
[BASH]# ls -al /home/quota.*
-rw------- 1 root root 16192 Dec 27 19:53 /home/quota.group
-rw------- 1 root root 16192 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 ejemplo siguiente aunque puede variar de sistema a
sistema:
if [ -x /sbin/quotacheck ]
then

Curso LPI101 www.carreralinux.com.ar Pagina 79 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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 usuario o de grupo,
controlarlas y emitir informes sobre ellas.

Permisos de archivos y directorios

Administracion de Permisos
Los comandos que usaremos para asignar permisos tanto a carpetas como a ficheros seran los sigueintes:
La forma es como deben ser usados estos comando sera de la siguiente manera:

Permisos de archivos y directorios


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

Opciones Descripcion
Permite la lectura de un archivo. Éste es el único permiso necesario para copiar un
r 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 sobreescribir los
contenidos del archivo. Cuando se aplica en un directorio, este permite borrar y mover
w
archivos incluso si no se tiene el permiso de escritura específico sobre el archivo
individual
x Permiso de ejecución: permite ejecutar el archivo si contiene los scripts necesarios o

Curso LPI101 www.carreralinux.com.ar Pagina 80 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

puede ser ejecutado por el sistema. Aplicado a un directorio, este permite el acceso al
mismo. Cuando se aplica a un conjunto con permisos de lectura dentro de un escritorio,
este permite buscar dentro de dicho directorio.
Indica la ausencia de permiso. Por ejemplo, r-x indica que ese usuario puede leer y
- (guion)
ejecutar, pero no escribir
El elemento llamado campo es un identificador que indica si un elemento es un directorio, 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.El propietario puede
escribir 2.El propietario puede ejecutar 3.El grupo puede leer 4.El grupo puede escribir 5.El grupo
puede ejecutar 6.Usuario (no pertenece al grupo y al propietario) puede leer 7.Usuario puede escribir
8.Usuario puede ejecutar
Estos permisos tienen valores numéricos como se muestran en la siguiente tabla

Permiso Valor Numerico


r 4
w 2
x 1
- (guion) 0
Los valores numéricos hacen posible añadir permisos a la vez y expresarlo de un modo sencillo. Por
ejemplo, si un archivo permite al usuario rwx, el valor numérico sería 4(r)+2(w)+1(x)=7. El formato del
conjunto de los permisos de un archivo se muestra en la siguiente figura.
La tabla siguiente muestra la conversión numérica de un conjunto de distintos permisos posibles:

Permiso Valor Numerico


1 --------x
2 -------w-
3 -------wx
4 ------r--
5 ------r-x
6 ------rw-
10 -----x---
11 -----x--x
22 -----w--w-
33 ----wx-wx
55 ---r-xr-x
77 ---rwxrwx

Curso LPI101 www.carreralinux.com.ar Pagina 81 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

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
777 rwxrwxrwx

Comando chmod
Chmod ( change mode ) permite cambiar los permisos de acceso de un archivo o directorio.
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ás frecuentemente son las que
se muestran en la tabla siguiente:

Opciones Descripcion
Lista los archivos y directorios a los que se les va aplicando el comando a medida que el
-v
mismo se ejecuta
-R Aplica el comando chmod recursivamente a todos los archivos y subdirectorios.

Permisos especiales
Pueden ser utilizados 3 tipos de permisos en determinadas circunstancias. Aparte de los siempre aplicables
de lectura, escritura y ejecución, algunas veces es necesario algo más para 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

Curso LPI101 www.carreralinux.com.ar Pagina 82 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

SUID
La asignación de ID de usuario se aplica cuando se desea que un determinado usuario ejecute un programa
que de otro modo no podría. Por ejemplo, sólo el usuario root sería capaz de ejecutar la función funcion xyz
(comenzar backups, restaurar el sistema, entrar en otros recursos, etc) a causa de las ramificaciones de
seguridad, pero se necesita que los usuarios ejecuten un shell script para realizar esta acción, porque no se
dispone del tiempo necesario para hacerlo personalmente. Se puede crear este shell script como root y
asignar el permiso SUID de modo que el usuario que ejecute el script sea root sólo dentro de ese script.
Antes y después del manuscrito, es únicamente un usuario, pero durante 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 el campo del ejecutable para el propietario de los permisos a una s:

SGID
Similar en la naturaleza a SUID, el permiso de la identificación de grupo del sistema se aplica cuando es
necesario que la persona que ejecuta el archivo sea un miembro del grupo que posee el archivo (y no el
propietario). Esto cambia el x en el permiso del grupo 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 de 1000, 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 las carpetas que les conceden el permiso de
escritura, a menos que sean el propietario del archivo. Por defecto, cualquier usuario que tenga permiso de
escritura en un directorio puede suprimir archivos dentro de ese directorio, incluso si no tiene el permiso de
escritura de ese archivo.
Cuando se aplica sobre un archivo, el archivo se convierte en “sticky” (bloqueado). La primera vez que se
accede o se ejecuta el archivo y se carga en memoria, permanece cargado en memoria física (RAM) o
espacio swap de modo que pueda funcionar más rápidamente que si se lee desde el disco. Si el archivo no
es ejecutable, el último bit de permiso ( para otra categoria) se convierte en T. Si el archivo es un fichero
ejecutable, o el permiso se aplica a un directorio, el bit pasado se convierte en una t. Cuando se aplica el
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 da un nombre de
usuario (o UID numérico), entonces ese usuario se convierte en el propietario de cada fichero dado, y el
grupo al que pertenece el fichero no cambia. Si al nombre 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 cada fichero, se usa con la siguiente sintaxis: La sintaxis básica de esta utilidad es la siguiente:
[BASH]# chown [opciones] usuario:grupo fichero

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

Curso LPI101 www.carreralinux.com.ar Pagina 83 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Opciones Descripcion
Muestra un mensaje donde menciona solamente aquellos ficheros cuyo propietario
-c
cambia realmente.
-f No muestra mensajes de error sobre ficheros cambiarse.
-R Cambia recursivamente el propietario de directorios y sus contenidos.
-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. El comando busca en
el fichero /etc/group para confirmar la existencia del grupo especificado antes de cambiar los permisos. La
sintaxis básica de esta utilidad es la siguiente:
[BASH]# chgrp [opciones] grupo fichero

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

Opciones Descripcion
Muestra un mensaje donde menciona solamente aquellos ficheros cuyo propietario
-c
cambia realmente.
Actúa sobre enlaces simbólicos propiamente en vez de sobre lo que apunten. Disponible
-h
solamente si el sistema proporciona la primitiva lchown
-f No muestra mensajes de error sobre ficheros cuyo grupo no pueda cambiarse.
Cambia recursivamente el grupo al que pertenecen directorios y sus contenidos. (Y
-R
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 usuario pueda hacerlo, debe
ser el propietario del archivo y pertenecer al grupo donde está efectuando el cambio.

Crear y cambiar enlaces de ficheros

Creando links a ficheros


A veces es útil o necesario tener un mismo fichero en varias localizaciones del sistema de ficheros, por
ejemplo, para acceder con diferentes permisos sobre un fichero dependiendo de su localización. En Linux
existe una solución para eso: los enlaces o links.
Estos son de dos tipos:
1. Los Duros o Hard Links, y 2. Los Suaves, Symbolic Links o Symlinks.

Curso LPI101 www.carreralinux.com.ar Pagina 84 de 85


Detalle del Documento: Entrenamiento para el LPI101
Autor: José María Schenone
Fecha: 15 de mayo de 2011

Los Hard Links


Estos enlaces comparten el inodo del fichero original. De hecho, un hard link es indistinguible 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 de enlace conserva los permisos del original y marcas de tiempo. Por
contra, no se pueden usar 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 pueden hacer referencia a
directorios, de hecho, pueden referenciar hasta ficheros inexistentes. La lectura y escritura, así como la
copia del enlace, afectan al fichero objetivo, mientras que el borrado afecta al propio enlace. Borrar el
fichero objetivo tampoco elimina el enlace automáticamente. Su sintaxis es como sigue:
[BASH]# ln -s /ruta/completa/fichero nombre_enlace

Curso LPI101 www.carreralinux.com.ar Pagina 85 de 85

You might also like