Page 32
Alvaro Alea
Administración Avanzada
__rendered_path__1579
Se controla desde el archivo /etc/samba/smb.conf, y si esta instalado swat, tiene un interfaz grafico
funcionando como un servidor web en http://localhost:691, ademas tambien esta disponible un simple
interfaz grafico.
__rendered_path__209__rendered_path__211
DNS es el sistema que convierte las direcciones IP en nombre de dominio, mas faciles de recordar.
__rendered_path__210__rendered_path__212
La resolucion de nombres en Linux se controla con dos archivos:
__rendered_path__213
/etc/resolv.conf controla el orden de los sistemas a los que se preguntara, aquí es donde hay que poner las
__rendered_path__214__rendered_path__213
IP de los DNS
__rendered_path__215__rendered_path__218
/etc/hosts contiene una lista de pares, IP – Nombre de dominio que pueden ser resueltos sin falta de
__rendered_path__216__rendered_path__219
consultar al dns, util en pequeñas intranets donde no merezca la pena montar un dns.
__rendered_path__217
En cuanto a los servidores de DNS, tenemos dos opciones en funcion de las necesidades:
__rendered_path__210
Es un proxy dns, su mision es reducir y acelerar el trafico entre la intranet e internet, es util en pequeñas
__rendered_path__220
intranets con acesso a internet.
__rendered_path__292__rendered_path__294
Sirve ademas para resolver nombres de dominio a pequeña escala, cogiendolos del archivo /etc/hosts.
__rendered_path__293__rendered_path__295
Su principal ventaja es su pequeño tamaño y facil configuración, en contra su limitada funcionalidad
__rendered_path__296
En el caso de necesitar servicios de resolución de nombres mas avanzadas, bien por tener que
__rendered_path__297__rendered_path__298__rendered_path__299
proporcionar un gran numero de respuestas, por servir varios dominios u otras características se utiliza
__rendered_path__300__rendered_path__296
bind.
__rendered_path__301__rendered_path__294
Bind se controla a través de una serie de archivos, de sintaxis concreta.
__rendered_path__302__rendered_path__303
Existen una gran multitud de servidores web disponibles bajo Linux, aunque el mas ampliamente utilizado
__rendered_path__293__rendered_path__303
es apache.
__rendered_path__301
La configuración de apache se realiza a través de varios archivos localizados en /etc/apache/ siendo el
__rendered_path__300
principal /etc/apache/httpd.conf donde se configura los posibles servidores virtuales (apache puede
__rendered_path__639
responder a distintos nombres y proporcionar webs diferentes a cada uno de ellos), y todo lo relacionado
__rendered_path__640__rendered_path__294
con su funcionamiento.
__rendered_path__641
Apache tiene una serie de módulos que le permiten aumentar o mejorar las características que trae, son
__rendered_path__895__rendered_path__296__rendered_path__294__rendered_path__640__rendered_path__209__rendered_path__210__rendered_path__211__rendered_path__212__rendered_path__213__rendered_path__214__rendered_path__213__rendered_path__215__rendered_path__216__rendered_path__217__rendered_path__210__rendered_path__1110__rendered_path__210__rendered_path__1111__rendered_path__1112__rendered_path__1113__rendered_path__1114__rendered_path__1115__rendered_path__1116__rendered_path__1117__rendered_path__299__rendered_path__1118__rendered_path__296__rendered_path__301__rendered_path__296__rendered_path__293__rendered_path__641__rendered_path__1119__rendered_path__1117__rendered_path__1120__rendered_path__1577__rendered_path__1578
controlados desde /etc/apache/modules.conf

Page 33
Administración Avanzada
Manual de Linux
Image_87_0__rendered_path__880
Utilidad Grafica para Configurar Apache
__rendered_path__61__rendered_path__63
Entre todos los servidores de ftp disponibles, porFTPD destaca por ser seguro y fácil de administrar.
__rendered_path__62__rendered_path__64
En /etc/protfpd.conf en archivo con una estructura similar a la de los html, es posible controlar por un lado
__rendered_path__65
el aspecto del servidor, nombre, puerto que escucha, etc…
__rendered_path__66__rendered_path__65
Por defecto deja entrar a los usuarios no root, y navegar por el sistema de ficheros como si estuviesen en
__rendered_path__67__rendered_path__70
una sesión de shell. Limitarlos a su propio directorio es tan simple como añadir una línea que ponga
__rendered_path__68__rendered_path__71
DefaultRoot ~ y reiniciar el demonio.
__rendered_path__69__rendered_path__72
Es posible controlar además el acceso de usuarios anónimos, a que directorios pueden acceder, subir
__rendered_path__62
cosas, etc...
Así mismo se puede controlar la velocidad, numero de accesos simultáneos, cuota de disco y al igual que
en apache, crear servidores virtuales que respondan de manera diferente a distintos nombres.
__rendered_path__675__rendered_path__677
Existen cuatro posibilidades de acceso remoto a un ordenador con Linux
__rendered_path__676__rendered_path__678
Un ordenador ejecutando un servidor X, puede recibir peticiones desde otro conectado en red para
__rendered_path__679__rendered_path__680__rendered_path__679__rendered_path__681__rendered_path__682__rendered_path__683__rendered_path__676__rendered_path__684__rendered_path__680__rendered_path__680__rendered_path__676__rendered_path__682__rendered_path__681__rendered_path__685__rendered_path__676__rendered_path__686__rendered_path__681__rendered_path__687__rendered_path__681__rendered_path__61__rendered_path__62__rendered_path__63__rendered_path__64__rendered_path__65__rendered_path__69__rendered_path__67__rendered_path__63__rendered_path__731__rendered_path__878__rendered_path__879
mostrar en su pantalla un programa, este sistema solo es util en equipos conectados en la misma red local.

Page 34
Alvaro Alea
Administración Avanzada
__rendered_path__27__rendered_path__645
Este sistema es similar al anterior, pero además permite ser utilizado en conexiones lentas, incluso de
__rendered_path__28
modem y tiene persistencia, esto es, si desconectas el cliente, y conectas desde otro sitio, todo sigue como
__rendered_path__29
lo dejaste.
__rendered_path__212
Es el sistema mas simple y antiguo, abre una session en modo texto en otro ordenador, el principal
__rendered_path__213__rendered_path__214
problema es que todo viaja por Internet sin seguridad, incluyendo contraseñas o otros datos sensibles.
__rendered_path__215
SSH permite la ejecución remota de programas, incluyendo el shell, lo que en la practica lo hace una
__rendered_path__213__rendered_path__216
alternativa a Telnet, su diferencia esta en que todo viaja por la red de forma cifrada, lo que aumenta la
__rendered_path__371__rendered_path__372
seguridad, también es posible comprimir los datos o utilizarlo como túnel y así tener p.e. una sesión de
__rendered_path__371__rendered_path__643__rendered_path__644
VNC segura gracias al ssh.

Page 35
Apéndice A – Editor de Textos VI
Manual de Linux
__rendered_path__34__rendered_path__43__rendered_path__1411
El propósito de este tutorial es que comience a usar el editor vi. Este tutorial asume que no tiene ninguna
__rendered_path__35__rendered_path__36__rendered_path__37
experiencia con vi, así que le mostraremos los diez comandos más básicos de vi. Estos comandos
__rendered_path__38__rendered_path__39
fundamentales son suficientes para realizar la mayoría de sus necesidades de edición, y puede expandir su
__rendered_path__40__rendered_path__42
vocabulario de vi cuanto necesite. Se recomienda que tenga un ordenador para practicar, según avanza
__rendered_path__41__rendered_path__44
con el tutorial.
__rendered_path__38__rendered_path__39
Para ejecutar vi, simplemente tiene que teclear las letras vi seguidas del nombre de fichero que desea
__rendered_path__45
crear. Verá una pantalla con una columna de tildes (~) en el lado izquierdo. vi está ahora en modo de
__rendered_path__46__rendered_path__47
comando. Cualquier cosa que teclee será interpretada como un comando, no como texto que usted desea
__rendered_path__38__rendered_path__48
escribir. Para introducir texto, tiene que teclear un comando. Los dos comandos de entrada básicos son los
__rendered_path__41__rendered_path__50
siguientes:
__rendered_path__49__rendered_path__45
i insertar texto a la izquierda del cursor.
__rendered_path__46
a añadir texto a la derecha del cursor.
__rendered_path__51
Dado que está al comienzo de un fichero vacío, no importa cual de estos usar. Escriba uno de ellos, y
__rendered_path__52
después teclee el siguiente texto (un poema de Augustus DeMorgan encontrado en The Unix
__rendered_path__53
Programming Environment por B.W. Kernighan y R. Pike):
__rendered_path__54__rendered_path__1412
Las pulgas grandes tienen pequeñas pulgas<Intro>
__rendered_path__55__rendered_path__57
sobre sus espaldas para que les muerdan.<Intro>
__rendered_path__56__rendered_path__58__rendered_path__60
Y las pulgas pequeñas tienen pulgas más pequeñas<Intro>
__rendered_path__59__rendered_path__60
y así hasta el infinito.<Intro>
__rendered_path__61__rendered_path__62
Y las pulgas grandes, a su vez,<Intro>
__rendered_path__59__rendered_path__57
tienen pulgas más grandes sobre las que estar;<Intro>
__rendered_path__63__rendered_path__64
Mientras que estas de nuevo tienen otras más grandes aun,<Intro>
__rendered_path__58__rendered_path__66
y más grandes aun, y así.<Intro>
__rendered_path__65__rendered_path__57
<Esc>
__rendered_path__416
Fíjese que tiene que pulsar la tecla |_Esc_| para finalizar la inserción y volver al modo de comando.
__rendered_path__417__rendered_path__418__rendered_path__421
h mueve el cursor un espacio a la izquierda.
__rendered_path__419__rendered_path__420__rendered_path__422__rendered_path__423__rendered_path__424__rendered_path__425__rendered_path__1346__rendered_path__1347__rendered_path__1348__rendered_path__1349__rendered_path__1350__rendered_path__1351__rendered_path__1347__rendered_path__1352__rendered_path__1351__rendered_path__418__rendered_path__1348__rendered_path__1347__rendered_path__424__rendered_path__425__rendered_path__1348__rendered_path__425__rendered_path__418__rendered_path__1350__rendered_path__421__rendered_path__1347__rendered_path__1351__rendered_path__418__rendered_path__1353__rendered_path__419__rendered_path__420__rendered_path__423__rendered_path__1354__rendered_path__1347__rendered_path__423__rendered_path__1410__rendered_path__1410
j mueve el cursor un espacio abajo.

Page 36
Alvaro Alea
Apéndice A – Editor de Textos VI
__rendered_path__2423
k mueve el cursor un espacio arriba.
l mueve el cursor un espacio a la derecha.
Estos comandos se pueden repetir manteniendo la tecla pulsada. Intente mover el cursor por el texto
ahora. Si intenta un movimiento imposible, por ejemplo, pulsar la tecla |_k_| cuando el cursor está en la
línea superior, la pantalla parpadeará momentáneamente o el terminal sonará. No se preocupe, no muerde,
y su fichero no saldrá dañado.
__rendered_path__364
x borra el carácter que hay en el cursor.
__rendered_path__365__rendered_path__366
dd borra la línea donde está el cursor.
__rendered_path__366
Mueva el cursor a la primera línea y póngalo de modo que esté bajo la n. Pulse la letra |_x_|, y la n
__rendered_path__367__rendered_path__366
desaparecerá. Ahora pulse la letra |_i_| para cambiarse al modo de inserción y vuelva a teclear la n. Pulse |
__rendered_path__368
_Esc_| cuando haya terminado.
__rendered_path__369__rendered_path__370
:w salvar (escribir al disco).
__rendered_path__368
:q salir.
__rendered_path__371
Asegúrese de que está en modo de comando pulsando la tecla |_Esc_|. Ahora pulse: w. Esto salvará su
__rendered_path__624__rendered_path__626
trabajo escribiéndolo a un fichero de disco.
__rendered_path__625__rendered_path__627
El comando para salir de vi es |_q_|. Si quiere combinar el salvar y salir, escriba: wq. También hay una
__rendered_path__628__rendered_path__366
abreviación para: wq _ ZZ. Dado que gran parte del trabajo de programación consiste en ejecutar un
__rendered_path__629__rendered_path__630
programa, encontrar algún problema y llamar el programa en el editor para hacer algún pequeño cambio, y
__rendered_path__631
luego volver a salir del editor para ejecutar el programa otra vez, ZZ será un comando que usará a
__rendered_path__632
menudo. (En realidad, ZZ no es un sinónimo exacto de: wq _ si no ha hecho ningún cambio al fichero que
__rendered_path__633__rendered_path__634
está editando desde la ultima vez que lo salvo, ZZ simplemente saldrá del editor mientras que :wq salvará
__rendered_path__369__rendered_path__366
(redundantemente) el fichero antes de salir).
__rendered_path__365
Si usted se lo ha cargado todo sin esperanzas y simplemente quiere volver a empezarlo todo, puede
teclear: q! (recuerde pulsar la tecla |_Esc_| primero). Si omite el !, vi no le permitirá salir sin salvar.
__rendered_path__1478__rendered_path__627
Los diez comandos que acaba de aprender deberían ser suficientes para su trabajo. Sin embargo,
__rendered_path__1479__rendered_path__629__rendered_path__632
solamente ha rozado la superficie del editor vi. Hay comandos para copiar material de un lugar del fichero
__rendered_path__1480__rendered_path__630
a otro, para mover material de un lugar a otro, para mover material de un fichero a otro, para ajustar el
__rendered_path__369__rendered_path__630
editor a sus gustos personales, etc. Con todo, hay unos 150 comandos.
__rendered_path__369__rendered_path__368
La ventaja y la potencia de vi está en la habilidad de usarlo con éxito con sólo saber unos pocos
__rendered_path__628__rendered_path__632
comandos. La mayoría de los usuarios de vi se sienten un poco incómodos al principio, sin embargo
__rendered_path__633__rendered_path__630
después de algún tiempo se encuentran ávidos de mayor conocimiento de los comandos disponibles.
__rendered_path__365__rendered_path__632
El siguiente tutorial asume que el usuario ha completado el tutorial rápido (arriba) y por lo tanto se siente
__rendered_path__629__rendered_path__630
a gusto con vi. Este tutorial expone algunas de las características más poderosas de ex/vi desde copiar
__rendered_path__628__rendered_path__1482
texto hasta la definición de macros. Hay una sección sobre ex y los parámetros para ajustar el editor a su
__rendered_path__633
gusto. Este tutorial describe los comandos, en vez de llevarle grupo por grupo.
__rendered_path__1481
Se recomienda que usted disponga de algún tiempo para probar los comandos en algún texto de ejemplo,
__rendered_path__1771__rendered_path__1772__rendered_path__1773__rendered_path__1774__rendered_path__1775__rendered_path__1776__rendered_path__1777__rendered_path__1778__rendered_path__1777__rendered_path__1779__rendered_path__1777__rendered_path__1780__rendered_path__1781__rendered_path__1777__rendered_path__1782__rendered_path__1774__rendered_path__1782__rendered_path__1783__rendered_path__1784__rendered_path__1776__rendered_path__2421__rendered_path__2422
que se pueda permitir destruir.

Page 37
Apéndice A – Editor de Textos VI
Manual de Linux
__rendered_path__1566
Este tutorial no expone todos los comandos de vi, aunque se cubren los más comúnmente usados y aún
otros adicionales. Aunque usted elija usar otro editor de texto, se espera que apreciará vi y lo que ofrece a
quienes deciden usarlo.
__rendered_path__218
La funcionalidad más básica de un editor es el mover el cursor por el texto. Aquí están los comandos de
__rendered_path__219__rendered_path__220
movimiento.
__rendered_path__221
h mueve el cursor un espacio a la izquierda.
__rendered_path__222
j mueve el cursor una línea hacia abajo.
__rendered_path__221
k mueve el cursor una línea hacia arriba.
__rendered_path__223__rendered_path__224
l mueve el cursor un espacio a la derecha.
__rendered_path__225
Algunas implementaciones también permiten el uso de las teclas de cursor para mover el cursor.
__rendered_path__226
w mueve al principio de la siguiente palabra.
e mueve al final de la siguiente palabra.
E mueve al final de la siguiente palabra antes de un espacio.
b mueve al principio de la palabra anterior.
0 mueve al principio de la línea actual.
^ mueve a la primera palabra de la línea actual.
$ mueve al final de la línea.
<CR> mueve al principio de la siguiente línea.
- mueve al principio de la línea anterior.
G mueve al final del fichero.
1G mueve al principio del fichero.
nG mueve a la línea n.
<Cntl> G muestra el número de línea actual.
% va al paréntesis correspondiente.
H mueve a la línea superior en pantalla.
M mueve a la línea de en medio de la pantalla.
L mueve al final de la pantalla.
n_ mueve el cursor a la columna n.
El texto se desplaza automáticamente cuando el cursor alcanza la parte superior o inferior de la pantalla.
También hay comandos que permiten controlar el desplazamiento del texto.
<Cntl> f desplaza una pantalla hacia delante.
<Cntl> b desplaza una pantalla hacia atrás.
<Cntl> d desplaza media pantalla hacia abajo.
<Cntl> u desplaza media pantalla hacia arriba
Los comandos anteriores controlan el movimiento del cursor. Algunos de los comandos usan un
modificador de comandos en la forma de un número que precede al comando. Esta característica
normalmente repite el comando ese número de veces.
Para mover el cursor ocho posiciones a la izquierda.
__rendered_path__1564__rendered_path__1565
8l mueve el cursor 8 posiciones a la izquierda.

Page 38
Alvaro Alea
Apéndice A – Editor de Textos VI
__rendered_path__2418
Si desea introducir un número de espacios delante de un texto, podría usar el modificador de comandos
con el comando insertar. Introduzca el número de repeticiones (n) y después |_i_| seguido por el espacio y
luego pulse la tecla |_Esc_|.
ni inserta algún texto y lo repite n veces.
Los comandos que tratan con líneas usan el modificador para referirse al número de línea. El |_G_| es un
buen ejemplo.
1G mueve el cursor a la primera línea.
vi tiene un voluminoso grupo de comandos que se puede usar para mover el cursor por el texto.
vi también puede posicionar el cursor en una línea desde la línea de comandos.
vi +10 mi_fichero.tex
Este comando abre el fichero llamado mi_fichero.tex y pone el cursor 10 líneas más abajo del comienzo
del fichero.
Pruebe los comandos de esta sección. Muy poca gente los recuerda todos en una sola sesión. La mayor
parte de los usuarios solamente utiliza una parte de estos comandos.
Ahora se puede mover, pero ¿cómo modificar el texto?
__rendered_path__750
El propósito es cambiar el contenido del fichero y vi ofrece un amplio conjunto de comandos para
__rendered_path__751__rendered_path__753
ayudarnos en este proceso.
__rendered_path__752__rendered_path__754
Esta sección se concentra en añadir texto, cambiar el texto existente y borrar texto. Al final de esta
__rendered_path__753
sección usted tendrá el conocimiento para crear cualquier fichero de texto que desee. Las secciones
__rendered_path__755__rendered_path__753
restantes se concentran en comandos más especializados y convenientes.
__rendered_path__756__rendered_path__758
Cuando usted teclea nuevo texto puede introducir varias líneas usando la tecla |_Intro_|. Si hay que
__rendered_path__755__rendered_path__760
corregir un error tipográfico mientras introduce texto, puede usar la tecla |_Retroceso_| para mover el
__rendered_path__757__rendered_path__761
cursor sobre el texto. Las varias implementaciones de vi se comportan de manera diferente. Algunas
__rendered_path__752__rendered_path__762
simplemente mueven el cursor hacia atrás y el texto sigue viéndose y es aceptado. Otras borran el texto
__rendered_path__759__rendered_path__761
cuando pulsa la tecla de borrado. Otras versiones, incluso, permiten usar las teclas de cursores para mover
__rendered_path__759
el cursor mientras se está en modo de entrada de texto. Este modo de funcionamiento no es el normal de
__rendered_path__763
vi. Si el texto es visible y usa la tecla |_Esc_| mientras está en la línea en la que pulsó |_Retroceso_|,
entonces el texto que hay después del cursor se borrará. Use el editor para acostumbrarse a este
comportamiento.
a Añadir texto a partir de la posición actual del cursor.
A Añadir al final de la línea.
i Insertar texto a la izquierda del cursor.
I Insertar texto a la izquierda del primer carácter que no sea espacio en la línea actual.
o Abrir una nueva línea y añade texto debajo de la línea actual.
O Abrir una nueva línea y añade texto encima de la línea actual.
vi tiene un pequeño grupo de comandos para borrar texto que se pueden mejorar con el uso de
modificadores.
x Borrar el carácter que está debajo del cursor.
dw Borrar desde la posición actual al final de la palabra.
dd Borrar la línea actual.
D Borrar desde la posición actual al final de la línea.
Los modificadores se pueden usar para aumentar la potencia de los comandos. Los siguientes ejemplos
son un subgrupo de las posibilidades.
__rendered_path__2416__rendered_path__2417
nx Borrar n caracteres desde el que está bajo el cursor.

Page 39
Apéndice A – Editor de Textos VI
Manual de Linux
__rendered_path__2209
ndd Borrar n líneas.
dnw Borrar n palabras (igual que ndw).
dG Borrar desde la posición actual hasta el final del fichero.
d1G Borrar desde la posición actual hasta el principio del fichero.
d$ Borrar desde la posición actual al final de la línea. (Esto es igual que D).
dn$ Borrar desde la línea actual al final de la enésima línea.
La lista de comandos anterior muestra que la operación de borrado puede ser muy útil. Esto se hace
patente cuando se aplica en combinación con los comandos de movimiento de cursor. Hay que hacer notar
que el comando |_D_| ignora los modificadores que se le apliquen.
En ocasiones usted puede necesitar deshacer los cambios al texto. Los siguientes comandos recuperan el
texto que había antes de hacer cambios.
u Deshacer el último comando.
U Deshacer todos los cambios ocurridos en la línea actual.
:e! Editar otra vez. Recupera el estado del fichero desde la última vez que se salvó.
vi no sólo le permite deshacer cambios, también puede dar la vuelta al comando "deshacer". Por ejemplo,
si usamos el comando |_5dd_| para borrar 5 líneas, se pueden recuperar usando el comando |_u_|. Si usted
usa |_u_| una vez más, las 5 líneas desaparecerán de nuevo.
vi ofrece comandos que permiten que se hagan cambios al texto sin tener que borrar y volver a escribir:
rc Reemplaza del carácter bajo el cursor con la letra "c". Se Mueve el cursor al modificador de repetición,
por ejemplo: 2rc.
R Sobreescribe el texto con el nuevo texto..
cw Cambia el texto de la palabra actual.
c$ Cambia el texto desde la posición actual al final de la línea.
cnw Cambia las siguientes n palabras. (Igual que ncw).
cn$ Hacer cambios hasta el final de la enésima línea.
C Hacer cambios hasta el final de la línea actual.
cc Hacer cambios en la línea actual.
s Sustituye el texto que escriba por el carácter actual.
ns Sustituye el texto que escriba por los siguientes n caracteres.
Las series de comandos de cambio que permiten que se introduzca un grupo de caracteres se terminan con
la tecla |_Esc_|.
El comando |_cw_| empieza en la posición actual en la palabra y termina al final de la palabra.
Cuando use un comando de cambio que especifica la distancia sobre la que se aplicará el cambio, vi
pondrá un $ en la última posición de carácter. El nuevo texto puede sobrepasar o no llegar a la longitud
original de texto.
__rendered_path__1776__rendered_path__1779
El movimiento de texto supone la combinación de un número de comandos para conseguir el propósito
__rendered_path__1777__rendered_path__1781
final. Esta sección introduce los buffers1 con y sin nombre junto a los comandos que cortan y pegan el
__rendered_path__1778__rendered_path__1780__rendered_path__1783
texto.
__rendered_path__1782__rendered_path__1777__rendered_path__1784
La copia de texto se realiza en tres pasos principales:
__rendered_path__1785__rendered_path__1781
1 N. del T.: "buffer" es una palabra inglesa que se refiere a un espacio reservado en memoria para guardar
__rendered_path__1786__rendered_path__1787
alguna información temporalmente. En este caso se usan buffers para almacenar una copia temporal del
__rendered_path__1777__rendered_path__1788__rendered_path__1789__rendered_path__1785__rendered_path__1790__rendered_path__1791__rendered_path__1785__rendered_path__1792__rendered_path__1785__rendered_path__1793__rendered_path__1792__rendered_path__1794__rendered_path__2207__rendered_path__2208__rendered_path__2210
texto que usted desea copiar o mover.