Anda di halaman 1dari 83

EL

CAPITULO 1 Y 2 EXAMEN Y
RESUMEN

CENTRO DE TRANSFERENCIA DE TECNOLOGA

FORMACION EN TECNOLOGIA LINUX

Seccin 1
Comprendiendo el Software Libre
Objetivos
Software Libre
Software de Fuente Libre
Propiedades del Software Libre
Ventajas y Desventajas del Software Libre

1 Comprendiendo el Software
Libre
1.1 Breve historia del Software
Libre
La historia del software libre se remonta a los prime/os anos de las ciencias
de la computacin, cuando los sistemas de cmputo estaban principalmente
instalados en universidades e institutos de investigacin, en aquellos aos
no exista el criterio de valor por el cdigo del programa, yo que lo, programas
era slo un componente adicional de otros productos a los cuales so los
otorgaba valor.
En 1971 Richard M, Stallman comenz 3 trabajar para el MIT en ese
entonces exista una comunidad que comparta software (programas y cdigo
fuente) con otros colegas del medio. Es en los anos 80, que ese espritu de
compartir, casi habla desapareciendo por la filosofa del software propietario,
que no permita copiar libremente o compartir los programas, ya quo hacerlo
infringa trmino de contrato y acuerdos entre las compaas fabricantes do
computadoras y los usuario.
Stallman, interesado por revivir aquellos das en los que la comunidad
computacional comparta los programas, comienza en 1984 un proyecto para
crear un sistema operativo completo, compatible con Unix llamado GNU; El
Proyecto GNU (GNU No es Unix). Para impulsar la idea crea !a GPL (GNU
Public License, Licencia Publica GPL) bajo la cual se distribuiran los
programas que so vayan construyendo en el proyecto GNU. [www.gnu.org].
Durante lo primeros aos Richard M. Stallman y otros programadores crean
utilidades para ser usadas en el futuro sistema operativo GNU todos ellas son
elaboradas de modo que sean compatibles con UNIX.
Para financiar el proyecto cre la Fundacin para el Software Libre, una
organizacin sin fines de lucro que capta recursos econmicos para
incentivar el desarrollo software libre, [www.faf.org]
1.2 Qu es el software
libre?
Segn su impulsor Richard M. Stallman, software libre se refiere a un asunto
de libertad n de precio.
Software Libre se refiere a la libertad de los usuarios de correr, copiar,
distribuir, estudiar cambiar y mejorar el software con cualquier propsito.
Ms precisamente la filosofa se apoya en las llamadas cuatro libertades del
usuario:

1. La libertad de correr el programa, con cualquier propsito


2. La libertad de estudiar como funciona el programa, y adaptarlo a
sus necesidades. El acceso al cdigo fuente es una
precondicin para esto.
3. La libertar de distribuir copias de manera que se puede ayudar al
Vecino.
4. La libertad de mejorar el programa, y liberar las mejoras al
pblico de tal manera que toda la comunidad se beneficia. El
acceso al cdigo

fuente es una precondicin para esto.


Basados en esta filosofa, se construye la comunidad do software libre,
liderada por (Richard M Stallman, quien junto a cientos de programadores' en
el mundo llegan a contar en los 90 con un juego completo de ricas
utilidades creadas para el sistema operativo GNU.
En los aos 90, los programas GNU son ampliamente usados en todas
las plataformas UNIX y otras plataformas, y en diferentes mbitos
acadmicos, cientficos, empresariales, etc. En 1991 sucede el evento ms
trascendental para la comunidad GNU: El anuncio de la existencia del
sistema operativo Linux por Linus Torvalds.
1.3 Software Libre y Fuente
Abierta
El acontecimiento Linux producido en 1991 dot a la comunidad del
ltimo componente que faltaba al proyecto, del el sistema operativo GNU: un
ncleo que se integro a los cientos de utilidades construidas, la misma
integracin de Linux y GNU llev bastante tiempo, en las propias palabras de
Stallman.
En el ao de 1998, GNU/Linux ya se ha convertido en un fenmeno
sorprendente, las muestras de mercado llevadas a cabo por importantes
empresas del ramo, muestran a GNU/linux como del sistema operativo de
ms rpido crecimiento, quitndoles mercado a otros sistemas operativos
comerciales. Son casi 7 aos de vida de Linux y muchos analistas de
software e Ingenieros do software empiezan a prestarle atencin al modelo de
desarrollo seguido por Linux cientos de programadores usuarios dispersos por
el mundo, lanzando rpidas de nuevas versiones y correcciones.
En Enero de 1998, Netscape Communications Inc. anuncia la liberacin
del cdigo fuente de su navegador, un grupo de personas, miembros de la
comunidad de software libre, motivados por sta noticia, crear la
denominada "Iniciativa de Fuente Abierta", en Febrero de 1990, para llevar
!as ideas del software libre al mundo de los negocios, este grupo estaba
liderado por Erick S. Raymend [www.opensourse.org]
Esta iniciativa, tiene el propsito principal de mostrar a las empresas de
software propietario los beneficios de; publicar e) cdigo fuente de sus
productos.
A diferencia del software libre, sta iniciativa no se apoya en ninguna
licencia especifica, en su lugar, establece criterios que indican cuando una
licencia es o no considerada de fuente abierta. Para que una licencia sea
considerada de fuente abierta debe satisfacer los siguientes criterios:

1
redistribucin

Libre

2. Acceso al cdigo fuente libre de


cargo
3. Permiso para hacer modificaciones y trabajos
derivados
4. Integridad del cdigo fuente del
autor

5. Sin discriminacin contra personas o


grupos
6. Sin discriminacin
aplicacin.

contra

campos

de

7. La licencia se aplica tambin a todos los que ven programas y les


es redistribuido.
8. La licencia no debe ser especificar a un
producto,
9. La licencia no, debe contaminar otro software (referido a agregacin,
no derivacin)
De acuerdo a estos criterios las siguientes licencias son consideradas
fuente abierta: GNU, GPL, BSD, MPL, Apache, (por nombrar algunas)
1.4 Propiedades
software libre

de

del

El software libre tiene un conjunto de propiedades intrnsecas, que de


acuerdo o Bruno Cornec (HP- HOWTO. Revisin 0.93) son las siguientes:
Acceso
fuente

al

cdigo

Este el punto ms importante del software libre, porque permite la


compresin, adaptacin, correccin, distribucin y mejora del software
Confiabilida
d
La calidad se deriva de la anterior: el software libre es el resultado de
combinar, experiencia o inteligencia de todos los participantes. Su
confiabilidad se incremente a medida que el tiempo transcurre, con todas las
correcciones que han sido hechas. No hay presin del mercado que
obligue al productor de software entregar el producto a los consumidores
antes de que so encuentro en un estado satisfactorio.
Portabilida
d
Esta cualidad no es intrnseca al software libre, pero es bastante notoria en
el software libre. De hecho el up programa alcanza xito, querr ser
necesariamente adaptado a otros entornos que fueron considerados. As

aumentara su disponibilidad, su portabilidad y confiabilidad tambin son


incrementados
Universalida
d
Una cualidad esencial del software libre, es el carcter naturalmente
universal del formato de datos utilizado. Aun si no se siguen estndares, la
disponibilidad del cdigo fuente asegura quo o usuario podr comprenderlos,
y ms adelante tendr la habilidad de escribir cualquier filtro necesario paro
reutilizar los datos o intercambiarlos con otros programes. Esto permite
tambin a los usuarios

estabilizar Sus entornos, porque ellos no estn obligados a migrar en caso


de incompatibilidades en el formato de datos en sus aplicaciones.
Como resultado de mltiples revisiones, el uso de algoritmos viene de
avanzados trabajos de investigacin, as como de pruebas en variados usos,
et software libre tiene buen desempozo por naturaleza, frecuentemente
largas porciones de cdigo son re-escritas para permitir reusar las ideas
originales con un mejor cdigo y as incrementar el desempeo. Varias
pruebas hechas por varios, organismos tienden a demostrar esto. Una vez
ms no hay obligacin de difundir una aplicacin, cuyas actuaciones son
penosas
Inpteroperabilida
d
Histricamente, el entorno Unix siempre ha sido catalizador para la
interoperabilidad con otros sistemas (sistemas grandes o medianos, asf
como tambin computadoras personales} El soporte en Linux, por ejemplo de
varios protocolos de red, formatos de sistema de archivos y aun modo
de compatibilidad binaria, asegura una buena interoperabilidad.
Reactivida
d
Cuando se considera ms y ms largos ciclos de desarrollo de los
productores de software, la reactividad trada por el movimiento de software
libre, es interesante para muchos lugares, atrados por la rpida obtencin
de correcciones a un problema dado. As durante los recientes problemas
con IP (ping de la muerte, etc), los parches siempre estaban disponibles
los tres prximos das. Y adicionalmente a esto, el parche slo corrige los
agujeros encontrados. No hay ninguna funcionalidad agregada que pueda
crear otras Inestabilidades.
Independientemente de sus cualidades, es posible dar otras razones de
diferente naturaleza, en favor el software libre, dependiendo de! tipo de
persona que se encuentre.
1.5 Ventajas
y
software libre

desventajas

del

Las ventajas del software libre sern tales, de acuerdo al usuario del
software, por ejemplo para el usuario comn, es irrelevante el acceso al cdigo
fuente de los programas, ya que a l le interesan los programas en formato
binario listos para ser utilizados.
Para mbitos acadmico y cientfico el acceso al cdigo fuente
representa transferencia tecnolgica y aprendizaje.

Para mbitos empresariales, las principales ventajas estn en la posibilidad


de construir soluciones personalizadas, integracin con aplicaciones
existentes, e incrementar la vida til de los programas.
Ya que se cuenta con acceso ai cdigo fuente, es posible realizar una
revisin de los programas para asegurarse que no existe cdigo que ponga
en peligro informacin confidencial.
Una ventaja para todos, son los bajos precios o casi ningn precio del
software libre, esta inversin no realizada en software puede ser canalizada a
otro tipo de gasto o inversiones, como equipamiento o capacitacin.

Las desventajas de acceder al cdigo fuente afectan a todos los usuarios,


ya que existe la posibilidad de que maliciosamente se incluya caballos
troyanos en los programas, por esta razn os siempre recomendable el
conseguir los programas de los sitios originales y verificar que los
archivos no han sido alterados, de acuerdo a las: instrucciones del o los
autores.
El acceso al cdigo fuente tambin significa, menor esfuerzo para
encontrar debilidades, que pueden ser maliciosamente explotadas o que
tambin pueden ser corregidas en breve tiempo.
Los programas de cdigo fuente abierta, son propensos a varias divisiones
del mismo, ya que no hay ninguna restriccin en tomar el programa y crear
una versin modificada,
Los programas de fuente abierta, tienden a cambiar muy rpido por lo que
se abre una brecha entre la documentacin y las ltimas versiones del
programa, en general los programas do fuente abierto adolecen de
documentacin al da y completa, lano para el usuario final, como para el
programador o integrador de
sistemas
.
El desarrollo de nuevos productos software que requieren alta inversin
econmica ya no tienen asegurada el retorno de la inversin, ya que el
negocio ya no se basa en vender software y por tanto la recuperacin es
incierta.
1.6 Software Libre
Propietario

vs.

Software

El software libre no tiene


soporte
Falso: Existen varias compaas que dan soporte, inclusive va Internet.
El software libre es de menor
calidad
Falso: Un estudio de la Universidad Wisconsin Madison llevada a cabo en
1995 mostr que entre el 15% y 40% de as utilidades UNIX (en siete
sistemas comerciales) fallaban frente a una entrada aleatoria. En contraste
las utilidades de GNU/Linux fallaron un 7%.
El software libre no ofrece
garantas
Cierto: El software propietario tampoco lo hace.
El software libre es-ms
inseguro
Falso: La disponibilidad del cdigo fuente permite identificar vulnerabilidades
y resolverlas en menos tiempo.

Seccin 2
Aspectos fundamentales sobre GNU/ Linux
Objetivos
Qu es Linux?
Principales caractersticas de Linux
Linux y otros sistemas operativos
Qu es una distribucin?

Tras la versin 0.03, Linux salto a la versin 0,10 al tiempo que mas
gente empezaba a participar en su desarrollo. Tras numerosas revisiones, se
alcanzo la versin 0.95 reflejando la esperanza de tener lista muy pronto una
versin, "oficial". (Generalmente, la versin 1.0 de los programas se
corresponden con la primera tericamente completa y sin errores).
Esto suceda en Marzo de 1992. Ao y medio despus, en Diciembre del 93,
el ncleo estaba en la revisin 0.99. p/14, en una aproximacin asinttica al
1.0.
Hoy Linux es un clon de UNIX completo, capaz de ejecutar X Window, TCP/IP,
herramientas de desarrollo, cientos de utilidades GNU aplicaciones
comerciales, etc. Esta disponible no slo para plataformas Intel, tambin
PowerPC y estaciones de trabajo SUN por nombrar slo algunas.
Tan slo hace cinco aos atrs, nadie podra imaginar que este "pequeo"
clon de UNIX, producto del esfuerzo de hackers en red mundial iva a
conventirse en el sistema operativo de ms rpido crecimiento, desplazando
en el mercado a otros sistemas operativos comerciales, hasta convertirse un
sistema mundial de primera clase para servidor de red y ordenadores
personales.
2.2 Qu es Linux
GNU/Linux?

Linux es en rigor solamente el ncleo del sistema operativo, para que


pueda ser utilizado y se pueda sacar provecho de l, se requiere un nmero
variado de programas utilitarios, que van desde el intrprete de comandos
hasta las aplicaciones para el usuario final, pasando por las herramientas de
administracin del sistema y desarrollo.
Cuando Linux sali a la luz por primera vez en 1991, el proyecto GNU
habla creado hasta entonces todo un juego completo de utilidades,
herramientas de desarrollo, herramientas de aplicacin, etc. La pieza faltante
era el ncleo que permitiera contar con el sistema operativo libre. Cuando
Linux estuvo listo para ser usado las integracin de las herramientas GNU a l
formaron lo que hoy es el sistema operativo Linux, por eso el denominativo de
GNU/Linux.
Para la mayora de los usuarios Linux y GNU/Linux se usan indistintamente
y ms aun Linux es el nombre ampliamente aceptado por todo, en el mundo,

a excepcin de ciertos crculos ms conservadores donde si se usan estos


trminos de acuerdo a lo que representan.

2.3 Qu
es
distribucin?

una

La caracterstica de libre distribucin de Linux posibilita que


programas necesarios para su funcionamiento, se encuentren
diferentes servidores

los
en

conectados a Internet. La tarea de reunir todos los archivos y programas


necesarios, as como organizarlos e instalarlos, puede ser una tarea
bastante complicada y no apta para muchos. Por esta razn nacieron las
llamadas distribuciones de Linux, producidas por un grupo organizado o
empresas que se dedican a hacer el trabajo "sucio" para beneficio y
comodidad de los usuarios.
Una distribucin no es otra cosa que una recopilacin de programas, archivos
y documentacin, organizados y preparados para su instalacin. Estas
distribuciones se pueden obtener a travs de Internet, o comprando los CDs
de las mismas, los cuales contendrn todo lo necesario para Instalar un
sistema Linux bastante completo. Casi lodos tos principales distribuidores
de Linux ofrecen la posibilidad de bajarse sus distribuciones, va FTP (sin
cargo alguno). Slackware es una de las primeras distribuciones de Linux, hoy
en da existen muchas, creadas para diferentes propsitos y orientadas a
diferentes grupos de usuarios, as por ejemplo: la distribucin MkLinux
(www.mklinux.org) est orientada a usuarios que poseen computadoras
Power Macintosh y desean correr Linux, otro ejemplo es uClinux
(www.uclinux.com) una distribucin 'para ser utilizada con microcontroladores.
Esta es una lista de algunas de las distribuciones ms
conocidas:
- Red Hat Linux (www.redhat.com)
- Suse Linux (www.suse.org)
- Deban Linux (www.debian.org)
- Mandrake Linux (www.mandrake.org)
- Conectiva Linux (www.conectiva.com.br)
- Caldera Linux (www.caldera.com)0
- Corel Linux (www.corellinux.com)
2.4 Cul distribucin es
mejor?
Es muy difcil el decir cual distribucin es mejor que otras, un criterio
ms acertado es elegir una distribucin basndose en que va a ser utilizada.
Muchas de las distribuciones tienen ciertas tendencias que las distinguen
de otras, as por ejemplo Linux Deban estar muy orientada a un usuario
vinculado al rea de sistemas o ciencias de la computacin, al contrario de
Linux Mandrake que est orientada al usuario final que probablemente
tiene poca idea de lo que significa un sistema operativo.
Otras razones de eleccin tienen qua ver con la facilidad do buscar
recursos para osa distribucin, que va desde conseguir los CD, las
actualizaciones, pasando por los manuales e Inclusivo la experiencia local

de otros usuarios, quo puedan potencialmente prestar ayuda con un


determinado momento (por ejemplo a travs de un grupo de usuarios).
Hablando del mbito local, la distribucin ms utilizada en el eje central
es Linux Red Hat, seguido probablemente por Linux Suse. Otra distribucin
que tambin tiene adeptos es Linux Mandrake.

Est claro que todas las distribuciones estn basadas en el mismo ncleo y
por tanto los componentes fundamentales del sistema van a ser iguales
en la mayora de tas distribuciones, as que otra razn que puede influir en la
decisin de elegir una distribucin es las herramientas adicionales de
administracin o configuracin del sistema que ofrece una determinada
distribucin, ya que sta es el rea en la que se dan las mayores diferencias
y en la que compiten la mayora de las distribuciones, tratando de proveer
herramientas completas y sencillas que faciliten la instalacin, configuracin
y administracin del sistema.
Si se piensa tener varias computadoras instaladas con Linux es ms
conveniente que todas tengan la misma distribucin, o a lo sumo dos
distribuciones diferentes, digamos una pensada para servidor y otra
pensada para los clientes. Esto con el fin de disminuir el esfuerzo que
representa tener varios sistemas corriendo con diferentes distribuciones de
Linux.
2.5 Principales caractersticas del sistema operativo
Linux
Linux implementa la mayor parte de las caractersticas que se encuentran
en otras implementaciones de UNIX, ms algunas otras que no son
habituales. Linux es un sistema operativo completo con multitarea y
multiusuario (como cualquier otra versin de UNIX). Esto significa que
pueden trabajar varios usuarios simultneamente en e!, y que cada uno de
ellos puede tener varios programas en ejecucin.
El sistema Linux es compatible con ciertos estndares de UNIX a nivel
cdigo fuente, incluyendo el IEEE POSIX 1, System V y BSD. Fue
desarrollado buscando la potabilidad de las fuentes encontrar que casi
todo el software gratuito desarrollado para UNIX se compila en Linux sin
problemas. Y todo lo que se hace para Linux (cdigo del ncleo, drivers.
libreras y programas de usuario) es de libre distribucin.
En Linux tambin se implementa el control de trabajos POSIX (que se usa
en los shells csh y bash), las pseudo-terminales (dispositivos pty), y teclados
nacionales mediante administradores de teclado cargables dinmicamente.
Adems, soporta consolas virtuales, lo quo permito tenor mas do una
sesin abierta en la consola de texto y conmutar entro ellas fcilmente.
El ncleo es capaz de emular por su cuenta las instrucciones del
coprocesador 387, con lo que en cualquier 386 con coprocesador o sin l
podrn ejecutar aplicaciones que lo requieran. Linux soporta diversos
sistemas de archivos para guardar los datos. Algunos de ellos, como ext2fs,
han sido desarrollados especficamente para Linux. Otros sistemas de
archivos, como el Minix-1 o el
de Xenix tambin estn soportados, Y con el de MS-DOS se podrn
acceder desde Linux a los disquetes y particiones en discos duros formateados

con MS- DOS o Windows95.Adems, tambin soporta el ISO-9660, que es el


estndar seguido en el formato de los CD-ROMs.
Linux implementa todo lo necesario para trabajar en red con TCP/1P. Desde
con trotadores para las tarjetas de red hasta SLIP/PPP, que permiten acceder a
una red TCP/IP por el puerto serie. Tambin se implementan PLIP (para
comunicarse por el puerto de la impresora) y NFS (para acceso remoto
a
ficheros). Y tambin se han portado los clientes de TCP/IP, como FTP, telnet,
NNTP y SMTP.

El ncleo de Linux ha sido desarrollado para utilizar tas caractersticas


del modo protegido de los microprocesadores 60386 y 60486. En concreto,
hace uso de la gestin de memoria avanzada del modo protegido y otras
caractersticas avanzadas. Cualquiera que conozca lo programacin del 386
en el modo protegido sabr que el modo fue diseado para su uso con UN1X
(o tal vez Multics). Linux hace, uso de esta funcionalidad precisamente.
El ncleo soporta ejecutables con paginacin por demanda. Esto significa
que solo los segmentos del programa que se necesitan se cargan en
memoria desde el disco. Las pginas de tos ejecutables son compartidas
mediante la tcnica copy-on-write contribuyendo todo ello a reducir la cantidad
de memoria requerida para las aplicaciones.
Con el fin de incrementar la memoria disponible, Linux implementa
la paginacin con el disco; puede tener hasta 256 megabytes de espacio
de intercambio o "swap" en el disco duro. Cuando el sistema necesita
mas memoria,
expulsar pginas inactivas
al disco, permitiendo la ejecucin de programas mas grandes o
aumentando el nmero de usuarios que puede atender a la vez. Sin
embargo, el espacio de intercambio no puede suplir totalmente a la
memoria RAM, ya que el primero es mucho ms lento que esta. La memoria
dedicada a los programas y a la cache de disco esta unificada. Por ello, si en
cierto momento hay mucha memoria libre, el tamao de la cache do disc9
aumentara acelerando as los accesos.
Los ejecutables hacen uso de las bibliotecas de enlace dinmico. Esto
significa que los ejecutables comparten el cdigo comn de las bibliotecas
en nico fichero. As los ejecutables sern mas cortos a la hora de
guardarlos en el disco, incluyendo aquellos que hagan uso de muchas
funciones de biblioteca. Tambin pueden enlazarse estticamente cuando se
deseen ejecutables que no requieran la presencia de las bibliotecas dinmicas
en el sistema,, El enlace dinmico se hace en tiempo de ejecucin, con lo
que el programador puede cambiar las libreras sin necesidad de recopilacin
de los ejecutables.
Para facilitar la depuracin de los programas, el ncleo de Linux puede
generar volcados de la imagen de memoria de 'los programas (ficheros
core). Entre esto y la posibilidad de compilar ejecutables con soporte de
depuracin, el programador podr averiguar la causa de los fallos de su
programa.
2.6 GNU/Linux &
Unix
UN1X no es un nico sistema operativo, este nombre es utilizado para
referirse a una familia de sistemas operativos que incluye: AIX, BSDI,

Digital NIX. FreeBSD, HP-UX. IRIX, Linux, NetBSD, OpenBSD, Pyramid,


SCO, Solaris, SunOS, ote. UNIX os el sistema operativo con ms tiempo y
experiencia en el terreno de sistemas operativos (ms de 30 aos) esto lo
convierte en el sistema operativo ms maduro, estable, confiable, escalable
y seguro, comparativamente con otros.
Los productos UNIX de hoy en da estn integrados a soluciones
combinadas de hardware y software, lo que coloca a los fabricantes en una
posicin estratgica de brindar funcionalidad extra al precio de '.no
interoperabilidad con otros Unix. Estos sistemas estn en entornos de alta
disponibilidad y de extrema exigencia a los sistemas.

Linux es un clon de Unix, por lo que posee muchas de las caractersticas


de ste esta herencia lo hace tambin estable y de buen desempeo, pero
un terreno del que Linux an est distante es el mercado de grandes
servidores de alta disponibilidad. Existen tambin soluciones de cluster
basadas en Linux, y probablemente uno de los ms grandes en operacin es
el usado por el buscador de pginas Google (www.google.com).
En la prctica Linux es ampliamente utilizado como servidor de clase
mediana, en entornos de servidor internet/lntranet, servidor do bases de datos
y servidor de archivos e impresoras.
2.7 GNU/Linux
&
Windows
Linux es un serio competidor para Windows TN en particular, ya que ambos
se desempean en el mismo sector del mercado: servidores medianos. La
siguiente es una lisia de las caractersticas de estos sistemas:
Windows
9X
Sistema orientado a escritorio y estaciones de trabajo
Disponible para plataformas Intel/AMD/Cyrix
Soporte Plug and Play incluido en el sistema operativo
Interfase grfica de usuario integrada al sistema operativo
Sistema de archivos soportado: FAT32. VFAT, FAT y SMB
Soporte para trabajo en red (TCP/IP. IPX y Apple Talk)
Capacidad de compartir archivos o impresoras
No tiene soporte POSIX
Capacidad Multitarea
Soporte parcial Multiusuario
Windows
NT
Sistema
servidor

orientado

Disponible para plataformas Intel/AMD/Cyrix y Alpha

No tiene soporte nativo de Plug and Play


Interfase grfica de usuario integrada ai sistema operativo
Sistema de archivos soportado; NTFS. FAT. CIFS y SMB
Soporte para trabajo en red (TCP/IP. IPX y Apple Talk

Capacidad de compartir archivos e impresoras


Soporte parcial de POSIX
Capacidad Multitarea y Multiusuario
Capacidad para correr en mltiplos procesadores (4)

GNU/Linux
Sistema operativo orientado a servidor
Trabaja tambin como estacin de trabajo o de escritorio
Ncleo ajustable a las necesidades
Disponible para intel/AMD/Cyrix, Motorola/IBM PowerPC, Motorola
600x0, Sun SPARC, SG MIPS, DEC Alpha. HP PA-RISC, DEC VAX
No tiene soporte nativo de Plug and Play
Interfase grfica de usuario: X-Window
Sistema de archivos soportados: ext2, FAT32 VFAT, FAT, FFS, coda,
NFS. SMB, solo lectura: NTFS, HPFS, UFS. adfs.
La ms completa implementacin de TCP/IP adems de IPX y AppleTalk
Capacidad de compartir archivos e impresoras
Compatible con POSIX
Soporte Real Multitarea y Multiusuario
Ejecucin a 16 bits. 32 bits y 64 bits
Capacidad de correr en mltiple procesadores (hasta 8 con la
serie de ncleos 2.4)
Corta fuegos incluido en el ncleo
2.8 Servidores y estaciones de trabajo

Linux utiliza un nico ncleo, ya sea para servidor o estacin de trabajo,


por tanto no existe una diferencia desde el punt de vista del ncleo. Lo
que diferencia a una estacin de trabajo y un servidor es la personalizacin
quo

puede haber sufrido el ncleo, el hardware empleado y fundamentalmente las


aplicaciones que son instaladas.
El aspecto referido a hardware es muy notorio en el caso de sistemas
basados en UNIX, ya que tpicamente las estaciones de trabajo utilizan
.hardware menos dotado de habilidades para recuperacin o tolerancia a fallos
del mismo. En Linux, debido a su amplio uso en plataformas Intel, el aspecto
de hardware est recin comenzando a sor diferenciado, gracias a! ingreso
de empresas como IBM, Dell y Compaq que venden PCs de ciase servidor
pro instaladas con sistemas Linux.
Muchas de las distribuciones, traen modos de instalacin para estacin
de trabajo y servidor, la diferencia ms notoria es !a instalacin de una
interfase grfica de usuario y la ausencia de aplicaciones servidor que son
reemplazadas por una amplia cantidad de aplicaciones para usuario final ,
en contraste as instalaciones de clase servidor, no suelen incluir interfase
grfica de usuario o instalan muchas aplicaciones de servidor (pginas web
correo, compartir archivos e impresoras, etc).
2.9 GNU/Linux & XWindow
X-Window (lanzado por primera vez en Junio de 198^1) es el sistema en
UNIX que proporciona un entorno completo para desarrollo y ejecucin de
aplicaciones en un ambiente grfico para el usuario.
La versin de X utilizada en Windows es Xfree86, una implementacin
de X11R6 (X Window System versin 11, release 6) para sistemas tipo UNIX
que corren sobro plataformas intel. Un aspecto importante es que X no
ofrece una apariencia y, percepcin {look and fool) especifica para las
aplicaciones; en su lugar, sta funcionalidad os proveda por la inlerfaz
grfica da usuario (GUI) como por ejemplo OSF/Motif y OPEN LOOK, as
como para el GI, tambin existen diferentes administradores de ventanas:
programas especiales que li pica mente anadn un borde a las ventanas, un
titulo y controles para interactuar con ollas (minimizar, maximizar, iconizar,
etc).
OSF/Motif y OPEN LOOK fueron dos entornos que competan en el
mercado, hasta que se tormo un grupo de estandarizacin en 1993 y
producto de ello emergi CD (Common Desktop Environment) que hoy es
distribuido en todos los sistemas UNIX. CDE est fuertemente basado en
Motif y en el HP VUE (Visual User Environment), debido a que ninguno de
estos entornos son de libre distribucin, Linux no incluye estos componentes,
en su lugar existen KDE y GNOME. dos do los entornos Gl dominantes en
Linux y tambin existen diferentes administradores de ventanas, algunos

especialmente construidos para interactuar con KDE (kwm) o GNOME


(Enlightenmenl).

Seccin 3
Primeros pasos con GNU/ Linux
Objetivos
Ingreso y salida del sistema
Fundamentos de entorno y el shell
omandos habitualmente usados

3 Primeros
GNU/Linux

pasos

3.1 Nombre de
contrasea

con

usuario

Todos ios sistemas Linux (y UNIX en general), requieren de un nombre


de usuario y contrasea para ingresar, dependiendo de la configuracin del
sistema, el acceso ser desde una pantalla en modo grfico o desde una
en modo carcter.
En el caso de acceso en modo carcter, tpicamente aparece el siguiente
mensaje:
Linux login:
En este punto, se debe escribir el nombre de usuario y a continuacin se
pide una contrasea (password), quo una voz Introducida y si ambos .son
correctos, permitirn iniciar una sesin de trabajo (Ingresar al sistema).
Cuando se ingresa a un sistema Linux tpicamente se lo hoce desde la
consola, que son el teclado y monitor conectados directamente a la
computadora. Es posible, tenor mas de una sesin de trabajo (debido a
que es un sistema operativo multiusuario) con un mismo usuario o
diferentes usuarios utilizando consolas virtuales.
Especficamente en modo carcter, es posible acceder a cada una de
ellas presionando las teclas Alt + Funcin, por ejemplo para acceder a la
tercera consola virtual si presiono Alt +F3, en cada una de ellas el sistema
presenta la pantalla de ingreso (peticin do nombro do usuario y contrasea),
Un sistema Linux recin instalado probablemente permita acceder o las
primeras seis consolas virtuales.
Si deseamos salir del sistema, simplemente debemos escribir
exit.
3.2 Fundamentos del entorno y el
shell
Cuando nos encontramos en un sistema Linux/UNIX nos comunicamos con el
a travs de un intrprete de comandos, que es simplemente un programa

que toma la entrada del usuario y las traduce a instrucciones que el sistema
trata de seguir. Esto puedo ser comparado con el COMMAND.COM de MSDOS, el cual efecta esencialmente la misma tarea.
El intrprete de comandos es solo una interfaz de Linux/UNIX. Hay otras
interfaces posibles como por ejemplo el sistema X Window, que brindo al
usuario la posibilidad do trabajar en una interfaz grfica de usuario.

Tan pronto como se ingresa al sistema, ste carga un intrprete de


comandos que en Linux es tpicamente /bin/bash (Bourne Again Shell) pero
tambin existen otros.
La seal de que nos encontramos en el intrprete de comandos es el
"prornpl" o indicador del sistema, que tpicamente es:
[linux @ sofia] $
Aqu podemos ejecutar diversas rdenes, como por
ejemplo:
[linux @ sofia] $ cp foo bar
Aqu la orden es copiar foo a bar, para ello estamos usando el comando
cp con argumentos foo y bar.
Cuando se teclea una orden, el intrprete de comandos hace varias
cosas. Primero, busca el nombre del comando y comprueba si es un
comando (es decir, un comando que el propio interprete de comandos sabe
ejecutar por si mismo)o si el comando es un "alias" o nombre sustituto de otro
comando. Si no se cumple ninguno de estos casos, el intrprete de
comando busca el programa con el nombre del comando y lo ejecuta
pasndole los argumentos especificados en la lnea de comandos.
Los intrpretes de comandos utilizan un conjunto de variables con
valores especficos que afectan la forma en que trabaja el intrprete o dicho
de otro modo establecen el entorno sobre el cual trabaja, as por ejemplo el
"prompt" o indicador del sistema es un elemento del entorno, otro de ellos es
el "path" o ruta de bsqueda que tiene exactamente la misma funcin del
"path" en sistemas MS-DOS.
3.3 Comandos
habituales
Lo siguiente es una lista rpida de comandos habitualmente
utilizados:
exi
t
Propsito
Sintaxis
Opciones
Ejemplo (s)

Sale de una sesin de trabajo


exit
Ninguno
exit

passwd
Propsito
usuario Sintaxis

Cambia la contrasea do acceso del


passwd

Opciones
Ejemplo(s)

ninguno
passwd

id
Propsito
Sintaxis

Muestra el identificador de usuario y de grupo para


un usuario especifico
id [opciones] [usuario]

Opciones

Ejemplo(s)

-g Muestra solo identificador de grupo (GID)


-u Muestra solo identificador de usuario (UID)
-n Muestra nombre en lugar de identificador
id

su
Propsito
Sintaxis
Opciones
Ejemplo(s)

Toma identidad de otro usuario


su [opciones] [usuario]
-c comando Pasa comando al shcll
- Restaura el entorno de usuario
su - root
su pedro

pwd
Propsito
Sintaxis
Opciones
Ejemplo(s)

Muestra o directorio actual de trabajo


pwd
Ninguno
pwd

touch
Propsito
archivo Sintaxis
Opciones

Ejemplo(s)

Actualiza la fecha y hora de ultimo acceso de un


touch [opciones] archivos
-c Evita que touch cree el archivo si no existe
-d hora paro especificar una hora
-r archivo toma la fecha y hora de archivo
touch ultimo

df
Propsito
Sintaxis
Opciones

Ejemplo(s)
du

Muestra el espacio libre y utilizado en lodos los


Dispositivos montados
df [opciones] [sistemas de archivos]
-h aade sufijos de tamao (k: Kbytes, M:
Megabytes, G: Gigabytes)
-a Muestra informacin de lodos los sistemas de archivo
df-h

Propsito
Sintaxis
Opciones

Muestra informacin sobre espacio usado del disco


du [opciones] [directorios o archivos]
-a muestra informacin de espacio usado por archivos
y directorios
-b muestra tamao en bytes
-c muestra un total al final

Ejemplo(s)

-s muestra un total do uso sin detalle por directorio


-h aade sufijos de tamao (k: Kbytes, M:
Megabytes, G: Gigabytes.
du -h /etc.

3.4 Funciones especiales en el shell Bash


Las siguientes combinaciones de teclas tienen una accin especfica en el shell
bash
Ctrl+A
Mueve el cursor al principio de la lnea de
comando Ctrl+E Muevo el curso al final de la lnea de
comando Ctrl+D Borra el carcter sobre el cursor
Ctrl+L
Limpia la pantalla (como clear)
TAB
Toma la entrada actual del teclado y completa con el nombre de
archivo que coincide con los caracteres tecleados o en caso
contrario muestra todos los nombre de archivo que coinciden
con los caracteres tecleados
Flecha arriba
Revisa la historia de comandos hacia atrs (de fin a principio)
Flecha abajo

Revisa la historia de comandos desde Ia posicin actual


hacia el final

Las siguientes operaciones permiten agilizar el trabajo con la introduccin de


ordenes.
!cmd

Busca la orden ms parecida a cmd que se encuentra en la historia


de comandos (de inicio a fin) y la vuelve a ejecutar
!!
Vuelve a ejecutar la ltima orden introducida
!num
Vuelve a ejecutar (a orden nmero num de la historia do
comandos hisotry Muestro la historia do comandos

Seccin 4
Fundamentos del sistema de archivos
Objetivos
omprender que es un sistema de archivos
Estructura de direccin en Linux

4 Fundamentos
archivos

del

sistema

de

4.1 Qu es un sistema de
archivos?
En la mayora de los sistemas operativos (Linux/UNIX incluido), existe el
concepto do archivo, que es la unidad bsica utilizada para organizar la
informacin del sistema. El sistema de archivos es el mtodo lgico para
organizar; guardar, recuperar, manipular y administrar informacin.
Los archivos estn organizados en una forma jerrquica agrupadas en
directorios, que son nicamente una coleccin de archivos, en otros
sistemas operativos son denominados carpetas.
Una caracterstica importante del sistema Linux/UNIX es la forma general
de tratamiento de varios componentes del sistema como archivos, por ejemplo
los
dispositivos hardware como unidades de almacenamiento secundario,
impresoras, mdems, etc, son tratados como archivos.
Todos los sistemas operativos utilizan un diseo particular del sistema de
archivos, lo que hace que existan particularidades en cada uno de ellos,
como por ejemplo la longitud mxima del nombre de un archivo, atributos
especiales, autorizaciones, etc.
El sistema de archivos predeterminado en Linux se denomina "ext2" y
adems es capas de trabajar con otros sistemas de archivos como por
ejemplo FAT
(MS-DOS). VFAT (Wndows9x), FAT-32 (Windows 98, HPFS (OS/2, NTFS
(Windows
NT),
etc.
Es importante observar que Linux/Unix, hace distincin entro maysculas
y minsculas, por lo que, los nombres de archivo "CURSO.HTM",
"curso.htm" y "Curso.htm" son diferentes, tambin hay que indicar que el
carcter para separar rutas de directorio es"/" (slash).
Ejemplos
:

/bin/bash
/etc/rc.d/rc.local

4.2 Estructura
directorios

del

rbol

de

Primero cambie al directorio raz (cd /) y ejecute ls -F. Probablemente


vera estos directorios3: bin, dev, etc, home, install, lib, mnt, proa, root, tmp,
user, usr, y var.
Veamos rpidamente
directorios.

cada

uno

de

estos

/bin

/dev

Es la abreviacin de "binarias", o ejecutables. Es donde residen la


mayora de los programas esenciales del sistema. Aqu
se encuentran por ejemplo "cp", "Is", "mv".
Los archivos contenidos en esto directorio son usados para acceder a
los dispositivos del sistema y recursos, como discos duros, mdems,
memoria etc. Por ejemplo, de la misma formo que se puede leer
datos
de un fichero, puedo leerse desde la entrada del ratn
leyendo
/dev/mouse. Varios de ios nombres de tos archivos de este
directorio tiene uno nomenclatura especifica para indicar a que tipo de
dispositivo se refieren.
fd, est reservado para disqueteras, as fd0 es la primera, fd1 la
segunda y as (sucesivamente. Tambin hay otros archivos de la
forma fd0H 1440, que so refiero a un disquete de 3-5" do alta
densidad en la disquetera 0.
/dev/consolo hace referencia a la consola del sistema es decir, al
monitor conectado directamente al sistema.

Ttys son usados para accedera los purtos. Por ejemplo /dev/ttyS0
hace referencia a "COM1" bajo MS-DOS
hd se refiere a discos fijos IDE, /dev/hdda hace referencia a todo el
disco mientras que /dev/hda1 hace referencia a la primera particin en
/dev/hda.
Los nombres de dispositivo que comienzan con sd son
dispositivos SCSI. Si se tiene un disco duro. SCSI, en lugar de acceder
a el mediante
/dev/hda, hay que hacerlo mediante /dev/sda, Las cintas SCSf son
accedidas va dispositivos si los CO-ROM SCSI va sr.
Los nombres que comienzan por Ip acceden
paralelo
/dcv/lp0 hace referencia a "LPT1" en MSDOS.

los

puertos

/dev/nult es usado como "salida nula", cualquier dalo enviado a


esto dispositivo desaparece.'
Los nombres que comienzan por /dev/tty hacen referencia a las
consolas virtuales del sistema.
Los nombres de dispositivo que comienzan con /dev/ply son
"pseudo terminales". Estos son usados para proporcionar una
"terminal" a sesiones remotas.

/etc Contiene una serie de archivos de configuracin del sistema. Estos


incluyen /etc/passwd (la base do datos de usuarios), /etc/rc
(secuencia de comando de inicializacin del sistema), etc.
/lost+found Este directorio es utilizado por el comando fsck para guardar
archivos y directorios desconectados, que suelen presentarse
cuando ocurre una fallo con el sistema de archivos- En otros
sistemas son llamados sectores perdidos o cadenas perdidas.
/sbin Aqu se encuentran programas esenciales del sistema, a ser
utilizados por el administrador,
/home
Contiene los directorios de trabajo de los usuarios del sistema.
Por ejemplo, /home/sofia es el directorio del usuario "sofia". En
un sistema rocin instalado, no habr ningn usuario en este
directorio.
/lib

Contiene las imgenes de las bibliotecas compartidos. Estos


archivos tienen cdigo que compartirn muchos programas.

//proc /proc es un "sistema de ficheros virtual". Los ficheros que contiene


realmente residen en memoria, no en un disco. Hacen
referencia a varios aspectos del ncleo y procesos que corren en
el sistema
/tmp Muchos programas tienen la necesidad de generar
cierto
informacin temporal y guardarla en un fichero temporal. El
lugar habitual para esos ficheros es en /tmp.
/usr /usr es un directorio muy importante. Contienen una
serie
de
subdirectorios que contienen a su vez algunos de los ms
importantes y tiles programas y archivos del sistema.
Muchas de las cosas que se encuentran en /usr son
opcionales en razn de que muchos de los programas que se
agregan al sistema (durante o despus de su instalacin) se
almacenan debajo este directorio.
/var

Los archivos que a menudo cambian su tamao o tienden a


crecer, son almacenados aqu como los que mantienen el
registro de eventos del sistema, por citar alguno.

Seccin 5
Trabajando con archivos y directorios
Objetivos
Operaciones comunes con archivos y directorios
Propiedad y permiso en archivos y directorios
Bsqueda e Inspeccin de archivos
Trabajo con disquetes DOS y Windows 9X

5 Trabajando
directorio

con

5.1 Operaciones
directorios

archivos
comunes

y
con

archivos

5.1.1 Inspeccin de archivos y


directorios
Para averiguar que archivos o directorios forman parte del sistema de
archivos so utiliza el comando ls. de modo predeterminado muestra el
contenido del directorio actual Por ejemplo:
$ls
mensajes.tx
t
DistributionHOWTO.txt Network.txt
Mail
Deskto
p
$
Se puede utilizar la opcin -F para obtener ms informacin sobre los
nombres mostrados, si se aade el carcter / al final del nombre se trata de un
directorio, si es "*" se trata de un archivo ejecutable, si no se aade ningn
carcter se trata de un archivo normal.
Si es ls le pasamos un nombre de directorio, mostrara el contenido de
ese directorio.
$ ls/etc
Images
adm
bcheckrc
brc
brccsh.cshr
c

ftpusers
getty
gettydefs
group
inet
Init

Ipc
magic
motd
mount
mtab
mtools

rc.new
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d

shells
startcons
swapoff
swapon
syslog.conf
syslog.pid

csh.login
default
disktab
fdprm
fstab
ftpacces
s

nit.d
initrunivi
inittab
inittab.o
d
issue
lilo

pac
passwd
printcap
profile
psdataba
sc
rc

rc5.d
rmt
rpc
rpcinfo
sccuretty
services

syslogd.relo
ad
termcap
umount
update
utmp
wtmp

Podemos usar la opcin -a para ver todos los archivos, los que empiezan
con "." son archivos ocultos. Los archivos "." y ".." son el directorio actual
y el directorio padre respectivamente.
Si se usa la opcin -I se obtiene un listado amplio, con informacin de
los archivos, las tres ltimas columnas representan el tamao en bytes, la
fecha y hora de creacin del archivo y el nombre del archivo. Si se aade fa
opcin -h el tamao ser mostrado con uno letra sufijo, que indica si son
Kbytes, Megabytes o Gigabytes.
5.1.2 Eliminacin
archivos

de

El comando para eliminar archivos es rm, y estn disponibles las


siguientes opciones: -r que hace una eliminacin recursiva si los directorios
estn vacos, - i que pide confirmacin al usuario antes do borrar cada
archivo, -f que obliga a borrar aun directorios no vacos y sin confirmacin.
$rm-i
$rm-rf
5.1.3 Renombre y traslado de
archivos
Se utiliza el comando mv ya sea para cambiar el nombre a un archivo o
directorio, o ya sea para mover el archivo o directorio a una nueva ubicacin.
$ mv mensajes.txt messages.txt
$ mv /datos /proyecto/
5.1.4 Creacin
directorios

de

Se utiliza el comando mkdir, una opcin interesante es -p que crea todos


los directorios en la ruta si no existen, por ejemplo
$ mkdir proyecto
$ mkdir-p un/dos/tres
5.1.5 Eliminacin
directorios

de

Para eliminar directorios se usa el comando rmdir, este comando slo


elimina directorios vacos.
$ rmdir proyecto
$ rmdir -p un/dos/tres

5.1.6 Renombre
directorios

de

Tambin se utiliza el comando mv, por


ejemplo:
$ mv proyecto proyectos
$ mv ./Desktop/gnome ./Desktop/gnome.bak

5.2 Propiedad
directorios

de

archivos

Al ser Linux/UNIX un sistema multiusuario, existe la nocin de propiedad


de archivos y directorios gracias al cual un usuario en particular es "dueo"
de archivos y directorios, adems se cuenta con un mecanismo que permite
conceder a otros usuarios autorizaciones con el fin de compartido
proteger archivos.
El esquema de propiedad se basa en usuario y grupos de usuario, es decir
un archivo o directorio pertenece a un usuario y a un grupo en particular.
Cada usuario pertenece al menos a un grupo cuando es creado. El
administrador del sistema puede hacer que un usuario pertenezca a mas do
un grupo.
Las autorizaciones son de tres tipos: lectura, escritura y ejecucin, Estos
permisos pueden ser fijados para tres clases de usuarios: el propietario
del fichero (usuario), el grupo al que pertenecen el fichero y para todos los
usuarios independientemente del grupo.
El permiso de lectura {read} permite a un usuario leer el contenido del archivo
o en el caso de un directorio, listar el contenido del mismo (usando ls). El
permiso de escritura (write) permite a un usuario escribir y modificar el
fichero. Para directorios, el permiso de escritura permite crear nuevos ficheros
o borrar ficheros ya existentes en dicho directorio, Por ltimo, el permiso de
ejecucin
permite a un usuario ejecutar el fichero si es un programa o una secuencia
do comandos (script)Para directorios, el permiso de ejecucin permite al
usuario cambiar al directorio (usando cd).

5.3 Interpretando
permisos

los

Usando el comando Is con la opcin -l se obtiene un listado "largo" de


los ficheros, con informacin de los permisos, el dueo y grupo al que
pertenece el archivo o directorio Los permisos se indican en una secuencia
de tres letras: "rwx", donde "r" es lectura (read), "w" es escritura (write) y "x"
ejecucin (execute), la presencia de una de las letras significativas que se
tiene el permiso y la ausencia lo contrario, que es indicado por un guin "-";
veamos un ejemplo:
[linux 0 sofia]$l -1 lista
-rw-rr-- 1 sofia sofia 400 may 20 10:00 lista
La primera columna en el listado representa los permisos. La tercera es
la propiedad del archivo, y la cuarta es el grupo al cual pertenece el fichero.

Este fichero pertenece al usuario sofia y al grupo sofia el primer carcter de


la cadena de permisos ("-") representa el tipo de archivo, que en este caso es
un archivo regular. Las siguientes tres letras
("rw-") representan los permisos para el propietario del fichero, as Sofa
tiene permisos de lectura y escritura para el archivo lista. El "-" indica que
no tiene permiso de ejecucin lo cual es correcto ya que lista no es un
programa.

Los siguientes tres caracteres, "r--" representan los permisos para los
miembros del grupo. El grupo al que pertenece el fichero es sofia. La "r"
indica que slo tienen permiso do lectura.
Los ltimos tres caracteres, tambin "r"" representan los permisos para
cualquier otro usuario del sistema (diferentes del propietario o de los
pertenecientes al grupo). De nuevo, como solo esta presente "r", los dems
usuarios pueden leer el fichero, pero no escribir en el o ejecutarlo.
5.4 Dependencias
permisos

entre

Es importante observar que los permisos de un archivo tambin dependen


de los permiso del directorio en el que residen, en el sentido de que los
permisos del directorio son efectivos antes que los permisos de los archivos
contenidos en ese directorio. Por ejemplo, aunque los archivos tengan los
permisos - rwxrwxrwx otros usuarios no podrn acceder a el a menos que
tambin tengan permiso de lectura y ejecucin para el directorio en el cual
se encuentra el archivo. Si Sofia quiere restringir el acceso a todos sus
ficheros, podra simplemente poner los permisos de su directorio de trabajo
(home) /home/sofia a rwx---. De esta forma ningn usuario podr acceder
a su directorio ni a ninguno de sus archivos o subdirectorios. Sofa no
necesita preocuparse de los permisos individuales de cada uno de sus
ficheros.

5.5 Manipulando permisos y propiedad do


archivos
El comando chmod {change mode) se usa paro establecer los permisos de
un archivo. Solo el propietario puede cambiar los permisos del archivo. La
sintaxis de chmod es:
chmod {a, u, g, o}{+,-){r, w, x} archivo
Las letras "a, u, g, o" indican a que usuario afecta el permiso "todos,
dueo, grupo, otros (all, user, group, other). Luego se especifica si se estn
otorgando permisos (+) o quitando (-} Finalmente se especifica que el tipo
de permiso "lectura, escritura o ejecucin" (Read, Write o execute). Ejemplos:
chmod a+r lista
fichero.
chmod +r lista
valor

Da a todos los usuarios acceso al


Si

no

se

especifica

a.

u.

o.

el

chmod og-x lista


al
chmod u+rwx lista
el
chmod o-riLix lista
a

predeterminados es a
Quita permisos de ejecucin a todos, excepto
propietario
Permite al propietario leer escribir y ejecutar
fichero
Quita permisos de lectura, escritura y ejecucin

otros usuarios
chmod u+rwx, o-rwx lista Los dos permisos anteriores en una
sola
instruccin

Existe otro tipo de notacin de permisos, denominada octal que puede


ser utilizada con chmod basada en la caracterstica de que los permisos
son un grupo de bits:
Lectura : r = 001=
1
Escritura: w = 010=
2
Ejecucin: x = 100=
4
De este modo, un valor 7 representa r-x (1+2+4=7) un valor representa rx (4+1=5) notacin los permisos se establecen a los tres al mismo tiempo
(usuario, grupo, otros) y no es posible hacerlo particularmente. Ejemplo
chmod
chmod

710

lista

equivale

El comando chgrp (change group) se utiliza para cambiar el grupo al


cual pertenece el archivo, su sintaxis es:
chgrp grupo archivo
5.6 Enlaces
archivos

de

Los enlaces o vnculos permiten dar a un nico archivo mltiples nombres.


Los archivos creados en el sistema tienen una entrada en el directorio que
posee un nico identificador en el sistema de archivos, denominado i-nodo.
Un directorio es una lista de nmeros de i-nodo con sus correspondientes
nombres de archivo. Cada nombre de archivos en un directorio es un enlace a
un i-nodo particular.
5.6.1
rgidos

Enlaces duros

El comando In es usado para crear mltiples enlaces o un archivo. Por


ejemplo supongamos que tiene un fichero foo en un directorio. Usando ls -i,
permite ver el nmero de i-nodo del archivo
$ ls -i foo
22192
foo
$
Aqu, el archivo foo tiene el nmero de i-nodo 22192 en el sistema de
archivos. Podemos crear otro enlace a foo llamado bar, del siguiente modo:

$ ln foo bar
Con ls -i veremos que los dos archivos tienen el mismo inodo
$ ls I foo bar
22192 bar 22192 foo
$
Ahora, accediendo a foo o a bar accederemos al mismo archivo Si se
hacen cambios en foo. Estos cambios tambin se reflejan en bar. Para
todos los efectos, foo y bar son el mismo fichero

5.7 Bsqueda
archivos

inspeccin

de

Con el comando find se puede explorar cualquier parte del sistema do


archivo? buscando todos los que tengan un nombre en particular. Ejemplo;
$ find /etc -name "Ipd"
nombre

Busca a partir de /ele el archivo de


"Ipd"

$ find /etc /usr -name "signal.h" Busca el archivo "signal-h" on /etc


y
en /usr
fnd po.see otras opciones muy potentes a la hora de realizar bsquedas,
entre cilas la opcin -perm que permite indicar el tipo de permiso en notacin
octal, - type que permita indicar el tipo de archivo buscado. u para indicar
el dueo, por ejemplo:
$ find . -name "Desktop" u sofia type d
Otros comandos bastante tiles con los que permiten inspeccionar el
contenido do los mismos, entre este tipo de comandos tenemos:
Tail, que de modo predeterminado muestra las 10 ltimas lneas de un
archivo, ejemplo:
$
tail
/tmp/install.log
$ tail -5 /tmp/install.log
lneas

Muestra las ltimas 5

Head, hace lo contrario a tail, muestra las primeras 10 lneas de modo


Predeterminado.
$ head /tmp/install.logj
$ head 8 /tmp/install.log

Muestra las primeras 8 lneas

cat muestra el contenido de un archivo de principio a final sin ninguna


pausa
$ cat /tmp/install.log
more muestra el contenido de un archivo por pantallas, desde el principio.
El avance entre pantallas se produce al presionar la barra espadadora,

tambin se puede avanzar linea por lnea presionando la tecla retorno. Es


posible buscar cadenas dentro de more, para ello se usa la tecla / (slash) y
luego se introduce el texto buscado, al presionar retorno lo bsqueda
empieza. La tecla "n" busca la siguiente ocurrencia hacia delante, la tecla
"N" busca una ocurrencia hacia atrs. Para salir de more se presiona la tecla
"q".
Less es un comando similar a more, pero ms flexible porque permite
moverse de attras hacia adelante, utilizando las teclas "AvPag" y "RePag"
y tambin responde a las mismas teclas comando que se usan en more.

Seccin 6
Edicin y creacin de textos ASCII
Objetivos
reacin y edicin de archivos de texto
omprender conceptos del editor VI
Uso del Editor VI
Uso del editor Joe

6 Edicin y creacin de textos


ASCII
6.1 El editor Vi
& Vim
6.1.1 Conceptos
fundamntalos
Hay varios editores de texto disponibles en Linux, el nico editor que es
la garantizado encontrar en cualquier sistema UNIX es vi (visual editor). Vi no
as precisamente el editor ms fcil da usar, ni es muy auto explicativo pero
siempre existe la posibilidad de que sea necesario usarlo Vim (Improved) es
la versin clon Linux del programa vi, y tiene algunas extensiones que no
se encuentran en las versiones Unix.
Mientras se usa vi, en cualquier momento se estar en uno de tres
posibles modos de operacin. Estos modos son conocidos como modo
orden, modo insercin y modo ltima lnea o line comando.
Cuando se inicia vi, nos encontramos en el modo orden. Esto modo
permito usar ciertas ordene para editar ficheros o cambiar a otros modos.
Generalmente, las rdenes usadas en este modo corresponden a uno o
dos caracteres de longitud.
Las operaciones de insertar o editar texto so realizan en el modo insercin, a
la cual se llega desde el modo orden, por ejemplo con la letra "i" (sin las
comillas) y el texto empieza a ser editado/insertado desde posicin actual
del cursor. Paro salir del modo de insercin y volver al de orden, se presiona la
tecla ESC.
El modo ltima lnea es un modo especial usado para proporcionar
ciertas ordenes extendidas a vi.
Al usar esos comandos el cursor se desplaza a la ltima linea de la pantalla
(de
ah el nombre). Para entrar en el modo ltima linea, se debo presionar":"
(sin las comillas) en el modo orden, luego pueden usar ordenes como "wq"
(para guardar el archivo y salir de vi). El modo ltima linea es habitualmente
usado por ordenes vi mayores a un carcter. En este modo luego de
introducir un orden, se presiona la tecla ENTER para ejecutarla.
6.1.2 ntroduccin
insercin

al

modo

La forma de ingresar a vi es simplemente teclear vi o bien teclear vi seguido


del nombre de un archivo, por ejemplo: vi mensajes.txt.
Cuando se ingresa a vi. nos encontramos en modo orden, para cambiar
o modo insercin o adicin se puede usar las siguientes ordenes:
i El texto tecleado es insertado inmediatamente delante de la
posicin

actual del cursor,


a Comienza aadir el texto detrs del carcter en el cual se
encuentra situado el cursor
A Aade el texto al final de la linea en la que est situado el
Cursor.
i Aade el texto al principio de la linea en la que est situado el cursor.
O (o mayscula) abre una linea por encima de la linea actual, coloca el
cursor all para empezar a insertar el texto tecleado.
o (o minscula) abre una linea por debajo de a linea actual, coloco el
cursor all para empezar a insertar el texto tecleado,
Para salir del modo de insercin y volver al modo de orden, se presiono la tecla
ESC.
6.1.3 Eliminando texto
Desde el modo de rdenes, las siguientes letras eliminan
texto x

(minscula) Borra el carcter debajo el cursor,

dd Borra una linea entera


dw Borra la palabra sobre la que se encuentra el cursor

6.1.4 Modificando texto


K Sobre escribe texto
r Sustituye un nico carcter situado debajo del cursor
- Cambia de maysculas a minsculas o viceversa, (a letra sobro
lo que so encuentra el cursor

6.1.5 rdenes de movimiento del cursor


Las teclas del cursor, y las teclas Inicio, Fin, AvPag y RePag
probablemente funcionarn correctamente para desplazar el cursor, si no
fuera as existen otras teclas quo permiten mover el cursor.
h Mueve el cursor a la izquierda (un carcter)
j

Mueve el cursor abajo (una linea)

k
l

Mueve el cursor arriba (una linea)


Mueve el cursor a la derecha (un carcter)

0
(cero) Mueve el cursor al inicio de la lnea
actual
$
Mueve el cursor la final de la linea
actual
w

Mueve el cursor al comienzo de la siguiente palabra o signo


de puntuacin
w
Mueve el cursor al comienzo de la siguiente
palabra
e Mueve el cursor al final de esta palabra o signo de
puntuacin E
Mueve el cursor al fina! de la siguiente
palabra
b Vuelve al comienzo de una palabra o signo de
puntuacin D
Vuelve al comienzo de la palabra
Ctrl+F
Avanza el cursor una pantalla hacia
adelante Ctrl+B
Retrocede una pantalla hacia atrs
G
Desplaza el cursor a la ltima
linea
lG
Desplaza el cursor o lo primera linn (1 es la linea,
pudiendo ser cualquier numero de lnea del archivo)
6.1.6 uardando archivos y saliendo
de vi
Estas rdenes, funcionan en modo ltima lnea, y son las
siguientes:
: w
archivo

Guarda el

:q
vi

Sale de

: wq
vi

Guarda el archivo y luego sale de

: q!

: w!
lectura

Sale de vi, aun cuando se hayan hechos cambios y no hayan


sido guardados
Guarda el archivo, aun cuando sea slo de

6.1.7 Uso
do
ayuda en vi

la

Vi no proporciona demasiada ayuda de forma interactiva (la mayora de


los programas UNIX no lo hacen), pero es posible leer el archivo de ayuda
desde el propio editor vi, para ello se debe ejecutar el comando: help que
dividir la pantalla de edicin en dos ventanas: la superior con el archivo
help.txt y en la inferior mantendr el archivo o texto que estamos
trabajando.
El archivo de ayuda que aparece en pantalla contiene varias descripciones
de las tantas opciones y funciones de vi, cada una de ellas identificada
de la forma: |clave| donde clave corresponde a un tpico en particular. Para
ingresar a cada tpico se debe colocar el cursor sobre la clave (dentro de los
caracteres
!) y presionar la tecla ENTER. Para salir de un tpico y volver a la
pantalla anterior se debe presionar las teclas Ctri+T. Finalmente para salir o
cerrar la ventana de ayuda se debe hacer
:q

6.2
joe

El

editor

El editor Joe (John's Own Editor) no se instala de modo predeterminado


en Linux, pero es uno de los tantos editores alternativos que ofrece una
interfaz ms sencilla y agradable al usuario. Para invocar a esto editor
basta con escribir
$joe;
o bien
$joe ejemplo.txt
Joe es ms intuitivo de utilizar que vi, y adems posee una ayuda en lnea a
la que se puede acceder mediante Ctrl+K+H.
De modo predeterminado cuando se ingresa a JOC ya se est en modo
de edicin, por lo que es posible editar directamente el texto, os comandos de
joe
siempre consisten en una combinacin de la tecla Ctrl y alguna otra del
alfabeto.

Seccin 7
Ms sobre comandos y el shell Bash
Objetivos
omprender funciones especiales del shell
edireccionar entrada y salida
ontrol de trabajos
Ejecucin en primer y segundo plano
Uso de variables en el shell

7 Ms sobre comandos y el shell


Bash
7.1 Trabajando
expresiones

con

comodines

7.1.1 Como
dines
Una caracterstica importante de la mayora de los interpretes de
comandos (shell) en Linux/UNIX la capacidad para referirse a ms de un
fichero usando caracteres especiales. Estos llamados comodines permiten
referirse, por ejemplo, a lodos los ficheros que contienen el carcter "n".
El comodn "*" hace referencia a cualquier carcter o cadena de caracteres
en el nombre del archivo.
Por ejemplo, cuando se usa el carcter "*" en el nombre de un fichero,
el interprete de comandos sustituye por todos las combinaciones posibles
provenientes de los ficheros en el directorio al cual nos estamos refiriendo.
Para listar a todos los ficheros con la letra "o" en su nombre, hemos de usar
la orden
$ ls o
Distribucin-HOWTO.txt Network.txt
En el ejemplo se muestran
Network.txl, overview.txt.

los

overview.txt
archivos:

Distribution-HOWTO.txt,

El proceso de la sustitucin de "*" en nombres de ficheros es llamado


expansin de comodines y es efectuado por l interprete de comandos, Esto
es importante: las ordenes individuales, como ls nunca ven "*" en su lista
de parmetros. Es l intrprete quien expande los comodines para incluir todos
los nombres de ficheros que se adaptan. Luego la orden
$ ls *o*

es
expandido
obtener

para

$ ls Distribution-HOWTO.txt Network.txt overview.txt


Una nota importante acerca del carcter comodn "*". El uso de este
comodn NO coincide con nombres de archivo que comiencen con un punto ".

Otro comodn es "?". Este carcter comodn solo expande un nico


carcter. Luego "ls " mostrara todos los nombres de archivos con un carcter
de longitud, y "ls termca" mostrara "termcap" pero no "termcap.backup".

7.1.2 xpresi
ones
El intrprete de comandos es tambin capaz de expandir
expresiones, construidas con el uso de smbolos especiales, que son:
Smbolo
Expansin
[]

Significado

Identifica cualquiera de los


caracteres entre corchetes.
Identifica una lista de
avalores
expandirse.

{}

rR]eadme
[a-c]_data
mo{re,ve
}

ciertas

ejemplo

readme
a_data
Roadme
b_data
c_data
more move

Estas expresiones pueden sor combinadas con los condiciones por


ejemplo:
$ Is [.]*
padre
$ cp *{txt,ps} /tmp

Para ver todos los archivos ocultos y directorios actual y


Copia los archivos de extensin txt y ps al directorio

/imp.
7.2 Redireccin de entrada y
salida
Muchos comandos Linux/UNIX toman su entrada de algo conocido como
entrada estndar y envan su salida a la salia .estndar (a menudo
nombrados como "stdin" y "stdout"), cuando o comando genera un mensaje
de error, oslo os enviado a error estndar (stdcrr).
El intrprete de comandos configura el sistema de forma que la entrada
estndar es el teclado y la salida estndar y error estndar la pantalla.
Para ilustrar esto veamos un ejemplo con el comando cat. Normalmente cat
lee datos de los archivos cuyos nombres se pasan como argumentos en
linea de comandos y enva estos datos directamente a la salida estndar
$cat mensaje.txt readme

Mostrar por pantalla el contenido del fichero mensajes.txt seguido por


readme. Si no se le pasan nombres de ficheros a cat como parmetros,
leer datos desde stdin y los enviar a stdout. Veamos un ejemplo.
$cat
Esto es,
Esto es
interesante
interesante
Ctrl+D

$
Como se puede ver, cada linea que se teclea (impresa en itlico) es
inmediatamente reenviada a la pantalla por cat. Cuando se est leyendo de
la entrada estndar, los comandos reconocen el fin de la entrada de datos
cuando reciben el carcter EOT (cnd-of-text, fin de texto), normalmente
producido con las teclas Ctrl+D.
Veamos otro ejemplo. El comando sort toma como entrada lineas de texto
(de nuevo leer desde stdin si no se le proporcionan nombres de archivo en la
linea de comandos), y devuelvo la salida ordenada a stdout. Probemos lo
siguiente:
$ sort
tumbo
limn
platano
frutilla
CLrI+D
frutilla
limn
pltano
tumbo
$
Podemos observar que una vez ordenado, sort enva el resultado o la
salido estndar, la pantalla.
7.2.1 Redireccionando la entrada y
salida
Ahora, supongamos que queremos que la salida de ;.i.[ i. vaya ci un archivo.
E) intrprete de comandos permite redireccionar la salida estndar a un
archivo usando el smbolo ">"
$ sort >
ordenado tumbo
limn
platano
frutilla
Ctrl+D
$
Como se puede ver, el resultado de sort no se muestra por pantalla, en su lugar
es enviado y guardado en el archivo ordenado. Echemos un vistazo al archivo

$cat ordenado
Cuando se usa ">" crea el archivo si es que no existe y si existe este es
sobre escrito, para evitar esto se puede usar "" que aade datos al archivo
en fugar do sobre escribirlo, si el archivo no existe tambin ser creado.

Supongamos ahora que tenamos guardada la lista original desordenada


de frutas en el archivo frutas. Usemos el archivo como parmetro de sort, para
que lea la entrada desde el archivo en lugar de la entrada estndar y
redireccionar la salida estndar como lucimos arriba.
$ sort frutas
frutas2
$
cat
frutas2

>

Otra forma de hacer esto, es redireccionar la entrada estndar, usando


el smbo!o "<"
$ sort < frutas
frutilla
limn
pltano
tumbo
$
Tcnicamente, sort < frutas es equivalente a sort frutas, pero nos
permite demostrar que sort < frutas; se comporta como si los datos del
archivo fueran tecleados por la entrada estndar, El interprete de comandos
es quien maneja
as redirecciones, sort no recibe el nombre del fichero (frutas) a leer desde
el punto de vista do sort, esta leyendo datos do la entrada estndar como
si fueran tecleados desde el teclado.
Podemos realizar la redireccin do entrada y salida al mismo tiempo del
siguiente modo
$sort < frutas > frutas3
$cat frutas3
El ejemplo es similar al anterior pero adems, el resultado de ordenar frutas
es enviado a frutns3
Esto introduce el concepto de filtro. Un filtro es un programa que lee datos de
la entrada estndar. los procesa de alguna forma, y devuelve los dalos
procesados por la salida estndar. Usando redireccin la entrada estndar
y/o salida estndar pueden ser referenciadas desde archivos. Sort es un
filtro simple: ordena los datos de entrada y enva el resultado a la salida
estndar, cat es incluso mas simple, no hace nada con los dalos de
entrada, Simplemente enva a la salida cualquier cosa que te llega.

7.2.2 Uso de tuberas


(pipes)
En los ejemplos anteriores usamos sort como un filtro. Pero los ejemplos
suponen que tenemos los datos en un archivo en alguna parte o vamos
a introducir los datos manualmente por la entrad estndar.
Veamos el siguiente ejemplo, en el que vamos a ordenar la salida del
comando ls

$ls > listado


$sort -r listado
Aqu, guardamos la salida de ls en un archivo y entonces ejecutamos sort
-r sobre ese fichero.
Pero esta forma necesita crear un fichero temporal en el que se guardan
los datos generales por ls.
Una solucin para evitar usar un archivo intermedio o temporal, es usar
otra caracterstica del interprete de comandos, llamada tubera (pipe), que nos
permite conectar comandos do modo que la salida del primero (stdout)
es enviada directamente a la entrada (stdin) del segundo y as
sucesivamente. Queremos conectar la salida de ls con la entrada de sort:
$ls -l | sort

De esta forma hemos obtenido el mismo resultado anterior. Veamos ms


ejemplos
$ls -1 /usr/bin | more
$ls -1 /etc | grep conf
Si se necesita se puede "entubar" ms de dos comandos a la vez, por
ejemplo
$ ls -1 /etc | grep conf | wc -1
Donde wc -1 simplemente cuenta el nmero de lneas, en el resultado
entregado por grep.

7.3 Control
trabajos

de

El control de tareas o trabajos, es una utilidad incluida en muchos


interpretes de comandos, que permite el control de multitud de comandos
o tareas al momento.
Cada vez que se ejecuta un programa, se lanza lo que se conoce como
proceso, que es simplemente el nombre que se le da a un programa cuando
se esta ejecutando, B comando ps visualiza la lista de procesos que se
estn ejecutando actualmente, por ejemplo:
$
ps

PID TT STAT TIME


COMMAND 24 3S 0:03 (bash)
161 3R
0:00
ps
$
La columna PID representa el identificador de proceso. La ultima
columna COMMAND, es el nombre del proceso que se esto ejecutando.
Ahora solo

estamos viendo los procesos que estn ejecutando el usuario que invoc a
ps. Vemos que hay dos procesos, bash (Que es el shell o interprete de
comandos que usa el usuario), y el propio comando ps. Como se puede
observar, bash se ejecuta concurrentemente con el comando ps, Bash ejecuto
ps cuando el usuario tecleo el comando.
Cuando ps termina de ejecutarse (despus de mostrar la labia de procesos),
el control retorna al proceso bash, que muestra el prompt, indicando que esta
listo para recibir otro comando.
Un proceso que est corriendo se denomina turca para el shell. Los
trminos proceso y tarea es intercambiable. Sin embargo, se suele
denominar "tarea" a un proceso cuando es usado en conjuncin con control
do tareas, que es un rasgo del intrprete de comandos quo permite cambiar
entre distintas tareas. En muchos casos, los usuarios solo ejecutan un
trabajo cada vez que es el ltimo comando tecleado desde el shell. Sin
embargo, usando el control de tareas, se podr ejecutar diferentes tareas al
mismo tiempo, cambiando entre
cada uno de ellos conforme so
necesito.
7.3.1 Ejecucin en Primer plano y Segundo
plano
Un proceso puedo estar en Primer plano o en segundo plano. Solo
puede haber un proceso en primer plano al mismo tiempo, el proceso que
esta en primer plano es el que interacta con el usuario, recibe entradas de
teclado, y enva las salidas al monitor (salvo, por supuesto, que se haya
redirigido la entrada o la salida), Por o general, e! proceso en segundo
plano, no realiza ninguna interaccin con el teclado, se ejecutan en silencio
sin necesidad de interaccin.
Algunos programas necesitan mucho tiempo paro terminar, y no hacen
nada interesante mientras tanto. Compilar programas es una de estas
largas, as como comprimir un fichero grande. No tiene sentido sentarse y
aburrirse mientras estos procesos terminan. En estos casos es mejor
lanzarlos en segundo plano, para dejar la computadora on condiciones de
ejecutar otro programa
Los procesos pueden ser suspendidos. Un proceso suspendido es aquel
que no s esta ejecutando actualmente, sino que es la temporalmente
parado. Despus de suspender una tarea, se puede indicar a la misma que
contine en primero segundo plano, segn se requiera. Retomar una tarea
suspendida no cambia en nada el estado de la misma tarea continuara
ejecutndose justo donde se dejo.
Hay que tener en cuenta que suspender un trabajo no es lo mismo
que
interrumpirlo.
Cuando
se interrumpe
un
proceso (generalmente
presionando Clrl+C|) el proceso muere, y deja de estar en memoria y utilizar
recursos del ordenador. Una vez eliminado, el proceso no puede continuar
ejecutndose, y debera ser lanzado otra vez para volver a realizar sus
tareas. Tambin se puede dar el caso de que algunos programas capturan

la interrupcin (Clrl-'C) de modo que pulsando Ctrl+C no lo detiene


inmediatamente. Esto de hace para permitir realizar operaciones necesarias de
limpieza antes de terminar.
7.3.2 Envi do procesos a segundo plano y eliminacin de
procesos

Empecemos con un ejemplo sencillo. El comando yes es un comando


aparentemente intil que enva una serie interminable de y-es a la salida
estndar (Realmente es muy til Si se utiliza una tubera (o "pipe") para unir
la salida de yes con otro comando que haga preguntas del tipo si/no, la serie
de y-es confirmara todas las preguntas.)
$ yes
y
y
y
y
La serie de y-es continua indiferentemente, a no ser que s elinine o
interrumpa el proceso pulsando la tecla de interrupcin Clrl+C. Tambien
nos podemos deshacer de esta serie de y-es redirigiendo la salida estandar de
yes a/dev/null.
$yes > /dev/null
Ahora la consola no se lena de y-es pero el indicador del shell no retorna
esto es porque yes sigue ejecutndose y enviando y-es a /dcv/null. Si lo
interrumpimos volveremos al indicador
Supongamos ahora quo queremos dejar que el comando yes siga
ejecutndose, y volver al mismo tiempo al shell para trabajar en otras
cosas Para ello enviaremos a yes a ejecutarse en segundo plano, lo que
permitir que se ejecute, pero sin necesidad do interaccin. Una forma de
mandar procesos a segundo plano es aadiendo un carcter "&" al final de
cada comando.
$yes > /dcv/null
& [1]764
$
Como se puede ver, regresamos al
shell.
"[1]" representa el nmero de tarea del proceso yes en el shell. El shell
asigna un numero diferente a cada tarea que se esta ejecutando, Como
yes es el nico comando que se esta ejecutando, se le asigna el numero de
tarea 1. l numero "164" es el numero de identificacin del proceso o
PID, que es el nmero que el sistema le asigna al proceso. Ambos
nmeros pueden usarse para relacionarse a la tarea como veremos despus.

Ahora tenemos el proceso yes corriendo en segund plano, y enviando


constantemente la salida de y-es hacia el dispositivo /dev/null. Para
chequear et estado del proceso, podemos usar el comando de shell jobs.
$job
s
[1]+ Running yes >/dev/null
&
$
Tambin podemos usar el comando ps, de la misma forma anterior, para
comprobar el estado de la tarea.

Para eliminar una tarea, se usa el comando kill. Esto comando toma
como argumento un nmero de tarea o un nmero PID de un proceso. Esta
era la tarea 1. as que usando el comando:
$ kill %1
matar la tarea. Cuando se identifica la tarea con su nmero, se debe
preceder el nmero con el carcter de porcentaje ("%"). Ahora que ya hemos
destruido lo tarca, podemos usar el comando jobs de nuevo para comprobarlo:
$job
s
[1]+ Terminated
> /dev/null
$

yes

La tarea est en efecto muerta y si usamos nuevamente, el comando Jobs


de nuevo, no mostrar nada.
Tambin se puede matar la tarea utilizando el nmero do
proceso
$
kill
764

7.3.3 Deteniendo y continuas


tareas
Hay otra forma de poner una tarea en segundo plano, lanzando el proceso
do modo normal( en primer plano), pararlo, y despus presionar la tecla Ctrl+Z
que detiene o suspende el proceso
$ yes
> /dev/null
Ctrl+Z
[1]+ Stopped
yes >/dev/null
$
Ahora podemos observar que el proceso esta suspendido, simplemente no
se est ejecutando. No gasta tiempo de CPU en la tarea. Sin embargo, se
puede retomar el proceso de nuevo como si nada hubiera pasado.
Continuar ejecutndose donde se dejo.
Para relanzar la tarea en primer plano, se usa el comando fg
(foreground)
$fg

Si, mientras el proceso esta detenido y se usa el comando bg (background),


la tarea es puesta en ejecucin en segundo plano. Esto har que el
comando siga ejecutndose igual que si lo hubisemos hecho desde el
principio con "&" como en la seccin anterior.
$bg
[1]+ yes >/dev/null &
$

Y tenemos de nuevo el indicador. El comando Jobs debera decirnos que


yes se asta ejecutando y podemos matar la tarea con kill tal como se hizo
antes. Los procesos que estn en segundo plano no pueden ser detenidos
otra vez con Ctrl+Z, en lunar de ello se debe colocar al proceso en primer
plano de nuevo, con el comando fg, y entonces pararlo.
Hay una gran diferencia entre una tarea que se encuentro en segundo plano, y
una que se encuentra detenida. Una tarea detenida es una tarea que no se
esta ejecutando, es decir, que no usa tiempo de CPU, y que no esta haciendo
ningn trabajo (la tarea aun ocupa un lugar en memoria, aunque puede ser
volcada a disco), Uno tarea en plano se esta ejecutando y usando memoria.
Una tarea en segundo plano puede intentar mostrar texto en la Terminal lo que
puede resultar molesto si esta intentando Hacer otra cosa. Por ejemplo, si lo
usa el comando
$yes &
sin redirigir la salida estndar a /dev/null una serie de y-es se mostrara
en pantalla sin modo alguno de interrumpirlo, ya que tampoco se puede
usar CtcI+C, para intcrru.mpir tarona en segundo piano. Para poder parar
estas interminables y-es hay que colocar la tarea en primer plano, mediante el
comando fg y entonces usar Ctrl+C para matarla.
Otra observacin. Normalmente, los comandos "fg" y "bg" actan sobre el
ltimo proceso parado (indicado por un "+" junto al nmero de tarea cuando
se usa el comando Jobs) Si se tiene varios procesos corriendo a la vez, se
debo indicar oi nmero de tarea como argumento de fg o bg.
$ Fg %2
plano
$ bg %4
plano

Paso la tarea nmero 2 a primer


Pasa la larca nmero 4 a segundo

Las funciones provistas para control de larcas, revisadas aqu son una
caracterstica del shell Los comandos Jobs, fg y bg, son comandos internos
del shell. El shcli Linux utilizado en estos ejemplos es Bash.

7.4 Variables del


shell
El shell dispone de un mecanismo para definir variables que se pueden
utilizar para guardar informacin a ser utilizada por los programas del
sistema o para uso propio.
Existe un conjunto de variables comunes quo son delinidas por los
diferentes shell existentes, estas son algunas de ellas:

HOME

Contiene la ruta absoluta del directorio de trabajo del


usuario PATH
Es una
cadena de rutas de directorio separadas por ":" que le
indican al shell donde buscar los comandos tecleados.
PS1
Define el indicador usado por el shell para ordenes primarios
PS2
Define el indicador usado por el shell para ordenes
secundarias,
tlpicamente >
LOGNAME
Contiene el nombre del usuario
(login)

SHELL
TERM
para

Contiene el nombre del shell que se est usando actualmente


Es utilizada por vi y oros programas orientados a pantalla
obtener informacin sobre el tipo de pantalla y realizar
operaciones correctas de movimiento de cursor, por citar un
ejemplo.

Para inspeccionar el nombre de una variable se usa el comando interno echo,


asi:
$echo$PATH
$echo$SHEL
L
Los valores de las variables pueden ser utilizadas en cualquier momento por
los comandos, por ejemplo:
$mv
$HOME/messages

mensajes.txt

Para ver todas las variables actuales del shell se puedo usar el comand
set.
7.4.1 Definicin
variables

de

Cuando el usuario ingresa al sistema, el shell se encarga de definir


varias variables, y se pueden definir otras en el archivo bash al que est
ubicado en el directorio $HOME de cada usuario, de modo que cada vez
que el usuario ingrese al sistema, ests sean restauradas o definidas.
Tambin es posible definir las variables desde el indicador del shell, del
siguiente modo
$PROY="/home/sofia/jul2001
"
$TERM=vt10
0
Para borrar la definicin de una variable, basta con
hacer
$
TERM=
$
PROY=

7.4.2 ariables do shell y


entorno
Cuando se ejecuta una orden, el shell pone a disposicin del programa
un conjunto de variables del shell y sus valores. El programa puede entonces
usar esta informacin para realizar alguna accin. A esta coleccin de
variables y valores disponibles para un programa se denomina entorno.
Para examinar las variables del entorno se puedo usar el comando
env.
$env
HOME=/home/sofia
PWD=/home/sofia
SHELL=/bin/bash
...
...

Este pequeo ejemplo muestra las variables de entorno del usuario


sofia.
Cuando se requiere hacer que una variable del shell esto en el entorno,
se debo usar el comando export. Por ejemplo vamos a definir un valor para
TERM que va a ser exportado para que sen visible
por
vi.
$
TERM=vt100
$
export
TERM
O en una sola linea, usando ";" que permite especificar varios
comandos
$ TERM = vt100 : export
TERM.

Anda mungkin juga menyukai