Professional Documents
Culture Documents
LPI101
Í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
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
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
Métodos de Instalación
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.
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
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.
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
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
En alguna carpeta del sistema Estos ficheros los podras encontrar en la carpeta
isolinux
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
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
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:
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).
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.
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.
}
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
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 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
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
podemos observar un diagrama que muestra la forma en cual debe ser conectado un disco duro IDE-ATA.
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.
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
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
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/
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.
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.
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!
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.
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
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
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
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.
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
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
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
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
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
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
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
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.
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
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
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.
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.
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.
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
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:
[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
[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.
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
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
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
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/
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.
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
- - - - - - - - - - - - - - - - - - - -
3
centos
7
Red Hat
debian
13
Novell Inc
edubuntu
27
Canonical
fedora
32
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
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
pilar diaz
mayra rodriguez
mariana rivera
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.
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
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
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
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
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.
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
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
El fichero “arreglo” se divide en varios archivos nombrados “arreglosegmentado”, cada uno de los cuales
contiene cinco líneas.
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)
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.
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
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
Administracion de Archivos
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
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
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
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
Opciones Descripcion
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
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
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
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.
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.
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
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
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
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):
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:
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
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
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)
Con fdisk podemos asignar muchos otros tipos de sistema. Con "l" podemos obtener la lista completa de
opciones:
Command (m for help): l
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]
Opciones Descripcion
mkfs.ext2 o mke2f Crea un sistema de ficheros ext2
mkfs.msdos o mkdosfs Crea un sistema de ficheros MS-DOS
Opciones Descripcion
-h Muestra los resultados en un formato legible para las personas, incluyendo sufijos como
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.
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.
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.
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.
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
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
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
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
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:
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
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.
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
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.
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
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
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
En este momento, el sistema de ficheros /home está listo para aceptar cuotas de usuario o de grupo,
controlarlas y emitir informes sobre ellas.
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:
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
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
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]
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
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).
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:
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.
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