http://www.codigolibre.org
Guía para el
GNU/Diplomado
Para el Instructor y para el Estudiante
Diplomado de GNU/Linux
1
Fundación Código Libre Dominicano
http://www.codigolibre.org
Tabla de contenido
Copyright ............................................................................7
Prefacio .............................................................................8
0.0 Historia GNU/Linux ..............................................................10
Stallman, sin drivers..................................................................10
0.1 Que es GNU/Linux / Creadores ....................................................11
Kernel monolítico de Linux.............................................................13
0.2 Sus Inicios .....................................................................13
0.3 Filosofía Unix ..................................................................13
Todo es un Archivo.....................................................................14
Multi-Usuario..........................................................................14
Multi-Tarea............................................................................14
La navaja Suiza........................................................................14
0.4 Distribuciones o Sabores ........................................................15
Linux y el proyecto GNU................................................................15
0.5 Licencia GPL ....................................................................16
0.6 Instalación y Particionamiento ..................................................16
Sobre el particionamiento:.............................................................17
Journaling.............................................................................17
Niveles del Journaling.................................................................18
0.7 Métodos de Instalación...........................................................21
0.8 Gestores de Arranque ............................................................21
Características de GRUB................................................................22
Terminología de GRUB...................................................................22
Interfaces de GRUB.....................................................................23
Proceso de inicio de GRUB..............................................................23
LILO...................................................................................24
LILO y el proceso de arranque de x86...................................................24
Diferencias entre LILO y GRUB..........................................................24
0.9 Practica Básico Capitulo 0.......................................................25
1.0 Comandos GNU / UNIX..............................................................25
1.1 Iniciando Linux..................................................................25
1.2 Que es el shell..................................................................25
1.3 Comandos Básicos.................................................................26
1.4 cd, ls, file, cat, mkdir, mv, rm, touch, more, less, wc, head, less, cp, diff,
find, locate, date, cal, whoami, echo, clear, exit...................................26
1.5 Variables........................................................................31
Manejo de Variables del Entorno .......................................................31
Definiendo variables locales Específicas de usuario....................................32
1.6 Archivos ocultos.................................................................33
1.7 Completando comandos con TAB.....................................................33
1.8 Alias............................................................................34
1.9 Comando history..................................................................34
1.10 Practica Básico Capitulo 1......................................................34
2.0 Jerarquía de Directorios.........................................................34
2.1 Estructura de directorios........................................................34
2.2 /................................................................................35
2.3 /home/...........................................................................36
2.5 /usr/............................................................................36
2.6 /opt/............................................................................38
2.7 /proc/...........................................................................38
Diplomado de GNU/Linux
2
Fundación Código Libre Dominicano
http://www.codigolibre.org
2.8 /etc/............................................................................39
2.9 /bin.............................................................................39
2.10 /sbin...........................................................................39
2.11 /tmp............................................................................40
2.12 /boot...........................................................................40
2.13 /mnt............................................................................40
2.14 /lib............................................................................40
2.15 Practica Básico Capitulo 2......................................................41
3.0 Expresiones Regulares y flujos de texto..........................................41
3.1 Comodines........................................................................41
3.2 Tuberías.........................................................................42
3.3 sed, grep y awk..................................................................42
sed....................................................................................42
grep...................................................................................42
awk....................................................................................43
3.4 sort.............................................................................43
3.5 cut..............................................................................43
3.6 expand...........................................................................44
3.7 mount............................................................................44
3.8 paste............................................................................44
3.9 pr...............................................................................44
3.10 split...........................................................................45
3.11 tac.............................................................................45
3.12 tr..............................................................................45
3.13 tee.............................................................................46
3.14 xargs...........................................................................46
3.15 Redireccionamiento .............................................................46
Entrada y salida.......................................................................46
Redireccionando stdout.................................................................47
Redireccionando stdin..................................................................47
Tuberías...............................................................................47
Redireccionando stderr.................................................................48
Fundamentos..........................................................................50
0.0 Instalación de Paquetes rpm y deb................................................50
0.1 Instalación y Desinstalación con rpm.............................................50
0.2 Instalación y Desinstalación con deb.............................................50
0.3 Manejadores de paquetes gráficos y de consola....................................51
0.4 Administración de Paquetes.......................................................51
0.5 Tipos de paquetes (rpm, deb, targz)..............................................52
0.6 Actualizar paquetes..............................................................52
0.7 Forzando paquetes................................................................52
0.8 Dependencias.....................................................................52
0.9 Cuestionar y Verificar paquetes..................................................52
0.10 Paquetes tar.gz.................................................................52
0.11 Comando tar.....................................................................53
0.12 gzip gunzip bzip2 bunzip2 zcat compress cpio afio...............................53
0.13 Compilando desde el fuente......................................................57
0.14 Construyendo paquetes...........................................................57
0.15 Practica Fundamentos Capitulo 0.................................................57
1.0 Sistema X Window ................................................................57
1.1 Servidor X ......................................................................58
1.2 Xorg.............................................................................59
Diplomado de GNU/Linux
3
Fundación Código Libre Dominicano
http://www.codigolibre.org
Instalación de Xorg....................................................................59
Configuración de X.....................................................................59
1.3 Protocolo X .....................................................................64
1.4 Administradores de Ventana ......................................................67
1.5 Entornos Gráficos (Desktop Manager o Destop Enviroment)..........................67
KDE....................................................................................68
GNOME..................................................................................68
1.6 Display Manager .................................................................69
Uso de XDM ............................................................................70
Alternativas a XDM ....................................................................71
1.7 Escritorio Remoto................................................................71
Elementos básicos .....................................................................71
Comunicación ..........................................................................72
Programas .............................................................................72
Modelo Cliente-servidor................................................................72
Características........................................................................73
Ventajas...............................................................................73
Desventajas............................................................................74
Dirección..............................................................................74
Ejemplos...............................................................................75
XDMCP .................................................................................75
X (conexión remota)....................................................................76
Xnest..................................................................................77
Para abrir un escritorio remoto .......................................................78
VNC....................................................................................78
vino...................................................................................79
NX.....................................................................................79
Objetivos de NX........................................................................80
1.8 Manejo Desktop...................................................................81
Multimedia.............................................................................81
Oficina................................................................................81
Internet...............................................................................82
Gráficos...............................................................................82
Programación...........................................................................82
Juegos.................................................................................82
Herramientas del sistema...............................................................83
Algunos consejos y comandos a NO EJECUTAR..............................................83
1.9 Editores Vi y Emacs .............................................................84
Emacs..................................................................................84
El minibuffer:.........................................................................84
1.9 VI...............................................................................85
1.10 Practica Fundamentos Capitulo 1.................................................86
Administración.......................................................................88
Procesos GNU/Linux...................................................................88
0.0 ¿Que es un proceso?..............................................................88
0.1 Manejo de procesos...............................................................88
0.2 Creando procesos.................................................................89
0.3 Comando ps.......................................................................89
0.4 Comando top......................................................................90
0.5 Estado de los procesos...........................................................91
0.6 CTRL+z, bg, fg y &...............................................................91
0.7 Comando jobs.....................................................................92
0.8 Enviando señales con kill........................................................92
Diplomado de GNU/Linux
4
Fundación Código Libre Dominicano
http://www.codigolibre.org
Diplomado de GNU/Linux
5
Fundación Código Libre Dominicano
http://www.codigolibre.org
Diplomado de GNU/Linux
6
Fundación Código Libre Dominicano
http://www.codigolibre.org
Copyright
Esta documentación es regida por los reglamentos de la GNU Free Documentation License y
la GNU General Public License v3, siéntase libre de copiar, modificar, aprender,
distribuir y redistribuir esta documentación; haga uso de su derecho como si fuere su
deber.
Diplomado de GNU/Linux
7
Fundación Código Libre Dominicano
http://www.codigolibre.org
Prefacio
Esta guía esta diseñada para marcar los parámetros y/o pasos a seguir al instructor en
la capacitación del estudiante, por otro lado, para que los estudiantes tengan un
resumen de lo que se abarca en el diplomado de GNU/Linux que se imparte en la Fundación
de Código Libre Dominicano.
Creemos firmemente que si el estudiante se apega a esta guía como fuente teórica, podrá
obtener los conocimientos necesarios para convertirse en un excelente administrador de
sistemas GNU/Linux. Este cuaderno fue iniciativa de José Paredes y Jonathan Montero.
Antonio Perpiñán: Por creer en nosotros y nunca dudar de lo que somos capaces cuando
contamos con su entera aprobación y confianza.
Cualquier sugerencia, corrección, duda, aclaración y/o comentario sobre este cuaderno
de trabajo, siéntase libre se enviar un correo a:
jparedes@codigolibre.org
jmontero@codigolibre.org
Diplomado de GNU/Linux
8
Fundación Código Libre Dominicano
http://www.codigolibre.org
GNU/Básico
0.0 Historia GNU/Linux
0.1 Que es GNU/Linux / Creadores
0.2 Sus Inicios 0.3 Filosofía Unix
0.4 Distribuciones o Sabores
0.5 Licencia GPL
0.6 Instalación y Particionamiento
0.7 Métodos de Instalación
0.8 Gestores de Arranque
0.9 Practica Básico Capitulo 0
1.0 Comandos GNU / UNIX
1.1 Iniciando Linux
1.2 Que es el shell
1.3 Comandos Básicos
1.4 (cd,ls,file,cat,mkdir,mv,rm,touch,more,less,wc,head.less.cp,diff,find,locate)
1.5 Variables
1.6 Archivos ocultos
1.7 Completando comandos con TAB
1.8 Alias
1.9 Comando history
1.10 Practica Básico Capitulo 1
Diplomado de GNU/Linux
9
Fundación Código Libre Dominicano
http://www.codigolibre.org
Poco a poco, las grandes empresas empezaron a tomar conciencia del valor del software:
primero fue IBM la que en 1965 dejó de dar el código fuente de su sistema operativo, a
finales de los setenta Digital Research empezó a vender el suyo, etc. Este hecho hizo
que todas las compañías se dieran cuenta de que el software podía ser muy rentable y
les podía aportar grandes beneficios. A partir de este hecho, la mayoría de las
empresas empezaron a poner reticencias a dejar el código fuente de sus programas y
sistemas operativos, y empezaron a vender sus programas como un valor añadido a su
hardware. En este entorno cada vez más cerrado, Richard Stallman (que trabajaba en el
MIT, Massachusetts Institute of Technology) se sintió indignado al comprobar que cada
vez era más difícil conseguir el código fuente de los programas que utilizaba para
adaptarlos a sus necesidades, tal como había hecho hasta entonces.
A partir de ese momento, Stallman decidió ser consecuente con sus ideales e iniciar un
gran proyecto para intentar abrir otra vez el código fuente de los programas.
Consciente de que no podría conseguir que las compañías cedieran en este punto, se
propuso crear su propio sistema operativo y aplicaciones iniciando un proyecto
denominado GNU.
De especial interés para entender los motivos que llevaron a Stallman a iniciar GNU es
su primer manifiesto, el documento donde explicó a toda la comunidad en qué consistiría
el proyecto, cómo lo orientaría y por qué tenía que hacerlo. En él empezó a describir
el concepto de software libre y para qué creía necesario que programadores y
desarrolladores de todo el mundo contribuyeran con él.
Diplomado de GNU/Linux
10
Fundación Código Libre Dominicano
http://www.codigolibre.org
estudiarlo, modificarlo y redistribuirlo sin que nos obliguen a pagar por ello. Lo que
debemos tener claro es que sí que podemos pedir el dinero que queramos por los
programas y su código fuente, el soporte que podemos ofrecer a los usuarios, los libros
que vendamos o el material que proporcionemos, tal y como muchas compañías que
distribuyen GNU/Linux hacen. Sin embargo, en ningún momento, podemos obligar a que los
usuarios no distribuyan el software que les hemos vendido. Éste debe poder ser
distribuido de manera libre. Es un modo diferente de entender el software al que
estamos acostumbrados. En muchos de los textos de la FSF (Free Software Foundation) se
habla más de filosofía que de ingeniería. Debemos entender todo este movimiento más
como un modo de pensar o hacer las cosas que como una compañía más de software.
La filosofía que en la FSF se tiene del software lo define con las siguientes cuatro
libertades:
•La libertad 0: Se refiere a la libertad de poder usar el programa para cualquier
propósito.
•La libertad 1: Es la que permite estudiar cómo funciona el programa y adaptarlo a
las propias necesidades. El acceso al código fuente es una condición necesaria para
garantizar esta libertad.
•La libertad 2 : Es la que permite distribuir libremente copias del software, ayudando
al vecino.
•La libertad 3: Es la que permite mejorar el programa y hacer públicas las propias
mejoras, en beneficio de toda la comunidad. El acceso al código fuente, asimismo, es un
requisito imprescindible para asegurar esta libertad.
Para dar todas estas libertades al software que se desarrollaba en el proyecto y a los
usuarios finales del mismo se escribió la licencia GPL (General Public License), con la
cual se ha protegido todo este tipo de programas. Esta licencia pone por escrito las
ideas anteriormente comentadas.
El proyecto empezó a producir software a partir de 1984, comenzando con el desarrollo
de todas las herramientas necesarias para poder implementar un sistema operativo
completo. Aunque realizar un proyecto de estas características es un proceso largo y
complejo, desde el principio muchos programadores y desarrolladores de software se
vieron cautivados por la idea de Stallman y empezaron a colaborar con él de manera
gratuita. La comunidad no paró de crecer, y poco a poco empezaron a disponer de las
herramientas necesarias (editores, compiladores, etc.) para implementar el núcleo del
sistema operativo, que era la tarea que requería las herramientas que se estaban
desarrollando.
Desde el primer momento se quiso crear un sistema operativo parecido a UNIX y siguiendo
las normas POSIX (Portable Operating System Interface). Si bien UNIX también tenía sus
problemas y carencias, era, y sigue siendo, suficientemente bueno como para adaptarse a
la mayoría de las necesidades. La tarea de diseñar y escribir el núcleo del sistema
operativo fue la que se dejó para el final del proceso. Aún actualmente está por
finalizar definitivamente y el núcleo del GNU, llamado Hurd, permanece en fase de
desarrollo.
Diplomado de GNU/Linux
11
Fundación Código Libre Dominicano
http://www.codigolibre.org
sistema operativo que pudiera ser estudiado y modificado por quien quisiera hacerlo. En
1987 se puso manos a la obra y llamó a su proyecto mini UNIX, que dio lugar a MINIX.
Al no utilizar ni una sola línea de código del UNIX de AT&T, no hay ninguna restricción
en tomar el código, utilizarlo y modificarlo libremente.
Tecnología micro-kernel La tecnología micro-kernel se basa en dividir las diferentes
funcionalidades del núcleo de un sistema operativo en programas totalmente separados y
que se comunican entre sí. Esto lo hace muy modular, lo que facilita muchísimo el test,
la detección y la corrección de errores, el mantenimiento, etc. Actualmente, algunos
sistemas operativos como Amoeba, Chorus, Mach o WindowsNTTM han incorporado este tipo
de tecnología.
Tanenbaum quiso crear un sistema orientado a fines docentes, por lo que lo diseñó
utilizando una arquitectura micro-kernel, ideal para una fácil comprensión, y aportando
una tecnología muy novedosa para la época que le permitía versatilidad,
multiplataforma, etc. Éste ha sido uno de los puntos fuertes y débiles a la vez del
MINIX: aunque el sistema es una pequeña joya para su estudio y diseño, es muy probable
que nunca se pueda utilizar en entornos reales.
Se optó por hacerlo entendedor, modular y muy pedagógico, pero no rápido. De todos
modos, Tanenbaum tampoco pretendía eso; a lo largo de los años MINIX ha ido
evolucionando y realmente hoy en día todavía sigue existiendo y siendo estudiado por
muchos alumnos de universidades de todo el mundo.
Aquí es cuando entra en juego Linux. Mientras la FSF seguía con su gran proyecto
proporcionando herramientas para la construcción de un sistema operativo, Tanenbaum
orientaba MINIX para fines docentes y muchas empresas seguían haciendo evolucionar sus
propias versiones de UNIX.
Linus Torvalds, estudiante de la Universidad de Helsinki, decide crear en agosto de
1991 su propio núcleo para un nuevo sistema operativo, Linux. Su idea era crear un UNIX
para PC con el fin de que todos los que quisieran lo pudieran utilizar en su ordenador.
La primera aparición en escena que hizo fue en un debate sobre MINIX y sistemas
operativos, donde expuso las siguientes ideas:
Carta en ingles
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and professional like
gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get
ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles
it somewhat (same physical layout of the file-system (due to practical reasons) among
other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work.
This implies that I'll get something practical within a few months, and
I'd like to know what features most people would want. Any suggestions
are welcome, but I won't promise I'll implement them :-)
Carta en español
Hola a todos los que usan minix
Estoy haciendo un sistema operativo (gratuito) (sólo un hobby, no será como GNU, grande
y profesional) de 386 (486) AT clones. Esto ha estado gestando desde abril, y está
empezando a prepararse. Me gustaría algún comentario sobre las cosas que a la gente le
gusta/disgusta de minix, ya que mi sistema operativo que se asemeja un poco (misma
disposición física del sistema de archivos (por razones prácticas), entre otras cosas).
Actualmente he portado bash (1.08) y gcc (1.40), y las cosas parecen funcionar.
Esto implica que tendré algo práctico dentro de unos meses, y me gustaría saber qué
Diplomado de GNU/Linux
12
Fundación Código Libre Dominicano
http://www.codigolibre.org
Si accediéramos al foro de debate donde apareció este primer mensaje, veríamos cómo
rápidamente gente de todo el mundo empezó a interesarse por este nuevo sistema, que al
utilizar el compilador e intérprete de comandos de GNU (gcc y bash) como piezas
fundamentales, también tenía las características de software libre. Aunque en palabras
del mismo Torvalds, si él hubiera sabido la cantidad de trabajo necesario para lograr
que su idea funcionase, nunca lo hubiera hecho: esfuerzos de muchos expertos en
informática de todo el mundo hicieron posible este proyecto.
Diplomado de GNU/Linux
13
Fundación Código Libre Dominicano
http://www.codigolibre.org
puesto que esos mismos principios estarán presentes (de una u otra manera) en los
sistemas que hoy podamos manejar.
Todo es un Archivo
Esta idea, propia de la orientación a objetos (si bien la precede), consiste en que la
unidad básica para la interacción con el sistema es una entidad llamada archivo que,
como los archivos en papel, puede abrirse, leerse, avanzar hojas hacia delante y hacia
atrás, escribir en él, y cerrarse. Este modelo tan sencillo puede parecer ingenuo, pero
ha probado ser extremadamente valioso. Permite a un programa acceder transparentemente
a un documento de texto o a un puerto de comunicaciones.
Multi-Usuario
En un sistema multiusuario, cuando alguien quiere acceder a la máquina, debe
identificarse, para poder ser reconocido por ésta y permitirle la entrada al sistema,
si se trata de un usuario autorizado. Este proceso es el que se conoce como logging in.
Durante este proceso, la máquina nos preguntará nuestro nombre de usuario(login) y
nuestra contraseña(password). Es el administrador del sistema(root) quien debe crearnos
una cuenta en la máquina y quien nos dará los datos. Una vez entremos a nuestra cuenta,
nos encontraremos dentro de nuestro directorio HOME (el directorio que nos asigna el
administrador para que guardemos nuestros trabajos), y nos aparecerá el prompt del
sistema: esto es un símbolo que nos indica que la máquina está lista para recibir
comandos. Puede ser algo parecido a:
Linux:/home/Usuario#
o bien
Linux:~#
o cambiando # por $, pero en todos los sistemas aparecen de forma parecida a esta. El
nombre anterior a los dos puntos es el nombre de la máquina en la que trabaja. El
símbolo ~ en la ruta significa que estamos en nuestro directorio HOME. Hay sistemas
UNIX que muestran el directorio completo, y los hay que no, para saber si estamos en
nuestro HOME, existe ese símbolo de ~.
Multi-Tarea
La palabra multitarea describe la habilidad de ejecutar varios programas al mismo
tiempo.
GNU/LINUX utiliza la llamada multitarea preventiva, la cual asegura que todos los
programas que se están utilizando en un momento dado serán ejecutados, siendo el
sistema operativo el encargado de ceder tiempo de microprocesador a cada programa.
La navaja Suiza
UNIX incorpora un conjunto de herramientas que guardan cierta analogía con una navaja
multiusos. Son simples, pero hacen muy bien su trabajo. En lugar de construir programas
muy complejos, UNIX proporcionaba muchas pequeñas herramientas, y un esquema para poder
combinarlas de forma efectiva. Este diseño escala muy bien, permitiendo al sistema
crecer, incorporar nuevas herramientas y, a la vez, ser compatible hacia atrás.
Diplomado de GNU/Linux
14
Fundación Código Libre Dominicano
http://www.codigolibre.org
Así mismo, cabe considerar que en muchas de estas distribuciones se incluye software
propietario que algunos usuarios prefieren, si bien en muchos casos existen programas
homólogos con licencia Free Software.
A continuación realizaremos una breve descripción de algunas de las distribuciones de
GNU/Linux:
Slackware: una de las primeras distribuciones que aparecieron. Fue creada por Patrick
Volkerding y tuvo un gran éxito en sus primeros años de existencia.
RedHat Linux: junto con SuSE, es una de las distribuciones de mayor popularidad.
Está creada por una empresa de Estados Unidos y aporta software de gran calidad. Tiene
un entorno muy intuitivo que facilita mucho su instalación y configuración.
SuSE Linux: aunque es una distribución creada bastante recientemente, ha tenido una
gran difusión. Está desarrollada por una empresa alemana y aporta mucho software
propietario de calidad. Es muy completa y fácil de instalar y mantener, aunque en
Diplomado de GNU/Linux
15
Fundación Código Libre Dominicano
http://www.codigolibre.org
Fedora: es una distribución Linux para propósitos generales basada en RPM, que se
mantiene gracias a una comunidad internacional de ingenieros, diseñadores gráficos y
usuarios que informan de fallos y prueban nuevas tecnologías. Cuenta con el respaldo y
la promoción de Red Hat.
Tampoco podemos olvidar que existen otros sistemas operativos compatibles con UNIX y
los estándares que se siguen actualmente. Muchos de los conceptos y las herramientas
que veremos a lo largo del curso también servirán para estos otros. En especial debemos
destacar GNU/Hurd (núcleo desarrollado por el proyecto GNU) y FreeBSD.
Este tipo de licenciamiento garantiza que el usuario disponga de las libertades básicas
como son las siguientes.
Diplomado de GNU/Linux
16
Fundación Código Libre Dominicano
http://www.codigolibre.org
Existen versiones GNU/Linux para máquinas x86 (abarca desde computadoras 386, Pentium
I, Celeron, hasta Pentium IV), también para x86-64, arquitectura de 64 bits de AMD
(copiada por intel y rebautizada como em64t), y para procesadores PowerPC (PPC) de las
computadoras Apple Macintosh.
Sobre el particionamiento:
En Linux hay muchos tipos de particiones entre las que podemos mencionar ext2, ext3,
ext4, swap y ReiserFS. Esto por solo mencionar algunas de las más importantes.
Journaling
Para hablar de Journaling antes habría que mencionar esta técnica llamada Write-ahead
logging(WAL) o Registro de escritura anticipada.
En informática, el registro de escritura anticipada (WAL) es una familia de técnicas
que proporcionan atomicidad y durabilidad (dos de las propiedades ACID) en los sistemas
de base de datos.
Diplomado de GNU/Linux
17
Fundación Código Libre Dominicano
http://www.codigolibre.org
Las aplicaciones más frecuentes de los sistemas de journaling se usan para implementar
transacciones de sistemas de bases de datos y, más recientemente, para evitar la
corrupción de las estructuras de datos en las que se basan los sistemas de archivos
modernos.
Diplomado de GNU/Linux
18
Fundación Código Libre Dominicano
http://www.codigolibre.org
Btrfs
Btrfs (B-tree FS o normalmente pronunciado "Butter FS") es un sistema de archivos copy-
on-write anunciado por Oracle Corporation para Linux.
Su objetivo es sustituir al actual sistema de archivos ext3, eliminando el mayor número
de sus limitaciones, en especial con el tamaño máximo de los archivos; además de la
adopción de nuevas tecnologías no soportadas por ext3. Se afirma también que se
"centrará en la tolerancia a fallos, reparación y fácil administración".
En febrero de 2009, Btrfs está siendo desarrollado intensivamente y sólo está
disponible para ser testeado. Btrfs v0.19 fue publicado en junio de 2009, como software
libre bajo la GPL. Btrfs v1.0 (con el formato de disco finalizado) estaba previsto para
ser publicado a finales de 2008, pero tras sobrepasarse esa fecha no se ha vuelto a dar
Diplomado de GNU/Linux
19
Fundación Código Libre Dominicano
http://www.codigolibre.org
Características
Las características finales presentadas son:
•Empaquetado eficiente en espacio de archivos pequeños y directorios indexados
•Asignación dinámica de inodos (no se fija un número máximo de archivos al crear el
sistema de archivos)
•Snapshots escribibles y snapshots de snapshots
•Subvolúmenes (raíces del sistema de archivos internas separadas)
•Mirroring y Stripping a nivel de objeto
•Comprobación de datos y metadatos (alta seguridad de integridad)
•Compresión
•Copy-on-write del registro de todos los datos y metadatos
•Gran integración con device-mapper para soportar múltiples dispositivos, con varios
algoritmos de RAID incluidos
•Comprobación del sistema de archivos sin desmontar y comprobación muy rápida del
sistema de archivos desmontado
•Copias de seguridad incrementales eficaces y mirroring del sistema de archivos
•Actualización desde ext3 a Btrfs, y reconversión a ext3 al momento de la actualización
•Modo optimizado para SSD (activado a través de una opción de montaje)
•Desfragmentación sin desmontar
Swap En informática, el espacio de intercambio es una zona del disco (un archivo o
partición) que se usa para guardar las imágenes de los procesos que no han de
mantenerse en memoria física. A este espacio se le suele llamar swap, del inglés
"intercambiar".
La mayoría de los sistemas operativos modernos poseen un mecanismo llamado memoria
virtual, que permite hacer creer a los programas que tienen más memoria que la
disponible realmente; por ejemplo, 4 Gb en un ordenador de 32 bits. Como en realidad no
se tiene físicamente toda esa memoria, algunos procesos no podrán ser ubicados en la
memoria RAM.
En este caso es cuando es útil el espacio de intercambio: el sistema operativo puede
buscar un proceso poco activo, y moverlo al área de intercambio (el disco duro) y de
esa forma liberar la memoria principal para cargar otros procesos. Mientras no haga
falta, el proceso extraído de memoria puede quedarse en el disco, ya que ahí no gasta
memoria física. Cuando sea necesario, el sistema vuelve a hacer un intercambio,
pasándolo del disco a memoria RAM. Es un proceso lento (comparado con usar sólo la
memoria RAM), pero permite dar la impresión de que hay más memoria disponible.
Diplomado de GNU/Linux
20
Fundación Código Libre Dominicano
http://www.codigolibre.org
CD-ROM
Si posee un lector de CD-ROM y tiene los CD-ROMs de distribución, puede utilizar este
método.(Este es soportado en todas las distribuciones)
Disco duro
Si ha copiado las imágenes ISO de Red Hat Enterprise Linux en el disco duro local,
puede utilizar este método. Necesitará un disquete o CD-ROM de arranque.
NFS
Si está realizando la instalación desde un servidor NFS utilizando imágenes ISO o una
imagen réplica de Red Hat Enterprise Linux, CentOS o Debian, entre otras, puede
utilizar este método. Necesitará un CD-ROM de arranque (utilice la opción de arranque
linux askmethod). (Este es soportado en la mayoría)
FTP
Si está realizando la instalación directamente desde un servidor FTP, utilice este
método. Necesitará un CD-ROM de arranque (use la opción de arranque linux askmethod).
(Este es soportado en la mayoría)
HTTP
Si está realizando la instalación directamente desde un servidor Web HTTP, utilice este
método. Necesitará un CD-ROM de arranque (use la opción de arranque linux askmethod).
Diplomado de GNU/Linux
21
Fundación Código Libre Dominicano
http://www.codigolibre.org
Características de GRUB
• Reconoce varios formatos ejecutables.
• Soporte para núcleos que no son Multiarranque: principalmente FreeBSD, NetBSD,
OpenBSD y Linux.
• Carga de múltiples módulos: carácterística del Multiarranque.
• Carga de un archivo de configuración: archivo simple de texto con órdenes
predeterminadas.
• Presenta una interfaz de menú con un tiempo de espera programable.
• Tiene una interfaz de comandos flexible accesible desde el menú.
• Soporte para varios sistemas de archivos: soportados BSD FFS, DOS FAT16 y FAT32,
Minix fs, Linux ext2fs, ext3fs, ReiserFS, JFS, XFS, and VSTafs
• Soporte para descompresión automática con gzip: Imagine cargar módulos del núcleo
que están comprimidos.
• Acceso a los datos en cualquiera de los dispositivos instalados.
• Independencia de las traducciones de geometría del disco.
• Detecta toda la RAM instalada.
• Admite el modo LBA (Dirección de Bloque Lógico): GRUB detecta automáticamente si
el modo LBA está disponible, en modo LBA GRUB puede acceder a todo el disco.
• Soporte para arranque a través de la red usando el protocolo TFTP.
• Soporte para terminales remotas: por el momento implementado el soporte para
terminales a través del puerto de serie.
Terminología de GRUB
GRUB utiliza diferentes términos para hacer referencia a los dispositivos.
Nombres de dispositivos
GRUB usa las siguientes reglas para nombrar a los dispositivos y las particiones:
• Tanto los discos duros IDE o SCSI empiezan con hd, las unidades de disquete
inician con fd.
• Los nombres de los dispositivos deben estar encerrados entre paréntesis.
• (hd0) Así identificamos el disco duro primario, encerrado entre paréntesis. Esto
es importante para indicarle a GRUB que configure el MBR del disco duro primario,
si colocamos (hd3) estaremos especificando el cuarto disco duro.
Veamos otro ejemplo para señalar a un disco duro:
(hd0,1) => {tipo de dispositivo}{Número de dispositivo}, {Número de partición}
• hd significa que es un disco duro (hard disk).
• El número 0 se refiere al número de la unidad, empezando a contar desde cero, así
que este es el dispositivo primario.
• El número 1 se refiere a la 2º partición del disco duro.
Nombres de archivos
Para poder especificar la ubicación de un archivo desde GRUB se hace así:
(hd0,0)/vmlinuz = /dev/hda1/vmlinuz
Esto especifica un archivo llamado vmlinuz en la primera partición del disco duro
primario.
Diplomado de GNU/Linux
22
Fundación Código Libre Dominicano
http://www.codigolibre.org
Interfaces de GRUB
GRUB dispone de tres interfaces, cada una permite arrancar el kernel de Linux u otros
sistemas operativos.
a) Interfaz de menú
Cuando GRUB se instala por defecto, lo primero que vemos al reiniciar la computadora es
una lista de opciones para seleccionar, esa es la interfaz de menú. Presionando la
tecla [e] se podrá ingresar a la interfaz del editor de menú de entrada o si presiona
la [c] cargará la interfaz de línea de comandos.
b) Interfaz del editor de menú de entrada
Presionando la tecla [e] desde el menú del gestor de arranque se accede a esta
interfaz, pudiendo alterar las líneas de comando antes de arrancar el sistema
operativo. Tiene algunos comandos como:
• la tecla [o] permite agregar una línea nueva después de la línea actual,
• la tecla [O] inserta una línea nueva después de la línea actual,
• la tecla [e] te sirve para modificar el contenido de una línea y la tecla [d] te
sirve para borrar la línea.
La tecla [b] ejecuta los comandos y arranca el sistema operativo. La tecla [Esc] omite
los cambios y el usuario vuelve a la interfaz de menú estándar. Con la tecla [c] se
carga la interfaz de línea de comandos.
c) Interfaz de línea de comandos
Es la interfaz que proporciona mayor control. Se puede escribir cualquier comando
seguido de ENTER para ejecutarlo. Esta interfaz cuenta con algunas funciones similares
a las de shell avanzadas, incluyendo el uso de [Tab] para autocompletar, y las
combinaciones de teclas con [Ctrl] al escribir comandos, tales como [Ctrl]-[a] para
moverse al comienzo de la línea y [Ctrl]-[e] para moverse al final. Además, las teclas
de flecha, [Inicio], [Fin], y [Supr] funcionan de forma similar al bash shell.
1.El BIOS busca un dispositivo de inicio (como el disco duro) y de ahí pasa el control
al registro maestro de inicio conocido como Master Boot Record o MBR, que consiste en
los primeros 512 bytes del disco duro y que forman la fase 1 de GRUB.
2.La fase 1 de GRUB carga la siguiente fase de GRUB, ubicada físicamente en cualquier
parte del disco duro. La fase 1 puede cargar ya sea la fase 1.5 o, directamente, la 2.
3.La fase 1.5 de GRUB, ubicada en los siguientes 30 kilobytes del disco duro, carga la
fase 2. En GRUB 2, esta fase ha dejado de existir.
4.La fase 2 de GRUB (cargada por las fases 1 ó 1.5) recibe el control, y presenta al
usuario el menú de inicio.
5.GRUB carga el kernel seleccionado por el usuario, en la memoria y le pasa el control.
Diplomado de GNU/Linux
23
Fundación Código Libre Dominicano
http://www.codigolibre.org
LILO
LILO es un acrónimo de LInux LOader (cargador) y ha sido usado para arrancar linux en
sistemas x86 por muchos años, muchos prefieren usar LILO porque es más familiar.
Diplomado de GNU/Linux
24
Fundación Código Libre Dominicano
http://www.codigolibre.org
El kernel se carga en memoria cuando Linux se inicia y permanece en memoria hasta que
el sistema se descarga por completo. Se diseña para ser lo más pequeño que sea posible,
permitiendo así que la memoria restante sea compartida entre todos los programas que se
ejecutan en el sistema.
bash es un shell de Unix (intérprete de órdenes de Unix) escrito para el proyecto GNU.
Su nombre es un acrónimo de bourne-again shell (otro shell bourne) — haciendo un juego
de palabras (born-again significa renacimiento) sobre el Bourne shell (sh), que fue uno
de los primeros intérpretes importantes de Unix. Hacia 1978 el intérprete Bourne era el
intérprete distribuido con el Unix Version 7. Stephen Bourne, por entonces investigador
de los Laboratorios Bell, escribió el intérprete Bourne original. Brian Fox escribió el
intérprete bash en 1987. En 1990, Chet Ramey se convirtió en su principal
desarrollador. bash es el intérprete predeterminado en la mayoría de sistemas
GNU/Linux, además de Mac OS X Tiger, y puede ejecutarse en la mayoría de los sistemas
Diplomado de GNU/Linux
25
Fundación Código Libre Dominicano
http://www.codigolibre.org
1.4 cd, ls, file, cat, mkdir, mv, rm, touch, more, less, wc, head, less, cp,
diff, find, locate, date, cal, whoami, echo, clear, exit
Comando “cd”
Este comando te permite cambiar de directorio o ubicación.
zxguitar@zxlaptop:~$cd /
zxguitar@zxlaptop:/$
zxguitar@zxlaptop:~$cd /home
zxguitar@zxlaptop:/home$
zxguitar@zxlaptop:~$cd /etc
zxguitar@zxlaptop:/etc$
Nota: fíjate como cambia el “prompt” de acuerdo a como cambias de directorio. Recuerda
que Linux posee un sistema de archivos jerárquico y la “/” es la ubicación mas alta o
en otras palabras es el principio de la jerarquía. También te recuerdo que la
virgulilla(~) que ves en el prompt(zxguitar@zxlaptop:~$) indica que estas en tu
directorio HOME(/home/usuario) en mi caso seria (/home/zxguitar). Esto significa que si
estoy en este directorio(/etc/X11/xserver) y quiero cambiar a mi HOME, puedo hacerlo de
esta forma.
zxguitar@zxlaptop:/etc/X11/xserver$cd ~
o simplemente
zxguitar@zxlaptop:/etc/X11/xserver$cd
Comando “ls”
zxguitar@zxlaptop:~$ls
zxguitar@zxlaptop:~$ls -l /
zxguitar@zxlaptop:~$ls -R /etc
Nota: la opción “-l” te permite ver los atributos de los archivos y la opción “-R” te
permite ver los directorios recursivamente. Este comando tiene muchas opciones, pero
para fines de ejemplo solo tenemos estas.
Comando “clear”
jp@fcld:~$clear
Diplomado de GNU/Linux
26
Fundación Código Libre Dominicano
http://www.codigolibre.org
Comando “exit”
jp@fcld:~$ exit
Comando “file”
zxguitar@zxlaptop:~$file /etc/passwd
/etc/passwd: ASCII text
Nota: el comando “file” te permite ver el tipo de archivo cuando lo usas, en el ejemplo
anterior, el archivo resulto ser un archivo de texto ASCII.
Comando “cat”
zxguitar@zxlaptop:~$cat /etc/passwd
zxguitar@zxlaptop:~$cat > archivo.txt
hola
[Presionar CTRL + D]
Comando “mkdir”
zxguitar@zxlaptop:~$mkdir prueba
zxguitar@zxlaptop:~$mkdir -p examen/practica/linux-basico
Nota: este comando permite crear un directorio. Como vemos en el 2do ejemplo la opción
“-p” permite crear subdirectorios al vuelo, si el directorio examen estuviera creado,
el comando sigue con el otro directorio que continua que en este caso seria el
directorio “practica”. También cabe aclarar que si el directorio examen no existiese,
el comando lo crearía.
Comando “mv”
zxguitar@zxlaptop:~$mv archivo.txt archivo2.txt
zxguitar@zxlaptop:~$mv archivo2.txt prueba/examen/
Nota: este comando cambia el nombre de un archivo, además mueve un archivo a otro lugar
o directorio.
Comando “rm”
zxguitar@zxlaptop:~$rm archivo.txt
zxguitar@zxlaptop:~$rm -rf prueba/
Nota: este comando borra un archivo. En el segundo ejemplo vemos que con la opción “-r”
significa recursivamente y la opción “-f” le indica al comando que obligue y elimine.
Esta combinación permite eliminar un directorio aunque tenga archivos dentro.
Diplomado de GNU/Linux
27
Fundación Código Libre Dominicano
http://www.codigolibre.org
Comando “touch”
zxguitar@zxlaptop:~$touch file.txt
zxguitar@zxlaptop:~$touch 01012000 file.txt
Nota: este comando te permite crear un archivo vacío, pero como en el segundo ejemplo,
lo elemental de esto es cambiar las fechas de creación, acceso y modificación de un
archivo.
Comando “more”
zxguitar@zxlaptop:~$more file.txt
Comando “less”
zxguitar@zxlaptop:~$less file.txt
Comando “wc”
zxguitar@zxlaptop:~$wc file.txt
13 69 757 file.txt
zxguitar@zxlaptop:~$wc -l file.txt
13 file.txt
zxguitar@zxlaptop:~$wc -w file.txt
69 file.txt
Comando “head”
zxguitar@zxlaptop:~$head file.txt
zxguitar@zxlaptop:~$head -5 file.txt
Nota: este comando te permite ver las primeras 10 líneas de un archivo, la opción “-5”
especifica que son las primeras 5 líneas.
Comando “tail”
zxguitar@zxlaptop:~$tail file.txt
zxguitar@zxlaptop:~$tail -5 file.txt
Nota: este comando te permite ver las ultimas 10 líneas de un archivo, la opción “-5”
especifica que son las ultimas 5 líneas.
Comando “cp”
zxguitar@zxlaptop:~$cp file.txt archivo.txt
zxguitar@zxlaptop:~$cp /etc/passwd /home/zxguitar/
zxguitar@zxlaptop:~$cp -R /etc /home/zxguitar/copia/
Nota: este comando copia un archivo. En el primer ejemplo se hace una copia del archivo
“file.txt” con el nombre de “archivo.txt”. En el segundo ejemplo se copia el archivo
“passwd” al directorio /home/zxguitar. En el tercer ejemplo, se copia, recursivamente
Diplomado de GNU/Linux
28
Fundación Código Libre Dominicano
http://www.codigolibre.org
Comando “diff”
zxguitar@zxlaptop:~$diff -a file.txt archivo.txt
zxguitar@zxlaptop:~$diff -i file.txt archivo.txt
zxguitar@zxlaptop:~$diff -w file.txt archivo.txt
Nota: este comando compara archivos, la opción “-a” hace que trate todos los archivos
como texto, la opción “-i” hace que ignore las mayúsculas y minúsculas, la opción “-w”
hace que ignore los espacios en blanco.
Comando “find”
zxguitar@zxlaptop:~$find /etc -name passwd -print
zxguitar@zxlaptop:~$find /home/zxguitar -name video.mpg -print
Nota: el comando find te permite buscar archivos, consta de muchísimas opciones, para
más información consultar las paginas man.
Comando “locate”
zxguitar@zxlaptop:~$locate file.txt
zxguitar@zxlaptop:~$updatedb
Nota: este comando te permite buscar archivos sin dar la ubicación, el comando
“updatedb” actualiza la base de datos de los archivos, esto es por si últimamente ha
copiado archivos nuevos, para que pueda hallarlos y es importante saber que para
ejecutar “updatedb” es necesario estar en usuario “root” porque este comando debe
acceder a directorios privilegiados.
Comando “date”
[jp@oraserv5 ~]$ date
[jp@oraserv5 ~]$ date +%F
[jp@oraserv5 ~]$ date +%D'-->'%F
Nota: Este comando tiene dos funciones: una es la de mostrar en pantalla la fecha del
sistema (en varios formatos, como veremos a continuación), la otra es la función de
configurar la hora del sistema, pero para que esta funcionalidad se cumpla, se debe
ejecutar el comando desde una sesión de root. La sintaxis de este comando es:
root@oraserv5:~# date -s "2 OCT 2011 18:00:00"
o también
root@oraserv5:~# date --set="2 OCT 2011 18:00:00"
Donde
• 10: Hora (hh)
• 13: Minutos (mm)
Diplomado de GNU/Linux
29
Fundación Código Libre Dominicano
http://www.codigolibre.org
Comando “whoami”
[jp@oraserv5 ~]$ whoami
Nota: Éste es otro comando muy simple como pwd, su función consiste en presentar en
pantalla el “nombre de usuario” del usuario que lo ejecuta. Ejemplo:
jp
Comando “cal”
[jp@oraserv5 ~]$ cal
[jp@oraserv5 ~]$ cal 2011
Nota: Este es un comando bastante útil, que aunque no tenga mucha relación con los
anteriormente dados, sirve para demostrar que las herramientas basadas en texto no son
inútiles para tareas domésticas. cal es una herramienta que sirve para mostrar en
pantalla el calendario.
Comando “echo”
[jp@oraserv5 ~]$ echo "Academia Del Software Libre"
Academia Del Software Libre
[jp@oraserv5 ~]$ echo "El comando date Se encuentra en `which date`"
El comando date Se encuentra en /bin/date
Nota: Este comando escribe a la salida estándar la cadena de texto que se le pasa como
parámetro. Generalmente se utiliza sin opciones, es por eso que no se nombrarán en este
texto.
Comando “for”
Para quienes programan en otros lenguajes el comando for se comporta distinto a la
clásica sentencia for. Este comando asigna de una lista de elementos, el valor a una
variable y repite una lista de comandos con esa variable.
Si bien la explicación puede ser un poco confusa, el concepto es bastante fácil de
entender al ver un ejemplo.
cantidad
es la variable que iteración a iteración va tomando los valores de la lista de
elementos
Diplomado de GNU/Linux
30
Fundación Código Libre Dominicano
http://www.codigolibre.org
Esta es la forma más simple de utilizar el comando for, pero con pocas variaciones se
puede realizar cosas muy útiles, por ejemplo:
La lista de elementos se obtiene del resultado del comando ls. Es decir, primero se
ejecuta ls, el cual dará el listado de todos los archivos de un directorio, y a todos
esos archivos se les aplica un touch.
1.5 Variables
¿Cómo definir variables de entorno?.
Dentro de nuestro sistema hay infinidad de estas variables cuya finalidad es configurar
de alguna manera el entorno de nuestra shell, como pueden ser marcar rutas de acceso
para algunos programas. Podemos asignarles valores de la siguiente forma:
zxguitar@zxlaptop:~$export http_proxy=’http://192.168.2.254:3128’
Diplomado de GNU/Linux
31
Fundación Código Libre Dominicano
http://www.codigolibre.org
cualquier programa. El Linux tiene diversas variables predefinidas tales como, nombre
de usuario, el directorio nombre y el nombre del sistema.
El comando env genera una lista de todas las variables persistentes definidas en su
shell, o sea, las variables que continúan existiendo igual después que el comando
actual o script finaliza. El resultado de esa salida es mostrado a seguir:
zxguitar@zxlaptop:~$ env
Las variables del entorno almacenan valores que describen las propiedades del entorno
de trabajo. Un usuario puede definir sus propias variables o modificar las ya
existentes.
Para asignarle valor a una variable en el shell se emplea el operador de asignación
tradicional entre el nombre de la variable y el valor asignado (no deben haber espacios
intermedios).
Ej:
zxguitar@zxlaptop:~$ MENSAJE=“Hola Santo Domingo”
Para acceder al valor de una variable en el shell se emplea el carácter $ seguido por
el nombre de la variable. Para imprimir en la terminal el valor de una variable se
puede utilizar el comando echo.
Ej:
zxguitar@zxlaptop:~$echo $MENSAJE
Hola Santo Domingo
Dentro de un shell se pueden ejecutar otros shells que serían hijos del primero
(subshells) heredando todo o parte del entorno de trabajo del padre. Para que una
variable mantenga su valor en los shells hijos es necesario indicarlo explícitamente
mediante el comando export.
Ej:
zxguitar@zxlaptop:~$export MENSAJE
Tanto la asignación del valor como el exportar una variable se pueden hacer a la vez:
zxguitar@zxlaptop:~$export MENSAJE=“Hola Santo Domingo”
Para ver las variables del entorno definidas se puede emplear el comando set. Este
además se relaciona con las opciones que es otra forma de regir el comportamiento del
shell. Las opciones se activan (on) o desactivan (off). Estas se utilizan para indicar
propiedades del shell muy específicas por lo que no nos vamos a detener en ellas. Si se
desea conocer más al respecto se puede hacer:
zxguitar@zxlaptop:~$help set | less.
Diplomado de GNU/Linux
32
Fundación Código Libre Dominicano
http://www.codigolibre.org
zxguitar@zxlaptop:~$unset MENSAJE
En sistemas UNIX, las variables del entorno están precedidas por el carácter "$" y se
ubican entre corchetes, aunque éstos no son obligatorios. Debido a la variedad en los
sistemas UNIX (particularmente a las diferentes distribuciones Linux), para que se
muestre el valor de una variable del entorno sólo se debe escribir uno de los
siguientes comandos:
echo $VARIABLE
echo ${VARIABLE}
zxguitar@zxlaptop:~$ls
zxguitar@zxlaptop:~$ls -a
zxguitar@zxlaptop:~$ls .bashrc
Nota: cuando vea que dice “[TAB][TAB]” significa que debe teclear la tecla [TAB] dos
veces para que complete el archivo o los archivos que comienzan con “.”. En el segundo
ejemplo si tenemos dos archivos que se llamen “archivo y archivo-diferente”, la tecla
[TAB] completara el nombre hasta “archivo” ya que hasta ahí, ambos nombres son iguales.
Si quieres usar el otro archivo que se llama “archivo-diferente” entonces pones el
Diplomado de GNU/Linux
33
Fundación Código Libre Dominicano
http://www.codigolibre.org
caractér que sigue que seria “-” y luego presionas [TAB][TAB] y en caso de no haber
otro archivo que tenga otro parecido, lo completara hasta el final.
1.8 Alias
Alias permite llamar a un comando, con sus opciones, de otra forma; por ejemplo,
zxguitar@zxlaptop:~$alias dir='ls -alt'
Esto permitirá sustituir el comando “ls” con sus opciones por el comando “dir”. La
orden “alias” sin ninguna opción da todos los comandos que hay definidos de esa forma;
y “unalias” elimina un alias.
Diplomado de GNU/Linux
34
Fundación Código Libre Dominicano
http://www.codigolibre.org
2.2 /
Directorio raíz, donde todo empieza. Para arrancar el sistema, debe estar presente lo
suficiente como para montar '/usr' y otras partes co-esenciales del sistema de
archivos. Esto incluye herramientas, información de configuración y del cargador de
arranque (boot loader) y alguna otra información esencial al arrancar.
Para habilitar la recuperación y/o la reparación del sistema, estará presente en el
sistema de archivos raíz aquellas herramientas que un administrador experimentado
necesitaría para diagnosticar y reconstruir un sistema dañado.
Los errores del disco, que corrompen la información en el sistema de archivos '/' son
un problema mayor que los errores en cualquier otra partición. Un sistema de archivos /
pequeño es menos propenso a corromperse como resultado de un fallo del sistema.
La principal preocupación que se usa para balancear las anteriores consideraciones, que
favorecen el colocar muchas cosas en el sistema de archivos raíz, es la de mantener '/'
tan pequeño como sea razonablemente posible.
[sahirys@sarys ~]#ls /
/
bin
boot
dev
etc
home
lib
media
mnt
opt
Diplomado de GNU/Linux
35
Fundación Código Libre Dominicano
http://www.codigolibre.org
root
sbin
tmp
usr
var
proc
sys
2.3 /home/
Directorios home de los usuarios. Home es un concepto, algo estándar, bajo home esta lo
que comúnmente se denominaría los directorios hogar de los usuarios, aun así es
recomendable que todas las distribuciones Linux usen este lugar como la localización
por defecto de los directorios hogar.
En sistemas pequeños, cada directorio de usuario es uno de los subdirectorios debajo de
/home, p.ej. /home/sahirys, /home/francis, /home/perpinan, etc.
2.4 /var/
Información variable. El sistema necesita con frecuencia una zona de trabajo temporal.
Si solo se requiere usar un espacio por un corto periodo de tiempo se puede usar
'/tmp', pero muchas veces la información conviene manejarla y almacenarla en un lugar
más permanente. El sistema puede sufrir una caída repentina y el contenido de '/tmp'
puede ser borrado durante el arranque o depurado regularmente mediante alguna tarea
periódica. Por el contrario '/var' contiene todo tipo de información alguna de ella
puede ser importante.
[sahirys@sarys ~]#ls /var
2.5 /usr/
Segunda jerarquía mayor. '/usr' es la segunda mayor sección del sistema de archivos.
usr es información compartible, de solo lectura, esto significa que debe ser
compartible entre varias maquinas que corren LINUX y no se debe escribir. Cualquier
información que es local a una máquina o varía con el tiempo, se almacena en otro
lugar. Ningún paquete grande (como TeX o GNUEmacs) debe utilizar un subdirectorio
directo bajo '/usr', en vez, debe haber un subdirectorio dentro de '/usr/lib' (o
'/usr/local/lib' si fué instalado completamente local) para ese propósito, con el
sistema X Window se hace una excepción debido a un considerable precedente y a la
práctica ampliamente aceptada
Diplomado de GNU/Linux
36
Fundación Código Libre Dominicano
http://www.codigolibre.org
/usr/local
Jerarquía local
La jerarquía '/usr/local' está para ser utilizada por el administrador del sistema
cuando se instale el software localmente. Necesita estar a salvo de ser sobrescrito
cuando el software del sistema se actualiza. Puede ser usado por programas y por
información que son compartibles entre un grupo de máquinas, pero no se encuentran en
'/usr'.
bin Binarios solo-locales
doc Documentación local
etc Binarios de configuración solo-local
games Juegos instalados localmente
lib Librerías para /usr/local
info Páginas de info local
man Jerarquías de páginas de manual para /usr/local
sbin Administración del sistema solo-local
scr Código fuente local.
/usr/sbin
Binarios de sistema estándar no-esenciales. Este directorio contiene cualesquier
binario no-esencial utilizando exclusivamente por el administrador del sistema. Los
programas de administración del sistema que sean requeridos para la reparación del
sistema, recuperación del sistema, montaje de /usr u otras funciones esenciales deben
localizarse en /sbin en vez de aquí. Típicamente /usr/sbin contiene los deamons de red,
cualquier herramienta de administración no-esencial y binarios para programas
servidores no-críticos. Esto incluye los deamons de internet que son llamados por inetd
(llamados in.*) tales como in.telnetd y in.fingerd y los deamons basados en rpc
manejados por portmap (llamados rcp.*) tales como rcp.infsd y rcp.mountd. Estos
programas servidores son utilizados cuando se entra en un estado que el System V conoce
como "run level 2" (estado multi-usuario) y el "run level 3" (estado en-red) o el
estado que el BSD conoce como "modo multi-usuario". En este punto se hacen disponibles
los servicios para los usuarios (p. ej. soporte de impresión) y hacia otras máquinas
(p. ej. exportar NFS)
/usr/share
Información Independiente de Arquitectura.
Cualquier especificación para /usr/share se incluirá en un documento suplementario al
FSSTND. /usr/share no es necesario en la mayoría de los sistemas Linux
/usr/src
Diplomado de GNU/Linux
37
Fundación Código Libre Dominicano
http://www.codigolibre.org
Código fuente.
Cualquier código fuente no-local debe localizarse en este directorio. El único código
fuente que siempre debe localizarse en un lugar específico es el código del kernel
(cuando exista o esté enlazado como parte de una estructura en /usr/include). Se pueden
usar subdirectorios si se desea. El código fuente para el kernel debe siempre estar en
su lugar o al menos los archivos include del código del kernel.
2.6 /opt/
Para colocar software que no fue incluida en el sistema operativo. El directorio /opt/
proporciona un área para almacenar habitualmente paquetes de software de una aplicación
estática y amplia.
Un paquete colocando archivos en el directorio /opt/ crea un directorio con el mismo
nombre del paquete. Este directorio en su lugar guarda archivos que de otra forma
estarían esparcidos por el sistema de archivos, dándole así al administrador del
sistema una forma fácil de determinar el papel de cada archivo dentro de un paquete
particular. Por ejemplo, si sample fuese el nombre de un paquete de software particular
localizado en el directorio /opt/, todos sus archivos podrían ser emplazados en
directorios dentro de /opt/sample/, tales como /opt/sample/bin/ para binarios y
/opt/sample/man/ para páginas de manual. Los paquetes grandes que abarcan diferentes
subpaquetes, cada uno de los cuales desempeñan una tarea específica, también se ubican
dentro de /opt/, aportando a este gran paquete un modo estándar de organizarse. De este
modo, el paquete sample puede tener diferentes herramientas que cada una irá en sus
propios subdirectorios, tales como /opt/sample/tool1/ y /opt/sample/tool2/, cada uno de
los cuales puede tener su propio bin/, man/ y otros directorios similares.
2.7 /proc/
Sistema de archivo virtual (información del kernel) Este directorio es un directorio
muy especial. Es un directorio en el cual está montado un sistema de archivos virtual.
En realidad muestra información que no reside en ningún dispositivo sino que es
elaborada por el propio kernel. Por ello se trata de falsos archivos. Su ocupación en
disco es 0. Sirve para comprobar la configuración y el funcionamiento del kernel. Lo
que interesa comentar es que aquí la presentación en forma de sistema de archivos es
una simulación y se hace así para que pueda ser manejada exactamente de la misma forma
que si realmente estuviera contenida en directorios y archivos.
Algunos de estos archivos son de solo lectura otros son de lectura y escritura y
permiten cambiar la configuración del kernel sin detenerlo. Evidentemente todo ello
está configurado con los permisos adecuados para mantener la seguridad del sistema.
Si miramos dentro del directorio '/proc' veremos que hay un montón de directorios cuyo
nombre es un número. Estos directorios representan cada uno a un proceso por su pid.
Diplomado de GNU/Linux
38
Fundación Código Libre Dominicano
http://www.codigolibre.org
2.8 /etc/
Configuración del sistema local-máquina. Aquí se guardan los archivos de configuración
de los programas instalados, así como ciertos scripts que se ejecutan en el inicio del
sistema. Los valores de estos archivos de configuración pueden ser complementados o
sustituidos por los archivos de configuración de usuario que cada uno tiene en su
respectivo “home” (carpeta personal).
Para leer el archivo que contiene el mensaje del día (mensaje que vemos una vez que el
usuario hace login)
[sahirys@sarys ~]#cd /etc;cat motd
2.9 /bin
Binarios de comandos esenciales disponibles para todos los usuarios. bin contiene
comandos que pueden ser utilizados por ambos los usuarios y el administrador del
sistema, pero que son requeridos en el modo mono-usuario (single-user mode) puede
también contener comandos que son utilizados indirectamente por algunos scripts.
Todos los binarios utilizables sólo por root, tales como daemons, init, getty, update,
etc. Estarían localizados en /sbin ó /usr/sbin dependiendo si son o no esenciales.
No habrá subdirectorios dentro de /bin. Los binarios de los comandos que no son
suficientemente esenciales para estar en /bin estarán localizados en /usr/bin. Comandos
como ls, cp, mv, mkdr
2.10 /sbin
Binarios del sistema esenciales. Los útiles usados por la administración del sistema (y
otros comandos que sólo root utiliza) están almacenados en /sbin, /usr/sbin, y
/usr/local/sbin. /sbin típicamente contiene binarios esenciales para arrancar el
sistema además de los binarios en /bin. Cualquier cosa que se ejecuta después de que se
sabe que /usr se ha montado (cuando no hay problemas) debería estar en /usr/sbin. Los
binarios de administración de sistema sólo-locales deben estar localizados en
/usr/local/sbin.
Decidir que cosa va en los directorios de /sbin es sencillo: Si un usuario necesitará
ejecutarlo, debe de ir en otro lado. Si sólo será ejecutado por el administrador del
sistema o por root como scripts de administración, entonces debe ir en /sbin (o en
/usr/sbin o en /usr/local/sbin, si el archivo no es vital para la operación del
sistema).
Archivos como chfn que los usuarios usan sólo ocasionalmente deben aun estar en
/usr/bin. ping aunque es absolutamente necesario para el root (recuperación de la red y
diagnóstico) es también frecuentemente usado por los usuarios y por esa razón debe ir
en /bin. Los usuarios ordinarios no tendrán que poner ninguno de los directorios sbin
en su búsqueda.
Es recomendable que los usuarios tengan permisos de lectura y ejecución en todo lo que
se encuentra en /sbin excepto tal vez ciertos programas; setuid y setgid. La división
entre /sbin y /bin no fue creada por motivos de seguridad o para evitar que los
Diplomado de GNU/Linux
39
Fundación Código Libre Dominicano
http://www.codigolibre.org
usuarios vieran el sistema operativo, sino para proveer una buena partición entre
binarios que todos usan y los que se usan, principalmente las tareas de administración.
No hay ganancia inherente en seguridad en hacer que /sbin este fuera del alcance de los
usuarios.
2.11 /tmp
Archivos temporales. tmp se utiliza para archivos temporales, preferentemente en un
dispositivo rápido (un sistema de archivos basado en memoria por ejemplo) La
"persistencia" de la información que es almacenada en /tmp es diferente de aquella que
sea almacenada en /var/tmp. /tmp puede ser limpiada en cada arranque o a intervalos
relativamente frecuentes. Por tanto, no se debe esperar que la información almacenada
en /tmp permanezca por algún periodo largo de tiempo.
Los programas deben utilizar /tmp ó /var/tmp (que era originalmente /usr/tmp) de
acuerdo a los requerimientos esperados de la información, pero no deben confiar en
alguna persistencia temporal particular en cualquier directorio de almacenamiento
temporal. Los administradores de sistemas pueden elegir enlazar /tmp a algún otro
directorio, tal como /var/tmp; esto es útil, por ejemplo, para conservar espacio en la
partición raíz. Si esto se lleva a cabo, entonces la persistencia de archivos en
/var/tmp debe ser al menos tan larga como la de /tmp. tmp puede estar e un disco
RAM. /var/tmp no debe nunca localizarse en algún dispositivo RAM.
2.12 /boot
Este directorio contiene todo para arrancar excepto los archivos de configuración y el
instalador de mapas. En su sentido más sencillo /boot es para cualquier cosa que se
utiliza antes de que el kernel ejecute /sbin/init. Esto incluye sectores maestros de
arranque (master boot sectors) guardados, archivos de mapeo de sectores y cualquier
otra cosa que no es editada directamente a mano. Los programas necesarios para arreglar
que el cargador de arranque sea capaz de arrancar un archivo (tal como el instalador de
mapas [lilo]) estarán localizados en /sbin. Los archivos de configuración para
cargadores de arranque podrían estar localizados en /etc.
Como se expuso arriba, el kernel de Linux puede estar localizado en / ó en /boot, si se
localiza en /boot, recomendamos que se le dé un nombre más descriptivo.
2.13 /mnt
Este directorio se ha provisto para que el administrador pueda montar temporalmente
sistemas de archivos cuando lo necesite. El contenido de este directorio es un asunto
local y no debe afectar la manera en la cual se ejecuta ningún programa.
Es recomendable la no utilización de este directorio por programas de instalación, y
sugerimos utilizar un directorio temporal adecuado que no esté en uso por el sistema.
2.14 /lib
Librerías compartidas y módulos de kernel esenciales. El directorio /lib contiene
aquellas imágenes de las librerías compartidas que se necesitan para arrancar el
sistema y ejecutar los comandos en el sistema de archivos raíz.
Esto incluye /lib/libc.so.*, /lib/libm.so.*, el enlazador dinámico compartido
/lib/ld.so.*, y otras librerías compartidas requeridas por binarios en /bin y /sbin.
Las librerías que son necesitadas sólo por los binarios en /usr (como cualquier binario
de X Window) no pertenecen a /lib. Sólo las librerías compartidas requeridas para
ejecutar los binarios dentro de /bin y /sbin deben estar aquí. La librería libm.so.*
Diplomado de GNU/Linux
40
Fundación Código Libre Dominicano
http://www.codigolibre.org
3.1 Comodines
Estos son meta-caracteres utilizados para cortar y facilitar las cosas mas usuales
como son la selección de archivos.
Diplomado de GNU/Linux
41
Fundación Código Libre Dominicano
http://www.codigolibre.org
3.2 Tuberías
Se utiliza para concatenar la salida estándar de un comando con la entrada estándar de
otro.
En este ejemplo, la salida del comando se le redirecciona para que sea la entrada del
comando less
[root@server ~]# ls /etc/passwd |less
sed
sed es un editor de flujo, una potente herramienta de tratamiento de texto para el
sistema operativo Unix que acepta como entrada un archivo, lo lee y modifica línea a
línea de acuerdo a un script, mostrando el resultado por salida estándar (normalmente
en pantalla, a menos que se realice una redirección). Sed permite manipular flujos de
datos, como por ejemplo cortar líneas, buscar y reemplazar texto (con soporte de
expresiones regulares), entre otras cosas. Posee muchas características de “ed” y “ex”.
Ej:
Reemplace todas las palabras nologin en el archivo /etc/passwd por login y guárdelo en
un archivo llamado fundacion.txt.
[francisco@server ~]$ sed -e 's/nologin/login/g' /etc/passwd>fundacion.txt
Cree un texto con varias lineas llamado Codigo.txt y agrégele la palabra Universidad en
cada linea y guarde este archivo ya modificado con el nombre Codigo.pdf.
[francisco@server ~]$ cat Codigo.txt| sed 's/^/Universidad/g' > Codigo.pdf
En el archivo anterior llamado Codigo.txt que creo cambie toda la minúscula por
mayúscula
[francisco@server ~]$ sed '1,$ s/[a-z]/[A-Z]/g' Codigo.txt
grep
grep es una utilidad de la línea de comandos escrita originalmente para ser usada con
el sistema operativo Unix. Usualmente, grep toma una expresión regular de la línea de
comandos, lee la entrada estándar o una lista de archivos, e imprime las líneas que
contengan coincidencias para la expresión regular.
Su nombre deriva de un comando en el editor de texto “ed” que tiene la siguiente forma:
“g/re/p” y significa «hacer una búsqueda global para las líneas que encajen con la
expresión regular (regular expression en inglés),p e imprimirlas». Hay varios
argumentos que se pueden usar con grep para modificar el comportamiento por defecto.
Existen otros retroacrónimos (incorrectos) para el nombre, entre ellos: General Regular
Expression Parser (analizador general de expresiones regulares), General Regular
Diplomado de GNU/Linux
42
Fundación Código Libre Dominicano
http://www.codigolibre.org
El comando grep (global regular expresion print) busca un patrón o cadena simple de
caracteres dentro del contenido de un archivo.
awk
Es un lenguaje de reconocimiento y procesamiento de patrones, por omisión lee la
entrada estándar y escribe en la salida estándar
[francisco@server ~]$ ls -s |awk '{print $1,$2}'
Imprimir la fecha y la hora del sistema en formato largo con el comando awk
[francisco@server ~]$ date |awk '{print $1; print $2; print $4; print $5;}'
Cree un archivo llamado operación con dos columnas numéricas y realizas un operación de
suma.
[francisco@server ~]$ awk '{$1=$2+$3; print $0}' operacion
3.4 sort
El comando sort se utiliza para listar en orden alfabética o numérica, además el
comando sort puede anidar uno o varios archivos.
[francisco@server ~]$ sort -d text.txt
Cree un archivo llamado num.pdf que contenga un numero por fila de manera aleatoria y
luego ordenelo
[francisco@server ~]$ sort -n num.pdf
3.5 cut
El utilitario cut selecciona caracteres desde la entrada y lo envía a la salida
estándar puede cortar columna delimitadas por tabuladores.
Crear un archivo llamado comando con varias lineas y luego cortar los primeros 3
caracteres de cada palabra.
[francisco@server ~]$ cut -c 1-4 Codigo.txt
Diplomado de GNU/Linux
43
Fundación Código Libre Dominicano
http://www.codigolibre.org
3.6 expand
Este utilitario se usa para cambiar los tabuladores a un numero especifico de espacio.
Cree un archivo con dos columnas tabuladas y luego cambie la tabulación por tres
espacios luego guárdelo en un archivo llamado
[francisco@server ~]$ expand -t 3 Codigo.txt > tabular.txt
3.7 mount
El comando mount nos permite montar sistema de archivos en un dispositivo o partición.
3.8 paste
Este utilitario paste junta las lineas correspondientes de los archivos nombrados y
envía la salida a la pantalla
Fusione las líneas de estos dos archivos una al lado de la otra, separándolo con “:” y
guárdela salida a otro archivo
[francisco@server ~]$paste -d ":" Codigo.txt Fundacion.txt > Cod-Fundacion
nota: debe estar creado el archivo Codigo.txt y Fundacion.txt con varias columnas
Fusione todas las líneas del archivo notas en una sola línea usando como separador “:”
[francisco@server ~]$ paste -d ":" -s Fundacion.txt
3.9 pr
el utilitario pr se usa para separar archivo en paginas, además es frecuentemente
utilizado para enviar archivos a la impresora
Cree el archivo diplomado con varias lineas y luego modifica para impresión el archivo
diplomado.txt poniendo espacio doble entre las líneas y poniéndole como cabezal "GNU"
[francisco@server ~]$ pr -d -h "GNU" diplomado.txt | less
Diplomado de GNU/Linux
44
Fundación Código Libre Dominicano
http://www.codigolibre.org
3.10 split
El utilitario split se utiliza para dividir archivos en piezas de igual tamaño como
puede ser en megabytes, kilobytes o en lineas
Divide el archivo /etc/passwd en archivo de 5 líneas cada uno y que sus nombres
comiencen con Fcld.txt
[francisco@server ~]$ split -l 5 /etc/passwd
Divida el archivo /etc/passwd en archivo que contenga lineas que tengan un volumen de 2
kilobytes.
[francisco@server ~]$ split -C 2k passwd
3.11 tac
El comando tac muestra lineas por linea en pantalla un archivo, empezando por la
ultima linea y terminando por la primera se pudiera decir que es el inverso de cat.
Visualice el log del sistema con los mensajes mas viejos que fueron generados
[francisco@server ~]$ tac /var/log/messages
3.12 tr
tr es un filtro que nos permite cambiar una determinada información de un archivo por
otra. En otras palabras TRADUCE.
Cambia cada uno de los caracteres especificados en el conjunto inicial por los
caracteres especificados en el conjunto final.
zxguitar@zxlaptop:~$ tr -d [=A=]
HOLA MUNDO (presione la tecla enter)
HOL MUNDO
Diplomado de GNU/Linux
45
Fundación Código Libre Dominicano
http://www.codigolibre.org
Parámetros útiles:
•-s : Sustituye un conjunto de caracteres repetidos por uno sólo. Es muy útil cuando
hay secuencias de caracteres que queremos borrar:
tr -s " " <> archivo-destino
•-c : Hace que se traduzcan todos los caracteres que no se encuentren especificados en
el primer parámetro. En el siguiente ejemplo se traduce por una ? todo lo que no sean
letras o números.
tr -c '[a-z][A-Z][0-9]' ? <> archivo-destino
•-d : Borra los caracteres que especifiquemos.
tr -d '[a-z][0-9]' ? <> archivo-destino
Otro ejemplo práctico que uso en ocasiones cuando quiero conseguir una lista,
convirtiendo los caracteres de nueva línea en espacios:
1.tr '\n' ' ' < /etc/pkgsync/musthave > listaenunasolalinea
3.13 tee
El utilitario tee envía salida simultáneamente a un archivo y a la salida estándar, la
cual puede ser la pantalla o una tubería a otro comando
Hagamos que la salida de “ls -l” salga tanto a pantalla como un archivo y luego veamos
que el archivo tenga el contenido
[root@server ~]# ls -l | tee codigos.txt
3.14 xargs
El comando xargs pasa argumentos de un comando a otro comando además el permite que
se puedan procesar mas comando.
3.15 Redireccionamiento
Entrada y salida
Cada proceso en Linux (incluidos los comandos Bash) abre tres archivos estándar:
entrada estándar (stdin), salida estándar (stdout) y error estándar (stderr). Los
programas utilizan estos archivos del modo siguiente:
0. La entrada estándar es el lugar desde el cual el programa lee su entrada. Por
defecto, stdin es el teclado.
1. La salida estándar es el lugar donde el programa graba su salida. Por defecto,
Diplomado de GNU/Linux
46
Fundación Código Libre Dominicano
http://www.codigolibre.org
Redireccionando stdout
El shell permite redireccionar la salida estándar de un proceso desde la pantalla (el
valor por defecto) a un archivo. Desviar la salida permite almacenar el texto generado
por un comando en un archivo.
En su forma más sencilla, la sintaxis de comando es la siguiente:
zxguitar@zxlaptop:~$ comando > archivo-salida
Redireccionando stdin
El shell permite desviar la entrada estándar de un proceso para que la entrada se lea
desde un archivo en lugar de desde el teclado. Para desviar la entrada de un proceso,
se separa el comando y el nombre del archivo de entrada con un signo menor que (<)
apuntando al nombre del comando. Se puede utilizar el desvío de la entrada con
cualquier comando que acepte la entrada desde el archivo stdin (el teclado).
En su forma más sencilla, la sintaxis de comando es la siguiente:
comando < archivo-entrada
donde comando es el comando cuya entrada se desvía y archivo-entrada es el nombre del
archivo a partir del cual el proceso lee la entrada estándar. El archivo debe existir
para que el desvío se lleve a cabo con éxito.
Se puede desviar tanto la entrada estándar como la salida estándar de un comando. No
obstante, no se debe utilizar el mismo nombre de archivo para la entrada estándar y la
salida estándar, puesto que el contenido original del archivo de entrada se perdería.
Tuberías
El shell permite conectar dos o más procesos para que la salida estándar de un proceso
se utilice como la entrada estándar para otro proceso. La conexión que une los procesos
es una tubería. Para canalizar la salida de un proceso en otro, se separan los comandos
con una barra vertical (|). La sintaxis general es la siguiente:
zxguitar@zxlaptop:~$ comando1 | comando2
donde comando1 es el comando cuya salida estándar se desvía o canaliza a otro comando,
y comando2 es el comando cuya entrada estándar lee la salida del comando anterior. Se
puede combinar dos o más comandos en una sola tubería.
/dev/null
/dev/null es un archivo que sirve como basurero. Nos puede ser útil para cuando
queramos despreciar la salida de un comando, que ni salga por pantalla ni que se quede
escrito en un archivo, simplemente que se pierda:
zxguitar@zxlaptop:~$ cat mimayorarchivo > /dev/null
Diplomado de GNU/Linux
47
Fundación Código Libre Dominicano
http://www.codigolibre.org
Una ventaja de /dev/null con respecto a los basureros físicos es que nunca se llena por
lo que podemos "arrojarle" toda salida que queramos despreciar.
Redireccionando stderr
Para redireccionar la salida de errores basta con recordar que stderr está asociado al
número 2. Por ello, la sintaxis del redireccionamiento sería:
zxguitar@zxlaptop:~$ comando 2> archivo
Diplomado de GNU/Linux
48
Fundación Código Libre Dominicano
http://www.codigolibre.org
GNU/Fundamentos
Diplomado de GNU/Linux
49
Fundación Código Libre Dominicano
http://www.codigolibre.org
Fundamentos
La gestión de paquete para distribuciones Debian se realizan con los manejador dpkg
(Debian PacKaGe). En el nivel de línea de comandos dispone de dpkg, que es el comando
de más bajo nivel, para gestionar directamente los paquetes DEB de software Pueden
realizarse todo tipo de tareas, de información,instalación, borrado o cambios internos
a los paquetes de software.
Nota: La “i” significa INSTALAR, la “v” significa VERVOSE o Detalles y la “h” significa
hash(barra de progreso).
rpm -qa Te lista los paquetes instalados en el sistema.
rpm -qi mozilla-mail Informa sobre el paquete instalado
rpm -qf /bin/ls Te informa a que paquete pertenece “ls”.
rpm -qpi webmin-1.510-1.noarch.rpm Te da información sobre el paquete especifico
rpm -qpl webmin-1.510-1.noarch.rpm Te dice los archivos que instalara el paquete.
rpm -ql webmin-1.510-1 Te dice los archivos que INSTALÓ el paquete.
Diplomado de GNU/Linux
50
Fundación Código Libre Dominicano
http://www.codigolibre.org
Alien: convierte paquetes de .deb a .rpm y viceversa, esto lo usamos cuando no tenemos
un paquete disponible para nuestra distro y esta disponible para otra.
RedHat/Fedora
yum install paquete
yum remove paquete
yum search paquete
yum update
yum update paquete
Diplomado de GNU/Linux
51
Fundación Código Libre Dominicano
http://www.codigolibre.org
RedHat/Fedora
yum update
yum update paquete
0.8 Dependencias
Las dependencias son requerimientos previos de otros paquetes para garantizar el
correcto funcionamiento del paquete final, su cantidad puede variar dependiendo del
programa a instalar.
Debian/Ubuntu
dpkg -l Consulta la DB de los paquetes instalados
dpkg -s paquete Te da información adicional del paquete
Diplomado de GNU/Linux
52
Fundación Código Libre Dominicano
http://www.codigolibre.org
installpkg package.tgz
removepkg package.tgz
upgradepkg package.tgz
Se puede además comprimir a vuelo mientras se empaqueta (son dos procesos distintos).
Lo hacemos de la manera siguiente.
tar -cvzf archivo.tar.gz /ruta/ Comprime a “/ruta/” en “archivo.tar.gz”
tar -cvjf archivo.tar.bz2 /ruta/ Comprime a “/ruta/” en “archivo.tar.bz2”
tar -tvzf archivo.tar.gz Visualiza el contenido sin descomprimir
tar -tvjf archivo.tar.bz2 Visualiza el contenido sin descomprimir
tar -xvzf archivo.tar.gz -C /ruta/ Descomprime a “archivo.tar.gz” en “/ruta/”
tar -xvjf archivo.tar.bz2 Descomprime a “archivo.tar.bz2” en donde esta.
tar -xvzf archivo.tar.gz /ruta/al/archivo Descomprime el archivo llamado “archivo”.
tar -xvjf archivo.tar.bz2 /ruta/al/archivo Descomprime el archivo llamado “archivo”.
tar -xvzf archivo.tar.gz /ruta/al/dir/ Descomprime el directorio llamado “dir”.
tar -xvjf archivo.tar.bz2 /ruta/al/dir/ Descomprime el directorio llamado “dir”.
tar -xvzf archivo.tar.gz /ruta/al/dir1/ /ruta/al/dir2/ Descomprime varios directorios.
tar -xvjf archivo.tar.bz2 /ruta/al/dir1/ /ruta/al/dir2/ Descomprime varios directorios.
tar -xvzf archivo.tar.gz --wildcards '*.conf' Descomprime solo los archivos “.conf”
tar -xvjf archivo.tar.bz2 --wildcards '*.conf' Descomprime solo los archivos “.conf”
tar -czf - /dir/to/archive/ | wc -c Estimar cuanto pesara una compresión “tar.gz”
tar -cjf - /dir/to/archive/ | wc -c Estimar cuanto pesara una compresión “tar.bz2”
Diplomado de GNU/Linux
53
Fundación Código Libre Dominicano
http://www.codigolibre.org
Observe que no hay que ponerle extensión como en el caso de “tar”, el la toma
automáticamente.
También podemos ver información sobre el nivel de compresión de un archivo ejecutando
el comando con la opción “-l”.
zxguitar@zxlaptop:~$ gzip -l gzip archivo.txt.gz
compressed uncompressed ratio uncompressed_name
91918 275744 66.7% archivo.txt
gunzip
Esta es la herramienta que permite descomprimir en GNU/Linux y UNIX, al igual que su
contrario, gzip, solo descomprime archivos, este concepto se puede aclarar mejor viendo
la sección del comando “tar” en el punto anterior.
Nota: Es bueno aclarar que cuando se comprime o descomprime con estas herramientas, no
se hace copia del archivo, es decir, literalmente el archivo se convierte de normal a
comprimido y viceversa.
zcat
Muestra el contenido de un archivo comprimido (.gz).
Es exactamente igual al cat, sólo que en su modo comprimido, es decir, si se desea
mantener el archivo en su formato de compresión pero quiere utilizar los datos del
archivo. Por ejemplo si se ha comprimido una lista de nombres y direcciones almacenadas
en un archivo llamado namelist, el archivo comprimido se llama namelist.gz.
zxguitar@zxlaptop:~$ zcat namelist.gz
bzip2
bzip2 es un programa libre desarrollado bajo licencia BSD que comprime y descomprime
archivos usando los algoritmos de compresión de Burrows-Wheeler y de codificación de
Huffman. El porcentaje de compresión alcanzado depende del contenido del archivo a
comprimir, pero por lo general es bastante mejor al de los compresores basados en el
algoritmo LZ77/LZ78 (gzip, compress, WinZip, pkzip,...). Como contrapartida, bzip2
emplea más memoria y más tiempo en su ejecución.
La sintaxis es parecida a la del programa gzip de GNU.
Ejemplos:
Diplomado de GNU/Linux
54
Fundación Código Libre Dominicano
http://www.codigolibre.org
bunzip2
Este comando es la contra-parte de bzip2, sirve para descomprimir archivos. Su sintaxis
es bien sencilla y al igual que bzip2, al descomprimir, el archivo original es
eliminado.
zxguitar@zxlaptop:~$ bunzip2 archivo.bz2
Note: Si navegando por ahí encuentras archivos con la extensión “.tbz” y “.tb2” es lo
mismo que “.tar.bz2”.
gzip vs bzip2 : bzip2 toma mas tiempo para comprimir y descomprimir que gzip. El
tamaño del archivo bzip2 es menor que gzip.
compress
Este paquete proporciona los programas originales que son el estándar de facto, en gran
parte de la comunidad UNIX, para comprimir y descomprimir archivos. Los programas
implementan un algoritmo de compresión LZW rápido de un solo archivo. El algoritmo LZW
no tiene una compresión tan alta como otros algoritmos, pero las implementaciones de
LZW como esta a veces comprimen los archivos más rápido que otros programas similares,
como gzip.
Cabe mencionar que la extensión de estos archivos es “.Z”
cpio
El comando cpio sirve para copiar o extraer archivos a un contenedor “.cpio” . Este es
un archivo que contiene archivos y permisos que fueron almacenados. El contenedor se
puede guardar en una unidad de cinta, en el disco o simplemente en un archivo de texto
Diplomado de GNU/Linux
55
Fundación Código Libre Dominicano
http://www.codigolibre.org
Con este comando lo que estamos haciendo es un backup del home del usuario, vamos parte
por parte así entendemos como funciona.
find /home/zxguitar = lista todos los archivos y se los pasa por stdin a cpio
cpio -o > backup.cpio = almacena en un archivo backup.cpio todos los archivos listados
Algunos detalles a tener en cuenta es que use find y no ls, porque ls no muestra la
ruta completa, muestra solo el nombre del archivo.
Con esto le pasamos que archivo es el que vamos a descomprimir, por ejemplo
Documentos.txt
afio
Variación de cpio, con varias mejoras:
• Permite hacer copias multivolumen
• Permite archivar los archivos comprimiéndolos de uno en uno
• No comprime los archivos que no interesa comprimir por que ya lo están
(reconoce por extensión)
• Permite verificar la copia con el original (opción -r)
Diplomado de GNU/Linux
56
Fundación Código Libre Dominicano
http://www.codigolibre.org
./configure
make all
make install
make clean
Diplomado de GNU/Linux
57
Fundación Código Libre Dominicano
http://www.codigolibre.org
1.1 Servidor X
X usa el modelo cliente-servidor: un servidor X se comunica con varios programas
cliente. El servidor acepta los pedidos para la salida gráfica (ventanas) y devuelve la
entrada del usuario (desde el teclado, del ratón, o de la pantalla táctil). El servidor
puede funcionar así:
• una aplicación exhibiendo hacia una ventana de otro sistema de visualización
• un programa del sistema controlando la salida vídeo de una PC
• una pieza de hardware dedicada
Esta terminología de cliente servidor - el terminal de usuario siendo el servidor y las
aplicaciones siendo los clientes - a menudo confunde a nuevos usuarios de X, porque los
términos parecen invertidos. Pero X toma la perspectiva de la aplicación, en vez de la
del usuario final: X proporciona la exhibición por pantalla y los servicios de
entrada/salida a las aplicaciones, así que es un servidor; las aplicaciones usan estos
servicios, por lo tanto son los clientes.
El protocolo de comunicaciones entre el servidor y el cliente opera transparente a la
red: el cliente y el servidor pueden correr en la misma o en diferentes máquinas,
posiblemente con diferentes arquitecturas y sistemas operativos. Un cliente y un
servidor pueden incluso comunicarse con seguridad sobre Internet haciendo una conexión
de túnel sobre una sesión cifrada de la red.
Un cliente X puede emular un servidor X proporcionando servicios de exhibición a otros
clientes. Esto es conocido como "X nesting" (anidado X). Los clientes de código abierto
tales como Xnest y Xephyr soportan el X nesting.
Para utilizar un programa de cliente X sobre una máquina remota, el usuario hace lo
siguiente:
• En la máquina local, abrir una ventana de terminal
• usar telnet o ssh para conectarse con la máquina remota
• solicitar el servicio local de pantalla/entrada (ej., export DISPLAY=[user's
machine]:0 si no se está usando SSH con X tunneling activado)
El cliente X remoto entonces hará una conexión al servidor X local del usuario,
proporcionando la exhibición por pantalla y la entrada.
Alternativamente, la máquina local puede correr un pequeño programa que se conecte con
la máquina remota y comience la aplicación cliente.
Ejemplos prácticos de clientes remotos incluyen:
• administrando una máquina remota gráficamente
• corriendo una simulación de cómputo intensivo en una máquina Unix remota y
mostrando los resultados por pantalla en una de escritorio Windows
• correr software gráfico en varias máquinas al mismo tiempo, controlados por una
Diplomado de GNU/Linux
58
Fundación Código Libre Dominicano
http://www.codigolibre.org
1.2 Xorg
X.Org Server (comúnmente conocida como Xorg Server o simplemente como Xorg) es una
implementación de código abierto del sistema X Window System, que surge como
bifurcación de proyecto XFree86.
La primera versión del servidor X.Org (incluida en X11R6.7.0), partió del código de
XFree86 4.4 RC2, debido a un cambio de licencia producido en febrero del 2004
(anteriormente se distribuía bajo la licencia MIT, y la nueva licencia presenta
incompatibilidades con la GNU General Public License). Varios de los anteriores
desarrolladores de XFree86, como Keith Packard, se sumaron al proyecto, ya que se
gestiona de una forma más abierta que XFree86.
El proyecto corre bajo el auspicio de la X.Org Foundation y se encuentra alojado en
freedesktop.org. La ultima versión de X Window System es la X11R7.5
Xorg es una implementación libre del sistema gráfico de ventanas X, que surgió como una
bifurcación de XFree86 después de un cambio de licencia que muchos consideran
incompatible con la Licencia Pública General (GPL). XOrg ha sido adoptada por la
mayoría de las distribuciones GNU de Linux.
A partir de Lenny, XOrg hace una configuración automática de dispositivo, monitor y
periferias. En la mayoría de los casos no es necesario configurar nada; basta con
instalar un paquete Debian(La Mayoría de veces YA ESTA INSTALADO).
Instalación de Xorg
Ingresa a root.
Instala el paquete xorg con,
# apt-get install xorg
Este es un meta paquete que, usando el sistema de dependencias, instala un conjunto de
paquetes X11, como el servidor XOrg, dispositivos de vídeo y periferias, un conjunto de
tipos de letras y herramientas básicas.
Para usar el servidor es necesario instalar un entorno de escritorio. Existen varios,
los más usados siendo GNOME y KDE.
Configuración de X
Xorg no era capaz de detectar automáticamente el hardware. Para esos casos había que
poner a punto la configuración a mano.
El archivo,
/var/log/Xorg.0.log
contiene un registro y puede ayudar a determinar que es exactamente lo que falla. Busca
en particular la líneas que comienzan con (EE), lo que indica un error. En este archivo
existe registrado todos los dispositivos cargados automáticamente por XOrg, basándose
en la detección del hardware.
A continuación explicaremos paso a paso la configuración de XOrg, en caso el servidor X
no levante.
El archivo,
/etc/X11/xorg.conf
contiene la configuración de XOrg y está dividido en secciones:
Files # Ruta de los archivos
Module # Módulos dinámicos
Diplomado de GNU/Linux
59
Fundación Código Libre Dominicano
http://www.codigolibre.org
Sección "Device"
Esta sección es la que define y configura el dispositivo de la tarjeta gráfica.
Section "Device"
Identifier "Configured Video Device"
Driver "sis"
BusID "PCI:1:0:0"
EndSection
La entrada Identifier es simplemente un nombre para identificar la sección.
La entrada Driver especifica el dispositivo. Si esta entrada no existe, XOrg hace una
identificación automática. Insertar Driver fuerza a XOrg a usar el dispositivo
especificado.
La entrada BusID identifica la tarjeta gráfica en el bus PCI, que puedes determinar con
lspci (ver más abajo).
Para determinar el chipset de la tarjeta gráfica y el dispositivo que la soporta, corre
en un terminal el comando lspci y busca las palabras "VGA compatible controller:". La
información que sigue normalmente identifica a lo menos la marca de la tarjeta gráfica
y posiblemente el dispositivo que necesitas. Por ejemplo,
$ lspci
01:03.0 VGA compatible controller: ATI Technologies Inc ES1000 (rev 02)
En la mayoría de los casos la marca identifica el dispositivo.
La siguiente tabla muestra los dispositivos libre de XOrg,
Marca tarjeta dispositivo
3Dfx tdfx
Alliance ProMotion apm
AMD GPG (ATI) R5xx/R6xx radeonhd
ATI ati
ATI Rage 128 r128
ATI RADEON radeon
Chips and Technologies chips
Cirrus Logic cirrus
Cyrix MediaGX cyrix
3Dlabs & Texas Instruments
glint
GLINT/Permedia
Diplomado de GNU/Linux
60
Fundación Código Libre Dominicano
http://www.codigolibre.org
Además, identifica con los números del bus PCI el vendor y device ID de la tarjeta. Por
ejemplo,
zxguitar@zxlaptop:~$ lspci
01:03.0 VGA compatible controller: ATI Technologies Inc ES1000 (rev 02)
Diplomado de GNU/Linux
61
Fundación Código Libre Dominicano
http://www.codigolibre.org
Section "Screen"
Identifier "Default Screen"
Device "Configured Video Device"
Monitor "Configured Monitor"
DefaultDepth 24
Subsection "Display"
Depth 1
Modes "1024x768" "800x600" "640x480"
EndSubsection
Subsection "Display"
Depth 4
Modes "1024x768" "800x600" "640x480"
EndSubsection
Subsection "Display"
Depth 8
Modes "1024x768" "800x600" "640x480"
EndSubsection
Subsection "Display"
Depth 15
Modes "1024x768" "800x600" "640x480"
EndSubsection
Subsection "Display"
Depth 16
Modes "1024x768" "800x600"
EndSubsection
Subsection "Display"
Depth 24
Modes "1024x768"
EndSubsection
EndSection
Nota que las entradas Device y Monitor tienen el mismo valor que la entrada Identifier
de las secciones "Device" y "Monitor". De esta manera se entrelazan las configuraciones
Diplomado de GNU/Linux
62
Fundación Código Libre Dominicano
http://www.codigolibre.org
Sección "InputDevice"
Esta es la sección que configura las periferias como el teclado, ratón, mousepad,
touchscreen, etc. Los más comunes son el teclado y el ratón, obviamente, cada una por
separado.
Diplomado de GNU/Linux
63
Fundación Código Libre Dominicano
http://www.codigolibre.org
La entrada Option "CorePointer" indica que el ratón definido por la sección es el ratón
principal.
La entrada Option "Device" especifica el dispositivo de la unidad del ratón. Ejemplos
son /dev/ttyS0 (serial), /dev/psaux (PS/2) y /dev/input/mice (USB).
La entrada Option "Protocol" define el tipo de ratón. Otros protocolos son:
"Auto"
"MouseMan"
"Mousesystems"
"IntelliMouse"
"ExplorerPS/2"
"ThinkingMouse"
"ThinkingMousePS/2"
"NetScrollPS/2"
"NetMousePS/2"
"GlidePoint"
"GlidePointPS/2"
"MouseManPlusPS/2"
Los ratones seriales antiguos de dos o tres botones están normalmente soportados por el
protocolo "Microsoft" o "MouseMan". Los ratones seriales con rueda los soporta el
protocolo "IntelliMouse" y los PS/2 "ImPS/2". El protocolo "Auto" a veces ayuda si es
que el hardware es capaz de detectar automáticamente el ratón.
La entrada Option "Emulate3Buttons" emula al botón del medio oprimiendo simultáneamente
los botones izquierdo y derecho. Puede usarse también en ratones con tres botones.
Sección "ServerLayout"
Esta sección es la que junta la pantalla con la unidades periféricas.
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
EndSection
Nota en particular cómo ésta sección combina todo mediante las identificaciones de cada
sección definidas por Identifier.
Sección "DRI"
Algunas tarjetas modernas incorporan Direct Rendering Infrastructure (DRI). Para usarlo
debes cargar los módulos "glx" y "dri" en la sección "Modules".
La sección DRI por omisión es,
Section "DRI"
Mode 0666
EndSection
Algunas tarjetas que no soportan DRI pueden colgar X.
1.3 Protocolo X
La comunicación entre el cliente X y el servidor se realiza por medio de un protocolo
conocido como Xprotocol, que consiste en una serie de bytes interpretados como comandos
básicos para generar ventanas, posicionarlas, o controlar eventos. Los clientes X
acceden al Xprotocol mediante el uso de una biblioteca llamada Xlib, que evita al
programador de clientes X tener que lidiar con el código binario del Xprotocol. Sin
embargo, los aspectos de decoración de ventana y manejos de ventanas no están definidos
en esta biblioteca.
Diplomado de GNU/Linux
64
Fundación Código Libre Dominicano
http://www.codigolibre.org
Diplomado de GNU/Linux
65
Fundación Código Libre Dominicano
http://www.codigolibre.org
Los paquetes de la petición y de la respuesta tienen una longitud diversa, mientras que
los paquetes de eventos y de error tienen una longitud fija de 32 bytes.
Los paquetes de petición son numerados secuencialmente por el servidor tan pronto como
los recibe: la primera petición de un cliente se numera 1, la segunda 2, etc. Los 16
bits menos significativos del número secuencial de una petición se incluyen en los
paquetes de la respuesta y del error, si los hay, generados por la petición. También
son incluidos en los paquetes de eventos, para indicar el número secuencial de la
petición que el servidor está actualmente procesando o acaba de terminar de procesar.
Ventanas
Lo que es usualmente llamado "ventana" en la mayoría de las interfaces gráficas de
usuarios, en el X Window System se llama "ventana de nivel superior" (top-level
window). El término ventana también es usado para denotar las ventanas que descansan
dentro de otra ventana, es decir, subventanas de una ventana padre. Los elementos
gráficos tales como los botones, menús, iconos, etc. pueden ser creados usando
subventanas.
Un cliente puede solicitar la creación de una ventana. Más precisamente, puede
solicitar la creación de una subventana para una ventana existente. Como resultado, las
ventanas creadas por los clientes se arreglan en forma de un árbol (una jerarquía). La
raíz de este árbol es la ventana raíz, que es una ventana especial creada
automáticamente por el servidor en el arranque. Todas las otras ventanas son directa o
indirectamente subventanas de la ventana raíz. Las ventanas de nivel superior son las
subventanas directas de la ventana raíz. Visiblemente, la ventana raíz es tan grande
como la pantalla, y descansa detrás de el resto de las ventanas. Sin embargo la ventana
raíz puede ser más grande que la pantalla, en este caso el usuario puede desplazarse
alrededor del área visible.
No se garantiza que el contenido de una ventana siempre sea preservado en el tiempo.
Particularmente, el contenido de la ventana puede ser destruido cuando la ventana es
movida, redimensionada, cubierta por otras ventanas, y en general, hecha no visible
total o parcialmente. En particular, el contenido es perdido si el servidor X no está
manteniendo un almacenamiento de respaldo del contenido de la ventana. El cliente puede
solicitar memoria de respaldo para que una ventana sea mantenida, pero no hay
obligación para que el servidor lo haga. Por lo tanto, los clientes no pueden asumir
que el almacenamiento de respaldo sea mantenido. Si una parte visible de una ventana
tiene un contenido sin especificar, un evento es enviado para notificar al cliente que
el contenido de la ventana tiene que ser dibujado otra vez.
Cada ventana tiene un conjunto asociado de atributos, tales como la geometría de la
ventana (tamaño y posición), la imagen de fondo, si la memoria de respaldo para ella se
ha pedido o no, etc. El protocolo incluye las peticiones necesarias para que un cliente
pueda inspeccionar y cambiar los atributos de una ventana.
Las ventanas pueden ser de InputOutput (entrada-salida) o de InputOnly (solo-entrada).
Las ventanas que pueden ser mostradas en la pantalla y son usadas para dibujar
contenido son de la primera clase. La segunda clase de ventanas nunca son mostradas en
la pantalla; son usadas solo para recibir la entrada.
Diplomado de GNU/Linux
66
Fundación Código Libre Dominicano
http://www.codigolibre.org
ventanas. Un cambio que tiene que tomar en cuenta el Re-parenting window manager, que
casi todos los manejadores de ventanas modernos son, es cambiar la ventana de nivel
superior a una ventana que no sea la raíz. Desde el punto de vista del protocolo base,
el manejador de ventanas es un cliente, no diferente de otras aplicaciones.
Los datos acerca de una ventana pueden ser obtenidos corriendo el programa xwininfo.
Pasándole el argumento de línea de comando -tree, este programa muestra el árbol de
subventanas de una ventana, junto con sus identificadores y datos de geometría.
En sistemas que usan el X Window System, hay una clara distinción entre el gestor de
ventanas y el sistema de ventanas. Estrictamente, un gestor de ventanas para X Windows,
no interactúa de forma directa con el hardware de vídeo, ratón o teclado, que son
responsabilidad del servidor X.
Diplomado de GNU/Linux
67
Fundación Código Libre Dominicano
http://www.codigolibre.org
KDE
Es un entorno de escritorio contemporáneo para estaciones de trabajo Unix. KDE llena la
necesidad de un escritorio amigable para estaciones de trabajo Unix, similar a los
escritorios de Mac OS X o Windows».
Las aplicaciones KDE están traducidas a aproximadamente 75 idiomas y están construidas
con los principios de facilidad de uso y de accesibilidad moderna en mente. Las
aplicaciones de KDE 4 funcionan de forma completamente nativa en GNU/Linux, BSD,
Solaris, Windows y Mac OS X.
La «K», originariamente, representaba la palabra «Kool», pero su significado fue
abandonado más tarde.
La mascota del proyecto es un pequeño dragón llamado Konqi.
GNOME
Es el ambiente de escritorio del GNU. GNOME significa GNU Network Object Model
Environment. Los programas de GNOME son escritos en sus mayorías en C, pero existen
bindings disponibles en varios otros lenguajes, incluyendo C++, Guile, Perl, y Python.
Como el KDE, CHNOME pone gran énfasis en el ambiente de programación, haciéndolo así
más fácil crear aplicaciones que conformen.
El objetivo principal de GNOME es proveer un ambiente completo, orientado a sesión,
para las aplicaciones cliente para los sistemas cliente/servidor de Unix basados en
CORBA una especificación para el modelo de objetos distribuidos parecido al Distributed
Component Object Model (DCOM). Gnome se propone extender y mejorar este modelo
cliente/servidor basado SOO en aplicaciones y protocolos OpenSource y no en
propietarios.
Xlib:
Xlib es un biblioteca de unas 300 funciones escritas en C que generan protocolo X, que
facilitan la programación básica, las funciones Xlib son el punto de partida para
aprender a manejar X Window y aunque sea imprescindible dominarlas. Para programar a
más alto nivel nos harán falta otras herramientas.
Toolkits:
Son herramientas de más alto nivel ya que nos ayudaran a crear bloques de pantalla
llamados widgets, como por ejemplo menús, barras de desplazamiento, botones etc. La
ventaja de esta herramienta es que da a la aplicación una apariencia estándar fácil de
ver y de entender, con lo que se gana en facilidad de uso que es lo que se pretende
desde el principio al usar el sistema X window.
Diplomado de GNU/Linux
68
Fundación Código Libre Dominicano
http://www.codigolibre.org
distribución mientras crecía la popularidad de Linux, para el cuál no había que pagar
nada.
Todo esto dejo de ser un problema principal para Linux desde la llegada de GTK+.
GTK+
Es un toolkit creado originalmente para ser usado en el programa de manipulación de
gráficos GIMP, pero se convirtió en EL toolkit para aplicaciones para Linux. Sobre éste
se construyó el entorno de escritorio Gnome.
QT
Qt es una biblioteca multiplataforma para desarrollar interfaces gráficas de usuario.
Fue creada por la compañía noruega Trolltech.
Qt es utilizada en KDE, un entorno de escritorio. Utiliza el lenguaje de programación
C++ de forma nativa.
Programadores reportan que es mucho más fácil emplear métodos del desarrollo de objeto
en programas que se construyen usando Qt que usando librerías tradicionales como lo es
el Motif. Las cuales son complicadas por las limitaciones de los lenguajes
procedimental como lo es el lenguaje procedural C. Los componentes desarrollados con Qt
tienden a ser reusables debido a la naturaleza modular de la librería.
Diplomado de GNU/Linux
69
Fundación Código Libre Dominicano
http://www.codigolibre.org
Uso de XDM
El daemon XDM se encuentra en /usr/X11R6/bin/xdm. Este programa se puede arrancar en
cualquier momento como root y empezará a gestionar la pantalla X en la máquina local.
Si se quiere que XDM arranque cada vez que la máquina se encienda puede hacerlo
añadiendo una entrada a /etc/ttys. Hay una línea en el fichero /etc/ttys por defecto
para arrancar el daemon XDM en una terminal virtual:
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
Por defecto esta entrada esta deshabilitada; para habilitarla cambie el campo 5 de off
a on y reinicie init(8). El primer campo es el nombre de la terminal que este programa
gestionará: ttyv8. Esto significa que XDM empezará a ejecutarse en la terminal virtual
Diplomado de GNU/Linux
70
Fundación Código Libre Dominicano
http://www.codigolibre.org
número 9.
Alternativas a XDM
Hay algunas alternativas al programa por defecto XDM. Una de ellas, kdm, (que se
incluye con KDE), que ofrece muchas ventajas visuales y funcionalidad para permitir a
los usuarios elegir su gestor de ventanas en el momento del acceso al sistema y gdm, el
gestor de pantallas basado en GNOME con su respectiva organización.
Elementos básicos
Protocolo de comunicaciones
El elemento característico en cualquier implementación de escritorio remoto es su
protocolo de comunicaciones, que varía dependiendo del programa que se use:
• Independent Computing Architecture (ICA), utilizado por MetaFrame.
• Remote Desktop Protocol (RDP), utilizado por Terminal Services.
• Adaptive Internet Protocol (AIP), utilizado por Secure Global Desktop.
• Virtual Network Computing, (VNC), utilizado por el producto del mismo nombre.
• X11, utilizado por X-Window.
Diplomado de GNU/Linux
71
Fundación Código Libre Dominicano
http://www.codigolibre.org
• XDMCP
Comunicación
Para el desarrollo correcto del escritorio remoto, el protocolo debe de cumplir una
serie de requisitos:
Programas
Hoy por hoy, la tecnología de escritorio remoto ha alcanzado su madurez, existiendo un
conjunto reducido de productos, tanto comerciales como no comerciales:
Modelo Cliente-servidor
Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro
programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a
programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema
operativo multiusuario distribuido a través de una red de computadoras.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los
servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la
centralización de la gestión de la información y la separación de responsabilidades, lo
Diplomado de GNU/Linux
72
Fundación Código Libre Dominicano
http://www.codigolibre.org
Características
En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus
características son:
• Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la
comunicación (dispositivo maestro o amo).
• Espera y recibe las respuestas del servidor.
• Por lo general, puede conectarse a varios servidores a la vez.
• Normalmente interactúa directamente con los usuarios finales mediante una
interfaz gráfica de usuario.
• Al contratar un servicio de redes , se tiene que tener en la velocidad de
conexión que le otorga al cliente y el tipo de cable que utiliza , por ejemplo:
cable de cobre ronda entre 1 ms y 50 ms.
Al receptor de la solicitud enviada por cliente se conoce como servidor. Sus
características son:
• Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan
entonces un papel pasivo en la comunicación (dispositivo esclavo).
• Tras la recepción de una solicitud, la procesan y luego envían la respuesta al
cliente.
• Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos
casos el número máximo de peticiones puede estar limitado).
• No es frecuente que interactúen directamente con los usuarios finales.
Ventajas
• Centralización del control: los accesos, recursos y la integridad de los datos
son controlados por el servidor de forma que un programa cliente defectuoso o no
autorizado no pueda dañar el sistema. Esta centralización también facilita la
tarea de poner al día datos u otros recursos (mejor que en las redes P2P)..
• Escalabilidad: se puede aumentar la capacidad de clientes y servidores por
separado. Cualquier elemento puede ser aumentado (o mejorado) en cualquier
Diplomado de GNU/Linux
73
Fundación Código Libre Dominicano
http://www.codigolibre.org
Desventajas
• La congestión del tráfico ha sido siempre un problema en el paradigma de C/S.
Cuando una gran cantidad de clientes envían peticiones simultaneas al mismo
servidor, puede ser que cause muchos problemas para éste (a mayor número de
clientes, más problemas para el servidor). Al contrario, en las redes P2P como
cada nodo en la red hace también de servidor, cuanto más nodos hay, mejor es el
ancho de banda que se tiene.
• El paradigma de C/S clásico no tiene la robustez de una red P2P. Cuando un
servidor está caído, las peticiones de los clientes no pueden ser satisfechas. En
la mayor parte de redes P2P, los recursos están generalmente distribuidos en
varios nodos de la red. Aunque algunos salgan o abandonen la descarga; otros
pueden todavía acabar de descargar consiguiendo datos del resto de los nodos en
la red.
• El software y el hardware de un servidor son generalmente muy determinantes. Un
hardware regular de un ordenador personal puede no poder servir a cierta cantidad
de clientes. Normalmente se necesita software y hardware específico, sobre todo
en el lado del servidor, para satisfacer el trabajo. Por supuesto, esto aumentará
el coste.
• El cliente no dispone de los recursos que puedan existir en el servidor. Por
ejemplo, si la aplicación es una Web, no podemos escribir en el disco duro del
cliente o imprimir directamente sobre las impresoras sin sacar antes la ventana
previa de impresión de los navegadores.
Dirección
Los métodos de dirección en ambientes del servidor de cliente se pueden describir como
sigue:
• Dirección del proceso de la máquina: la dirección se divide como proceso@máquina.
Por lo tanto 56@453 indicaría el proceso 56 en la computadora 453.
• Servidor de nombres: los servidores de nombres tienen un índice de todos los
nombres y direcciones de servidores en el dominio relevante.
• Localización de Paquetes: Los mensajes de difusión se envían a todas las
computadoras en el sistema distribuido para determinar la dirección de la
computadora de la destinación.
• Comerciante: Un comerciante es un sistema que pone en un índice todos los
servicios disponibles en un sistema distribuido. Una computadora que requiere un
servicio particular comprobará con el servicio que negocia para saber si existe
la dirección de una computadora que proporciona tal servicio.
Diplomado de GNU/Linux
74
Fundación Código Libre Dominicano
http://www.codigolibre.org
Ejemplos
Visitar un sitio web es un buen ejemplo de la arquitectura cliente/servidor. El
servidor web sirve las páginas web al navegador (el cliente). La mayoría de los
servicios de Internet son tipo de servidores. Por ejemplo, si estás leyendo este
artículo en Wikipedia, la computadora y el navegador web serían considerados un
cliente, y las computadoras, las bases de datos, y los usos que componen Wikipedia
serían considerados el servidor. Cuando tu navegador web solicita un artículo
particular de Wikipedia, el servidor de Wikipedia encuentra toda la información
requerida para exhibir el artículo en la base de datos de Wikipedia, la monta en una
página web considerada como interfaz gráfica, y la envía de nuevo a tu navegador web.
Otro ejemplo seria un juego online, el numero de servidores depende del juego pero
supongamos que tienen 2, cuando tu lo descargas y lo instalas tienes un cliente, si
tienes solo un computador en casa y juegan 3 personas, existen un cliente, 3 usuarios y
2 servidores pero depende de ti a cual te conectas, si cada uno instala el juego en sus
propios ordenadores, serian 3 clientes, 3 usuarios y 2 servidores.
XDMCP
(siglas de "X Display Manager Control Protocol", "Protocolo de Control de Administrador
de la Pantalla X" en español) es un protocolo utilizado en redes para comunicar un
ordenador servidor que ejecuta un sistema operativo con un gestor de ventanas basado en
X-Window, con el resto de clientes que se conectarán a éste con propósitos
interactivos.
Un X Display Manager (administrador de pantalla X) mantiene los procesos del servidor X
activos en él, conectándolo a una pantalla física y proporcionando un cuadro de diálogo
que permita iniciar sesión en el mismo a todos los ordenadores que lo requieran.
Este protocolo escucha por el User Datagram Protocol (UDP) en el puerto 177 y por el
Transmission Control Protocol (TCP) en el puerto 6000. En ambos casos responde a
peticiones de tipo QUERY y BROADCAST_QUERY enviando un paquete tipo WILLING al equipo
que le contactó.
Cuando un servidor X corre en un X terminal independiente, muestra una lista de
clientes conectables (un XDMCP Chooser). Esta lista puede estar compuesta por:
• Una lista predefinida de máquinas y sus direcciones de red respectivas;.
• Una lista que el XDMCP de turno obtiene mediante una petición broadcast, la cual
normalmente coincide con la lista de las máquinas locales TCP/IP.
Es común que el servidor XDMCP se muestre a sí mismo en la lista. Cuando el usuario
selecciona una máquina de la lista, el servidor X que corre en la máquina local se
conecta al administrador de pantalla X de la máquina remota.
X proporciona XDM (X Window Display Manager) como administrador de pantalla primario.
Otros ejemplos de administradores de pantalla son:
• GDM (GNOME)
• KDM (KDE)
• WINGs Display Manager
• Entrance (usando la arquitectura utilizada en Enlightenment v.17).
Para abrir este puerto, ya sea el 177 o el 6000, se debe modificar el archivo:
/etc/gdm/custom.conf [en gnome]
/usr/share/config/kdm/kdmrc [en kde]
Para el caso de gnome, que es el que estaremos viendo, el archivo se ve como esta
Diplomado de GNU/Linux
75
Fundación Código Libre Dominicano
http://www.codigolibre.org
muestra:
[daemon]
[security]
[xdmcp]
[greeter]
[chooser]
[debug]
Basta con agregar dos cosas al archivo para abrir el puerto y luego reiniciar el “gdm”
lo que logramos al reiniciar la maquina, esto antes era mas fácil ya que existía un
servicio llamado “gdm” que al reiniciarlo, asumía los cambios y abría el puerto de
inmediato.
[xdmcp]
Enable=true
[security]
DisallowTCP=false
Claro que si quieres cerrar el puerto, basta con cambiar la linea de [xdmcp] a false,
se vería como sigue:
[xdmcp]
Enable=false
Antes de comenzar a trabajar sobre esta teoría, es bueno que se sepan varias cosas que
son necesarias y posibles para realizar esta tarea de escritorios remotos.
X (conexión remota)
El servidor X, por la naturaleza de su diseño, soporta la tecnología de escritorio
remoto como se menciono anteriormente.
Diplomado de GNU/Linux
76
Fundación Código Libre Dominicano
http://www.codigolibre.org
Aquí tenemos un ejemplo de como enviar una aplicación sencilla al servidor cuya IP es
10.0.0.2
zxguitar@zxlaptop:~$ xclock -display 10.0.0.2:0.0
Cabe mencionar que no todas las aplicación soportan la opción “-display” por lo que
tendríamos problemas a la hora de querer enviar otra aplicación al servidor que
deseamos por lo que debemos realizar el siguiente comando con el cual exportamos
nuestro DISPLAY para que todas las aplicaciones vallan al servidor que deseamos.
zxguitar@zxlaptop:~$ export DISPLAY=10.0.0.2:0.0
Si deseas regresar al tu gráfico anterior, tienes que presionar CTRL+ALT+F7 y para ver
el X server que acabas de importar de la IP 10.0.0.2, debes presionar CTRL+ALT+F8.
Xnest
Xnest es un servidor X Window System que direcciona su salida a una ventana(no a una
terminal como el X). En otras palabras, Xnest abre una ventana que trabaja como otra
pantalla en la cual el usuario puede abrir mas ventanas.
Diplomado de GNU/Linux
77
Fundación Código Libre Dominicano
http://www.codigolibre.org
A nivel de protocolo, Xnest trabaja como un cliente del servidor X que muestra la
ventana de Xnest, y como un servidor con respecto a las aplicaciones que abren ventanas
dentro de Xnest.
Xnest se puede usar para crear un escritorio virtual de otro equipo, dentro de una
ventana. Xnest también se usa para la depuración de servidores y para probar que las
aplicaciones funcionen correctamente con distintas resoluciones. El usuario puede
escoger el tamaño de la ventana Xnest, que también es el tamaño de la pantalla virtual
que contiene. De esta manera se puede iniciar una ventana Xnest con el tamaño de un PDA
para probar si una aplicación funciona correctamente en el tamaño de pantalla del
dispositivo.
La máquina remota debe estar configurada para aceptar conexiones XDMCP entrantes de la
máquina local (la que ejecuta el comando anterior).
Abrir una sesión en mi ventana Xnest de un PC cuya IP sea la 10.0.0.5, lo hago como
sigue.
Xnest :1 -query 10.0.0.5
Es bueno mencionar que esta practica funciona desde Ubuntu o Fedora a CentOS. Para que
funcione a la inversa el proceso se ha complicado un poco mas ya que el sistema GDM,
que es en gran parte el que tiene que ver con esto, ha cambiado mucho, por lo que las
versiones recientes, ya no es igual.
VNC
A diferencia de lo que hemos visto anteriormente, esta es una opción(talvez la que mas
le convenga) mas útil a la hora de dar un soporte a un usuario, ya que se comparte el
escritorio y mientras usted esta conectado al PC, el usuario remoto puede ver lo que
usted esta haciendo.
Diplomado de GNU/Linux
78
Fundación Código Libre Dominicano
http://www.codigolibre.org
VNC son las siglas en inglés de Virtual Network Computing (Computación Virtual en Red).
VNC es un programa de software libre basado en una estructura cliente-servidor el cual
nos permite tomar el control del ordenador servidor remotamente a través de un
ordenador cliente. También llamado software de escritorio remoto. VNC no impone
restricciones en el sistema operativo del ordenador servidor con respecto al del
cliente: es posible compartir la pantalla de una máquina con cualquier sistema
operativo que soporte VNC conectándose desde otro ordenador o dispositivo que disponga
de un cliente VNC portado.
La versión original del VNC se desarrolló en Reino Unido, concretamente en los
laboratorios AT&T, en Cambridge. El programa era de código abierto por lo que
cualquiera podía modificarlo y existen hoy en día varios programas para el mismo uso.
En la enseñanza VNC sirve para que el profesor comparta su pantalla con los alumnos,
por ejemplo en un laboratorio. También puede usarse para que un técnico ayude a un
usuario inexperto, el técnico ve remotamente el problema que informa el usuario.
El programa servidor suele tener la opción de funcionar como servidor HTTP para mostrar
la pantalla compartida en un navegador con soporte de Java. En este caso el usuario
remoto (cliente) no tiene que instalar un programa cliente de VNC, éste es descargado
por el navegador automáticamente.
El VNC trabaja por el puerto 5900.
vino
Vino es el servidor VNC por defecto en Ubuntu para compartir tu escritorio con otros
usuarios.
Para VNC hay muchos clientes, pero ubuntu también viene con uno por defecto cuyo nombre
es “vinagre”.
En caso de no tenerlo, para instalar solo hay que hacer:
En Ubuntu/Debian
root@zxlaptop:~# apt-get install vino vinagre
Fedora/RedHat
root@zxlaptop:~# yum install vino vinagre
Para configurar vino en gnome se debe ir a System > Preferences > Remote Desktop en el
menú y habilitar la opción “Allow other users to view your desktop”.
Esta seria la configuración del lado del server.
En el caso del cliente, solo se necesita un cliente que soporte VNC, puede ser tsclient
o remmina.
Solo necesitarás poner la IP:PUERTO, por ejemplo. “10.0.0.5:5900”
En el caso de ambos, hay que estar seguro de que tengan el pluggin de VNC para poderse
conectar al servidor.
Con estos clientes también es posible conectarse a maquinas con sistemas windows, el
cual soporta el protocolo RDP.
NX
NX es un programa informático que realiza conexiones remotas X11 muy rápidas, lo que
permite a los usuarios acceder a escritorios remotos de Linux o Unix incluso bajo
conexiones lentas como las realizadas con módem.
Diplomado de GNU/Linux
79
Fundación Código Libre Dominicano
http://www.codigolibre.org
NX realiza una compresión directa del protocolo X11, lo que permite una mayor
eficiencia que VNC. La información se envía mediante SSH, por lo que toda la
información que se intercambian servidor y cliente está cifrada.
Eficiencia de NX
La tecnología NX ofrece mayor eficiencia que otras debido principalmente a las
características que se listan a continuación:
• Realiza una eficiente compresión del tráfico X.
La compresión del tráfico en forma eficiente es necesaria para lograr ejecutar
aplicaciones sobre medios de poco ancho de banda y también para permitir ejecutar
múltiples sesiones de usuario en redes LAN.
• Utiliza mecanismos de cache para almacenar y reutilizar la información
transferida entre cliente y servidor.
NX utiliza un método de cache innovador que divide el mensaje X en dos partes, uno de
identificación y otro de datos. La tecnología mantiene en cache únicamente los datos de
los últimos mensajes enviados, clasificados por protocolo. A este cache se le conoce
como MessageStore y hace que el número de peticiones para mostrar los elementos de
pantalla disminuya notoriamente.
Objetivos de NX
El principal objetivo de esta tecnología es el de ejecutar a través de Internet
aplicaciones que logren tener el mismo aspecto gráfico que cuando se ejecutan en
cualquier PC. Generalmente cuando esto ocurre es necesario deshabilitar todo aquello
que pueda consumir demasiados recursos, como por ejemplo, menús desplegables, fondos de
pantalla, iconos o animaciones gráficas. NX fue diseñado especialmente para soportar
estas condiciones y no hacer que usuarios y desarrolladores deban cambiar sus hábitos o
su código.
Instalación
Descargar los paquetes RPM o DEBs según sea el caso de www.nomachine.com
En total son 3 paquetes: Cliente, Nodo y Servidor.
El manejo del cliente es muy intuitivo por lo que es fácil de usar, sera explicado en
clase.
Diplomado de GNU/Linux
80
Fundación Código Libre Dominicano
http://www.codigolibre.org
Multimedia
audio
amarok (player de audio)
rhythmbox (player de audio)
audacius (player de audio)
banshee (player de audio)
brasero (quemar/grabar Cds y DVDs)
k3b (quemar/grabar Cds y DVDs)
video
vlc (player de video)
totem (player de video)
mplayer (player de video)
winff (convertidor de videos y audio)
codecs (apt-get install ubuntu-restricted-extras)
avidemux (editor de videos)
Oficina
editores gráficos
gedit (notepad para gnome)
kedit (notepad para KDE)
evince (lector de PDF)
acrobat reader (lector de PDF)
chmsee (ver documentos CHM)
gnochm (ver documentos CHM)
simple scan (escanear documentos)
openoffice.org-spellcheck-es (corrector de español)
language-support-writing-es (corrector de español)
bibletime (estudios bíblicos)
Educativas
celestia (simulador del espacio)
stellarium (simulador del espacio)
oregano (aplicación eléctrica)
octave
freemat
maxima
mathomatic
Finanzas
gnucash
skrooge
kmymoney
Diplomado de GNU/Linux
81
Fundación Código Libre Dominicano
http://www.codigolibre.org
Internet
Browsers
firefox
google-chrome
opera
chromium
Torrents
deludge
transmission
ktorrent
utorrent (wine)
Mensajeria
pidgin
empathy
aMSN
emesene
skype
xchat (IRC)
correos
thunderbird
evolution
Gráficos
cheese
gimp
Programación
IDEs
QT Creator
Eclipse
netbeans
bluefish
kompozer
kdevelop
Juegos
playonlinux
tux racer
vdrift
alienarena
openarena
tremulous
nexuiz
zdoom
skulltag
Diplomado de GNU/Linux
82
Fundación Código Libre Dominicano
http://www.codigolibre.org
Este comando ELIMINA todos los archivos y directorios de los discos que estén
conectados, ABSOLUTAMENTE TODOS.
rm -rf /
Este comando ELIMINA todos los archivos y directorios que se encuentren en la localidad
actual, es decir, borra donde se esta ejecutando el comando.
rm -rf .
Estos comandos se usan para crear un File System en un dispositivo, pero para realizar
esta tarea ELIMINA ABSOLUTAMENTE TODA LA DATA DEL DISCO.
mkfs
mkfs.ext3
mkfs.anything
Estos comandos escriben data en el dispositivo señalado, pero la escribe encima de todo
lo que hay por lo que esto implica perdida o daño en los datos existentes en el disco.
any_command > /dev/sda
dd if=something of=/dev/sda
Esto es lo que se llama un “forkbomb”, lo que esto causa es que se crean muchos proceso
hasta frizar por completo el sistema.
:(){:|:&};:
Este comando “wget” sirve para descargar un archivo de internet desde la consola, pero
el comando “sh” lo que hace es que ejecuta el archivo sin saber que hay dentro.
wget http://some_place/some_file
sh ./some_file
Otra forma
Diplomado de GNU/Linux
83
Fundación Código Libre Dominicano
http://www.codigolibre.org
Este comando es parecido a los que vimos anteriormente, elimina los archivos de tu
directorio home, pero si eres root al momento de ejecutarlo, PERDERAS TODA LA DATA.
rm -rf ~ / &
Emacs
Originalmente consistía en un conjunto de Editor MACroS para el editor TECO y fue
escrito por Richard Stallman y Guy Steele en 1975. Desde entonces ha habido múltiples
versiones de Emacs, pero las mas populares hoy en día son la GNU Emacs, y Xemacs, un
fork de GNU Emacs desarrollado a partir de 1991. Ambos emplean el lenguaje de
programación Emacs LISP, que provee la mayor parte de las funcionalidades de edición;
el resto de ambos programas esta escrito en C, lenguaje que constituye también la base
del propio Emacs LISP. Este último puede emplearse extensamente para personalizar,
extender y afinar el Emacs; en esta característica reside buena parte de la potencia
del programa.
Al ejecutar:
[dorys@localhost ~]$ emacs /etc/passwd
Aparece ocupando toda la pantalla, el llamado frame del editor. Este frame se divide en
varias partes:
1ro. Barra de menú: proporciona acceso a las funciones de Emacs, organizadas por
categoría (buffers, files, tools,...). Para acceder al menú se pulsa f10.
2do. Área de eco o minibuffer: ambos están situados en la última línea de la pantalla.
El área, de eco o echo área aparece solo cuando, al escribir una combinación de teclas,
se hace una pausa entre las distintas teclas que componen la combinación. EL
minibuffer, por su parte, sirve para introducir los eventuales argumentos que se hayan
de pasar a un comando.
El minibuffer:
Cuando un comando requiere un argumento no numérico -por ejemplo para abrir un
archivo-, el cursor se desplaza a la última línea de la pantalla y se muestra un
Diplomado de GNU/Linux
84
Fundación Código Libre Dominicano
http://www.codigolibre.org
prompt. En el caso de que la orden que activa el minibuffer (una combinación de teclas
como las del ejemplo), se puede salir de el mediante la combinación “ctrl g”.
Combinación Resultado
Ctrl x f abre un archivo
Ctrl x g cancela una opción
Ctrl x c sale del editor
Ctrl x z suspende el editor y lo ponemos con fg
Ctrl a nos lleva al comienzo de la línea actual
Ctrl e nos lleva al final de la línea actual
Esc a nos lleva al comienzo del párrafo
Esc e nos lleva al final del párrafo
Ctrl x i inserta un archivo
Ctrl x ctrl w guarda los cambios en otro archivo que no es el original
Ctrl x ctrl s escribe los cambios al archivo original
esc shift > nos lleva al final del archivo
esc shift < nos lleva al comienzo del archivo
Esc v nos lleva a la pagina anterior
Ctrl v nos lleva a la pagina siguiente
Ctrl x u hace "undo"
Esc k borra el párrafo desde el cursor
Ctrl y pega lo que hemos borrado
Ctrl s busca una expresión desde el cursor hacia abajo
Ctrl r busca una expresión desde el cursor hacia arriba
Ctrl n baja una línea
Ctrl u Repite la siguiente acción por defecto 4 veces.
Ctrl v baja una hoja
Esc v sube una hoja
Ctrl p sube una línea
Esc + % Reemplaza una palabra
1.9 VI
Este editor esta disponible para todas las plataformas de sistemas operativos derivados
de UNIX, y por ende, todas las distribuciones de GNU/LINUX. Tarde o temprano tendrá que
aprender vi en su carrera como administrador de sistemas Unix. Es el editor preferido
cuando el espacio en disco es crítico.
La forma de invocarlo es:
[dorys@Gpl ~]$ vi /etc/passwd
Diplomado de GNU/Linux
85
Fundación Código Libre Dominicano
http://www.codigolibre.org
Diplomado de GNU/Linux
86
Fundación Código Libre Dominicano
http://www.codigolibre.org
GNU/Administración
Diplomado de GNU/Linux
87
Fundación Código Libre Dominicano
http://www.codigolibre.org
Administración
Procesos GNU/Linux.
Cada programa en ejecución genera un proceso. El kernel le suministra recursos a cada
proceso y una vez terminado el proceso se lo retira. En esta practica, examinaremos
procesos y los dos recursos primarios que ellos controlan: memoria y ciclos del CPU.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1948 736 ? Ss 10:58 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S< 10:58 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< 10:58 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S< 10:58 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 10:58 0:00 [watchdog/0]
root 6 0.0 0.0 0 0 ? S< 10:58 0:00 [migration/1]
Diplomado de GNU/Linux
88
Fundación Código Libre Dominicano
http://www.codigolibre.org
Ante la señal SIGHUP normalmente todos los procesos reaccionan simplemente saliendo,
lo cual es un problema si queremos que nuestro programa siga ejecutándose en el sistema
una vez que hayamos dejado la shell. Para evitar que esto ocurra, tradicionalmente se
ha usado el comando nohup.
Nohup a menudo se utiliza para ejecutar comandos en background (daemons). La salida que
normalmente mostraría la terminal va a un archivo llamado “nohup.out” si es que no
redirecciona a otro lado.
0.3 Comando ps
El comando ps despliega información de una selección activa de procesos, ejemplo:
Diplomado de GNU/Linux
89
Fundación Código Libre Dominicano
http://www.codigolibre.org
[jortega@firewall ~]$ ps
Para ver información mas detallada sobre los estados de los procesos puedes usar “ps
-ef” o “ps aux”
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1948 736 ? Ss 10:58 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S< 10:58 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< 10:58 0:01 [migration/0]
root 4 0.0 0.0 0 0 ? S< 10:58 0:01 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 10:58 0:00 [watchdog/0]
Diplomado de GNU/Linux
90
Fundación Código Libre Dominicano
http://www.codigolibre.org
Para visualizar la línea de comando completa de cada proceso con el comando top, lo
hacemos de la siguiente manera:
[deivy@deivy ~]$ top -c
R Running Ejecutándose
S Sleeping Durmiendo
T Terminating Terminando
D Device I/O Dispositivo E/S
Z Zombie Zombis
Casi siempre espera por un tipo de operación de E/S. Un proceso detenido es un proceso
que ha sido suspendido por el usuario. Un proceso en el estado D (Dispositivo E/S) no
puede ser interrumpido; el kernel esta ocupado gestionando algún tipo de proceso de
Entrada/Salida. Este estado D es muy particular tal vez la única vez que se le enfrente
es en un problema de network accediendo un volumen de NFS.
Un proceso zombie suele suceder cuando un proceso hijo termina y el proceso padre sigue
manteniendo información de este y no le ha informado al kernel que este ya esta
“muerto” y hasta que el proceso padre no informa esto entonces el proceso hijo no puede
ser removido, es así como nace un proceso zombie.
CTRL+z
Con esta combinación de teclas podemos enviar un proceso a background en estado de
“stopped” (detenido), sería una forma como de “minimizar” una ventana, hasta que sea
Diplomado de GNU/Linux
91
Fundación Código Libre Dominicano
http://www.codigolibre.org
Podemos ver como el estado del comando “su -c updatedb ” esta en stopped, si queremos
traer ese comando al foreground (frente) para que este continué su ejecución en estado
de “running” (corriendo) pues entonces ejecutamos el comando fg y veremos como el
proceso vuelve al frente a terminar su ejecución.
[jortega@firewall ~]$ fg %1
Mas sin embargo, si lo que queremos es que este continué en background pero
ejecutándose, entonces se utilizaría el comando bg seguido por signo de “%” mas su “job
number” para que este empiece a ejecutarse en background. (El job number de este seria
el numero entre los corchetes).
[jortega@firewall ~]$ bg %1
[1]+ su -c 'updatedb' &
El caracter & sirve para cuando ejecutes un programa enviarlo de inmediato a background
o en otras palabras, iniciarlo minimizado. Esto nos permitiría seguir usando ese shell
donde se ejecutó ese comando.
Mas por el contrario, si queremos empezar un comando (proceso) y que este se vaya a
background y mientras este en background queremos que este corriendo podemos usar el
metacaracter & para hacer todo esto de la siguiente manera, ejemplo:
[root@firewall ~]# updatedb &
Devolviéndonos esto un total de 64 señales que podemos enviar con kill, donde las que
usaremos por ahora solo para mostrar algunos ejemplos serán las señales -1 (SIGHUP), -9
(SIGKILL) y -15 (SIGTERM).
Solemos usar kill -1 para que un demonio vuelva a leer su archivo de configuración,
supongamos que queremos reiniciar el demonio de ssh para que este vuelva a releer su
archivo de configuración y así cargar algunos cambios que hemos hecho, podemos hacerlo
Diplomado de GNU/Linux
92
Fundación Código Libre Dominicano
http://www.codigolibre.org
de la siguiente manera.
Averiguamos el PID del demonio con:
[jortega@firewall ~]$ pidof sshd
4674
Y seguido de esto solo tenemos que enviarle la señal necesaria para poder reiniciar
este demonio con:
[jortega@firewall ~]$ su -c 'kill -1 4674'
Si creemos que nuestro servicio de ssh esta funcionando de manera extraña y queremos
matarlo de manera forzosa pues podemos hacerlo con la opción -9 de kill (SIGKILL) para
hacer esto.
[jortega@firewall ~]$ su -c 'kill -9 4674'
Seguido de esto si se entra a top y busca la linea correspondiente a vi podrá ver que
en la columna NI vi tiene un 10, o sea, esta corriendo con una prioridad de 10, si
hubieras querido que vi hubiera tenido un -15 en vez de 15 entonces hubieras hecho:
[jortega@firewall ~]$ su -c 'nice --15 vi &'
Diplomado de GNU/Linux
93
Fundación Código Libre Dominicano
http://www.codigolibre.org
Igual que los casos anteriores, pero estamos modificando la prioridad de 2 procesos al
mismo tiempo, el PID 123 y el PID 200.
zxguitar@zxlaptop:~$ renice +1 -p 123 -p 200
Modifica la prioridad de todos los procesos que son poseídos por el usuario “fmateo”.
zxguitar@zxlaptop:~$ renice +1 -u fmateo
Diplomado de GNU/Linux
94
Fundación Código Libre Dominicano
http://www.codigolibre.org
/proc/acpi: Un directorio similar al anterior que ofrece bastantes datos sobre el más
moderno ACPI (Advanced Configuration and Power Interface). Por jemplo, para ver si tu
laptop está conectada a la corriente AC, puedes usar cat /proc/acpi/ac_adapter/AC/state
o en algunas distros cat /proc/acpi/ac_adapter/ACAD/state, y así obtendrás "on line" o
"off line".
/proc/cmdline: Muestra los parámetros que fueron pasados al kernel al momento del
arranque (boot time). En mi caso contiene lo siguiente: root=/dev/disk/by-id/scsi-
SATA_FUJITSU_MHS2040_NLA5T3314DW3-part3 vga=0x317 resume=/dev/sda2 splash=silent
PROFILE=QuintaWiFi, que me dice que en que partición está la raíz del filesystem, que
modo VGA está en uso y más. El último parámetro tiene que ver con openSUSE's System
Configuration Profile Management.
/proc/uptime: Un archivo pequeño que solo tiene dos números: por cuantos segundos tu
sistema ha estado encendido, y cuantos segundos ha estado inactivo.
Diplomado de GNU/Linux
95
Fundación Código Libre Dominicano
http://www.codigolibre.org
/proc/mounts: Muestra todos los "mounts" usados por tu máquina (la salida es muy
similar a /etc/mtab). Similarmente, /proc/partititons y /proc/swaps muestra todas las
particiones y el espacio swap respectivamente.
/proc/fs: Si estás exportando sistemas de archivos con NFS, este directorio tiene entre
sus muchos subdirectorios y archivos a /proc/fs/nfsd/exports, que muestra los sistemas
de archivos que están siendo compartidos y sus permisos.
/proc/net: No hay nada mejor que esto para información de red. Describir cada archivo
en este directorio requeriría demasiado espacio, pero incluye dev (todos los
dispositivos de red), varios archivos relacionados al firewall iptables, estadísticas
de red y sockets, información sobre wireless y más.
Podemos cambiar ciertos archivos que están en /proc y ver como sus cambios son
reflejados automáticamente en el sistema, ejemplo:
Y fíjate que devuelve (none), o sea, ninguno, para cambiarlo en /proc podemos hacerlo
de la siguiente manera:
Verificamos nuestro domainname en /proc
[jortega@firewall ~]$ cat /proc/sys/kernel/domainname
(none)
Diplomado de GNU/Linux
96
Fundación Código Libre Dominicano
http://www.codigolibre.org
Lo cambiamos con:
[jortega@firewall ~]$ su -c 'echo "fcld.local" > /proc/sys/kernel/domainname'
Verificamos de nuevo
[jortega@firewall ~]$ cat /proc/sys/kernel/domainname
fcld.local
0.11 Demonios
Daemons son procesos que dan soporte a servicios del sistema. Normalmente ellos se
inician al tiempo de arranque y la entrada de modo multiusuario y se detienen cuando el
sistema se apaga. Un atributo clave de un proceso Daemons es que no es parte de un
terminal esto se puede comprobar con el comando ps el cual te listar una marca de
pregunta en la columna TTY. Esto implica que el Daemons no recibe señales asociadas con
el terminal. Típicamente los procesos que reciben una señal SIGTERM cuando la terminal
se apagan. En el caso de los Daemons tal cosa no puede pasar.
Para ver todos los demonios que tenemos en el sistema podemos ejecutar el siguiente
comando:
[jortega@firewall ~]$ service --status-all
0.12 Runlevels
El kernel ejecuta init al arrancar. Este programa, ahora como proceso, cargará los
subprocesos necesarios para la puesta en marcha del sistema. Cuando init ha terminado
de cargarse vacía el subdirectorio /tmp y lanza getty que se encarga de permitir hacer
login en el sistema a los usuarios.
Diplomado de GNU/Linux
97
Fundación Código Libre Dominicano
http://www.codigolibre.org
Cada uno de estos niveles de ejecución tiene un directorio donde se encuentran los
servicios o demonios que inician cuando son ejecutados. Un nivel de ejecución es un
mecanismo para proporcionar distintas configuraciones del equipo y se implementa
mediante el uso de árboles de scripts de inicio, almacenados en directorios llamados
/etc/rc1.d, /etc/rc2.d, etc. Esta característica es implementada típicamente de forma
muy simple, por lo que usted debe modelar sus entradas en el archivo basándose en otras
del mismo, o bien consultar la documentación de su sistema para obtener más
información.
0.13 init
Init es el proceso padre de todos los demás procesos, si ejecutamos pstree -np | less
podremos ver que el primer procesos que esta arriba y con el PID de 1 es init seguido
luego de todo un árbol de procesos que se desprende de el, pero init también es un
comando que nos podemos cambiarnos de los runlevels ya antes mencionados, ejemplo:
Para cambiar al runlevel 3 con el comando init lo hacemos de la siguiente manera:
[jortega@firewall ~]$ su -c "init 3"
Pudiendo luego de esto volver a subir a nuestro runlevel por defecto (generalmente el
5) con
[jortega@firewall ~]$ su -c "init 5"
0.15 chkconfig
El comando chkconfig se usar para podemos indicarle a los demonios en que runlevels
deben correr y en cuales no.
Hay herramientas que hacen esto con ventanas ncurses y puede resultar mas fácil, una de
ellas es “ntsysv”. Te permite hacer esto de una forma “gráfica” en el shell, aunque no
puedes elegir los runlevels que deseas, solamente activar y desactivar.
Ejemplos:
Para ver una lista de todos los demonios y de cuales runlevels tienen habilitados
podemos ejecutar:
[jortega@firewall ~]$ chkconfig --list
Diplomado de GNU/Linux
98
Fundación Código Libre Dominicano
http://www.codigolibre.org
Donde cada demonio es una linea y cada demonio tiene sus runlevels enumerados del 0 a 6
y cada numero dice al lado si esta on (encendido, si va a correr en ese runlevel) o si
esta off (apagado, si no va a correr en ese runlevel)
Ejemplo, si queremos hacer que ssh corra en los runlevels 2, 3, 4, 5 (chkconfig hace
que los demonios corran por defecto en estos runlevels) podemos hacerlo de la siguiente
manera.
0.16 Invoke-rc.d
La contra-parte del comando service para Debian y demás distribuciones basadas en esta
es el comando invoke-rc.d y tiene las mismas opciones que el comando service, ejemplo:
Si queremos detener el demonio de ssh con el comando invoke-rc.d en Debian y demás
distribuciones basadas en esta lo hacemos de la siguiente manera:
[jortega@firewall ~]$ sudo invoke-rc.d ssh stop
Diplomado de GNU/Linux
99
Fundación Código Libre Dominicano
http://www.codigolibre.org
0.17 update-rc.d
El comando update-rc.d es la contra-parte del comando “chkconfig” pero en
Debian/Ubuntu. Este comando sirve para indicarle a los demonios o servicios, en que
runlevel deben correr y en cuales no.
Hay herramientas que hacen esto con ventanas ncurses y puede resultar mas fácil, una de
ellas es “rcconf”. También hay otra herramienta, mas completa que permite que
personalicemos mas, esta es “sysv-rc-conf”. Estas herramientas te permiten realizar
estas tareas administrativas de una forma “gráfica” en el shell.
Equivale a:
root@zxlaptop:~# update-rc.d samba start 20 2 3 4 5 stop 20 0 1 6
Otro ejemplo:
root@zxlaptop:~# update-rc.d samba defaults 91
Que significa esto?
update-rc.d = La aplicación o comando que maneja los runlevels (Niveles de ejecución).
samba = el servicio o script que quiero ejecutar, el mismo debe existir en el
directorio /etc/init.d/samba.
defaults = Esto le dice al comando update-rc.d que queremos que el servicio samba
inicie cuando la maquina inicie y que termine cuando la maquina se apague.
Si deseamos que no solamente el servicio no inicie, sino que los scripts de inicio del
servicio sean eliminados (están en /etc/init.d/) lo hacemos de esta forma.
root@zxlaptop:~# update-rc.d -f samba remove
Al ser GNU/Linux un clon de UNIX y un sistema multiusuario, para que se puedan proteger
Diplomado de GNU/Linux
100
Fundación Código Libre Dominicano
http://www.codigolibre.org
Los permisos están divididos en tres tipos: Lectura, escritura y ejecución (rwx). Estos
permisos pueden estar fijados para tres clases de usuario: el propietario del
archivo(owner), el grupo al que pertenece el archivo(grupo) y para todo el resto de los
usuarios(others).
Permisos en directorios
los permisos de r,w,x también tienen significado sobre los directorios. El significado
para los directorios es un poco diferente:
Read r Echar un vistazo en el directorio.
Write w Crear, borrar o renombrar archivos dentro del directorio.
Diplomado de GNU/Linux
101
Fundación Código Libre Dominicano
http://www.codigolibre.org
Cambia los permisos del archivo que solo pueda ser leído no modificable ni ejecutable
por el usuario grupo o otros.
[deivy@deivy ~]$ chmod 444 prueba.txt
#!/bin/bash
clear
N=0
while [ $N -lt 10 ]
do
sleep 1
let N=N+1
echo $N
done
exit0
Diplomado de GNU/Linux
102
Fundación Código Libre Dominicano
http://www.codigolibre.org
Debido a que el resultado anterior el cual fue negativo, ahora asignale permiso de
ejecución.
[deivy@deivy ~]$ chmod +x prueba.txt
chown permite cambiar el propietario del archivo en sistemas tipo UNIX. Puede
especificarse tanto el nombre de un usuario, así como un número de identidad de usuario
(UID) y el nombre de grupo o (GID) numérico del grupo. Opcionalmente, utilizando un
signo de dos puntos (:), o bien un punto (.), sin espacios entre ellos, entonces se
cambia el usuario y grupo al que pertenece cada archivo.
Debido a que este directorio es propiedad de root usted no tiene permisos suficientes,
por lo que utilizaremos su -c o sudo dependiendo su entorno de trabajo. Luego de haber
realizado el ejercicio anterior crea un subdirectorio llamado dir2.
[deivy@deivy ~]$ su -c mkdir dir1/dir2
[deivy@deivy ~]$ su -c mkdir dir1/dir2
Cambiemos el propietario de forma recursiva del directorio principal así como del
subdirectorio.
[deivy@deivy ~]$ su -c "chown -R estudiantes dir1" <Para Red Hat>
[deivy@deivy ~]$ sudo chown -R estudiantes dir1 <Debian>
Diplomado de GNU/Linux
103
Fundación Código Libre Dominicano
http://www.codigolibre.org
Verifica su estadística para ver a que grupo pertenecen los archivos creados.
[deivy@deivy ~]$ stat dir1/dir2/arch*
Diplomado de GNU/Linux
104
Fundación Código Libre Dominicano
http://www.codigolibre.org
Sticky
El comando 'chmod 1000' pone el bit sticky. Se usa poco y tenía más utilidad en
sistemas Unix más antiguos. Sirve para que el proceso permanezca en memoria RAM todo el
rato mientras se esté ejecutando. Normalmente cuando muchos procesos usan la memoria
RAM se van turnando en su uso y se descargan a disco para ceder su espacio en memoria
RAM a otros procesos. Con el uso de este bit se evita la descarga a disco. Es una forma
de aumentar la velocidad de ese proceso.
En los sistemas operativos modernos de hoy el sticky-bit encendido en un directorio
significa que solo el dueño del archivo tiene derecho a borrarlo
Directorios públicos con permisos de escritura (w) deben tener el sticky-bit encendido
ya que de otra manera todos pueden borrar archivos aunque no sean de ellos. Al encender
el bit solamente los dueños podrán borrar sus archivos.
Ej:
[root@gnome2 /]#ls -la /tmp
total 80
drwxrwxrwt 6 root root 20480 jul 20 22:29 .
drwxr-xr-x 6 root root 4096 jul 20 22:28 ..
-rw------- 1 gnome2 ged2 264 jul 20 22:20 .gdmfujrEI
srw-rw-rw- 1 root root 0 jul 20 22:20 .gdm_socket
drwxrwxrwt 2 root root 4096 jul 20 22:21 .ICE-unix
Aunque el directorio/tmp esta “drwxrwxrwt” con todos los permisos el sticky-bit “t” no
solo permite que el dueño “root” borre los archivos.
Diplomado de GNU/Linux
105
Fundación Código Libre Dominicano
http://www.codigolibre.org
1.6 Inodos
Un inodo es una clave numérica para el acceso al sistema plano de archivos donde cada
punto capaz de recibir o entregar información, tiene una única clave. Por eso los
distintos enlaces rígidos contienen el mismo valor de inodo. Lo de recibir o entregar
información se traduce en chorros de bytes producidos en operaciones de lectura
escritura pero estas funciones pese a manejarse siempre igual realizan cosas muy
distintas dependiendo del tipo de archivo. Un archivo regular es un almacén de
información. Otros tipos de archivos no son meros contenedores de bytes. Por ejemplo
los dispositivos especiales de bloques o de caracteres pueden verse como emisores y
receptores de bloques o caracteres respectivamente asociados a un dispositivo. Tampoco
son meros contenedores de bytes los sockets, enlaces simbólicos, fifos con nombre, etc.
Salvo los directorios, todos son capaces de recoger chorros de bytes o de entregar
chorros de bytes o ambas cosas a la vez y lo más importante, todos ellos tienen
asociado un inodo y al menos un nombre de archivo colgando de alguna parte del sistema
de archivos.
fdisk lee comandos a través del manejo de menú pulsando una letra por el usuario. Fdisk
despliega el siguiente menú:
cfdisk
Es un programa basado en curses, para particionar el disco duro.
mkfs
El comando mkfs inicializa un sistema de archivos en una partición nueva. Una
importante advertencia al usar mkfs al igual que el fdisk es que toda data en la
Diplomado de GNU/Linux
106
Fundación Código Libre Dominicano
http://www.codigolibre.org
partición se perderá.
Ej:
para crear un sistema de archivos ext2 en /dev/hda2:
[root@sarys ~]# mkfs -t ext2 -c /dev/h da2
fsck
Los archivos almacenados en una partición de un disco son organizados en un sistema de
archivos. Existen varios tipos de sistemas de archivos; los comúnmente disponible en
GNU/Linux son los llamados ext y su versión actual disponible es el ext3.
Un sistema de archivos contiene un número fijo de inodos. Un inodo es la estructura de
data que describe un archivo en un disco. Esta contiene la información del archivo,
incluyendo su tipo (archivo/directorio/dispositivo), fechas de modificación, permisos,
etc. El nombre de un archivo se refiere a un inodo, no directamente al archivo. Esto
permite hard links: muchos nombres de archivos refiriéndose a un mismo inodo.
Al pasar el tiempo, sistemas de archivos pueden desarrollar problemas. Se pueden
llenar, causar que programas individuales o sistemas enteros fracasen. Se pueden
corromper, tal vez por una falla eléctrica o si el sistema se cuelgue. Se pueden acabar
los inodos, y si esto sucede no se podrá crear ni archivos y directorios nuevos.
Algunas veces sistemas de archivos se corrompen, tal vez hubo una falla eléctrica ó la
versión de su kernel tiene algún bug.
El programa fsck revisa la integridad del sistema y puede lograr las reparaciones
necesarias para que este continué funcionando como es debido.
El comando fsck es normalmente ejecutado durante el inicio del sistema. Así es que se
ejecuta automáticamente si el sistema se apagó incorrectamente. También puede ser
ejecutado manualmente de la siguiente forma:
[root@gnome~]# fsck /dev/sdb3
Este interactivamente pregunta si deseas reparar los problemas a medida los encuentra.
Use la opción -f para forzar la revisión del sistema de archivos, aunque fsck crea que
fue desmontado limpiamente. Use la opción -y para automáticamente responder ‘yes’ a
todas las preguntas. No es muy buena idea ejecutar fsck sobre un sistema de archivos
montado.
Diplomado de GNU/Linux
107
Fundación Código Libre Dominicano
http://www.codigolibre.org
se puede acceder a los servidores y compartir los archivos de una única localización es
más sencillo que distribuir copias de los archivos a todos los clientes. Las copias de
respaldo y la seguridad son más fáciles de manejar cuando sólo hay que tener en cuenta
a los servidores. Los servidores pueden ofrecer un gran espacio de almacenamiento que
sería costoso y poco práctico suministrar a cada cliente. La utilidad de un sistema de
archivos distribuido se ve claramente cuando se considera a un grupo de empleados que
tienen que compartir documentos. Por ejemplo, para compartir programas también es un
buen candidato. En ambos casos, la administración del sistema se simplifica.
[root@gnome2 ~]#init q
o también
[root@gnome2 ~]#telinit q
Estos comandos le ordenan a init que lea su archivo de configuración sin cambiar de
runlevel. El comando telinit es un vínculo a init en las mayoría de distros de
GNU/Linux de hoy día. Hay ocho runlevels, llamados 0, 1, 2, 3, 4, 5, 6 y S. El runlevel
0 se usa para parar el sistema, el 6 para reiniciarlo y el S o el 1 para ponerlo en
modo monousuario. Los demás niveles se utilizan para proporcionar determinado grado de
servicios. Por ejemplo, es normal usar un nivel para el uso normal, otro para el
arranque automático de XWindow,
otro para uso sin red, etc.
Cada línea del archivo esta dividida en cuatros campos separados por dos puntos:
Diplomado de GNU/Linux
108
Fundación Código Libre Dominicano
http://www.codigolibre.org
En la siguiente tabla se incluyen las palabras claves principales de acción del archivo
inittab.
Al iniciarse, init busca la línea initdefault en el archivo inittab para pasar al nivel
por defecto.
Ej;
Hay que manejar con cuidado el archivo inittab, ya que una modificación indebida del
mismo puede dejar al sistema en un estado incapaz de arrancar.
fstab
En la mayoría de sistemas existen otras particiones además de la raíz que son
necesarias se monten en el arranque. Estas serán especificadas en el archivo /etc/fstab
que contiene todas las informaciones que conciernen el montaje de sus particiones.
Diplomado de GNU/Linux
109
Fundación Código Libre Dominicano
http://www.codigolibre.org
Passe
Orden de test de las particiones(fsck).
Si se pone 0 la verificación no se hace al arrancar. Las particiones en un disco se
verifican de forma secuencial, si están en discos diferente se realiza de forma
paralela.
mtab
El archivo mtab contiene los valores descritos en el archivo ftab para los discos
montados actualmente en el sistema.
/dev/sda5 / reiserfs rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/sda3 /home ext3 rw 0 0
/dev/sda1 /boot reiserfs rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
/dev/sdb1 /media/SAHIRYS vfat rw,nosuid,nodev,uhelper=hal,shortname=lower,uid=500 0 0
Los grupos son conjunto de usuarios (mayormente con abstracción común), que le
permiten al administrador tener un control mas fácil y eficiente.
2.3 Comando su
Hay momentos en que puede ser necesario procesar uno o dos comandos como otro usuario.
Es normal que los gestores de sistema tengan este tipo de demanda - ellos (como todos
los buenos gestores de sistemas) usan su cuenta personal, sin privilegios especiales,
la mayor parte del tiempo. Pero, si una contraseña de usuario necesita ser alterada, o
los permisos de un determinado archivo deben ser ajustados, es posible, que no lo
puedas hacer, con una simple cuenta de usuario. Estas tareas no llevan más de un
minuto, y puede ser un tanto aburrido tener que estar entrando y saliendo, en el
Diplomado de GNU/Linux
110
Fundación Código Libre Dominicano
http://www.codigolibre.org
sistema diversas veces, solamente para ejecutar pequeñas tareas como super usuario. Una
salida más sencilla consiste en la utilización del comando su. Con este comando, la
sesión actual puede transformarse en la sesión del super usuario o otro usuario. El
comando su sin argumentos por defecto es para cambiar al super usuario, pero es posible
indicarle a que usuario queremos cambiar.
Diplomado de GNU/Linux
111
Fundación Código Libre Dominicano
http://www.codigolibre.org
sudoers
Este archivo el la parte fundamental, para trabajar con lo que es sudo. Aquí debemos de
considerar dos partes importantes:
* Definición de alias
* Reglas de acceso
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
1 – usuario
2 - clave -----> /etc/shadow
3 - ID usuario
4 - ID grupo
5 - nombre del usuario
6 - directorio home
7 - shell que usara el usuario
Diplomado de GNU/Linux
112
Fundación Código Libre Dominicano
http://www.codigolibre.org
adduser
Es un enlace simbólico a useradd.
userdel
Utilizado para borrar una cuenta de usuario y archivos relativos.
Eliminar usuario
root@zxlaptop:~# userdel usuario
usermod
Útil para modificar cuentas de usuario.
Cambiar el shell
root@zxlaptop:~# usermod -s /bin/ksh user
Diplomado de GNU/Linux
113
Fundación Código Libre Dominicano
http://www.codigolibre.org
Agregar un grupo
root@zxlaptop:~# groupadd grupo1
Agregar un grupo con un GID especifico (el signo de # significa el numero de ID que
pondrá)
root@zxlaptop:~# groupadd -g # grupo2
groupdel
Nos permite eliminar una cuenta de grupo.
root@zxlaptop:~# groupdel grupo2
groupmod
Nos permite modificar características de un grupo.
groups
Nos muestra los grupos a los que un usuario pertenece.
Diplomado de GNU/Linux
114
Fundación Código Libre Dominicano
http://www.codigolibre.org
Hay que tomar en cuenta que al igual que el comando passwd tiene su archivo de
configuración, el comando groups también lo tiene.
/etc/group
Archivo que contiene los grupos del sistema, un usuario debe pertenecer a un grupo, por
lo menos.
~/.bash_profile
El segundo en orden en ser leído por bash. Normalmente poco se mete en este archivo, lo
Diplomado de GNU/Linux
115
Fundación Código Libre Dominicano
http://www.codigolibre.org
mas importante es que indica a bash que lea otros archivos como ~/.bash_login,
~/.profile, ~/.bash_logout
# /etc/bashrc
# Funciones y alias para todo el sistema
# deben ser colocados en el archivo /etc/profile
# Variables locales a este usuario se ponen aquí
# Un Prompt PS1 Personalizado
PS1=”\u@\h:\w\\$”
alias lsa = “ls -aF –color|more”
alias ll =”ls -l”
alias cls=”clear”
~/.bash_login
Normalmente el tercero en ser leído, si existe indica los comandos que correrán al
momento de logearse, normalmente, son cosas como indicar la fecha, el nº de usuarios
conectados...
~/.profile
Equivalente a /etc/profile pero especifico de cada usuario, este archivo es leído por
mas shells, aparte de bash. Puede ser leído por shells nologin si estas arrancan con la
invocación a sh.
~/.bash_logout
Archivo con opciones para el momento del cierre de un login shell, lo mas habitual es
que se incluya el comando clear y nada mas.
2.10 /etc/skel
Es un directorio que contiene archivos de configuración básica para cada usuario, todo
archivo existente en este directorio sera copiado automáticamente al agregar un usuario
con directorio home.
2.11 /etc/profile
Es el archivo que contiene las configuraciones globales para todos los shells
interactivos, puede existir un archivo bash_profile en el home de cada usuario el cual
reconfigurara toda la configuración hecha por /etc/profile pero solo para ese usuario.
Diplomado de GNU/Linux
116
Fundación Código Libre Dominicano
http://www.codigolibre.org
La orden anterior podría estar mostrando un path típico del sistema. Mira con atención
el uso del carácter $; el cual Indica el principio del nombre de una variable shell, ya
que, sin él, la orden echo de volvería únicamente la cadena de texto pasada a
continuación. De manera que siempre que queramos ver el contenido de una variable
debemos usar el signo $.
Hay también otras variables de usuario que es importante tener en cuenta como la
variable $HOME, $HOSTNAME, $SHELL, $UID, $USER, entre otras.
Cada una de estas variables tienen un valor que varia de usuario en usuario, por
ejemplo:
Si ejecuto:
zxguitar@zxlaptop:~$ echo $USER
zxguitar
Definir Variables:
zxguitar@zxlaptop:~$ a=gato
La variable tiene un nombre: a, y un valor: gato. Fíjate en que no debe dejar espacios
entre el nombre, el igual y el valor. Tras haberla definido podremos usar el valor de
Diplomado de GNU/Linux
117
Fundación Código Libre Dominicano
http://www.codigolibre.org
Exportar el Entorno
Si se diera el caso de necesitar, por cualquier motivo, que una variable sea accesible
por programas ejecutados en otras shells, sería imprescindible exportarla.
La solución a este pequeño problema es lo que se conoce como exportar variables. La
orden export es capaz de hacer dos cosas:
Ahora el valor de la variable “a” podrá ser leído desde otra shell cualquiera o
subshell y también por programas que sean ejecutados en ellas.
La exportación del entorno de variables es muy seguro que lo usaran bastante, mucho más
de lo que han pensando, pero como se acaba de ver, no es cosa del otro mundo. Para
aquellos que hayan programado en alguna ocasión, el mundo de las variables no les dirá
nada nuevo, para los que no, es cuestión de practica, a fin de cuentas las variables
son algo bastante intuitivo.
2.13 /etc/shadow
Archivo de mucha importancia ya que tiene una relación muy estrecha con /etc/passwd.
En este archivo se encuentran LITERALMENTE nuestras claves encriptadas de cada usuario.
Diplomado de GNU/Linux
118
Fundación Código Libre Dominicano
http://www.codigolibre.org
Nota:
En la sección de la clave puede que aparezcan ciertos caracteres, explicamos
"!" Significa que no tiene clave
"*" Significa que su cuenta esta bloqueada
"!!" Significa que el password expiró
Ej:
root:t$6$FM0fgYmRTAZ5ESCB$nxd/3oL63qsQgPsg8JXm772.nEpzhyDfF5HSutHLz3fbAEzhO.ZMO279qsNXu
Q6hlM4m/8hkruCphHyQtaJ7S/:14049:0:99999:7:::
Ejm.
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
Diplomado de GNU/Linux
119
Fundación Código Libre Dominicano
http://www.codigolibre.org
La mayoría del tiempo estas tareas, entre otras, de rutinas para el administrador sera
necesaria automatizarla y de este modo, optimizar nuestra labor. Para esto contamos con
los comandos 'at', 'batch' y 'cron'. A 'batch', y a 'at' hay que pasarles el comando
por la entrada estándar, y a 'cron' la salida del comando será dirigida a la cuenta de
correo del usuario. Por eso conviene redirigir las salidas convenientemente.
Esto abrirá el archivo crontab de usuario con nuestro editor por defecto (variable
EDITOR), en este archivo existen 6 campos a los cuales le asignamos los siguientes
valores:
Campo Valor
1-)minuto 0-59
2-)hora 0-23
3-)día del mes (ej.: día 19) 1-31
4-)mes 1-12
5-)día de la semana (ej.: sábado) 0-7 (0 y 7 son domingo)
6-)comando
Ej:
Copiar los archivos .conf dentro de /etc a /backup/etc cada sábado, domingo o lunes a
la 1 AM siempre que sea 30 o 15 de cada mes:
* 1 15,30 * 6,7,1 find /etc/ -name "*.conf" | xargs cp -r --target-
directory=/backup/etc
Diplomado de GNU/Linux
120
Fundación Código Libre Dominicano
http://www.codigolibre.org
Crear un archivo comprimido de los logs a las 10:24 PM (22:24) todos los martes durante
el mes de diciembre:
24 22 * 12 2 tar -cjf /backup/logs.tar.bz2 /var/logs
Ejecuta la orden who todos los lunes a las 10:30 y guarda la salida en el archivo
quien.txt si no esta creado el lo crea.
[root@deivy ~]# crontab -e <edita una tarea>
30 10 * * 1 /usr/bin/who >> /home/user/quien.txt
Enviá la salida del comando date cada 5 minutos a un archivo llamado hora.txt
[root@deivy ~]# crontab -e
*/5 * * * * /bin/date >> /home/user/hora.txt
Lista las tareas programada para ver si toda las tareas programada fueron almacenada.
[root@deivy ~]# crontab -l
Luego de haber pasado los ultimo 5 minutos, comprueba que se haya creado el archivo con
el contenido de la salida de date en el home de el usuario con el que lo creaste.
[root@deivy ~]# ls -l
Luego de haber visto el resultado del ultimo cron elimina todas la tarea programada
anteriormente.
[root@deivy ~]# crontab -r <elimina las tarea programada por el usuario>
3.3 at
Ejecuta comandos en un tiempo especifico, se ejecuta el comando at mas el tiempo, luego
se abre el shell de at, escribimos el comando, el tiempo puede ser especificado en
forma de hora (HH:MM) , fecha (MM/DD/YY) y varias mas (vea el man).
En /etc at tiene dos archivos (at.deny at.allow) para controlar cuales usuarios pueden
usar at y cuales no.
Diplomado de GNU/Linux
121
Fundación Código Libre Dominicano
http://www.codigolibre.org
Ej:
Copiar los archivos .conf dentro de /etc a /backup/etc cada sábado, a la 1 AM el día 30
de agosto:
spark-d:~# at 01:00 08/30/08
at> find /etc/ -name "*.conf" | xargs cp -r --target-directory=/backup/etc
3.4 batch
Ejecuta comandos cuando la carga del sistema sea menor a 0.8 y abre el mismo shell de
at.
Ej:
Copiar los archivos .conf dentro de /etc a /backup/etc:
spark-d:~# batch
at> find /etc/ -name "*.conf" | xargs cp -r= --target-directory=/backup/etc
Diplomado de GNU/Linux
122
Fundación Código Libre Dominicano
http://www.codigolibre.org
Ej:
Empaquetar y comprimir en formato bzip2 el directorio /etc:
spark-d:~# tar -cjvf etc.tar.bz2 /etc
3.8 cpio
Copia archivos desde y hacia archivos
Opciones más usadas:
-i extrae
-o crea
-d crea directorios donde sean necesarios
-m retiene el tiempo de modificación mientras crea los archivos
-v modo detallado
Ej:
Crear un archivo del directorio en que estamos:
spark-d:~# ls | cpio -ov > wd.cpio
Ej:
Logs de servicios de correo:
/var/log/maillog
Diplomado de GNU/Linux
123
Fundación Código Libre Dominicano
http://www.codigolibre.org
Logs de cron
/var/log/cron
last
Muestra una lista de las últimas sesiones iniciadas por usuarios y que terminales
usaron, last lee la información de /var/log/wtmp
Ej:
Ver otro archivo
spark-d:~# last -f /var/log/wtmp.1
lastlog
Reporta las sesiones iniciadas mas recientes de todos los usuarios de un usuario en
específico.
Opciones:
-b imprime los días anteriores a los especificados
-h ayuda
-t imprime los días mas recientes hasta los especificados
-u especifica el usuario
Ejemplos:
Ver el reporte de las últimas sesiones iniciadas:
spark-d:~# lastlog
Diplomado de GNU/Linux
124
Fundación Código Libre Dominicano
http://www.codigolibre.org
Ver el reporte de las últimas sesiones iniciadas antes de diez días atrás:
spark-d:~# lastlog -b 10
3.11 /etc/syslog.conf:
Es el archivo de configuración del demonio syslogd, el cual almacena todos los mensajes
del sistema desde que arrancamos el sistema, recibe mensajes del kernel y de varias
aplicaciones.
3.12 /etc/logrotate.conf:
Es el archivo de configuración de logrotate, en el cual se determina cuando se creara
un nuevo log y cuando se hará una copia de respaldo comprimida para los logs ya
existentes.
Diplomado de GNU/Linux
125
Fundación Código Libre Dominicano
http://www.codigolibre.org
GNU/Networking
0.0 Introducción a Networking
0.1 Ifconfig
0.2 Ip
0.3 Route
0.4 Tcpdump
0.5 Arp
0.6 Nmap
0.7 Interfaces de red
0.8 Configurando interfaces
0.9 Mascara
0.10 Gateway
0.11 Netstat
0.12 Nc
0.13 Ping
0.14 Dig
0.15 Nslookup
Diplomado de GNU/Linux
126
Fundación Código Libre Dominicano
http://www.codigolibre.org
Modelo OSI
Capa 7: La capa de aplicación
Capa 6: La capa de presentación
Capa 5: La capa de sesión
Capa 4: La capa de transporte
Capa 3: La capa de red
Capa 2: La capa de enlace de datos
Capa 1: La capa física
Capa 7: La capa de aplicación La capa de aplicación es la capa del modelo OSI más
cercana al usuario; suministra servicios de red a las aplicaciones del usuario. Difiere
de las demás capas debido a que no proporciona servicios a ninguna otra capa OSI, sino
solamente a aplicaciones que se encuentran fuera del modelo OSI. Algunos ejemplos de
aplicaciones son los programas de hojas de cálculo, de procesamiento de texto y los de
las terminales bancarias. La capa de aplicación establece la disponibilidad de los
potenciales socios de comunicación, sincroniza y establece acuerdos sobre los
procedimientos de recuperación de errores y control de la integridad de los datos. Si
desea recordar a la Capa 7 en la menor cantidad de palabras posible, piense en los
navegadores de Web.
Diplomado de GNU/Linux
127
Fundación Código Libre Dominicano
http://www.codigolibre.org
Capa 3: La capa de red La capa de red es una capa compleja que proporciona
conectividad y selección de ruta entre dos sistemas de hosts que pueden estar ubicados
en redes geográficamente distintas. Si desea recordar la Capa 3 en la menor cantidad de
palabras posible, piense en selección de ruta, direccionamiento y enrutamiento.
Capa de aplicación: Los diseñadores de TCP/IP sintieron que los protocolos de nivel
superior deberían incluir los detalles de las capas de sesión y presentación.
Simplemente crearon una capa de aplicación que maneja protocolos de alto nivel,
aspectos de representación, codificación y control de diálogo. El modelo TCP/IP combina
todos los aspectos relacionados con las aplicaciones en una sola capa y garantiza que
estos datos estén correctamente empaquetados para la siguiente capa.
Diplomado de GNU/Linux
128
Fundación Código Libre Dominicano
http://www.codigolibre.org
Capa de acceso de Red: El nombre de esta capa es muy amplio y se presta a confusión.
También se denomina capa de host a red. Es la capa que se ocupa de todos los aspectos
que requiere un paquete IP para realizar realmente un enlace físico y luego realizar
otro enlace físico. Esta capa incluye los detalles de tecnología LAN y WAN y todos los
detalles de las capas física y de enlace de datos
del modelo OSI.
Similitudes
• Ambos se dividen en capas
• Ambos tienen capas de aplicación, aunque incluyen servicios muy distintos
• Ambos tienen capas de transporte y de red similares
• Se supone que la tecnología es de conmutación por paquetes (no de conmutación por
circuito)
• Los profesionales de networking deben conocer ambos
Diferencias
1. TCP/IP combina las funciones de la capa de presentación y de sesión en la capa de
aplicación
2. TCP/IP combina la capas de enlace de datos y la capa física del modelo OSI en una
sola capa
3. TCP/IP parece ser más simple porque tiene menos capas
4. Los protocolos TCP/IP son los estándares en torno a los cuales se desarrolló la
Internet, de modo que la credibilidad del modelo
TCP/IP se debe en gran parte a sus protocolos. En comparación, las redes típicas no se
desarrollan normalmente a partir del protocolo OSI, aunque el modelo OSI se usa como
guía.
0.1 ifconfig
Es un programa disponible en varias versiones del sistema operativo UNIX, que permite
configurar o desplegar numerosos parámetros de las interfaces de redes, como la
dirección IP (dinámica o estática), o la máscara de red. Si se llama sin argumentos
suele mostrar la configuración vigente de las interfaces de red activas, con detalles
Diplomado de GNU/Linux
129
Fundación Código Libre Dominicano
http://www.codigolibre.org
como la dirección MAC o el tráfico que ha circulado por las mismas hasta el momento.
El programa ifconfig tiene muchos más parámetros que los descritos hasta ahora.
Generalmente se ejecuta en la forma: ifconfig interfaz [dirección [parámetros]]
Interfaz es el nombre de la interfaz y dirección es la dirección IP que se asigna a
dicha interfaz. La dirección puede estar en forma de cuaterna o usando un nombre que
ifconfig buscará en /etc/hosts.
Si ifconfig es ejecutado añadiendo únicamente el nombre de la interfaz, presentará la
información de la configuración de dicha interfaz. Si se ejecuta sin parámetros,
presenta todas las interfaces configuradas hasta el momento; usando la opción –a fuerza
a ifconfig a incluir la información de las interfaces inactivas. A modo de ejemplo, la
consulta de la configuración de la interfaz Ethernet eth0.
Este comando asigna un ip al interfaz eth0 con una mascara de 255.255.255.0 y por
ultimo la activa.
[root@blackangel ~]# ifconfig eth0 192.168.10 0.23/24 up
Si le ponemos una ip fija a nuestra interfaz, cual la maquina reinicie, perdera esta
información, por lo que hay un archivo que podemos modificar para que cada vez que
iniciemos el sistema, esa información sea leída y aplicada.
En RedHat/Centos/Fedora el archivo que tiene esta información es tiene varios campos y
es /etc/sysconfig/network-scripts/ifcfg-eth0
Se ve como sigue:
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:1b:38:1c:c8:f7
NETWORK=192.168.1.0
IPADDR=192.168.1.232
Diplomado de GNU/Linux
130
Fundación Código Libre Dominicano
http://www.codigolibre.org
NETMASK=255.255.255.0
GETWAY=192.168.1.254
BROADCAST=192.168.1.255
ONBOOT=yes
DHCP_HOSTNAME=nexton.fcld.local
0.2 resolv.conf
No es un comando, pero es un archivo muy importante que se encuentra en
/etc/resolv.conf y el mismo sirve para configurar nuestros servidores DNS.
Es importante saber que para conectarse a internet hacen falta 4 elementos, por lo
general todo sucede automático, pero aquí debemos conocerlo TODO.
1er. Elemento: Una ip para nuestra computadora o laptop. e.j. 10.0.0.5
2do. Elemento: Mascara de Red. e.j. 255.255.255.0
3er. Elemento: Un Gateway o pasarela, es la puerta de salida. e.j. 10.0.0.1
4to. Elemento: servidores DNS e.j. 8.8.8.8 (DNS de google).
Esto es necesario porque memorizar todas las ips “del mundo” es prácticamente
imposible, por lo que los servidores DNS son los que tienen esa información, nuestra
computadora le pregunta a los DNS “quien es www.codigolibre.org???” y el DNS responde
“la ip de esa dirección es 66.128.53.27”.
Diplomado de GNU/Linux
131
Fundación Código Libre Dominicano
http://www.codigolibre.org
Como vemos en el ejemplo, hay 2 ips, la otra (8.8.4.4) es un servidor secundario por si
el primero falla.
0.3 iwconfig
iwconfig es similar a ifconfig, pero se dedica a las interfaces inalámbricas. Se
utiliza para establecer los parámetros de la interfaz de red que son específicas para
la operación inalámbrica (por ejemplo:la frecuencia). iwconfig también se puede
utilizar para mostrar los parámetros y las estadísticas inalámbrica (extraídos de
/proc/net/wireless).
Todos estos parámetros y estadísticas dependen del dispositivo. Cada driver proporciona
sólo algunos de ellos en función del soporte de hardware, y el rango de valores pueden
cambiar.
Modo de operación.
La interfaz de wireless puede ser configurada en uno de los siguientes modos que
impacta la manera en como opera el dispositivo o tarjeta.
managed – El nodo es un cliente que se conecta a un punto de acceso (AP – access point
– Router).
master – El nodo actúa como un punto de acceso (AP - Acces point – Router).
secondary – El nodo actúa como secundario a un AP Maestro o Primario.
ad-hoc – Opera en una conexión punto a punto con otro nodo que tenga wireless sin un
AP intermediario.
monitor – No se conecta a ninguna wireless pero escucha todos los paquetes que pasan
por una frecuencia.
repeater – Repite los paquetes entre nodos wireless. Extiende el rango.
Nos dará información de como esta configurada la tarjeta inalámbrica (nombre de red,
canal, nivel de señal, velocidad, potencia, encriptación de wep, punto de acceso. Si es
FF:FF:FF:FF:FF:FF es que no esta asociada a ninguno nos dirá la versión que utilizamos
de las wireless extensions y la recomendada para nuestra interfaz inalámbrica.
root@zxlaptop:~# iwconfig wlan0
Nos servirá para configurar nuestra red con el nombre que queramos o a la que queramos
asociarnos.
Nota: essid equivale al nombre de la red.
root@zxlaptop:~# iwconfig wlan0 essid "linksys"
Diplomado de GNU/Linux
132
Fundación Código Libre Dominicano
http://www.codigolibre.org
Para redes WEP, que se caracterizan por tener una seguridad muy pobre, es muy simple.
Solo basta utilizar dos comandos. El comando anterior define el nombre del punto de
acceso a utilizar. Y este para definir la clave de acceso a utilizar, sea de 64 o 128
bit.
root@zxlaptop:~# iwconfig wlan0 key clave-de-acceso
Para obtener una dirección IP, se utiliza el mandato dhclient de la siguiente manera.
root@zxlaptop:~# dhclient wlan0
El modo “managed” esta activado por defecto, pero si estaba en otro modo, para volver a
ponerlo, lo hacemos como sigue.
root@zxlaptop:~# iwconfig wlan0 mode managed
Para conectarnos a una pc con wireless, pero sin un router de por medio, debemos
cambiar el modo de la tarjeta a “ad-hoc” y lo hacemos de la siguiente manera.
root@zxlaptop:~# iwconfig wlan0 mode ad-hoc
Fijamos el canal elegido para nuestra tarjeta. Podemos también utilizar la frecuencia.
root@zxlaptop:~# iwconfig wlan0 channel 6
Fijamos el valor de frecuencia para nuestra tarjeta. Podemos también utilizar el canal.
root@zxlaptop:~# iwconfig wlan0 freq 2.412G
Tiempo actividad la tarjeta cuando no se utiliza alguna conexión a red. Por lo tanto en
modo monitor la captura de datos caería a la hora.
root@zxlaptop:~# iwconfig wlan0 power period 60
Diplomado de GNU/Linux
133
Fundación Código Libre Dominicano
http://www.codigolibre.org
0.4 iwlist
iwlist se utiliza para mostrar información adicional de una interfaz de red inalámbrica
que no se muestra con iwconfig. El principal argumento se utiliza para seleccionar una
categoría de información, iwlist muestra en forma detallada, toda la información
relacionada a esta categoría, incluida la información que se muestran por iwconfig.
Es bueno que sepas que puedes obtener todas los argumentos posibles para este y casi
todos los comandos mediante.
root@zxlaptop:~# iwlist --help
Mostrar información de todas las redes inalámbricas que nuestra tarjeta detecta con la
información correspondiente a cada red.
root@zxlaptop:~# iwlist wlan0 scan
Mostrar los canales con sus frecuencias correspondientes, además este comando me
muestra el canal actual en el que estoy.
root@zxlaptop:~# iwlist wlan0 channel
0.5 ip
Este comando es parte de la herramienta iproute y es usado para configuración de
parámetros de dispositivos de red.
0.6 route
Es una herramienta de línea de comandos disponible tanto en Windows como en Linux.
El comando route nos permite manipular las tablas de enrutamiento de nuestro sistema.
Diplomado de GNU/Linux
134
Fundación Código Libre Dominicano
http://www.codigolibre.org
0.7 traceroute
La orden traceroute permite registrar la ruta seguida por un datagrama hasta un destino
determinado. Su funcionamiento se basa en mensajes ICMP y en la variación del parámetro
TTL de las cabeceras IP. Averigüe el camino para alcanzar la máquina
www.codigolibre.org,
# traceroute -n www.codigolibre.org
0.8 tcpdump
Es una herramienta en línea de comandos cuya utilidad principal es analizar el tráfico
que circula por la red.
Permite al usuario capturar y mostrar a tiempo real los paquetes transmitidos y
recibidos en la red a la cual el ordenador está conectado. Está escrito por Van
Jacobson, Craig Leres, y Steven McCanne que trabajaban en ese momento en el Grupo de
Investigación de Red del Laboratorio Lawrence Berkeley. Más tarde el programa fue
ampliado por Andrew Tridgell.
tcpdump funciona en la mayoría de los sistemas operativos UNIX: Linux, Solaris, BSD,
Mac OS X, HP-UX y AIX entre otros. En esos sistemas, tcpdump hace uso de la librería
libpcap para capturar los paquetes que circulan por la red.
Muestra todo el tráfico que esta por la eth0
[root@blackangel ~]# tcpdump -i eth0
0.9 arp
Manipula el cache arp de varias formas. En primer lugar, hay opciones para limpiar
cache la direcciones mapeadas y la agregadas manualmente.
Nos muestra la tabla arp de manera verbose o detalle.
[root@blackangel ~]# arp -v
Diplomado de GNU/Linux
135
Fundación Código Libre Dominicano
http://www.codigolibre.org
0.10 nmap
Es una herramienta libre para exploración de redes y auditoría de seguridad.
El siguiente comando te muestra el nombre dominio de el host el tipo de sistema
operativo, que puertos están abiertos y la versión de servicio.
[link@blackangel ~]$ nmap -A -T4 192.168.236.230
0.11 netstat
Es una herramienta libre para mostrar conexiones de red tablas de enrutamiento,
conexiones enmascaradas y establecimientos de multicast.
Este comando muestra los listen sockets y el pid del programa y el nombre del programa.
[root@blackangel ~]# netstat -lp
0.12 netcat, o nc
Es una herramienta utilizada para supervisar y escribir sobre conexiones tanto por TCP
como por UDP. Puede abrir conexiones TCP, enviar paquetes UDP, escuchar sobre puertos
arbitrarios tanto TCP como UDP, supervisión de puertos y más, tanto para IPv4 como
IPv6. Es una de las herramientas de diagnóstico y seguridad más populares y también una
de las mejor calificadas por la comunidad.
Si hay un servidor de correo funcionado, lo anterior puede devolver una salida similar
a la siguiente:
Diplomado de GNU/Linux
136
Fundación Código Libre Dominicano
http://www.codigolibre.org
0.13 ping
(Packet Internet Grouper) se trata de una utilidad que comprueba el estado de la
conexión con uno o varios equipos remotos por medio de los paquetes de solicitud de eco
y de respuesta de eco (definidos en el protocolo de red ICMP) para determinar si un
sistema IP específico es accesible en una red. Es útil para diagnosticar los errores en
redes o enrutadores IP.
Muchas veces se utiliza para medir la latencia o tiempo que tardan en comunicarse dos
puntos remotos, y por ello, se utiliza entre los aficionados a los juegos en red el
término PING para referirse al lag o latencia de su conexión.
Este comando cuenta 4 paquetes icmp.
[root@blackangel ~]# ping -c 4 192.168.236.225
Este comando envía paquetes 512by que cuente 400 paquetes que haga una inundación y lo
muestra numéricamente.
[root@blackangel~]#ping -s 512 -c 400 -f -n 192.168.236.225
Este comando cuenta 5 paquetes icmp lo muestra numéricamente el host con tiempo de vida
de 5 segundos.
[root@blackangel ~]#ping -c 5 -n -t 5 192.168.236.225
0.14 dig
El mandato dig (domain information groper) es una herramienta flexible para realizar
consultas en Servidores DNS. Realiza búsquedas y muestra las respuestas que son
regresadas por los servidores que fueron consultados. Debido a su flexibilidad y
claridad en la salida es que la mayoría de los administradores utilizan dig para
diagnosticar problemas de DNS.
Diplomado de GNU/Linux
137
Fundación Código Libre Dominicano
http://www.codigolibre.org
0.15 nslookup
Es un programa, utilizado para saber si el DNS está resolviendo correctamente los
nombres y las IPs. Se lo utiliza con el comando nslookup, que funciona tanto en windows
como en unix para obtener la dirección IP conociendo el nombre, y viceversa.
Diplomado de GNU/Linux
138
Fundación Código Libre Dominicano
http://www.codigolibre.org
Glosario de términos
El objetivo de este glosario no es explicar el significado de los términos de
informática usados en inglés, sino dar una lista de sugerencias para su traducción al
español. Este glosario es útil para quien ya tiene suficientes conocimientos de
informática en inglés; a quienes busquen un glosario que explique el significado de las
palabras técnicas de informática en inglés les recomiendo consultar el Glosario básico
inglés-español para usuarios de Internet, de Rafael Fernández Calvo (ver bibliografía o
el archivo ``fuentes'').
Las traducciones que se presentan en este glosario son las que han sido aceptadas por
la comunidad que produce documentación libre para programas libres, independientemente
de que sean consideradas erróneas por algunos; en los casos en que existe polémica, se
da alguna información adicional. Se ha adoptado un punto de vista pragmático según el
cual lo mas importante es la comprensión del mensaje y no su forma; por eso no se ha
intentado definir cuales son los términos correctos (si es que existen) sino cuales son
los que serán comprendidos por la mayor parte de los lectores, evitando extranjerismos
cuando sea posible.
Los verbos son indicados por una v entre paréntesis. Los adjetivos son traducidos en la
forma masculina y en los substantivos se indica su género cuando no es obvio. Cuando
una palabra tiene varios significados, estos aparecen numerados; y si la traducción al
español tiene varios significados, se explica entre paréntesis a cual de ellos se
refiere. Hay palabras para las cuales el consenso general es que no deben ser
traducidas; en esos casos aparece como traducción la misma palabra en inglés, seguida
de una posible traducción para los casos en que sea necesario traducirla.
@
at, en (y no ``arroba'').
&
ver ampersand.
/
ver slash.
\
ver backslash .
A
abort - fracaso, interrupción, cancelación, aborto.
abort (v) - abortar, fracasar, interrumpir, cancelar (fuera del contexto informático,
podrá ser también abortar).
AC current - Corriente alterna.
Diplomado de GNU/Linux
139
Fundación Código Libre Dominicano
http://www.codigolibre.org
AC Drive - Variador.
Accounting - contabilidad.
Add-on - añadido, anexo.
Address - dirección.
Advanced Power Management (APM) - Avanzado Manejo de Potencia (AMP), Manejo Avanzado de
Potencia.
Age - edad, antigüedad.
Alias - alias, acceso directo.
allocate (v) - asignar, reservar.
allocation group - grupo asignado (cf. sistema de archivos/archivo XFS).
Alphanumeric - alfanumérico.
Ampersand - y (caracter empleado en programación C para señalar direcciones de memoria,
y en html para codificar otros caracteres extraños a la lengua inglesa, del latín
``et'', al).
Anchor - ancla, áncora, enlace.
anchor (v) - anclar.
Anti-aliasing - suavizado de bordes, antisolapamiento.
append (v) - juntar, unir, concatenar, añadir.
Applet - miniaplicación, aplique, applet (programa en Java, ejecutable por un
navegador; dícese también de cualquier pequeño programa que se acopla al sistema).
Appliance - dispositivo.
Application Program Interface (API) - Interfaz de Programación de Aplicaciones.
Appraisal - estimación.
Archive - archivo, paquete (como ``archivo'' es muy usado también para traducir
``file'', puede ser necesario aclarar de que tipo de archivo se trata).
archive (v) - archivar, empaquetar.
Argument - argumento, parámetro.
Array - arreglo, formación, estructura, matriz, vector (``arreglo'' es considerada por
algunos una mala traducción, pero su uso ya está bastante generalizado).
Artificial Intelligence (AI) - inteligencia artificial, inteligencia artificial.
Ascender - ascendente.
ASCII-Armoured text - texto con armadura ASCII, ASCII blindado.
Aspect-oriented programming - programación orientada a aspectos.
Assapps - applet, archivos pps.
Assembler - 1. ensamblador (lenguaje de programacion). 2. montador o ensamblador
(persona que monta ordenadores), Lenguaje Maquina.
Assembly - lenguaje ensamblador, ensamblado (utilizado mucho en .NET/Mono).
Assessment - estimación, juicio, impresión.
Asset - asset, asset.
asset (econ.) - activo, ASSET.
Assignment - asignación.
associative array - vector asociativo, arreglo asociativo (array es en ocasiones
utilizado como arreglo, a pesar de que algunos no concuerden).
assume (v) - suponer.
Asymmetric Digital Suscriber Line (ADSL) - línea digital asimétrica de abonado.
attach (v) - adjuntar, anexar, anexionar.
Attachment - documento adjunto, anexo.
Attribute - atributo.
Authentication - autenticación, autentificación, identificación, validación.
Autoprobe - autocomprobación.
Diplomado de GNU/Linux
140
Fundación Código Libre Dominicano
http://www.codigolibre.org
B
b-tree (filesystem) - sistema de archivos basado en árboles balanceados.
Back-end - motor (de un compilador o programa), dorsal.
Backbone - eje principal, red troncal, estructura principal.
Background - segundo plano, trasfondo.
backport (v) - portear o adaptar un componente de software nuevo a otro más antiguo con
la finalidad de agregar una funcionalidad nueva.
Backslash - barra invertida, contrabarra.
Backtick - acento grave, nombre dado ocasionalmente al caracter ` usado en ambientes
tipo Unix.
Backup - copia de seguridad, copia de respaldo, salvaguarda.
backup (v) - respaldar, hacer copias de respaldo.
backward compatible - compatible con anteriores.
Bandwith - amplitud de banda, ancho de banda.
Banner - pancarta, aviso.
Baseline - línea de base, directrices (condiciones generales que un programa, proceso o
producto debe cumplir).
Batch - lote.
batch processing - procesamiento por lotes, procesamiento en lotes.
Batch-scan - sondeo por lotes.
Batcher - procesador por lotes.
Baud - baudio (unidad de medida de la velocidad de transmisión de información).
baud rate - tasa de baudio.
Benchmark - banco de pruebas, prueba comparativa.
Big-endian - byte más significativo primero.
bind (v) - enlazar, ligar.
Binding - enlace, ligadura.
Bit - bit (unidad elemental de información, consistente en una variable booleana, con
valores 0 o 1).
bit mask - máscara de bits.
Bitmap - mapa de bits.
Bitrate - tasa de bits.
Bitstream - flujo de bits.
Blank - vacío, en blanco.
Block - bloque.
block (v) - bloquear (impedir el acceso).
blur (v) - tornar más difuso, emborronar, difuminar.
Bookmark - marcador, marcapáginas.
Boot - arranque, inicio, proceso de arranque.
boot (v) - arrancar, iniciar.
boot loader - gestor de arranque.
boot partition - partición de arranque.
boot record - registro de arranque, registro de inicio (en un disco duro).
Bootable - puede ser usado para arrancar (una partición en disco duro).
Bootrom - (memoria) ROM de inicio.
Bootstrap - rutina de arranque, arranque autónomo, marca de inicio en los carretes de
cinta.
Bot - robot (usado en AI).
Breakpoint - punto de ruptura, punto de corte.
Broadcast - difusión.
broadcast (v) - anunciar, difundir.
Diplomado de GNU/Linux
141
Fundación Código Libre Dominicano
http://www.codigolibre.org
C
cache - almacén, deposito (algunos usan caché que suena parecido mas no traduce bien su
significado), memoria temporal.
cache memory - antememoria, memoria inmediata, memoria cache (ver cache).
Callback - retrollamada, llamada de retorno.
camel caps - mayúsculas mediales.
camera ready - preparado para cámara, preparado para su publicación (se usa para
indicar la manera de mandar artículos a una revista listos para su publicación).
Canvas - lienzo, tapiz.
Capability - capacidad.
Caps - letras mayúsculas.
Card - tarjeta.
Cardinality - cardinalidad.
Caret - circunflejo (el símbolo o acento ^ usado para mostrar que algo va a ser
insertado en material escrito o impreso en el lugar en el que se encuentra.).
case sensitive - distingue mayúsculas de minúsculas.
Cast - molde, plantilla.
catch-up (v) - actualizarse, ponerse al día.
cellular automata - autómata celular.
Central Processing Unit (CPU) - Unidad de Procesamiento Central, Unidad Central de
Proceso.
Changelog - novedades, últimos cambios.
Channel - canal.
character set - conjunto de caracteres (conjunto de signos que se representan mediante
un código. El más conocido de estos códigos es el ASCII, que utiliza los 256 caracteres
que se pueden representar con un byte).
Charset - juego de caracteres.
Chat - charla, tertulia.
Diplomado de GNU/Linux
142
Fundación Código Libre Dominicano
http://www.codigolibre.org
Diplomado de GNU/Linux
143
Fundación Código Libre Dominicano
http://www.codigolibre.org
Diplomado de GNU/Linux
144
Fundación Código Libre Dominicano
http://www.codigolibre.org
D
daemon - demonio, proceso en segundo plano, duende (proceso de ejecución independiente)
daisy chain - conexión en serie.
daisywheel printer - impresora de margarita.
Dash - raya.
Data - datos, (pointers).
data mining - minería de datos.
Database - base de datos, banco de datos.
Datagram - datagrama.
Date - fecha.
de facto standard - estándar de hecho, norma de facto, regulación de facto.
Deadlock - bloqueo mutuo, interbloqueo.
debug (v) - depurar, corregir errores (en un programa).
Debugger - depurador.
declarative language - lenguaje declarativo.
decode (v) - decodificar, descodificar.
Decoder - decodificador, descodificador.
Decrypt - descifrar.
Default - por omisión, de manera predeterminada, predefinido, por definición, por
defecto.
default file - archivo (archivo) predeterminado.
Deferral - posposición.
deflate (v) - deshinchar.
defragment (v) - desfragmentar.
Delay - demora, retardo.
delete (v) - borrar, eliminar.
Delimiter - delimitador, separador.
Demo - demostración.
demodulate (v) - demodular, traducir tonos a señales digitales (en un modem).
denial of service - rechazo de servicio, denegación de servicio.
deny (v) - denegar, recusar.
Deploy - despliegue, desplegar.
Descender - descendente.
Descriptor - descriptor.
Desktop - escritorio, computador.
detach (v) - descolgar, desenganchar, separar.
Developer - desarrollador.
Diplomado de GNU/Linux
145
Fundación Código Libre Dominicano
http://www.codigolibre.org
Development - desarrollo.
Device - dispositivo.
devise (v) - inventar, diseñar, planear.
dial-up link - enlace telefónico, enlace por red telefónica.
dial-up login - ingreso por red telefónica.
dialog box - cuadro de diálogo, caja de diálogo.
Diff - archivo de diferencias (hace referencia al uso del programa 'diff').
Diffusion - difusión.
Digest - recopilación, resumen, síntesis.
dike (v) - contener.
Directory - directorio.
disable (v) - inhabilitar.
Discard - deshacer.
Disclaimer - renuncia de responsabilidades, descargo.
discuss (v) - comentar, tratar (un tema).
discussion groups - grupos de debate.
dispatch (v) - despachar, enviar.
Display - pantalla, visualizador.
display (v) - mostrar, visualizar.
display menu - menú de visualización.
Disposable - desechable.
Distribution - distribución (de Linux, por ejemplo).
Dithering - difuminado.
Docroot - raíz de documentos (en un wervidor web), directorio base.
Documentation - documentación.
domain name system (DNS) - Sistema Nominal de Dominios.
Doorstop - tope (de una puerta).
Dot - punto (puede referirse al punto en una URL).
dot matrix printer - impresora de matriz de puntos.
Down - fuera de servicio.
Downgrade - versión anterior.
downgrade (v) - 1. menoscabar, disminuir. 2. instalar una versión anterior.
download (v) - descargar, transferir, recibir, bajar, obtener.
Downsizing - reducción, disminución.
Downstream - flujo descendente.
downstream port - puerto de recepción.
Downtime - tiempo de inactividad.
Draft - borrador.
drag and drop - arrastrar y soltar.
Drill - ejercicio, entrenamiento.
Drive - unidad (de disco), volúmen, dispositivo.
Driver - controlador, manejador, gestor (driver de video, driver de sonido), circuito
de gobierno, driver simple de comunicaciones.
dual boot - de arranque doble o dual, que puede arrancar dos (o más) sistemas
operativos diferentes.
Dumb - 1. sin procesamiento. 2. bobo, tonto.
dumb terminal - terminal sin procesamiento.
Dummy - mudo, vacío.
Dump - volcado, vuelco.
Dungeon - mazmorra.
Diplomado de GNU/Linux
146
Fundación Código Libre Dominicano
http://www.codigolibre.org
E
e-mail - 1. correo electrónico. 2. mensaje ("send me an e-mail": envíame un mensaje).
e.g. - por ejemplo (del latín exemplia gratia; en castellano se usa v.g. del latín
verbi gratia).
Edge - límite, borde.
electronic mail - correo electrónico.
elevation grids - mapas de elevación.
Ellipse - elipse.
embed (v) - empotrar, embeber, incrustar.
Embedded - empotrado, embebido, puesto a prueba.
embedded system - sistema integrado (software 'integrado' en hardware, ejemplos de un
"embedded system" son routers, teléfonos móviles, etc.).
emerge - emerge.
enable (v) - activar, habilitar.
Enabling - habilitación.
encode (v) - codificar.
Encoder - codificador.
encrypt (v) - cifrar, codificar, encriptar.
Encryption - cifrado, codificación, encriptación.
Endian - vease ``big-endian'' y ``little-endian''.
Endless - interminable.
Enhancement - mejora.
enlarge (v) - ampliar.
Entity - entidad.
Entries - entradas, líneas, renglones.
Environment - entorno, ambiente.
erase (v) - borrar.
Error - error.
escape (v) - escapar, preceder con escape, exceptuar.
Evaluator - evaluador.
Event - evento, suceso.
Event-driven - basado o gestionado por eventos, orientado a eventos, dirigido por
eventos.
Executable - ejecutable.
execute (v) - ejecutar.
expire time - tiempo de caducidad.
Extrication - liberación, rescate, extricación.
F
facility - instalación, equipo.
fade in - comienzo gradual.
fade out - final gradual.
fade (v) - atenuar, desvanecer.
Failure - fallo.
Fake - falso.
Fan - ventilador.
Fault - fallo.
Featuren - funcionalidad, característica.
Feed - fuente, suministro.
feed (v) - suministrar.
Feedback - realimentación, comentarios y sugerencias, retroalimentación.
Diplomado de GNU/Linux
147
Fundación Código Libre Dominicano
http://www.codigolibre.org
Diplomado de GNU/Linux
148
Fundación Código Libre Dominicano
http://www.codigolibre.org
G
game server - estación de juegos.
Gatekeeper - 1. guarda-portal. 2. portero.
Gateway - pasarela, portal, compuerta, puerta de enlace.
gaussian blur - desenfoque gausiano.
getting started - primeros pasos.
Glob - englobador, el caracter englobador es *, abreviatura de todos.
Glyph - glifo.
grab (v) - capturar.
Graph - grafo, gráfico.
graphic display - representación gráfica.
Graphical User Interface (GUI) - interfaz gráfica de usuario.
Graphics Interchange Format (GIF) - formato para intercambio de gráficas.
Grid - rejilla, grilla, cuadrícula.
Guidelines - directivas.
Gzipped - comprimidos con gzip, comprimidos, compactados.
H
hack - solución chapucera, alteración (``a quick hack''), machetazo.
hack (v) - cargar (``hack a program''), machetear.
Hacker - genio de la informática (no confundir con ``cracker''), experto en informática
handheld - de mano.
handle (v) - manipular.
Handler - manipulador, gestor.
Handover - traspaso (de un nodo móvil desde una subred a otra).
Handshaking - asentimiento, negociación, sincronismo.
hang (v) - colgar, colgarse, bloquearse.
hard disk - disco duro, disco rígido, disco fijo.
hard link - enlace físico, enlace rígido, enlace duro.
harden (v) - bastionar, fortificar con bastiones (implementar todas las medidas de
seguridad posibles para proteger un sistema).
Hardware - máquina, equipo, dispositivo, soporte físico.
Hash - 1. resumen codificado, picadillo. 2. arreglo asociativo (Perl).
hash table - tabla de dispersión, tabla de referencias, tabla hash.
Hassle - lío, enredo, complicación.
hassle (v) - molestar, confundir.
Diplomado de GNU/Linux
149
Fundación Código Libre Dominicano
http://www.codigolibre.org
I
i.e. - esto es, o sea (del latín id est).
Icon - ícono.
iconize (v) - miniaturizar, iconizar, minimizar.
Idle - ocioso, inactivo.
Illegal - ilegal, no válido.
Illustrator - ilustrador.
Imaging - proceso de imágenes, trabajo con imágenes, diseño de imagen, generación de
imagen, ilustración, imagimática (técnicas a menudo computarizadas, por ejemplo,
radiografías, ultrasonido, radioactividad, calor, o magnetismo, usadas para obtener
imágenes en medicina).
implement (v) - implementar.
Inbox - bandeja de entrada.
indent (v) - sangrar (empezar un renglón más adentro que los otros).
Indentation - sangría.
Index - índice, comondo índice (en programación).
Indexed - indexado.
Diplomado de GNU/Linux
150
Fundación Código Libre Dominicano
http://www.codigolibre.org
J
jabber - torrente de palabras ininteligibles.
jabber (v) - hablar mucho, hablar incoherentemente, farfullar.
jagged picture - imagen serrada.
jigsaw puzzle - rompecabezas, casa.
Jitter - ruido, nieve, en redes IP, variación en el retardo (RTT) de los paquetes.
Job - trabajo.
Journal - base de datos transaccional (cf. sistema de archivos transaccional).
journaling file system - sistema de archivos transaccional.
Joystick - videomando, ludomando, mando para jugar, palanca para juegos.
Jumper - puente, puente deslizable, puente configurable, conector.
Junk-mail - correo basura.
justify (v) - alinear.
Diplomado de GNU/Linux
151
Fundación Código Libre Dominicano
http://www.codigolibre.org
K
keepalive - latidos.
Kernel - núcleo, fallo en kernel32.
Kerning - interletraje (ajuste de espacio entre ciertos pares de caracteres para que
estos se impriman con un toque estético), ligadura, interletraje (ajuste de espacio
entre ciertos pares de caracteres para mejorar su legibilidad).
Key - 1. llave. 2. tecla. 3. clave. 4. tono, tonalidad. 5. crucial, de importancia,
significante.
key escrow - depósito de claves.
key fingerprint - huella de clave.
key pair - par de claves.
Keyboard - teclado.
keyboard shorcuts - métodos abreviados de teclado.
keyboard shortcut - método abreviado de teclado, atajo de teclado.
Keyring - anillo de claves, archivo de claves.
Keyword - palabra clave.
Kick - expulsar, echar.
Kit - conjunto, juego, paquete.
Knowbot - robot, buscador, buscador en la red (programa que busca y clasifica
información automáticamente en una red, a diferencia de buscador en una base de datos
propia), buscador inteligente (programa que utiliza técnicas derivadas de la rama de
inteligencia artificial para realizar búsquedas y guardar perfiles de los usuarios),
robot de búsqueda, KNOMBOT, outdoor.
L
label - etiqueta.
Latency - latencia.
Lattice - red, trama.
Layer - capa.
Layers - capas.
Layout - esquema, diseño, composición, gestor de geometría (en algunos programas
gráficos).
Leak - fuga (de un gas o líquido por un agujero), escape, pérdida.
leap second - segundo intercalar.
Lease - arrendamiento (de una dirección IP, por medio de un servidor DHCP).
Legalese - condiciones legales, jerga legal.
Library - librería, biblioteca (cuando library se refiere al edificio donde se
almacenan libros, sin lugar a dudas que la traducción correcta es biblioteca; pero en
el contexto informático es más usada librería, ya que además de una tienda de venta de
libros, librería también es un mueble donde se guardan documentos), biblioteca.
lightning effects - efectos de iluminación.
Line - línea, renglón.
line wrap - encapsulamiento de línea, retorno automático de líneas.
Link - enlace, vínculo, liga, eslabón.
link (v) - enlazar, conectar, vincular, crear vínculos.
Linker - enlazador.
Liquid Cristal Display (LCD) - pantalla de cristal líquido.
list view - lista de elementos.
Little-endian - byte menos significativo primero.
Live CD - CD Vivo.
Diplomado de GNU/Linux
152
Fundación Código Libre Dominicano
http://www.codigolibre.org
M
mail - correo, mensaje.
mail (v) - enviar por correo.
mail hub - distribuidor de correo.
Mailbox - buzón.
Mailer - gestor de correo, agente de correo, corresponsal, cartero.
mailing list - lista de correo, lista postal, lista de distribución.
Mainframe - macrocomputadora, ordenador de escala superior.
Maintainer - responsable del mantenimiento, encargado del mantenimiento, responsable,
encargado, administrador.
Map - mapa, MAPA DE BITS, mapa de vinculo.
map (v) - mapear, asignar.
Markup - marcado.
markup language - Inform. m. lenguaje marcado. Un sistema de codigo de instrucción que
se entrelaza con el contenido de un documento para definir su apariencia de
presentación.
Mask - máscara, mascara de red.
mask (v) - enmascarar, ocultar.
Masking - enmascaramiento.
Masquerading - emmascarado, enmascaramiento, mimetización.
Master - maestro, amo.
master boot record - registro principal de arranque, registro principal de inicio (en
disco duro).
Diplomado de GNU/Linux
153
Fundación Código Libre Dominicano
http://www.codigolibre.org
N
name resolution - resolución nominal (cf dns).
named pipes - tuberías designadas, tuberías con nombre, cauces designados.
Namespace - espacio de nombres.
nest (v) - anidar, conectar, platicar.
Nested - anidado.
Netbook – mini laptop, computadora portatil.
Netboot - arranque a través de la red.
Netmask - máscara de red.
Netmount - montaje (de un sistema de archivos) a través de la red.
Network - red.
New - noticias.
Newbie - principiante, definicion de newbie.
news feed - proveedor de noticias, fuente de noticias, suministro de noticias.
Newsgroups - grupos de noticias, grupos de discusión, foros de discusión.
Nickname - apodo, alias.
noise gate - bloqueador de ruidos.
Non-octet - diferente a un octeto.
Notebook - agenda electrónica.
Numsigns - alfanumérico.
Diplomado de GNU/Linux
154
Fundación Código Libre Dominicano
http://www.codigolibre.org
object - objeto.
object oriented - orientado por (a) objetos.
Object-oriented programming - programación orientada a objetos.
Octet - octeto, byte.
Ocurrence - caso, aparición.
Off-line - desconectado, fuera de línea.
Offset - offset, desplazamiento.
Off-topic - fuera de temática, fuera de tema.
OK - aceptar.
on the fly - sobre la marcha.
On-line - conectado, en línea.
open source - código fuente abierto, free.
Option - opción.
ordered data journaling - registro ordenado de datos (cf. sistema de archivo
transaccional, ext3).
Outline - bosquejo.
Output - m. output, salida, resultado.
Overall - por encima, en general.
Overflow - desbordamiento.
Overhead - sobrecarga, Residuo a depurar.
Overload - sobrecarga.
overload (v) - sobrecargar.
override (v) - redefinir, reescribir, reemplazar.
Owner - propietario.
P
pager - 1. buscapersonas. 2. paginador, conmutador (tal como se usa en gestores de
ventanas).
pan (v) - mover.
panorama image - galería panorámica, NOR.
Parameter - parámetro.
parse (v) - analizar sintácticamente.
Parser - intérprete, analizador.
Partition - partición, partition.
partition table - tabla de particiones.
Passphrase - contraseña, frase de paso (más de una palabra).
Password - contraseña, palabra de paso, palabra clave.
Patch - parche, modificación.
patch (v) - actualizar, parchear, emparchar.
patch file - archivo (archivo) de parche.
Path - camino, trayectoria, ruta.
Pattern - patrón.
Peer - vecino, conector, punto.
Peer-to-peer - entre iguales.
Penalty - penalización.
perform (v) - realizar (una acción).
Performance - rendimiento, desempeño.
Period - punto.
Piggybacking - confirmaciones superpuestas, superposición de confirmaciones.
Pin - patilla, pata, contacto.
Ping - ping, chequeo de respuesta.
Diplomado de GNU/Linux
155
Fundación Código Libre Dominicano
http://www.codigolibre.org
Diplomado de GNU/Linux
156
Fundación Código Libre Dominicano
http://www.codigolibre.org
Profiler - perfilador.
Profiling - parametrización, personalización, perfilado, acción de medir el rendimiento
de un programa, personalización (igual que customización), Customización no existe en
el VCT ni en el Dic. de la RAE. Además suena horrible. diseño, ajuste, tallado; y
tallar sería evaluar el rendimiento del programa , evaluación, valoración,
¿adaptación?, afinado/afinamiento, ; perfilar m. Inform. La actividad de coleccionar
informacion de algo con la finalidad de describirlo.
profiling execution - perfil de uso de recursos (del programa ejecutado).
Programmer - programador.
Programming - programación, Programacion, programas, programa, programacion.
Prompt - cursor, símbolo de espera de órdenes, punto indicativo.
prompt (v) - apremiar.
Properly - apropiadamente.
proprietary software - software de propietario, software en propiedad.
provide (v) - proporcionar, proveer, abastecer, habilitar.
Proxy - proxy, representante, apoderado.
public key cryptography - Criptografía con clave pública.
Pump - bomba.
Punch-in - grabación mediante el método de disparo.
purge (v) - purgar, limpiar.
Q
query - consulta, pregunta, petición.
Queue - cola.
quit (v) - renunciar, abandonar, finalizar, acabar.
Quota - cuota.
Quote - 1. comilla. 2. cita (de un libro, por ejemplo).
quote (v) - citar (referir textualmente).
quoted text - texto citado.
R
race condition - condición de carrera.
radio button - botón de radio, botón de opción (botón dentro de un grupo en que sólo
uno puede estar pulsado a la vez).
Radiosity - radiosidad.
Random - aleatorio.
Randomizer - generador de aleatoriedad, selector aleatorio, aleatorizador, Generador de
números aleatorios. sorteador , (v) sortear, secuenciador aleatorio, aleatorizador,
Generador de números aleatorios, v. range, margen, alcance, gama, surtido, línea,
intervalo, variedad.
Rank - rango.
Rate - tasa.
rate (v) - calificar, clasificar.
Rating - calificación, clasificación.
Raw - crudo, virgen.
raw mode - modo primitivo, modo directo, modo sin formato.
Ray-tracing - trazado de rayos.
re-spawn (v) - reiniciar.
read only - sólo lectura.
Read-only - Sólo para lectura.
Readme - leame, leeme.
Diplomado de GNU/Linux
157
Fundación Código Libre Dominicano
http://www.codigolibre.org
Realm - reino (conjunto de páginas web cubiertas con el mismo par usuario/contraseña).
Realtime - en tiempo real, en vivo.
reboot (v) - reiniciar, rearrancar.
Receiver - receptor, destinatario.
Recipient - destinatario (de una carta, mensaje, etc...).
redirect - redirigir, redirigir.
Refresh - actualizar, actualizar, refrescar (en casos en que actualizar tenga el
sentido de update).
refuse (v) - rehusar, rechazar.
regular expression - expresión regular.
Relay - 1. repetidor, conmutador, relevador, relevo, relé. 2. reenvío, conmutación.
relay host - nodo de reenvío, conmutador.
Release - lanzamiento, publicación, entrega, versión, revisión.
release (v) - lanzar, publicar, sacar.
rely on (v) - depender de, confiar en, delegar en.
Remailer - reexpedidor.
remove (v) - remover, retirar, quitar, sacar (la traducción remover desagrada a
algunos, pero otras alternativas que proponen como ``borrar'' o ``desechar'' pueden
causar confusión; por ejemplo ``remove the disk'' no debe ser traducido como ``borre el
disco''), extraer (se adecua al ejemplo de "remove the disk").
Rendering - síntesis de imágenes, renderizado, representación.
reply (v) - responder (al autor de un artículo o mensaje).
Repository - repositorio.
Request - pedido, peticion.
require (v) - necesitar, exigir.
Requirement - requisito.
Resample - remuestrear.
Reset - reinicio.
reset (v) - reiniciar.
reset button - botón de reinicio.
Resize - redimensionar.
Resolution -resolución.
Resolver - sistema de resolución, traductor de direcciones, resolutor.
resume (v) - reanudar, retomar.
Ripper - extractor de audio.
Roadmap - plan de acción, plan estratégico, calendario de mejoras,.
Root - superusuario, directorio raíz, administrador, administrador del sistema.
root exploit - explotación de root.
roster (término de Jabber) - lista de contactos.
round trip time (RTT) - Tiempo de ida y vuelta.
Router - encaminador, enrutador, definicion, router.
Routing - encaminamiento, enrutamiento.
routing table - tabla de rutas.
RTFM - LEJM ('Read the Fucking Manual' : 'Lee el Jodido Manual').
Run - ejecución .
run (v) - ejecutar, correr, operar, utilizar (término muy problemático pq según el
contexto tiene un sentido temporal momentáneo [la ejecución] o continuo [estado
operativo]).
run out of memory - agotar la memoria.
run time - tiempo de ejecución.
Runlevel - nivel de ejecución (al iniciar o arrancar el sistema operativo).
Diplomado de GNU/Linux
158
Fundación Código Libre Dominicano
http://www.codigolibre.org
S
sample rate - frecuencia de muestreo.
Scalable - redimensionable.
Scanner - escáner, digitalizador, que es, scanner:.
Scanning - barrido, rastreo.
Schedule - horario.
schedule (v) - planificar, programar, organizar.
Scheduler - planificador, planificador de tareas.
Schema - esquema.
scratch (from) - de cero, desde el principio.
Screen - pantalla.
screen saber - salvapantallas, protector de pantallas, definición.
Screenshot - captura de pantalla.
Script - guión, macro, script, archivo de comandos, archivo de órdenes.
script kiddie - aprendiz de cracker. alguien que busca romper sistemas en red con
herramientas hechas por otros.
Scroll - desplazamiento, lista, rollo.
scroll (v) - desplazar.
scroll down (v) - avanzar.
search engine - motor de búsqueda.
seccion target - español.
Sentence - sentencia.
separation of concerns - separación de asuntos.
Server - file server, servidor, servidor, servidor.
servidor espejo - serveur miroir, servidor.
shadow passwords - Sistema de encriprtación de dichas contraseñas utilizado en sistemas
Unix/Linux.
sharpen (v) - enfocar.
Shell - shell. Interfaz de comandos.
shell menu - menú de sistema.
Single-stepping - seguimiento sencillo.
Skin – skin, piel (generalmente usado para temas).
Slash - (/).
slideshow - presentación con diapositivas.
Snapshot - instantánea.
Snippet - snipett.
Software - recreativo, código, software, soporte lógico, lógica, aplicación, programa.
software localization - (de un programa) traducción diatópica, traducción regional,
diatopización (sólo para ejecutivos)
source - re-lectura (de archivo de configuración); en la shell bash, sinónimo del
comando en forma corta.
source tree - árbol de fuentes, árbold de código fuente.
Spam - correo comercial no deseado (e-mail de propaganda).
Speed - velocidad.
sroll up (v) - retroceder.
Scrollable - deslizable.
Search - búsqueda.
search (v) - buscar.
search engine – buscador, motor de busqueda.
Diplomado de GNU/Linux
159
Fundación Código Libre Dominicano
http://www.codigolibre.org
Diplomado de GNU/Linux
160
Fundación Código Libre Dominicano
http://www.codigolibre.org
Specs - especificaciones.
specular highlights - reflexiones especulares.
Spell - hechizo.
spell (v) - deletrear.
Spelling - ortografía.
Spike - pico (en una gráfica).
spin lock - cerrojo, spin lock.
Splitter - divisor.
sponsor (v) - patrocinar.
spoof (v) - engañar, falsificar.
Spool - cola, lista de espera, cola de impresión.
spool directory - directorio de la cola.
Spreadsheet - hoja de cálculo.
Stack - pila.
Staff - (sust.) Personal.
Stalled - atascado.
Standard - estándar, patrón, norma.
stat (v) - verificar.
statistical sampling - muestreo estadístico (de registros en una base de datos).
Stats - estadísticas.
Statement - declaración, cláusula.
Stochastic - estocástico.
Store - almacen, depósito.
Stream - corriente, flujo, secuencia (vídeo), secuencia.
stream (v) - optimizar, Transmitir por una corriente, serializar.
Stride - espaciamiento (entre elementos consecutivos de un vector).
String - cadena de caracteres.
strip (v) - despojar, desnudar (eliminar los símbolos de depuración en un programa o
biblioteca)
stroke - 1. golpe. 2. ataque (he died of a stroke). 3. movimiento. 4. trazo.
stroke (v) - trazar.
Submit - remitir, enviar.
Subject - asunto.
Subnet - subrred.
Subscript - subíndice.
Superblock - superbloque (cf. sistema de archivos/archivo).
supersede (v) - sustituir, modificar.
Support - soporte, apoyo, respaldo, asesoría, (nota: soporte no es correcto castellano
es un 'falso amigo')
support (v) - apoyar, ayudar, colaborar, , permitir, aceptar, reconocer.
Surfer - navegante.
surround sound - sonido envolvente.
Swap - intercambio.
swap (v) - intercambiar, swapping.
swap partition - Partición de intercambio.
Switch - interruptor, conmutador, switch, switch de nivel 1.
symbolic link - enlace simbólico.
Symlink - enlace simbólico.
syntax highlighting - resaltado de sintaxis, syn.
system call - llamada al sistema.
system logger - gestor de registro de actividades del sistema.
Diplomado de GNU/Linux
161
Fundación Código Libre Dominicano
http://www.codigolibre.org
T
tab - pestaña, lengüeta, tira, tabulador, ficha, solapa.
tab completion - terminación por tabulador (tecla Tab).
Tag - marca, coletilla, etiqueta.
Tarball - archivo tar, archivo producido por el programa tar.
Target - destino, objetivo.
target partition - partición de destino.
Task - tarea.
technnical support - asistencia técnica.
Template - plantilla.
terminal input - entrada.
Test - prueba, test.
test (v) - evaluar, probar.
texture mapping - aplicación de texturas.
third party - entidades externas (...no se me ocurre nada más descriptivo, mejoradlo)
thread - hilo (hilo de mensajes en una lista, o hilo de ejecución en un programa),
hebra
threshold - umbral.
threshold level - valor umbral.
Throughput - flujo, caudal de datos, rendimiento total, productividad, tasa de
transferencia
thumbnail - miniatura.
Ticker - teletipo.
Ticket - tiquete.
Tile - baldosa, mosaico.
tile (v) - embaldosar.
Timeout - timeout, expiración de plazo, tiempo de espera agotado.
Timer - temporizador.
Timeslice - porción de tiempo, partición de tiempo.
Timestamp - marca de tiempo, fecha y hora, sello temporal.
Tiny - diminuto.
Tip - consejo, sugerencia.
to watch - monitorizar, observar, seguir, vigilar, (v).
toggle - conmutado, biestable.
toggle (v) - alternar (entre dos estados).
Token - símbolo, lexema.
token ring - anillo de fichas, ethernet.
Tool - utilería, herramienta.
Toolbar - barra de herramientas, barra de herramientas.
Toolkit - juego de herramientas, conjunto de herramientas.
Torque - par.
Trace - traza.
trace (v) - trazar, rastrear.
trade off - contrapeso, equilibrio, balance.
trade off (v) - contrapesar.
trailing spaces - espacios finales.
transactional integrity - integridad transaccional.
Transport - transporte.
transport (v) - transportar, transport vehicule.
tree view - lista jerárquica, toolchain.
Diplomado de GNU/Linux
162
Fundación Código Libre Dominicano
http://www.codigolibre.org
Trigger - disparador.
Troll - trole, metepatas, bocazas.
troll (v) - meter la pata, reventar un debate.
Troubleshooting - eliminación de problemas, solución de problemas, localizar problemas
troyanized program - programa comprometido. programa modificado con código malicioso.
Trusted - confiable.
tune (v) - afinar.
Tutorial - guía, tutorial, Tutorial.
Tweak - arreglo.
tweak (v) - afinar.
twisted pair - par trenzado.
Type - tipo.
type (v) - teclear.
Typing - impresión (en papel, por ejemplo).
Typo - errata, , error ortográfico.
U
undefined - indefinido.
Underflow - desbordamiento por abajo.
Uniform Resource Locator (URL) - localizador, Recurso de locación uniforme (cuando se
refiere a dirección de internet se usa URL).
Unindent - desangrar (?).
Uninterruptible Power Supply (UPS) - sistema de alimentación ininterrumpida.
Universal Asynchronous Receiver and Transmiter (UART) - receptor/transmisor asíncrono
universal, syn.
Up - operacional, en funcionamiento.
Update - actualización, de software.
update (v) - actualizar.
Upgrade - mejora, versión mejorada.
upgrade (v) - promover, mejorar, instalar una versión mejorada, modernizar.
Upload - subir, cargar (copiar en un servidor remoto).
Upstream - flujo ascendente.
upstream port - puerto de envío.
upstream version - versión original.
Usability - ergonomía.
User - usuario, Usuario, Persona que accede a un sistema de internet.
user friendly - fácil de usar.
Userland - área de usuario.
Using - español ingles, usando.
Utility - utilidad, generalmente un programa de sistema para un uso específico.
V
validity - validez.
Value - valor.
Variation - variación, variante, variable, tipos de variables, VARIABLE CONSTANTE.
Verbatim - literal, textual, al pie de la letra.
Verbose - prolijo, pormenorizado, detallado, verboso.
vertex blending - combinación de vértices.
view layout - vista de disposición.
Viewer - visor.
Volatility - volatilidad.
Diplomado de GNU/Linux
163
Fundación Código Libre Dominicano
http://www.codigolibre.org
Voltage - voltaje.
volume group - en el manejador de volúmenes lógicos (lvm, en inglés): grupo de
volúmenes
vulnerability scanner - analizador de vulnerabilidades (generalmente el análisis será
automático, pero a veces podría ser dirigido).
W
wallpaper - fondo, mural, papel tapiz, fondo de pantalla, fondo de escritorio, imágen
del fondo, telón de fondo, papel de empapelar, imagen de fondo, tapiz, fondo de
pantalla, papel de pared, papel tapiz, empapelado, papel mural, estilo de escritorio,
fondo pantalla
warehouse - almacenamiento masivo.
Warning - advertencia, aviso.
Watchdog - perro guardián, aplicación guardiana.
Web - 1. web (femenino: ``búscalo en la web'', ``se encuentra en muchos sitios web'')
2. red, trama, la web, concepto, concepto, WED SITE, web
Web Mail Folder (WMF) - carpetas de correo web.
Webcam - cámara de videoconferencia.
Weblog - portal de noticias, cuaderno de bitacora, blog, diario.
Website - sitio web.
Widget - widget, control, componente.
Wildcard - comodín.
window manager - gestor de ventanas, administrador de ventanas.
Wireless - inalámbrico, red inalambrica, sin hilos.
Wishlist - deseable, lista de mejoras.
Wizard – asistente.
word wrap - ajuste de línea, encapsulamiento de palabra, retorno automático de palabras
Workaround, arreglo temporal.
wrap (v) - encapsular, forrar, envolver.
Wraparound - envoltura, envolvente, reciclado.
Wrapper - envoltura, forro, empacador, envoltorio.
WYSIWYG - "What You See Is What You Get". Lo que ves es lo que obtienes.
Y
yank (v) - insertar un trozo de texto en la posición actual del cursor.
Z
zap - fulminar.
zoom in (v) - acercar.
zoom-out (v) - alejar.
Diplomado de GNU/Linux
164