Preview only show first 10 pages with watermark. For full document please download

Lpic-1 Guia Para Certificacion

guia para certificacion

   EMBED


Share

Transcript

CLA Carrera Linux Argentina www.carreralinux.com.ar Guía básica para preparar los examenes LPIC-101 LPIC-102 Temario Métodos de Instalación....................................................................................................................................12 Metodos de instalacion alternativos..........................................................................................................12 Instalacion desde CD o DVD......................................................................................................................12 Carpeta paquetes........................................................................................................................................12 Carpeta imagenes..................................................................................................................................12 Carpeta dosutils......................................................................................................................................13 Instalación desde un servidor HTT........................................................................................................13 Con!iguracion de la instalacion HTT.................................................................................................13 Instalacion desde un disco duro...........................................................................................................1" Con!iguracion de la instalacion desde disco duro........................................................................1" Disco de #escate $inu%.........................................................................................................................1& Comen'ado con el Disco de #escate $inu%..................................................................................1& (rquitectura del )istema ...........................................................................................................................1* (signacion de recursos.........................................................................................................................1* )olicitudes de interrupcion +I#,-....................................................................................................1* Direcciones de ntrada/)alida........................................................................................................1* (ccesos Directos a Memoria +DM(-..............................................................................................1* $istado de asignacion de recursos...........................................................................................................10 lspci......................................................................................................................................................10 dmesg..................................................................................................................................................10 )oporte )............................................................................................................................................10 Dispositivos )C)I...................................................................................................................................1 l canal )C)I.....................................................................................................................................1 l numero ID del dispositivo............................................................................................................1 4umero de unidad logica.................................................................................................................1 Deteccion de dispositivos )C)I......................................................................................................1 Tar5etas de #ed...................................................................................................................................... 16 Con!iguracion de impresoras................................................................................................................16 Tar5etas de (udio...................................................................................................................................16 7)) +7pen )ound )8stem-............................................................................................................16 ($)( +(dvanced $inu% )ound (rc9itecture-................................................................................2: Identi!icando las tar5etas de audio..................................................................................................2: (dministracion de tar5etas de audio...............................................................................................2: Conociendo el (rranque de $inu%.............................................................................................................2: )o;re los Discos Duros.........................................................................................................................2: Tipos de Discos Duros...........................................................................................................................21 Discos Duros ID<(T(=...................................................................................................................21 Discos Duros )(T(..........................................................................................................................21 Discos Duros )C)I............................................................................................................................22 <3< Con!iguracion de discos........................................................................................................................23 Con!iguracion de articiones................................................................................................................2" (plicaciones gra!icas para particionar discos duros........................................................................2" >parted...............................................................................................................................................2" arted Magic......................................................................................................................................2& ?ormatear 8 particionar discos duros desde ()H..........................................................................2& Dando !ormato de ;a5o nivel con dd...............................................................................................2& articionando un disco duro con !dis@...........................................................................................2& Dando !ormato a un disco duro con m@!s......................................................................................20 4iveles de 5ecucion en $inu%...................................................................................................................20 l roceso de arranque.........................................................................................................................20 l roceso I4IT.......................................................................................................................................20 )8stemV..............................................................................................................................................20 )D..................................................................................................................................................... 2 l arc9ivo init.d........................................................................................................................................2 l arc9ivo rc4.d.......................................................................................................................................26 l arc9ivo initta;......................................................................................................................................26 l arc9ivo rc.s8sinit.................................................................................................................................3: l arc9ivo rc.local....................................................................................................................................3: 4iveles de 5ecucion..............................................................................................................................3: 4ivel : Aarada Del )istema...........................................................................................................3: 4ivel 1 o ) ra!ico..........................................................................................................31 4ivel *. <#einicio del )istema..........................................................................................................31 Comando c9@con!ig...............................................................................................................................31 $evantandoB deteniendo 8 reiniciando servicios................................................................................31 Mane5o de aquetes...................................................................................................................................32 Introduccion a la gestion e instalacion de so!tare...........................................................................32 Herramienta #M...................................................................................................................................33 Herramienta M...................................................................................................................................33 Con!iguración de M ....................................................................................................................3" %tensiones de M........................................................................................................................3* tilidades M..................................................................................................................................3* Herramienta DE>................................................................................................................................ 30 Herramienta (TITD........................................................................................................................3 Herramienta (T....................................................................................................................................3 Mane5o de comandos..................................................................................................................................36 <"< )o;re )H$$..........................................................................................................................................36 l (m;iente $inu%...................................................................................................................................36 (lgunas variantes del )H$$...............................................................................................................36 ourne )9ell +s9-...............................................................................................................................36 Eorn )9ell +@s9-.................................................................................................................................": oune (gain )9ell +;as9-.................................................................................................................": C)9ell +cs9-........................................................................................................................................": Introduccion a ()H..............................................................................................................................": Conociendo el )H$$ de nuestro equipo.....................................................................................": sando el comando cd.....................................................................................................................": #utas +at9s-.....................................................................................................................................": #utas (;solutas.................................................................................................................................": #utas #elativas.................................................................................................................................."1 sando el . . +punto a punto-............................................................................................................"1 ntendiendo el . +punto-..................................................................................................................."1 sando los comandos de $inu%..........................................................................................................."1 l comando ls....................................................................................................................................."1 Comodines........................................................................................................................................."2 l comando m@dir.............................................................................................................................."3 comando touc9.................................................................................................................................."" comando ec9o..................................................................................................................................."" comando cat 8 cp ............................................................................................................................."" comando mv......................................................................................................................................."" rocesando cadenas de te%to usando !iltros....................................................................................."" $istando el contenido de un arc9ivo...................................................................................................."" 7rdenando lineas de un arc9ivo con )ort.........................................................................................."& )egmentando un te%to con Cut......................................................................................................."* egando te%to con aste................................................................................................................."0 ?ormateando parra!os......................................................................................................................" orrando o sustitu8endo caracteres..............................................................................................." Ver el inicio de un arc9ivo................................................................................................................"6 Ver el !inal de un arc9ivo..................................................................................................................&: niendo multiples arc9ivos..............................................................................................................&: )egmentando un arc9ivo.................................................................................................................&1 liminando lineas repetidas en un arc9ivo ...................................................................................&2 Convirtiendo arc9ivos para imprimir...............................................................................................&2 Mostrando estadisticas de un arc9ivo...........................................................................................&3 (Fadiendo numeros de linea a un arc9ivo....................................................................................&3 (dministracion de (rc9ivos........................................................................................................................&" $istando el contenido de un directorio.................................................................................................&" <&< Determinando el tipo de arc9ivo...........................................................................................................&& Copiando (rc9ivos.................................................................................................................................&* Copiando 8 convirtiendo arc9ivos con di!erente !ormato.................................................................&0 Moviendo (rc9ivos.................................................................................................................................&0 liminando (rc9ivos...............................................................................................................................& CreandoB monitori'ando 8 matando procesos........................................................................................& )o;re procesos.......................................................................................................................................& stados de un proceso.....................................................................................................................&6 Diagrama de !ormacion de un proceso..........................................................................................&6 Modelo de dos estados....................................................................................................................&6 Modelo de cinco estados.................................................................................................................&6 )o;re demonios......................................................................................................................................*: Caracteristicas...................................................................................................................................*1 Comando ps +process state-......................................................................................................................*1 Comando pstree 8 top............................................................................................................................*2 ?inali'ando un proceso..........................................................................................................................*3 rocesos en segundo 8 primer plano..................................................................................................*" Creando particiones 8 sistemas de arc9ivos...........................................................................................*" )o;re !dis@...............................................................................................................................................*" tili'ando !dis@........................................................................................................................................*" tili'ando m@!s........................................................................................................................................* Manteniendo la integridad de los sistemas de arc9ivos...................................................................*6 Monitori'ando el espacio 8 los inodos li;res del disco.....................................................................*6 Monitori'ando el espacio 8 los inodos li;res del disco.....................................................................0: Compro;ando la integridad del sistema de arc9ivos........................................................................0: Montando 8 desmontando sistemas de arc9ivos...................................................................................01 Controlando el monta5e 8 desmonta5e del sistema de arc9ivos......................................................01 (dministrando la ta;la del sistema de arc9ivos................................................................................01 Montando el sistema de arc9ivos .......................................................................................................02 Desmontando el sistema de arc9ivos..................................................................................................03 (dministrando cuotas de disco.................................................................................................................0" sta;lecer 8 consultar cuotas de disco...............................................................................................0" Cuotas de $imitacion...................................................................................................................................0" Comandos de cuotas.............................................................................................................................0& quota....................................................................................................................................................0& quotaon...............................................................................................................................................0* quotao!!...............................................................................................................................................00 quotac9ec@.........................................................................................................................................00 edquota...............................................................................................................................................0 repquota..............................................................................................................................................06 <*< Ha;ilitando las cuotas............................................................................................................................06 ermisos de arc9ivos 8 directorios...........................................................................................................1 (dministracion de ermisos.................................................................................................................1 ermisos de arc9ivos 8 directorios......................................................................................................1 Comando c9mod....................................................................................................................................2 ermisos especiales..............................................................................................................................3 )ID....................................................................................................................................................3 )>ID....................................................................................................................................................3 )ti@8 it...............................................................................................................................................3 (dministrando el propietario de los arc9ivos..........................................................................................." Comando c9on....................................................................................................................................." Comando c9grp......................................................................................................................................" Crear 8 cam;iar enlaces de arc9ivos.......................................................................................................& Creando lin@s a arc9ivos.......................................................................................................................& $os Hard $in@s .......................................................................................................................................& $os )8mlin@s ..........................................................................................................................................& )9ellB )cripting 8 Mane5o de datos.................................................................................................................* ersonali'ando 8 conociendo el s9ell.......................................................................................................* (rc9ivos de con!iguracion de ()H...................................................................................................* ?ic9ero /etc/pro!ile.............................................................................................................................* ?ic9ero /etc/;as9rc............................................................................................................................0 ?ic9eros /.;as9Gpro!ile B /.;as9Glogout 8 /.;as9rc........................................................................0 /.;as9Gpro!ile......................................................................................................................................0 /.;as9rc...............................................................................................................................................0 /.;as9Glogout......................................................................................................................................0 /inputrc................................................................................................................................................0 /.;as9Gpro!ile B /.;as9rc 8 /etc/pro!ileB /etc/;as9rc............................................................................. Varia;les de entorno.............................................................................................................................. Como esta;lecer la varia;le (TH................................................................................................6 Varia;les locales 8 glo;ales de )9ell.............................................................................................6 ?unciones de )9ell as9..................................................................................................................6: ersonali'ar o escri;ir scripts simples...........................................................................................61 Comparaciones de cadenas al!anumericas.......................................................................................61 Comparacion de valores numericos....................................................................................................62 Comparaciones de atri;utos de !ic9ero..............................................................................................62 )entencia i!..............................................................................................................................................62 )entencia !or...........................................................................................................................................63 )entencia 9ile 8 until............................................................................................................................63 )entencia case........................................................................................................................................6" )entencia select......................................................................................................................................6" <0< Mane5o de datos en M8),$.................................................................................................................6& Conectarse 8 desconectarse del servidor.....................................................................................6& rompt )igni!icado ...........................................................................................................................60 Crear 8 utili'ar una ;ase de datos........................................................................................................66 Crear 8 utili'ar una ;ase de datos................................................................................................1:: Crear una ta;la................................................................................................................................1:: Cargar datos a una ta;la................................................................................................................1:2 %traer in!ormacion de una ta;la..................................................................................................1:3 %isten al menos dos !ormas de solucionarlo............................................................................1:" )eleccionar registros especi!icos......................................................................................................1:" )eleccionar columnas concretas..................................................................................................1:& 7rdenar registros............................................................................................................................1:* Calculos so;re !ec9as....................................................................................................................1: Tra;a5ar con valores 4$$...........................................................................................................111 Coincidencias de patrones............................................................................................................111 (lgunas caractersticas de las e%presiones regulares e%tendidas.........................................113 Contar registros...............................................................................................................................11" tili'ar mas de una ta;la................................................................................................................11* Instalar 8 con!igurar J Kindo )8stem.................................................................................................11 )o;re J Kindo )8stem....................................................................................................................11 Instalando J Kindo )8stem.............................................................................................................116 Con!igurando el entorno J Kindo )8stem....................................................................................116 speci!icaciones del mouse..........................................................................................................12: speci!icaciones del teclado.........................................................................................................12: ?ic9ero %org.con!..................................................................................................................................12: )eccion L?iles................................................................................................................................12: )eccion LModules..........................................................................................................................121 )eccion LInputDevice....................................................................................................................121 Con!iguracion tipica de un teclado...............................................................................................122 )eccion LDevice.............................................................................................................................123 )eccion LMonitor...........................................................................................................................123 )eccion L)creen............................................................................................................................12" )eccion L)erver$a8aout...............................................................................................................12& Tareas (dministrativas.............................................................................................................................12& ?ic9ero /etc/passd........................................................................................................................12* ?ic9ero /etc/s9ado........................................................................................................................12* (dministración de cuentas de usuario..............................................................................................120 useradd.............................................................................................................................................120 usermod............................................................................................................................................12 userdel..............................................................................................................................................12 << passd..............................................................................................................................................126 c9age................................................................................................................................................126 neusers..........................................................................................................................................13: ?ic9ero /etc/login.de!s ...................................................................................................................13: (dministración de grupos...................................................................................................................131 groupadd..........................................................................................................................................131 groupmod.........................................................................................................................................131 groupdel............................................................................................................................................132 gpassd...........................................................................................................................................132 grpc@.................................................................................................................................................132 ?ic9ero /etc/group...........................................................................................................................132 ?ic9ero /etc/gs9ado.....................................................................................................................133 pconv 8 punconv.......................................................................................................................133 grpconv 8 grpunconv......................................................................................................................13" )o;re C#74.........................................................................................................................................13" $as varia;les...................................................................................................................................13& $istando el cronta;..........................................................................................................................13& rogramando tareas.......................................................................................................................13& Directorios prede!inidos 9ourl8B dail8B ee@l8 8 mont9l8..........................................................13* Cronta; del sistema........................................................................................................................13* $og de cron......................................................................................................................................130 (dministrando la 9ora del equipo.................................................................................................130 rogramas para controlar el relo5 del sistema......................................................................................13 (5ustes de tiempo 8 de las 'onas 9orarias.......................................................................................13 l procedimiento es relativamente simple.......................................................................................13 Comando 9cloc@................................................................................................................................13 )ervicios senciales del )istema................................................................................................................1": Mail Trans!er (gent asico......................................................................................................................1": rotocolo )MT...................................................................................................................................1": rotocolo 73....................................................................................................................................1"1 rotocolo IM(.....................................................................................................................................1"1 )o;re )endmail....................................................................................................................................1"2 )endmail en la actualidad..............................................................................................................1"2 )o;re ost!i%.........................................................................................................................................1"3 )o;re %im............................................................................................................................................1"3 )o;re ,mail..........................................................................................................................................1"3 Como imprimir en $inu%............................................................................................................................1"3 n que consiste el sistema de impresion C).............................................................................1"" Instalar una impresora local con C)............................................................................................1"& ?undamentos de #ed.....................................................................................................................................1"0 <6< ?undamentos de TC/I..........................................................................................................................1"0 )o;re TC/I........................................................................................................................................1"0 Desarrollo de TC/I......................................................................................................................1"0 4iveles en la pila TC/I...............................................................................................................1" 4ivel ?isico..................................................................................................................................1"6 4ivel de nlace de Datos..........................................................................................................1"6 4ivel de internet.........................................................................................................................1"6 4ivel de Transporte...................................................................................................................1"6 4ivel de (plicacion....................................................................................................................1&: rotocolo TC.................................................................................................................................1&1 sta;lecimiento de la cone%ion ...................................................................................................1&1 Trans!erencia de datos..................................................................................................................1&1 TamaFo de ventana TC...............................................................................................................1&2 scalado de ventana......................................................................................................................1&3 ?in de la cone%ion...........................................................................................................................1&3 uertos TC.....................................................................................................................................1&3 rotocolo D.................................................................................................................................1&3 uertos TC.....................................................................................................................................1&" Di!erencias entre TC 8 D........................................................................................................1&" Ta;la de uertos TC 8 D.......................................................................................................1&& Direcciones I.......................................................................................................................................1&0 Direcciones Iv"...................................................................................................................................1&0 Mascara de una direccion I.........................................................................................................1&6 Creacion de )u;redes....................................................................................................................1&6 I dinamica......................................................................................................................................1&6 (signacion de direcciones I........................................................................................................1*: Direcciones Iv*.............................................................................................................................1*1 ?ic9ero /etc/services............................................................................................................................1*1 ?T..............................................................................................................................................................1*1 Telnet..................................................................................................................................................... 1*2 ing.........................................................................................................................................................1*2 Dig...........................................................................................................................................................1*2 Traceroute.............................................................................................................................................1*2 ?uncionamiento...............................................................................................................................1*3 Con!iguracion de los parametros de #ed.........................................................................................1*3 Con!iguracion de inter!aces de #ed.............................................................................................1*3 Con!iguracion del arc9ivo /etc/9osts............................................................................................1*" Con!iguracion del arc9ivo /etc/resolv.con!..................................................................................1*" Con!iguracion del arc9ivo /etc/s8scon!ig/netor@......................................................................1*" /etc/s8scon!ig/netor@ra;a el arc9ivo < 13 < boot.iso en !ormato .iso en un CD con a8uda da algun programa de gra;acion de datos como E3 o rasero. &.Inserta el CD de arranque que aca;as de crear en el lector del servidor 8 teclea enter. *.)elecciona el idioma 8 tipo de teclado correspondiente 0.n la seccion LMetodo de Instalacion elige LHTT .n con!iguracion TC/I des9a;ilita la opcion Iv* 8 solo de5a 9a;ilitada la opcion Ipv" 6.n con!iguracion HTT de;eras teclear la direccion I en la cual tienes montado el medio de instalacion DVD asi como tam;ien el nom;re del directorio pu;lico que creaste en el servidor HTT 8 teclear el ;oton L(cpetar NOTA:Este metodo de instalacion solo es aplicable a distribuciones inu! de la familia "ed Hat Instalacion desde un disco duro Configuracion de la instalacion desde disco duro 1.l procedimiento es relativamente parecido al anterior para ello de;era contar con lo siguiente medio de Instalación DVD $a imagen .I)7 de la distri;ución 1.)i usted cuenta con el medio de instalación DVD de;erO convertir este en una imagen .I)7B si 8a cuenta con la imagen .I)7 omita este punto 8 salte al siguiente pasoB si no es asi siga le8endo. Inserte el medio de instalación DVD en el lector del equipo 8 teclee el siguiente comando para crear la imagen .I)7 • • [BASH]# dd if=/dev/dvd of=/Ruta/En/Donde/Creara/La/Imagen/imagen.iso 2.Monta imagen de la -o siguiente manera [BASH]# lamount -t .I)7 iso9660 loop imagen.iso /punto/De/Montaje 3.Copia los arc9ivos * initrd.img * vmlinuz n alguna carpeta del sistema stos arc9ivos los podras encontrar en la carpeta isolinux de la imagen .I)7 que aca;as de montar &.dita el arc9ivo /boot/grub/menu.lst  agrega el siguiente contenido al !inal del arc9ivo title n esta linea usted puede agregar un comentario so;re el )istema 7perativo a Instalar n esta linea se indica el disco duro 8 la particion del disco duro en donde se encuentra root locali'ada la imagen .I)7 del sistema operativo @ernel n esta linea se indica la ruta en donde copio el ar c9ivo Lvmlinu' initrd n esta linea se indica la ruta en donde copio el arc9ivo Linitrd.img 4o olvides guardar los cam;ios 9ec9os al arc9ivo *.Desmonta la imagen .I)7 de la siguiente !orma < 1" < [BASH]# umount /punto/De/Montaje/imagen.iso 0.$o siguiente sera reiniciar el equipo 8 5usto cuando arranque el ># elegir la linea de instalacion del sistema 7perativo sta accion cargara el instalador del )istema 7perativo como si estuviera lee8endolo desde el medio de instalacion DVD #isco de "escate inu! )i tu sistema operativo $inu% se corrompe es posi;le recuperarlo usando un CD de rescateB este CD de rescate es una version reducida de $inu% que implementa un sistema de arc9ivos en la memoria #(M del equipo el cual tiene como !uncion acceder al sistema de arc9ivos del disco duro como usuario Lroot Comenzado con el Disco de Rescate Linux 1.Introduce el medio de instalación DVD en el lector de discos del equipo 2.Teclea en la pantalla la pala;ra #linux rescue 3.)elecciona el idioma 8 tipo de teclado correspondiente ".n con!iguracion de redB selecciona la opcion L4o &.$a siguiente ventana emergente intentara montar el sistema de arc9ivos de nuestro equipo en la ruta virtual /mnt/s8simage. )eleccione la opcion Continuar *.(l terminar el proceso de arranque este nos mostrara una inter!a' parecida al ()H 0.Teclee el comando [BASH]# fdisk /dev/hda sta accion nos arro5ara el siguiente mensa5e resione la tecla Lp B esto nos mostrara una lista con las distintas particiones alo5adas en el disco duroB algo mu8 parecido al siguiente e5emplo .De acuerdo a la in!ormacion o;tenida en el anterior puntoB monte la particion que contenga el sistema de arc9ivos de linu%. 5emplo [BASH]# mount -t ext3 /dev/hda1 /tmp 6.(plique el comando chroot )o;re la particion que aca;a de montar 5emplo [BASH]# chroot /tmp sto es porque e%isten dos sistemas de arc9ivos B uno relacionado al virtuali'ando en la memoria #(M 8 el segundo relacionado al sistema de arc9ivos del disco duro. (l aplicar Lc9root so;re la particion montada tomaremos el control so;re el sistema de arc9ivos del disco duro 8 con ello podremos a5ecutar comandos administrativos so;re el equipo. 1:.or ultimoB si olvido la contraseFa de root o si esta !ue cam;iada por alguien mas B podra recuperarla tecleando en consola lo siguiente [BASH]# passwd Cambiando la contraseña del usuario root. Nueva UNIX contraseña: < 1& < Arquitectura del Sistema Asignacion de recursos ara permitir que los peri!ericos 8 dispositivos del equipo se comuniquen directamente con los recursos del sistema B en particular con el C +Central rocessing nit- el sistema asigna recursos tales como lneas 8 canales de comunicacion para cada dispositivo. Mu8 particulamenteB estos recursos son conocidos como solicitudes de interrupcion +I#,-B direcciones de entrada/salida 8 accesos directos a memoria+DM(-. Solicitudes de interrupcion (IRQ) (ntes de e%plicar que es una de interrupciónB cual8 peticiones es la !uncion procesador. l procesador es solicitud el encargado de procesarentendamos 8 administrarprimero los datos quedea un este lleganB sin em;argo un solo procesador no es capa' de procesar simultaneamente varias peticiones B por lo que solo atiende de una a una las peticiones que a el lleganB aqui es donde las solicitudes de interrupcion empie'an a 5ugar un papel importante. )uponga que un programa1 estO siendo atendido por el procesador pero su;itamente una solicitud de interrupción llega al procesadorBes entonces cuando el programa1 llega a ser momentaneamente suspendido por un programa2. ste programa2 es a9ora el atendido por el procesador 8 9asta que este termine de ser atendido el programa1 interrumpido puede continuar e5ecutOndose . na interrupción se convierte en una interrupción de 9ardare cuando es solicitada por uno de los componentes de 9ardare del equipo. Cuando un peri!érico desea acceder a un recursoB enva un pedido de interrupción al procesador para llamar su atención. $os peri!éricos cuentan con un nNmero de interrupción que se denomina I#, +eticiones de Interrupción. s como si cada peri!érico tirara de un P9iloP que estO atado a una campana para indicarle al equipo que desea que le preste atención. ste P9iloP esB de 9ec9oB una lnea !sica que conecta cada ranura de e%pansión as como cada inter!a' entrada/salida a la mot9er;oard. Direcciones de Entrada/Salida $as direcciones de entrada/ salida representan direcciones especi!icas en la memoria del sistemaB dic9as direcciones son asignadas por el C a cada uno de los dipositivos del 9ardare del sistema para que puedan escri;ir 8 leer datos so;re la misma. Accesos Directos a emoria (DA) l acceso directo a memoria +DM(- permite a cierto tipo de componentes del equipo acceder a la memoria del sistema para leer o escri;ir independientemente del procesador. Muc9os sistemas 9ardare utili'an DM(B inclu8endo controladores de unidades de discoB tar5etas grO!icas 8 tar5etas de sonido. DM( es una caracterstica esencial en todos los equipos moderno sB 8a que permite a dispositivos de di!erentes velocidades comunicarse sin someter al procesador a una carga masiva de interrupciones. na trans!erencia DM( consiste principalmente en copiar un ;loque de memoria de un dispositivo a otro. n lugar de que el procesador inicie la trans!erenciaB la trans!erencia se lleva a ca;o por el controlador DM(. n e5emplo tpico es mover un ;loque de memoria desde una memoria e%terna a una interna mOs rOpida. Tal operación no ocupa el procesador 8 como resultado puede ser plani!icado para e!ectuar otras tareas. $as trans!erencias DM( son esenciales para aumentar el rendimiento de aplicaciones que requieran muc9os recursos. < 1* < #egularmente un equipo consta de  canales DM(. $os primeros cuatro canales DM( poseen un anc9o de ;anda de  ;its mientras que los DM( " a 0 poseen a su ve' un anc9o de ;anda de 1* ;its. $os canales DM( por lo general suelen asignarse de la siguiente manera DM(: li;re DM(1 +tar5eta de sonido-/li;re DM(2 controlador de disquete DM(3 puerto paralelo +puerto de la impresoraDM(" controlador de acceso directo a memoria +conectado a DM(:DM(1 +tar5eta de sonido-/li;re DM(* +)C)I-/li;re DM(0 disponi;le • • • • • • • • Listado de asignacion de recursos l nucleo de linu% agrupa la in!ormacion relacionada a la asignacion de recursos en la carpeta /proc $os arc9ivos relevantes de esta carpeta son los siguientes * * * * /proc/dma ---> Archivo que contiene el historio DMA del equipo /proc/interrupts ---> Archivo que contiene el historico IRQ del equipo /proc/ioports ---> Archivo que contiene el historico Entrada/Salida del equipo /proc/pci $a asignacion de recursos tam;ien pueden ser consultada usando comandos como * lspci * dmesg lspci $spci es un comando que nos imprime in!ormacion detallada so;re los ;uses 8 dispositivos CI conectados al equipo. (si mismo nos da in!ormacion detallada so;re los I#, 8 direcciones de ntrada/)alida asociados a los dispositivos CI entontradosB para ello solo se tiene que agregar el parametro ;/sB cada octeto se transmite con un ;it de arranque 8 un ;it de paradaB con una velocidad e!ectiva teórica de 1&: M/s ó 1B2 >;/s. l estOndar )erial (T( II de;e contri;uir a alcan'ar 30& M/s ó 3 >;/sB es decirB una velocidad e!ectiva teórica de 3:: M/sB 8 !inalmente 0&: M/s ó * >;/sB es decirB una velocidad e!ectiva teórica de *:: M/s. $os ca;les del estOndar )erial (T( pueden medir 9asta 1 metro de longitud +en comparación con los "& cm que miden los ca;les ID-. (demOsB la ;a5a cantidad de 9ilos en una envoltura redonda permite una ma8or !le%i;ilidad 8 una me5or circulación del aire dentro de la carcasa que la de los ca;les ID +incluso si e%istieran los ca;les ID redondeados-. ( di!erencia de los peri!éricos del estOndar (T(B los del )erial (T( se encuentr an solos en cada ca;le 8 8a no es necesario di!erenciar los discos duros maestros de los discos duros esclavos. 7tra de la venta5as con este tipo de disco es que permite la cone%ión en caliente o en pocas pala;rasB mientras el equipo esta encendido. Discos Duros SCSI l estOndar )C)I +)mall Computers )8stem Inter!ace- es una inter!a' que se utili'a para permitir la cone%ión de distintos tipos de peri!éricos a una computadora mediante una tar5eta denominada adaptador )C)I o controlador )C)I generalmente mediante un conector CI. l nNmero de peri!éricos que se pueden conectar depende del anc9o del ;us )C)I. Con un ;us de  ;itsB se pueden conectar  unidades !sicas 8 con uno de 1* ;itsB 1* unidades. #ireccionamiento de los Periféricos $C$I $os peri!éricos se direccionan mediante nNmeros de identi!icación. l primer nNmero es el IDB nNmero que designa al controlador que se encuentra dentro de cada peri!érico +de!inido a través de los ca;alletes posicionados en cada peri!érico )C)I o por el so!tare-. l peri!érico puede tener 9asta  unidades lógicas +por e5emploB una unidad de CD<#7M con varios ca5ones-. $as unidades lógicas se identi!ican mediante un $4 +4Nmero de unidad lógica-. or NltimoB una computadora puede contener diversas tar5etas )C)I 8B por lo tantoB a cada una le corresponde un nNmero di!erente. < 22 < $C$I asimétrico * diferencial %isten dos tipos de ;us )C)I el ;us asimétricoB conocido como ) +por )ingle<nded o Terminación Nnica-B ;asado en una arquitectura paralela en la que cada canal circula en un alam;reB sensi;le a las inter!erencias. $os ca;les )C)I en modo ) poseen  alam;res para una transmisión de  ;its +que se denominan limitados- o 1* alam;res para ca;les de 1* ;its +conocidos como e%tendidos-. ste es el tipo de ;us )C)I mOs comNn. el ;us di!erencial transporta seFales a un par de alam;res. $a in!ormación se codi!ica por di!erencia entre los dos alam;res +cada uno transmite el volta5e opuesto- para despla'ar las interrupciones electromagnéticasB lo que permite o;tener una distancia de ca;leado considera;le +alrededor de 2& metros-. n generalB e%isten dos modos el modo $VD +Volta5e ;a5o di!erencial-B ;asado en seFales de 3B3 V 8 el modo HVD +Volta5e (lto Di!erencial-B que utili'a seFales de & V. $os peri!éricos que utili'an este tipo de transmisión son cada ve' mOs raros 8 por lo general llevan la pala;ra PDI??P. $os conectores para las dos categoras de peri!éricos son los mismosB pero las seFales eléctricas son di!erentes. or lo tantoB los peri!éricos necesitan ser identi!icados +mediante los sm;olos creados para tal !in- para no daFarlos. Est+ndares $C$I $os estOndares )C)I de!inen los parOmetros eléctricos de las inter!aces de entrada/salida. l estOndar )C)I<1 de 16* de!inió los comandos estOndar para el control de los peri!éricos )C)I en un ;us con una !recuencia de "B00 MH' con un anc9o de  ;itsB lo que implica;a que era posi;le alcan'ar velocidades de & M/s. )in em;argoB un gran nNmero de dic9os comandos eran opcionalesB por lo que en 166" se adoptó el estOndar )C)I<2. ste de!ine 1 comandosB • • conocidos como CC) +Con5unto de comandos comunes-. )e 9an de!inido varias versiones del estOndar )C)I<2 l )C)I<2 e%tendidoB ;asado en un ;us de 1* ;its +en lugar de -B o!rece una velocidad de 1: M/s l )C)I<2 rOpido es un modo sincrónico rOpido que permite un aumento de & a 1: M/s para el estOndar )C)I 8 de 1: a 2: M/s para el )C)I<2 e%tendido +denominado )C)I<2 e%tendido rOpido-. $os modos #Opido<2: 8 #Opido<": duplican 8 cuadriplican dic9as velocidades respectivamente. l estOndar )C)I<3 inclu8e nuevos comandos 8 permite la unión de 32 peri!éricosB as como una velocidad mO%ima de 32: M/s +en modo ltra<32:-. l siguiente cuadro resume las caractersticas de los diversos estOndares )C)I • • • Configuracion de discos n $inu%B los discos !isicos son listados 8 representados dentro de la carpeta /dev #ecordemos ara ser identi!icadosB el @ernel les agrega un identi!icador el cual comien'a con 9d para el caso de discos ID o sd para el caso de discos (T( o )C)I. (dicionalmente a cada uno de estos identi!icadores se les agrega una letra del al!a;eto para identi!icar los discos maestros de los esclavos. < 23 < Identi!icador del Disco Duro Dispositivo $ogico 9da Maestrorimario 9d; sclavo)ecundario 9dc Maestro)ecundario 9dd sclavo)ecundario sda rimerDisco)atao)C)I sd; )egundoDisco)atao)C)I Configuracion de Particiones (si como los discos duros son listados 8 representadosB tam;ien las particiones correspondientes a cada disco duro son representadas 8 listadas. ara ser identi!icadosB el @ernel le agrega un numero al !inal de cada identi!icador para di!erenciar de una particion primariaB logica o e%tendida. NOTA:os discos duros ATA * $ATA permiten , particiones primarias- de las cuales . puede ser e!tendida/as particiones e!tendidas pueden ser di'ididas en particiones logicas * estas pueden tener un ma!imo de 0, particiones para discos ATA1$ATA * .0 particiones para discos $C$I Aplicaciones graficas para particionar discos duros %isten aplicaciones li;res como alternativas a las aplicaciones propietarias como es el caso del artitioning MagicB a continuación se e%ponen 2 de las me5ores *parted >arted es el editor de particiones de >47M. sta aplicación es usada para crearB eliminarB redimensionarB inspeccionar 8 copiar particionesB como tam;ién sistemas de arc9ivos. sto es Ntil para crear espacio para nuevos sistemas operativosB reorgani'ar el uso del disco 8 crear imOgenes de un disco en una partición. $a aplicación utili'a la li;rera li;parted para detectar 8 manipular dispositivos 8 ta;las de particiónB mientras varias 9erramientas de sistema de arc9ivos dan mantenimiento a sistemas de arc9ivos no incluidos en li;parted. stO escrito en CUU 8 utili'a gt@mm como 9erramienta grO!ica. ste acercamento es para mantener la inter!a' grO!ica de usuario lo mOs simple posi;leB con!orme con las Human Inter!ace >uidelines. 2parted i'eC# )e encuentra disponi;le en $iveCDB ;asado en )lac@are 8 construido so;re la Nltima rama esta;le nNcleo de $inu% +2.*-. $iveCD es actuali'ado con cada lan'amiento de >arted. l $iveCD de ;untu inclu8e esta aplicación entre sus utilidades. Tam;ién se encuentra disponi;le en versión $ive). Cuando se carga $iveCDB se inicia una miniarted < 2" < • J!ree* Capacidades * limitaciones >arted no puede incrementar el tamaFo de las particiones sin e%istir un espacio vaco después de dic9a particiónB es decirB si e%isten dos particiones 5untas no se podrO aumentar el tamaFo de una en detrimento de la otraS pero esto es mOs ;ien una limitación técnica. n esta ta;la se muestran las capacidades de >artedB de acuerdo con cada sistema de arc9ivos. )i tu deseas pro;ar esta aplicaciónB la puedes descargar directamente de la pagina o!icial del pro8ecto 9ttp//gparted.source!orge.net +arted agic arte Magic es un $iveCD que inclu8e una distri;ución $inu% a medida para poder operar directamente con ella sin necesidad de ser instalada en el disco duro. 4o estamos 9a;lando solo de un particionador de discos mas. n este $iveCD podemos encontrar varias 9erramientas entre ellas un editor de particiones llamado Visarted ;asado en el genuino >parted con la que podremos crearB redimensionar 8 ;orrar nuestras particiones del disco duro. arted Magic soporta los siguientes sistemas de arc9ivos e%t2B e%t3B e%t"B !at1*B !at32B 9!sB 9!sUB 5!sB linu%iga8tes pero de manera a;reviada +EBMB>- (l terminar de aplicar lo cam;ios solo de;era e5ecutar la orden  lo cual escri;ira los cam;ios al disco duro. ¡Se ha modificado la tabla de particiones! < 2* < Llamando a ioctl() para volver a leer la tabla de particiones. Se están sincronizando los discos. Dando formato a un disco duro con m-fs or ultimo solo restari a asignarle un !ormato a las particiones que creamos. ara ello 9aremo s uso de la 9erramienta m@!sB la cual de;e ser aplicada segun la siguiente sinta%is [BASH]# mkfs.[ext2|ext3|ext4|vfat|ntfs] /dev/sd[a,b,c][1,2,3] iveles de !"ecucion en Linux El Proceso de arran5ue l proceso de arranque de un sistema operativo $inu% se iniciali'a de la siguiente manera Cuando usted enciende su servidor o su computadora personalB esta 9ace que el I7) de su equipo inicie las operaciones relacionadas con el arranque. l I7) +asic Input 7utput )8stem- es un pequeFo programa escrito en lengua5e ensam;lador cu8a !unción es cargar el sistema operativo en la memoria #(M +#andom (ccess Memor8-B una ve' que el I7) carga el sistema operativo en #(M este inicia un proceso llamado 7)T +oer 7n )el! Test- el cual es un proceso de diagnostico 8 veri!icación de los componentes de entrada 8 salida de un servidor o computadora 8 se encarga de con!igurar 8 diagnosticar el estado del 9ardareB una ve' veri!icado el 9ardare se inicia la !ase de arranque del sistema +;ootstrapping- el cual cede el control al ># +>rand ni!ied ootloader-B el ># es un gestor de arranque que 9ace uso de un menN grO!ico que permite elegir el )istema 7perativo que se desea arrancarS (s mismoB el ># reali'a las siguientes tareas 1.Cargar el @ernel en memoria. 2.Cargar el sistema de arc9ivos virtual initrd el cual es usado tipicamente para 9acer los arreglos necesarios antes de que el sistema de arc9ivos ra' pueda ser montado 3.asarle los argumentos runlevel e init al @ernel ".Comen'ar la e5ecución del @ernel (l terminar de e5ecuta r todas las tareas anteriores el ># le cede el control total del arranque al @ernel 8 este a su ve' se encarga de reali'ar la llamada a la !unción starup la cual tiene como !unción detectar el tipo de C con el que el equipo cuenta as como de lo principal del sistema operativoB como el mane5o de memoriaB plani!icador de tareasB entradas 8 salidasB comunicación interprocesosB 8 demOs sistemas de controlB a partir de este momento se e5ecuta el proceso I4IT. El Proceso INIT I4IT es el primer proceso en e5ecutarse despues de la carga del @ernel de linu% e implementa dos modelos ;a5o los cuales puede tra;a5arB estos son 1.)8stemV 2.)D stos modelos son arrancados por un programa +script- de arranque que esta;lece como de;en iniciali'arse los di!erentes serviciosB programas o registros que sean necesarios para que el sistema !uncione como el administrador lo requiere. %plicaremos ;revemente como es que tra;a5an estos modelos S$stem. s un modelo usado para controlar el inicio 8 apagado del sistema 8 !ue srcinalmente desarrollado por la compaFa estadounidense de telecomunicaciones (TWT. )8stemV !ue una de las versiones del sistema operativo ni% que se encarga;a de controlar el arranque de los programas en el instante de inicio del equipo. ste modelo es considerado por muc9os como !acilB potente 8 !le%i;le < 20 < en comparacion con el sistema de inicio )D %isten cuatro versiones release de )8stemV +)V#- B las cuales son 1.)V#1.<rimera version de )8stemV lan'ada en 16"B incluia el editor de te%tos Vi 2.)V#2.47M o ED El arc6i'o rc/s*sinit ste arc9ivo esta locali'ado en la siguiente ruta $a !uncion que desempeFa este arc9ivo es e5ecutar una serie de scripts que iniciali'an tareas como Con!iguracion de relo5 del sistema Con!iguracion de los parametros del Eernel $evantamiento de dispositivos #(ID 8 $VM (ctivacion 8 (ctuali'acion de cuotas en disco • • • • • (ctivacion de la particion )K( El arc6i'o rc/local ste arc9ivo esta locali'ado en la siguiente ruta ste arc9ivo es el utimo en ser e5ecutado por el proceso init. $a !uncion que tiene este script es agregar comandos que nos 9aga !acil de reali'ar tareas necesarias como arrancar servicios especiales o iniciali'ar dispositivos sin tener que escri;ir scripts comple5os de iniciali'acion en el directorio /etc/rc.d/init.d ni creando enlaces sim;olicos. Ni'eles de E(ecucion $os niveles de e5ecucion o tam;ien llamados runlevels 9acen re!eren cia a los sistemas operativ os $inu% que implementan el estilo de sistema de arranque de iniciacion tipo 4IJ )8stem V del cual 8a 9emos 9a;lando e%tensamente. ( lo largo de este tema mencionamos  niveles de e5ecucion ;a5o los cuales tra;a5an algunos sistemas operativos linu%B en especial los de la ?amilia #ed Hat. ( continuacion mencionaremos las caracteristicas de cada uno de ellos. "i!el 0 1+arada Del Sistema l nivel : es usado para especi!icarle al sistema que de;e apagarseB la !orma en que este lo 9ace es a trave' del comando 9alt. (l e5ecutarse este comando se apagan todos los servicios que se encuentren activos "i!el 2 o S 'onousuario o Single 3ser l nivel 1 o tam;ien llamado nivel )ingle +)- solo puede ser iniciado por el administrador del sistema +root-B por lo que ningun usuario podra 9acer eso de este nivel de e5ecucion n este nivel no se < 3: < activan los servicios de #edB 8 tampoco se inician los procesos +daemons- de inicio por lo que permite reparar pro;lemas o 9acer prue;as al sistema. "i!el 4 'ultiusuario sin Red ste nivel esta caracteri'ado por la capacidad de permitir que varios usuarios puedan entrar al sistema pero sin contar con soporte en redB esto quiere decir que no se puede contar con servidores como 4?) o e;. "i!el 5 'ultiusuario con Red ste sistema esta caracteri'ado por la capacidad de permitir a varios usuarios entrar al sistemaB a di!erencia del nivel de e5ecucion 2B este si cuenta con soporte de red. "i!el 67 'Sin 3so ara la ma8oria de las distri;uciones linu% este nivel de e5ecucion no tiene asignada ninguna !uncionB pero puede ser personali'ado por el administrador para que cumpla con alguna !uncion en especial "i!el 87 'ultiusuario *rafico ste nivel de e5ecucion es identico al nivel 3B la unica di!erencia es el alta de entornos gra!icos como >47M o ED para la administracion del sistema "i!el 97 'Reinicio del Sistema Comando c67config ste comando es una 9erramienta util para levantar o desactivar servicios los cuales son aplicados durante el arranque del equipo asi como tam;ien conocer el estado de los servicios que se estan e5ecutando. ara conocer el estado de los procesos que estan corriendo en su sistema puede e5ecutar el • siguiente comando [root@localhost ~]#chkconfig --list • ara conocer el status de algun proceso en particular solo teclee esto [root@localhost ~]#chkconfig –-list httpd httpd 0:desactivado 1:desactivado 4:desactivado 5:desactivado 6:desactivado 2:desactivado 3:desactivado $o cual nos mostrara ;a5o que niveles de e5ecucion esta corriendo el proceso o servicio. ara levantar algun proceso o servicio durante el arranque del sistema solo teclee esto • [root@localhost ~]#chkconfig –-level 35 httpd on De esta manera estamos especi!icando el sistema que siempre que este inicie levante el servidor e; apac9e en los niveles de e5ecucion 3 8 & ara detener algun proceso o servicio durante el arranque del sistema solo teclee esto • [root@localhost ~]#chkconfig –-level 35 httpd off De esta manera estamos especi!icando el sistema que siempre que este inicie tenga detenido el servidor e; apac9e en los niveles de e5ecucion 3 8 & e'antando- deteniendo * reiniciando ser'icios 7tra !orma de levantarB detener o reiniciar servicios en caliente es mediante el uso del siguiente comando el cual 9ace uso del arc9ivo init.d del cual 9emos 9a;lado anteriormente. $a estructura de la sinta%is para poder ocupar el comando es la siguiente < 31 < [root@localhost ~]#/etc/init.d/nombreDelServicio {start|stop|status|restart|reload} ( manera de e5empli!icar el uso del anterior comando 9aremos lo siguiente. )upongamos que tenemos 8a instalado 8 con!igurado un servidor e; apac9e 8 lo unico que !alta es levantar el servicioB para ello solo ;astara teclear lo siguiente [root@localhost ~]#/etc/init.d/httpd start ara detener este mismo servicio solo de;emos cam;iar la pala;ra start por stop [root@localhost ~]#/etc/init.d/httpd stop De igual manera si se quiere reiniciar el servicio solo de;emos cam;iar la pala;ra stop por restart [root@localhost ~]#/etc/init.d/httpd restart 7tra manera de arrancarB detener o reiniciar servicios sin necesidad de teclear toda la ruta anterior es mediante el uso de un alias el cual tiene la siguiente sinta%is [root@localhost ~]# service httpd {start|stop|status|restart|reload} De igual !orma solo de;emos teclear startB stop o restar segNn sea el caso 5emplo [root@localhost ~]#service httpd start Mane"o de Paquetes Introduccion a la gestion e instalacion de soft8are InstalarB actuali'ar o eliminar so!tare en sistemas operativos linu% di!erira de la !orma en como usted lo 9acia en sistemas operativos Kindos o MacB esto es de;ido a que la ma8oria de las aplicaciones desarrolladas para $inu% no cuentan con un asistente de instalacionB en cam;ioB usted tendra que aprender a aplicar una serie de comandos en su equipo para poder llevar a ca;o tareas de administracion 8 dedegestion de sera paquetes. $ael!orma usted 9erramientas llevara a ca;o esta administracion 8 gestion paquetes mediante uso deen las que siguientes 8um ello dog pdater Modi!ied +M- es una 9erramienta de so!tare li;re de gestión de paquetes para sistemas $inu% ;asados en #MB !ue desarrollada principalmente para actuali'ar 8 controlar los sistemas #ed HatB ?edoraB Cent7)B 8 otras distri;uciones de >4/$inu% ;asadas en #MB inclu8endo el mismo ello Dog. rpm #ed Hat ac@age Manager +#M-B es una 9erramienta de administración de paquetes. s capa' de instalarB actuali'arB desinstalarB veri!icar 8 solicitar programas. 7riginalmente desarrollado por #ed Hat para #ed Hat $inu%B en la actualidad muc9as distri;uciones >4/$inu% lo usanB dentro de las cuales las mOs destacadas son ?edora $inu%B Mandriva $inu%B )u) $inu%. Tam;ién se 9a portado a otros sistemas operativos. (dvanced ac@aging Tool +(T- B es un sistema de gestión de paquetes creado por el apt pro8ecto De;ian. (T simpli!ica en gran medida la instalación 8 eliminación de programas en los sistemas >4/$inu%. aptitude es una inter!a' para (T. Muestra una lista de paquetes de so!tare 8 permite al usuario elegir de modo interactivo cuOles desea instalar o eliminar. Dispone de un aptitude poderoso sistema de ;Nsqueda que utili'a patrones de ;Nsqueda !le%i;lesB que !acilitan al usuario entender las comple5as relaciones de dependencia que puedan e%istir entre los < 32 < paquetes. n un principioB se diseFó para distri;uciones >4/$inu% De;ianB pero 9o8 da se utili'a tam;ién en distri;uciones ;asadas en paquetes #MB como Mandriva. dp@g l programa dp@g es la ;ase del sistema de gestión de paquetes de De;ian >4/$inu%. )e utili'a para instalarB quitarB 8 proporcionar in!ormación so;re los paquetes .de;. Herramienta "PM #M +#ed Hat ac@age Manager- es una 9erramienta de administracion 8 gestion de paquetes orientada para sistemas operativos $inu%B la cual es capa' de instalarB actuali'arB desinstalar 8 veri!icar paquetes. $os paquetes #M !ueron srcinalmente desarrollados por la empresa #ed Hat con la intencion de implementarlo en el sistema operativo #ed Hat $inu%. (ctualmente los paquetes #M son utili'ados por distri;uciones linu% como ?edoraB CentosB )use 8 K9ite o%. Comando Comentario rpm eneralmenteB se comien'a por listar el paquete para conocer el nom;re del mismo antes de desinstalarlo asi como tam;ien para asegurarse de que el paquete estO instalado en nuestro sistema. rpm rupoP 7;tiene in!ormación de los grupos 8 de sus paquetes constitutivos 8um groupinstall Pnom;reDel>rupoP Instala un grupo de aplicaciones 8um groupupdate Pnom;reDel>rupoP (ctuali'a un grupo de aplicaciones 8um groupremove PED +E Des@top nvironment-P limina un grupo de aplicaciones. Configuraci:n de ;3 $a con!iguración general de M se encuentra en /etc/yum.conf los repositorios M con!igurados en sistemas operativos de la !amilia #ed Hat se encuentran declarados en /etc/yum.repos.d/ ara usos mOs avan'ados agregaremos nuevas secciones 8 en caso de no encontrar lo que ;usca consulte man 8um.con!. [main] cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 metadata_expire=1800 installonly_limit=2 tsflasg=repackage # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d $a primera cosa que podemos notar de los arc9ivos de con!iguración es su estructura de ;loques de secciones con sección. Veremos que esta estructura se repite al momento de con!igurar los repositorios. n este caso 8um.con! en la sección main de!ine el comportamiento general de 8um 8 esta;lece las directivas ;aseB por e5emploB de dónde se encuentran el cac9e. Comentamos a a;a5o < 3" < un poco cada una de las directivas. cac6edir Directorio donde 8um de;e almacenar su cac9e 8 arc9ivos d;. l valor por omisión es Y/var/cac9e/8umZ. 7eepcac6e a sea Y1Z o Y:Z. Determina si 8um de;e o no mantener el cac9e de los enca;e'a dos 8 paquetes después de una instalación e%itosa. Valor por omisión es Z1Z +mantener los arc9ivosdebugle'el 4ivel de mensa5es de depuración en la salida. l rango prOctico es de :<1:. l valor por omisión es Y2Z. logfile #uta completa al nom;re de arc9ivo donde 8um de;e escri;ir sus actividades. e!actarc6 a sea Y1Z o Y:Z. uesto a Y1Z provoca que 8um update solo actualice los paquete de arquitectura que 9a8a instaladoB es decirB con esta opción 9a;ilitada 8um no instalarO un paquete i** para actual'iar un paquete i3*. or omisión el valor es Y1Z. obsoletes sta opción sólo tiene e!ecto durante una actuali'ación. Ha;ilita la lógica de procesamiento de o;solescencias 8um. s Ntil cuando se reali'a actuali'aciones de nivel de distri;ución +upgrade-. Vea tam;ién la documentación del comando 8um upgrade para mOs detalles. 7pción en la lnea de comando <> en los paquetes. Cuando estO 9a;ilitado en la sección mainB esta;lece el comportamiento por omisión para todos los repositorios. sta opción tam;ién determina si una instalación de un arc9ivo local #M serO veri!icado por su !irma >> o no. l valor por omisión es Y:Z. plugins a sea Y:Z o Y1Z. Conmutador glo;al para 9a;ilitar o des9a;ilitar las e%tensiones +plugins- de 8um. or omisión su valor es Y:Z +e%tensiones des9a;ilitadas-. Vea la sección $>I4) del manual 8um+- para mOs in!ormación acerca de la instalación de e%tensiones 8um. metadatae!pire Duración en segundos después del cual los metadatos caducarOn. (s entonces si los metadatos actuales descargados son menos segundos de antiguoB entonces 8um no actuali'arO dic9os metadatos a partir del repositorio. )i encuentra que 8um no estO descargando la in!ormación para actuali'aciones tan !recuente como usted quisieraB disminu8a el valor de este parOmetro. Tam;ién puede cam;iar del !ormato por omisión en segundos a dasB 9oras o minutos agregando dB 9 o m respectivamente al valor especi!icado. l valor por omisión es 1.& 9oursB para complementar 8um< updatesd e5ecutOndose una ve' por 9ora. Tam;ién es posi;le usar la pala;ra PneverP implicando que los metadatos nunca e%pirarOn. installonl*limit < 3& < Cantidad de paquetes listados en installonl8p@gs que se de;en mantener instalados al mismo tiempo. oner este valor a : des9a;ilita la !uncionalidad. or omisión el valor es Z3Z. tsflasg $ista separado por comas o espacios de ;anderas de transacción que serOn pasadas a rpm. stas inclu8en ZnoscriptsZB ZnotriggersZB ZnodocsZB ZtestZB 8 Zrepac@ageZ. uede poner todas o cualquiera de ellas. )in em;argoB si no sa;e qué 9acen éstas ;anderas en el conte%to de una transacción rpmB me5or no toque. or omisión la lista estO vaca. stas son sólo algunas directivasB para mOsB man 8um.con!. Dentro de 8um.con! puede incluir la con!iguración de los repositorios pero esa !orma de con!iguracióne estO en desuso 8 se pre!iere utili'ar arc9ivos individuales en /etc/8um.repos.d/ que comentaremos mOs adelante. Extensiones de ;3 do8nloadonl* ste paquete nos permite descargar los paquetes #M de alguna aplicación sin que estos sean instalados. $a !orma de instalar esta 9erramienta sera tecleando lo siguiente .. [BASH]# yum install yum-downloadonly Implementando donloadonl8====== $a manera de usar este comando es de la siguiente !orma.. [BASH]# yum install –downloadonly paquete1 fastestmirror sta e%tensión estO diseFada para ordenar la lista de espe5os por velocidad de respuestas de cada uno antes de comen'ar una descarga. $a !orma de instalar esta 9erramienta sera tecleando lo siguiente .. [BASH]# yum install yum-fastestmirror Implementando donloadonl8====== $a manera de usar este comando es de la siguiente !orma.. [BASH]# yum install paquete1 3tilidades ;3 *umdo8nloader sta 9erramienta complementa al plugin donloadonl8 8a que dic9o plugin sólo !unciona si el so!tare deseado no estO instalado. Veamos como !alla 8 cómo podemos resolver este pro;lema con 8umdonloader. [BASH]# Loading Setting Setting Reading Parsing Nothing yum --downloadonly install openssh-server "downloadonly" plugin up Install Process up repositories repository metadata in from local files package install arguments to do ues claroB no 9a8 nada que instalarB 8a estO instalado. Intentemos a9ora con 8umdonloader. [BASH]# yumdownloader openssh-server openssh-server-4.3p2-19.f 100% |=========================| 252 kB 00:01 $istoB 8a tenemos el rpm que queramos. pac7age;cleanup sta 9erramienta a8uda a detectar pro;lemas en la ;ase de datos rpm 8 a < 3* < resolverlos. Comando Comentario pac@ageuipo na !orma de conocer so;re cual )H$$ estamos tra;a5ando es tecleando el siguiente comando en una terminal # echo $SHELL /bin/bash )i o;tuviste el mismo resultado que en la linea de ari;a entonces estas utili'ando el )9ell as9B en caso contrario de no 9a;er o;tenido lo mismoB signi!ica entonces que tu estas usando algun otro )9ell. 3sando el comando cd current or@ing director8 o cd es el comando utili' ado para indicar al )9ell el directorio en el cual queremos tra;a5ar. Hagamos una prue;a de este comando navegando en nuestro propio sistema de arc9ivos. n la terminal teclee lo siguiente [BASH]# cd / ste comando le indica al ()H que queremos tra;a5ar en el directorio /B tam;ien conocido como rai' Rutas (+at%s) ara conocer el directorio actual de tra;a5o en el que se encuentra el ()H escri;a [BASH]# pwd / n el e5emplo anterior B el argumento / es conocido como la ruta o camino 9acia donde queremos dirigirnos. n particularB el argumento / es un ruta a;soluta Rutas A,solutas (lgunos e5emplos de rutas a;solutas son las siguientes /boot /etc /root < ": < /usr/local/bin 4ote que todas estas rutas a;solutas tienen un comun denominadorB nos re!erimos a la ;arra / (nalicemos a detalle la ultima linea del e5emplo )i usted tecle a ] cd 1usr1local1bin n ella indicamos al )9ell a traves del comando cd +current or@ing director8- que primero entre al directorio / B desde a9i luego entrara al directorio usr posteriormente al directorio local 8 recien desde a9i entrara a ;in. $as rutas a;solutas siempre comen'aran a evaluarse a partir de /. Rutas Relati!as $as rutas relativas son todas aquellas que no comien'an a evaluarse desde / or e5emploB si estamos tra;a5ando en la ruta 1usr [BASH]# cd /usr ntoncesB a9ora usted podra usar una ruta relativa para cam;iar el directorio actual de tra;a5o a 1usr1local1bin de la siguiente !orma [BASH]# cd local/bin [BASH]# pwd /usr/local/bin 3sando el 7 7 (punto a punto) l uso del . . sirve unicamente para regresar un nivel desde el directorio de tra;a5o en el cual estamos tra;a5ando. 5emplo [BASH]# cd /usr/local/bin [BASH]# pwd /usr/local/bin [BASH]# cd ../../ [BASH]# pwd /usr n la primera seccion del e5emplo indicamos a traves del comando cd +current or@ing director8que primero entre al directorio / B desde a9i luego entrara al directorio usr posteriormente al directorio local 8 recien desde a9i entrara a ;in. n la segunda seccion del e5emplo indicamos mediante el uso del +../- punto punto que regrese un nivelB pero inmediatamente indicamos nuevamente que retroceda otro nivel mas +../- or cada retorno de nivel de;era 9acerse uso del +..- punto punto Entendiendo el 7 (punto) l uso del punto +. - sirve para e5ecutar algNn programa situado en el directorio actual. 5emplo  [BASH]# $/e%ecuable n este e5emploB se e5ecutara el arc9ivo llamado e5ecuta;le que reside en el directorio actual de tra;a5o. %sando los comandos de inu! El comando ls Vamos a darle una pequeFa mirada al comando lsB el cualB 8a cono'ca tal ve'B pero por si no lo sa;e B este sirve para listar el contenido del directorio actual de tra;a5o. Hagamos un e5ercicioB con a8uda del comando Lcd muevase al directorio de tra;a5o /var [BASH]# cd /var (9ora con a8uda del comando Lls liste el contenido de dic9o directorio [BASH]# ls X11R6 cache crash games lib lock log mail opt run spool tmp )i al comando ls le agregamos el parametro spool/mail 3 2008 opt 17 11:40 run 9 04:49 spool 17 10:44 tmp 9 2008 X11R6 9 2008 yp $a opcion HI\E$M47,#)Tde!g9i5@lmnopqrst o D archivo1 l signo ma8or +R- le dice al ()H que escri;a la salida de ec9o a un arc9ivo llamado arc9ivo1. comando cat $ cp ara ver los contenidos de un arc9ivo en una terminalB use el comando cat [BASH]# cat archivo1 HELLO LINUX ienBa9ora podemos 9acer uso del comando cp para crear una copia del arc9ivo nom;rado Larc9ivo1 [BASH]# cp archivo1 copiadearchivo1 comando m! semos a9ora el comando mv para renom;rar Larc9ivo1 a Lnuevoarc9ivo1. [BASH]# mv archivo1 nuevoarchivo1 Veamos otra manera de usar el comando mvB 8a que este comandoB ademas de permitirnos renom;rar arc9ivosB nos permite mover uno o mas arc9ivos 9acia otra u;icacion. or e5emploB para mover arc9ivo1 a ] /var/ escri;ira [BASH]# mv archivo1 /var/ Procesando cadenas de te!to usando filtros n este capitulo cu;riremos los temas re!erentes a las 9erramientas comunmente implementadas en los procesadores de te%tos disponi;les para $inu% stas inclu8en diversas utilidades de !iltradoB que se usan para ;uscar 8 cam;iar arc9ivosB as como las 9erramientas de entrada 8 salida. s necesario comprender el uso de estas 9erramient asB de;ido a que son especialmente Ntiles en las la;ores administrativas diarias. istando el contenido de un arc6i'o n en capitulo *.&.* 9a;lamos un poco so;re el comando catB el cual como mencionamos es un < "" < comando mu8 usado para listar los contenido s de arc9ivos de con!igura cion. $a sinta%is para usar este comando es la siguiente [BASH]# cat nombreDelArchivo Ordenando lineas de un arc6i'o con $ort )ort nos permite ordenar los registros o lneas de uno o mOs arc9ivos. )e usa para ordenarB me'clarB 8 comparar lneas de arc9ivos. ste comando sigue la siguiente sinta%is [BASH]# sort opciones nombreDelArchivo Opciones #escripcion <; enere los siguientes arc9ivos (l terminalB e5ecute la siguiente orden [BASH]# sort archivo1 archivo2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - centos debian fedora ubuntu n este otro e5emploB dos arc9ivos se !usionan 8 se ordenan. Tam;ién es posi;le ordena r listas de nom;res por campos. $os campos se pueden separar por espacios o ta;uladores 8 son numerados empe'ando por cero. Cuando se ordenan camposB el sm;olo U precede al numero de campo con cada arc9ivo separado por espacios. >enere el arc9ivo llamado lista con el siguiente contenido [BASH]# vi lista - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - iliana castillo zaira munive alethya zamano pilar diaz mayra rodriguez mariana rivera 7rdenaremos esta lista por el apellido de estas personas de la siguiente manera [BASH]# sort +1 +0 lista - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - iliana castillo pilar diaz zaira munive mariana rivera mayra rodriguez alethya zamano l uso de estos campos permite muc9a !le%i;ilidad en ordenar listas en arc9ivos. s importante recordar que la utilidad sort no cam;ia el arc9ivo srcinal. $a salida se enva a la salida estOndar donde se puede visuali'ar o redireccionar 9acia otro comando o arc9ivo. Segmentando un texto con Cut $a utilidad cut se usa para escri;ir partes seleccionadas de un arc9ivo en la salida estOndar o < "* < ()H. $a utilidad cut tam;ién se puede usar para seleccionar columnas o campos desde arc9ivos espec!icos. s posi;le tam;ien seleccionar un tro'o de una lnea espec!icaB varios tro'osB o un rango especi!ico. $a siguiente ta;la muestra la gama de opciones que pueden ser integradas al comando cut Opciones #escripcion <; scri;e en la salida el rango de ;8tes especi!icos enere el arc9ivo llamado apodos con el siguiente contenido [BASH]# vi apodos - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - hackhat gaymarc bigbuitre javarambo rufodog (9ora veremos un e5emplo del comando paste aplicandolo al arc9ivo que aca;amos de generar en con5unto con el arc9ivo de la seccion *.*.2 llamado listas. [BASH]# paste listas apodos 4os dara como resultado los nom;res de la lista seguidos de los apodos. [BASH]# paste lista apodos - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - iliana castillo hackhat < "0 < zaira munive gaymarc alethya zamano bigbuitre pilar diaz javarambo mayra rodriguez rufodog mariana rivera ?ormateando parrafos l comando !mt !ormatea cada pOrra!o en un arc9ivo 8 la enva a la salida estandar. ste comando es utili'ado para especi!icar la anc9ura de las lneasB tam;ien puede 5untar o separa lneas en un es!uer'o para que estas tengan la misma longitud. 7tra de las !unciones de !mt es la de intentar separar las lneas al !inal de cada sentencia. Cuando esto no es posi;leB intenta romper la lnea después la primera antes de la Nltima l pala;ra sentencia. $a anc9ura por de!ecto que utili'ade!mt para unapala;ra lnea eso de 0& caracteres. anc9ode porlade!ecto puede ser modi!icado usando la opción adecuada en el comando !mt. $a siguiente ta;la muestra la gama de opciones que pueden ser integradas al comando !mt. Opciones #escripcion enere el arc9ivo llamado apodos con el siguiente contenido [BASH]# vi fedora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - Fedora es un sistema operativo basado en Linux que incluye loúltimo en software libre y de código abierto. Fedora es siempre gratis para que cualquiera lo use, modifique o distribuya. Lo construye gente alrededor del mundo que trabajan juntos como una comunidad: El Proyecto Fedora es abierto y todos son bienvenidos.  aplique el comando !mt de la siguiente !orma [BASH]# fmt -40 fedora odra veri!icar que el te%to se !ormateo correctamente. orrando o sustitu$endo caracteres7 Ha8 veces en las que se quiere ;uscar en un documento caracteres espec!icos 8 luego ;orrarlos o reempla'arlos por otros. n e5emplo sera un documento que utili'a ma8Nsculas 8 minNsculasB pero se pre!iere que todo el documento esté en minNsculasB para elloB el comando tr se encarga de llevar a ca;o esta area ste comando sigue la siguiente sinta%is < " < [BASH]# tr opciones $a siguiente ta;la muestra la gama de opciones que pueden ser integradas al comando tr. Opciones #escripcion enere un arc9ivo llamado semana con el siguiente contenido [BASH]# vi semana - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - Lunes Martes Miercoles Jueves Viernes Sabado Domingo  aplique el comando !mt de la siguiente !orma [BASH]# tr -d aeiou Dic9a accion ;orrara todas las vocales del arc9ivo Lsemana [BASH]# cat semana | tr -d - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - Lns Mrts Mrcls Jvs Vrns Sbd Dmng .er el inicio de un arc%i!o l comando 9ead nos permite ver el comien'o de un arc9ivo. or de!ecto nos muestra las 1: primeras lneas. $a siguiente ta;la muestra la gama de opciones que pueden ser integradas al comando 9ead. Opciones #escripcion . enere un arc9ivo llamado arreglo con el siguiente contenido [BASH]# vi arreglo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – - - - primero segundo tercero cuarto quinto sexto septimo octavo novedo decimo  aplique el comando split de la siguiente !orma [BASH]# split -l2 arreglo arreglosegmentado l arc9ivo Larreglo se divide en varios arc9ivos nom;rados LarreglosegmentadoB cada uno de los cuales contiene cinco lneas. < &1 < Eliminando lineas repetidas en un arc%i!o l comando uniq es una 9erramienta que nos a8uda a eliminar los datos repetidos en un arc9ivo ste comando sigue la siguiente sinta%is [BASH]# uniq opciones nombreDelArchivo $a siguiente ta;la muestra la gama de opciones que pueden ser integradas al comando uniq. Opciones #escripcion speci!ica que grupo de in!ormacion no se muestra reciaB 8 la !igura del daimonB un espritu interiorB equivalente a un POngel protectorP que guia;a 8 protega a los 9om;res. $os programas demonios reci;en este nom;re en los sistemas 4IJ. n otros sistemas e%isten proce sos similares como los T)#s de M)4B donde se utili'an nom;res de opciones largas 8 van precedidas por do;le guión << • • • )ea cual sea el estilo utili 'adoB dependiendo de las opciones indicadasB varias columnas se mostrarOn en el listado de procesos que resulteB estas columnas pueden ser entre muc9as otrasB las siguientes Opciones #escripcion p o ID rocess IDB nNmero Nnico o de identi!icación del proceso.  o ID arent rocess IDB padre del proceso  o ID ser IDB usuario propietario del proceso t o TT o TT Terminal asociada al procesoB si no 9a8 terminal aparece entonces un _ T o TIM Tiempo de uso de cpu acumulado por el proceso c o CMD l nom;re del programa o camndo que inició el proceso #)) #esident )iseB tamaFo de la parte residente en memoria en @ilo;8tes ) o )I TamaFo virtual de la imagen del proceso 4I 4iceB valor nice +prioridad- del procesoB un nNmero positivo signi!ica menos tiempo de procesador 8 negativo mOs tiempo +<16 a 16- C o C orcenta5e de cpu utili'ado por el proceso < *1 < )TIM ) o )T(T )tarting TimeB 9ora de inicio del proceso )tatus del procesoB estos pueden ser los siguientes [ # runna;leB en e5ecuciónB corriendo o e5ecutOndose [) sleepingB proceso en e5ecución pero sin actividad por el momentoB o esperando por algNn evento para continuar [T sToppedB proceso detenido totalmenteB pero puede ser reiniciado [  'om;ieB di!untoB proceso que por alguna ra'ón no terminó de manera correctaB no de;e 9a;er procesos 'om;ies [ D uninterrupti;le sleepB son procesos generalmente asociados a acciones de I7 del sistema [ J deadB muertoB proceso terminad o pero que sigue apareciendoB igual que los  no de;eran verse nunca $as opciones para el comando dd se muestran en la siguiente ta;la  Opciones #escripcion eneralmente resulta mOs < ** < cómodo proporcionar el tamaFo en megas +o en Es-. na opción sera entonces dar U2:"M odemosB nuevamente con PpPB c9ecar el estado de nuestra ta;la de particiones actual Command (m for help): p Disk /dev/sda: 146.8 GB, 146815737856 bytes 255 heads, 63 sectors/track, 17849 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sda1 * /dev/sda2 /dev/sda3 /dev/sda4 Start 1 26 2576 2707 End 25 2575 2706 4000 Blocks Id 200781 20482875 1052257+ 10394055 System 83 Linux 83 Linux 83 Linux 8e Linux LVM (nalicemos en este punto las siete columnas que la impresión de la ta;la de particiones nos da. n la primera columna se encuentra el dispositivo resultado de la partición de disco sda. (sB podemos o;servar que en este momento contamos con " particiones sda1B sda2B sda3 8sda". $a segunda columna nos in!orma que es la primera partición del disco la que contiene la parte ;ootea;le. $a tercera 8 cuarta columna nos dan in!ormación acerca del cilindro en el cual comien'a 8 termina la partición respectivamente. $a quinta nos dice cuantos ;loc@s ocupa ésta. or NltimoB con la se%ta 8 séptima columna sa;emos el tipo de partición +Identi!icador 8 sistema respectivamente-. De nuestro e5emploB sa;emos que contamos con 3 particiones P$inu%P +Id 3- 8 una P$inu% $VMP +ide e-. )i pensamos utili'ar la partición recién creada como memoria e%tendidaB es el momento de asignar el tipo de partición. sto lo 9acemos con Command (m for help): t Partition number (1-4): 3 Hex codesystem (type L to list codes): 82 Changed type of partition 3 to 82 (Linux swap / Solaris) s decirB asignamos el sistema P$inu% sap / )olarisP +con id=2-. C9ecamos Command (m for help): p Disk /dev/sda: 146.8 GB, 146815737856 bytes 255 heads, 63 sectors/track, 17849 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sda1 * /dev/sda2 /dev/sda3 /dev/sda4 Start 1 26 2576 2707 End 25 2575 2706 4000 Blocks Id 200781 20482875 1052257+ 10394055 System 83 Linux 83 Linux 82 Linux swap / Solaris 8e Linux LVM Con !dis@ podemos asignar muc9os otros tipos de sistema. Con PlP podemos o;tener la lista completa de opciones Command (m for help): l 0 Empty 1 FAT12 2 XENIX root 3 XENIX usr 4 FAT16 <32M 5 Extended 6 FAT16 7 HPFS/NTFS 8 AIX 1e Hidden W95 FAT1 80 Old Minix be Solaris boot 24 NEC DOS 81 Minix / old Lin bf Solaris 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT41 PPC PReP Boot 85 Linux extended c7 Syrinx 42 SFS 86 NTFS volume set da Non-FS data 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / . 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility < *0 < 9 a b c e f 10 11 12 14 16 17 18 1b 1c AIX bootable 4f QNX4.x 3rd part 8e OS/2 Boot Manag 50 OnTrack DM 93 W95 FAT32 51 OnTrack DM6 Aux 94 W95 FAT32 (LBA) 52 CP/M 9f W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 W95 Ext'd (LBA) 54 OnTrackDM6 a5 OPUS 55 EZ-Drive a6 Hidden FAT12 56 Golden Bow a7 Compaq diagnost 5c Priam Edisk a8 Hidden FAT16 <3 61 SpeedStor a9 Hidden FAT16 63 GNU HURD or Sys ab Hidden HPFS/NTF 64 Novell Netware b7 AST SmartSleep 65 Novell Netware b8 Hidden W95 FAT3 70 DiskSecure Mult bb Hidden W95 FAT3 75 PC/IX Linux LVM df BootIt Amoeba e1 DOS access Amoeba BBT e3 DOS R/O BSD/OS e4 SpeedStor IBM Thinkpad hi eb BeOS fs FreeBSD ee EFI GPT OpenBSD ef EFI (FAT-12/16/ NeXTSTEP f0 Linux/PA-RISC b Darwin UFS f1 SpeedStor NetBSD f4 SpeedStor Darwin boot f2 DOS secondary BSDI fs fd Linux raid auto BSDI swap fe LANstep Boot Wizard hid ff BBT inalmenteB guardamos los cam;ios Command (m for help): w 8 salimos %tili=ando m7fs na ve' se 9a creado la particiónB el sistema de arc9ivos de;e ser aFadido para que $inu% pueda 9acer uso de este espacio. $a utilidad m@!s se usa para crear sistemas de arc9ivos en particiones vacas. $a utilidad m@!s se utili'a con muc9as opciones distintasB las cuales se pueden ver en la siguiente ta;la Opciones +giga;8tes-. Muestra in!ormación so;re los inodos li;res en lugar de la in!ormación por de!ecto so;re el espacio li;re en disco. enera un gran total de todos los elementos listados <9 Muestra los resultados en un !ormato legi;le para las personasB inclu8endo su!i5os como M +mega;8tes- 8 > +giga;8tes-. ID nouser ro9i;ir a un usuario ordinario +esto esB distinto de root- montar el sistema de arc9ivos. sto es lo predeterminado ro Montar el sistema de arc9ivos en modo de sólo lectura. r Montar el sistema de arc9ivos de lectura 8 escritura suid ermitir el e!ecto de los ;its )ID 8 )>ID s8nc Toda la /) al sistema de arc9ivos de;era 9acerse sncronamente. user ermitir a un usuario ordinario montar el sistema de arc9ivos users ermite a cualquier usuario el monta5e/desmonta5e de el sistema de arc9ivos #esmontando el sistema de arc6i'os $os sistemas de arc9ivos pueden ser desmontados usando el comando umount. Cuando un sistema de arc9ivos es desmontadoB los contenidos del Or;ol principal se actuali'anB no pudiendose usar el umount si el sistema de arc9ivos que se quiere desmontar estO en uso. )i el sistema de arc9ivos estO en uso el comando umount darO un error. sto puede ocurrir por e5emplo cuando tenemos < 03 < a;ierto un arc9ivo de un DVD o un proceso estO 9aciendo uso del mismo. 7tros errores pueden surgir si quitamos dispositivos removi;les sin antes desmontarlos $a sinta%is ;Osica de esta utilidad es la siguiente [BASH]# umount [opciones] [dispositivo|directorio] l comando mount admite dos tipos de opcionesB unos para el comando en siB 8 otros para especi!icar opciones del sistema de arc9ivos. Opciones #escripcion Desmonta todos los !iles8stems descritos en /etc/mta;. ste arc9ivo estO mantenido por uota Muestra las limitaciones de cuota en usuario o en grupo. $a opción uotaon (ctiva las cuotas con!iguradas previamente en uno o mOs sistemas de arc9ivos. $a sinta%is ;Osica de esta utilidad es la siguiente [BASH]# quotaon [opciones] puntoDeMontaje 2 ( Ejemplo:/home /var) [BASH]# quotaon [opciones] -a )e pueden utili'ar muc9as opciones con el comando quotaon. $as utili'adas mOs !recuentemente son las que se muestran en la ta;la siguiente Opciones #escripcion uotaoff Desactiva las cuotas de disco en uno o mOs sistemas de arc9ivos $a sinta%is ;Osica de esta utilidad es la siguiente [BASH]# quotaoff [opciones] puntoDeMontaje 2 ( Ejemplo:/home /var) [BASH]# quotaoff [opciones] -a )e pueden utili'ar muc9as opciones con el comando quotao!!. $as utili'adas mOs !recuentemente son las que se muestran en la ta;la siguiente Opciones #escripcion uotac%ec- #evisa los sistemas de arc9ivos 8 compila las ;ases de datos de cuotas. sta comando no estO incluido espec!icamente en los o;5etivos del e%amen $I 1:1B pero es un componente importante en el sistema de cuotas de $inu%. l comando quotac9ec@ uota Modi!ica las cuotas de usuario o grupo. ste es un comando interactivo que utili'a un editor de te%to para con!igurar los parOmetros de cuotas para usuarios o grupos. or de!ecto se utili'a el editor vi. Cuando se enva el comandoB se e5ecuta un editor con un arc9ivo temporal que contiene las opciones de cuotas. (l guardar el arc9ivo temporalB el editor !inali'a 8 los cam;ios se guardan en las ;ases de datos de cuotas. n la primera !orma del comandoB se modi!ica una lista de usuarios o grupos separados por espacios en ;lanco especi!icados en el apartado nom;res. )i se inclu8e la opción

uota )e utili'a para o;tener un in!orme de la situación de las cuotas. n la primera !orma del comand oB repquota mostrarO un in!orme por usuario o por grupo de las cuotas de los sistemas de arc9ivos indicados. n la segunda !ormaB la opción arc6i'o- directorio- otro? @/El propietario puede leer ./El propietario puede escribir @/El propietario puede e(ecutar /El grupo puede leer ,/El grupo puede escribir B/El grupo puede e(ecutar 0/%suario >no pertenece al grupo * al propietario? puede leer /%suario puede escribir D/%suario puede e(ecutar stos permisos tienen valores numéricos como se muestran en la siguiente ta;la Permiso alor Numerico r "  % 2 1 < +guion- : $os valores numéricos 9acen posi;le aFadir permisos a la ve' 8 e%presarlo de un modo sencillo. or < 1 < e5emploB si un arc9ivo permite al usuario r%B el valor numérico sera "+r-U2+ -U1+%-=0. l !ormato del con5unto de los permisos de un arc9ivo se muestra en la siguiente !igura. $a ta;la siguiente muestra la conversión numérica de un con5unto de distintos permisos posi;les Permiso alor Numerico 1 <<<<<<<<% 2 <<<<<<<< 3 <<<<<<<% " <<<<<ID)tic@8 ;it • • • S3ID $a asignación de ID de usuario se aplica cuando se desea que un determinado usuario e5ecute un programa que de otro modo no podra. or e5emploB sólo el usuario root sera capa' de e5ecutar la !unción !uncion %8' +comen'ar ;ac@upsB restaurar el sistemaB entrar en otros recursosB etc- a causa de las rami!icaciones de seguridad B pero se necesita que los usuarios e5ecut en un s9ell script para reali'ar esta acciónB porque no se dispone del tiempo necesario para 9acerlo personalmente. )e puede crear este s9ell script como root 8 asignar el permiso )ID de modo que el usuario que e5ecute el script sea root sólo dentro de ese script. (ntes 8 después del manuscritoB es Nnicamente un usuarioB pero durante la e5ecucion del script es como si !uera root. l permiso numerico de )IDB ":::B es sumado al valor de otros permiso s. na ve' aplicado esteB cam;i a la % en el campo del e5ecuta;le para el propietario de los permisos a una s S*ID )imilar en la naturale'a a )IDB el permiso de la identi!icación de grupo del sistema se aplica cuando es necesario que la persona que e5ecuta el arc9ivo sea un miem;ro del grupo que posee el arc9ivo +8 no el propietario-. sto cam;ia el % en el permiso del grupo a un sB 8 el valor numérico es 2::: Sti-$ it ste permiso no tra;a5a como los otros permisos especiales. Con un valor numérico de 1:::B sus operaciones di!ieren cuando estOn aplicadas a un directorio o a un arc9ivo. Cuando estO aplicado a un directorioB evita que los usuarios supriman arc9ivos de las carpetas que les conceden el permiso de escrituraB a menos que sean el propietario del arc9ivo. or de!ectoB cualquier usuario que tenga permiso de escritura en un directorio puede suprimir arc9ivos dentro de ese directorioB incluso si no tiene el permiso de escritura de ese arc9ivo. < 3 < Cuando se aplica so;re un arc9ivoB el arc9ivo se convierte en Lstic@8 +;loqueado-. $a primera ve' que se accede o se e5ecuta el arc9ivo 8 se carga en memoriaB permanece cargado en memoria !sica +#(M- o espacio sap de modo que pueda !uncionar mOs rOpidamente que si se lee desde el disco. )i el arc9ivo no es e5ecuta;leB el Nltimo ;it de permiso + para otra categoria- se convierte en T. )i el arc9ivo es un arc9ivo e5ecuta;leB o el permiso se aplica a un directorioB el ;it pasado se convierte en una t. Cuando se aplica el permiso c9mod 8 las letrasB aparece t de todos modos +sea arc9ivo o directorio-. Administrando el propietario de los arc#ivos Comando c6o8n l comando c9on cam;ia el propietario de cada arc9ivoB usuario o grupoB si sólo se da un nom;re de usuario +o ID numérico-B entonces ese usuario se convierte en el propietario de cada arc9ivo dadoB 8 el grupo al que pertenece el arc9ivo no cam;ia. )i al nom;re de usuario sigue un signo de dos puntos 8 un nom;re de grupo o >ID numéricoB sin espacios entre ellosB entonces tam;ién se cam;ia el grupo al que pertenece cada arc9ivoB se usa con la siguiente sinta%is $a sinta%is ;Osica de esta utilidad es la siguiente [BASH]# chown [opciones] usuario:grupo archivo )e pueden utili'ar muc9as opciones con el comando quotaon. $as utili'adas mOs !recuentemente son las que se muestran en la ta;la siguiente Opciones 4/$I4JB pero tam;ién puede usar el C s9ell o el Eorn )9ell . Cada uno de estos s9ell dispone de su propio arc9ivo o arc9ivos de iniciali'ación. )i no estOs seguro de que s9ell es el s9ell predeterminado de su equipo e5ecute el siguiente comando [BASH]# echo $SHELL /bin/bash 7;serve la salida del comando. )i es /bin/bash /bin/csh /bin/ksh Su shell de entrada sera el Shell Bourne Su shell de entrada sera el shell C Su shell de entrada sera el shell Korn )in tener en cuenta el s9ell que esté usandoB cuando entra por primera ve' en el sistemaB éste procesa generalmente el arc9ivo per!il /etc/pro!ile. sualmenteB el administrador del sistema es el dueFo de este arc9ivoB 8 los usuarios lo pueden leer pero no escri;ir en él. Después de que el sistema e5ecute el per!il del sistemaB este procesa el per!il del usuario conten ido en el !ic9ero /.;as9Gpro!ile. l per!il del usuario es uno o varios arc9ivos de iniciali'ación que de!inen el entorno de tra;a5o. or e5emploB si 5avier se encuentra en el entorno !edora su sistema compro;arO dic9o arc9ivo o grupo de arc9ivos cada ve' que empiece una nueva Herramienta del s9ell o una ventana de la Herramienta de comandos. )egNn que s9ell predeterminado esté esta;lecidoB su per!il de usuario serO uno de los siguientes .bash_profile (para los shell Bourne y Korn) .login y .cshrc (para el shell C) )u !ic9ero !ic9eros de per!il de usuario estOn situados en su directorio de usuario 8 le permiten con!igurar su entorno de otra;a5o segNn sus pre!erencias. ?ic%ero /etc/profile ste !ic9ero conti ene la con!iguracio n del sistema 8 se e5ecuta durante el inicio de cada sesionB contiene la de!inicion de las varia;les glo;ales para todos los usuarios. < * < ?ic%ero /etc/,as%rc ?ic9ero con las !unciones 8 los alias comunes que sera invocado a trave' del !ic9ero /;as9rc de cada usuario. ?ic%eros /7,as%profile B /7,as%logout $ /7,as%rc %isten tres !ic9eros en el directorio de cada usuario los cuales tienen un signi!icado especial para el s9ell as9. stos !ic9eros permiten al usuario con!igurar el entorno de su cuenta automaticamente cuando entra en el sistemaB cuando arranca un su;s9ell o e5ecutar comandos cuando sale del sistema. $os nom;res de estos !ic9eros son /.;as9Gpro!ileB /.;as9rc 8 /.;as9Glogout. )i ninguno de estos !ic9eros e%iste en el directorio del usuarioB /etc/pro!ile es utili'ado por el sistema como !ic9ero de con!iguracion de ;as9. /7,as%profile ste !ic9ero es el mas importante de los tres. s leido 8 los comandos incluidos en elB e5ecutadosB cada ve' que el usuario entra en el sistema. Cualquier cam;io 9ec9o en este !ic9ero no tendra e!ecto 9asta que salgamos 8 entremos en el sistema de nuevo. as9 permite dos sinonimos para este !ic9eroB .;as9Glogin +derivado del C s9ell- 8 .pro!ile +derivado del ourne 8 Eorn s9ell-. )i .;as9Gpro!ile no e%isteB el sistema ;uscara primero .;as9Glogin 8 luego .pro!ile. )olamente uno de estos !ic9eros es leidoB en el caso que e%istan simultaneamente. /7,as%rc s leido cuando el usuario arranca un su;s9ellB escri;iendo por e5emplo ;as9 en la linea de comandos. sto nos permite e5ecutar di!erentes comandos para la entrada al sistema o para la e5ecucion de un su;s9ell. /7,as%logout s el !ic9ero leido por as9B cuando salimos del sistema. odemos de!inirB por e5emplo que se ;orren los !ic9eros temporales creados en nuestra ultima sesion o registrar el tiempo que 9emos estado utili'ando el sistema. )i .;as9Glogout no e%isteB ningun comando sera e5cutado a nuestra salida. /inputrc De!ine las opciones de entrada del teclado. ara eliminar el sonido de error se agrega la siguiente linea al !inal del !ic9ero set ;ell ' BASH La ruta de acceso completa usada para ejecutar la instancia actual de bash <  < BASH_ENV Si esta variable esta definida cuando bash es llamado para ejecutar un script, su valor es expandido y usado como el nombre del fichero leido antes de ejecutar el script. BASH_VERSION El numero de version de bash usada EUID El identificador numerico de usuario del usuario actual GROUPSUna matriz que contiene la lista de los grupos a que pertenece el usuario actual HISTFILESIZE El numero maximo de lineas contenidas en la historia de comandos, por defecto 500 HOSTNAME El nombre de maquina actual HOSTTYPE Cadena describiendo la maquina que esta ejecutando Bash MACHTYPE Cadena describiendo el tipo de sistema que esta ejecutando Bash OLDPWDDirectorio previo definido por el comando 'cd' OSTYPECadena describiendo el sistema operativo que esta ejecutando Bash PPID El numero de proceso del proceso padre del interprete de comandos PS3 El valor de esta variable se usa como 'prompt' PWD Directorio actual definido por el comando 'cd' SECONDS Numero de segundos desde que Bash fue arrancado SHELLOPTS Lista con opciones de Bash activadas UID El valor numerico real del usuario actual Como esta,lecer la !aria,le +A= $a varia;le de entorno (TH se usa para u;icar comandos dentro de la 5erarqua de directorios de >4/$I4J. (l !i5ar (TH se crea un con5unto de directorios !i5os que el sistema ;uscarO siempre que un usuario. escri;a el nom;re de un comando. or e5emploB si no tiene esta;lecida ninguna varia;le (TH 8 quiere copiar un arc9ivoB tendrO que introducir el nom;re de ruta de acceso completo para el comandoB /usr/;in/cp. )in em;argoB si 9a esta;lecido la varia;le (TH para incluir el directorio /usr/;inB podrO simplemente escri;ir cp 8 el sistema e5ecutarO siempre el comando. sto es de;ido a que su sistema ;usca el comando cp en todos los directorios nom;rados en la varia;le (TH 8 lo e5ecuta cuando lo encuentra. ara los s9ell ourne 8 EornB la varia;le (TH se especi!ica en el arc9ivo .;as9Gpro!ile de su directorio personal utili'ando la siguiente sinta%is PATH=/usr/bin:/home/bin .aria,les locales $ glo,ales de S%ell stas varia;les pueden ser varia;les locales 8 son de!inidas solo en el ()H local. Tu puedes pasar estas varia;les de locales a glo;ales e%portandolas a tu entorno de desarrollo 5emplo [BASH]# [BASH]# [BASH]# [BASH]# [BASH]# saludo='Linux Para Para Todos' echo $saludo Linux Todos bash echo $saludo exit exit Como podemos o;ser var asignamos a la varia;le Lsaludo  la cadena L$inu% ara Todos 8 luego mostramos su contenido. )eguido a ello invocamos una segunda terminal 8 nuevamente imprimimos el contenido de la < 6 < varia;le LsaludoB la cual no es mostrada de;id o a que es una varia;le local 8 no glo;al. ara solucio nar este pro;lema se de;e e%portar la varia;le local lo cual 9ara que la varia;le se convierta en varia;le glo;al. 5emplo [BASH]# [BASH]# [BASH]# [BASH]# [BASH]# saludo='Linux Para Todos' export saludo bash echo $saludo Linux Para Todos exit exit l comando Le%port convierte la varia;le local a glo;alB para e%cluir la varia;le recien e%portada use el comando Lunset 5emplo [BASH]# unset saludo Alias para el Shell Bash l comando alias permite al usuario crear ata5os a los comandos mas implementados. 5emplo [BASH]# ls amsn_received Documents Objetivos.png RPM-Como.pdf bin kernelfedora.pdf l comando anterior tiene la !uncion de listar el contenido de un directorioB suponga que usted quisiera implementar este comando para ademas de listar el contenido le arro5e datos mas relevantes como por e5emploB permisos de e5ecucionB numero de enlacesB !ec9a de creacion 8 tamaFoB para ello se implementan los alias de comandos. 5emplo [BASH]# alias ls='ls -l' [BASH]# ls drwx------ 2 hack users 4096 jun 29 09:46 amsn_received drwxr-xr-x 2 hack users 4096 jun 9 05:01 bin drwxr-xr-x 2 hack users 4096 jun 9 05:01 Documents -rwxr-xrx 1 hack users 64472 jun 1 17:23 Objetivos.png -rwxr-xr-x 1 hack users 78002 jun 5 15:25 RPM-Como.pdf -rw-r--r-- 1 hack users 1439863 jun 16 10:38 kernelfedora.pdf ara eliminar los alias asignados use el comando Lunalias [BASH]# unalias ls ?unciones de S%ell as% $as !unciones son mu8 perecidas a los alias pero estas admite n una gama mas amplia de instruccio nes para su e5ecución. $as !unciones se constru8en mediante la siguiente sinta%is Function nombreDeLafuncion() {listaDeComandos;} < 6: < Donde function Orden que invoca al comando function , es opcional nombreDeLaFuncion()El nombre de la funcion listaDeComandos El cuerpo de la funcion 5emploConstru8endo una !uncion [BASH]# function listado() { pwd; ls;} $a !uncion anteriormente de!inida se usa de la siguiente manera [BASH]# function /home/valdo/lpic/general-linux-2/notes CVS _whizzy_gl2.notes.fmt _whizzy_gl2.notes.pag Ejemplos validos en la declaracion de funciones [BASH]# function look() { pwd; ls;} [BASH]# function look { pwd; ls; } [BASH]# $ look() { pwd; ls;} [BASH]# look() > { > pwd; > ls; > } Ejemplos invalidos en la declaracion de funciones [BASH]# function look() pwd; ls; [BASH]# look() { pwd; ls } [BASH]# function look() {pwd; ls;} +ersonalizar o escri,ir scripts simples n este capitulo estudiaremos la !orma de crear sencillos scripts mediante la implementacion de sentencias de control. stas construcciones nos a8udan a controlar la e5ecucion de un script 8 a o;tener diversos resultados dependiendo de las condiciones que se cumplan o no cuando e5ecutamos el script. n as9 e%isten estas construcciones para controlar el !lu5o de e5ecucion de un script if/else: Ejecuta una serie de comandos dependiendo si una cierta condicion se cumple o no. for: Ejecuta una serie de comandos un numero determinado de veces. while: Ejecuta una seria de comandos mientras que una determinada condicion sea cumpla. until: Ejecuta una serie de comandos hasta que una determinada condicion se cumpla. case: Ejecuta una o varias listas de comandos dependiendo del valor de una variable. select: Permite seleccionar al usuario una opcion de una lista de opciones en un menu. $a ma8oria de condiciones utili'adas con estas construcciones son comparaciones de cadenas al!anumericas o numericasB valores de terminacion de comandos 8 compro;aciones de atri;utos de !ic9eros. (ntes de seguir viendo como estas construcciones se pueden utili'arB vamos a ver como las condiciones se pueden de!inir. Comparaciones de cadenas alfanumericas 7perador cadena1 cadena1 cadena1 cadena1 )igni!icado = cadena2 != cadena2 < cadena2 > cadena 2 cadena1 cadena1 cadena1 cadena1 es no es es igual a cadena2 es igual a cadena2 menor que cadena2 mayor que cadena 2 < 61 < -n cadena1 -z cadena1 cadena1 no es igual al valor nulo (longitud mayor que 0) cadena1 tiene un valor nulo (longitud 0) Comparacion de 'alores numericos 7perador x x x x x -lt y -le y -eq y -ge y -gt y x -ne y )igni!icado x menor que y x menor o igual que y x igual que y x mayor o igual que y x mayor que y x no igual que y Comparaciones de atributos de fic6ero Operador -d fichero -e fichero -f fichero -r fichero -s fichero -w fichero -x fichero -O fichero -G fichero fichero1 -nt fichero1 -ot Significado Fichero existe y es un directorio Fichero existe Fichero existe y es un fichero regular Tienes permiso de lectura en fichero Fichero existe y no esta vacio Tienes permiso de escritura en fichero Tienes permiso de ejecucion en fichero Eres el due ño del fichero El grupo del fichero es igual al tuyo fichero2 fichero1 es mas reciente que fichero2 fichero2 fichero1 es mas antiguo que fichero2 $entencia if $a sentencia i! es un condicional simpleB tal ve' la 9a8as visto antes en algunos otros lengua5es de programacion. )u sinta%is es la siguiente if cmd then cmd1 cmd2 cmdn elif cmd3 then cmd4 else cmd5 cmd6 cmdm fi $a sentencia i! tra;a5a de la siguiente !orma n caso que el comando cmd 9a8a sido e5ecutad o con é%itoB los comandos del ;loque del t9en +cmd1B cmd2 8 cmdn- serOn e5ecutadosB en caso contrarioB los comandos e5ecutados serOn los del ;loque opcional eli! el cual veri!ica los comandos del ;loque del t9en +cmd3- los cuales seran e5ecutadosB en caso contrario sera pasado al siguiente ;loqueB el else +cmd3B cmd" 8 cmdm-B terminando con un !i. 5emplo #!/bin/bash < 62 < ec9o  (divina el valor numerico de la varia;le read ( i!  f( = 1  t9en ec9o P(certasteP e%it : eli!  f( = 2  t9en ec9o PMu8 cercaP else ec9o P$e5osss....P !i e%it : $entencia for l ;ucle !or en as9 es un poco distinto a los ;ucles !or tradicional es de otros lengua5es como C o \avaB sino que se parece mOs al ;ucle !or eac9 de otros lengua5esB 8a que aqu no se repite un nNmero !i5o de vecesB sino que se procesan las pala;ras de una !rase una a una. )u sinta%is es la siguiente for var [in lista] que usan $var ····· done do ····· Sentencias )i se omite in listaB se recorre el contenido de fhB pero aunque va8amos a recorrer esta varia;leB en este tutorial la indicaremos e%plcitamente por claridad. or e5emplo si queremos recorrer una lista de planetas podemos 9acer for planeta in Mercury Venus Terra Marte Jupiter Saturno do echo $planeta # Imprime cada planeta en una í lnea done $a lista del ;ucle !or puede contener comodines. or e5emploB el siguiente ;ucle muestra in!ormación detallada de todos los !ic9eros en el directorio actual for fichero in * do ls -l "$fichero" done $entencia 86ile * until $a sinta%is del comando 9ile es la siguiente while comando do ····· done $a sinta%is del comando until es la siguiente until comando do ····· done n este caso el comando tam;ién puede ser una condición encerrada entre  . $a Nnica di!erencia entre 9ile 8 until es que 9ile se e5ecuta mientras que el código de terminación del comando sea e%itosoB es decir :B mientras que until se e5ecuta 9asta que el código de terminación sea e%itosoB segNn esto until se puede interpretar como e5ecutar varias veces un comando 9asta que tenga e%ito. 5emplo #!/bin/bash Script que muestra los directorios de PATH path=$PATH while [ $path ]; do echo ${path%%:} if [ ${path#:} = $path ]; then path= else path=${path#:} fi done < 63 < $entencia case Mientras que esta sentencia en lengua5es como C o \ava se usa para compro;ar el valor de una varia;le simpleB como un entero o un carOcterB en as9 esta sentencia permite reali 'ar una comparación de patrones con la cadena a e%aminar. )u sinta%is es la siguiente case cadena in patron1) Sentencias ;; patron2) Sentencias ;; ····· esac Cada patrón puede estar !ormado por varios patrones separados por el carOcter X. )i cadena cumple alguno de los patronesB se e5ecutan sus correspondientes sentencias +las cuales se separan por S- 9asta SS. 5emplo /bin/bash Script que convierte ficheros de imagen al formato .jpg for fichero in "$@" do fichero_ppm=${fichero%.}.ppm case $fichero in .jpg) exit 0;; .tga) tgatoppm $fichero > $fichero_ppm;; .xpm) xpmtoppm $fichero > $fichero_ppm;; .pcx) pcxtoppm $fichero > $fichero_ppm;; .tif) tifftopnm $fichero > $fichero_ppm;; .gif) figtoppm $fichero > $fichero_ppm;; .pnm|.ppm) ;; ) echo "Formato .${fichero##.} no soportado" exit 1;; esac fichero_salida=${fichero_ppm%.ppm}.jpg pnmtojpeg $fichero_ppm $fichero_salida if ! [ $fichero = $fichero_ppm ]; then rm $fichero_ppm fidone > $entencia select $a sentencia select nos permite generar !Ocilmente un menN simple. )u sinta%is es la siguiente select variable [in lista] do Sentencias que usan $variable done Vemos que tiene la misma sinta%is que el ;ucle !orB e%cepto por la pala;ra select en ve' de !or. $a sentencia genera un menN con los elementos de listaB dond e asigna un nNmero a cada elementoB 8 pide al usuario que introdu'ca un nNmero. l valor elegido se almacena en varia;leB 8 el nNmero elegido en la varia;le #$. na ve' elegida una opción por parte del usuario B se e5ecuta el cuerpo de la sentencia 8 el proceso se repite en un ;ucle in!inito. (unque el ;ucle de select es in!inito +lo cual nos permite volver a pedir una opción cuantas veces 9aga !alta-B el ;ucle se puede a;andonar usando la sentencia ;rea@. $a sentencia ;rea@B al igual que en C 8 \avaB se usa para a;andonar un ;ucleB 8 se puede usar en el casoB tanto de selectB como de los ;ucles !orB 9ile 8 until. ero a di!erencia de C 8 \ava no sirve para a;andonar la sentencia caseB sino que ésta se a;andona usando los dos puntos comas SS. l prompt que usa la !unción es el de!inido en la varia;le de entorno )3B 8 es 9a;itual cam;iar este prompt antes de e5ecutar select para que muestre al usuario un mensa5e mOs descriptivo. or de!ecto el valor de )3 es `_B lo cual no es un prompt que suela gustar < 6" < especialmente a los usuarios. Mane(o de datos en M*$F Conectarse 8 desconectarse del servidor ara conectarse al servidorB generalmente se le porporcionarO a m8sql un nom;re de usuario 8 una contraseFa. )i el servidor se estO e5ecutando en un ordenador distinto a donde estO esta;leciendo la cone%iónB tam;ién se de;erO especi!icar el nom;re de 9ost. Consulte con su administrador para sa;er los parOmetros de cone%ión +nom;re de usuarioB contraseFa 8 9ost- que de;e emplear. na ve' que cono'ca los parOmetros apropiadosB de;era poder conectarse de este modo [BASH]# mysql -h host -u user -p Enter password: 9ost 8 user representan el nom;re del ordenador donde se estO e5ecutando el servidor de ;ases de datos M8),$ 8 el nom;re de usuario de la cuenta que se usarO para conectarse. #eemplOcelos por los valores apropiados para elcaso. $os asteriscos +[[[[[[[[- representan la contraseFaB de;e ingresarse cuando m8sql muestra nter passord. )i todo !unciona ;ienB se verO una in!ormación de ingreso seguida por el prompt m8sqlR [BASH]# mysql -h host -u user -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 25338 to server version: 5.0.9-beta-standard Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> l prompt anuncia que m8sql estO listo para procesar comandos. (lgunas instalaciones de M8),$ permiten conectarse como usuario anónimo +sin nom;re- si el servidor se estO e5ecutando en el ordenador local. )i esto sucede en su casoB de;eria poder conectarse al servidor e5ecutando m8sql sin ningNn parOmetro [BASH]# mysql Después de 9a;erse conectadoB puede desconectarse en cualquier momento escri;iendo ,IT +o q- en el prompt m8sqlR mysql> QUIT Bye n ni%B tam;ién puede desconect arse presionando Control SELECT VERSION(), CURRENT_DATE; +----------------+--------------+ VERSION() CURRENT_DATE +----------------+--------------+ 5.0.7-beta-Max 2005-07-11 +----------------+--------------+ 1 row in set (0.01 sec) mysql> sta consulta le muestra varias cosas acerca de m8sql n comando normalmente consiste en una sentencia ),$ seguida de punto 8 coma. +Ha8 e%cepciones donde el punto 8 coma puede omitirse. ,ITB mencionado anteriormenteB es una de ellas. $uego conocerO otras.Cuando ingresa un comandoB m8sql lo enva al servidor para ser e5ecutado e imprime los resultados. ( continuación muestra de nuevo el prompt m8sqlR para in!ormarle que estO listo para otro comando. m8sql imprime los resultados de la consulta en !orma ta;ulada +!ilas 8 columnas-. $a primera !ila contiene etiquetas para las columnas. $as !ilas siguientes son los resultados de la consulta. >eneralmenteB el nom;re de cada columna es el nom;re del campo que trae desde la ;ase de datos. )i estO tra8endo el valor de una e%presiónB en lugar del contenido de un campo o columna de una ta;la +como en el e5emplo anterior-B m8sql etiqueta la columna usando el te%to de la e%presión. m8sql in!orma cuOntas !ilas !ueron dev ueltas 8 cuOnto tiempo le tomó e5ecutarse a la consultaB lo cual da una idea apro%imada del rendimiento del servidor. stos valores son imprecisos porque representan tiempo de relo5 corriente +no tiempo de C-B 8 ademOs porque estOn a!ectados por !actores como la carga del servidor o la latencia de red. +ara simpli!icar los e5emplos de este capituloB a partir de a9ora no se mostrarO la lnea Lros in set.$as pala;ras clave pueden ingresarse en cualquier com;inación de minNsculas 8 ma8Nsculas. $as siguientes consultas son equivalentes mysql> SELECT VERSION(), CURRENT_DATE; mysql> select version(), current_date; mysql> SeLeCt vErSiOn(), current_DATE; (qui tiene otra consulta que demuestra que m8sql puede usarse como calculadora mysql> SELECT SIN(PI()/4), (4+1)*5; +------------------+---------+ SIN(PI()/4) (4+1)5 +------------------+---------+ 0.70710678118655 25 +------------------+---------+ 1 row in set (0.02 sec) $as consultas mostradas 9asta a9ora 9an sido relativamente cortasB sentencias de una sola lnea. )e puede inclusive ingresar mNltiples sentencias en una misma lnea. )olamente de;en separarse con punto 8 coma mysql> SELECT VERSION(); SELECT NOW(); +----------------+ VERSION() < 6* < +----------------+ 5.0.7-beta-Max +----------------+ 1 row in set (0.00 sec) +---------------------+ NOW() +---------------------+ 2005-07-11 17:59:36 +---------------------+ 1 row in set (0.00 sec) 4o es necesario que un comando sea ingresado en una sola lneaB de ese modoB comandos e%tensos que requieren varias lineas no son un pro;lema. m8sql determina cuando una sentencia 9a llegado a l !inal o;servando si termina en un punto 8 comaB no si se llegó al !inal de la lnea !sica. +n otras pala;rasB m8sql acepta un !ormato li;re para las entradas recol ecta lineas pero no las e5ecuta 9asta que encuentra el punto 8 coma.(qui tiene una sentencia de mNltiples lneas mysql> SELECT -> USER() -> , 2 CURRENT_DATE; +---------------+--------------+ USER() CURRENT_DATE +---------------+--------------+ jon@localhost 2005-07-11 +---------------+--------------+ 1 row in set (0.00 sec) 7;serve en este e5emplo que el prompt cam;ia de m8sqlR a SELECT -> USER() -> \c mysql> na ve' mOs o;serve el prompt. Cam;ia a m8sqlR después de que ingresa cB in!ormOndole que m8sql estO listo para un nuevo comando. $a siguiente ta;la muestra cada uno de los indicadores que podrO ver 8 sinteti'a lo que dicen acerca del estado en que se encuentra m8sql +rompt Significado mysql> Listo para un nuevo comando. -> Esperando la siguiente l ínea en un comando de múltiples líneas < 60 < '> Esperando la siguiente l ínea, se encuentra abierta una cadena que comienza con apostrofo ('''). "> Esperando la siguiente l ínea, se encuentra abierta una cadena que comienza con comillas dobles ('"'). `> Esperando la siguiente l ínea, se encuentra abierta una cadena que comienza con tilde ('`'). /> Esperando la siguiente l ínea, se encuentra abierto un comentario que comienza con /. l prompt /R !ue introducido en la serie &.: a partir de M8),$ &.:.*. s !recuente que se srcine una sentencia de mNltiples lineas cuando accidentalmente le da entrada a un comando de una sola lnea pero olvida terminarlo con punto 8 coma. n ese casoB m8sql aguarda por mOs caracteres mysql> SELECT USER() -> )i esto le ocurre +considera que 9a ingresado una sentencia completa pero solamente o;tiene un prompt SELECT USER() -> ; +--------------------+ USER() +--------------------+ joesmith@localhost +--------------------+ $os prompts R 8 PR aparecen durante el ingreso de cadenas. uede escri;ir cadenas delimitadas por  o P +por e5emploB 9ola o PadiosP-B 8 m8sql le permite ingresar cadenas divididas en mNltiples lneas. Cuando ve un prompt R o PR signi!ica que 9a comen'ado a ingresar una cadena comen'ando con  o P pero no 9a ingresado el correspondiente caracter de terminación. ( menudo esto signi!ica que inadvertidamente omitió este carOcter. or e5emplo mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30; '> )i ingresa esta sentencia )$CTB presiona 4T# 8 espera por el resultadoB nada ocurrirO. n lugar de asom;rarse por el tiempo que consume la consultaB note lo que el prompt R le estO diciendo. Indica que m8sql espera por el !inal de una cadena inconclusa. +jVe el error en la sentencia_ $a cadena )mit9 no tiene el apóstro!o de cierre.- j,ué 9acer llegado a este punto_ $o mOs simple es cancelar el comando. 4o o;stanteB no puede simpleme nte tipear c en este casoB kporque m8sql inte rpretarO que es parte de la cadena que estO ingresando. n lugar de esoB tipee el caracter de cierre que !alta 8 entonces ingrese c.R mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30; '> '\c mysql> l prompt cam;ia de nuevo a m8sqlRB in!ormando que m8sql estO listo para un nuevo comando. l prompt R es similar a R 8 PR B pero in!orma que estO pendien te de completar un identi !icador delimitado por tildes. s importante conocer el signi!icado de estos indicadoresB 8a que si por error se ingresa una cadena incompletaB todo lo que se ingrese posteriormente serO aparentemente ignorado por m8sql  inclu8endo el comando < 6 < ,IT. sto puede ser sumamente desconcertanteB en particular si no se conoce lo que de;e 9acer para terminar la lnea 8 cancelar el comando. Crear * utili=ar una base de datos na ve' que se sa;e la !orma de ingresar comandosB es el momento de acceder a una ;ase de datos. )uponga que en su 9ogar posee varias mascotas 8 desea registrar distintos tipos de in!ormación so;re ellas. uede 9acerlo si crea ta;las para almacenar sus datos e introduce en ellas la in!ormación deseada. ntoncesB podrO responder una variedad de preguntas acerca de sus mascotas recuperando datos desde las ta;las. sta sección le muestra como Crear una base de datos Crear una tabla Introducir datos en la tabla Recuperar datos desde la tabla de varias maneras Emplear múltiples tablas $a ;ase de datos menagerie +en inglés signi!ica Pcolección de animalesP- se 9a 9ec9o deli;eradamente simpleB pero no es di!cil imaginar situac iones del mundo real donde podra usarse un tipo similar de ;ase de datos. or e5empl oB para un gran5ero que desee 9acer el seguimiento de su 9aciendaB o para los registros de los pacientes de un veterinario. n el sitio e; de M8),$ pueden descargarse arc9ivos de te%to con datos de e5emplo 8 algunas de las sentencias empleadas en las siguientes secciones. Mediante la sentencia )H7K se encuentran las ;ases de datos que e%isten actualmente en el servidor mysql> SHOW DATABASES; +----------+ Database +----------+ mysql test tmp +----------+ ro;a;lemente la lista o;tenida sea distinta en su ordenadorB pero es casi seguro que tendrO las ;ases de datos m8sql 8 test. $a ;ase de datos m8sql es necesaria porque es la que descri;e los privilegios de acceso de los usuarios. $a ;ase de datos test se provee para que los usuarios 9agan prue;as. Tenga en cuenta que si no tiene el privilegio )H7K D(T(())B no podrO ver todas las ;ases de datos que 9a8 en el servidor. )i la ;ase de datos test e%isteB intente acceder a ella mysql> USE test Database changed (dvierta queB al igual que ,ITB ) no necesita que ponga un punto 8 coma al !inal +aunque puede 9acerlo si lo desea-. $a sentencia ) tiene otra particularidad de;e escri;irse en una sola linea. uede colocar los e5emplos siguientes en la ;ase de datos testB si tiene acceso a ellaB pero si tra;a5a en un < 66 < am;iente compartidoB lo que deposite all puede ser !Ocilmente ;orra do por alguien mOs que tenga el acceso. or este motivoB de;era pedirle a su administrador permiso para usar una ;ase de datos propia. )uponga que quiere llamarla menagerie. l administrador necesitarO e5ecutar un comando como este mysql> GRANT ALL ON menagerie.* TO 'su_nombre_mysql'@'su_host_cliente'; Donde suGnom;reGm8sql es el nom;re de usuario que se le asignóB 8 suG9ostGcliente es el 9ost u ordenador desde donde se conectarO. Crear $ utilizar una ,ase de datos )i el administrado r crea su ;ase de datos en el mismo momento que le otorga privil egiosB puede comen'ar a utili'arlaB de lo contrario necesitarO crearla mysql> CREATE DATABASE menagerie; n am;ientes ni%B los nom;res de las ;ases de datos son case sensitive +al contrario que las pala;ras clave-B de modo que siempre de;e re!erirse a su ;ase de datos como menagerieB 8 no MenagerieB M4(>#IB o una variante similar. sto tam;ién se aplica a los nom;res de ta;las.sta restricción no e%iste en KindosB aunque puede utili'ar el mismo esquema de ma8Nsculas cuando se re!iera a ;ases de datos 8 ta;las en una consulta dada. (l crear una ;ase de datosB ésta no se selecciona para su usoB de;e 9acerlo e%plicitamente. ara convertir a menagerie en la ;ase de datos actualB use este comando mysql> USE menagerie Database changed $as ;ases de datos sólo necesitan ser creadas una sola ve'B pero de;en ser seleccio nadas cada ve' que se inicia una sesión de m8sql. uede 9acerse a través del comando ) como se muestra en el e5emploB o puede indicar la ;ase de datos en la linea de comandos al e5ecutar m8sql. )implemente de;e indicar el nom;re de la ;ase de datos a continuación de los parOmetros que necesite ingresar. or e5emplo shell> mysql -h host -u user -p menagerie Enter password: (dvierta en el comando anterior que menageri e no es la contraseFa. )i se quisiera suministrar la contraseFa en la linea de comandosB después de la opción SHOW TABLES; Empty set (0.00 sec) $a parte di!cil es decidir cómo de;era ser la estructura de su ;ase de datos qué ta;las necesitarOB 8 qué columnas 9a;rO en cada ta;la. ,uerrO una ta;la para contener un registro por cada mascota. sta ta;la puede < 1:: < llamarse petB 8 de;era contenerB como mnimoB el nom;re de cada animal. Dado que el nom;re no es mu8 relevante por s mismoB tendra que tener mOs in!ormació n. or e5emploB si mOs de una persona en su !amilia tendrO mascotasB quer rO listar tam;ién el dueFo de cada animal.  algunos otros datos descriptivos ;OsicosB como especie 8 se%o. j,ué 9acer con la edad_ odra ser de interésB pero no es un ;uen dato para almacenar en una ;ase de datos. $a edad cam;ia a medida que pasa el tiempoB lo cual signi!ica que de;era actuali'ar la ;ase de datos a menudo. n lugar de estoB es me5or almacenar un valor !i5oB como la !ec9a de nacimiento. De este modoB cada ve' que requiera sa;er la edadB podrO calcularla como la di!erencia entre la !ec9a de nacimiento 8 la !ec9a actual. M8),$ provee !unciones para reali'ar cOlculos con !ec9asB por lo que no es di!icultoso. (lmacenar la !ec9a de nacimiento en lugar de la edad tiene otras venta5as uede usar la ;ase de datos para tareas como generar recordatorios para los pró%imos cumpleaFos de mascotas. +)i piensa que este tipo de consultas no es importanteB considere que es lo mismo que 9ara en un conte%to de ;ase de datos de negocios para identi!icar aquellos clientes a los que 9a;rO que enviar una tar5eta por su cumpleaFosB para conseguir ese toque personal con la asistencia del ordenador-. uede calcular edades en relación a otras !ec9as ademOs de la actual. or e5emploB almacenar la !ec9a de muerte de una mascota le posi;ilita calcular la edad que tena a ese momento. ro;a;lemente pensarO en otros tipos de in!ormación que resultaran Ntiles dentro de la ta;la pet pero los identi!icados 9asta a9ora son su!icientes name +nom;re-B oner +propietario-B species +especie-B se% +se%o-B ;irt9 +nacimiento- 8 deat9 +muerte-. De;e usar la sentencia C#(T T($ para especi!icar la estructura de una ta;la mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE); l tipo de dato V(#CH(# es una ;uena elección para las columnas nameB onerB 8 species porque los datos que all se almacenan no son de longitud uni!orme. n realidad no es necesario que todas estas columnas tengan la misma longitud ni que ésta sea 2:. n M8),$ &.:.3 8 versiones posterioresB normalmente se puede adoptar cualquier longitud entre 1 8 *&&3&B segNn lo que se crea mOs ra'ona;le. +4ota (nteriormente a M8),$ &.:.3B el lmite de longitud era 2&&.- )i en el !uturo de;iera aumentar la longitud de estos camposB M8),$ tiene la sentencia ($T# T($. Ha8 varios tipos de datos que podran usarse para representar el se%o en los registros de animale sB tal como m 8 !B o male +masculino- 8 !emale +!emen ino-. $o mOs simple es usar los caracteres m 8 !. s o;vio el uso del tipo de dato D(T para las columnas ;irt9 8 deat9. $uego de crear una ta;laB )H7K T($) de;era producir una salida mysql> SHOW TABLES; +---------------------+ Tables in menagerie +---------------------+ pet +---------------------+ ara veri!icar que la ta;la 9a sido creada en la !orma esperadaB utilice la sentencia D)C#I mysql> DESCRIBE pet; < 1:1 < +---------+-------------+------+-----+---------+-------+ Field Type Null Key Default Extra +---------+-------------+------+-----+---------+-------+ name varchar(20) YES NULL owner varchar(20) YES NULL species varchar(20) YES NULL sex char(1) YES NULL birth date YES NULL death date YES NULL +---------+-------------+------+-----+---------+-------+ D)C#I puede ser utili'ada en cualquier momentoB por e5emploB si olvida los nom;res o el tipo de dato de las columnas de la ta;la. Cargar datos a una ta,la $uego de crear la ta;laB necesitarO completarla con datos. ara estoB le serOn de utilidad las sentencias $7(D D(T( e I4)#T. )uponga que los registros de mascotas !ueran como los mostrados a continuación. +7;serve que M8),$ espera que las !ec9as tengan el !ormato (((( LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet; )i tra;a5a en KindosB con un editor que emplea rn +retorno de carro U nueva linea- como caracteres de !in de lneaB de;era usar mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet -> LINES TERMINATED BY '\r\n'; < 1:2 < +n un ordenador (pple ;a5o 7) JB pro;a;lemente quiera utili'ar $I4) T#MI4(TD  r.7pcionalmente puede especi!icar en la sentencia $7(D D(T( los caracteres que actuarOn como separador de campo 8 !in de lneaB pero los valore s por de!ecto son ta;ulació n 8 nueva lnea. stos son su!icientes para que la sentencia lea correctamente el !ic9ero pet.t%t Cuando lo que desea es agregar nuevos registros de a uno por ve'B la sentencia I4)#T resulta de utilidad. De esta sencilla maneraB se suministran valores para cada columnaB dispuestos en el orden en el cual se especi!icaron las columnas en la sentencia C#(T T($ statement. )uponga que Diane o;tiene un nuevo 9amster llamado Pu!!;allP. )e podra agregar un nuevo registroB usando la sentencia I4)#T de este modo mysql> INSERT INTO pet -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL); 7;serve que las cadenas al!anuméricas 8 las !ec9as son representados como cadenas delimitadas por apóstro!os. Tam;iénB con I4)#TB se pueden insertar valores 4$$ directamenteB para indicar un valor ausente. 4o se de;e utili'ar 4 como se 9ace con $7(D D(T(. ( partir de este e5emplo queda demostrado que lleva muc9o mOs tra;a5o reali'ar una carga inicial de registros empleando varias sentencias I4)#T que si se 9ace mediante la sentencia $7(D D(T(. Extraer informacion de una ta,la $a sentencia )$CT es utili'ada para traer in!ormación desde una ta;la. $a sinta%is general de esta sentencia es mysql> INSERT INTO pet -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL); seleccionarGesto es lo que se quiere ver. uede ser una lista de columnasB o para indicar Ltodas las columnas. desdeGta;la indica la ta;la donde estOn los datos a recuperar. $a clOusula KH# clause is optional. es opcional. )i estO presenteB condiciones representa las condiciones que cada registro de;e cumplir para retornar como resultado. )eleccionar todos los datos $a !orma mOs simple de )$CT recupera todo lo que 9a8 en la ta;la mysql> SELECT * FROM pet; +----------+--------+---------+------+------------+------------+ name owner s pecies sex birth d eath +----------+--------+---------+------+------------+------------+ Fluffy Harold Claws Gwen cat Buffy Harold cat m dog f 1993-02-04 1994-03-17 NULL f 1989-05-13 NULL NULL Fang Benny og mm 1990-08-27 Bowser D iane ddog 1979-08-31 NULL 1995-07-29 Chirpy G wen bird f 1998-09-11 NULL Whistler Gwen bird NULL 1997-12-09 NULL Slim Benny snake m 1996-04-29 NULL Puffball Diane h amster f 1999-03-30 NULL +----------+--------+---------+------+------------+------------+ sta !orma de )$CT es Ntil si se quiere revisar la ta;la completaB por e5emploB despues de 9a;erla cargado < 1:3 < con un con5unto de datos inicial. or e5emploB puede ocurrir que la !ec9a de nacimiento de oser no pare'ca correcta. Consultando los papeles de pedigriB se descu;re que el aFo correcto de nacimiento es 166B no 1606. Existen al menos dos formas de solucionarlo ditando el !ic9ero pet.t%t para corregir el errorB vaciando la ta;la 8 volviendola a llenar con los datos. ara esto se usan las sentencias D$T 8 $7(D D(T( mysql> DELETE FROM pet; mysql> LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet; 4o o;stanteB si opta por estoB de;erO volver a cargar el registro de u!!;all. Corrigiendo Nnicamente el registro erróneo. ara esto se usa la sentencia D(T mysql> UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser'; D(T modi!ica solo el registro en cuestión 8 no requiere que se vuelva a llenar la ta;la. $eleccionar registros especificos Como se 9a visto en la sección anteriorB es !Ocil recuperar una ta;la en su totalidad. )ólo de;e omitir la clOusula KH# en la sentencia )$CT. eroB generalmenteB no se desea ver la ta;la completaB especialmente cuando alcan'a un gran tamaFo. n cam;ioB usualmenteB se tiene interés en o;tener una respuesta para una consulta en particularB en cu8o caso se especi!ican alguna s restricciones para la in!ormación que se traerO. ( continuación se verOn algunas consultas que responden preguntas acerca de las mascotas. )e pueden seleccionar sólo algunos registros de la ta;la. or e5emploB si quisiera veri!icar los cam;ios reali'ados so;re la !ec9a de nacimiento de oserB seleccione el registro de oser de esta manera mysql> SELECT * FROM pet WHERE name = 'Bowser'; +--------+-------+---------+------+------------+------------+ name owner s pecies sex birth d eath +--------+-------+---------+------+------------+------------+ Bowser D iane dog m 1989-08-31 1995-07-29 +--------+-------+---------+------+------------+------------+ salida con!irma que el aFo !ue correctamente registrado como 166B 8a no es 1606. 4ormalmenteB las comparaciones de cadenas no son case sensit iveB por eso puede escri;ir el nom;re como ;os erB 7K)#B etc. l resultado de la consulta serO el mismo. )e pueden indicar condiciones a cumplir por cualquier columnaB no solamente por name. or e5emploB si quisiera sa;er qué animales 9an nacido luego de 166B necesita evaluar la columna ;irt9 mysql> SELECT * FROM pet WHERE birth > '1998-1-1'; +----------+-------+---------+------+------------+-------+ name owner s pecies sex birth d eath +----------+-------+---------+------+------------+-------+ Chirpy G wen bird f 1998-09-11 NULL < 1:" < Puffball Diane h amster f 1999-03-30 NULL +----------+-------+---------+------+------------+-------+ )e pueden com;inar condicionesB por e5emplo para locali'ar perros 9em;ra mysql> SELECT * FROM pet WHERE species = 'dog' AND sex = 'f'; +-------+--------+---------+------+------------+-------+ name owner s pecies sex birth d eath +-------+--------+---------+------+------------+-------+ Buffy Harold dog f 1989-05-13 NULL +-------+--------+---------+------+------------+-------+ $a consulta anterior emplea el operador lógico (4D. Tam;ién e%iste el operador 7# mysql> SELECT * FROM pet WHERE species = 'snake' OR species = 'bird'; +----------+-------+---------+------+------------+-------+ name owner s pecies sex birth d eath +----------+-------+---------+------+------------+-------+ Chirpy G wen bird f 1998-09-11 NULL Whistler Gwen bird NULL 1997-12-09 NULL Slim Benny snake m 1996-04-29 NULL +----------+-------+---------+------+------------+-------+ (4D and 7# pueden ser com;inadasB si ;ien (4D tiene ma8or precedencia que 7#. )i utili'a am;os operadoresB es ;uena idea emplear paréntesis para indicar e%plicitamente la !orma en que las condiciones de;en agruparse mysql> SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm') -> OR (species = 'dog' AND sex = 'f'); +-------+--------+---------+------+-----------+-------+ name owner s pecies sex birth d eath +-------+--------+---------+------+------------+-------+ Claws Gwen cat Buffy Harold m dog 1994-03-17 NULL f 1989-05-13 NULL Seleccionar columnas concretas )i no se quieren ver !ilas completasB solo 9ace !alta indicar las columnas en las que se estO interesadoB separadas por comas. or e5emploB si desea sa;er cuOndo nació cada animalB seleccione las columnas name 8 ;irt9 mysql> SELECT name, birth FROM pet; +----------+------------+ name birth +----------+------------+ Fluffy Claws Buffy Fang Bowser Chirpy 1993-02-04 1994-03-17 1989-05-13 1990-08-27 1989-08-31 1998-09-11 < 1:& < Whistler 1997-12-09 Slim 1996-04-29 Puffball 1999-03-30 +----------+------------+ ara sa;er quien posee mascotasB utilice esta consulta mysql> SELECT owner FROM pet; +--------+ owner +--------+ Harold Gwen Harold Benny Diane Gwen Gwen Benny Diane +--------+ 7;serve que esta sentencia retorna el campo oner de cada registroB 8 algunos de ellos aparecen mOs de una ve'. ara reducir la salidaB recupere solamente una ve' cada registro repetidoB agregando la pala;ra clave DI)TI4CT mysql> SELECT DISTINCT owner FROM pet; +--------+ owner +--------+ Benny Diane Gwen Harold +--------+ uede emplearse una clOsula KH# para com;inar la selección de ciertas !ilas 8 de ciertas columnas. or e5emploB para o;tener Nnicamente la !ec9a de nacimiento de perros 8 gatosB e5ecute esta consulta mysql> SELECT name, species, birth FROM pet -> WHERE species = 'dog' OR species = 'cat'; +--------+---------+------------+ name species birth +--------+---------+------------+ Fluffy cat 1993-02-04 Claws cat 1994-03-17 Buffy dog 1989-05-13 Fang dog 1990-08-27 Bowser dog 1989-08-31 +--------+---------+------------+ < 1:* < #rdenar registros ,ui'O advirtióB en los e5emplos anterioresB que las !ilas resultantes se mostraron sin ningNn orden en particular. ( menudo es mOs !Ocil e%aminar la salida de una consulta cuando las !ilas se ordenan de algNn modo signi!icativo. ara ordenar un resultadoB se usa la clOsula 7#D# . (qui tiene las !ec9as de cumpleaFos de los animalesB ordenadas por !ec9a mysql> SELECT name, birth FROM pet ORDER BY birth; +----------+------------+ name birth +----------+------------+ Buffy 1989-05-13 Bowser 1989-08-31 Fang 1990-08-27 Fluffy 1993-02-04 Claws 1994-03-17 Slim 1996-04-29 Whistler 1997-12-09 Chirpy 1998-09-11 Puffball 1999-03-30 +----------+------------+ or lo generalB cuando se trata de columnas de tipo carOcterB la ordenaciónB  al igual que otras operacio nes de comparación  no es case SELECT name, birth FROM pet ORDER BY birth DESC; +----------+------------+ name birth +----------+------------+ Puffball 1999-03-30 Chirpy 1998-09-11 Whistler 1997-12-09 Slim 1996-04-29 Claws 1994-03-17 Fluffy 1993-02-04 Fang 1990-08-27 Bowser 1989-08-31 Buffy 1989-05-13 +----------+------------+ uede ordenar ;asOndose en varias columnasB 8 cada columna en un sentido di!erente. or e5emploB para ordenar por tipo de animal en sentido ascendente 8B dentro de cada tipoB ordenar por nacimiento en sentido descendente +los animales mOs 5óvenes primero- utilice la siguiente consulta mysql> SELECT name, species, birth FROM pet -> ORDER BY species, birth DESC; +----------+---------+------------+ < 1:0 < name species birth +----------+---------+------------+ Chirpy bir d 1998-09-11 Whistler bird 1997-12-09 Claws cat 1994-03-17 Fluffy cat 1993-02-04 Fang dog 1990-08-27 Bowser dog 1989-08-31 Buffy dog 1989-05-13 Puffball hamster 1999-03-30 Slim snake 1996-04-29 +----------+---------+------------+ (dvierta que la pala;ra clave D)C se aplica so;re la columna inmediatamente anterior +;irt9-S no a!ecta el sentido de ordenación de la columna species. Calculos so,re fec%as M8),$ provee varias !unciones que se aplican a cOlculos entre !ec9asB por e5emploB para calcular edades u o;tener partes de una !ec9a. ara determinar cuOntos aFos de edad tiene cada mascotaB 9a8 que calcular la di!erencia entre el aFo de la !ec9a actual 8 el de la !ec9a de nacimientoB 8 luego restar 1 al resultado si el dia 8 mes actuales son anteriores al da 8 mes indicados por la !ec9a de nacimiento. $a siguiente consulta devuelveB para cada mascotaB el nom;reB la !ec9a de nacimientoB la !ec9a actualB 8 la edad en aFos. mysql> SELECT name, birth, CURDATE(), -> (YEAR(CURDATE())-YEAR(birth)) -> - (RIGHT(CURDATE(),5) AS age FROM pet; +----------+------------+------------+------+ name birth CURDATE() age +----------+------------+------------+------+ Fluffy 1993-02-04 2003-08-19 Claws 1994-03-17 2003-08-19 Buffy 1989-05-13 2003-08-19 Fang 1990-08-27 2003-08-19 Bowser 1989-08-31 2003-08-19 Chirpy 19 98-09-11 2003-08-19 134 Curso (tutorial) de MySQL 10 9 14 12 13 4 Whistler 1997-12-09 2003-08-19 5 Slim 1996-04-29 2003-08-19 7 Puffball 1999-03-30 2003-08-19 4 +----------+------------+------------+------+ n el e5emplo anteriorB (#+- trae la parte correspondiente al aFo de una !ec9aB 8 #I>HT+- trae los & primeros caracteres contando desde la derec9aB que represent an la parte MM

SELECT name, birth, CURDATE(), -> (YEAR(CURDATE())-YEAR(birth)) -> - (RIGHT(CURDATE(),5) AS age -> FROM pet ORDER BY name; +----------+------------+------------+------+ name birth CURDATE() age +----------+------------+------------+------+ Bowser 1989-08-31 2003-08-19 13 Buffy 1989-05-13 2003-08-19 14 Chirpy 19 98-09-11 2003-08-19 4 Claws 1994-03-17 2003-08-19 9 Fang 1990-08-27 2003-08-19 12 Fluffy 1993-02-04 2003-08-19 10 Puffball 1999-03-30 2003-08-19 4 Slim 1996-04-29 2003-08-19 7 Whistler 1997-12-09 2003-08-19 5 +----------+------------+------------+------+ ara ordenar la salida por edad +age- en lugar de por nom;re +name-B solo 9a8 que utili'ar una clOusula 7#D#  di!erente mysql> SELECT name, birth, CURDATE(), -> (YEAR(CURDATE())-YEAR(birth)) -> - (RIGHT(CURDATE(),5) AS age -> FROM pet ORDER BY age; +----------+------------+------------+------+ name birth CURDATE() age +----------+------------+------------+------+ Chirpy 19 98-09-11 2003-08-19 4 Puffball 1999-03-30 2003-08-19 4 Whistler 1997-12-09 2003-08-19 5 Slim 1996-04-29 2003-08-19 7 Claws 1994-03-17 2003-08-19 9 Fluffy 1993-02-04 2003-08-19 10 Fang 1990-08-27 2003-08-19 12 Bowser 1989-08-31 2003-08-19 13 Buffy 1989-05-13 2003-08-19 14 +----------+------------+------------+------+ na consulta similar se utili'a para determinar la edad a la !ec9a de muerte de los animales. )e determinan los animales que 9an muerto veri!icando si el valor de la columna deat9 es 4$$. ntoncesB para todos los valores no 4$$ calcula la di!erencia entre las !ec9as de muerte +deat9- 8 nacimiento +;irt9- mysql> SELECT name, birth, death, -> (YEAR(death)-YEAR(birth)) – (RIGHT(death,5) AS age -> FROM pet WHERE death IS NOT NULL ORDER BY age; +--------+------------+------------+------+ name birth death age +--------+------------+------------+------+ Bowser 19 89-08-31 1995-07-29 5 +--------+------------+------------+------+ $a consulta utili'a la e%presión deat9 I) 47T 4$$ en lugar de deat9 QR 4$$ porque 4$$ es un valor < 1:6 < especialB que no puede ser comparado mediante los operadores lógicos 9a;ituales . j,ué tal si se quisiera sa;er qué animales cumplen aFos el pró%imo mes_ ara esta clase de cOlculosB el aFo 8 el da son irrelevantesS simplemente se desea e%traer de la columna ;irt9 la parte correspondiente al mes. M8),$ cuenta con varias !unciones para e%traer partes de !ec9asB como (#+-B M74TH+-B 8 D(7?M74TH+-. M74TH+- es la !unción apropiada para este caso. ara verla en !uncionamientoB e5ecute una consulta que muestra tanto el valor de ;irt9 como el de M74TH+;irt9- mysql> SELECT name, birth, MONTH(birth) FROM pet; +----------+------------+--------------+ name birth MONTH(birth) +----------+------------+--------------+ Fluffy 19 93-02-04 2 Claws 1994-03-17 3 Buffy 1989-05-13 5 Fang 1990-08-27 8 Bowser 19 89-08-31 8 Chirpy 19 98-09-11 9 Whistler 1997-12-09 12 Slim 1996-04-29 4 Puffball 1999-03-30 3 +----------+------------+--------------+ ncontrar los animales que cumplen aFos el mes siguiente es tam;ién sencillo. )uponga que el mes actual es a;ril. De modo que su nNmero es "B 8 se ;uscan los animales nacidos en Ma8o +mes &-B de esta !orma mysql> SELECT name, birth FROM pet WHERE MONTH(birth) = 5; +-------+------------+ name birth +-------+------------+ Buffy 1989-05-13 +-------+------------+ sto se complica ligeramente cuando el mes actual es Diciem;re. 4o se puede simplemente sumarle 1 al nNmero del mes +12- 8 ;uscar animales nacidos en el mes 13B porque no e%iste tal mes. n lugar de esoB se de;e ;uscar por animales nacidos en nero +mes 1-. )e puede incluso escri;ir la consulta de !orma que !uncione sin importar cual es el mes actual. (sB no se necesitarO indicar un mes en particular en la consulta. D(TG(DD+- sirve para sumar un intervalo de tiempo a una !ec9a dada. )i se adiciona un mes al valor de C#D(T+-B 8 se e%trae el mes mediante M74TH+-B el resultado serO el mes en el que se ;uscarOn cumpleaFos m8sqlR )$CT nameB ;irt9 ?#7M pet SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL; +----------+-----------+----------+----------+ 1 = NULL 1 <> NULL 1 < NULL 1 > NULL +----------+-----------+----------+----------+ NULL NULL NULL NULL +----------+-----------+----------+----------+ ClaramenteB no se o;tienen valores signi!icativos a partir de estas comparaciones. se en su lugar los operadores I) 4$$ 8 I) 47T 4$$ mysql> SELECT 1 IS NULL, 1 IS NOT NULL; +-----------+---------------+ 1 IS NULL 1 IS NOT NULL +-----------+---------------+ 0 1 +-----------+---------------+ 7;serve que en M8),$B : o 4$$ se intepretan como !alsoB 8 cualquier otro valorB como verdadero. l valor por de!ecto para una operación ;ooleana es 1. ste tratamiento especial de 4$$ es de;ido a queB en la sección anteriorB !ue necesario determinar qué animales 8a no esta;an vivos utili'ando deat9 I) 47T 4$$ en lugar de deat9 QR 4$$. Dos valores 4$$ son considerados iguales por la clOusula >#7 . Cuando se reali'a un 7#D# B los valores 4$$ se presentan en primer lugar si se emplea 7#D#  ... ()CB 8 al !inal si se ordena con 7#D#  ... D)C. n error mu8 comNn cuando se tra;a5a con valores 4$$ es asumir que es imposi;le insertar un valor cero o una cadena vaca en una columna de!inida como 47T 4$$B pero no es as. $os mencionados son e!ectivamente valoresB mientras que 4$$ signi!ica Pno 9a8 un valorP. uede compro;ar esto !Ocilmente empleando I) 47T 4$$ como se muestra aqu mysql> SELECT 0 IS NULL, 0 IS NOT NULL, '' IS NULL, '' IS NOT NULL; +-----------+---------------+------------+----------------+ 0 IS NULL 0 IS NOT NULL '' IS NULL '' IS NOT NULL +-----------+---------------+------------+----------------+ 0 1 0 1 +-----------+---------------+------------+----------------+ or lo tantoB es totalmente posi;l e insertar cadenas vacias o ceros en columnas marcadas como 47T 4$$B 8a que son valores 47T 4$$ < 111 < Coincidencias de patrones M8),$ posee capacidad es estOndar para utili'ar patrones as como tam;ién una !orma de patrones ;asada en e%presiones regulares e%tendidas similares a las que se encuentran en utilidades de 4IJB como ser viB grepB 8 sed. $os patrones ),$ permiten emplear el caracter G para representar coincidencia con un carOcter individual 8  n M8),$B por de!ectoB los patrones ),$ no son case SELECT * FROM pet WHERE name LIKE 'b%'; +--------+--------+---------+------+------------+------------+ name owner s pecies sex birth d eath +--------+--------+---------+------+------------+------------+ Buffy Harold dog f 1989-05-13 NULL Bowser D iane dog m 1989-08-31 1995-07-29 +--------+--------+---------+------+------------+------------+ ara encontrar nom;res que terminen con !8 mysql> SELECT * FROM pet WHERE name LIKE '%fy'; +--------+--------+---------+------+------------+-------+ name owner s pecies sex birth d eath +--------+--------+---------+------+------------+-------+ Fluffy Harold cat f 1993-02-04 NULL Buffy Harold dog f 1989-05-13 NULL +--------+--------+---------+------+------------+-------+ ara encontrar nom;res que contengan  mysql> SELECT * FROM pet WHERE name LIKE '%w%'; +----------+-------+---------+------+------------+------------+ name owner s pecies sex birth d eath +----------+-------+---------+------+------------+------------+ Claws Gwen cat m 1994-03-17 NULL Bowser D iane dog m 1989-08-31 1995-07-29 Whistler Gwen bird NULL 1997-12-09 NULL +----------+-------+---------+------+------------+------------+ ara encontrar nom;res que contengan e%actamente & caracteresB use & veces el caracter patrón G mysql> SELECT * FROM pet WHERE name LIKE '_____'; +-------+--------+---------+------+------------+-------+ name owner s pecies sex birth d eath +-------+--------+---------+------+------------+-------+ Claws Gwen cat m 1994-03-17 NULL Buffy Harold dog f 1989-05-13 NULL +-------+--------+---------+------+------------+-------+ < 112 < $os otros patrones que pueden emplearse con M8),$ usan e%presiones regulares e%tendidas. Cuando ;usque coincidencias con este tipo de patronesB use los operadores #>J 8 47T #>J +o ;ien los sinónimos #$IE 8 47T #$IE-. Algunas caractersticas de las expresiones regulares extendidas . detecta coincidencia con cualquier carOcter individual. na clase de carOcter ... detecta coincidencia con cualquier caracter entre los corc9etes. or e5emploB a;c coincidirO con aB ;B o c. ara 9acer re!erencia a un rango de caracteresB use un guión. a<' detecta coincidencia con cualquier letraB mientras que :<6 lo 9ace con cualquier dgito. [ detecta coincidencia con cero o mOs apariciones de los caracteres que lo preceden. or e5emploB % detecta cualquier nNmero de caracteres %B :<6 detecta cualquier cantidad de dgitosB 8 . coincidirO con cualquier nNmero de cualquier carOcter. #>J tendrO é%ito si el patrón suministrado encuentra coincidencia en cualquier parte del valor e%aminado +esto di!iere de $IE en que este Nltimo solo tiene é%ito si el patrón concuerda con todo el valor-. ara lograr que un patrón detecte coincidencias solamente al principio o al !inal del valor e%aminadoB utilice  al principio o f al !inal del patrón. ara demostrar el !uncionamiento de las e%presiones regulares e%tendidasB las consultas con $IE e%puestas anteriormente se 9an reescrito utili'ando #>J. ara 9allar nom;res que comiencen con ;B use  para ;uscar coincidencia al principio del valor mysql> SELECT * FROM pet WHERE name REGEXP '^b'; +--------+--------+---------+------+------------+------------+ name owner s pecies sex birth d eath +--------+--------+---------+------+------------+------------+ Buffy Harold dog f 1989-05-13 NULL Bowser D iane dog m 1989-08-31 1995-07-29 +--------+--------+---------+------+------------+------------+ n M8),$ &.:B si realmente quiere !or'ar a que la comparación reali'ada por #>J sea case sensitiveB utilice la pala;ra clave I4(# para convertir a una de las cadenas en una cadena ;inaria. sta consulta solamente encontrarO coincidencia con ; minNsculas al comien'o de un nom;re mysql> SELECT * FROM pet WHERE name REGEXP BINARY '^b'; ara 9allar nom;res !inali'ados en !8B emplee f para ;uscar la coincidencia en el !inal del nom;re mysql> SELECT * FROM pet WHERE name REGEXP 'fy$'; +--------+--------+---------+------+------------+-------+ name owner s pecies sex birth d eath +--------+--------+---------+------+------------+-------+ Fluffy Harold cat f 1993-02-04 NULL Buffy Harold dog f 1989-05-13 NULL +--------+--------+---------+------+------------+-------+ < 113 < ara encontrar nom;res conteniendo una B utilice esta consulta mysql> SELECT * FROM pet WHERE name REGEXP 'w'; +----------+-------+---------+------+------------+------------+ name owner s pecies sex birth d eath +----------+-------+---------+------+------------+------------+ Claws Gwen cat m 1994-03-17 NULL Bowser D iane dog m 1989-08-31 1995-07-29 Whistler Gwen bird NULL 1997-12-09 NULL +----------+-------+---------+------+------------+------------+ De;ido a que un patrón de e%presión regular encue ntra coincidencia sin importar el lugar del valor donde se produceB en la consulta previa no es necesario colocar un comodn a cada lado del patrón para o;tener coincidencia en cualquier parte del valorB como 9u;iera sucedido de utili'ar un patrón ),$ ara 9allar nom;res conteniendo e%actamente cinco caracteresB use  8 f para o;ligar a que la coincidencia de;a estar al principio 8 al !inal del nom;reB 8 cinco instancias de . entre ellas. mysql> SELECT * FROM pet WHERE name REGEXP '^.....$'; +-------+--------+---------+------+------------+-------+ name owner s pecies sex birth d eath +-------+--------+---------+------+------------+-------+ Claws Gwen cat m 1994-03-17 NULL Buffy Harold dog f 1989-05-13 NULL +-------+--------+---------+------+------------+-------+ $a consulta anterior tam;ién se podra 9a;er escrito empleando el operador n Lrepetir SELECT * FROM pet WHERE name REGEXP '^.{5}$'; +-------+--------+---------+------+------------+-------+ name owner s pecies sex birth d eath +-------+--------+---------+------+------------+-------+ Claws Gwen cat m 1994-03-17 NULL Buffy Harold dog f 1989-05-13 NULL +-------+--------+---------+------+------------+-------+ Contar registros na pregunta !recuente que de;en responder las ;ases de datos es Ljqué tan a menudo aparece en la ta;la un cierto tipo de dato_ or e5emploB se podra querer averiguar la cantidad de mascotas de que se disponeB o cuantas mascotas tiene cada propietarioB o varios otros recuentos so;re los animales. Contar la cantidad total de animales es la misma pregunta que LjcuOntos registros 9a8 en la ta;la pet_B 8a que 9a8 un registro por mascota. C74T+- cuenta el nNmero de !ilasB por elloB la consulta para contar animales luce as mysql> SELECT COUNT(*) FROM pet; +----------+ COUNT() +----------+ 9 < 11" < +----------+ (nteriormente se recupera; an los nom;res de la gente que posea mascotas. )e puede usar C74T+- para 9allar cuantas mascotas tiene cada propietario mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner; +--------+----------+ owner COUNT() +--------+----------+ Benny 2 Diane 2 Gwen 3 Harold 2 +--------+----------+ 7;serve el uso de >#7  para agrupar todos los registros de cada propietario. )in dic9a clOusulaB todo lo que se 9u;iera o;tenido sera un mensa5e de error mysql> SELECT owner, COUNT(*) FROM pet; ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause C74T+- 8 >#7  son Ntiles para presentar datos en varias !ormas. $os siguientes e5emplos muestran di!erentes operaciones Cantidad de animales por especies mysql> SELECT species, COUNT(*) FROM pet GROUP BY species; +---------+----------+ species COUNT() +---------+----------+ bird 2 cat 2 dog 3 hamster 1 snake 1 +---------+----------+ Cantidad de animales por se%o mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex; +------+----------+ sex COUNT() +------+----------+ NULL f 1 4 m 4 +------+----------+ +n esta salidaB 4$$ indica Pse%o desconocidoP- Cantidad de animales por com;inación de especies 8 se%o mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex; +---------+------+----------+ species sex COUNT() < 11& < +---------+------+----------+ bird NULL 1 bird f 1 cat f 1 cat m 1 dog f 1 dog m 2 hamster f 1 snake m 1 +---------+------+----------+ 8 gatos de esta manera mysql> SELECT species, sex, COUNT(*) FROM pet -> WHERE species = 'dog' OR species = 'cat' -> GROUP BY species, sex; +---------+------+----------+ species sex COUNT() +---------+------+----------+ cat f 1 cat m 1 dog f 1 dog m 2 +---------+------+----------+ 7 si desea la cantidad de animales de cada se%o contando solamente los que tienen se%o conocido mysql> SELECT species, sex, COUNT(*) FROM pet -> WHERE sex IS NOT NULL -> GROUP BY species, sex; +---------+------+----------+ species sex COUNT() +---------+------+----------+ bird f 1 cat f 1 cat m 1 dog f 1 dog m 2 hamster f 1 snake m 1 +---------+------+----------+ 3tilizar mas de una ta,la $a ta;la pet mantiene el registr o de las mascotas que se poseen. )i quisi era registrar otros datos acerca de ellasB como eventos de su vida tales como visitas al veterinario o nacimiento de crasB necesitara otra ta;la. jCómo de;era ser esta ta;la_ )e necesita n campo con el nom;re de la mascota para sa;er a quien pertenece cada evento registrado. $a !ec9a en que ocurrió el evento. n campo con la descripción del evento. n campo con el tipo de eventoB a !in de poder clasi!icarlo. < 11* < Teniendo en cuenta estas consideracionesB la sentencia C#(T T($ para la ta;la event +PeventosPB en inglés- podra ser as mysql> CREATE TABLE event (name VARCHAR(20), date DATE, -> type VARCHAR(15), remark VARCHAR(255)); }}} Como se hizo con la tabla pet, es m ás fácil realizar la carga inicial de datos si se crea un archivo de texto delimitado con tabulaciones que contenga la información a agregar: name date type remark Fluffy 15/05/95 litter 4 kittens, 3 female, 1 male Buffy 1993-06-23 litter 5 puppies, 2 female, 3 male Buffy 1994-06-19 litter 3 puppies, 3 female Chirpy19 99-03-21 vet needed beak straightened Slim 1997-08-03 vet broken rib Bowser kernnel Fang 1991-10-12 1991-10-12 kernnel Fang 28/08/98 birthday Gave him a new chew toy Claws 1998-03-17 birthday Gave him a new flea collar Whistler 1998-12-09 birthday First birthday $os registros se cargan as mysql> LOAD DATA LOCAL INFILE 'event.txt' INTO TABLE event; Con ;ase en lo que se 9a aprendido a partir de las consultas e!ectua das so;re la ta;la petB se de;era poder recuperar registros de la ta;la eventS los principios son los mismos. ero en un momento dado la ta;la event por s sola es insu!iciente para responder las preguntas que pueden !ormularse. )uponga que se desea sa;er a qué edad tuvo sus cras cada mascota. (nteriormente se aprendió a calcular edades a partir de dos !ec9as. $a !ec9a en que la mascota tuvo sus crias estO en la ta;la eventB pero para calcular su edadB se necesita su !ec9a de nacimientoB la cual estO locali'ada en la ta;la pet. sto signi!ica que la consulta requiere am;as ta;las mysql> SELECT pet.name, -> (YEAR(date)-YEAR(birth)) - (RIGHT(date,5) remark -> FROM pet, event -> WHERE pet.name = event.name AND event.type = 'litter'; +--------+------+-----------------------------+ name age remark +--------+------+-----------------------------+ Fluffy 2 4 kittens, 3 female, 1 male Buffy 4 5 puppies, 2 female, 3 male Buffy 5 3 puppies, 3 female +--------+------+-----------------------------+ Ha8 varias cosas para o;servar en esta consulta $a clOusula ?#7M menciona dos ta;las porque la consulta necesita traer datos de am;as Cuando se com;ina +tam;ién se denomina 5oin SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species -> FROM pet AS p1, pet AS p2 -> WHERE p1.species = p2.species AND p1.sex = 'f' AND p2.sex = 'm'; +--------+------+--------+------+---------+ name sex name sex species +--------+------+--------+------+---------+ Fluffy f Claws m Buffy Buffyf f Fang m Bowser cat dog m dog n la consulta anterio r se especi!icaro n alias para la ta;la con el !in de indicar a qué instancia de la ta;la pertenece cada columna re!erenciada. Instalar & con*igurar + ,indo- S&stem $obre G indo8 $*stem l sistema de ventanas J +en inglés J Kindo )8stem- !ue desarrollado a mediados de los aFos 16: en el MIT para dotar de una inter!a' grO!ica a los sistemas ni%. ste protocolo permite la interacción grO!ica en red entre un usuario 8 una o mOs computadoras 9aciendo transparente la red para éste. >eneralmente se re!iere a la versión 11 de este protocoloB J11B el que estO en uso actualmente. J es el encargado de mostrar la in!ormación grO!ica 8 es totalmente independiente del sistema operativo. l sistema de ventanas J distri;u8e el procesamiento de aplicaciones especi!icand o enlaces cliente P#g;at9P 5emplo Section “Files” RgbPath “/usr/lib/X11/rgb” EndSection Seccion odulesF $a sección Module especi!ica que módulos cargarO el servidor grO!ico JB dic9os módulos aFaden !uncionalidad adicional al servidor J. )ection LModule $oad Ld;e $oad Le%tmod $oad Lt8pe1 $oad L!reet8pe $oad Lgl% nd)ection Seccion InputDe!iceF Cada sección InputDevice con!igura un dispositivo de entrada para el servidor J. $os sistemas Jorg tienen mnimo dos secciones InputDevice n Mouse n Teclado Con!iguracion tipica de un mouse 5emplo Section “InputDevice” Identifier “Mouse0” Driver “mouse” Option “Protocol” “Auto” Option “/dev/psaux” Option “Emulate3Buttons” “no” Option “ZaxisMapping” “4 5” EndSection Identifier: Especifica un nombre para esta secci ón “Device” Driver speci!ica el controlador que de;e cargar para el correcto !uncionamiento del ratón. PmouseP soporta cuatro tipos de mouse Serial Bus PS/2 USB 7ption speci!ica las opciones necesarias pertinentes al dispositivo ara un mouseB las opciones son las siguientes rotocol Indica el protocolo de!ine el tipo de mouse que tenemos < 121 < "ImPS/2" "ExplorerPS/2" "MouseMan" "Microsoft" "Mousesystems" "IntelliMouse" "ThinkingMouse" "ThinkingMousePS/2" "NetScrollPS/2" "NetMousePS/2" "GlidePoint" "GlidePointPS/2" "MouseManPlusPS/2" 47T( $os mouse seriales antiguos de dos o tres ;otones estan normalmente soportados por el protocolo PMicroso!tP o PMouseManP $os mouse seriales con rueda los soporta el protocolo PIntelliMouseP $os mouse )/2 los soporta el protocolo PIm)/2P l protocolo PautoP se usa siempre que este es capa' de detectar el mouse. Coreointer Indica que el ratón de!inido es el mouse principal Device Indica la u;icación del dispositivo !sico +donde se encuentra conectado-B las opciones son las siguientes /dev/input/mice (conectado al puerto USB) /dev/psaux (conectado al puerto PS/2) /dev/ttyS0 /dev/ttyS1 (conectado (conectado al al puerto puerto Serial Serial 0) 1) Emulate3Buttoms: Especifica si un mouse de dos botones se comporte como uno de tres botones, cuando se presionen ambos botones simult áneamente. (%isMapping speci!ica que !uncione la rueda que incorpora el mouse. Configuracion tipica de un teclado 5emplo Section “InputDevice” Identifier “Generic Keyboard” Driver “kbd” Option “CoreKeyboard” Option “XkbRules” “xorg” Option “XkbModel” “pc105” Option “XkbLayout” “es” EndSection Identifier: Especifica un nombre para esta secci ón. Driver speci!ica el controlador que de;e cargar para el correcto !uncionamiento del teclado. 7ption speci!ica las opciones necesarias pertinentes al dispositivo ara un teclado las opciones son las siguientes < 122 < CoreEe8;oard speci!ica que es el teclado principal J@;Model speci!ica el tipo de teclado. $os valores mas comunes son "pc101" "pc102" "pc104" "pc105" "microsoft" XkbLayout: Especifica el lenguaje que usaremos, "es" (espa ñol), "us" (ingles) Seccion De!iceF sta sección es la que de!ine 8 con!igura la tar5eta grO!ica +vdeo5emplo Section “Device” Identifier “Device0” Driver “nvidia” VendorName “NVIDIA Corporation” Option “RenderAccel” “true” Option “AllowGLXWithCompisite” “true” Option “dpms” EndSection Identifier: Especifica un nombre para esta secci ón. Driver speci!ica el controlador que de;e cargar para el correcto !uncionamiento del vdeo. Vendor4ame ste parOmetro es opcionalB especi!ica el !a;ricante de la tar5eta de vdeo. usID ste parOmetro es opcionalB especi!ica el ;us en el que se encuentra conectada la tar5eta grO!icaB sta opción Nnicamente es necesaria para sistema con mNltiples tar5etas grO!icas. )creen ste parOmetro es opcionalB especi!ica que conector del monitor en la tar5eta grO!ica con!igura la sección Device. sta opción en mu8 Ntil solamente para tar5etas con mNltiples conectores. )i dos monitores o mas son conectados en di!erentes conectores en la misma tar5eta grO!icaB de;en e%istir en %org.con! secciones Device separadas 8 cada una de estas secciones de;e tener un valor )creen di!erente. $os valores para la entrada )creen de;e ser enteros. l primer conector de la tar5eta de vdeo tiene el valor :. l valor para cada conector adicional incrementa este valor en uno. 7ption Pnom;reGopciónP ste parOmetro es opcional. #eemplace Pnom;re GopciónP c on una de las opciones listadas para esta sección en la pagina man de %org.con! na de las opciones mas 9a;ituales es PdpmsP +Displa8 oer Management )ignalling-B se usa para activar el estado de a9orro de energa del monitor. < 123 < Seccion onitorF sta sección es la que de!ine 8 con!igura los parOmetro del monitor 5emplo Section “Monitor” Identifier “Acer X203W” Option “DPMS” HorizSync 30-83 VertRefresh “55-75” EndSection Identifier: Especifica un nombre para esta secci ón. Puede existir varias secciones "Monitor" en el archivo xorg.conf, cada una con diferente identificación (Identifier), esto es causado porque disponemos de dos o mas monitores conectados al ordenador. Hori')8nc speci!ica la !recuencia de ;arrido 9ori'ontal del monitorB e%presado en @H'. uede ser una !recuencia !i5a +3:.&-B multiples !recuencias !i5as +3:.&B 3&.-B un rango +3:<11:-B o varios rangos +1&<2&B 3:< *"Vert#e!res9 speci!ica la !recuencia de ;arrido vertical del monitorB e%presado en H'B los valores son iguales a la opción Hori')8nc. Seccion ScreenF sta sección es la que va a de!inir la pantallaB vinculando una tar5eta grO!ica +Device- con la sección PMonitorP 5emplo Section “Screen” Identifier “Default Screen” Device “nvidia geforce mx400” Monitor “AcerX203W” DefaultDepth 24 Options “AddARGBGLXvVisuals” “True” Subseccion “Display” Depth 1 Modes “1600x1050” ”1200x1024” ”1024x768” ”800x600” “640X400” Subseccion “Display” Depth 4 Modes “1600x1050” ”1200x1024” ”1024x768” ”800x600” “640X400” Subseccion “Display” Depth 8 Modes “1600x1050” ”1200x1024” ”1024x768” ”800x600” “640X400” Subseccion “Display” Depth 15 Modes “1600x1050” ”1200x1024” ”1024x768” ”800x600” “640X400” Subseccion “Display” Depth 16 Modes “1600x1050” ”1200x1024” ”1024x768” ”800x600” “640X400” Subseccion “Display” Depth 24 Modes “1600x1050” ”1200x1024” ”1024x768” ”800x600” “640X400” EndSection Identi!ier speci!ica un nom;re unico para esta sección Device speci!ica el nom;re de una sección PDeviceP e%istente en el !ic9ero %org.con! Monitor speci!ica el nom;re Nnico de una sección PMonitorP e%istente en !ic9ero %org.con! 7;servación las entradas PDevice 8 MonitorP tienen que tener el mismo valor que la entrada PIdenti!ierP de las secciones PDeviceP 8 PMonitorP. De esta manera se entrela'an las con!iguraciones de las di!erentes secciones. De!aultDept9 speci!ica la pro!undidad de color por de!ecto en ;its. )u;)ection PDispla8P speci!ica los modos disponi;les de la pantalla para una pro!undidad de color en particular. < 12" < 7;servación na sección P)creenP puede tener mNltiples su;secciones PDispla8PB pero de;e e%istir al menos una para la pro!undidad de color especi!icada en la entrada PDe!aultDept9P Dept9 speci!ica la pro!undidad de color de la su;secciónB los valores posi;les son 1B "B B 1&B 1* 8 2" ;its Modes speci!ica las resoluciones que podremos visuali'ar segNn nuestro monitor. uede especi!icarse una sola resolución P1*:%1:&:P +si sa;emos que nuestro monitor la soporta-B o un listado de estas P1*:%1:&: P P12:%1:2"P P1:2"%0*P P::%*::P P*":%":P. or de!ecto se usa la primera en la listaB siempre que este soportada por nuestro monitorB si no se usa la siguienteB 8 asi 9asta la ultima resolución que tengamos listada. 4ota Dependiendo de nuestro monito r 8 tar5eta gra!ica +si son de gama Pmedia ;a5aP o in!erior-B puede darse los siguientes casos ( ma8or pro!undidad de color P2" ;itsP o;tenemos menor resolución P::%*::P ( menor pro!undidad de color P ;itsP o;tenemos ma8or resolución P1*:%1:&:P 7ption Pnom;re de opciónP speci!ica parOmetros e%tras para la sección. #eemplace Pnom;re de opciónP con una opción valida listada para esta sección en la pagina man de %org.con! Seccion Ser!erLa$aoutF sta sección es la que vincula los dispositivos de entrada 8 salida que controla el servidor %org. Como mnimoB esta sección de;e especi!icar un dispositivo de salida +monitor- 8 al menos dos de entrada + un teclado 8 un ratónn articular esta sección 5unta todos los identi!icadores PIdenti!ierP de cada sección. Section “ServerLayout” Identifier “Default Layout” Screen “Default InputDevice “Configured Mouse” EndSection Screen” InputDevice “Generic Layout” Identi!ier speci!ica un nom;re para esta sección. )creen speci!ica el nom;re de la sección P)creenP a ser usado por el servidor %org. uede n estar presente mOs de una opción P)creenP Tareas Administrativas (dministrando cuentas de usuarioB grupos 8 !ic9eros del sistema n este capitulo a;odar emos temas como son la creacionB eliminacionB suspencion 8 cam;io en las cuentas de usuario del sistemaB tam;ien aprenderemos a crear 8 eliminar gruposB 8 por ultimo estudiaremos la manera < 12& < de cam;iar el grupo al cual pertenece un usuario 8 ane%arlo a otro. Comen'aremos 9a;lando de los !ic9eros directamente relacionados con las cuentas de los usuarios 8 la !uncion que estos desempeFan. ?ic%ero /etc/passGd ste !ic9e ro almancena datos so;re las cuentas de usuario del sistem aB dic9os datos se encuentran organi'ados linea a lineaB de las cuales cada una corresponde a un usuario. Tam;ien puede encontrar en este !ic9ero algunos servici os del sistema como son B el servidor e; o el de correo. Cada una de estas lineas se encuentra !ormada por 0 campos los cuales se encuentran separadpos por el operador  $os campos de los cuales 9a;lamos son con!ormados por los siguientes parametros UserName 1 X 2 UserID 3 GroupID 4 UserInfo 5 HomeDir 6 Shell 7 l segundo campo es comunmente conocido como el campo de passord 8 se encuentra directamente ligado a la contraseFa del usuario. ste campo puede adoptar 3 parametros posi;lesB estos parametros son % $a letra % i ndica que el pa ssord del usuario se e ncuentra ci!rado 8 lig ado directamente al ! ic9ero /etc/s9ado [ o $os parametros o  indican que el usuario no podra loearse en el sistemaB esta opcion es comunmente asignada a usuarios que 9acen uso de servicios como ?T o correo vacio )i se encontrace est e campo vaci o signi!ica ent onces que el usua rio no tien e asignada ninguna contraseFa n e5emplo del !ic9ero /etc/passd se muestra a continuacion suario. <4om;re de la cuenta con la que el usuario se logeara para acceder al sistema assord. ID. >rupo secundario al cual puede ser asignado un usuario 5emplos < 120 < a- <> desarrollo\ava ;- <> ventasMedicas c- <> soporteH groupB... ID-B campo " de /etc/passd <> sta;lece a los ue puede pertenecer el usuarioB separados por comas. ID &:& 8 todo esto se aplicó al usuario ZsegoZ que como se o;serva de;e ser el Nltimo argumento del comando. < 12 < userdel l comando userdel remueve un usuario del sistema. )inta%is [BASH]# userdel -r nombreDelUsuario 7pciones Descripcion ID- de grupo por de;a5o del numero &:: ste particular >ID es utili'ado por los servicios del sistema como un servidor e; o de correoX ID de un grupo. )inta%is ()H` groupmod rupo 7pciones 7pciones Descripcion ID de un grupo e%istente en el sistema IDB con el mismo nom;re del usuario. s decirB si se aFade el usuario ZpaolaZ tam;ién se crea el /etc/group el grupo ZpaolaZ. ?ic%ero /etc/gs%adoG ste !ic9ero almacena las contraseFas ci!radas de los gruposBlos administradores de cada grupo 8 los usuarios que pertenecen a cada grupoB contiene una linea para cada grupo con cuatros campos por grupo 5emplo NombreDelGrupo Contraseña o ! listaDeAdministradores listaDeMiembros Cada uno de estos campos separado por el identi!icador  $a lista de administradores 8 miem;ros de un grupo de;en estar separados mediante el identi!icador S pGcon! $ pGuncon! l comportamiento por de!ecto de todas las distros modernas de >4/$inu% es activar la protección e%tendida del arc9ivo /etc/s9adoB que +se insiste- oculta e!ectivamente el Y9as9Z ci!rado de la contraseFa de /etc/passd ero si por alguna ;i'arra 8 e%traFa situación de compati;ilidad se requiriera tener las contraseFas ci!radas en el mismo arc9ivo de /etc/passd se usara el comando punconv [BASH]# more /etc/passwd root:x:0:0:root:/root:/bin/bash hack:x:501:500:Hack Beastie:/home/hack:/bin/bash $a % en el campo 2 indica que se 9ace uso de /etc/s9ado como mencionamos anteriormente. [BASH]# more /etc/shadow root:ghy675gjuXCc12r5gt78uuu6R:10568:0:99999:7:7:-1:: < 133 < hack:rfgf886DG778sDFFDRRu78asd:10568:0:-1:9:-1:-1:: [BASH]#pwunconv [BASH]# more /etc/passwd root:ghy675gjuXCc12r5gt78uuu6R:0:0:root:/root:/bin/bash sergio:rfgf886DG778sDFFDRRu78asd:501:500:Hack Beastie:/home/hack:/bin/bash n cualquier momento es posi;le reactivar la protección de s9ado [BASH]# pwconv [BASH]# ls -l /etc/passwd /etc/shadow -rw-r--r-- 1 root root 1106 2007-07-08 01:07 /etc/passwd -r-------- 1 root root 699 2009-07-08 01:07 /etc/shadow )e vuelve a crear el arc9ivo s9adoB ademOs nótese los permisos tan restrictivos +"::- que tiene este arc9ivoB 9aciendo sumamente di!cil que cualquier usuario que no sea root lo lea. grpcon! $ grpuncon! stos comandos !uncionan de la misma manera que pconv 8 punconvB solo que aplicados a los !ic9eros /etc/group /etc/gs9ado (utomati'ar tareas de administración del sistema mediante la programación de scripts de tra;a5o $obre C"ON Cron es un administrador o plani!icador de tareas de segundo plano. s un demonio que e5ecuta procesosB programas o scriptsB a intervalos regulares programados. or e5emplo podemos instruirlo para e5ecutar un script cada cinco minutosB una copia de seguridad diariaB o una e%portacion semanal de la ;ase de datos. $as 9oras a las que de;en e5ecutarse dic9os procesos se indican en el !ic9ero cronta; correspondiente al usuario. n el sistema operativo ni%B cron es un administrador regular de procesos en segundo plano +demonio- que e5ecuta procesos o scripts a intervalos regulares +por e5emploB cada minutoB de semana o mes-. $os procesos que de;en e5ecutarse 8 la 9ora en la que de;en 9acerlo se especi!ican en el arc9ivo cronta; correspondiente. n este modulo veremos como (Fadir tareas al cronta; de root (Fadir tareas enla'adas cada 9oraB diariasB semanales 8 mensuales (Fadir tareas al cronta; del sistema l cronta; de root l !ic9ero cronta; de root se guarda en /var/spool/cron/cronta;s/rootB pero nunca editaremos los !ic9eros de cron directamente. ara editar el cronta; +!ic9ero donde se guardan las tareas programadas- de rootB utili'aremos siempre la utilidad cronta;. Concretamente utili'aremos la orden cronta; > /var/log/mi-cron.log )i quisieramos que se e5ecutase a las 163:9 pero solo los lunes pondriamos < 13& < # m h dom mon dow command 30 19 1 echo "Son las 19:30h. del lunes." >> /var/log/mi-cron.log  si quisieramos que se e5ecute a las 163: del dia 1 de diciem;re # m h dom mon dow command 30 19 1 12 echo "Son las 19:30h. del 1 de diciembre." >> /var/log/mi-cron.log j,ue pasa si queremos que se e5ecute a las 16 8 163:_ )e puede poner mas de un valor en cada campoB separandolos por comas # m h19 dom mon"Son dow command 0,30 echo las 19 o las 19:30h. No estoy seguro." >> /var/log/mi-cron.log j para e5ecutarlo cada & minutos_ )e podria poner L&B1:B1&B2:B2& pero 9a8 una a;reviaturaB asi L/min # m h dom mon dow command /5 echo "Han pasado cinco minutos." >> /var/log/mi-cron.log Directorios predefinidos %ourl$B dail$B Gee-l$ $ mont%l$ $os sistemas 4IJ modernos vienen con unos directorios prede!inidos para que cron los lee 8 e5ecute lo que 9a8 dentro en los intervalos que su nom;re indica /etc/cron.daily /etc/cron.hourly /etc/cron.weekly /etc/cron.monthly Dic9os directorios se suelen utili'ar para enla'ar guiones que de;an ser llamados en el intervalo correspondiente al directorioB sin argumentos. or e5emploB si creamos un guion de ;as9 8 lo guardamos en /root/;inB le damos permisos de e5ecucionB 8 lo enla'amos en /etc/cron.9ourl8B cron lo e5ecutar ^ cada 9ora [BASH]# chmod +x /root/bin/miScript.sh [BASH]# ln -s /root/bin/miScript.sh /etc/cron.hourly/ Cronta, del sistema l arc9ivo de cron de sistema es /etc/cronta;. )i ponemos tareas en dic9o arc9ivo seran e5ecutadas igualmenteB pero no es recomenda;le. ste cronta; se de5a para que lo mane5e la distri;ucion 8 sus programas. s igual que el cronta; de rootB salvo que en este podemos especi!icar con que usuario se e5ecuta cada cosaB 8 cron 9ara una suplantacion previa a la e5ecucion. n /etc/cronta; tpico es [BASH]# cat /etc/crontab etc/crontab: system-wide crontab Unlike any other crontab you don’t have to run the ‘crontab’ command to install the new version when you edit this file and files in /etc/cron.d. These files also have username fields, < 13* < that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin m h dom mon dow user command 17 root cd / && run-parts --report /etc/cron.hourly 25 6 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) Log de cron n De;ian & $enn8 el log de cron viene desactivado por de!ecto. ara activarlo tendremos que editar el !ic9ero /etc/de!ault/cron 8 eliminar la almo9adilla +`- del principio de la linea JT#(G7T)=P<$ 2P de5ando el !ic9ero asi # cat /etc/default/cron Cron configuration options Uncomment this option for LSB name support in /etc/cron.d/ LSBNAMES=’-l’ Whether to read the system’s default environment files (if present) This will make cron set a proper charset for the mails it sends Comment this or set it to something other than ’yes’ to prevent cron from reading it. READ_ENV="yes" Extra options for cron, see cron(8) For example, set a higher log level to audit cron’s work EXTRA_OPTS="-L 2" De esta !orma conseguiremos que cron va8a de5ando un rastro en /var/log/s8slog que podremos o;servarB por e5emploB asi [BASH]# tail -f /var/log/syslog Administrando la %ora del e>uipo n este capitulo aprenderemos a con!iguar la 9ora del sistema mediante el uso de servidores de tiempo 4T. #elo5 de tiempo ;a5o linu% $inu% utili'a dos relo5es Reloj de Hardware Reloj de Software n equipo personal tiene un relo5 de 9ardare alimentado por una ;atera. sa ;atera asegura que el relo5 continNe tra;a5ando aNn cuando la computadora se encuentre sin suministro eléctrico. l relo5 de 9ardare puede ser modi!icado +o de!inido- desde la pantalla de con!iguración de la I7) o desde cualquier sistema operativo. l @ernel $inu% mantiene la !ec9a 8 9ora de manera independ iente al relo5 de 9ardare. Durante el < 130 < inicio de un sistema $inu%B el @ernel con!igura su propio relo5 de so!tare accediendo a la !ec9a 8 9ora mantenida por el relo5 de 9ardare. $uegoB am;os relo5es tra;a5an independientemente. $inu% mantiene su propio relo5 de;ido a que leer el relo5 de 9ardare constantemente es lento 8 complicado. l relo5 del @ernel siempre muestra la 9ora universalB por lo que no necesita conocer como utili'ar usos 9orarios. $a simplicidad de este modo de tra;a5ar proporci ona alta con!ia;ilidad 8 !acilita actuali'ar la in!ormación de la 'ona 9oraria. Cada proceso reali'a las conversiones de 'ona 9oraria de manera independiente. l relo5 de 9ardare puede estar en !ormato de 9ora local u 9ora universal. sualmente es me5or que el relo5 de 9ardare mantenga la 9ora universalB porque de esta manera no serO necesario modi!icar la 9ora del relo5 cuando el 9orario de verano empiece o !inalice. Programas para controlar el relo" del sistema a5o linu% e%isten 2 9erramientas principales que son implementadas para administrar el relo5 9ardare 8 el de so!tare del sistemaB estas 9erramientas son hwclock Controla el reloj de hardware date Controla el reloj del sistema A(ustes de tiempo * de las =onas 6orarias Ha8 2 !ormas estOndar para a5ustar el relo5 de un equipo localtime Por ubicacion geografica TC l tiempo universal coordinadoB o TCB en es paFolB tam;ién conocido como ti empo civilB es el tiem po de la 'ona 9oraria de re!erencia respecto a la cual se calculan todas las otras 'onas del mundo (5uste de la 9ora en $inu% El procedimiento es relati'amente simple: 1- l primero consiste en a5ustar el relo5 de Hardare a traves de la con!iguracion del I7) 2- l segundo consiste en esta;lecer la varia;le de entorno T a la 'ona 9oraria adecuada utili'ando el siguiente comando [BASH]# tzselect (lternativa al paso 2 tilice el programa t'con!ig que esta;lecerO un enlace sim;ólico de la siguiente !orma [BASH]# ln -s /usr/share/zoneinfo/Mexico/General /etc/localtime 3- l tercero consiste en decirle a $inu% que nuestro relo5 de 9ardare 8 de sistema corre; ;a5o TCB para ello teclee lo siguiente [BASH]# hwclock --utc --hctosys < 13 < Comando 68cloc7 Hcloc@ es una 9erramienta que nos permite (cceder al #elo5 del Hardare Mostrar la 9ora actual oner el #elo5 del Hardare a una 9ora especi!icada oner el #elo5 del Hardare a la Hora del )istema oner el Tiempo del )istema desde el #elo5 del Hardare. tam;ién puede e5ecutar 9cloc@ periódicamente para insertar o quitar tiempo del #elo5 del Hardare para compensar desviaciones sistemOticas en las que el relo5 gana o pierde tiempo consistentem ente a una cierta velocidad si se de5a solo. )inta%is [BASH]# hwclock [opciones] 7pciones 7pciones Descripcion <4 )egundos +::..*:-S n ta;ulador 9ori'ontal Tiempo B 2" 9oras +99mmssDia de la semana +1..0- el dia 1 representa el lunes 4Nmero de semana del aFo con el domingo como primer da de la semana +::..&34Nmero de semana del aFo con el lunes como primer da de la semana +::..&3Dia de la samana +:..*-S : representa el Domingo 4umero de la semana del aFo con $unes como primer dia de la semana +::..&3#epresentacion de la !ec9a local +mm/dd/88#epresentacion de la 9ora local +HM)$os ultimos dos digitos del aFo +::..66(Fo +160:..- $er'icios Esenciales del $istema Mail Trans*er Agent .asico Protocolo $MTP < 1": < )imple Mail Trans!er rotocol +)MT- rotocolo )imple de Trans!erencia de CorreoB es un protocolo de la capa de aplicación. rotocolo de red ;asado en te%to utili'ado para el intercam;io de mensa5es de correo electrónico entre computadoras u otros dispositivos )MT se ;asa en el modelo cliente4/$in u%-. )i ;ien puede compilarse en sistemas operati vos KindosB se recomienda que sea utili'ado en producción so;re sistemas operativos de la !amilia ni%. )e distri;u8e sin costo ;a5o la licencia >4 >$ por lo que esB ademOsB so!tare li;re. Tiene una gran !le%i;ilidad en los caminos que pueden seguir los mensa5es segNn su srcen 8 por presentar !uncionalidades para control de spamB listas de ;loqueo ;asados en D4) +D4)$-B virusB control de rela8B usuarios 8 dominios virtuales 8 otrosB que se con!iguran 8 mantienen en !orma mOs o menos sencilla. l pro8ecto cuen ta con ;uena documentaciónB e5emplos 8 recetas claras de Lcomo 9acer determinadas tareas. n términos generales se destaca que no e%isten situaciones para las que %im sea una opción incorrecta 8 en muc9as situaciones se desempe Fa como la me5or opción. %im es el MT( por de!ecto en las distri;uciones De;ian >4/$inu%. $obre Fmail ,mail es un servidor de correo electrónico +)MT- 9ec9o para ni%. tili'a el !ormato maildir para almacenar mensa5es +un arc9ivo por mensa5e-B eliminando varios pro;lemas asociados al mane5o del !ormato m;o%. ,mail es distri;uido como código !uente +sourcecode-B escrito en lengua5e C. (dministrar impresoras e impresiones Como imprimir en Linux n $inu% podemos imprimir de tres maneras 1.scri;ir directamente en la impresora la !orma mOs sencilla de imprimir un arc9ivo en $inu% es enviarlo directamente a la impresora. or e5emploB para imprimir investigacion.t%t 9aremos < 1"3 < [BASH]#cat investigacion.txt > /dev/lp0 2.l sistema lpr/lpd es la versión para $inu% del sistema lp +$ine rinter- de 4IJ. Hasta que apareció C ) era el sistema estOndar de imprimir en $inu%. Incluso a9oraB es el sistema que se instala por de!ecto. 3.l sistema C) +Common 4IJ rinting )8stem- actualmente es el sistema estOndar de impresión en $inu%. n el entorno grO!icoB las aplicaciones que pueden imprimir son compati;les tanto con lpr/lpd como con C) utili'arOn el sistema que esté instaladoB tra;a5arOn so;re él 8 o;tendrOn automOticamente las propiedades de la impresora. En 5ue consiste el sistema de impresion C%P$ l sistema de impresión C) reempla'a al sistema de impresión lpr/lpd 8 consiste en lo siguiente 1.l demonio de impresión cupsd +print spooler daemon- vigila los directorios spool ;uscando tra;a5os a imprimir. Cuando aparece algunoB cupsd lan'a una copia de s mismo que imprimirO el arc9ivo en la impresora apropiada. 2.$a cola de impresión +spool- u;icada en el directorio /var/spool/cupsB donde se almacenan los tra;a5os a imprimir. $os nuevos tra;a5os a imprimir se colocan en la cola de impresión a la espera el primero que entra es el primero que sale. 3.$os comandos lpr/lpd para mane5ar la cola de impresión el sistema lpr/lpd es uno de los estOndares de 4IJB 8 las aplicaciones asumen que tendrO n los comandos de este sistema de impresión disponi;les. or este motivo C) proporciona su propia versión de esos comandosB que son lpr +o lp- enviar tra;a5os a la cola de impresión. ste comando copia el arc9ivo a imprimir en el directorio de spoolB donde permanece 9asta que el demonio cupsd lo imprime. )u sinta%is es ()H` lpr Qarc9ivoR lpq consultar los tra;a5os pendientes en la cola de impresión. lpc con!igurar las impresoras. lprm eliminar tra;a5os de la cola de impresión. ".los drivers D de las impresoras ost)cript en $inu%B cuando una aplicación enva un documento a la impresora genera un arc9ivo ost)cript. )i la impresora entiende el lengua5e ost)cript puede imprimir el documento directamente. )ólo tenemos que decirle a C) cuOles son las caractersticas de la impresoraB 8 eso lo 9ace el arc9ivo D +ostscript rinter Description- contiene todas las caractersticas de la impresoraB como tamaFos de papelB coloresB resoluciones disponi;lesB etc. )i la impresora no entiende ost)cript de;emos traducir los documentos que generan las aplicaciones +ost)cript- a un lengua5e que entienda la impresoraB por lo que necesitamos un !iltro. De esto se encarga ?oomatic +paquete !oomatic9ost)cript-. n am;os casosB el arc9ivo D de la impresora se puede descargar desde $inu%rinting +linu %printing.org- o desde la e; de C) +cups.org- 8 se de;e guardar en el directorio /usr/s9are/cups/model. &.$os comandos C) para administrar las impresoras < 1"" < lpinfo lpadmin enable disable accept reject lpoptions lpstat *.$a inter!a' e; de C) es la me5or opción para administrar C). Instalar una impresora local con C%P$ Veamos cómo instalar una impresora local con C) utili'ando su inter!a' e; conectamos la impresora. conseguimos e instalamos el archivo PPD de nuestra impresora. instalamos Foomatic si la impresora no es PostScript. reiniciamos el demonio de CUPS: [BASH]# /etc/init.d/cups start accedemos al interfaz web de CUPS: http://localhost:631 entramos a Administracion pulsamos Añadir impresora e introducimos Nombre de la impresora: HP Lasser Jet, Ubicación: Oficina: HP Laser. en la siguiente pantalla nos preguntará Tipo de conexión: seleccionamos el modelo. nos pedirá Usuario y Contrase ña, ya que para administrar impresoras hay que tener permisos de root (la contraseña se envía en texto plano, sin encriptar). y ya tenemos la impresora instalada. pulsando en Impresoras iremos a la p ágina de la nueva impresora. Desde aquí podemos monitorizar los trabajos de impresi ón, cambiar las opciones de configuraci ón y seleccionarla como impresora predeterminada. para terminar, comprobamos que realmente funciona lanzando una página de prueba con Imprimir página de prueba. Compartir nuestra impresora Tenemos dos posi;ilidades para compartir nuestra impresora 1.que C) escuc9e cone%iones de mOquinas remotas $os equipos que dispongan de un cliente I +$inu%B ni%B Mac 8 Kindos J- podrOn conectar con el demonio de impresión cupsd de nuestra mOquina mediante el protocolo I +Internet rinting rotocolB puerto *31 TC-B e imprimir en nuestra impresoraB una ve' que les permitamos acceder. ara elloB en el arc9ivo de con!iguración de C)B /etc/cups/cupsd.con! especi!icaremos qué mOquinas tienen acceso a C). uscaremos las lneas Order Deny,Allow Deny All Allow 127.0.0.1 Vemos que por de!ecto sólo puede acceder a C) la propia mOquina +120.:.:.1-. ara que puedan acceder las mOquinas de la $(4 aFadiremos la lnea Allow 192.168.0.0/255.255.255.0 < 1"& < ara terminar reiniciamos el demonio de C) [BASH]# /etc/init.d/cups restart na ve' compartida la impresoraB es mu8 sencillo imprimir desde $inu% Inter!a' e; de C) 9ttp//local9ost*31 (dministraciónB (Fadir impresora Introducimos 4om;re de la impresoraB ;icación 8 Descripción Tipo de cone%iónB Internet rinting rotocol +I-. #$ de la cone%iónB ipp//162.1*.:.2/printers/Canon. ModeloB suario 8 ContraseFa 8 la impresora 8a estO instalada. (sistente para agregar impresoras Impresora de red o una impresora conectada a otra computadora Conectarse a una impresora en Internet o en su red doméstica u organi'ación #$ de la cone%iónB 9ttp//162.1*.:.2*31/printers/Canon. Instalamos los drivers de la impresora desde el CD del !a;ricante 1.,ue el servidor )am;a atienda peti ciones remotas 8 las pase a C) $os equipos que dispongan de un cliente )M +Kindos- podrOn conectar con el servidor )am;a +paquete sam;a- de nuestra mOquina mediante el protocolo )M +puerto 136 TC-B 8 éste se encargarO de pasarle la petición a C). Vamos a con!igurar el servidor )am;a para compartir nuestra impresora. rimero crearemos en nuestro sistema un usuario espec!ico +sm;print- para que acceda a la impresora mediante )am;a. )i queremos permitir acceso anónimo lo podemos crear sin contraseFa ()H` ` /usr/s;in/adduser <ra;amos los cam;ios 8 reiniciamos )am;a [BASH]# /etc/init.d/samba restart na ve' compartida la impresoraB es mu8 sencillo imprimir desde Kindos locali'amos nuestra mOquina en el %plorador de arc9ivos. Veremos que tiene una impresora compartida. pulsamos Conectar... e instalamos los drivers desde el CD del !a;ricante. < 1"* < 3undamentos de "ed /undamentos de TCP0IP $obre TCP1IP $a !amilia de protocol os de Internet es un con5unto de protoco los de red en la que se ;asa Internet 8 que permiten la transmisión de datos entre redes de computadoras. n ocasiones se le denomina con5unto de protocolos TC/IB en re!erencia a los dos protocolos mOs importantes que la componen rotocolo de Control de Transmisión +TC- 8 rotocolo de Internet +I-B que !ueron los dos primeros en de!inirseB 8 que son los mOs utili'ados de la !amilia. %isten tantos protocolos en este con5unto que llegan a ser mOs de 1:: di!erentesB entre ellos se encuentra el popular HTT +H8perTe%t Trans!er rotocol-B que es el que se utili'a para acceder a las pOginas e;B ademOs de otros como el (# +(ddress #esolution rotocol- para la resolución de direccionesB el ?T +?ile Trans!er rotoc ol- para trans!erencia de arc9ivosB 8 el )MT +)imple Mail Trans!er rotocol- 8 el 7 +ost 7!!ice rotocol- para correo electrónicoB T$4T para acceder a equipos remotosB entre otros. l TC/I es la ;ase de InternetB 8 sirve para enla'ar computadoras que utili'an di!erentes sistemas operativosB inclu8endo CB minicomputadoras 8 computadoras centrales so;re redes de Orea local +$(4- 8 Orea e%tensa +K(4-. TC/I !ue desarrollado 8 demostrado por primera ve' en 1602 por el Departamento de De!ensa de los stados nidosB e5ecutOndolo en (#(4TB una red de Orea e%tensa de dic9o departamento. $a !amilia de protocolos de Internet puede descri;irse por analoga con el modelo 7)I +7pen )8stem Interconnection-B que descri;e los niveles o capas de la pila de protocolosB aunque en la prOctica no corresponde e%actamente con el modelo en Internet. n una pila de protocolosB cada nivel soluciona una serie de pro;lemas relacionados con la transmisión de datosB 8 proporciona un servicio ;ien de!inido a los niveles mOs altos. $os niveles superiores son los mOs cercanos al usuario 8 tratan con datos mOs a;stractosB de5ando a los niveles mOs ;a5os la la;or de traducir los datos de !orma que sean !sicamente manipula;les. l modelo de Internet !ue diseFad o como la solución a un pro;lema prOctico de ingenier a. l modelo 7)IB en cam;ioB !ue propuesto como una apro%imación teórica 8 tam;ién como una primera !ase en la evolución de las redes de ordenad ores. or lo tantoB el modelo 7)I es mOs !Ocil de entenderB pero el modelo TC/I es el que realmente se usa. )irve de a8uda entender el modelo 7)I antes de conocer TC/IB 8a que se aplican los mismos principiosB pero son mOs !Ociles de entender en el modelo 7)I. Desarrollo de C+/I+ $a ?amilia de rotocolos de Internet !ueron el resultado del tra;a5o llevado a ca;o por la (gencia de Investigación de ro8ectos (van'ados de De!ensa +D(#( por sus siglas en inglés- a principios de los 0:. Después de la construcción de la pionera (#(4T en 16*6 D(#( comen'ó a tra;a5ar en un gran nNmero de tecnologas de transmisión de datos. n 1602B #o;ert . Ea9n !ue contratado por la 7!icina de Técnicas de rocesamiento de In!ormación de D(#(B donde tra;a5o en la comunicación de paquetes por satélite 8 por ondas de radioB reconoció el importante valor de la comunicación de estas dos !ormas. n la primavera de < 1"0 < 1603B Vint Cer!B desarrollador del protocolo de (#(4TB 4etor@ Control rogram+4C- se unió a Ea9n con el o;5etivo de crear una arquitectura a;ierta de intercone%ión 8 diseFar as la nueva generación de protocolos de (#(4T. ara el verano de 1603B Ea9n 8 Cer! 9a;ian conseguido una remodelación !undamentalB donde las di!erencias entre los protocolos de red se oculta;an usando un rotocolo de comunicaciones 8 ademOsB la red de5a;a de ser responsa;le de la !ia;ilidad de la comunicaciónB como pasa;a en (#(4T B era el 9ost el responsa;le. Cer! reconoció el mérito de Hu;ert immerman 8 $ouis ou'inB creadores de la red CC$(D)B 8a que su tra;a5o estuvo mu8 in!luenciado por el diseFo de esta red. n ordenador denominado router +un nom;re que !ue después cam;iado a gatea8B puerta de enlaceB para evitar con!usiones con otros tipos de uerta de enlace- esta dotado con una inter!a' para cada redB 8 enva Datagrama de ida 8 vuelta entre ellos. $os requisitos para estor routers estOn de!inidos en +#equest !or Comments 112-. sta idea !ue llevada a la prOctica de una !orma mas detallada por el grupo de investigación que Cer! tena en )tan!ord durante el periodo de 1603 a 160"B dando como resultado la primera especi!icación TC +#equest !or Comments *0&- ntonces D(#( !ue contratada por 4 Tec9nologiesB la niversidad de )tan!ordB 8 la niversit8 College de $ondres para desarrollar versiones operacionales del protocolo en di!erentes plata!ormas de 9ardare. )e desarrollaron as cuatro versiones di!erentes TC v1B TC v2B una tercera dividida en dos TC v3 8 I v3 en la primavera de 160B 8 después se esta;ili'ó la versión TC/I v"  el protocolo estOndar que todava se emplea en Internet actualmente n 160&B se reali'ó la primera prue;a de comunicación entre dos redes con protocolos TC/I entre la niversidad de )tan!ord 8 la niversit8 College de $ondres+C$-. n 1600B se reali'ó otra prue;a de comunicación con un protocolo TC/I entre tres redes distintas con u;icaciones en stados nidosB #eino nido 8 4oruega. Varios prototipos di!erentes de protocolos TC/I se desarrollaron en mNltiples centros de investigación entre los aFos 160 8 163. $a migración completa de la red (#(4T al protocolo TC/I conclu8ó o!icialmente el da 1 de enero de 163 cuando los protocolos !ueron activados permanentemente. n mar'o de 162B el Departamento de De!ensa de los stados nidos declaró al protocolo TC/I el estOndar para las comunicaciones entre redes militares.n 16&B el Centro de (dministración de Internet +Internet (rc9itecture oard I( por sus siglas en inglésorgani'ó un Taller de Tra;a5o de tres das de duraciónB al que asistieron 2&: comerciales promocionando as el protocolo lo que contri;u8ó a un incremento de su uso comercial. "i!eles en la pila C+/I+ Ha8 algunas discusiones so;re como enca5a el modelo TC/I dentro del modelo 7)I. Como TC/I 8 modelo 7)I no estOn delimitados con precisión no 9a8 una respuesta que sea la correcta. l modelo TC/I no estO lo su!icientemente dotado en los niveles in!eriores como para detallar la auténtica estrati!icación en niveles necesitara tener una capa e%tra +el nivel de #ed- entre los niveles de transporte e Internet. rotocolos espec!icos de un tipo concreto de redB que se sitNan por encima del marco de 9ardare ;OsicoB pertenecen al nivel de redB pero sin serlo. 5emplos de estos protocolos son el (# +rotocolo de resolución de direcciones8 el )T +)panning Tree rotocol-. De todas !ormasB estos son protocolos localesB 8 tra;a5an por de;a5o de las capas de Internet. Cierto es que situar am;os grupos +sin mencionar los protocolos que !orman parte del nivel de Internet pero se sitNan por encima de los protocolos de InternetB como ICM- todos en la misma capa puede producir con!usiónB pero el modelo 7)I no llega a ese nivel de comple5idad para ser mOs Ntil como modelo de re!erenci a. l siguiente diagrama intenta mostrar la pila 7)I 8 otros protocolos relacionado s con el modelo 7)I srcinal 4ormalmenteB los tres niveles superiores del modelo 7)I +(plicaciónB resentación 8 < 1" < )esión- son considerados simplemente como el nivel de aplicación en el con5unto TC/I. Como TC/I no tiene un nivel de sesión uni!icado so;re el que los niveles superiores se sostenganB estas !unciones son tpicamente desempeFadas +o ignoradas- por las aplicaciones de usuario. $a di!erencia mOs nota;le entre los modelos de TC/I 8 7)I es el nivel de (plicaciónB en TC/I se integran algunos niveles del modelo 7)I en su nivel de (plicación. na interpretación simpli!icada de la pila TC/I se muestra de;a5o Nivel Fisico l nivel !sico descri;e las caractersticas !sicas de la comunicaciónB como las convenciones so;re la naturale'a del medio usado para la comunicación +como las comunicaciones por ca;leB !i;ra óptica o radio-B 8 todo lo relativo a los detalles como los conectoresB código de canales 8 modulaciónB potencias de seFalB longitudes de ondaB sincroni'ación 8 tempori'ación 8 distancias mO%imas. Nivel de Enlace de Datos l nivel de enlace de datos especi!ica cómo son transportados los paquetes so;re el nivel !sicoB inclu8endo los delimitadores +patrones de ;its concretos que marcan el comien'o 8 el !in de cada trama-. t9ernetB por e5emploB inclu8e campos en la ca;ecera de la trama que especi!ican que mOquina o mOquinas de la red son las destinatarias de la trama. 5emplos de protocolos de nivel de enlace de datos son t9ernetB Kireless t9ernetB )$IB To@en #ing 8 (TM.  es un poco mOs comple5o 8 srcinalmente !ue diseFado como un protocolo separado que !unciona;a so;re otro nivel de enlaceB HD$C/)D$C. ste nivel es a veces su;dividido en Control de enlace lógico +$ogical $in@ Control- 8 Control de acceso al medio +Media (ccess Control-. Nivel de internet Como !ue de!inido srcinalmenteB el nivel de red soluciona el pro;lema de conseguir transportar paquetes a través de una red sencilla. 5emplos de protocolos son J.2& 8 Host/IM rotocol de (#(4T. Con la llegada del concepto de InternetB nuevas !uncionalidades !ueron aFadidas a este nivelB ;asadas en el intercam;io de datos entre una red srcen 8 una red destino. >eneralmente esto inclu8e un enrutamiento de paquetes a través de una red de redesB conocida como Internet. n la !amilia de protocolos de InternetB I reali'a las tareas ;Osicas para conseguir transpo rtar datos desde un srcen a un destino. I puede pasar los datos a una serie de protocolos superioresS cada uno de esos protocolos es identi!icado con un Nnico P4Nmero de protocolo IP. ICM 8 I>M son los protocolos 1 8 2B respectivamente. (lgunos de los protocolos por encima de I como ICM +usado para transmitir in!ormación de diagnóstico so;re transmisiones I- e I>M +usado para dirigir trO!ico multicast- van en niveles superiores a I pero reali'an !unciones del nivel de red e ilustran una incompati;ilidad entre los modelos de Internet 8 7)I. Todos los protocolos de enrutamientoB como >B 7)?B 8 #I son realmente tam;ién parte del nivel de redB aunque ellos parecen pertenecer a niveles mOs altos en la pila. Nivel de Transporte $os protocolos de enrutamiento dinOmico que técnicamente enca5an en el con5unto de protocolos TC/I +8a < 1"6 < que !uncionan so;re I- son generalmente considerados parte del nivel de redS un e5emplo es 7)? +protocolo I nNmero 6-. TC +protocolo I nNmero *- es un mecanismo de transporte !ia;le 8 orientado a cone%iónB que proporciona un !lu5o !ia;le de ;8tesB que asegura que los datos llegan completosB sin daFos 8 en orden. TC reali'a continuamente medidas so;re el estado de la red para evitar so;recargarla con demasiado trO!ico. (demOsB TC trata de enviar todos los datos correctamente en la secuencia especi!icada. sta es una de las principales di!erencias con DB 8 puede convertirse en una desventa5a en !lu5os en tiempo real +mu8 sensi;les a la variación del retardo- o aplicaciones de enrutamiento con porcenta5es altos de pérdida en el nivel de Intern et. MOs reciente es )CTB tam;ié n un mecanismo !ia;le 8 orientado a cone%ión. stO relacionado con la orientación a ;8teB 8 proporciona mNltiples su;iga;8te. $a opción de escala de ventana TC es usada solo durante la negociación en tres pasos que constitu8e el comien'o de la cone%ión. l valor de la escala representa el nNmero de ;its despla'ados a la i'quierda de los 1* ;its que !orman el campo del tamaFo de ventana. l valor de la escala puede ir desde : +sin despla'amiento- 9asta 1". Ha8 que recordar que un nNmero ;inario despla'ado un ;it a la i'quierda es como multiplicarlo en ;ase decimal por 2. ?in de la conexion $a !ase de !inali'ación de la cone%ión usa una negociación en cuatro pasos +!our<a8 9ands9a@e-B terminando la cone%ión desde cada lado independientemente. Cuando uno de los dos e%tremos de la cone%ión desea parar su PmitadP de cone%ión transmite un paquete ?I4B que el otro interlocutor asentirO con un (CE. or tantoB una descone%ión tpica requiere un par de segmentos ?I4 8 (CE desde cada lado de la cone%ión. na cone%ión puede estar Pmedio a;iertaP en el caso de que uno de los lados la !inalice pero el otro no. l lado que 9a dado por !inali'ada la cone%ión no puede enviar mOs datos pero la otra parte si podrO. +uertos C+ TC usa el concepto de nNmero de puerto para identi!icar a las aplicaciones emisoras 8 receptoras. Cada lado de la cone%ión TC tiene asociado un nNmero de puerto +de 1* ;its sin signoB con lo que e%isten *&&3* puertos posi;les- asignado por la aplicación emisora o receptora. $os puertos son clasi!icados en tres categoras ;ien conocidosB registrados 8 dinOmicos/privados. $os puertos ;ien conocidos son asignados por la Internet (ssigned 4um;ers (ut9orit8 +I(4(-B van del : al 1:23 8 son usados normalmente por el sistema o por procesos con privilegios. $as aplicaciones que usan este tipo de puertos son e5ecutadas como servidores 8 se quedan a la escuc9a de cone%iones. (lgunos e5emplos son ?T +21-B ))H +22-B Telnet +23-B )MT +2&- 8 HTT +:-. $os puertos registrados son normalmente empleados por las aplicaciones de usuario de !orma temporal cuando conectan con los servidoresB pero tam;ién pueden representar servicios que 9a8an sido registrados por un tercero +rango de puertos registrados 1:2" al "61&1-. $os puertos dinOmicos/privados tam;ién pueden ser usados por las aplicaciones de usuarioB pero este caso es menos comNn. $os puertos dinOmicos/privados no tienen signi!icado !uera de la cone%ión TC en la que !ueron usados +rango de puertos dinOmicos/privados "61&2 al *&&3&B recordemos que el rango total de 2 elevado a la potencia 1*B cu;re *&&3* nNmerosB del : al *&&3&-. +rotocolo 3D+ < 1&3 < ser Datagram rotocol +D- es un protocolo del nivel de transporte ;asado en el intercam;io de datagramas. ermite el envo de datagramas a través de la red sin que se 9a8a esta;lecido previamente una cone%iónB 8a que el propio datagrama incorpora su!iciente in!ormaci ón de direccionamiento en su ca;ecera. Tampoco tiene con!irmación ni control de !lu5oB por lo que los paquetes pueden adelantarse unos a otrosS 8 tampoco se sa;e si 9a llegado correctamenteB 8a que no 9a8 con!irmación de entrega o recepción. )u uso principal es para protocolos como DHCB 77TB D4) 8 demOs protocolos en los que el intercam;io de paquetes de la cone%ión/descone%ión son ma8oresB o no son renta;les con respecto a la in!ormación transmitidaB as como para la transmisión de audio 8 vdeo en tiempo realB donde no es posi;le reali'ar retransmisiones por los estrictos requisitos de retardo que se tiene en estos casos. +uertos C+ D utili'a puertos para permitir la comunicación entre aplicaciones. l campo de puerto tiene una longitud de 1* ;itsB por lo que el rango de valores vOlidos va de : a *&.&3&. l puerto : estO reservadoB pero es un valor permitido como puerto srcen si el proceso emisor no espera reci;ir mensa5es como respuesta. $os puertos 1 a 1:23 se llaman puertos P;ien conocidosP 8 en sistemas operativos tipo ni% enla'ar con uno de estos puertos requiere acceso como superusuario. $os puertos 1:2" a "6.1&1 son puertos registrados. $os puertos "6.1&2 a *&.&3& son puertos e!meros 8 son utili'ados como puertos temporalesB so;re todo por los clientes al comunicarse con los servidores. Diferencias entre C+ $ 3D+ D proporciona un nivel de transporte no !ia;le de datagramasB 8a que apenas aFade la in!ormación necesaria para la comunicación e%tremo a e%tremo al paquete que enva al nivel in!erior. $o utili'an aplicaciones como 4?) +4etor@ ?ile )8stem- 8 #C +comando para copiar !ic9eros entre ordenadores remotos-B pero so;re todo se emplea en tareas de control 8 en la transmisión de audio 8 vdeo a través de una red. 4o introduce retardos para esta;lecer una cone%iónB no mantiene estado de cone%ión alguno 8 no reali'a seguimiento de estos parOmetros. (sB un servidor dedicado a una aplicación particular puede soportar mOs clientes activos cuando la aplicación corre so;re D en lugar de so;re TC. TC es el protocolo que proporciona un transporte !ia;le de !lu5o de ;its entre aplicaciones. stO pensado para poder enviar grandes cantidades de in!ormación de !orma !ia;leB li;erando al programador de la di!icultad de gestionar la !ia;ilidad de la cone%ión +retransmisionesB pérdida de paquetesB orden en el que llegan los paquetesB duplicados de paquetes...- que gestiona el propio protocolo. ero la comple5idad de la gestión de la !ia;ilidad tiene un coste en e!iciencia B 8a que para llevar a ca;o las gestiones anteriores se tiene que aFadir ;astante in!ormación a los paquetes que enviar. De;ido a que los paquetes para enviar tienen un tamaFo mO%imoB cuanta mOs in!ormació n aFada el protocolo para su gestiónB menos in!ormación que provi ene de la aplicación podrO contener ese paquete +el segmento TC tiene una so;recarga de 2: ;8tes en cada segmentoB mientras que D solo aFade  ;8tes-. or esoB cuando es mOs importante la velocidad que la !ia;ilidadB se utili'a D. n cam;ioB TC asegura la recepción en destino de la in!ormación para transmitir. 1:6.& rotocolo ICM l rotocolo de Mensa5es de Control de Internet o ICM +por sus siglas de Internet Control Message rotocol- es el su; protocolo de control 8 noti!icación de errores del rotocolo de Internet < 1&" < +I-. Como talB se usa para enviar mensa5es de errorB indicando por e5emplo que un servicio determinado no estO disponi;le o que un router o 9ost no puede ser locali'ado . ICM di!iere del propósi to de TC 8 D 8a que generalmente no se utili'a directamente por las aplicaciones de usuario en la red. $a Nnica e%cepción es la 9erramienta ping 8 tracerouteB que envan mensa5es de petición c9o ICM +8 reci;e mensa5es de respuesta c9o- para determinar si un 9ost estO disponi; leB el tiempo que le toma a los paquetes en ir 8 regresar a ese 9ost 8 cantidad de 9osts por los que pasa. a,la de +uertos C+ $ 3D+ uerto/rotocolo Descripcion 1/tcp Multiplexor TCP 7/tcp Protocolo Echo (Eco) Reponde con eco a llamadas remotas 7/udp Protocolo Echo (Eco) Reponde con eco a llamadas remotas 9/tcp Protocolo Discard Elimina cualquier dato que recibe 9/udp Protocolo Discard Elimina cualquier dato que recibe 13/tcpProtocolo Daytime Fecha y hora actuales 17/tcpQuote of the Day (Cita del Día) 19/tcpProtocolo Chargen Generador de caractéres 19/udpProtocolo Chargen Generador de caractéres 0 FTP File Transfer Protocol (Protocolo de Transferencia de Ficheros) - datos 21/tcpFTP File Transfer Protocol (Protocolo de Transferencia deFicheros) - control 22/tcpSSH, scp, SFTP 23/tcpTelnet comunicaciones de texto inseguras 25/tcpSMTP Simple Mail Transfer Protocol (Protocolo Simple de Transferencia de Correo) 37/tcptime 43/tcpnicname 53/tcpDNS Domain Name System (Sistema de Nombres deDominio) 53/udpDNS Domain Name System (Sistema de Nombres deDominio) 67/udpBOOTP BootStrap Protocol (Server), también usado por DHCP 68/udpBOOTP BootStrap Protocol (Client), también usado por DHCP 69/udp TFTP Trivial File Transfer Protocol (Protocolo Trivial de Transferencia de Ficheros) 0 Gopher 79/tcpFinger 0 HTTP HyperText Transfer Protocol (Protocolo de Transferencia de HiperTexto) (WWW) 88/tcpKerberos Agente de autenticación 0 POP3 Post Office Protocol (E-mail) 111/tcp sunrpc 113/tcp ident (auth) antiguo sistema de identificaci ón 119/tcp NNTP usado en los grupos de noticias de usenet 123/udp NTP Protocolo de sincronizaci ón de tiempo 123/tcp NTP Protocolo de sincronizaci ón de tiempo 135/tcp epmap 137/tcp NetBIOS Servicio de nombres 137/udp NetBIOS Servicio de nombres 138/tcp NetBIOS Servicio de env ío de datagramas 138/udp NetBIOS Servicio de env ío de datagramas 139/tcp 139/udp 143/tcp 161/tcp 161/udp 162/tcp 162/udp 177/tcp 177/udp 389/tcp NetBIOS Servicio de sesiones IMAP4 Internet Message Access Protocol (E-mail) SNMP Simple Network Management Protocol SNMP Simple Network Management Protocol SNMP-trap SNMP-trap XDMCP Protocolo de gesti ón de displays en X11 XDMCP Protocolo de gesti ón de displays en X11 LDAP Protocolo de acceso ligero a Bases de Datos < 1&& < 389/udp LDAP Protocolo de acceso ligero a Bases de Datos 443/tcp HTTPS/SSL usado para la transferencia segura de p áginas web 445/tcp Microsoft-DS (A ctive Di rectory, co mpartici ón en Windows, gusano Sasser, Agobot) 445/udp Microsoft-DS c ompartici ón de ficheros 0 IPSec ISAKMP, Autoridad de Seguridad Local 512/tcp exec 513/tcp login 514/udp syslog usado para logs del sistema 0 RIP 591/tcp FileMaker 6.0 (alternativa para HTTP, ver puerto 80) 631/tcp CUPS sistema de impresi ón de Unix 666/tcp identificación de Doom para jugar sobre TCP 993/tcp IMAP4 sobre SSL (E-mail) 995/tcp POP3 sobre SSL (E-mail) 0 SOCKS Proxy 1337/tcp suele usarse en m áquinas comprometidas o infectadas 1352/tcp IBM Lotus Notes/Domino RCP 1433/tcp Microsoft-SQL-Server 1434/tcp Microsoft-SQL-Monitor 1434/udp Microsoft-SQL-Monitor 1494/tcp Citrix MetaFrame Cliente ICA 1512/tcp WINS 1521/tcp Oracle listener por defecto 0Enrutamiento y Acceso Remoto para VPN con L2TP. 1723/tcp Enrutamiento y Acceso Remoto para VPN con PPTP. 1761/tcp Novell Zenworks Remote Control utility 1863/tcp MSN Messenger 0 NFS Archivos del sistema de red 0 CPanel puerto por defecto 0 Web Host Manager puerto por defecto 2427/upd Cisco MGCP 0 NetPanzer 0 NetPanzer 3128/tcp HTTP usado por web caches y por defecto en Squid cache 3128/tcp NDL-AASde gesti ón de bases de datos 0 MySQL sistema 3389/tcp RDP (Remote Desktop Protocol) 3396/tcp Novell agente de impresi ón NDPS 0 Subversion (sistema de control de versiones) 4662/tcp eMule (aplicaci ón de compartición de ficheros) 4672/udp eMule (aplicaci ón de compartición de ficheros) 4899/tcp RAdmin (Remote Administrator), herramienta de administraci ón (normalmente troyanos) 0 Universal plug-and-play 0 Session Initiation Protocol (SIP) 0 AOL y AOL Instant Messenger 5222/tcp XMPP/Jabber conexi ón de cliente 5223/tcp XMPP/Jabber puerto por defecto para conexiones de cliente SSL 5269/tcp XMPP/Jabber conexi ón de servidor 5432/tcp PostgreSQL sistema de gesti ón de bases de datos 5517/tcp Setiqueue proyecto SETI@Home 5631/tcp PC-Anywhere protocolo de escritorio remoto 5632/udp PC-Anywhere protocolo de escritorio remoto 0 VNC protocolo de escritorio remoto (usado sobre HTTP) 0 VNC protocolo de escritorio remoto (usado sobre HTTP) 0 VNC 0 VNC 0 VNC 0 VNC 6000/tcp 6112/udp 6129/tcp 6346/tcp 6347/udp 6348/udp protocolo protocolo de de escritorio escritorio remoto remoto (usado (usado sobre sobre HTTP) HTTP) protocolo de escritorio remoto (usado sobre HTTP) protocolo de escritorio remoto (conexi ón normal) X11 usado para X-windows Blizzard Dameware Software conexi ón remota Gnutella compartici ón de ficheros (Limewire, etc.) Gnutella Gnutella < 1&* < remota 6349/udp Gnutella 0 Gnutella 6355/udp Gnutella 6667/tcp IRC IRCU Internet Relay Chat 6881/tcp BitTorrent puerto por defecto 6969/tcp BitTorrent puerto de tracker 0 Servidor de Fuentes X11 7100/udp Servidor de Fuentes X11 0 iRDMI por lo general, usado err óneamente en sustitución de 8080. Tambi én utilizado en el servidor de streaming ShoutCast. 0 HTTP HTTP-ALT ver puerto 80. Tomcat lo usa como puerto por defecto. 8118/tcp privoxy 0 Pichat peer-to-peer chat server 9898/tcp Gusano Dabber (troyano/virus) 0 Webmin (Administraci ón remota web) 19226/tcp Panda SecurityPuerto de comunicaciones de Panda Agent. 12345/tcp NetBus en:NetBus (troyano/virus) 31337/tcp Back Orifice herramienta de administraci ón remota (por lo general troyanos) #irecciones IP na dirección I es un nNmero que identi!ica de manera lógica 8 5erOrquica a una inter!a' de un dispositivo +9a;itualmente una computadora- dentro de una red que utilice el protocolo I +Internet rotocol-B que corresponde al nivel de red del protocolo TC/ I. Dic9o nNmero no se 9a de con!undir con la dirección M(C que es un nNmero 9e%adecimal !i5o que es asignado a la tar5eta o dispositivo de red por el !a;ricanteB mientras que la dirección I se puede cam;iar. s 9a;itual que un usuario que se conecta desde su 9ogar a Internet utilice una dirección I. sta dirección puede cam;iar cada ve' que se conectaS 8 a esta !orma de asignación de dirección I se denomina una dirección I dinOmica +normalmente se a;revia como I dinOmica-. $os sitios de Internet que por su naturale'a necesitan estar permanentemente conectadosB generalmente tienen una dirección I !i5a +se aplica la misma reducción por I !i5a o I estOtica-B es decirB no cam;ia con el tiempo. $os servidores de correoB D4)B ?T pN;licosB 8 servidores de pOginas e; necesariamente de;en contar con una dirección I !i5a o estOticaB 8a que de esta !orma se permite su locali'ación en la red. ( través de Interne tB los ordenadores se conectan entre s mediante sus respectivas direcciones I. )in em;argoB a los seres 9umanos nos es mOs cómodo utili'ar otra notación mOs !Ocil de recordar 8 utili'arB como los nom;res de dominioS la traducción entre unos 8 otros se resuelve mediante los servidores de nom;res de dominio D4). %iste un protocolo para asignar direcciones I dinOmicas llamado DHC +D8namic Host Con!iguration rotocol-. #irecciones IP', n su versión *.&&B una dirección I se implementa con un nNmero de 32 ;it que suele ser mostrado en cuatro grupos de nNmeros decimales de  ;its +Iv"-. Cada uno de esos nNmeros se mueve en un rango de : a 2&& +e%presado en decimal-B o de : a ?? +en 9e%adecimal- o de : a 11111111 +en ;inario-. $as direcc iones I se pueden e%presar como nNmeros de notación decimal se divide n los 32 ;its de la dirección en cuatro octetos. l valor decimal de cada octeto puede ser entre : 8 2&& +el nNmero ;inario de  ;its mOs alto es 11111111 8 esos ;itsB de derec9a a i'quierdaB tienen valores decimales de 1B 2B "B B 1*B 32B *" 8 12B lo que suma 2&& en total-. < 1&0 < n la e%presión de direccione s Iv" en decimal se separa cada octeto por un carOcter P.P. Cada uno de estos octetos puede estar comprendido entre : 8 2&&B salvo algunas e%cepciones. $os ceros inicialesB si los 9u;ieraB se pueden o;viar. 5emplo de representación de dirección Iv" 1*".12.123.*& Ha8 tres clases de direcciones I que una organi'aci ón puede reci;ir de parte de la Internet Corpora tion !or (ssigned 4ames and 4um;e rs +IC(44- clase (B clase  8 clase C. n la actualidadB IC(44 reser va las direcciones de clase ( para los go;iernos de todo el mundo +aunque en el pasado se le 9a8an otorgado a empresas de gran envergadura comoB por e5emploB Helett ac@ard- 8 las direcciones de clase  para las medianas empresas. )e otorgan direcciones de clase C para todos los demOs solicitantes. Cada clase de red permite una cantidad !i5a de equipos +9osts-. n una red de clase (B se asigna el primer octeto para identi!icar la redB reservando los tres Nltimos octetos +2" ;its- para que sean asignados a los 9ostsB de modo que la cantidad mO%ima de 9osts es 22" < 2 +las direcciones reservadas de ;roadcast Nltimos octetos a 2&& 8 de red Nltimos octetos a :-B es decirB 1* 000 21" 9osts. n una red de clase B se asignan los dos primeros octetos para identi!icar la redB reservando los dos octetos !inales +1* ;its- para que sean asignados a los 9ostsB de modo que la cantida d mO%ima de 9osts es 21* < 2B o *& &3" 9osts. n una red de clase CB se asignan los tres primeros octetos para identi!icar la redB reservando el octeto !inal + ;its- para que sea asignado a los 9ostsB de modo que la cantidad mO%ima de 9osts es 2 < 2B ó 2&" 9osts. $a dirección :.:.:.: es utili'ada por las mOquinas cuando estOn arrancando o no se les 9a asignado dirección. $a dirección que tiene su parte de 9ost a cero sirve para de!inir la red en la que se u;ica. )e denomina dirección de red. $a dirección que tiene su parte de 9ost a unos sirve para comunicar con todos los 9osts de la red en la que se u;ica. )e denomina dirección de ;roadcast. $as direcciones 120.%.%.% se reservan para prue;as de retroalimentación. )e denomina dirección de ;ucle local o loop;ac@. Ha8 ciertas direcciones en cada clase de dirección I que no estOn asignadas 8 que se denominan direcciones privadas. $as direcciones privadas pueden ser utili'adas por los 9osts que usan traducción de dirección de red +4(T- para conectarse a una red pN;lica o por los 9osts que no se conectan a Internet. n una misma red no puede e%istir dos direcciones igualesB pero s se pueden repetir en dos redes privadas que no tengan cone%ión entre s o que se sea a través de 4(T. $as direcciones privadas son Clase ( 1:.:.:.: a 1:.2&&.2&&.2&& + ;its redB 2" ;its 9ostsso VI \$a red militar norte4/$inu% utili 'a. ara listar el contenido de este !ic9ero teclee lo siguiente [BASH]# cat /etc/services /TP ?T +sigla en inglés de ?ile Trans!er rotocol < rotocolo de Trans!erencia de (rc9ivos- en in!ormOticaB es un protocolo de red para la trans!erencia de arc9ivos entre sistemas conectados a una red TCB ;asado en la arquitectura cliente para re!erirse al lag o latencia de su cone%ión. %iste otro tipoB ing (TMB que se utili'a en las redes (TM +como puede ser una simple (D)$ instalada en casa- 8B en este casoB las tramas que se transmiten son (TM +nivel 2 del modelo 7)I-. ste tipo de paquetes se envan para pro;ar si los enlaces (TM estOn correctamente de!inidos. #ig Dig es una 9erramienta +linea de comandos- disponi;le en prOcticamente cualquier distri;ución linu% que te permite 9acer consultas a un servidor dns. Dig precisa conocer la dirección I de un servidor D4) al que consultar por de!ectoB dirección I que toma del arc9ivo resolv.con!B 8 en sistemas >4/$inu% en /etc/resolv.con! Traceroute Traceroute es una 9erramienta de diagnóstico de redes que permite seguir la pista de los paquetes que van desde un 9ost +punto de red- a otro. )e o;tien e ademOs una estadstica del #TT o latencia de red de esos paquetesB lo que viene a ser una estimación de la distancia a la que estOn los e%tremos de la comunicación. sta 9erramienta se llama traceroute en 4IJ 8 >4/linu%B mientras que en Kindos se llama tracert. 5emplo [BASH]# traceroute www.google.com traceroute to .l.google.com +*".233.1*6.66-B *" 9ops ma%B ": ;8te pac@ets 1 2 102.1*.13.1 +102.1*.13.1- 23 ms 23 ms 22 ms 3 1:.120.**.226 +1:.120.**.226- M$) $a;el 1"06 %p : 3 ms &1 ms 3 ms " cnt<:: $os valores que admit es son 8es ermite la con!iguración de los servicio de red. no 4o permite la con!iguración de los servicio de red. ?7#K(#DGIV" Ha;ilita el reenvo de paquetes. $os valores que admite son 8es o no. H7)T4(M De!ine el nom; re del equipoB el cual de ;e de tener la !orm a del ?ull 8 ,uali!ied Domain 4ame +?,D4-. or e5emplo equipo.e5emplo.net >(TK( ste parametro de!ine la dirección I del >atea8 Con!iguracion de la inter!a' de red l directorio de con!iguración de la inter!a' de red se encuentra en /etc/s$sconfig/netGor-'scripts/ Dentro de este directorio se encuentran los arc9ivos de con!iguración de los dispositivosB dependiendo del numero de inter!aces de red instaladas en el computadora serO el numero de arc9ivos de con!iguraciónB el nom;re de estos arc9ivos depende del tipo de dispositivo < 1*" < t9ernet i!c!g(TK( De!ine la Dirección I del >atea8 en la red 7477T sta;lece si el dispositivo de;e activarse con los servicios de red D4)1B D4)2 De!ine la direcciones de los servidores D4) primario 8 secundario a utili'ar. DHCGH7)T4(M sta opción esta;lece un no m;re al equipo. tilice esta op ción si el serv idor DHC requiere que el cliente especi!ique el nom;re de su equipo antes de reci;ir una dirección I. 5emplo del arc9ivo de con!iguración. DVIC=et9: 77T#7T7=static I(DD#=162.1*.2.1: 4TM()E=2&&.2&&.2&&.: >(TK(=162.1*.2.2&" D4)1=162.1*.2.1 HK(DD#= ::1C*CD&1 Tareas de (dministracion de )eguridad 4TK7#E=162.1*.2.: El Protocolo $$H l protocolo ))H +)ecure )9ell- es una 9erramienta que nos permite conectarnos a equipos remotos +)ervidores en roducción- as mismoB nos da la capacidad de llevar a ca;o tareas administrativas dentro del mismo comoB activar o apagar serviciosB (demOs de la cone%ión a otros equiposB ))H nos permite copiar datos de !orma seguraB gestionar claves #)( para no escri;ir claves al conectar a las mOquinas 8 pasar los datos de cualquier otra aplicación por un canal seguro tuneli'a do mediante ))H. na clave #)( +)istema Criptogra!ico con Clave u;li ca- es un algoritmo que genera un par de llaves de autenticacio nB la pu;lica 8 la privada. $a pu;lica se distri;u8e en !orma autenticada 8 la privada que generalmente es guardada en secreto por el propietario. l protocolo ))H +)ecure )9ell- esta implementado ;a5o el estOndar TC/IB el cual a su ve' se encuentra dividido en & secciones 1.4ivel ?sico 2.4ivel De nlace 3.4ivel de Internet ".4ivel de Transporte &.4ivel de (plicación or lo que el protocolo ))H esta u;icado en la quinta capa del modelo TC/IB nos re!erimo s a la capa de < 1*& < aplicación $a capa de aplicación es el nivel que los programas mOs comunes utili'an para comunicarse a través de una red con otros programas. $os procesos que acontecen en este nivel son aplicaciones espec!icas que pasan los datos al nivel de aplicación en el !ormato que internamente use el programa 8 es codi!icado de acuerdo con un protocolo estOndar. De manera predeterminadaB el protocolo ))H atiende peticiones por el puerto 22 n este capitulo 9aremos uso de 7pen))H la cual es la alternativa li;re 8 a;ierta al programa propietario ))H Acerca de Open$$H 7pen))H +7pen )ecure )9ell- es un con5unto de aplicaciones que permiten reali'ar comunicaciones ci!radas a través de una redB usando como ;ase al protocolo ))H. ste pro8ecto es liderado actualmente por T9eo de #aadt quien actualmente es !undador 8 lder de pro8ectos como 7pen)D. $os desarrolladores de 7pen))H aseguran que este es mOs seguro que el srcinalB lo cual es de;ido a la conocida reputación de los desarrolladores de 7pen)D por crear código limpio 8 per!ectamente auditadoB lo que contri;u8e a que sea mOs seguro. )u seguridad tam;ién es atri;ui;le al 9ec9o de que su código !uente se distri;u8a li;remente con una licencia )D. (unque todo el código !uente del ))H srcinal tam;ién estO disponi;leB e%isten restricciones con respecto a su uso 8 distri;uciónB lo que convierte a 7pen))H en un pro8ecto muc9o mOs atractivo a la 9ora de atraer nuevos desarrolladores. (demOs de la cone%ión a otros equiposB open))H nos permite copiar datos de !orma segura mediante la implementación de dos 9erramientas proporcionadas por open))HB estas son )C )?T stas 9erramientas en realidad tienen la misma !unción de copiado solo se di!erencian en la !orma en como son aplicadas tema del cual 9a;laremos mas adelante. Instalando Open$$H ( partir de este punto empe'aremos a descargar los paquetes necesarios para el per!ecto !uncionamiento de open))HB de esta manera si usted se encuentra tra;a5ando ;a5o algNn am;iente grO!icoB sea ED o >47M le pedimos a;ra una terminal de ()HB por otra parte si usted se encuentra tra;a5ando ;a5o linea de comandos no tendrO que 9acer nada. $os paquetes a descargar son los siguientes openssh openssh-clients openssh-server $a !orma en que se instalaran estos paquetes sera tecleando en consola lo siguiente [root@ localhost ] # yum install -y openssh openssh-clients openssh-server na ve' !inali'ado el proceso de instalación pasaremos con las con!iguraciones propias de open))HB nos re!erimos a los !ic9eros de con!iguración < 1** < Arc%i!os de configuraci:n de #penSS= 7pen))H dispone de dos con5untos di!erentes de !ic9eros de con!iguración uno completamente dedicado al cliente +ss9B scp 8 s!tp- 8 otro orientado completamente al servidor. (rc9ivos de con!iguración del lado del servidor $a u;icación de los !ic9eros de con!iguración re!erentes al servidor open))H se encuentran en la siguiente ruta /etc/ss%/ Dentro del directorio podemos encontrar los siguientes !ic9eros de con!iguración moduliContiene grupos Diffie-Hellman usados para el intercambio de la clave DiffieHellman que es imprescindible para la construcción de una capa de transporte seguro. Cuando se intercambian las claves al inicio de una sesi ón SSH, se crea un valor secreto y compartido que no puede ser determinado por ninguna de las partes individualmente. Este valor se usa para proporcionar la autenticaci ón del host. ssh_config El ar chivo de co nfiguraci ón del sistema cliente SSH por defecto. Este archivo se sobrescribe si hay alguno ya presente en el directorio principal del usuario sshd_config El archivo de configuraci ón para el demonio sshd ssh_host_dsa_key La clave privada DSA usada por el demonio sshd ssh_host_dsa_key.pub La clave p ública DSA usada por el demonio sshd ssh_host_key La clave privada RSA usada por el demonio sshd para la versi ón 1 del protocolo SSH. ssh_host_key.pub La clave p ública RSA usada por el demonio sshd para la versi ón 1 del protocolo SSH. ssh_host_rsa_key La clave privada RSA usada por el demonio sshd para la versi ón 2 del protocolo SSH. ssh_host_rsa_key.pub La c lave p ública RSA usada por el demonio sshd para la versión 2 del protocolo SSH. Arc%i!os de configuraci:n del lado del cliente $a u;icación de los !ic9eros re!erentes al cliente se encuentran almacenados en el directorio de tra;a5o de cada usuario 5emplo L/9ome/usuario/ Dentro del directorio podemos encontrar los siguientes !ic9eros de con!iguración authorized_keys Este archivo contiene una lista de cl aves p úblicas autorizadas. Cuando unpúcliente se conecta al servidor, autentica al cliente chequeando su clave blica firmada almacenada dentro el de servidor este archivo. id_dsaContiene la clave privada DSA del usuario. id_dsa.pub La clave p ública DSA del usuario id_rsaLa clave RSA privada usada por ssh para la versión 2 del protocolo SSH. id_rsa.pub La clave p ública RSA usada por ssh para la versión 2 del protocolo SSH. identity La clave privada RSA usada por ssh para la versi ón 1 del protocolo SSH. identity.pub La clave pública RSA usada por ssh para la versión 1 del protocolo SSH. known_hosts Este archivo contiene las claves de host DSA de los servi dores SSH a los cuales el usuario ha accedido. Este archivo es muy importante para asegurar que el < 1*0 < cliente SSH está conectado al servidor SSH correcto Configuraci:n de fic%ero ss%dconfig $a !unción que desempeFan los !ic9eros de con!iguración de open))H son de vital importancia para la seguridad de nuestro servidor B 8a que si no se llegaran a con!igurar apropiadamente estos !ic9eros la vulnera;ilidad de nuestro servidor seria demasiado sensi;le a ataques in!ormOticosB es por ello que le enseFaremos la manera apropiada en la que de;erO ser con!igurado este vital !ic9ero. lindando el fic%ero ss%dconfig ste !ic9ero lo podrO locali'ar en en la siguiente ruta /etc/ssh/ l siguiente paso sera a;rir el !ic9ero con la a8uda del editor de te%tos VI [root@ localhost #] vi /etc/ssh/sshd_config ( partir de este punto comen'aremos a ;lindar ))H Cam,iando el puerto por defecto ))H tiene asignado por de!ecto el puerto 22B esto es algo que conocen todos nuestros posi;les atacantes B por lo que es una ;uena idea cam;iarlo. ara modi!icar esta opción 8 las siguientes que iremos mencionando editaremos el !ic9ero de con!iguración s9dGcon!igB que por de!ecto se encuentra en el directorio /etc/ss9/. )e recomienda usar un puerto cualquie ra por encima del 1:2"B as que usted puede elegir el que quiera. n este e5emplo usaremos el 3"0*&B por lo que tendrO que editar el parOmetro ort del !ic9ero de con!iguración el cual de;erO quedar as # The strategy used for options in the default sshd_config shipped with OpenSSH is to specify options with their default value where possible, but leave them commented. Uncommented options change a default value. Port 34567 AddressFamily any ListenAddress 0.0.0.0 ListenAddress :: Desacti!ando el +rotocolo 2 Ha8 dos versiones de ss9 en cuanto a su protocolo de comunicaciónB estas son Versión 1 Versión 2 $a versión 1 de open))H 9ace uso de varios algoritmos de ci!rado de datos mas sin em;argoB algunos de estos algoritmos 9an de5ado de ser mantenidos por sus creadores 8 por lo tanto presenta serios 9uecos de < 1* < seguridad que potencialmen te permite a un intruso insertar datos en el canal de comunicación. ara evitar el uso del protocolo 1 8 sus posi;les ataque s a esteB ;asta con indicar que solo adm ita comunicaciones de ss9 ;asadas en el protocolo 2B por lo que tendrO que editar el parOmetro rotocol del !ic9ero de con!iguración el cual de;erO quedar as # Disable legacy (protocol version 1) support in the server for new installations. In future the default will change to require explicit activation of protocol 1 Protocol 2 Des%a,ilitando el acceso a root ste es qui'O el parOmetro mas importante de seguridad que podemos indicar para ;lindar nuestro servi dor. rOcticamente la ma8ora de sistemas operativos $inu% crean por de!ecto al usuario root B es por ello que la ma8ora de los ataques in!ormOti cos se concentran en atacar al equipo a través de la cuenta de root 8 muc9o mas si la cuenta tiene asignad a una contraseFa dé;il na manera de des9a; ilitar el logeo al sistema a través de la cuenta de root es poner en no la varia;le erm it#oot$ogin B con esto el usuario root no tendrO permiso de acceder mediante ss9 8 por lo tanto cualquier intento de ataque directo a root serO inNtil. Con esto siempre tendremos que ingresar como un usuario normal 8 8a estando adentro entonces mediante un su A cam;iarnos a la cuenta de root. ara llevar a ca;o estos cam;ios tendrO que editar el parOmetro ermit#oot$ogin del !ic9ero de con!iguración el cual de;erO quedar de la siguiente manera # Authentication: LoginGraceTime 2m PermitRootLogin no StrictModes yes MaxAuthTries 6 Definiendo un nHmero mximo de intentos de conexi:n Muc9os de los ataques llevados a ca;o por piratas in!ormOticos se ;asan en !uer'a ;rutaB esta;leciendo un nNmero mO%imo de intentos de cone%ión lograremos que sus intentos por entrar a nuestro servidor sean disuadidos. ara llevar a ca;o estos cam;ios tendrO que editar el parOmetro Ma%(ut9Tries del !ic9ero de con!iguración el cual de;erO quedar de la siguiente manera # Authentication: LoginGraceTime 2m PermitRootLogin no StrictModes yes MaxAuthTries 2 l nNmero 2 indica la cantidad de veces que podemos equivoca rnos al ingresar el usuario 8/o contraseFaB en este caso después de dos intentosB se perderO o cerrarO la cone%ión. ClaroB es totalmente posi;le volver a intentarloB pero con solo dos intentos por ve'. < 1*6 < Acti!ando el modo estricto $a opción )trictModes de;e activarse para queB por e5emploB los usuarios que esta;lecen permisos de escritura para todos en sus !ic9eros 8 directorios no se lleven una desagrada;le noticia cuando otro usuario los modi!iqueB de esta manera se protege la in!ormación de los usuarios. ara llevar a ca;o estos cam;ios tendrO que editar el parOmetro )trictModes del !ic9ero de con!iguración el cual de;erO quedar de la siguiente manera # Authentication: LoginGraceTime 2m PermitRootLogin no StrictModes yes MaxAuthTries 2 Impidiendo la conexi:n al ser!idor grfico )i nuestro servidor no tienen entorno grO!ico instaladoB o no queremos que los usuarios se conecten a élB de!iniremos esta opción en el !ic9ero de con!ig uración ara llevar a ca;o estos cam;ios tendrO que editar el parOmetro J11?orarding del !ic9ero de con!iguración el cual de;erO quedar de la siguiente manera # Accept locale-related environment variables AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL AllowTcpForwarding yes GatewayPorts no X11Forwarding yes Limitando el tiempo para autenticarse con SS= l nNmero indica la cantidad de segundos en que la pantalla de login estarO disponi;le para que el usuario capture su nom;re de usuario 8 contraseFaB si no lo 9aceB el login se cerrarOB evitando as de5ar por tiempo indeterminado pantallas de login sin que nadie las useB o peor aunB que alguien este intentando median te un script varias veces el adivinar un usuario 8 contraseFa. )i somos el Nnico usuario del sistema c onsidero que con 2: o 3: segundos es mas que su!iciente. ara llevar a ca;o estos cam;ios tendrO que editar el parOmetro $ogin>raceTime del !ic9ero de con!iguración el cual de;erO quedar de la siguiente manera # Authentication: LoginGraceTime 30 PermitRootLogin no StrictModes yes MaxAuthTries 2 IniciarB detener o reiniciar el ser!idor openSS= $legado a este punto usted 8a de;erO contar con las con!iguraciones de seguridad apropiadasB por lo que solo !altara iniciar el servicio de ))H. ara iniciar el servicio de ))H tendrO que teclear en consola 8 como root lo siguiente [root@ localhost ]# /etc/init.d/sshd start Igualmente e%isten opciones 8a sea para reiniciarB detenerB recargar o conocer el status en el que se encuentra el servicio. stas opciones pueden ser consultadas en la siguiente ta;la < 10: < start Inicia el servicio stop Detiene el servicio restart Reinicia el servicio.-La diferencia con reload radica en que al ejecutar un restart este mata todos los procesos relacionado con el servicio y los vuelve a generar de nueva cuenta reload Recarga el servicio.-La diferencia con restart radica en que al ejecutar un reload este solamente carga las actualizaciones hechas al fichero de configuraci ón del servicio sin necesidad de matar los procesos relacionados con el mismo, por lo que podría entenderse que hace el cambio en caliente. condrestart Reinicio Condicional.- Solamente se inicia si el servicio se encuentra ejecutándose. statusDa a conocer el estado en el que se encuentra el servicio (ne%ando el servicio de ))H al arranque del servidor ara aFadir el servicio de ))H al arranque del servidor solo tendrO que teclear en consola 8 como root lo siguiente [root@ localhost ]# chkconfig sshd on sto es Ntil cuando por motivos a5enos a usted se reinicia el servidorB de esta manera cuando el equipo arranqueB automOticamente levantara el servicio de ))H sin necesidad de levantarlo manualmente después. Aprendiendo a utili=ar open$$H n esta parte del capitulo le enseFaremos a Conectarse a un equipo remotamente a través de ))H Copiar arc9ivos o carpetas desde un equipo remoto nviar arc9ivos o carpetas a un equipo remoto ConectOndose a un equipo remoto a través de ))H ara esta;lecer una cone%ión con un servidor ))H remoto desde Centos 9aremos uso del as9B o tam;ién conocido como Terminal. $a sinta%is para llevar a ca;o esta operación es la siguiente [root@ localhost ]# ssh usuarioRemoto@ipDelServidorRemoto n caso de 9a;er esta;lecido un puerto de escuc9a distinto al puerto 22B solo de;erO especi!icar el puerto por el cual requiere autenticarse al servidor. 5emplo [root@ localhost ]# ssh -p[puertoDeEscucha] usuarioRemoto@ipDelServidorRemoto 5emplo 1 $a empresa ?actor Integración para la cual tra;a5amosB nos 9a pedido reiniciar el servicio de apac9e B para ello nos 9a proporcionado los siguientes datos IP del servidor remoto -> 207.249.25.60 Nombre del usuario remoto -> adminlog Puerto de autenticacion -> 34765 Solución: 1.-Para conectarnos al servidor remoto habr á que especificar el puerto de escucha, el usuario remoto y la IP del servidor remoto (Recuerde que no esta permitido conectarse como root desde SSH) < 101 < 2.<l siguiente paso sera teclear la contraseFa del usuario remoto 3.<na ve' dentro del servidor remoto nos logearemos a9ora si como Lroot [adminlog@ web ]# su Contraseña: xxxxxxxxxxxxxxxxxx [root@ web ]# ".<or ultimoB solo ;astara reiniciar el servidor de apac9e [root@ web ]# /etc/init.d/httpd restart &.<ara salir del ))H solo ;asta teclear Le%it [root@ web ]# exit Connection to 207.249.25.60 closed. [root@ localhost ] # _ Copiar u o,tener arc%i!os o carpetas desde un e>uipo remoto ara copiar arc9ivosB !ic9eros o carpetas desde un equipo remoto 9acia nuestro equipo e%isten dos maneras Mediante el uso del comando )C Mediante el uso del comando )?T Copiando !ic9eros a través de )C +)9ell )ecure Cop8s un medio de trans!erencia segura de arc9ivos entre un equipo local 8 uno remoto 9aciendo uso del protocolo 7pen )ecure )9ell +open))H-. $a di!erencia en utili'ar )C +)9ell - 8 )?T +)ecurit8 ?ile Trans!er rotocol- para copiar arc9ivosB carpetas o !ic9eros radica en que para )C tenemos que conocer e%actamente donde se encuentra el recurso que queremos copiarB de otra !orma nunca lo descargaraB en cam;io )?T nos de5a navegar entre las carpetas lo cual 9ace mas sencillo la u;icación del recurso que deseamos copiar. $a Nnica desventa5a que presenta )C es que Nnicamente permite la trans!erencia de arc9ivos +descarga 8 su;ida de !ic9eros-. $a sinta%is de )C para llevar a ca;o esta operación es la siguiente [root@ localhost ]#scp usuarioRemoto@ipDelServidorRemoto:rutaDelRecursoRemoto n caso de 9a;er esta;lecido un puerto de escuc9a distinto al puerto 22B solo de;erO especi!icar el puerto por el cual requiere autenticarse al servidor. 5emplo [root@ localhost ]#scp usuarioRemoto@ipDelServidorRemoto:rutaDelRecursoRemoto -P[puertoDeEscucha] (unado a estoB para descargar una carpeta tendrO que seguir la siguiente sinta%is [root@ localhost ]#scp -P[puertoDeEscucha] usuarioRemoto@ipDelServidorRemoto:rutaDelDirectorioRemoto -r 5emplo 2 $a misma empresaB ?actor IntegraciónB nos 9a pedido copiar la carpeta de inventarios de la empresa la cual esta 9ospedada en un servidor remoto B para ello nos 9a proporcionado los siguientes datos IP del servidor remoto -> 207.249.25.60 Nombre del usuario remoto -> adminlog < 102 < Puerto de autenticacion -> 34567 Ruta del Recurso Remoto -> /tmp/Conta Solución: Para poder hacer la copia desde servidor remoto habr á que especificar el puerto de escucha, el usuario remoto, la IP del servidor remoto y la ruta (sin errores) del recurso remoto. $o anterior nos copiarO la carpeta P/tmp/ContaP remota en el directorio actual P.P naturalmente siempre que usuario tenga permisos so;re la carpeta 8 su cuenta esté entre las de los que pueden 9acer ss9. $a opción P get recursoRemoto $a siguiente ta;la e%plica mas a detalle los comandos que pueden ser utili'ados con )?T cd [rutaRemota] Cambia de directorio dentro del servidor remoto lcd [rutaLocal] Cambia de directorio en el equipo local chgrp [grp] [rutaRemota] Cambia el grupo de trabajo de un fichero remoto. El [grp] tiene que ser un Group ID chmod [opciones] [rutaRemota] Cambia los permisos de Lectura, Escritura o de Ejecuci ón a un fichero remoto chown [own] [rutaRemota] Cambia el grupo de trabajo de un fichero remoto. El [own] tiene que ser un User ID get [rutaRemota] [rutaLocal] Copia un recurso remoto en un equipo local lmkdir [rutaLocal] Crea una carpeta en el equipo local lpwd Imprime la ruta local en la cual estamos trabajando mkdir [rutaRemota] Crea una carpeta en el equipo remoto put [rutaLocal] [rutaRemota] Sube un fic hero o archivo desde una ruta local hasta una ruta remota < 103 < pwd Imprime la ruta remota en la cual estamos trabajando exit Salimos de SFTP rename [rutaLocal] [rutaRemota] Renombra un un fichero remoto rmdir [rutaRemota] Borra una carpeta remota rm [rutaRemota] Borra un fichero remoto 5emplo 3 $a misma empresaB ?actor IntegraciónB nos 9a pedido copiar el !ic9ero inventarionero.odt que se encuentra dentro la ruta L/tmp/Conta/ B para ello nos 9a proporcionado los siguientes datos IP del servidor remoto -> 207.249.25.60 Nombre del usuario remoto -> adminlog Puerto de autenticacion -> 34567 Ruta del Recurso Remoto -> /tmp/Conta ó á Soluci n: 1.-Paraelpoder traer la copiael desde servidor remoto hacia que especificar puerto de escucha, usuario remoto y la IP del nuestro servidorequipo remotohabr 2.< 4os pedirO autenticarnos con la contraseFa del usuario remotoB en este caso la contraseFa del usuario Ladminlog 3.<na ve' autenticados con el servidor nos darO acceso a través de )?T ".< 4os moveremos entre directorios con la a8uda del comando Lcd 9asta estar u;icados en L/tmp/Conta &.dir inventarioEnero.odt inventarioFebrero.odt inventarioMarzo.odt *.uipo remoto ara su;ir arc9ivosB !ic9eros o carpetas desde nuestro equipo 9acia un equipo remoto e%isten dos maneras Mediante el uso del comando )C Mediante el uso del comando )?T nviando !ic9eros a través de )C +)9ell )ecure Cop8$a sinta%is de )C para llevar a ca;o esta operación es la siguiente [root@ localhost ]#scp rutaDelRecursoLocal usuarioRemoto@ipDelServidorRemoto:rutaRemota n caso de 9a;er esta;lecido un puerto de escuc9a distinto al puerto 22B solo de;erO especi!icar el puerto por el cual requiere autenticarse al servidor. 5emplo [root@ localhost ]#scp -P[puertoDeEscucha] usuarioRemoto@ipDelServidorRemoto:rutaRemota (unado a estoB para su;ir una carpeta tendrO que seguir la siguiente sinta%is < 10" < rutaDelRecursoLocal [root@ localhost ]#scp -P[puertoDeEscucha] usuarioRemoto@ipDelServidorRemoto:rutaRemota -r directorioLocal 5emplo " )e nos 9a pedido su;ir una actuali'ación re!erente a la pagina e; de la empresa B para ello nos 9a proporcionado los siguientes datos IP del servidor remoto -> 207.249.25.60 Nombre del usuario remoto -> adminlog Puerto de autenticacion -> 34567 #uta del )ervidor a donde se tiene que su;ir la in!ormación put recursoLocal $a siguiente ta;la e%plica mas a detalle los comandos que pueden ser utili'ados con )?T cd [rutaRemota] Cambia de directorio dentro del servidor remoto lcd [rutaLocal] Cambia de directorio en el equipo local chgrp [grp] [rutaRemota] Cambia el grupo de trabajo de un fichero remoto. El [grp] tiene que ser un Group ID < 10& < chmod [opciones] [rutaRemota] Cambia los permisos de Lectura, Escritura o de Ejecución a un fichero remoto chown [own] [rutaRemota] Cambia el grupo de trabajo de un fichero remoto. El [own] tiene que ser un User ID get [rutaRemota] [rutaLocal] Copia un recurso remoto en un equipo local lmkdir [rutaLocal] Crea una carpeta en el equipo local lpwd Imprime la ruta local en la cual estamos trabajando mkdir [rutaRemota] Crea una carpeta en el equipo remoto put [rutaLocal] [rutaRemota] Sube un fic hero o archivo desde una ruta local hasta una ruta remota pwd Imprime la ruta remota en la cual estamos trabajando exit Salimos de SFTP rename [rutaLocal] [rutaRemota] Renombra un un fichero remoto rmdir [rutaRemota] Borra una carpeta remota rm [rutaRemota] Borra un fichero remoto 5emplo & )e nos 9a pedido su;ir una actuali' ación re!erente a la pagina e; de la empresa B pero esta ve' sera usando )?TB para ello nos 9a proporcionado los siguientes datos IP del servidor remoto -> 207.249.25.60 Nombre del usuario remoto -> adminlog Puerto de autenticacion -> 34567 Ruta del Servidor a donde se tiene que subir la informaci ón -> /tmp/Conta )olución 1.< ara su;ir este directorio al servidor remoto 9a;rO que especi!icar el puerto de escuc9aB el usuario remoto 8 la I del servidor remoto 2.< 4os pedirO autenticarnos con la contraseFa del usuario remotoB en este caso la contraseFa del usuario Ladminlog 3.<na ve' autenticados con el servidor nos darO acceso a través de )?T ".< 4os moveremos entre directorios con la a8uda del comando Lcd 9asta estar u;icados en L/tmp/Conta &.< Dentro de la carpeta LConta aplicar el comando Llpd para veri!icar la ruta en la cual estamos u;icados localmente sftp> lpwd Local working directory: /home/juanito}}} 6.-Si no se encuentra ubicado en el directorio de trabajo indicado cámbiese de directorio mediante el comando “lcd” sftp> lcd /home/juanito/datosActualizados lcd /home/juanito/datosActualizados}}} 7.- Cuando este ubicado en el directorio de trabajo que contiene la informaci ón que desea subir al servidor remoto teclee lo siguiente: sftp> put datosactuales El comando “put” tiene la funcionalidad de subir archivos desde una maquina local hasta un equipo remoto. 8.- Por ultimo teclee la palabra exit para salir del “SFTP” sftp> exit [root@localhost ] < 10* < 3uente Original: 9ttp//.linu%paratodos.net/e;/comunidad/;ase