Logo Studenta

Desarrollo-de-sistemas-basados-en-software-libre--GNULinux

¡Este material tiene más páginas!

Vista previa del material en texto

UNIVERSIDAD NACIONAL AUTÓNOMA 
DE MÉXICO 
FACULTAD DE ESTUDIOS SUPERIORES 
 
CAMPUS ARAGÓN 
 
 
 
INGENIERÍA EN COMPUTACIÓN 
 
 
“Desarrollo de Sistemas basados en Software Libre 
GNU/Linux” 
 
 
PROYECTO BAJO LA MODALIDAD DE “SEMINARIOS Y CURSOS DE 
ACTUALIZACIÓN Y CAPACITACIÓN PROFESIONAL” QUE, PARA 
OBTENER EL TÍTULO DE: 
 
 “INGENIERA EN COMPUTACIÓN” 
 
 
 PRESENTA: 
 
 
Basilio Guzmán Alma Delia 
 
 
Dirigido por la Biol. Lizbeth Heras Lara 
 
UNAM – Dirección General de Bibliotecas 
Tesis Digitales 
Restricciones de uso 
 
DERECHOS RESERVADOS © 
PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL 
 
Todo el material contenido en esta tesis esta protegido por la Ley Federal 
del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). 
El uso de imágenes, fragmentos de videos, y demás material que sea 
objeto de protección de los derechos de autor, será exclusivamente para 
fines educativos e informativos y deberá citar la fuente donde la obtuvo 
mencionando el autor o autores. Cualquier uso distinto como el lucro, 
reproducción, edición o modificación, será perseguido y sancionado por el 
respectivo titular de los Derechos de Autor. 
 
 
 
 
 
 
Índice general 
 
INTRODUCCIÓN……………………..……....……...…………………...…………...6 
 
I. INTRODUCCIÓN AL SISTEMA OPERATIVO GNU/LINUX, INSTALACIÓN 
Y ADMINISTRACIÓN…………………....……………......………………………….8 
 
 1.1. Introducción…………………………..…......……………….…..……….…9 
 1.2. RMS & Software libre………………..……..……...….……..………...….11 
 1.3. GNU/Linux……………...………….....……..………………………..…...13 
 1.4. Kernel Linux……..………………..………..……...………………………13 
 1.4.1 Características……………………..……......………………….…15 
 1.5. Filosofía del software libre…..………..………...………...…………….....16 
 1.6. Distribuciones………………………….….………..……...………..…......18 
 1.7. Componentes de GNU/Linux……………………..………...………..……19 
 1.7.1. Hardware…………………………………...………..…………...19 
 1.7.2. Kernel………………………………………………..………...…19 
 1.7.3. Shell………………………………...………….....……………...20 
 1.8. Instalación………………………………………….……………..……......21 
 1.8.1. Niveles de ejecución…………………………………….……….23 
1.9. Aplicaciones y usuarios….……..…………………….………...…....…….24 
 1.10. Sistema de archivos…………………....……………………………........25 
 1.10.1. Directorios………………………….....…………………...……25 
 1.11. Cuentas de usuarios………………………………...…………………….26 
 1.12. Comandos básicos…….……………….…………...…...……………..….26 
 1.12.1. Opciones de comandos…………………...……………..…...….29 
 1.12.2. Caracteres comodín…………………………………....………..29 
 1.12.3. Cambios de permisos por el método octal………………...…....30 
 1.13. Rutas absolutas y relativas………………………...………….…………..31 
 1.13.1. Ruta absoluta……………...………...…………...…...…………31 
 1.13.2. Ruta relativa…………………………………………………….31 
 1.14. Consultando ayuda del sistema……………….…………………..…........32 
 1.15. Trabajo con archivos………………………...………...………...………..32 
 1.15.1. Cat………………………………...……………………...……..32 
 1.15.2. More……………………………….............……...…………….33 
 1.15.3. Head……………………………………………………........….33 
 1.15.4. Pico……………………………………...………………......…..33 
 1.16. Redireccionamiento………………………………...…………….………33 
 1.16.1. Redireccionamiento de salida……………...………….....……..33 
 1.16.2. Redireccionamiento de entrada…………………………..…......34 
 1.17. Filtros…………………………......…………………………………..…..34 
 1.18. Comandos básicos de red………...…………………………………….…34 
 
 
 
2 
 
 
 
 1.18.1. Mail…………………………...…………...……………………35 
 1.18.2. Write…………………………...………...………………...…....35 
 1.19. Procesos……………………………...…...……..……………………..…35 
 1.20. Respaldos…………………………...……...……………………..….…...36 
 1.20.1. Tar………...…………..………...………………………………36 
 1.20.2. Gzip………………………………….....……...………………..37 
 1.21. FTP (File transfer protocol)……………………...…………...……..……37 
 1.22. Resumen general capítulo I………………………......……...……...…….39 
 
II. EDITORES PARA CREAR PÁGINAS WEB, SERVIDORES DE WWW Y 
PROGRAMACIÓN CON PHP...………...……………………..……………...…….40 
 
 2.1. Introducción……………………...……………………...…………..……..41 
 2.2. World Wide Web…………………..……………………...……...………..44 
 2.3. Html…………………………...…...…………..…………...………..…….45 
 2.4. Editores………………………...……………………………...……..…….46 
2.4.1. vi..……...………………...………………….………………….46 
2.5. Comandos básicos……………………………………………...……….…46 
 2.6. Documento básico en Html………...…………………………...……….....47 
 2.7. Párrafos en Html…………………......………………………….…………50 
 2.8. Instalación de Apache……………………….……………………………..50 
 2.9. Configuración básica de un servidor Apache…….…………...……...…...52 
 2.10. Fichero httpd.conf.………………………...….………………………..…53 
 2.10.1 ServerRoot……...………………………………………...……..53 
 2.10.2. DocumentRoot…...………………………………………….….53 
 2.10.3. PidFile……………...……………….………………………..…53 
 2.10.4. ServerAdmin……….…………………....….………..…………53 
 2.10.5. StartServer…………...………………………………………..………..54 
 2.10.6. KeepAlive……………...………………………...…………..…54 
 2.10.7. Listen……………………...…..………………...……………..54 
 2.10.8. LoadModule………………...….……………………...……..…54 
 2.10.9. ServerName….………………...………...…...………………....54 
 2.10.10. ErrorLog………………………..……………...…………...….54 
 2.10.11. LogFormat…..…………………...……...…...………...………54 
 2.10.12. IndexOptions..……………………..………...…...……………54 
 2.11. Programación con PHP………….……………..…………………..……..55 
 2.12. Instalación de PHP………….…………………..……...……………...….56 
 2.13. Sintaxis en PHP……………….………………......…………..………….58 
 2.13.1. Variables………………….…………...…………...………..….60 
 2.13.2 Operadores……………………………...…………………….…61 
 2.13.2.1. Operadores aritméticos…….…...……...………...……61 
2.13.2.2. Operadores lógicos………………..………………..…61 
 2.13.2.3. Operadores de comparación…...……………………...62 
 2.13.2.4. Cadenas………………………………..…….…..……62 
 2.14. Sentencias de control……………………………………...…...………....62 
 
 
3 
 
 
 2.15. Resumen general capítulo II………………...…...…...........………..……63 
 
 
III. INTRODUCCIÓN A LAS BASES DE DATOS Y A LA SEGURIDAD EN 
CÓMPUTO………...………………………………………………………………….65 
 3.1. Introducción…………………………………......…..…….……………….66 
 3.2. Bases de datos con MySQL……………………...…………….………….67 
 3.3. Conceptos…………………………………………...….…………………67 
 3.3.1. Atributo……………………………………...….………………………..67 
 3.3.2. Llave……………………………...…………....……………...….67 
 3.3.3. Tupla…………………………………...……………………..….68 
 3.3.4. Dominio……...……………………………...….....……………..68 
 3.3.5. Grado……………………………………………..……..………..68 
 3.3.6. Relación…………………...……………………...……………...68 
 3.3.7. Tabla base………………..………………………...…….………68 
 3.3.8. Manejador de bases de datos………………………...……...........68 
 3.3.9. Tabla………………………………...………………….………...68 
 3.3.10. Registro………………………………………......…..…………68 
 3.3.11. Campo…………………………………………....……………..68 
 3.3.12. Llave primaria……………………….………….....……………68 
 3.3.13. Llave foránea………………………..………...…………….…68 
 3.4. Modelo relacional……………………………….…………..……..………69 
 3.5. Creación de una tabla…………………………..……...…………….…….69 
 3.6. Comandos………………………………………………………….………69 
 3.6.1. Drop………………………………….....………………….…….70 
 3.6.2. Alter…………………………………......………………….……70 
 3.7. Creación de una base de datos………………..……...…………..………...70 
 3.8. Utilizar la base de datos………………………….………......…………….70 
 3.9. Eliminar la base de datos…………………….……...……………………..70 
 3.9.1. Sentencia Drop……………………..……..…………..........…….70 
 3.10. Mostrar la base de datos………………….……...…………….........…….71 
 3.10.1. Sentencia Show Databases……….……..………...……...……..71 
3.11. Seguridad en cómputo…………….....……......…………………….....…72 
 3.11.1. ¿Qué es seguridad?..................................................................................72 
 3.11.2. Contraseñas etc/passwd…....…………………...……………………....73 
 3.11.3. Herramientas de seguridad.…......……………...……………………….73 
 3.11.4. Sistemas detectores de intrusos……….……….....……….….………....73 
 3.11.5. Analizadores por red………………..………..………………………....73 
 3.11.6. Analizador local……………………...……..………..……..…......……73 
 3.11.7. Herramientas para el administrador…….…..……..………..……..……73 
 3.11.8. Gusanos……...………………………………....….....………..………..73 
 3.11.9. Riesgos más comunes………...………………....……..…………….…74 
 3.11.10. Bitácoras……….…………………………...………...………………743.12. Resumen general capítulo III…………….……..……………..…..……...75 
 
 
 
4 
 
 
IV. CONCLUSIONES………………………………………..…………………….....76 
Bibliografía....................……………………………………………………………….77 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5 
INTRODUCCIÓN 
 
En este trabajo se muestran consejos prácticos que van desde una instalación del sistema 
operativo, hasta una base de datos; depende de cada uno de nosotros profundizar más en 
cada tema dependiendo de nuestras necesidades, ya que para aprender un tema en 
específico no hay mejor manera que hacerlo por nosotros mismos. 
El propósito principal de este trabajo es dar a conocer lo que es el software libre, 
GNU/Linux, ya que es un sistema operativo muy popular, y día a día gana más adeptos, 
la comunidad está creciendo gracias a la colaboración de miles de programadores 
alrededor de todo el mundo, así como las herramientas basadas en el mismo, como son 
PHP y MySQL, entre otras, las cuales han demostrado ser altamente estables y con 
excelente desempeño. Este sistema operativo es altamente poderoso y estable. 
Herramientas como PHP y MySQL cumplen también con el requisito de ser libres, esto 
implica que tenemos la libertad de utilizarlas en cualquiera que sea nuestro propósito y 
adaptarlas a nuestras necesidades. 
Este es el punto más importante de este trabajo, el hecho de que GNU/Linux sea 
software de libre distribución nos habla no solamente sobre el precio de pagar algún 
tipo de licencia para hacer uso del mismo, sino que como se mencionó antes, nos da la 
libertad de ejecutar el programa sea cual sea el propósito. 
El software libre viene con el código fuente, así que además podemos hacer mejoras al 
programa, si este fuera el caso, ya que sin el acceso al código fuente el hacerle algún 
cambio a los programas sería muy difícil. 
Daremos una guía básica de la instalación de una distribución de este sistema operativo, 
con pasos bastante sencillos, también una guía de editores para crear páginas web. 
También hablaremos sobre herramientas para crear una base de datos, enfocándonos en 
MySQL y como servidor usaremos Apache. 
El lenguaje PHP en conjunto con HTML nos permite crear aplicaciones dinámicas para 
web, además, ambos son sencillos y no requieren de conocimientos profundos en 
programación, bastará con tener conocimientos básicos de C o algún otro lenguaje de 
programación. 
 
 
 
6 
 
 
El hecho de utilizar las computadoras, como medio de transmisión de información, nos 
hace más vulnerables a sufrir ataques que dañen nuestra computadora y la información 
contenida en ella, es por esto que también se verán algunos aspectos básicos sobre la 
seguridad en informática. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7 
 
 
 
 
 
 
 
 
 
 
CAPÍTULO I 
 
INTRODUCCIÓN AL SISTEMA OPERATIVO 
GNU/LINUX, INSTALACIÓN Y ADMINISTRACIÓN 
 
 
 
 
 
 
 
 
8 
 
1.1 Introducción 
 
La historia de GNU/Linux está totalmente relacionada con la historia de Unix, la cuál es 
muy interesante, así que no podemos saltarnos esta parte, ya que resulta la más 
importante a la hora de hablar de derivados de Unix, como lo es el Kernel Linux. La 
historia de Unix es muy importante aunque no fue tan impactante. 
En el año de 1964 Bell Telephone Laboratories de At&T, General Electric Company y 
el MIT (Instituto Tecnológico de Massachussetts) se propusieron desarrollar un 
innovador sistema operativo que funcionara en una máquina GE645 (de General 
Electric), a este nuevo sistema operativo lo llamaron MULTICS. 
La principal característica de este sistema es que daba a una amplia gama de usuarios 
una gran capacidad computacional, al igual que poder almacenar y compartir grandes 
cantidades de datos. Lamentablemente el proyecto se producía lentamente, ya que las 
limitaciones del hardware en esa época representaban un obstáculo. Como el proyecto 
comenzó a mostrar síntomas de estar convirtiéndose en algo inútil, la compañía Bell 
Telephone decidió dejar el proyecto. 
MULTICS no fue un éxito después de todo, pero las ideas planteadas para el proyecto 
fueron empleadas para la creación de lo que sería UNIX, así como para otros sistemas 
operativos. 
Dennis Ritchie, quien había trabajado con anterioridad en el proyecto de MULTICS, en 
conjunto con Ken Thompson, que era uno de los miembros del Computing Science 
Research Center (Bell Laboratories), crearon el sistema operativo UNIX alrededor del 
año 1971. 
MULTICS (Multiplexed Information and Computing Service) tuvo mucha influencia en 
el sistema operativo UNIX, algunas de las características principales es la organización 
básica del sistema de archivos y el interprete de comandos (Shell). En el nombre de 
ambos sistemas también puede verse la influencia, ya que inicialmente se utilizó el 
termino UNICS (Uniplexed Information and Computing Services), aunque como 
sabemos, al final de la historia se le dio el nombre de UNIX. 
En sus inicios, UNIX tampoco impactó mucho al público, sobre todo porque al 
principio solamente era utilizado para propósitos internos en AT&T. Con la versión de 
UNIX SystemV (SysV) este sistema operativo logró posicionarse como uno de los 
mejores, ya 
 
 
9 
que seguido del éxito que alcanzó con esta versión aparecieron diversos productos 
bastante parecidos, un ejemplo de ello es BSD (Berkeley Systems Distribution), 
presentado por la University of California en Berkeley en el año de 1978, y era bastante 
parecido a UNIX¹. 
El impacto de BSD fue tal que la Agencia de Investigación de Proyectos Avanzados de 
Defensa (DARPA) le ofreció financiamiento a la universidad de Berkeley para crear un 
estándar de UNIX para uso oficial, a este sistema se le dio el nombre de 4BSD. 
El trabajo realizado para DARPA fue dirigido en todo momento por personas expertas 
en UNIX, DARPA Internet (TCP/IP) y en redes. 
Hoy en día no solamente encontramos versiones como BSD, muchas empresas se 
dedican a fabricar su propio Unix, como lo es IBM en cual ofrece AIX, Sun 
Microsystems lo denomina Solaris, SGI tiene Irix y Hewlet Packard ofrece HP-UX. 
Existen también versiones cuya distribución es libre, como OpenBSD o FreeBSD. 
Aunque propiamente el nombre de UNIX solamente pertenece a AT&T, los demás sólo 
son similares a él, por decirlo de alguna manera. 
UNIX fue diseñado como un sistema multiusuario en tiempo compartido, lo que quiere 
decir que varios usuarios pueden trabajar de forma simultánea compartiendo entre ellos 
todos los recursos del sistema y el procesador, de esta manera cada uno de lo usuarios 
pueden ejecutar uno o más procesos (programas en ejecución) a la vez. GNU/Linux es 
muy similar a UNIX, en lo que se refiere a su origen, pero al hablar de la ideología y el 
enfoque que tiene encontramos grandes diferencias. 
Una de las principales diferencias que tienen es que los fabricantes comerciales 
usualmente cuentan con arquitectura propia de hardware, al contrario de esto, 
GNU/Linux se puede adaptar a diversas arquitecturas como lo son, SPARC, Intel, IBM. 
 
 
 
1 
 
 
 
10 
 
1 En español quiere decir “GNU no es UNIX” 
1.2. RMS & Software libre 
Richard Mathew Stallman mejor conocido como “RMS” nació en el año de 1953 en la 
ciudad de Nueva York, el primer contacto que tuvo con una computadora fue a la edad 
de 12 años (una IBM 7094), posteriormente en el año de 1971 ingresó al Laboratorio de 
Inteligencia Artificial (AI Lab) del MIT (Instituto Tecnológico de Massachussetts), en 
aquella época el software todavía podía compartirse sin causar conflicto, RMS se 
desarrolló dentro de una comunidad acostumbrada a compartirlo todo, ya que así había 
sido siempre. 
 
 
Figura 1.1. Richard Stallman “RMS” 
 
En aquel entonces se utilizaba dentro de Laboratorio de Inteligencia Artificial un 
sistema operativo libre llamado ITS (Incompatible Timesharing System), el cual fue 
diseñado y escrito por los miembrosdel laboratorio en lenguaje ensamblador, este 
sistema había sido hecho para una de las computadoras más grandes de aquella época: la 
Digital DPD-10. El trabajo de RMS era mejorar ese sistema. Aunque en ese tiempo no 
llamaban “Software Libre” a su software, pero era precisamente eso, cuando alguna 
persona externa quería instalar y utilizar su sistema con gusto se lo prestaban. Y al 
contrario, si notaban que alguien utilizaba algún programa interesante podían preguntar 
por el código fuente para modificarlo e incluso quitar partes de él para hacer un 
programa nuevo. 
Posteriormente se suscitaron algunos hechos que cambiaron las cosas, en el año de 1981 
la empresa llamada Symbolics contrató a la mayor parte de los hackers2 del laboratorio 
de AI (Inteligencia Artificial), a causa de esto la comunidad en la que habitaba RMS 
quedó desolada. En 1982, los administradores de AI Lab decidieron utilizar un sistema 
“no-libre” en la nueva DPD-10 que adquirieron, pero poco tiempo después se dejo de 
producir esta computadora, y con esto, todos los programas que habían integrado al 
sistema ITS quedaron obsoletos. 
11 
 
2 Puede decirse que Hacking significa explorar los límites de lo posible con un espíritu de sagacidad 
imaginativa. La mayor parte de los Hackers tienen en común la pasión lúdica, la inteligencia y la voluntad 
de exploración. 
Las computadoras más nuevas de esa época no utilizaban software libre, ya que todas 
tenían su propio sistema operativo, desde entonces las comunidades que compartían 
software quedaron prohibidas. 
Pasado esto, en el año de 1984 Richard M. Stallman dejó su empleo en el MIT para 
comenzar a trabajar en lo que es su propósito general hasta estos días: crear una 
comunidad nueva que se dedique a compartir software, como la comunidad en la que el 
se formó. 
Comenzó por escribir un sistema operativo, ya que es lo esencial para poner en marcha 
una computadora, pensó que debía ser compatible con Unix para que así a los usuarios 
no les fuera tan difícil migrar de un sistema a otro. El nombre que se le dio a este 
proyecto fue GNU (GNU's not UNIX) que es un acrónimo recursivo que se utilizó para 
decir “GNU No es UNIX”. 
El comenzó a trabajar con su proyecto de GNU en 1984 y lo primero que hizo fue un 
compilador que fuera capaz de trabajar en diversos lenguajes y plataformas, actualmente 
este compilador es conocido como GCC. 
En ese mismo año comenzó a trabajar en otro proyecto GNU llamado GNU Emacs, 
rápidamente hubo gente que se mostró muy interesada en utilizar su GNU Emacs, por 
esta razón hubo un problema a la hora de distribuir el software así que Richard les 
enviaba copias del software a cambio de ciento cincuenta dólares a todo aquel que no 
tenía manera de descargarlo de la red, fue así como comenzó su empresa para distribuir 
software libre y fue también el precedente de empresas que actualmente se dedican a 
distribuir sistemas Linux, basados en GNU. 
Todos los programas que son ejecutados en un sistema en GNU/Linux utilizan la 
librería de C de GNU para poder comunicarse con Linux, esta librería fue creada por un 
miembro de la Free Software Foundation (FSF), esta fundación sigue siendo la principal 
patrocinadora del proyecto GNU. También la shell (intérprete de comandos), que se 
utiliza en todos estos sistemas llamada BASH que es el acrónimo de Bourne again 
Shell, fue creada por un miembro de la FSF llamado Brian Fox, con ese acrónimo 
pretendían burlarse de la Bourne Shell que es la más común en sistemas UNIX. 
 
 
 
 
 
 
12 
1.3. GNU/Linux 
Para el año de 1990 casi estaba terminado el proyecto GNU, pero aún faltaba el 
componente más importante, el Kernel ó núcleo, que es el componente central. El 
Kernel de GNU en un principio se llamaría Alix -quien era una chica administradora de 
sistemas Unix-, después se acordó llamarlo Hurd3 por Michael Bushnell, principal 
desarrollador del Kernel, aunque llamó Alix a una pequeña parte del Kernel. 
Actualmente siguen trabajando en el Kernel Hurd, la idea que tienen es utilizar este 
Kernel en lugar del Kernel Linux para su sistema. 
 
En el año de 1991 un estudiante, en ese entonces universitario, Linus Benedict Torvalds 
quien insatisfecho con el sistema operativo MS-DOS, y además necesitado de dinero, se 
planteó la posibilidad de crear un sistema operativo que fuera compatible con Unix; lo 
que hizo fue modificar el núcleo de Minix y así, desarrolló el Kernel o núcleo llamado 
Linux. Lo llamó de esta manera ya que a Linus lo conocían con ese apodo en la 
universidad. Fue gracias a la colaboración de muchas personas que pudo integrarse el 
Kernel Linux con el sistema GNU y crear un sistema integrado, el cual no es 
simplemente una recopilación de programas. El proyecto GNU en conjunto con el 
Kernel Linux, dio como resultado un sistema operativo libre y completo. 
Gracias al Kernel Linux el día de hoy podemos ejecutar una versión del sistema GNU 
en nuestras computadoras, es por eso que se denomina GNU/Linux siendo el fruto de la 
combinación del sistema completo GNU con el Kernel Linux. Desafortunadamente, 
gracias a los medios de comunicación, mucha gente piensa que todo el mérito del 
sistema operativo GNU/Linux lo tiene Linus Torvalds, estamos tan acostumbrados a 
decir sólo “Linux”que a veces parecerá raro si lo llamamos como es debido, en este 
trabajo nos referiremos al sistema completo como GNU/Linux o tal vez sistemas 
GNU/Linux. 
 
1.4. Kernel Linux 
El Kernel Linux estuvo inspirado en un pequeño sistema Unix llamado Minix el cual 
fue hecho por Andy Tanenbaum, un catedrático alemán que simplemente buscaba la 
manera de instruir a sus alumnos en el uso de un sistema operativo de forma real. 
 
Minix era bueno, pero era sólo un sistema operativo utilizado como herramienta 
didáctica. El código fuente del sistema operativo desarrollado por Tanenbaum estaba 
disponible para cualquier persona que comprará su libro “Operating System”, fue así 
que muchos 13 
 
3 El GNU Hurd es una colección de servidores que desempeñan tareas propias del Kernel de Unix. 
estudiantes pudieron estudiar detenidamente cada línea de código y entender el 
funcionamiento de este sistema. Uno de esos estudiantes fue Linus Torvalds. Fue esa la 
primera vez que alguien dejó al descubierto su código fuente, ya que la mayoría de los 
vendedores de software no permitían este tipo de cosas. 
Como se dijo antes, aproximadamente fue a mediados de septiembre del año 1991 que 
Linus Torvalds lanzó su versión de Linux llamada 00.1, pero esta ni siquiera podía ser 
ejecutada, estaba escrita en lenguaje ensamblador y para poder ser utilizada se tenía que 
contar con acceso a algún sistema Minix para poder compilar esta primer versión, es por 
esto que no hubo anuncio alguno de la aparición de ella. 
Posteriormente, dio a conocer la versión oficial de Linux, llamada 0.02; llegado este 
punto, Linux podía ejecutar un intérprete de comandos Bash (Bourne Again Shell) y el 
compilador C de GNU llamado “gcc”, pero esto era prácticamente todo lo que podía 
realizar, y así paso por varias versiones antes de llegar a la 1.0 a finales del año 1993, 
este nombre, 1.0, es asignado al software que ha sido probado y está libre de errores. 
Además de todo lo anterior, Linux cumple con las normas oficiales de POSIX (Portable 
Operating System Interface) que es el Estándar Federal para el Procesamiento de 
Información. Esto quiere decir que cualquier aplicación de otras versiones de UNIX se 
podrá transportar con poca dificultad a Linux. 
Actualmente existen grandes distribuciones basadas en GNU/Linux y muchos usuarios 
las utilizan sin saber que son una versión modificada de GNU, como lo son Debian 
GNU/Linux y Red Hat Linux, las cuales compiten por tener el mejor software, ahora 
una instalación lleva sólo unos cuantos minutos, ya que estas potentes distribuciones 
soncapaces de detectar el hardware haciendo tan solo un par de preguntas al usuario. Es 
por esta y muchas otras razones que existe la cifra estimada de más de 20 millones de 
usuarios de GNU/Linux a nivel mundial. 
 
 
 
 
 
 
 
 
14 
1.4.1. Características 
GNU/Linux al ser compatible con Unix heredó características de él, a continuación se 
listan algunas de ellas: 
? Multitareas. Es la habilidad de poder ejecutar diversos programas al mismo tiempo, 
sin obstaculizar la ejecución de cada uno. La computadora es capaz de realizar diversas 
tareas, una a la vez, en tiempos tan breves que somos incapaces de darnos cuenta de la 
demora. 
? Multiusuario. Este sistema puede ser instalado es un servidor para conectar otros 
usuarios al mismo, y no es necesario comprar copias para darle servicio a los demás 
usuarios, además responde de manera simultanea a las solicitudes de varios usuarios que 
estén utilizando el servidor, y con la garantía de tener seguridad y privacidad entre ellos. 
? Eficiente. Este sistema tiene una memoria que sirve de protección entre los procesos e 
impide que un programa, que llegue a estar en mal estado, afecte por completo el 
sistema operativo. 
? Libre. Todo el código fuente se encuentra a la disposición de los usuarios, así que 
podemos modificar sin necesidad de un Service Pack para solucionar un problema. 
? Soporte. Al adquirir una distribución GNU/Linux podemos disponer del soporte de la 
empresa que la distribuye, además de todos los tutoriales en línea que encontramos y 
demás información para poder solucionar problemas. 
? Adaptación. Se puede personalizar tanto este sistema operativo que existen 
comunidades dedicadas a hacer sus propias distribuciones con fines didácticos. 
? Sistema de archivos. GNU/Linux es capaz de operar con una variedad enorme de 
archivos, puede leerlos, operar entre ellos, etc. 
? Multiplataforma. Este sistema operativo es soportado en plataformas que van desde 
una 386, 486, hasta Pentium4, AMD64, SPARC, RISC, etc. 
? Red. Desde sus comienzos GNU/Linux fue desarrollado para trabajar en red, el 
protocolo principal es TCP/IP, pero además soporta una amplia variedad de protocolos 
como NFS, Telnet, SMTP, etc. También puede trabajar en red con máquinas que tengan 
otros sistemas operativos como Windows 98 o XP sin alguna clase de conflicto. 
? Entorno gráfico. Se puede trabajar con o sin un entorno gráfico, el cual consume 
muchos recursos, y sí además contamos con poca memoria podemos trabajar sin 
entorno gráfico. Por el contrario si queremos usar un entorno de ventanas existen 
diversos gestores para ello, y entornos de escritorio como KDE o GNOME. 
15 
? Estable. GNU/Linux es muy robusto, esto quiere decir que si un programa falla no va 
a interrumpir el trabajo de otros usuarios, simplemente se desbloquea el programa que 
cause conflicto y se puede seguir utilizando el sistema sin mayor problema. Esto le 
permite al sistema trabajar durante periodos largos y sin interrupción sin la necesidad de 
reiniciar. 
 
1.5. Filosofía del software libre 
Actualmente las computadoras controlan cada vez más cosas, ellas se encuentran en 
cualquier lugar que podamos ver y hasta en los que no podemos ver, además son las 
encargadas de casi todo, desde cambiar la luz en los semáforos, hasta determinar si un 
archivo puede enviarse o no de una computadora a otra. Gracias al código, que es el 
conjunto de instrucciones con las cuales nos comunicamos con ellas, se pueden realizar 
este tipo de tareas y muchas otras. 
El software libre es el tipo de software que viene con el permiso para que cualquier 
persona pueda hacer uso de él, copiarlo y además distribuirlo, ya sea tal cual o hacerle 
modificaciones. Todo esto significa que el código fuente, con el cual fue hecho, está 
disponible para todo el mundo. 
El código escrito para ser software libre es el principal protagonista de este trabajo, ya 
que está sustentado en él, como lo es GNU/Linux, y derivados de él como PHP, 
Apache-www-server y MySQL; estas herramientas además de ser altamente estables, 
seguras y de gran desempeño, son libres, pero no libres simplemente en el sentido de 
darle un precio a dicho software -aunque sí reduce considerablemente el costo que se 
genera al comprar una licencia de software privativo o propietario-, el término “Libre” 
va más allá, es pensar en “libertad de expresión”. Software libre significa que podemos 
conocer el código con el cual fue hecho en la medida en que podamos ser capaces de 
modificarlo, es de esta manera que se convierte en libre. 
 
Podemos llamar software libre a aquel que tenga las siguientes libertades: 
• Si el usuario tiene la libertad de ejecutar el programa en cualquiera que sea su 
propósito. (Libertad 0). 
• Si hay libertad para modificar el programa y ajustarlo a sus necesidades, teniendo 
acceso al código fuente completo del sistema. (Libertad 1). 
• Si hay libertad de hacer y distribuir copias. (Libertad 2). 
• Si se tiene la libertad de distribuir versiones modificadas, de tal manera que todos 
podamos conocer las mejoras hechas al programa y poder utilizarlas. (Libertad 3). 
16 
“Por ejemplo, una «sociedad libre» está regulada por leyes. Pero hay límites que 
cualquier sociedad libre pone a esa regulación legal: ninguna sociedad que mantenga 
sus leyes en secreto podría llamarse, nunca, libre. Ningún gobierno que esconda sus 
normas a los gobernados podría incluirse, nunca, en nuestra tradición. El Derecho 
gobierna. Pero sólo, precisamente, cuando lo hace a la vista. Y el Derecho sólo está a la 
vista cuando sus términos pueden ser conocidos por los gobernados o por los agentes de 
los gobernados —abogados, parlamentos.” 
Software libre tiene varios significados, pero sólo uno de ellos es referente al precio, así 
es que es se considera libre en el sentido que se tiene un control susceptible de 
modificaciones y transparente, lo cual lo hace libre. 
Existe un movimiento de programadores dedicados a desarrollar software libre, 
basándose en el método de “copyleft”, que es implementado a través de una licencia 
GPL, el cual hace que un programa realizado para ser software libre se mantenga libre, 
esto quiere decir que si alguien toma el código, lo modifica y decide distribuirlo, está 
obligado a hacer libre el código de su software, esto se hace para poder garantizar que 
cualquier usuario pueda hacer uso de él. 
El mecanismo llamado “copyleft”4 es implementado a través de una licencia llamada 
GPL (Generic Public License) Licencia Pública General, está licencia fue creada a 
mediados de los años 80's por la Free Software Foundation y está orientada 
principalmente a proteger el uso, la modificación y la libre distribución de software, así, 
todo el software que se incluya bajo esta licencia está protegido de cualquier intento por 
quitar todas las libertades, antes mencionadas, a los usuarios, y quien implemente 
una nueva versión basada en software libre y llegue a ser publicada esta también deberá 
ser libre, ya que de lo contrario estará infringiendo el “copyright”. Existen también 
licencias tipo BSD de la distribución de software de Berkeley5, aunque esta licencia no 
hace nada de lo que hace la licencia GPL, además este tipo de licencias permiten el uso 
del código en software que no es libre. 
Nada de lo anterior impide que el software libre pueda ser comercializado, aunque 
siempre será más barato, además a final de cuentas acabará estando disponible 
gratuitamente, a través de libros o revistas que regalan el software y es perfectamente 
funcional. A diferencia del software privativo -software en que no se permite hacer 
modificaciones ni mucho menos hacer copias- como lo son empresas como Microsoft, 
Oracle, Sun, Apple, el software libre se empeña en crear buenas herramientas y no se 
basa solamente en la rentabilidad económica. El software libre busca que cada usuario 
encuentre solución a sus problemas, que cada tarea tenga su respectivo programa para 
resolverla, es poresto que podemos hacer modificaciones al código dependiendo de 
nuestras necesidades particulares. 
 
4 La idea fundamental del copyleft es autorizar la ejecución del programa, su copia, modificación y 
distribución de versiones modificadas. 
5 Berkeley Software Distribution, BSD. 17 
 
Figura 1.2. Software libre & Microsoft 
 
 
1.6. Distribuciones 
Existen diferentes tipos de versiones para cada componente de un sistema 
GNU/LINUX, como lo es el Kernel y las bibliotecas, casi siempre será suficiente tener 
una versión anterior a la más nueva para estar seguros de tener un sistema lo bastante 
estable y libre de errores. 
Lo que hacen los distribuidores de GNU/Linux es seleccionar versiones de cada 
componente que se necesite para cubrir las necesidades dependiendo de las tareas a 
realizar, con esto se quiere decir que cada componente no se escribe con el fin de 
pertenecer a alguna distribución en particular, es por eso que cada uno tiene su propia 
versión. Es así que una distribución forma un sistema operativo basado en GNU/Linux, 
como se mencionó antes existe una gran diversidad de ellas, pero las más comunes son 
las siguientes: 
 
• Slackware6 GNU/Linux 
• Red Hat7 GNU/Linux 
 
 
6 http://www.slackware.com 
7 http://www.redhat.com 18 
• Debian8 GNU/Linux 
• Mandrake9 GNU/Linux 
• Knoppix10 GNU/Linux 
 
El tipo de plataforma es la arquitectura sobre la que vamos a instalar nuestra 
distribución de GNU/Linux, para esto va a ser necesario conocer el hardware de nuestra 
máquina, para así adquirir una distribución de acuerdo a ella y a nuestras necesidades. 
 
 
1.7. Componentes de GNU/Linux 
1.7.1. Hardware 
Es la capa interna, en ella se encuentra el conjunto de piezas físicas que contiene el 
equipo de cómputo. 
 
1.7.2. Kernel 
El Kernel o núcleo interpreta las instrucciones que el usuario le da y las convierte en 
lenguaje máquina, posteriormente le da instrucciones al hardware acerca de lo que debe 
hacer con las mismas. 
Generalmente, el Kernel tiene dos versiones, una estable que está lista y libre de 
errores, lista para el desarrollo y que además ha sido probada por muchísimos usuarios, 
esta es la versión que podemos utilizar, también hay una en desarrollo, la cual utilizan 
los desarrolladores para hacer sus pruebas y ajustes, además de las mejoras que sean 
necesarias, es por esta razón que la versión en desarrollo es aún muy inestable. 
En GNU/Linux las versiones se enumeran de la siguiente manera: 
• X Indica que es la versión principal del sistema, esta versión presenta importantes 
cambios en la arquitectura, y hasta el momento existen la versión 1 y 2. 
 
8 http://www.debian.org 19 
9 http://www.linux-mandrake.com 
10 http://www.knoppix.net 
• Y Indica que es una versión secundaria, si tiene en ella un número par nos indica que 
está todavía en producción, y si tiene un número impar nos indica que es de desarrollo, 
por lo tanto estable. 
• Z Indica que esta revisión tiene revisiones, significa que se le han quitado errores de 
programación o tiene ya algún parche. 
Por ejemplo una versión en desarrollo podría ser una 2.8.x. Y una en producción podría 
ser la 2.4.x. Respectivamente X.Y.Z para cada número de la versión. 
 
1.7.3. Shell 
Cuando iniciamos una sesión, respondemos con nuestro nombre de usuario a Login, 
seguido de esto le damos una contraseña, si es correcta el sistema ejecuta un programa 
llamado Shell, el cual es el encargado de interpretar las órdenes que nosotros le 
indiquemos (usualmente por medio del teclado), una vez que haya interpretado la orden 
se la da al Kernel para que este la ejecute. Funciona entonces como una interfaz entre el 
Kernel y el usuario, nos proporciona herramientas para comunicarnos con el Kernel de 
sistema GNU/Linux. 
Básicamente sustituye los valores de las variables de Shell, por variables referenciadas. 
Después, a partir de los metacaracteres, genera una serie de nombres de archivo. 
Además, maneja las tuberías (pipeline) y la redirección de E/S, también hace 
sustituciones de órdenes y verifica si alguna se trata de un programa ejecutable o si es 
una orden interna de Shell. 
Shell ejecuta las órdenes haciendo una llamada al sistema, lo cual crea un proceso hijo 
(fork), después de esto sigue una llamada exe, la cual inicia el programa que requiere 
ejecutarse. Estas llamadas al sistema son el mecanismo de comunicación que tiene el 
hardware y los programas, en este caso Shell. Todas las llamadas al sistema son 
manejadas por el Kernel. 
El símbolo Shell se presenta en el sistema con el signo de dólar ($), seguido del cursor 
que es situado justamente al lado esperando alguna entrada. 
Ejemplo: 
login: Alma password: 
Last login: Tues Feb 2 14:22 from: 0 
$_ 
 
20 
1.8. Instalación 
En nuestro caso daremos una breve lista de pasos para la instalación de GNU/LINUX 
Slackware11, este puede ejecutarse en equipos 386 o superiores, los requerimientos son 
mínimos para esta clase de instalación, debemos tener un mínimo de 3GB de espacio en 
disco duro y 16MB en memoria RAM, procesador 386 y la versión de la distribución. 
Una vez que tenemos nuestro CD-ROM podemos comenzar la instalación, debemos 
verificar que el BIOS del sistema cuenta con la opción para arrancar desde CD. Una vez 
que introducimos el CD aparecerá una pantalla de bienvenida, posteriormente en la 
parte inferior izquierda de la pantalla aparece el indicador boot:_ 
A continuación el primer paso es seleccionar la configuración para nuestro teclado, en 
nuestro caso por ser configuración en español seleccionamos: es.map. 
Después de esto toca registrarnos en el sistema como root, que es quien administra el 
sistema, posteriormente el sistema nos entrega un Shell y podemos seguir con la 
instalación, como se muestra en la figura 4: 
 
 
Figura 1.3. Esta figura muestra un shell continuar la instalación. 
 
 
 
 
 
 
11 Esta distribución la podemos descargar desde su página oficial http://www.slackware.com 
 
21 
Posteriormente, debemos crear las particiones necesarias para nuestra instalación, el 
administrador deberá tener un esquema ya pensado, para darle mayor funcionalidad al 
sistema. En la mayoría de los casos las particiones más grandes son las que albergan los 
directorios /usr y /home. 
El tipo de instalación que llevaremos a cabo ha sido pensado para tener dos sistemas 
operativos, en este caso Windows, podemos consultar las particiones con el comando 
p este imprime en pantalla las particiones que tenga nuestro sistema. Con el comando 
n creamos una partición nueva, la cual será destinada para Slackware. 
Después de realizar las particiones se prosigue con la instalación. El sistema nos 
devuelve una vez más la pantalla para selección de teclado, simplemente nos 
desplazamos a la opción KEYMAP y le damos aceptar. 
Posteriormente, sólo resta elegir el tipo de instalación, será por medio de CD, así que 
elegimos el recurso para realizar este paso y le damos OK. Una vez que se ha detectado 
el CD, el asistente nos pide seleccionar los paquetes que vamos a instalar, por ejemplo 
el tipo de resolución y otros aspectos que dependen de las características especificas de 
cada computadora. 
Lo más importante es seleccionar el sistema que será visible en el menú de booteo del 
sistema operativo, comenzamos agregando el sistema Windows, sólo debemos elegirlo 
en el menú. El asistente preguntará el nombre que deseamos darle a esta partición, 
puede ser cualquiera, en este caso se quedara con el nombre de Windows, ahora 
debemos agregar el sistema Linux en el menú de configuración, para esto elegimos 
dicha opción y le damos OK. 
De igual manera nos pedirá el nombre que deseamos que se muestreen el menú de 
booteo. En caso de tener más sistemas, el procedimiento se lleva a cabo de igual 
manera. 
Lo que resta es especificar el tipo de dominio de nuestra red, en caso de contar con él, 
indicar la IP, la mascara de red, y el servidor de nombre de dominio o DNS y otros 
aspectos, por ejemplo, la zona horaria, el tipo de interfaz gráfica, KDE12 o GNOME13, 
posteriormente, debemos elegir una contraseña para el usuario root, el cual es el 
administrador. Y esto es todo, para finalizar debemos reiniciar nuestro equipo y el 
sistema extrae la charola del CD para retirar nuestro disco de instalación. 
 
12 KDE (K Desktop Environment) es un entorno de escritorio gráfico. La 'K' originalmente representaba 
la palabra "Kool", pero esto más tarde se olvido. Ahora significa simplemente 'K' que es anterior a la 'L' 
de Linux en el alfabeto. Actualmente podemos encontrar el KDE en muchas distribuciones Linux. 
13 GNOME es también un entorno de escritorio para sistemas operativos de tipo Unix bajo tecnología X 
Window, se encuentra disponible actualmente en más de 35 idiomas. Además forma parte del proyecto 
GNU. 
22 
Al reiniciar el equipo, el gestor de arranque LILO14, nos muestra los sistemas operativos 
con los que contamos, y de los cuales podemos elegir uno para trabajar, esto se muestra 
en la siguiente figura: 
 
 
Figura 1.4. Podemos elegir entre los dos sistemas operativos. 
 
¡Listo! Tenemos un sistema dual. 
 
1.8.1. Niveles de ejecución 
Podemos elegir diversos niveles de ejecución, esto es para indicar la rutina de inicio o 
apagado que deseamos tener en nuestro equipo, a continuación se muestra la lista de 
niveles, estos se encuentran en el archivo /etc/inittab: 
 
 
 
 
 
23 
 
14 Lilo (Linux Loador) almacena información sobre el Kernel o el sistema operativo, que se puede cargar 
en el MRB. El archivo de Lilo es /etc/lilo.conf, y se puede acceder a él mediante cualquier editor textos. 
 
 
Figura 1.5. Niveles de ejecución. 
 
Además de esto niveles de ejecución, también podemos apagar el sistema con varios 
comandos: 
poweroff 
halt 
shutdown 
reboot 
init 
telinit 
Estos nos permiten apagar o reiniciar el sistema15. 
 
1.9. Aplicaciones y usuarios 
En esta capa se encuentran el usuario y todos los programas en conjunto con las 
aplicaciones que se le hayan agregado al sistema (manejadores de bases de datos, 
procesadores de texto, hojas de cálculo y los lenguajes de programación). A 
continuación 
 
 
15 Una de las características más importantes de Linux es el método altamente configurable que se usa 
para el inicio del sistema operativo, así cómo la parada del sistema que finaliza los procesos de forma 
organizada y configurable, esto facilita muchos problemas. 
24 
 se muestra un diagrama de los componentes del sistema completo, es la manera en que 
está conformado. 
 
 
 
Figura 1.6. Diagrama de componentes del sistema. 
 
 
1.10. Sistema de archivos 
GNU/Linux tiene un sistema de archivos jerárquico y cuenta con una estructura de tipo 
archivo/directorio, lo que significa que está representado en forma de árbol. La parte 
superior de este árbol es el directorio de root y debajo de él están los directorios 
restantes. 
 
1.10.1 Directorios 
/etc Generalmente contiene los archivos de configuración, pero el contenido de este 
directorio puede variar de un sistema a otro, por ejemplo en BSD estos programas están 
contenidos en /sbin. 
/boot Este contiene los archivos necesarios para que arranque el sistema. 
/dev Aquí se encuentran los archivos que representan los dispositivos hardware en el 
sistema. 
25 
/lib Este directorio contiene los archivos de bibliotecas compartidas por los programas 
de usuario. 
/bin Aquí se encuentran los programas de aplicaciones para el usuario. 
/sbin Contiene los programas que se utilizan para tareas administrativas principalmente. 
/home Contiene los directorios locales para los usuarios. 
/mnt Este archivo contiene los subdirectorios montados. 
 
1.11. Cuentas de usuarios 
Se les llama cuenta de usuario o cuenta shell, todas ellas se incluyen en el archivo 
/etc/passwd, este archivo contiene la información de autenticación básica de los 
usuarios, como el nombre y su contraseña. 
El nombre de usuario es su identificador personal dentro del sistema y su contraseña es 
la clave única de acceso al sistema, esta sólo es conocida por el dueño de dicha cuenta. 
 
1.12. Comandos básicos 
Un comando puede definirse como una instrucción directa al sistema operativo. Se 
pueden hacer muchas cosas con un mínimo de pulsaciones de teclas. La mayoría de los 
comandos se escriben con minúsculas, aunque existen excepciones. 
La sintaxis de los comandos es la siguiente: 
 
comando arg1 arg2… argn 
 
Como puede observarse primero se escribe el comando que se va a ejecutar, seguido de 
los argumentos (llamados también parámetros); estas palabras le indican a los comandos 
cómo deben actuar, el comando puede contener uno o varios argumentos. 
 
26 
 
$ rm doctos libros 
En este ejemplo doctos y libros son argumentos del comando rm. El comando rm sirve 
para eliminar archivos, en el caso de este ejemplo va a eliminar los archivos doctos y 
libros. Debemos tener en cuenta que la primer palabra escrita en la línea de comandos 
debe ser el comando que se quiere ejecutar y también que los argumentos van separados 
solamente por espacios y no por comas. 
Cuando es requerido ejecutar varios comandos en la misma línea, basta con separarlos 
con punto y coma (;). 
• cd En un momento dado solamente puede existir un directorio activo, el cual es 
llamado directorio de trabajo. Este comando nos permite desplazarnos de un directorio a 
otro. 
Ejemplo: 
$ cd/usr 
• chmod Nos permite hacer modificaciones en los permisos de un archivo. Para esto es 
necesario contar con privilegios de escritura sobre dicho archivo o directorio. Los 
permisos son de gran importancia para un administrador de sistemas, ya que si se 
configura de manera incorrecta pueden causar muchos problemas en su sistema. 
Los permisos tienen el control sobre quién tiene acceso de lectura, escritura y ejecución 
sobre los elementos en un sistema de archivos, directorios, etc. Este control es dividido 
en varios segmentos para ofrecer a cada usuario un acceso mejor refinado dependiendo 
de cada uno. 
Los permisos son divididos en tres diferentes bloques, en orden, estos bloques se 
refieren a los permisos para el propietario del archivo, los permisos para el grupo y los 
permisos para otras personas. Cada bloque de tres se estructura de igual manera, aunque 
el contenido pueda diferir en cada caso. Las partes individuales son bits, es así que 
pueden estar presentes o no. 
El primer bit determinará si la persona podrá o no leer el archivo, el segundo bit dirá si 
la persona puede o no escribir en el archivo y el tercero nos dirá si la persona podrá o no 
ejecutar el objeto. Si el bit está presente en los permisos, cada uno se representa con una 
letra: 
 
• r Permisos de lectura. 
 
27 
• w Permisos de escritura. 
• x Permisos para ejecución. 
Cuando el permiso no se encuentra presente se va a representar con un guión (-). 
A continuación se da un ejemplo de un binario en el cual el propietario cuenta con todos 
los permisos, lectura, escritura y ejecución, el grupo tendrá acceso simplemente de 
lectura y ejecución, y todos los demás usuarios sólo tendrán acceso de lectura: 
rwxr-xr-- 
• cp Copia archivos. 
• lp Sirve para imprimir los archivos en la impresora del sistema. 
• file El comando nos muestra el tipo de archivo. 
• find Con este comando podemos encontrar otros archivos. 
• mkdir Este comando nos permite crear nuevos directorios. 
• rmdir Nos permite borrar directorios. 
• ls Hace un listado del contenido del archivo. 
• pwd Nos muestra la ruta del directorioen donde estemos posicionados en el sistema 
de archivos. 
• rm Borra el archivo. 
• rm –r Borra un directorio completo. 
• vi Este comando nos sirve para editar los archivos. 
• mv Renombra un archivo. 
• hostname Nos dice cuál es el nombre del servidor. 
• uname Este comando nos da información sobre la distribución que estemos utilizando. 
• pwd Nos dice el directorio actual de trabajo, nos indica la ruta absoluta. 
 
• touch Nos permite crear archivos vacíos. 
 
 
 
28 
• mkdir Nos permite crear un nuevo directorio. 
 
1.12.1. Opciones de comandos 
En la mayoría de los comandos se permiten opciones especificadas en la línea de 
comandos, que sirven para modificar la operación del comando, como se muestra en el 
siguiente ejemplo: 
$ ls –l /usr 
 
En este ejemplo podemos ver el comando ls el cuál nos sirve para listar los archivos de 
un directorio, con la opción –l nos muestra una representación en formato largo de los 
mismos archivos, mostrándonos más datos como el nombre y los detalles de archivo. 
Debemos observar que se utiliza un guión (-) para hacer diferencia en las opciones de 
los argumentos. –usr es el argumento que nos indica el archivo que se va a listar con ls. 
Las opciones se ponen después del comando y delante de los argumentos. 
A continuación se muestra el orden que deben llevar los comandos con opciones: 
1.- Nombre del comando 
2.- Opciones precedidas de un guión (-) 
3.- El argumento o argumentos 
 
 
1.12.2. Caracteres comodín 
La tarea de este tipo de caracteres es sustituir a otro u otros caracteres, puede ser porque 
no recordamos exactamente el nombre de algún archivo o simplemente por comodidad, 
otra razón puede ser el querer realizar alguna tarea con todos los archivos que tengan 
algo en común, por ejemplo utilizar todos aquellos que terminen con “.cpp”. 
Existe tres tipos distintos de comodines: *, ? y […]. 
Ejemplo: 
 
29 
$ ls *.cpp 
car.cpp kik.cpp bark.cpp 
En este caso utilizamos el comando ls para listar todos los archivos o directorios que 
tengan extensión “.cpp”, lo que quiere decir que al utilizar al comodín *, este sustituye 
el resto de caracteres anteriores a la extensión. 
Ejemplo: 
$ ls ejem? 
ejem1 ejem2 
En el ejemplo anterior podemos observar que el carácter comodín de signo de 
interrogación ?, sólo puede sustituir a un carácter. 
Ejemplo: 
$ ls *[8-10] 
ejemplo.8 ejemplo.9 ejemplo.10 
El ejemplo anterior nos muestra que este comando puede ser utilizado para sustituir 
caracteres específicos, como se puede ver en lo anterior, primeramente con el comando 
ls pedimos un listado de archivos que en su nombre finalice con un carácter 
comprendido en el rango 8-10, es decir, comprendido por 8, 9 y 10.Los caracteres 
comodines pueden ser utilizados en conjunto con cualquier comando. 
 
1.12.3. Cambios de permisos por el método octal 
Primero se dividen los permisos en bloques de tres considerándolos de manera 
individual, cada bit de permiso se suma al valor de bloque: 
El permiso para lectura suma 4. 
El permiso para escritura suma 2. 
El permiso para ejecución suma 1. 
 
30 
Como en el ejemplo anterior, se considera cada bloque de manera separada, el primer 
bloque rwx será 4+2+1 ó 7, el segundo bloque r-x será 4+0+1 ó 5 y el último r—será 
4+0+0 ó 4. 
De tal manera que si deseamos poner privilegios al propietario, permisos de lectura y 
ejecución para el grupo, y permisos de lectura para los demás usuarios se escribe de la 
siguiente manera: 
$ chmod16 751 archivo 
 
 
1.13. Rutas absolutas y relativas 
 
 
1.13.1. Ruta absoluta. 
 
Cuando conocemos el nombre exacto de la ruta de acceso completa a algún directorio, 
podemos cambiar a ese directorio con un solo comando, estos comandos inician con el 
símbolo /. Por ejemplo: 
 
cd /usr/alma/doctos 
 
Para cambiar al directorio de root escribimos: 
 
cd / (el símbolo / nos indica el punto más alto de toda la estructura de archivos). 
 
 
 
1.13.2. Ruta relativa. 
 
Esta se utiliza cuándo queremos cambiar a un subdirectorio desde el directorio actual, 
aunque en este caso ya no se necesita comenzar con el símbolo /. 
 
Ejemplo: 
 
cd …/.. 
 
 
 
 
31 
 
 
 
 
 
16 El comando chmod nos permite manipular los permisos a nuestro gusto, consta de tres operadores; “+” 
para agregar permisos, “-“ para quitar permisos y “=” para asignar permisos. 
1.14. Consultando ayuda del sistema 
 
Este sistema contiene un conjunto de manuales en línea con información de los 
comandos y todas sus opciones. 
Con el comando man17 podemos acceder a esa información: 
 
$ man ls 
 
También podemos acceder con el comando man-man para tener información sobre 
cómo utilizarlo. 
 
 
Las páginas de man se organizan en diferentes secciones sobre los comandos que 
pueden ejecutar los usuarios desde shell, como lo son comandos para administración de 
sistemas, formatos de archivos, llamadas a bibliotecas c, etc. 
 
Se utiliza el símbolo / para mover el cursor de manera rápida en la información deseada, 
por ejemplo si estamos en la página man del comando df, puede interesarnos conocer el 
tamaño de los bloques que tengan 512 byte por bloque, en lugar de repasar toda la 
página man podemos simplemente escribir lo siguiente: 
 
/512 
 
 
Con este comando indicamos que el paginado debe avanzar hasta encontrar el string que 
buscamos: 512. Así, para encontrar el siguiente string simplemente escribimos /. 
 
Existen comandos como apropos, whatis e info que nos sirven de ayuda, mostrando 
también información relacionada con el sistema. 
 
 
 
1.15. Trabajo con archivos 
 
 
1.15.1 Cat 
 
Existe una manera estándar para presentar uno o más archivos y es mediante el 
comando cat. 
 
cat nombrearchivo1 nombrearchivo2… 
 
 
32 
 
17 Este el primer comando Unix que debemos conocer, man (abreviatura de manual) nos muestra 
documentación en línea sobre cualquier comando en particular, por ejemplo man cd muestra 
documentación del comando cd para cambiar de directorio. 
cat es un sinónimo de presentar (display), con la opción –n se numeran todas las líneas, 
incluidas las que estén en blanco. 
 
 
1.15.2. More 
 
Con este comando podemos indicar más de un archivo en el comando, además nos 
proporciona una manera de retroceder dentro de las páginas. Ejemplo: 
 
 
more archivo1 archivo2 
 
 
1.15.3. Head 
 
Con el comando head podemos presentar sólo las primeras líneas de un archivo. 
Ejemplo: 
 
head nombrearchivo 
 
 
Normalmente head presenta un máximo de 10 líneas. 
 
 
 
1.15.4. Pico 
 
Este programa nos permite editar archivos de texto, y nos presenta un menú en la parte 
inferior que sirve de ayuda para manipular este editor. 
 
 
1.16. Redireccionamiento 
 
 
Existen una entrada y una salida estándar en GNU/Linux, el intérprete de comandos 
configurará estos archivos para que apunten al teclado, en el caso de stdin o al monitor 
en el caso de stdout. Existe un gran número de comandos que utilizan la entrada 
estándar para tomar sus datos y la salida estándar para mostrarlos en pantalla. 
 
 
1.16.1 Redireccionamiento de salida 
 
 
El intérprete de comandos nos permite redireccionar la salida estándar hacia un fichero 
utilizando el símbolo >. Ejemplo: 
 
33 
 
$ ls > lista 
 
 
Manda la salida del comando a un archivo con nombre “lista”, así el resultado no se 
imprime en la pantalla sino que puede verse en el archivo que se le indicó. 
 
 
 
1.16.2. Redireccionamiento de entrada 
 
Utilizando el carácter menor que < podemos redireccionar un archivo hacia un 
programa: 
 
$ cat < lista 
 
De esta manera el comando manda el archivo llamado “lista” hacia el programa cat y lo 
muestra en pantalla. 
 
 
 
1.17. Filtros 
 
Los filtros retienen las cosas que no queremos ver y deja pasar las que sí queremos, un 
ejemplo de ello es el filtro grep, el cual suprime las líneas que no queremos y deja pasar 
solamente las que tienen el patrónque se haya indicado. 
 
 
 
 
 
1.18. Comando básicos de red 
 
Cuando entramos al sistema, existen comandos que pueden informarnos acerca de otros 
usuarios, podemos ver los que están en un momento dado en el sistema, a qué hora se 
conectaron y qué hacen, utilizando el comando who, este nos muestra un listado de los 
usuarios conectados. 
 
 
 
Otro comando que podemos utilizar es finger, este nos muestra el nombre del registro, 
el nombre completo de los usuarios, los tiempos de espera del usuario y la hora de 
entrada del usuario. Su sintaxis es la siguiente: 
 
 
finger nombre_usuario 
 
 
34 
1.18.1. Mail 
 
 
Este comando nos permite enviar un correo electrónico a un usuario de manera sencilla 
y rápida, simplemente escribimos lo siguiente: 
 
mail usuario-destino 
 
 
 
1.18.2. Write 
 
Este comando nos permite comunicarnos, unos con otros usuarios, de manera directa a 
través de la terminal. 
 
write nombre-usuario 
 
 
Con el comando mesg podemos habilitar o inhabilitar la capacidad de los usuarios para 
acceder a su terminal. Por ejemplo: 
 
$ mesg n 
 
Significa que no está habilitada la opción para recibir mensajes. 
 
 
$ mesg y 
 
El anterior indica que sí está habilitada la opción para recibir mensajes. 
 
 
 
1.19. Procesos 
 
 
Un proceso18 es un programa en ejecución, por ejemplo cada uno de los comandos antes 
mencionados son programas escritos para realizar alguna función. 
 
Con el comando ps podemos ver un informe completo del estado del sistema, con ps u 
podemos ver los procesos que pertenecen al usuario actual, con ps –fea podemos ver los 
procesos que están ejecutándose en el sistema pero en formato largo. 
 
 
 
35 
 
 
18 El número máximo de procesos que pueden ser creados en Linux está limitado solo por la cantidad de 
memoria física presente. 
Un proceso tiene las siguientes propiedades: 
 
 
• Un identificador de procesos (process ID) 
 
• Un identificador de procesos padre (PPID), este número nos indica cuál fue el 
proceso que creó al proceso en cuestión. 
 
• Un estado. En algunos momentos los procesos continúan existiendo en el 
sistema, pero pueden estar sin hacer nada, podrán estar esperando que se les 
envíe una señal para volverse nuevamente activo, básicamente pueden estar en 
estado dormido (S) o en ejecución (R), así como estado zombie (Z) corriendo de 
manera independiente. 
• Un dueño. Este es generalmente la persona que lo ejecuta. 
 
• Una prioridad. Esta define la importancia que tiene dicho proceso. 
 
 
 
1.20. Respaldos19 
 
 
1.20.1 Tar 
 
Este comando nos permite almacenar y restaurar archivos, básicamente sirve para hacer 
copias de seguridad. Las opciones para tar son las siguientes: 
 
• c Crea una copia de seguridad. 
 
• v Nos muestra todos los archivos copiados. 
 
 
 
 
• f Nos permite especificar el archivo o dispositivo en el cual se va a copiar. 
 
 
Ejemplo: 
tar (opciones) arch.ar arch 
 
 
 
 
36 
 
 
19 Los respaldos se pueden clasificar en copias de información (Backups) y en duplicados de información 
(Implementación RAID). 
1.20.2. Gzip 
 
 
Nos permite comprimir un archivo, lo cual significa que va a recodificar el contenido 
para hacer que ocupe el menor espacio posible y devolverlo a su tamaño original cuando 
se requiera. Existen diferentes niveles de compresión disponibles que van del 1 al 9. 
Utilizamos 1 cuando queremos una compresión rápida, hasta llegar a 9 si lo que nos 
interesa es un archivo lo más pequeño posible. 
 
 
Para descomprimir un archivo utilizamos uncompress20, si el archivo que vamos a 
descomprimir tiene la terminación .z escribimos gunzip. Si el archivo a descomprimir 
termina con .gz tecleamos Intro hasta que se indique, los archivos que vamos a 
descomprimir deberán terminar en .z o .gz, al descomprimirlos se suprimen estas 
terminaciones al nombre del archivo. 
 
 
 
1.21. FTP (File transfer protocol) 
 
FTP es un programa que nos permite transferir archivos entre dos sistemas a través de 
Internet, se puede utilizar en cualquier sistema que admita el protocolo FTP, no tiene 
que ser GNU/LINUX o UNIX, lo cual hace de este programa uno de los más utilizados, 
aunque no es muy confiable porque deja pasar información en texto claro. 
 
Es una aplicación interactiva, por lo cual es necesario que el usuario introduzca 
información, primero hay que ejecutarlo y después de hacerlo se accede a la línea de 
comandos del cliente de ftp donde se introduce alguno de los comandos que hay 
disponibles, los cuales listo a continuación: 
 
 
• close. Este finaliza la conexión ftp con el sistema remoto, pero no cierra el 
cliente ftp. 
 
• open. Este abre la conexión ftp en el sistema remoto que se indica. 
 
• ascii. Utiliza una transferencia de archivos en modo ascii. 
 
• binary. Utiliza una transferencia de archivos en modo binario. 
 
• cd. Hace un cambio de directorio en el sistema remoto. 
 
 
 
37 
 
 
20 Los comandos compress/uncompress nos sirven para la compresión de archivos .z 
• get. Nos permite descargar archivos. 
 
• help. Nos muestra una lista de comandos que son válidos. 
 
• put. Nos permite transferir el archivo al sistema remoto. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38 
1.22. Resumen general capítulo I 
 
 
Como pudimos ver, GNU/Linux fue creado gracias al trabajo en conjunto de mucha 
gente preocupada por crear un sistema que pudiera dar solución real a cada uno de los 
problemas presentados por los usuarios. Además de ser libre, pero no en el sentido de 
poner precio, libre en el sentido de tener a la mano el código para poder hacer 
modificaciones de acuerdo a sus necesidades. Mucha gente colaboró entre sí para poder 
crear este sistema operativo tan completo y robusto que es ahora. Aún en estos días, 
muchas personas continúan colaborando con este proyecto ya que cada día surgen más 
necesidades por resolver. 
 
En este primer capitulo además de la historia de GNU/Linux y lo que es el software 
libre, así como el significado de la filosofía de software libre. Se dio a conocer lo que es 
el Kernel Linux y sus principales características, sus principales distribuciones y 
componentes, además de cómo está conformado un sistema de archivos. Hicimos una 
instalación tradicional, mediante CD, particiones hechas pensando en tener dos sistemas 
corriendo en una misma máquina, en este caso GNU/Linux Slackware y Windows. 
También se analizó qué es una cuenta de usuario y comandos básicos para acceder al 
sistema, cómo obtener ayuda del sistema, lo que son los comandos básicos de red, lo 
que es un proceso, también se mostraron comandos para realizar respaldos, y por último 
el programa FTP y para qué sirve. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CAPÍTULO II 
 
EDITORES PARA CREAR PÁGINAS WEB, 
 
SERVIDORES DE WWW Y PROGRAMACIÓN CON PHP 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40 
2.1. Introducción 
 
 
La red mundial de redes de computadoras que comparte información a través de un 
conjunto de protocolos llamada Internet, ha sido transformada de manera impresionante, 
comenzó como un experimento a finales de los años setenta, el objetivo fue construir 
una red de computadoras que a pesar de poder perder varias máquinas esto no afectara 
la capacidad de comunicación entre las computadoras restantes. La defensa de los 
Estados Unidos estaba interesada en construir redes que pudieran hacer frente a un 
ataque nuclear, de ser esto necesario, es por ello que los fondos provenían de aquí. 
 
Este experimento resulto un éxito, aunque tenía limitaciones, con la aparición de los 
módems de alta velocidad algunas personas y organizaciones comenzaron a conectarse 
a la Internet, a pesar de esto, Internet arrancó totalmente aproximadamente en el año 
1993. 
 
Los miembros de la Internet originaltenían la filosofía de un intercambio libre y 
gratuito, así que pusieron a disposición de usuarios inexpertos documentos electrónicos 
y software de manera gratuita. 
 
Al principio, la información sólo era texto ASCII1 y sobre títulos académicos, nada que 
ver con todo lo que encontramos ahora, fue por esto que un grupo de científicos del 
Laboratorio Europeo de física de partículas (CERN) hicieron un lenguaje de escritura y 
un sistema de distribución hecho para compartir y crear documentos electrónicos con 
capacidad multimedia, usando como medio la Internet. Fue así como nació el Lenguaje 
de marcado de hipertexto (HTML), el software para navegación y la World Wide Web 
(WWW). 
 
HTML hace posible la unificación entre imágenes, texto y sonido, con los sistemas de la 
World Wide Web, además de habilitar el enlace de hipertexto con el cual se conectaban 
de manera automática los documentos en cualquier parte del mundo, su software hace 
posible acceder a recursos de Internet como archivos FTP2. 
 
Con la Internet es posible el gran intercambio de información y de comercio 
internacional, además de ser el lugar predilecto para muchos como medio de 
interacción social. 
 
 
Un servidor Web puede definirse como un programa que está corriendo sobre nuestro 
servidor, este programa escucha las peticiones que son enviadas por medio de HTTP, 
posteriormente las atiende, dependiendo del tipo de petición que se haya hecho, el 
servidor buscará en una página Web lo que se requiera, o bien va a ejecutar un 
programa en el servidor. Ya sea de un modo o de otro, lo que hace es devolver el 
resultado HTML al navegador o al cliente que haya realizado la petición. 
 
1 ASCII es el juego de caracteres por defecto en Linux e incluso Windows lo respeta en cierta medida. 
2 Para el manejo de archivos FTP contamos con comandos, los básicos son: Open que abre una sesión con 
el ftp seleccionado, Close a su vez cierra la sesión, Get sirve para bajar los ficheros del servidor remoto de 
FTP. 41 
 
Básicamente lo que hace un servidor Web es cargar el archivo y enviarlo a través de la 
red para hacerlo llegar al usuario, en este intercambio tiene lugar el navegador y el 
servidor, los cuales se comunican a través de HTTP. 
 
Para hacer más productiva la capacidad de entrega de páginas HTML podemos hacer 
uso de diversas tecnologías como lo son los scripts hechos con lenguajes como PHP, 
estos se incrustan en el código HTML, de los cuales hablaremos un poco en este 
capítulo, además de cuestiones de seguridad SSL. 
 
En este trabajo veremos lo que es el servidor Web Apache, y por qué es tan utilizado, 
existen diversas opciones además de este servidor, pero Apache ha demostrado ser 
bastante robusto y de alta seguridad, además de que puede ser configurable en diferentes 
entornos de trabajo y se encuentra disponible en varias plataformas, este incluye el 
código fuente del servidor y lo más importante es que es gratuito. ☺ 
 
Es, por esta y otras razones, actualmente el servidor Apache uno de los más utilizados, 
además es muy fácil de obtener, podemos descargarlo a través de su sitio oficial: 
http:www.apache.org. 
 
El hecho de instalar un servidor Web en nuestra computadora nos permitirá montar 
nuestra propia página Web sin la necesidad de adquirir un hosting (alojamiento para 
páginas web), y además podremos probar los sistemas que estemos desarrollando de 
manera local, la instalación de Apache es bastante sencilla, está disponible tanto para 
GNU/Linux como para Windows. Cualquiera de las dos versiones es muy sencilla de 
instalar. 
 
 
En la siguiente figura se muestra trabaja un servidor Web. 
 
 
Figura 1.1. Servidor web. 
 
 
 
 
42 
En este capítulo también abordaremos otra parte que resulta muy importante a la hora de 
hacer páginas web con contenido dinámico, esto se logra con PHP, este es un lenguaje 
de programación, su nombre originalmente viene de PHP Tools o Personal Home Page 
Tools, y se conoce a PHP como el acrónimo de Hipertext Preprocessor, su principal 
función, es como antes mencionamos, proporcionar características dinámicas a una 
página web. 
 
PHP es un lenguaje de programación gratuito y es además independiente de la 
plataforma que estemos utilizando, es un lenguaje muy rápido y contiene una librería 
muy amplia de funciones, así como documentación suficiente para llevar a cabo 
diversas tareas, otra característica importante es el hecho de poder combinarse con bases 
de datos creadas con MySQL. 
 
PHP también tiene como característica principal el hecho de poder trabajar en conjunto 
con HTML. 
 
La creación de PHP está muy ligada también al proyecto GNU, al igual que GNU/Linux 
su desarrollo depende de muchos programadores alrededor de todo el mundo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43 
2.2. World Wide Web 
 
 
World Wide Web es un sistema de información global que posee las siguientes 
características: es dinámico, interactivo, gráfico, distribuido, basado en hipertexto, 
contiene plataforma de enlaces cruzados y se ejecuta desde Internet. 
 
El estar basado en hipertexto significa que en lugar de leer un texto siguiendo una 
estructura lineal y rápida, será posible ir de un punto a otro de manera muy sencilla, 
para obtener más información y regresar de nuevo al punto de inicio, es decir, tener 
libertad para desplazarnos como mejor nos convenga. 
 
Otra razón por la cual es tan popular, es su capacidad de presentar en pantalla texto y 
gráficos a la vez, esto nos proporciona además sonido y video, todo incorporado es una 
interfaz navegable de manera sencilla, sólo tenemos que pasar de una página a otra o de 
un vínculo a otro en diferentes sitios o servidores. 
 
Lo único indispensable es contar con un acceso a Internet, y contar con una aplicación 
comúnmente conocida como browser o visualizador (Mozilla3, Firefox4, Nestscape5, 
Internet Explorer, etc.), ya que independientemente del sistema operativo con el cual 
trabajemos la WWW no está limitada a un tipo en particular. 
 
La mayor parte de las aplicaciones hechas para Internet comenzaron a funcionar en 
sistemas UNIX. 
 
La información transmitida ocupa una inmensa cantidad de espacio, sobre todo 
tratándose de multimedia como imágenes, sonido y video, es por esto que es necesario 
contar con suficiente espacio en disco duro. WWW tiene gran éxito debido a que 
tenemos acceso a muchos sitios en los cuales la información se encuentra distribuida, 
cada sitio cuenta con suficiente espacio para almacenar la información que publica. 
Como usuarios, al visitar algún sitio y posteriormente acceder a otro, recuperamos el 
espacio que haya sido ocupado en disco duro. Además el contenido es dinámico, es fácil 
hacer actualizaciones a la información, es por esto que cuando consultamos algo 
podemos estar seguros de que la información siempre es actual. 
 
El protocolo que se utiliza para manejar la información es a través de HTTP (Protocolo 
de transferencia de hipertexto) mediante Internet. Este protocolo es sencillo y permite 
transferir de manera rápida y eficaz documentos de hipertexto en Internet, a través de 
diversos servidores. Existen además otras formas de distribuir la información, por 
ejemplo, a través de FTP, Telnet, correo electrónico, etc. 
 
 
 
3 http://www.mozilla.org 
4 http://www.firefox.org 
5 http://www.netscape.com 44 
Ninguna entidad podría llamarse dueña del WWW, aunque el CERN6 que fue el lugar 
donde tuvo inicio es quien soporta y define los lenguajes y protocolos que lo 
conforman. Así, es que el CERN es lo más aproximado a un dueño, ya que establece 
estándares y reglas dentro de él. 
 
Para la publicación de documentos Web necesitamos un servidor que provea los 
documentos, así como medios de información al visualizador que haga una solicitud.Cada vez que alguien quiera tener acceso a la información el visualizador llama al 
servidor y este le hace llegar al documento requerido. Un servidor Web usa el protocolo 
HTTP para esto. 
 
Cuando un usuario quiere tener acceso a la información, debe indicar al servidor hacia 
donde dirigirse mediante un URL, el cual es un apuntador que va hacia cierta parte de la 
información localizada en la Web, ya sea un documento Web, un archivo FTP, o un 
correo electrónico. El URL es un método para localizar la información y poder acceder 
a ella mediante el visualizador, este contiene datos que sirven de referencia para llegar a 
la información como lo es el tipo de protocolo (HTTP, FTP, etc), el nombre del equipo 
anfitrión y el directorio donde se aloje dicho archivo. 
 
 
 
 
 
 
2.3. Html 
 
HTML son las siglas de HyperText Markup Language o Lenguaje marcador de 
hipertexto, el cual está basado en el SGML Standard Generalizad Markup Language o 
Lenguaje marcador estándar generalizado. HTML no es un lenguaje para dar 
simplemente formato a las páginas, este se concentra en el contenido del documento, 
sirve para delinearlos. Partiendo de que los documentos tienen varios elementos en 
común, como lo son título, párrafos o listas, podemos etiquetar estos elementos y 
llamarlos con nombres apropiados a cada uno. Una vez etiquetados podemos crear 
herramientas que elaboren de manera automática tareas como un índice o una nota al pie 
de página. 
 
Las etiquetas de HTML, nos sirven para definir entonces nuestros documentos, pero no 
son las encargadas de definir la página en sí, como lo hacen las hojas de estilo o las 
plantillas. 
 
No es necesario leer un libro entero sobre HTML para poder escribir un documento, ya 
que es sencillo de escribir, leer y comprender. 
 
 
45 
 
 
6 CERN es el Consejo Europeo para la Investigación Nuclear (Conseil Européen pour la Recherche 
Nucléaire, en francés). 
2.4. Editores 
 
Para crear un documento HTML podemos utilizar cualquier editor de textos, podemos 
usar varios muy poderosos como Emacs, el cual provee un ambiente gráfico. En este 
trabajo se hablará del clásico que es el editor vi. Cabe mencionar que existen más 
alternativas que facilitan la creación de páginas Web, editores como HotDog (Win) 
que ayudan a crear el código sin tener que saber absolutamente nada de HTML, ya que 
tienen el código prefabricado e incluyen plantillas, lo hacen como si se tratara de un 
dibujo, sólo es necesario arrastrar y pegar botones, otro ejemplo de esta clase de editores 
es el llamado WYSIWYG (What You See Is What You Get, lo que ves es lo que 
obtienes) o Macromedia Dreamweaver. 
 
2.4.1. vi 
 
Este es un editor de textos de pantalla completa que puede manejar el texto entero de 
un archivo, está disponible en todas las distribuciones GNU/Linux y UNIX, y puede 
utilizarse en cualquier terminal y utiliza pocos recursos. También se utiliza mucho para 
administrar el sistema y para programar, ya que la mayoría de las configuraciones se 
hacen a través de la edición de los archivos. 
 
En vi7 existen tres estados: 
 
• Modo comando: con las teclas podemos desplazar el cursor, ejecutar los 
comandos para el manejo de nuestro texto y salir del editor. (Este es el estado 
inicial) 
 
• Modo texto o modo de inserción: con las teclas se ingresan caracteres en el 
texto. 
 
 
• Modo de línea: con las teclas podemos escribir comandos en la última línea 
ubicada al final de la pantalla. 
 
 
2.5. Comandos básicos 
 
 
• vi Ejecutando el comando vi nom_arch estamos indicando a nuestra 
computadora que queremos abrir el archivo nomb_arch en modo comando para 
su edición. 
 
• a Con este comando podemos agregar texto a la derecha del cursor. 
 
 
7 Es un editor de texto originalmente escrito por Bill Joy en 1976, este tomo como base a los editores ed y 
ex, los cuales son deficientes para Unix, aunque existe actualmente una versión mejorada de vi llamada 
vim, vi se encuentra disponible en casi todo sistema tipo Unix, así que conocer su funcionamiento resulta 
imprescindible. 46 
• i Con este comando agregamos texto a la izquierda del cursor. 
 
• x Este borra el carácter que este debajo del cursor. 
 
• dd Este comando borra una línea entera. 
 
• :w Este comando salva el archivo con el que estamos trabajando y lo graba en 
disco. 
 
• :q Con este comando salimos del editor sin salvar. 
 
• Y ó yy Copia una línea. 
 
• P Pega antes del cursor. 
 
• yw Copia una palabra 
 
• c Reemplaza caracteres. 
 
• J Este comando une dos líneas en una sola. 
 
• U Con este comando podemos deshacer la última acción que hayamos realizado. 
 
• ESC Volvemos al modo comando. 
 
 
2.6. Documento básico en Html 
 
 
Ahora que sabemos cómo utilizar el editor de textos vi podemos hablar de HTML8, este 
consta de una serie de etiquetas que indican a nuestro navegador la forma en que va a 
presentar los textos o imágenes. 
 
Podemos utilizar el editor de textos para crear un documento HTML, al terminar de 
escribir el código, este se guardará sólo como un archivo con extensión .html o .htm, 
podemos nombrarlo index.html, indice.html, etc, aunque cualquier nombre es válido. 
Posteriormente se puede ver en el visualizador o browser. 
 
 
 
La estructura básica de un documento HTML contiene las siguientes etiquetas: 
 
 
 
 
 
8 Acrónimo inglés de HyperText Markup Language (lenguaje de marcas hipertextuales) 
47 
<html> Nos indica el inicio del 
documento. 
<head> Nos indica el inicio de la 
cabecera. 
<title> Indica el inicio de un titulo para 
el docto. 
<body> Aquí inicia el cuerpo del 
documento. 
</html> Indica el final del documento. 
</head> Indica el final de la cabecera. 
</title> Esta indica el final de un titulo. 
</body> Esta etiqueta indica el final del 
cuerpo. 
Figura 2.2. Etiquetas básicas en un documento Html. 
 
A continuación podemos ver el código de una página sencilla escrita con HTML y 
posteriormente su resultado en la Figura11: 
 
<html> 
<head> 
<title>Ejemplo</title> 
body { 
 background-image: url(); 
 background-color: #6699FF; 
} 
.style2 {font-size: 60px} 
.style3 {font-size: 18px} 
--> 
 
 
</style> 
</head> 
<body> 
<div align="center" class="style1"> 
 <p>&nbsp;</p> 
 <p>&nbsp;</p> 
 <p>&nbsp;</p> 
 <p class="style2">Este es un ejemplo sencillo de HTML </p> 
 <p class="style3">Alma Delia Basilio Guzm&aacute;n </p> 
</div> 
</body> 
</html> 
 
48 
 
 
 
Figura 2.3. Ejemplo de una página con Html. 
 
 
En el ejemplo anterior lo primero que se hizo fue especificar el tipo de archivo con el 
que estamos trabajando, el cual es un documento HTML, para esto usamos las etiquetas 
 
 
 
<html> y </html> al inicio y fin del documento. Entre este par de etiquetas van el 
cuerpo y la cabecera del documento. 
 
La cabecera se delimita con las etiquetas <head> y </head>, aquí se encuentra 
contenida la información que va a afectar a la página completa, aunque en un principio 
sólo se delimita al título, como se muestra a continuación: 
 
<head> 
<title>Ejemplo</title> 
body { 
 background-image: url(); 
 background-color: #6699FF; 
} 
.style2 {font-size: 60px} 
.style3 {font-size: 18px} 
--> 
 
 
 
49 
</style> 
</head> 
 
 
Es importante aclarar que nada de lo que está escrito en la cabecera será mostrado en el 
navegador, esto le corresponde a la etiqueta <body>, en su interior va contenido el 
código con los elementos que deseamos mostrar, como texto, imágenes, tablas, etc 
 
 
 
2.7. Párrafos en Html 
 
Llamamos párrafo a un conjunto de frases, para hacer uso utilizaremos la etiqueta <p>, 
esta se sitúa al inicio y final de uno. Ejemplo: 
 
 
<p class="style2">Este es un ejemplo sencillo de HTML </p> 
 <p class="style3">Alma Delia Basilio Guzm&aacute;n </p> 
 
 
Otra opción es modificar la apariencia de nuestros párrafos,

Continuar navegando