Sunteți pe pagina 1din 342

TODO LINUX

1. Historia ........................................................................................................... 3
Antecedentes:............................................................................................................. 3
Nacimiento:................................................................................................................. 3
Expansin de Unix:..................................................................................................... 3
Evolucin: ................................................................................................................... 4
La G.N.U..................................................................................................................... 5
Distribuciones de Linux. ............................................................................................. 6

2. Generalidades de la gestin del S.O. ........................................................... 6


3. Caractersticas ............................................................................................... 7
4. Estructura del S.O. UNIX ............................................................................... 8
Kernel o Ncleo .......................................................................................................... 8
Dispositivos ................................................................................................................ 8
Utilidades .................................................................................................................... 8
SHELL o Caparazn................................................................................................... 8

5. Primera Aproximacin................................................................................... 9
Antes de entrar al Sistema: ........................................................................................ 9
Escribir algunos comandos para tomar contacto. ...................................................... 9

6. Algunas utilidades para experimentar. ...................................................... 10


Consultar el manual.................................................................................................. 10
Hacer clculos .......................................................................................................... 10
Mirar el almanaque ................................................................................................... 11

7. Conceptos Bsicos del Sistema de Ficheros ............................................ 12


Distribucin de la informacin en disco: ................................................................... 12
Inodos ....................................................................................................................... 12
Los ficheros pueden ser esencialmente de tres tipos: ............................................. 13
Trayectoria o pathname:........................................................................................... 16
Nombres de ficheros y Metacaracteres.................................................................... 16

8. Trabajo del Usuario con Ficheros Ordinarios. .......................................... 18


Formato de las rdenes............................................................................................ 18
Crear ficheros ........................................................................................................... 18
Listar nombres e informacion sobre ficheros............................................................ 18
Copiar, Mover, Enlazar y Borrar Ficheros. ............................................................... 19
Permisos, Propietario y Grupo. ................................................................................ 21

9. Operaciones Con Ficheros Directorios...................................................... 26


10. Flujo De Informacin. .................................................................................. 28
Entrada y salidas estndar (std)............................................................................... 28

El Sistema Operativo Unix - Linux

Redireccionamiento:................................................................................................. 28
Tuberas (pipes): ...................................................................................................... 29
Filtros para: Contar, Ordenar y Eliminar Repetidos.................................................. 30
Filtros para ver que hay en los ficheros.................................................................... 32
Filtro para cambiar caracteres.................................................................................. 33
Buscar en ficheros. Familia grep. ............................................................................. 35
Comparacion de Ficheros. ....................................................................................... 36
Cortar y Pegar Ficheros. .......................................................................................... 37

11. Bsqueda de ficheros. ................................................................................ 39


12. Editores: ....................................................................................................... 42
Editor VIsual. Generalidades. ................................................................................... 42
Configuracin ........................................................................................................... 44
Bsquedas y reemplazos. ........................................................................................ 46
Los Bfers del VI ...................................................................................................... 47

13. Comunicacin entre Usuarios .................................................................... 49


finger......................................................................................................................... 49
who ........................................................................................................................... 49
w ............................................................................................................................... 49
write .......................................................................................................................... 50
wall............................................................................................................................ 50
Mensaje del da. ....................................................................................................... 51
Mensaje de preentrada............................................................................................. 51
mail ........................................................................................................................... 51

14. Empaquetar y Comprimir Ficheros. ........................................................... 54


tar ............................................................................................................................. 54
gzip ........................................................................................................................... 55
Los dos a la vez: tar y gzip ....................................................................................... 56
zcat ........................................................................................................................... 56
compress, uncompress ............................................................................................ 56
bzip2, bunzip2........................................................................................................... 56

15. Sistema de Impresin.................................................................................. 57


Mandar trabajos a la impresora ................................................................................ 57
Control de la cola...................................................................................................... 58

El Sistema Operativo Unix - Linux

Historia
Antecedentes:
El SO Multics se utiliz durante algn tiempo en los laboratorios Bell.
En Europa se haba desarrollado el sistema de acceso multiple de Cambridge (The Cambridge
Multiple Access System).
Tambin se emple durante algn tiempo el CTSS (sistema de tiempo compartido compatible).
Los desarrolladores de Unix aprovecharon este trabajo realizado con estos y otros sistemas
operativos, para combinar las mejores caractersticas de cada uno.

Nacimiento:
El UNIX surgi en 1964-66 cuando Ken Thompson intentaba utilizar un programa de un
ordenador grande, que funcionaba con el SO Multics, en otro ordenador llamado PDP-7. Para ello
escribi un sistema operativo nuevo llamado UNIX.
A l se uni Dennis Ritchie y el UNIX se comenz a utilizar en los laboratorios Bell.
Pronto se adapt a otros ordenadores y tuvo gran aceptacin en el ambiente universitario, del
cual recibi un gran impulso, en especial de la Universidad de Berkeley en California.
En un principio fue escrito en Ensamblador, pero el hecho de que se pudiese adaptar a
muchos tipos de ordenadores (portabilidad), se debe a que se reescribi casi en su totalidad en
lenguaje C, lenguaje de nivel medio desarrollado por Dennis Ritchie modificando otro ya existente
llamado lenguaje B.
El nacimiento de UNIX y el lenguaje C se hizo a la par y su posterior desarrollo continu
paralelo.

Expansin de Unix:
El sistema operativo Unix ha estado ejecutndose en ordenadores ms de 40 aos. En un
principio se ejecutaba en mainframes y miniordenadores, aunque su principal plataforma de
desarrollo han sido las estaciones de trabajo RISC. En la actualidad el acercamiento de los PC,s a
las estaciones de trabajo ha hecho de las plataformas Intel una buena base para utilizar Unix.
Debido a la gran portabilidad que ofrece el lenguaje
creasen versiones destinadas a otros procesadores.

C, no pas mucho tiempo antes de que

La evolucin de Unix comenz a complicarse cuando Unix se escindi para satisfacer a


diferentes plataformas hardware. Por un lado se obtuvo Xenix, de Microsoft, el primero en
ejecutarse en ordenadores Intel. La versin BSD, desarrollada en la Universidad de California, en
Berkeley, encontr alojamiento en multitud de miniordenadores de alta potencia. Unix 2.0, el
predecesor del presente System V Unix de AT&T, fue el que ms atencin acapar y es el estndar
de hoy en da.
El diagrama muestra un rbol genealgico de Unix desde 1969 hasta nuestros das. Obsrvese
cmo Unix se divide en varias versiones. Adems, es importante destacar de qu forma se
combinaron diversas versiones con el fin de obtener nuevos enfoques del sistema operativo. El
nacimiento de hbridos de diferentes versiones parece la tendencia del momento. Algunos de los
elementos ms destacables de esta numerosa familia son AIX, el sistema operativo IBM RS/6000,
Solaris de SunSoft y Mach.

El rbol genealgico de Unix.:

V1

El Sistema Operativo Unix - Linux

V6
Xenix

2.0

V7

BSD

SIII

32V

2BSD

System V

V8

3BSD

SVR2

V10

4BSD

SVR3

Plan 9

4.2

SCO

4.3
SVRS3.2
AIX

V1

Mach

SVR4

Evolucin:
Cuando Unix era joven (versin 6), su cdigo fuente se encontraba por todas partes, con
autorizacin de AT&T, y se estudiaba frecuentemente en muchas universidades, de las cuales
haba recibido y reciba un gran impulso.
Pero AT&T, en la versin 7 (1979), comprendi que Unix era un valioso producto comercial; y
prohibi el estudio y distribucin del cdigo fuente, para evitar poner en peligro su condicin de
secreto comercial.
Para remediar la situacin y especialmente con fines educativos, en 1983, Andy Tannembaum
desarroll un SO nuevo en cuanto a cdigo, pero compatible con Unix en cuanto a su funcionalidad,
evadiendo los problemas legales para su estudio. Lo llam Minix de Mini-Unix. Finalmente su
creador cedi todos los derechos sobre Minix a una empresa que comenz a cobrar por licencia.
A principios de la decada de los 90, un estudiante de informtica se pone a trabajar en una
variante de Unix llamada Linux, con la idea de que estubiese enmarcado dentro del proyecto GNU.
El padre de la criatura es Linus Benedict Torvalds, nacido en Helsinki en 1969.
El 5 de octubre de 1991 Linus dio a conocer la primera versin oficial, que poda ejecutar el
bash (shell de GNU) y el compilador de C. Lo puso en un grupo de noticias con el siguiente
mensaje:
Suspiris por recordar aquellos das del Minix-1.1, cuando los hombres eran
hombres y escriban sus propios drivers? Os sents sin ningn proyecto interesante y os
gustara tener un verdadero SO, que pudierais modificar a placer?
Os resulta frustrante el tener slo a Minix? Entonces, este artculo es para vosotros.
Como dije hace un mes, estoy trabajando en una versin gratuita de algo parecido a
Minix para ordenadores AT-386. He alcanzado la etapa en la que puede ser utilizable y voy a

El Sistema Operativo Unix - Linux

poner las fuentes para su distribucin. Es slo la versin 0.02 ... pero he conseguido ejecutar
en el bash, gcc, gnu-make, gnu-sed, compress, etc.

Tras esta versin y el apoyo de voluntarios enganchados a Internet, no ha dejado de


evolucionar y mejorarse:
1992 Linus aadi Linux al proyecto GNU.
Abril de 1992, aparece la primera versin capaz de ejecutar X.
Abril de 1994, primera versin completa de Linux, la 1.0.
Diciembre de 1996 aparece la versin 2.0.
Para comprobar la versin actual http://www.kernel.org
Linux ha sido registrado bajo los trminos de la Licencia Pblica General GNU (GNU General
Public License) o GPL. Esta licencia, escrita por la Free Software Foundation (FSF), est diseada
para evitar que alguna persona restrinja la distribucin de software. En pocas palabras, dice que
aunque Ud. cobre a alguien por entregarle una copia, no podr impedir que ese alguien la regale.
Tambin significa que debe estar disponible el cdigo fuente. Esto es til para los programadores.
Cualquiera puede modificar Linux y an distribuir sus modificaciones, siempre que mantenga el
cdigo bajo la misma licencia.

La G.N.U.
Linux est regido por lo que se conoce como la Licencia Pblica General de GNU, o GPL,
General Public License. La GPL fue desarrollada para el proyecto GNU por la Free Software
Foundation, que podemos traducir como "Fundacin por el Software Gratuito". La licencia hace una
serie de previsiones sobre la distribucin y modificacin del "software gratis". "Gratis" en este
sentido se refiere a libertad, y no slo al coste. La GPL puede ser interpretada de distintas formas,
y esperamos que este resumen ayude a entenderla y cmo afecta a Linux. Se puede encontrar una
copia completa de la Licencia en Internet o en cualquier libro de Linux.
Originalmente, Linus Torvalds lanz Linux bajo una licencia ms restrictiva que la GPL, que
permita que el software fuera libremente distribuido y modificado, pero prohiba su uso para ganar
dinero. Sin embargo, la GPL autoriza que la gente venda su software, aunque no le permite
restringir el derecho que su comprador tiene a copiarlo y venderlo a su vez.
En primer lugar, hay que aclarar que el "software gratis" de la GPL no es software de dominio
pblico. El software de dominio pblico carece de copyright y pertenece literalmente al pblico. El
software regido por la GPL s tiene el copyright de su autor o autores. Esto significa que est
protegido por las leyes internacionales del copyright y que el autor del software est declarado
legalmente. No slo porque un programa sea de libre distribucin puede considerrsele del dominio
pblico.
El software regido por la GPL tampoco es "shareware". Por lo general, el "shareware" es
propiedad del autor, y exige a los usuarios que le paguen cierta cantidad por utilizarlo despus de la
distribucin. Sin embargo, el software que se rige por la GPL puede ser distribuido y usado sin
pagar a nadie.
La GPL permite a los usuarios modificar el software y redistribuirlo. Sin embargo,
cualquier trabajo derivado de un programa GPL se regir tambin por la GPL. En otras
palabras, una compaa nunca puede tomar Linux, modificarlo y venderlo bajo una licencia
restringida. Si un software se deriva de Linux, ste deber regirse por la GPL tambin.
La GPL permite distribuir y usar el software sin cargo alguno. Sin embargo, tambin permite
que una persona u organizacin gane dinero distribuyendo el software. Sin embargo, cuando se
venden programas GPL, el distribuidor no puede poner ninguna restriccin a la redistribucin. Esto
es, si compras un programa GPL, puedes a su vez redistribuirlo gratis o cobrando una cantidad.

El Sistema Operativo Unix - Linux

Esto puede parecer contradictorio. Por qu vender software cuando la GPL especifica que
puede obtenerse gratis? Por ejemplo, supongamos que una empresa decide reunir una gran
cantidad de programas GPL en un CD-ROM y venderlo. La empresa necesitar cobrar por el hecho
de haber producido el CD, y asimismo querr ganar dinero. Esto est permitido por la GPL.
Las organizaciones que vendan el software regido por la GPL deben tener en cuenta algunas
restricciones. En primer lugar, no pueden restringir ningn derecho al comprador del programa.
Esto significa que si compramos un CD-ROM con programas GPL, podremos copiar ese CD y
revenderlo sin ninguna restriccin. En segundo lugar, los distribuidores deben hacer saber que el
software se rige por la GPL. En tercer lugar, el vendedor debe proporcionar, sin coste
adicional, el cdigo fuente del software a distribuir. Esto permite a cualquiera adquirir el software
y modificarlo a placer.
Permitir a una empresa distribuir y vender programas que son gratis es bueno. No todo el
mundo tiene acceso a Internet para llevarse los programas, como Linux, gratis. La GPL permite a
las empresas vender y distribuir programas a esas personas que no pueden acceder al software
con un coste bajo. Por ejemplo, muchas empresas venden Linux CD-ROM por correo, y hacen
negocio de esas ventas. Los desarrolladores de Linux pueden no tener constancia de estos
negocios. Por ejemplo, Linus sabe que ciertas compaas venden Linux, y l no va a cobrar nada
por esas ventas.

Distribuciones de Linux.
Es imprescindible seleccionar una distribucin que se adapte a las necesidades de cada uno
para poder instalar, configurar y administrar un sistema Linux con xito.
Hace aos, cuando Linux empez a distribuirse por Internet, instalar Linux consista en bajarse
de Internet todos los archivos necesarios a unos disquetes. En esos tiempos la instalacin poda
llegar a ser un laborioso proceso, haciendo que muchos usuarios frustrados acabasen por rendirse.
Por ello, programadores de todo el mundo se unieron para crear distribuciones que incorporasen el
sistema operativo y programas que facilitaran la instalacin, adems de los paquetes conteniendo
programas de todo tipo. De esta forma la instalacin se reduca a seguir unos pasos, dando la
posibilidad a los usuarios con pocos conocimientos de poder instalar un sistema operativo de este
tipo con un menor esfuerzo.
En este momento hay un buen nmero de distribuciones en las que poder elegir, pero cada
una de ellas tiene sus pros y sus contras.

Generalidades de la gestin del S.O.


Est escrito en C, en lugar de enamblador, como la mayora de los sistemas, lo que le permite
una completa adaptacin a los diferenes ordenadores.
Como otros SSOO consta de dos partes:
1. El ncleo, que se encarga de la gestin de la memoria, planificacin de la CPU y el
Sistema de ficheros.
2. Los programas del sistema, que facilitan la compilacin, ejecucin y manipulacin de
ficheros.
La CPU est planificada de forma que favorece los procesos interactivos.
La planificacin de los procesos se hace mediante un algoritmo de prioridades, de forma que a
nmeros mayores corresponde una menor prioridad y procesos del sistema poseen prioridad
negativa. Para los procesos que utilizan mucho la CPU, se les concede tiempo segn Round-Robin.
La espera de un proceso indefinidamente, se resuelve mediante el cambio de prioridad por
envejecimiento de los procesos.
Existen dos tendencias en la planificacin de la memoria, dependiendo de las diferentes
versiones de Unix:

El Sistema Operativo Unix - Linux

a) En unas se utiliza el intercambio (swapping) entre los diferentes procesos. Los


procesos vctimas se eligen: por estar ociosos, llevar mucho tiempo en memoria o ser
grandes. Y se cargan en memoria si llevan mucho tiempo fuera o son pequeos.
b) En las versiones de Berkeley y Linux, se utiliza el sistema de memoria virtual con
paginacin bajo solicitud.
El sistema de entrada y salida maneja normalmente dos tipos de dispositivos:
1. De bloque, como discos y cintas.
2. Y de caracteres, terminales e impresoras.
Los ficheros se organizan en directorios estructurados en rbol y se manejan mediante bloques
de datos.

Linux tiene soporte para diferentes sistemas de archivos, algunos son sistemas de archivos de
redes especializados o son sistemas de archivos desarrollados para otros sistemas operativos. Una
sorprendente cantidad de ellos pueden ser utilizados como sistema de archivos nativo en Linux:
ext2, ext3, ext4, ReiserFS, XFS, y Journaled File System (JFS).
La cuarta extensin del sistema de archivos (ext4fs) existe porque algunos desarrolladores
queran incorporar nuevas y mejoradas caractersticas al ext3. La mejora ms llamativa de ext4
est en el soporte de archivos y sistemas de archivos de gran tamao.

Caractersticas
Multitarea: Un usuario puede ejecutar varios programas (procesos) a la vez, sin tener que
detener una aplicacin para ejecutar otra.
Multiusuario: Varios usuarios pueden acceder a las aplicaciones y a los recursos en el mismo
PC y al mismo tiempo. Con la impresin para cada uno de ellos de estar trabajando solo.
Tiempo compartido: Es la forma de conseguir las caractersticas anteriores, y se basa en que
en una fraccin de tiempo muy pequea, la CPU atiende a varios usuarios. A cada proceso se le
dedica por turno una unidad de tiempo llamada cuanto.
La memoria: es aprovechada al mximo, para acceder al disco el menor nmero de veces,
consiguiendo mayor rapidez.
Recuperacin automtica del sistema de ficheros despus de una cada del sistema, o
interrupcin elctrica.
Seguridad de acceso a la informacin de cada usuario, mediante una serie de permisos que el
propietario puede conceder o denegar sobre cada uno de sus ficheros.
Multiplataforma: Corre en muchos PCs distintos (Intel 386/486/Pentium y compatibles,...).
Facilita la portabilidad del software, entre plataformas, al menos a nivel de cdigo fuente.
Shell programables, lo que le hace ser un SO muy flexible.

El Sistema Operativo Unix - Linux

Estructura del S.O. UNIX


Es un SO jerrquico, ya que se organiza en una serie de estratos, cada uno de los cuales
interacta con su entorno a travs de interfaces bien definidos.

SHELL
Utilidades
Dispositivos
Kernel
Hardware

Kernel o Ncleo
Es el corazn del sistema, la parte ms cerrada al usuario y ms cercana al hardware.
Reside permanentemente en memoria. Su trabajo consiste en:

Planificar, coordinar y gestionar la ejecucin de procesos.

Dar servicio al sistema, como entrada / salida y gestin de ficheros.

Manejar las operaciones dependientes del hardware, realizando las operaciones de ms


bajo nivel de manera que se oculten al usuario.

Dispositivos
Los ficheros de dispositivo son los intermediarios entre el SO y el dispositivo fsico.

Utilidades
Estas rdenes tambin conocidas como herramientas, que van desde el compilador de C,
hasta el editor de texto, pueden utilizarse por separado o de forma conjunta para llevar a cabo
tareas tiles. Se invocan por su nombre a travs del Shell.

SHELL o Caparazn
Es la parte que permite al usuario comunicarse con el sistema, tambin se le conoce como
"caparazn".
Puede estudiarse desde dos puntos de vista:
-

1.- Como intrprete de comandos, es un programa que siempre est en ejecucin.


Espera que introduzcamos una orden.
Analiza la lnea.
Comprueba su correccin y los permisos.
Y llama a ejecucin al programa o programas necesarios.

2.- Como lenguaje de programacin: Combina, mediante estructuras de control grupos


de rdenes, estos ficheros se llaman procedimientos Shell, Shell Script o guiones Shell, adems
posee sus propias sentencias. (se estudiarn ms adelante)

El Sistema Operativo Unix - Linux

Existen varios tipos de SHELL diferentes:


sh: Bourne Shell (Unix System V, Xenix). Los shell tipo Bourne toman su nombre a partir de su
inventor, Steven Bourne. Este fue el shell original de Unix, denominado sh; a partir de entonces, la
mayora de los shells tienen un nombre con el sufijo sh para indicar que son extensiones de la idea
original.
Est diseado para usuarios experimentados, su prompt por defecto es el signo dlar ($).
Tiene capacidad para redireccionar entradas y salidas, interpretar metacaracteres, usar tuberas y
filtros, manejar variables y adems posee su propio lenguaje de programacin.
Tradicionalmente, los shell Bourne se han utilizado para los scripts de shell por razones de
compatibilidad con el sh original
rsh: Reduced Shell, es un subconjunto del anterior, contiene las rdenes bsicas. No permite
el cambio de directorio ni el redireccionamiento.
csh: C Shell (Berkeley), fue implementado por Bill Joy, los shells C han sido ms comunes en
su aplicacin interactiva. Es similar al sh, pero aade algunas caractersticas especficas para el
programador de C.
Ksh: Korn Shell, desarrollado por David Korn de Bell Laboratories, incorpora la mayor parte de
las caractersticas del csh y conserva la sintaxis y caractersticas bsicas del sh.
Bash: Bourne Again Shell. Fue desarrollado en el marco GNU, y es el derivado ms extendido
del Bourne Shell.
Tcsh: Una versin de csh para Linux.
En principio el Administrador del sistema adjudica un tipo de Shell a cada usuario, aunque este
puede cambiarse tecleando el nombre de otro Shell (si tiene permiso); se sale de un Shell pulsando
Ctrl + d.

Primera Aproximacin
Antes de entrar al Sistema:
Debe de tener creada una cuenta de usuario, la cual tendr un nombre y que adems puede
llevar asociada una palabra clave.
Se podr acceder al sistema mediante cualquier terminal que est preparado, en cuyo caso
mostrar por pantalla: login:, esto quiere decir que est esperando a que le introduzcamos un
nombre de usuario. Una vez introducido y pulsado Return puede que nos pida una palabra clave
password: Pasados estos requisitos puede que aparezca algn mensaje y debajo el prompt del
Sistema.
Para los usuarios habitualmente el prompt es slo el signo dlar ($), pero en linux suele
aparecer por defecto: el nombre del usuario, el de la computadora y la trayectoria actual en el rbol
de directorios (el directorio de conexin se muestra como ~).

Escribir algunos comandos para tomar contacto.


Hay que tener en cuenta que el UNIX distingue entre maysculas y minsculas.
Se adelantan dos rdenes de gestin de ficheros, para crear un directorio prueba, en el que
se realizarn las primeras prcticas:
mkdir nombre_dir
Crea un nuevo directorio.

El Sistema Operativo Unix - Linux

cd nombre_dir
Activa o se traslada al directorio indicado.
date
Muestra la fecha actual.
who
Indica que usuarios estn en ese momento conectados al Sistema.
clear
Borra la pantalla.
echo mensaje
Vuelve a escribir el mensaje.
echo mensaje > fichero
El signo mayor que (>), significa redirigir la salida o resultado de un comando. Guardara el
mensaje dentro del fichero que hayamos indicado.
ls
Lista los nombre de los ficheros.
cat fichero
Visualizara el contenido del fichero, aunque su principal funcin es concatenar ficheros.
rm fichero
Borra el fichero indicado.

Cuando se desea terminar un programa antes de su fin normal debemos pulsar la tecla Supr
dos veces en Unix y Ctrl + C en Linux.
Para salirnos del Sistema pulsamos las teclas Ctrl + d.


1 Prctica de familiarizacin con las rdenes anteriores.

Algunas utilidades para experimentar.


Consultar el manual
man orden
Nos explica la utilidad y el funcionamiento de la orden. Es un autntico manual adaptado a
nuestro sistema en particular.

Hacer clculos
bc
Se puede emplear como una calculadora normal.
Para separar los decimales emplea el punto (.).
Admite cualquier nivel de parntesis.
Las operaciones son: + (suma), - (resta), * (multiplicacin), / (divisin), % (mdulo o resto), ^
(exponenciacin).

El Sistema Operativo Unix - Linux

10

Tiene capacidad para asignar valores a variables utilizando el signo igual (=).
Utiliza unas variables internas que rigen su trabajo, a las que les podemos cambiar su valor,
como son:
-

obase=n base del sistema de numeracin en el que mostrar los resultados.

ibase=n dem para leer las entradas.

scale=n n de dgitos decimales que se deben de tener en cuenta en un


clculo, comprendido entre 0 y 99,

Permite la creacin de funciones, lo cual no se explicar por ahora; un ejemplo:


define a(x,y){
auto z
z = x * y
return(z)
}
Se usara: a(4, 7.8)

Mirar el almanaque
cal [[mes] ao]
Sin argumento nos muestra fecha, hora y despliega el mes actual, anterior y posterior.
Con un solo n del 0 al 9999 muestra todo el calendario del ao correspondiente; y si le
especificamos mes y ao slo muestra ese mes.

2 Prctica de familiarizacin con las utilidades anteriores.

El Sistema Operativo Unix - Linux

11

Conceptos Bsicos del Sistema de Ficheros


Distribucin de la informacin en disco:
- Sector de arranque. Almacena un pequeo programa de inicializacin, que a su vez pasa el
control a otro ms grande o al mismo KERNEL. En los sistemas de ficheros que no poseen
arranque el primer bloque no se utiliza.
- Superbloque tambin conocido como Cabecera del Sistema de Ficheros. Contiene datos
importantes sobre el resto de la distribucin del disco, como es:
Bloques ocupados por los i-nodos: isize.
Bloque ocupados por los ficheros: fsize.
Puntero a la tabla de bloques disponibles.
- Tabla de i-nodos. Se almacenan a partir del bloque 2 con una longitud de isize bloques; estn
numerados secuencialmente con un tamao fijo de 64 bytes en los que se almacena informacin
relativa a un fichero.
- Bloques de ficheros. En ellos se almacena la informacin que contienen los ficheros (y otra
informacin necesaria como distintas tablas).
- Area de swap

Inodos
Los ficheros son la unidad fundamental del Sistema de Ficheros Linux. Cada fichero al ser
grabado es asociado automticamente y durante toda su vida a un inodo (nodo-i), este identifica
perfectamente al fichero asociado y contiene los siguientes datos del fichero al que identifica:
TIPO: ordinario (-), directorio (d), especial (b) o (c), enlace simblico (l)
PROPIETARIO: usuario que cre el fichero.
GRUPO: grupo al que pertenece el usuario.
PERMISOS: pueden ser de lectura, escritura y ejecucin para el propietario, su grupo y
el resto de los usuarios. Estos se pueden alterar segn las necesidades de seguridad con el
comando chmod.
NMERO DE ENLACES: un enlace es la unin entre un nombre de fichero y un inodo.
Un mismo fichero puede estar referenciado por otro nombre. Los enlaces se pueden crear con
la orden ln.
TABLA DE PUNTEROS: es un vector con trece posiciones, cada una de las cuales
almacena un puntero, cuyo significado es:
-

Los diez primeros punteros sealan a los diez primeros bloques de informacin del
fichero.

El dcimoprimer puntero seala a otra tabla que contiene punteros, que a su vez
apuntan a bloques de informacin.

El dcimosegundo puntero seala a otra tabla que contiene punteros, que a su vez
apuntan a tablas de punteros, que apuntan a bloques de informacin.

El dcimotercer puntero seala a otra tabla de punteros, cada uno de los cuales
apuntan a tablas de punteros, que a su vez apuntan a tablas de punteros, que
apuntan a bloques de informacin.

FECHA DE CREACION.
FECHA DE LA LTIMA MODIFICACION.
FECHA DE LA LTIMA UTILIZACION.

El Sistema Operativo Unix - Linux

12

Para comprobar el n de inodo, usar la orden ls con la opcin -i.

Los ficheros pueden ser esencialmente de tres tipos:


ORDINARIOS: lo que normalmente se entiende por ficheros, contienen texto, datos o
programas.
ESPECIALES: corresponden a dispositivos fsicos (hacen de interface entre el Sistema y el
dispositivo fsico), sirven para que nos podamos comunicar con discos, impresoras, terminales y la
memoria del Sistema. Son llamados tambin ficheros especiales de dispositivos, y pueden ser de:
o Bloques (b), disquete, particin del disco duro, disco duro entero,...
o Caracteres (c), cinta magntica, puerto paralelo, puerto serie,...
Esos ficheros se almacenan en el directorio /dev:
o /dev/fd0  disquete de la primera disquetera (A: en Windows).
o /dev/sda  primer disco duro (sin considerar particiones) (antes eran /dev/hda para
discos IDE y /dev/sda para SCSI).
o /dev/sda1  primera particin del primer disco.
o /dev/sdb  segundo disco duro.
o /dev/sdc  disco USB (se utiliza emulacin SCSI).
o /dev/sdc1  particin de un disco USB.
o /dev/ttyS1  primera terminal de consola.
o /dev/ttyS2  segunda terminal de consola.
o /dev/lp0  primer puerto paralelo.
o /dev/null  cualquier dato enviado a este dispositivo desaparece.
o /dev/pty  pseudoterminales, proporcionan un "terminal" a sesiones remotas.
o /dev/console  consola del sistema, monitor conectado directamente a su sistema.
o /dev/tty  consolas virtuales del sistema.
DIRECTORIOS:


Con la orden cat fichero Cmo accede el SO a los bloques de este fichero?.

Los directorios son ficheros que contienen informacin sobre ficheros u otros directorios, esta
informacin es su nombre y nmero de inodo. Con el comando ls se pueden visualizar los nombres
de los ficheros contenidos en el directorio y otros datos.
Linux utiliza la estructura de directorios en forma de rbol, para mantener la cohesin entre sus
ramas, cada directorio contiene otro llamado . (punto), que hace referencia a l mismo, y otro .. (dos
puntos), que hace referencia al su directorio padre.
Para ver la informacin de los directorios . y .., utilizar la orden ls con la opcin -a.
Utilizar la orden ls -l, que nos muestra la mayor parte de las caractersticas de los ficheros y
directorios (tipo, permisos, enlaces, propietario, grupo, ocupacin en bytes, fecha ltima actualizacin y
nombre del fichero).


Distingue entre los tipos de ficheros, para ver ficheros de dispositivo en /dev.

Observa los permisos de los ficheros ordinarios y de los directorios. Son iguales?

A qu grupo perteneces?

Estudiar el n de enlaces de los directorios.


a) Recin creado.
b) Con distinto n de subdirectorios.

El Sistema Operativo Unix - Linux

13

Organizacin de directorios en Unix


Ejemplo de estructura bsica de un sistema Linux:
/.

bin

boot

dev

etc

Ftp

Linux

home

lib

user##

bin

lib

proc

X11R6

man

sbin

bin

usr

doc

faq

tmp

var

lib

local

etc

howto

bin

lib

Directorio raiz del sistema de ficheros. En algunos casos directorio home del
administrador.

bin

Abreviatura de binaries. En este directorio se encuentran los rdenes bsicas del SO.
En /usr/bin tambin hay rdenes bsicas, pero son menos esenciales.

boot Aqu estn los ficheros binarios de arranque del sistema (vmlinuz)
dev

Contiene los ficheros especiales o de dispositivo (device drivers). Son usados para
acceder a los dispositivos del sistema y recursos, como discos duros, mdems,
memoria, etc. Por ejemplo, de la misma forma que podemos leer datos de un fichero,
podemos leerla desde la entrada del mdem usando /dev/modem.

etc

En este directorio se encuentran las rdenes relacionadas directamente con la


administracin del sistema, as como los ficheros de datos asociados. Estos incluyen
/etc/passwd (la base de datos de usuarios), /etc/rc (guiones de
inicializacin del sistema), etc.

home Por cada usuario cuelga de home un directorio que por defecto tendr el mismo nombre
que el del usuario. Ejemplo /home/user01. Estos a su vez dentro de su directorio pueden
crear la estructura de ficheros y directorios que necesiten.

root

En algunos sistemas es el directorio de conexin (home) del administrador.

lib

Directorio que contiene las libreras compartidas. Estas son comunes para todos los
programas que las usan, en lugar de tener cada programa su copia.

El Sistema Operativo Unix - Linux

14

sbin

man

proc No existe fsicamente, es un SF virtual. Los ficheros que contiene residen realmente en
memoria. En l podemos encontrar informacin sobre el sistema (procesos).

sbin

Contiene los programa utilizados en la inicializacin del sistema y en la recuperacin del


mismo.

tmp

Contiene los ficheros temporales que el Sistema necesita crear para realizar
determinados trabajos.

usr

Para almacenar otros directorios accesibles a los usuarios, tales como: /usr/lib, /usr/bin,
/usr/share/man, /usr/share/doc. En algunos sistemas, de aqu cuelgan los directorios de
los usuarios.
Los directorios descritos arriba son esenciales para que el sistema est operativo, pero
la mayora de las cosas que se encuentran en /usr son opcionales para el sistema. De
cualquier forma, son estas cosas opcionales las que hacen que el sistema sea til e
interesante, contiene la mayora de los paquetes grandes de programas y sus ficheros
de configuracin.

/usr/X11R6 Contiene el sistema X Window si lo instalamos. El sistema X Window es un entorno


grfico grande y potente el cual proporciona un gran nmero de utilidades y programas
grficos.

/usr/bin

Es el almacn real de programas del sistema Unix. Contiene la mayora de los


programas que no se encuentran en otras partes como /bin.

/usr/etc

Como /etc contiene diferentes ficheros de configuracin y programas del sistema,


/usr/etc contiene incluso ms que el anterior. En general, los ficheros que se encuentran
en /usr/etc/ no son esenciales para el sistema, a diferencia de los que se encuentran en
/etc, que si lo son.

/usr/include

Contiene los ficheros de cabecera para el compilador de C. Estos ficheros


(la mayora de los cuales terminan en .h, de header) declaran estructuras de datos,
subrutinas y constantes usados en la escritura de programas en C. Los ficheros que se
encuentran en /usr/include/sys son generalmente usados en la programacin de Unix a
nivel de sistema.

/usr/include/g++

Contiene ficheros de cabecera para el compilador de C++ (muy parecido a

/usr/include).

/usr/lib

Contiene las libreras equivalentes stub y static a los ficheros encontrados en /lib.
Adems, varios programas guardan ficheros de configuracin en /usr/lib.

/usr/local En general, los programas que se encuentran en /usr/local son especficos de


nuestro sistema, esto es, el directorio /usr/local difiere bastante entre sistemas Unix.
Aqu encontraremos programas grandes como TEX (sistema de formateo de
documentos) y Emacs (gran y potente editor), si los instalamos.

/usr/man

Este directorio contiene las pginas de manual.

/usr/src

Contiene el cdigo fuente (programas por compilar) de varios programas de


nuestro sistema. El ms importante es /usr/src/linux, el cual contiene el cdigo fuente del
kernel de Linux.

opt

Este es la raz del subrbol que contiene los paquetes de aplicacin especficos.

El Sistema Operativo Unix - Linux

15

var

Este contiene los directorios de todos los ficheros que cambian de tamao o tienden a
crecer, como /var/adm (ficheros de registro y contabilidad), /var/mail (ficheros de correo
del usuario), /var/spool (ficheros que van a ser pasados a otro programa), /var/news
(mensajes de inters comn),...

mnt o media De este cuelgan directorios para montar sistemas de ficheros sobre el Root File
System. Por ejemplo /mnt/floppy, /mnt/cdrom,...

lost+found (perdido+encontrado) Contiene ficheros que por algn problema no estn enlazados
al Sistema de Ficheros.


Explorar la estructura de directorios.

Trayectoria o pathname:
Es el camino que hay que seguir dentro de la estructura arborescente de directorios para
encontrar un fichero o directorio.
Vamos a distinguir dos tipos de trayectorias:
1. Trayectoria absoluta es la que parte del directorio raz (root).
2. Trayectoria relativa es la que parte del directorio de trabajo.
Referencias a directorios especiales:
-

Directorio raz (root) simbolizado con la barra de dividir.

Directorio domicilio o casa (HOME), es el directorio que le corresponde al


usuario dentro del directorio home o usr; Nos vamos a casa con cd.

Directorio de trabajo, activo o en curso, es aquel en el que nos encontramos


trabajando en un momento determinado, se representa por un punto (.). pwd
nos informa del directorio actual.

Directorio padre del directorio en curso, es el directorio del cual cuelga el


directorio activo, se representa por dos puntos (..).

Nombres de ficheros y Metacaracteres


Linux admite nombres largos de hasta 255 caracteres (Unix originalmente hasta 14 caracteres)
normalmente incluyen caracteres alfanumricos y el punto (.).
En un directorio no puede haber dos ficheros con el mismo nombre, pero s en directorios
diferentes.
Cuando un nombre empieza por un punto se oculta a algunas rdenes.
Dentro de los nombres de fichero se interpretan de forma especial los siguientes caracteres,
tambin llamados metacaracteres. Se usan especialmente para hacer referencia a un grupo de
ficheros:
-

* Equivale a 0 o ms caracteres.

? Equivale a un solo carcter.

[caracteres] Equivale a cualquier carcter contenido dentro de los corchetes,


slo a uno. Se puede especificar un rango de caracteres con solo indicar el
primero y el ltimo separados por un guin (-). Tambin se puede negar el

El Sistema Operativo Unix - Linux

16

conjunto de caracteres, para indicar cualquier carcter que no est entre los
corchetes, ponindole delante el signo de admiracin [!caracteres].
-

\ Suprime el significado propio del metacarcter que vaya a continuacin.

El proceso de sustitucin de los metacaracteres, por los nombres de los ficheros que
correspandan se llama expansin de los metacaracteres, y es efectuado por el intrprete de
comandos, de esta forma los comandos u rdenes nunca ven los metacaracteres.

Crear todos los ficheros necesarios para practicar con los metacaracteres, al menos con la orden
ls.

El Sistema Operativo Unix - Linux

17

Trabajo del Usuario con Ficheros Ordinarios.


Formato de las rdenes
orden [opcin(es)] [argumento(s)]
Siempre es obligatorio el nombre de la orden, teniendo en cuenta que Unix distingue entre
maysculas y minsculas.
Las opciones matizan la forma de trabajar la orden. Suelen ser un solo carcter, normalmente
precedido por un guin (-), si hay varias se pueden colocar juntas (sin mediar espacio) despus de
un solo guin.
Los argumentos nos indican con que va a trabajar la orden, suelen ser nombres de ficheros, de
directorios, usuarios, terminales, etc. Si hay que indicar varios se pueden utilizar los metacaracteres
o simplemente se separan con un espacio.
Existen comandos sucios, que no responden a este formato.

Crear ficheros

Vaco:
cat /dev/null > fichero
> fichero
Las dos rdenes tienen el mismo efecto, en la primera de ellas se emplea el dispositivo nulo.

Con informacin tecleada por nosotros:


cat > fichero
cat -> fichero
Esta orden nos permitir introducir tantas lneas de texto como deseemos, al final de las cuales
pulsaremos ^d como seal de final de fichero, y se almacenarn en el fichero indicado.

Con informacin procedente de cualquier otra orden


Esta otra orden debe de producir una salida redireccionable.
orden > fichero

Listar nombres e informacion sobre ficheros.


ls [opciones] [ficheros | directorio(s)]
Sin ninguna opcin ni argumento produce un listado de los nombres de los ficheros del
directorio activo en orden alfabtico. Entre las opciones ms interesantes contamos con:
-l Imprime informacin detallada sobre el fichero: tipo, permisos, enlaces, propietario,
grupo, ocupacin en bytes, fecha de la ltima actualizacin y nombre del fichero. "ls l" se puede abreviar en solo "l".
-n Igual que -l, pero del propietario y grupo no muestra su nombre, sino su nmero,
llamados UserId y GroupId respectivamente.
-i Muestra el n de i-nodo de cada fichero.
-a Indica a la orden que tenga en cuenta a todos los ficheros incluidos los ocultos.
-d Para que nos muestre informacin del directorio y no de los ficheros que contiene el
directorio.
-t Los muestra ordenados por fecha de actualizacin, primero los ms recientes.
-r Invierte el orden de mostrar los ficheros.

El Sistema Operativo Unix - Linux

18

-R Recursividad.
-F Pone una (/) despus de cada directorio y un (*) despus de cada ejecutable.
La orden l es un alias de ls la.
Como argumentos se puede especificar: nombre(s) de fichero(s), de directorio(s) y utilizar los
metacaracteres.
file fichero(s)
Realiza una suposicin sobre qu tipo de informacin almacena un fichero; as nos puede
indicar s un fichero es de texto, ejecutable, directorio, un programa fuente, est comprimido ...
Para ello revisa la primera parte del fichero en busca de palabras clave o nmeros especiales
del linkador, tambin consulta los permisos de acceso. Sus resultados no siempre son correctos.

Ojear la salida de rdenes o contenido de ficheros.


orden | less
less fichero(s)
Dosifica la salida por pantalla, cuando el resultado no entra en ella.
Posee una serie de comandos para poder desplazarnos por la salida.
h.....................................Ayuda de less.
q.....................................Para salir de less.
j, Intro o flecha abajo .....Avanza lnea.
k o flecha arriba.............Retrocede lnea.
Nj..................................Avanza N lneas.
Nk.................................Retrocede N lneas.
z.....................................Avanza pantalla.
w ....................................Retrocede pantalla.
Barra espaciadora .........Avanza pgina.
Ctrl + L...........................Refresca pantalla.
Si estamos usando telnet, deberamos usar la siguiente configuracin, que podemos
establecer en TerminalPreferencias:
Emulacin
VT100/ANSI.
Bfer
24 lneas.
Flechas VT100
S.
Cursor Intermitente
S. (A m me gusta ms)
Ejercicios:


Ver ms opciones de less y ls con man.

Probar las distintas opciones y sus combinaciones.

Seguir practicando con los metacaracteres.

Ver el n de enlaces de los directorios.

Comprobar que los directorios enlazados tienen el mismo n de inodo.

Copiar, Mover, Enlazar y Borrar Ficheros.

Copiar:
cp [opc.] f_origen f_destino

El Sistema Operativo Unix - Linux

19

-i Pide confirmacin antes de sobreescribir.


-r Copia recursiva, incluyendo subdirectorios.
Realiza duplicados de ficheros, en el mismo directorio con distinto nombre o en distinto
directorio con cualquier nombre. S el nombre del fichero destino ya existe se pierde la informacin
que pudiera tener.
Sobre el f_origen hay que tener al menos permiso de lectura (r) y sobre el f_destino, si ya
existe, de escritura (w).
Como destino se puede indicar un directorio, en cuyo caso se copiaran todos los ficheros
origen en l.
cp f(s)_origen directorio
Los ficheros origen se pueden indicar por su nombre completo, separados por blancos o
utilizando metacaracteres; por supuesto se puede emplear una trayectoria.
Con esta orden al duplicarse la informacin nunca se pierde el contenido del fichero origen.

Mover:
mv [-i] f_origen f_destino
mv [-i] f(s)_origen directorio
Renombra un fichero dentro de un directorio o lo traslada a otro directorio.
La diferencia con la orden cp es que mv no duplica la informacin, desapareciendo siempre los
ficheros origen.
-i Si en el destino ya existe el fichero, pregunta antes de sobreescribirlo.
La mayora de las veces es ms rpida que cp, ya que se limita solo a anotar el cambio en los
ficheros directorio.

Enlazar:
ln [-f] f_origen f_destino
-f No hace preguntas.
A un mismo fichero se le da otro nombre, los dos nombres se referirn en adelante al mismo
fichero.
No se hace una copia del fichero origen y el nuevo nombre puede estar en distinto directorio.
Lo nico que realiza esta orden es aadir una nueva entrada en el directorio que corresponda
con el nombre del fichero destino y el n de i-nodo del fichero origen.
No es necesario poseer ningn permiso sobre el fichero origen, pero si debemos poseer
permiso de escritura (w) sobre el directorio destino y de lectura sobre el directorio origen.
Como origen se pueden indicar varios ficheros si el destino es un directorio.
-s Realiza un enlace simblico.
Un enlace o vnculo simblico es un archivo que slo contiene el nombre de otro archivo.
Cuando el SO opera sobre el enlace simblico, se dirige hacia el archivo al que apunta. Se usan
para enlazar ficheros en computadoras diferentes o en distintos sistemas de ficheros, tambin para
crear varios nombres a un directorio.
Estas tres rdenes tienen en comn, que el contenido del fichero destino, si existe, es
destruido.

Borrar:
rm [opc] fichero(s)

El Sistema Operativo Unix - Linux

20

Para borrar un fichero es necesario poseer permiso de escritura sobre el directorio, no sobre el
fichero, pues lo que realmente se hace es borrar un entrada del directorio.
Si el fichero a borrar tiene varios enlaces, se borrar el enlace que tiene con el nombre de
fichero indicado, los dems permanecen.
-f (forzar) S no tenemos permiso de escritura sobre el fichero, se salta una pregunta
de confirmacin y lo borra.
-i (interactivo) Pide confirmacin en todos los ficheros.
-r (recursivo) Borra a partir de donde le indiquemos, toda la posible rama de
subdirectorios, es rpida y peligrosa.
Ejemplos peligrosos:
rm * .c
rm -r dir1
Ejercicios:


Duplicar un fichero en el mismo directorio.

Copiar varios ficheros al mismo tiempo a otro directorio.

Renombrar un fichero. Comprobar si le ha cambiado el n de inodo.

Mover ficheros a otro directorio. Tienen otro inodo?

Crear enlaces de un fichero en el mismo y distinto directorio. Comprobar inodos y el n de


enlaces. Borrar algunos de los enlaces creados y volver a comprobar el n de enlaces.

Intentar hacer un enlace duro a un directorio.

Realizar enlaces simblicos de ficheros. Comprobar el carcter de tipo de fichero. Concuerda el


n de inodo?. Trabajar con el enlace simblico. Borrar el fichero origen del enlace. Volver a
trabajar con el enlace simblico.

Crear un enlace simblico a un directorio.

Estudiar los permisos de vuestro directorio home. Qu permisos tienen los de tu grupo?.

Entra en el directorio home de algn compaero. Intenta crear ficheros. Borra un fichero.

Permisos, Propietario y Grupo.


Las operaciones que se pueden realizar sobre un fichero son: leer (r), escribir (w) y ejecutar (x).
Estos permisos se conceden o deniegan a tres niveles: el propietario del fichero, el grupo al que
este pertenece y el resto de los usuarios.
Que el grupo posea un permiso determinado no implica que lo posea el usuario, y que el resto
posea un permiso no implica que lo posean el usuario y el grupo.
En un fichero convencional tener permiso de lectura significa poder consultar el contenido del
fichero, el permiso de escritura indica que se puede modificar y el de ejecucin que se pueden
ejecutar las rdenes contenidas en el fichero.

En los ficheros directorio el permiso de lectura posibilita que podamos averiguar el contenido
del directorio, es decir, los nombres de los ficheros que contiene, el no poseer este permiso no
impide acceder al contenido de los ficheros.
El permiso de escritura nos permite crear y borrar ficheros, la modificacin de un fichero en
particular no la controlan los permisos de directorio sino los de ese fichero.

El Sistema Operativo Unix - Linux

21

El permiso de ejecucin en el caso de directorios impide que podamos usarlo dentro de una
trayectoria o que lo usemos como directorio de trabajo, denegar el permiso de ejecucin si es una
proteccin real para un directorio y los ficheros que contenga. (Si perdemos el permiso de ejecucin
sobre el directorio de trabajo o el padre de este, podemos desplazarnos a cualquier otro usando
una trayectoria absoluta.)

El propietario de un fichero puede cambiarle los permisos con respecto a l mismo, su grupo o
el resto de los usuarios con la orden:
chmod [quien(es)][+-=][permiso(s)] fichero(s)| directorio(s)
[quien]:

u Usuario propietario.
g Grupo.
o Otros, el resto.
a Todos (por defecto).

[+-=]:

+ Aade permiso.
- Elimina permiso.
= Asigna o establece permiso. Aade los permisos indicados y quita
los dems, para los usuarios indicados.

[permiso]: r Lectura.
w Escritura.
x Ejecucin.
Ejemplos:

Un permiso a un quin:
Varios permisos a un quin:
Varios permisos a gente variada:
Permisos distintos para varia gente:

Asignacin absoluta:

chmod g+w fichero


chmod o+rwx fichero
chmod go-rw fichero
chmod o-r,g+w fichero
(nunca espacio despus de la coma)
chmod ug=rw fichero

Ejercicios:


Si a un fichero con varios enlaces se le cambian los permisos Se cambiarn tambin en sus
ficheros enlazados?

Quitar a un fichero permiso de w: mostrarlo, aadirle informacin, borrarlo. (Podemos por


ahora escribir en un fichero aadindole informacin con: orden >> f1)

Quitar a un fichero permiso de r: mostrarlo, aadirle informacin, borrarlo.

Grabar en un fichero:

Poner su nombre despus del prompt, para ejecutarlo.

Darle permiso de ejecucin.

Poner su nombre despus del prompt, para ejecutarlo.

El Sistema Operativo Unix - Linux

clear
echo hola mundo
echo te encuentras en
pwd

22

Tambin se permite una notacin numrica, en octal, para indicar los permisos que se van a
establecer a unos determinados ficheros.
chmod nmero_octal fichero(s)
Nmero_octal: Un fichero tiene 9 permisos, se codifican en binario, si se tiene permiso 1 y si no
se tiene 0; resulta un nmero binario de 9 dgitos binarios, este se pasa a octal y obtenemos el
nmero octal de tres dgitos.

Ejemplo: permiso de escritura al propietario, permiso de ejecucin al propietario y al grupo y


permiso de lectura a todos.
chmod a=r,u+w,ug+x fich
chmod 754 fich

Permisos especiales.
An hay otro tipo de permisos que hay que considerar. Se trata de:
o El bit de permisos SUID (Set User ID).
o El bit de permisos SGID (Set Group ID).
o El bit de permisos de persistencia (sticky bit).
Para entender los dos primeros el SUID y el SGID veamos los permisos para un comando de
uso comn a todos los usuarios, que es el comando passwd, que como se sabe sirve para cambiar
la contrasea del usuario, y puede ser invocado por cualquier usuario para cambiar su propia
contrasea, si vemos sus permisos observaremos un nuevo tipo de permiso:
#> ls -l /usr/bin/passwd
-r-s--x--x 1 root root 21944 feb 12 2006 /usr/bin/passwd

SUID
En vez de la 'x' para el usuario encontramos ahora una 's' (suid). passwd es un comando
propiedad de root, pero sin embargo debe de poder ser ejecutado por otros usuarios, no solo por
root. Es aqu donde interviene el bit SUID, al activarlo obliga al archivo ejecutable binario a
ejecutarse como si lo hubiera lanzado el usuario propietario y no realmente quien lo ejecut. Es
decir, es poder invocar un comando propiedad de otro usuario (generalmente de root) como si uno
fuera el propietario.
SGID
El bit SGID funciona exactamente igual que el anterior solo que aplica al grupo del archivo. Es
decir si, permite ejecutar el comando con los permisos del grupo.
Se muestra como una 's' en vez del bit 'x' en los permisos del grupo.
#> ls -l /usr/bin/write
-rwxr-sr-x 1 root tty 10320 Jun 6 2008 write

STICKY BIT (Bit de persistencia)


Este bit se aplica para directorios, como en el caso de /tmp y se indica con una 't':
#> ls -ld /tmp
drwxrwxrwt 24 root root 4096 sep 25 18:14 /tmp

El Sistema Operativo Unix - Linux

23

Puede apreciarse la 't' en vez de la 'x' en los permisos de otros. Lo que hace el bit de
persistencia en directorios compartidos por varios usuarios, es que el slo el propietario del archivo
pueda eliminarlo del directorio.
Para cambiar este tipo de bit se utiliza el mismo comando chmod pero agregando un nmero
octal extra al principio de los permisos, ejemplo:
#> ls -l /usr/prog
-r-x--x--x 24 root root 4096 sep 25 18:14 prog
#>chmod 4511 /usr/prog
#> ls -l /usr/prog
-r-s--x--x 24 root root 4096 sep 25 18:14 prog
Ntese que el valor extra es el '4' y los dems permisos se dejan como se quieran los permisos
para el archivo. Es decir, los permisos originales en este ejemplo eran 511 (r-x--x--x), y al
cambiarlos a 4511, se cambi el bit SUID reemplazando el bit 'x' del usuario por 's'.
Los posibles valores seran los siguientes:
- - - - - - - - - = 0 Predeterminado, sin permisos especiales.
- - - - - - - - t = 1 Bit de persistencia, sticky bit
- - - - - s - - - = 2 Bit sgid de grupo
- - s - - - - - - = 4 Bit suid
MUY IMPORTANTE: Algo sumamente delicado y que se tiene que tomar muy en cuenta es lo
que decidas establecer con permisos de bit SUID y SGID, ya que recuerda que al establecerlos de
esta manera, cualquier usuario podr ejecutarlos como si fuera el propietario original de ese
programa. Y esto puede tener consecuencias de seguridad severas en tu sistema. Siempre
considera y reconsidera si conviene que un usuario normal ejecute aplicaciones propias de root a
travs del cambio de bits SUID o SGID. Mejores alternativas pueden ser los comandos sudo y su.

Mscara de permisos para la creacin de ficheros.


El propietario tambin puede definir con que permisos por defecto se crearn sus ficheros.
umask [nmero_octal]
Solamente tiene formato numrico, el n octal al pasarlo a binario, los unos indican los
permisos que quitamos y a quin.
La orden tiene efecto para el usuario que la aplica, y a partir de su uso los ficheros y directorios
se crearn con la restriccin de los permisos indicada.
(Atencin: a los ficheros de texto, en un principio, no se les asigna permiso de ejecucin)
Si utilizamos la orden sin ningn parmetro, muestra la mscara de creacin actual, que suele
ser 022.
Para dejarlo fijo en la sesin, agregarlo a .bashrc de nuestro directorio de inicio.

Cambio de propietario.
El propietario de un fichero en System V (en los sistemas Berkeley solo el administrador)
puede cambiar el fichero de propietario y de grupo.
chown [-R] nuevo_propietario[:grupo] fichero(s)
-R Recursividad.
El nombre del nuevo propietario debe de ser un nombre vlido de entrada al sistema (login) o
un nmero de identificacin de usuario; estos y otros datos se encuentran en el fichero /etc/passwd.

El Sistema Operativo Unix - Linux

24

Si el usuario perteneciese a otro grupo se indica este separado del usuario por (:). Y se cambia
al mismo tiempo de usuario y de grupo.

Cambio de grupo.
chgrp nuevo_grupo fichero(s)
Igualmente el nuevo grupo se puede indicar con el nombre o el nmero de identificacin, que
se encuentra en el fichero /etc/group.

Ejercicios: (en octal)




Poner a dos ficheros al mismo tiempo los permisos rw- -wx r--.

Quitarle a un subdirectorio todos los permisos Qu podis hacer en l?

Dejarle todos menos el de ejecucin Qu podis hacer en l?

Mostrar el contenido de un directorio al que le falta el permiso de lectura.

Poner al directorio permiso de escritura y un fichero dentro de l sin este permiso, probar a
borrarlo.

Poner una mscara de creacin, de forma que a los directorios slo les de permiso de ejecucin
para g y o, y para el propietario todos. Comprobarla creando algn directorio.

La mscara anterior, que permisos da a los nuevos ficheros ordinarios.

Intenta cambiar un fichero de propietario.

El Sistema Operativo Unix - Linux

25

Operaciones Con Ficheros Directorios.


Ya sabemos visualizar el contenido de un directorio utilizando las orden ls, para lo cual
debemos de poseer permiso de lectura sobre l.

Creacin.
mkdir trayectoria(s)
Para crear un directorio necesitamos permiso de escritura sobre el directorio en el que se va a
crear.
Se pueden crear varios directorios al mismo tiempo, indicando su trayectoria, ya sea absoluta o
relativa.
Ejemplos.
~> mkdir base/direc base2
~> mkdir base/dire1 base/dire1/dire2

(dire1 no exista)

Cambio de directorio activo.


cd [directorio]
Nos podemos desplazar libremente por el rbol de directorios siempre que tengamos permiso
de ejecucin sobre los directorios por los que nos desplazamos.
Si no indicamos directorio se asume el directorio HOME o de conexin.

Dnde nos encontramos.


Si necesitamos asegurarnos de cual es nuestro directorio de trabajo utilizaremos la orden
pwd
En otras versiones de Unix no era tan fcil que el prompt nos indicase la trayectoria del
directorio de trabajo, por lo que esta orden era ms utilizada. Pero todava puede ser til en
programas Shell.

Eliminar directorios
rmdir directorio(s)
Se requiere permiso de escritura sobre el directorio padre.
Antes de borrar un directorio debemos de borrar su contenido y cuidar de que no sea el
directorio de trabajo.
Otro usuario que tenga permiso para ello nos puede borrar nuestro directorio de trabajo, con lo
que nos dejar "como suspendidos en el aire", pero podemos transladarnos a cualquier otro
directorio.
El sistema permite borrar el directorio de trabajo.
Recordar que tambin se pueden borrar directoros usando la orden rm de forma recursiva.

Cambio de nombre.
mv directorio_antiguo directorio_nuevo
Se requiere permiso de escritura en el directorio padre.

El Sistema Operativo Unix - Linux

26

Copia de directorios.
cp (-R) DirectorioOrigen DirectorioDestino
-R

De forma recursiva.

Variables PS1 y PS2.


Se usan para definir el prompt o inductor del shell.
El prompt primario (PS1) aparece para solicitarnos la introduccin de una orden.
El prompt secundario (PS2) se muestra cuando no se ha terminado de introducir un comando.
Tanto PS1 como PS2 son variables del shell que pueden ser redefinidas por los usuarios (cada
usuario tiene las suyas).
Esto se hace simplemente asignndole un nuevo valor, con el formato:
PS1=NuevoValor
El NuevoValor puede ser cualquier cadena, pero hay una serie de cdigos con un significado
especial para modificar el inductor, estos son:
\!
Siguiente n del histrico de sucesos.
\$
Usa el signo $, salvo para root, que usa el signo # (tradicional).
\d
Fecha actual.
\s
Shell actualmente activo.
\t
Hora actual.
\u
Nombre del usuario.
\w
Directorio de trabajo actual (directorio activo).
\h
Nombre de la mquina. Host.
Ejercicios:


Crear varios directorios con la misma orden.


Trayectorias relativas.
Trayectorias absolutas.
Que el directorio activo no sea el padre de los subdirectorios.
Examinar el rbol de directorios de Unix.

Desplazarse usando ambos tipos de trayectorias.

Probar a eliminar un directorio no vaco.

Probar a eliminar un directorio vaco, pero que sea el directorio activo.

Eliminar varios directorios con la misma orden.

Cambiar nombres a directorios. Con y sin permiso de escritura sobre el padre.

Copiar una rama del rbol de directorios de forma recursiva.

Eliminar la rama recin copiada tambin de forma recursiva.

Modificar el prompt primario y secundario incluyendo texto y cdigos especiales de la orden.

El Sistema Operativo Unix - Linux

27

Flujo De Informacin.
Entrada y salidas estndar (std).
Muchas rdenes Unix reciben informacin desde el teclado, que es la entrada estndar (stdin)
y muestran los resultados por la pantalla, salida estndar (stdout); la pantalla tambin es la salida
estndar para los posibles errores (stderr).
Ejemplo:
Cat
sort
Sin opciones ni argumentos leen texto del teclado (stdin) y muestran los resultados por pantalla
(stdout), visualizando los posibles errores, en el caso de que se produzcan, por pantalla (stderr).

Tanto la entrada como las salidas estndar son tratadas como ficheros especiales, y el shell
los identifica por su nmero de descriptor de fichero:
stdin
0
stdout
1
stderr
2
(Deben de emplearse junto al signo de redireccionamiento).

El guin (-) realiza una entrada por teclado.

Redireccionamiento:
Se pueden redireccionar la entrada y salidas estndar mediante metacaracteres de
redireccionamiento: > < >>.
> Redireccionamiento de salida, enva los datos que normalmente saldran por pantalla hacia
el fichero que indiquemos.
Ejemplo:
cat > file
cat 1> file
cat - > file
Usa la entrada estndar y la salida al fichero especificado.

>> redireccionamiento de adicin, igual que el anterior, pero si el fichero al que se dirige la
salida ya existe no se borra la informacin que tenga, sino que la nueva se aade al final.
Ejemplo:
Cat 1>> file
Aadiendo informacin a un fichero desde la entrada estndar.

< Redireccionamiento de entrada, la orden no tomar la informacin del teclado, sino del
fichero especificado.
Ejemplo:
cat file
cat < file

El Sistema Operativo Unix - Linux

28

cat 0< file


Toma como entrada el fichero indicado, siendo la salida por pantalla.
cat 0< fichero 1>> otro
La entrada de un fichero y la salida la aade a otro.
cat 2> errores 0< fichero 1> fichero1
cat fichero > fichero1 2> errores
Entrada fichero, salida fichero1 y errores al fichero errores.
Cat fichero1 fichero2 > total
Entre dos ficheros permite una entrada por teclado

Con el formato:
orden >& fichero
Tanto la salida estndar, como la salida de error se almacenan en el fichero indicado.
Ejemplo:
Cat fichero fichero_inexistente >& todo

Tuberas (pipes):
Orden | Orden2
Mediante el uso de tuberas se consigue que la salida de una orden sea la entrada de otra. El
metacarcter tubera es |.
Ejemplo:
ls lR /home | less

Duplicar la salida
orden | tee [opciones] fichero(s)
orden | tee [opciones] | filtro
La entrada que recibe tee la copia en la salida estndar y en el o los ficheros indicados como
argumentos.
-i No responde a interrupciones.
-a Si los ficheros existen le aade la informacin al final.

Ejemplo:
date | tee a fecha
ls l | tee listado
cat fichero1 fichero2 | sort | tee FileOrden
El primero muestra la fecha y adems la aade en un fichero.
E segundo muestra el contenido del directorio y lo almacena en el fichero listado.
Y el tercero concatena la entrada, la ordena, la muestra ordenada y la almacena en el fichero
FileOrden.

El Sistema Operativo Unix - Linux

29

Ejercicios:


Practicar todos los redireccionamientos, con todas las formas de indicar la entrada y salida.

Combinar los redireccionamientos y la tubera.

En los ejercicios anteriores emplear los filtros vistos: less, cat y sort.

Filtros para: Contar, Ordenar y Eliminar Repetidos.

Contar:
wc [opciones] fichero(s)
Abreviatura de Word Counting. Sin opciones cuenta el nmero de lneas, palabras y caracteres
contenidos en un fichero o en la entrada indicada. Si se especifica un grupo de ficheros contabiliza
en cada uno de ellos y adems muestra un total.
Si no especificamos la entrada, toma por defecto la entrada estndar.
Para que no muestre toda la informacin o la muestre en otro orden, podemos utilizar las
opciones:
-l Slo cuenta las lneas.
-w Idem las palabras.
-c Idem los caracteres.
Ejemplos:
wc f1 f2 f3
Cuenta el n de lneas, palabras y caracteres de cada fichero y hace un total.
ls | wc -w
Cuenta el n de ficheros de un directorio.

Ordenar:
Este filtro adems de clasificar puede fusionar ficheros. En principio lo hace siguiendo el cdigo
ASCII.
La entrada, al igual que en todos los filtros, pueden ser: ficheros indicados como argumentos,
pasada por una tubera o suministrada por la entrada estndar.
sort [opciones] [campos] [fichero(s)]
Opciones generales:
-o file Sirve para indicar el fichero de salida. Ya que si redireccionamos la salida a un
fichero que se llame igual que el de entrada, se pierde la informacin.
-m Mezcla los ficheros que supone que estn ordenados.
-c Comprueba si el fichero est ordenado.
-u Muestra las lneas repetidas una sola vez, til para la mezcla de ficheros.
Opciones de ordenacin de datos:
-d (diccionario), slo tiene en cuenta los caracteres alfabticos, numricos y espacio.
-f Convierte maysculas a minsculas a efectos de la ordenacin.
-b Ignora los blancos iniciales.
-n Ordenamiento numrico, toman su valor aritmtico el signo menos (-) y el punto
decimal (.). Los blancos iniciales no se tienen en cuenta.

El Sistema Operativo Unix - Linux

30

-r Ordenacin inversa.
-R Ordenacin aleatoria (Random).
Ordenacin de campos:
Los campos se entienden separados por blancos o tabuladores salvo que se indique la opcin:
-tx Donde x es el carcter delimitador de campos. Es aconsejable poner el carcter
entre comillas.
Para indicar a partir de que campo se va a realizar la ordenacin, pondremos: +n.c, donde n es
el nmero de campos que se van a saltar sin ordenar y c el nmero de caracteres que se saltan
contando a partir del ltimo campo saltado.
+n N de campos que se saltan sin ordenar.
Pueden indicarse opciones slo para un campo, si se colocan inmediatamente despus del
especificador de campo, no irn precedidas de guiones; estas son b, f, n, r.
La lista de ficheros caso de ser varios los ordena y mezcla, salvo que se utilice la opcin -m,
que slo mezcla.

Ejemplos:
sort -f +1 lista > lista.ord
Un fichero de nombres y apellidos ordenarlo por apellidos.
who | sort | tee quien.hay
Muestra y almacena los usuarios que hay conectados de forma ordenada.

Eliminar lneas iguales o con parte igual.


uniq [opc] [-campos] [+carac.] [f_in] [f_out]
Controla las lneas consecutivas repetidas mostrando slo una. Opciones:
-c Precede cada lnea del nmero de repeticiones.
-d Slo muestra las que se han repetido alguna vez.
-u Visualiza las que no se han repetido.
-campos: Ignora el nmero de campos que se indique.
+caracteres: Ignora el nmero de caracteres que se indique.

Si no se especifican ficheros de entrada o salida se utilizan la entrada y salida estndar.


Ejemplos:
Sort alumnos | uniq -1 | wc -l
En un fichero de alumnos compuesto por nombre y apellidos, cuenta todos los que hay con
apellidos distintos.
Sort direcciones | uniq -d 1
Una vez ordenado el fichero muesta los registros repetidos a partir del primer campo.
Ejercicios:


Practicar el filtro wc:


Sin opciones ni argumentos.
Con una opcin, y varias cambindolas de orden.

El Sistema Operativo Unix - Linux

31

Con varios ficheros.


Pasndole la informacin mediante una tubera.
Almacenando el resultado en un fichero.


Practicar sort:
Sin argumentos ni opciones.
Ordenando un fichero.
Almacenando el resultado en otro fichero.
Probar las opciones y su combinacin.
Mostrar el listado largo de ficheros de un directorio, ordenado por tamao, de mayor a menor.
Ordenar el fichero de grupos (/etc/group) por el n de grupo (campo 3) de menor a mayor.

Crear un fichero con los campos: Nombre, Apellidos y Edad, separados por (;).
Procurar que se repitan algunas edades y algunos apellidos.
Ordenar por edad de mayor a menor.
Ordenar por apellido.
Cuntos hay de cada edad?

Filtros para ver que hay en los ficheros.


El filtro ms habitual para ver el contenido de un fichero es cat, ya visto.

Ver el final de un fichero.


tail [n][lbc] [fichero]
Sin opciones lista las 10 ltimas lneas.
S el n es positivo (+) empieza a mostrar a partir de ese n de unidades, contando desde el
principio del fichero, en el caso de ser negativo (-) cuenta las unidades indicadas desde el final del
fichero. Las unidades se medirn segn la letra que siga inmediatamente al n, que puede ser:
b bloques.
c caracteres.
l

(ele) lneas. Por defecto.

Ver el principio de un fichero.


head [-n] [fichero]
-n indica el n de lneas que se van a mostrar, por defecto 10.


En un fichero tenemos los nmeros del 0 al 9 (cada uno en una lnea), escribir la lnea de
comando para que nos muestre uno de ellos aleatoriamente.

Volcado en octal (octal dump)


od [opciones] [+desplazamiento] [fichero]
Es til para ver que contienen los ficheros objeto o de texto con caracteres no imprimibles.
-c Los caracteres imprimibles los muestra con caracteres normales, los no imprimibles
con un n en octal de tres dgitos, y algunos de estos los muestra de la siguiente
forma:
\0
Nulo.
\b
Retroceso.
\f
Salto de pgina.
\n
Nueva lnea.

El Sistema Operativo Unix - Linux

32

\r
\t

Return.
Tabulador.

-d Decimal.
-x Hexadecimal.

Filtro para cambiar caracteres.


tr (translate), cambia o traduce caracteres procedentes de una entrada de acuerdo a las reglas
que se le indiquen.
Supongamos que tenemos un archivo que usa los dos puntos(:) para separar campos, y que
necesitamos cambiar cada dos puntos por otro carcter, por ejemplo el tabulador.
tr : \t < fichero

\t

representa un tabulador.

Formato:

tr [opc] lista_de_entrada lista_de_salida


Las listas deben de tener el mismo n de caracteres, y la sustitucin es posicional, el primer
carcter de la lista de entrada es sustituido por el primero de la lista de salida, ...
Normalmente se trabaja redireccionando la entrada y la salida.
Opciones:
-s (squeeze = estrujar, apretar) elimina caracteres repetidos en la salida.
-c (complement) toma como lista_de_entrada el complemento.
-d (delete) borra en la salida los caracteres del conjunto de entrada.

Indicar rangos
Se pueden usar conjuntos de caracteres. Por ejemplo para cambiar letras minsculas por
maysculas:
tr [a-z] [A-Z] < fichero
Ejemplo para codificar texto, desplazando cada letra trece posiciones en el alfabeto ingls de
26 letras:
tr [a-m][n-z][A-M][N-Z] [n-z][a-m][N-Z][A-M] < fich > fich.13
Para traducir un conjunto de caracteres de entrada por el mismo carcter de salida, se usa el *
despus del carcter de salida indicando que se repita las veces que sea necesario.
tr [0-9] [#*] < fichero

Eliminacin de repetidos en la salida


tr -s [0-9] [#*] < fichero
Cada n con todas sus cifras es reemplazado por un solo smbolo #.

Sustitucin de los caracteres complementarios


tr -c [a-z][A-Z][0-9] [#*] < fichero
En el ejemplo anterior todo carcter no alfanumrico es sustituido por #.

Eliminacin de caracteres
tr -cd [a-z][A-Z][0-9] < fichero

El Sistema Operativo Unix - Linux

33

Son eliminados todos los caracteres no alfanumricos incluidos los signos de puntuacin,
espacios,...

Para representar caracteres especiales:


\NNN
character with octal value NNN.
\a
audible BEL
\\
backslash
\b
backspace
\f
form feed
\n
new line
\r
return
\t
horizontal tab
\v
vertical tab
Para representar conjuntos de caracteres:
CHAR1-CHAR2 all characters from CHAR1 to CHAR2 in ascending order
[:alnum:]
all letters and digits
[:alpha:]
all letters
[:digit:]
all digits
[:cntrl:]
all control characters
[:lower:]
all lower case letters
[:upper:]
all upper case letters
[:graph:]
all printable characters, not including space
[:print:]
all printable characters, including space
[:punct:]
all punctuation characters
[:blank:]
all horizontal whitespace
[:space:]
all horizontal or vertical whitespace

Ejercicio:


Dado un fichero de texto, producir un listado con las palabras que contiene ordenadas
alfabticamente, sin que estn repetidas e indicar el n de veces que aparece cada palabra en el
fichero.
tr -s "[:blank:]" "\n" < fichero | sort | uniq -c

El Sistema Operativo Unix - Linux

34

Buscar en ficheros. Familia grep.


Busqueda de un patrn en un fichero: grep, fgrep, egrep.
Buscar un patrn dentro de un fichero, grupo de ficheros, entrada estndar o la que se
le especifique mediante tubera o redireccionamiento. Cuando se busca en ms de un fichero,
encabeza cada lnea con el nombre del fichero.
En la formacin del patrn se pueden usar expresiones regulares, tambin llamados
formatos de sustitucin. Precisamente de las expresiones regulares toma su nombre que viene
de las siglas: Global Regular Expression and Print
grep [opc] patrn [fichero(s)]
Reglas importantes de los formatos de sustitucin, expresiones regulares:
Si el patrn est formado por ms de una palabra deben de incluirse entre comillas o
apstrofos segn los sistemas.
El punto (.) sustituye cualquier carcter nico, igual que ? para el shell.
Una lista entre corchetes ([]) tiene el mismo significado que para el shell.
El circunflejo (^) dentro de unos corchetes precediendo una lista empareja todos los caracteres
que no estn en la lista, igual que la ! en el shell.
El signo dolar ($) al final de una expresin indica que debe de estar al final de una lnea.
El acento circunflejo (^) al principio de una expresin indica el principio de lnea.
El asterisco (*) sirve por cero o ms repeticiones del carcter que le precede.
La barra invertida (\) quita el significado especial al siguiente carcter.

Sin opciones produce como salida las lneas que contienen el patrn.

-n Al principio de lnea aparece su n de lnea.


-i Ignora maysculas y minsculas.
-c Slo indica el n de lneas que contienen el patrn dentro del fichero.
-h No imprime los nombres de los ficheros.
-l (ele) Indica en que fichero(s) se encuentra el patrn.
-v Devuelve las lneas que no contienen el patrn.
Ejemplos:
grep byte *.apuntes
grep "\.f" programas
grep [^m-t]ata fichero
grep "^Santa Fe$" america europa
grep ^[0-9][0-9]* datos

El Sistema Operativo Unix - Linux

35

fgrep [opc] patrn(es) [fichero(s)]


La principal diferencia es que puede buscar muchos patrones de forma simultnea (puede
buscar miles de palabras al mismo tiempo), pero no permite el uso de metacaracteres para formar
expresiones regulares, slo cadenas fijas.
Es ms rpida que sus hermanas grep y egrep.
Le son vlidas las opciones anteriores, y adems:
-f fichero

Sirve para indicar el fichero que contiene los patrones de bsqueda.

Si se especifican varios patrones en la lnea de comando, irn todos entre comillas y separados
por un retorno de carro.
Ejemplo:
fgrep f palabras lista1 lista2

egrep [opc] patrn(es) [fichero(s)]


Como fgrep puede leer patrones desde un fichero. Y como grep puede emplear expresiones
regulares.

Actualmente las rdenes


grep -E

sustituye a

egrep

grep F

sustituye a

fgrep

Ejercicios:


Buscar una palabra en un fichero. Comprobar la opcin para que no distinga las maysculas.

En varios ficheros buscar una frase e informar del nombre de los ficheros que la contengan.

Mostrar el n de veces que aparece la palabra if al principio de lnea en un fichero(s).

Eliminar las lneas en blanco de fichero1 y almacenarlo en fichero2.

Borrar todas las lneas que contengan Manolo, Manuel, Lolo o Manoln.

Comparacion de Ficheros.
diff - busca diferencias entre dos ficheros
diff [opciones] fichero-origen fichero-destino
Por defecto muestra los cambios de edicin que habra que realizar en f1 para que quedase
igual que f2, de la siguiente forma:
Lnea o rango de f1 operacin lnea o rango de f2
Donde operacin puede ser:
a (aadir lneas de f2 a f1)
d (borrar lneas de f1)
c (cambiar lneas de f1 por lneas de f2).
Y a continuacin de cada operacin muestra las lneas afectadas, si estas se preceden por el
smbolo "<" quiere decir que son de f1, y si se preceden por ">" son de f2.

El Sistema Operativo Unix - Linux

36

Opciones
-a Trata todos los ficheros como de texto y los compara lnea por lnea, incluso si no
parecen ser de texto.
-b No se tienen en cuenta los blancos al final de lnea y trata los distinto conjuntos de
blancos como si fuesen iguales.
-B No hace caso de cambios consistentes en slo insertar o borrar lneas en blanco.
-c Emplea el formato de salida de contexto.
-i Considera las letras maysculas y minsculas equivalentes.
-q Informa slo de si los ficheros difieren, no de los detalles de las diferencias.
-r Cuando compara directorios, compara recursivamente cualesquier subdirectorios
encontrados.
-u Emplea el formato de salida unificado.

Un estado de salida de 0 significa que no se encontraron diferencias, 1 significa que se


encontr alguna diferencia y 2 significa problemas.

Cortar y Pegar Ficheros.

Cortar de forma horizontal (por lneas).


split [-n] [fichero] [prefijo]
Divide el "fichero" en trozos de n lneas, los trozos son grabados en ficheros cuyo nombre base
es "prefijo" y se le aaden las terminaciones "aa", "ab", hasta "zz", por lo que se puede dividir hasta
en 676 ficheros. (26 letras)
-n

N de lneas de cada trozo, por defecto 1000.

Si no se indica el "fichero" se toma la stdin.


Si no se indica el nombre base se asume "x".

Variante de split
csplit [-f prefijo] fichero arg1 [...argn]
Divide el fichero en las porciones que indiquen los argumentos, estos pueden ser:
n
El trozo termina en la lnea n n (no incluida).
"/exp/"
Hasta la lnea que contiene la expresin (no incluida).
"%exp%" Salta sin grabar en fichero hasta la lnea que contiene la expresin, esta lnea se
graba en el prximo fichero.
En pantalla se muestra el tamao de los ficheros en los que se divide. Algunas opciones son:
-f prefijo Prefijo tiene el mismo significado que en split, si no se pone se asume "xx" y
se van numerando, desde xx00 hasta xx99.
-s No muestra el tamao de las partes en la salida estndar.

El Sistema Operativo Unix - Linux

37

Pegar de forma horizontal.


Hemos utilizado la orden cat para crear y visualizar ficheros, con redireccionamientos y
tuberas, pero cat es una abreviatura de concatenar.
cat [opc] [fichero(s)] [-]
Concatena los ficheros especificados, y los muestra por stdout, la cual podemos redireccionar.
El guin (-) significa una entrada por teclado.
-v Muestra los caracteres no imprimibles.
-t Adems los TAB los muestra como ^I. Slo los TAB T.
-e Adems en los EOL muestra un $. Slo los EOL E.
-n Numera las lneas de salida.
-b No numera las lneas en blanco.
-s No muestra ms de una lnea en blanco.
-A Equivale a vET.
Ejemplos:
cat f1 f2
cat f1 - f2 > f3

Dividir ficheros verticalmente (por columnas).


cut [opc] [fichero]
Permite seleccionar columnas (caracteres o campos) de un fichero, el resultado va a stdout.
-c lista Seleccionamos la columna por caracteres.
-f lista Indicamos la columna por campos (fields).
En ambos casos la lista est formada por un conjunto de nmeros separados por comas o
guiones.
-dcarcter
Informa de cual es el carcter delimitador de campos cuando usamos
la opcin -f, por defecto se asume tab.
-s Se usa conjuntamente con la opcin f, para pasar por alto las lneas que no tengan
el delimitador, como son cabeceras, ttulos o lneas vacas.
Ejemplos:
Corta el rango de caracteres del 20 al 35:
cut -c20-35 datos
Se obtiene el 2 y 4 campo, actuando como separador los :
cut -d: -f2,4 datos

Unir ficheros verticalmente.


paste [opc] fichero(s)
Une los ficheros verticalmente, produciendo una nica salida nueva.
Sin opciones, sustituye los caracteres de fin de lnea por tab, excepto los del ltimo fichero.
-dcarcter

Carcter que sustituye los finales de lnea.

Ejercicios:

El Sistema Operativo Unix - Linux

38

Obtener un listado ordenado de todos los usuarios que son propietarios de algo dentro del
directorio /home; no deben de estar repetidos. Orientaciones:
A la salida de la orden ls -l le podemos eliminar la cabecera.
Cortar la columna de los propietarios.
Ordenar
Eliminar los repetidos.

En un fichero de alumnos, donde tenemos los datos de un alumno por linea, con los datos
Nombre; Apellidos; Edad. Obtener otro fichero con los datos apellidos, nombre; ordenado por
apellidos.

Bsqueda de ficheros.
find [ruta(s)] [opcion(es)]
Es til para localizar ficheros que cumplan determinadas condiciones o caractersticas, en las
ramas del rbol de directorio que se le indique. Finalmente sobre los ficheros o directorios
encontrados se puede ejecutar alguna accin.
Dentro de las opciones, unas indican criterios de bsqueda (en el caso de que se indique ms
de un criterio se seleccionan los ficheros que cumplan todos simultneamente).
Otras opciones indican las acciones a realizar con los ficheros encontrados.
Cuando el criterio se acompaa de un n n, este puede llevar el signo positivo (+), negativo (-) o
ninguno, significando respectivamente mayor que, menor que o igual que.
Algunas opciones que indican criterios de busqueda:
-name patrn

Nombre del fichero a buscar, admite metacaracteres. Se aconseja


poner el nombre entre comillas, para que los metacaracteres no sean
interpretados por el shell.

-iname patrn Como -name, pero no hace distincin entre maysculas y minsculas.
-type t

-links []n

Donde t es un carcter que indica el tipo de fichero, este puede ser:


f
Ficheros ordinarios.
b
Dispositivos de bloques.
c
Dispositivos de caracteres.
d
Directorios.
l
Vnculos simblicos.
N de enlaces.

-inum n

Empareja con los ficheros que tengan como n de inodo n.

-perm n

Localiza los ficheros que tengan exactamente los permisos indicados


por el n n (octal).

-user usuario

Ficheros que pertenezcan al usuario, se indica el nombre del usuario.

-uid n

Idem, n debe de ser un identificador de usuario. (ls -n muestra uid y gid)

-group grupo

Ficheros que pertenezcan al grupo.

-gid n

Idem, n debe de ser un identificador de grupo.

-size []n

N de bloques de tamao del fichero. Si se aade una c detrs del


nmero se interpreta el tamao en bytes (caracteres), k (Kbytes), w
(palabras 2 bytes), b (bloques, por defecto).

-empty

Si el fichero o el directorio est vaco.

-atime []n

Si ha sido accedido en los ltimos n das.

El Sistema Operativo Unix - Linux

39

-mtime []n

Idem modificado.

-newer fichero Ficheros modificados con posterioridad a la fecha y hora de


modificacin del fichero especificado.
-maxdepth n

n indica el nivel de profundidad al que se descender buscando ficheros


en el rbol de directorios a partir de la trayectoria indicada. 0 Ninguno, 1
slo en el directorio indicado.

-mindepth n

n indica a partir de que nivel se inicia la bsqueda. 1 a partir del


directorio indicado, 2 omite los ficheros del directorio indicado.

Ejemplos:
find . -size -25c
find /home/user07 -name hola -type d
find programas -name "*.c"
find /home -atime +30


Probar todos los criterios vistos y algunas combinaciones entre ellos.

Estos criterios se pueden alterar y combinar con los operadores relacionales.


Se listan en orden de prioridad:
()

Fuerza a la ejecucin prioritaria.

Colocada delante de un criterio este queda negado.

-a

Operador lgico y. Si no ponemos ninguno este va implcito.

-o

Entre dos criterios representa el o lgico.

find . ! -name "*.c" -print


find ./cartas ./epistolas \( -name pepe -o -name jose \) -ls
find /home -name "*.txt" -user user07 fprint txtde07
Son necesarios los parntesis, ya que el AND tiene precedencia sobre el OR. Las barras
invertidas son para que estos caracteres sean interpretados por el comando, no por el shell.
Observar los espacios de separacin entorno a los parntesis.

Opciones que indican acciones a realizar:


-print

Muestra la trayectoria de los ficheros que se encuentren. Esta ser


relativa o absoluta, dependiendo del tipo de trayectoria de bsqueda
que nosotros indiquemos en la orden. Accin realizada por defecto.

-fprint file

Almacena el resultado en el fichero indicado.

-ls

Lista los ficheros encontrados por la salida estndar con el formato de


la orden ls -dils, es decir, informacin de directorios, n de inodo,
listado largo y tamao en bloques.

-exec orden [{}] \;


Ejecuta la orden con los ficheros encontrados. El juego de
llaves representan los ficheros encontrados, el (;) indica el final de la
orden y hay que colocarle antes la (\) para que pierda el significado
especial que tiene para el shell.

El Sistema Operativo Unix - Linux

40

-ok orden [{}] \; Igual que la anterior, pero pide confirmacin antes de ejecutar la orden
con cada fichero. Los corchetes indican opcionalidad.

Ejemplos:
find . -name carta* - type f -exec cat {} \;
find cuentas -atime +90 -ok rm {} \;
find programas -newer proyec.c -exec mv {} /home/user07/actual \;
find . -atime +3 -atime -60 -exec mv {} ../reserva \;
find /home -atime +30 -size +20 -ok rm {} \;
En ocaciones, esta orden puede tardar bastante, por lo que se suele ejecutar en background, si
no necesitamos su resultado inmediatamente, para ello se aade al final de la orden el carcter &.
En este caso ejecutar las acciones de forma desatendida y la salida estndar la debemos de
redirigir.


Observar la diferencia entre find . -name fichero y find /home/user07 -name fichero.

Para ejecutar acciones sobre los ficheros encontrados, realizar la prctica en vuestro directorio
de trabajo y preferiblemente con -ok orden ....

El Sistema Operativo Unix - Linux

41

Editores:
Editor VIsual. Generalidades.

Comenzar con VI
vi [-opciones] [fichero(s)]
-R Abre el fichero en modo de solo lectura.
+n Al abrir el fichero se posiciona automticamente en la lnea n.
+ dem, pero colocndose al final del fichero.

Modos de trabajo


Texto.

Comando:


De pantalla (al iniciar).

De lnea de rdenes.

Entrar a modo texto:

Inserta en la posicin del cursor.

a Inserta despus del cursor.


I

Inserta al principio de la lnea.

A Inserta al final de la lnea.


o Abre una lnea debajo de la activa.
O Abre la lnea encima de la activa.
Pasar a modo comando:

Pulsando <Esc>.

Desplazamiento
En algunos terminales con las teclas de direccin.
Tambin h j k l (izquierda, abajo, arriba y derecha respectivamente).
<Ctrl>+f

Avanza pantalla.

<Ctrl>+b

Retrocede pantalla.

<Ctrl>+d

Avanza 1/2 pantalla.

<Ctrl>+u

Retrocede 1/2 pantalla.

Avanza una palabra.

Retrocede una palabra.

Sobreescritura
r

Un solo carcter, y pasa a modo comando.

R Reemplaza indefinidamente hasta que se pulse <Esc>.

Grabar y Salir
:q

Abandona vi si no se ha modificado el documento.

:q!

Abandono imperativo, perdiendo los posibles cambios.

El Sistema Operativo Unix - Linux

42

:wq

Grabar y salir.

:w fich

Graba en el nombre de fichero que le indiquemos.

:w! fich

Si el fichero existe lo sobreescribe.

:w >> fich

Aade al fichero indicado.

^g

Muestra el nombre del fichero.

Borrar
J Une la lnea actual con la siguiente.
x Borra el carcter sobre el que est el cursor.
d[n]alcance
Donde n es el nmero de veces que se va a repetir la operacin.
El alcance puede ser:
d Lnea actual.
w Palabra siguiente a partir del cursor.
b Palabra anterior a partir del cursor.
) Hasta final de frase. (Punto o lnea en blanco)
( Hasta principio de frase.
} Hasta el final de prrafo. (Pto. y aparte y lnea en blanco)
{ Hasta el principio de prrafo.
$ Hasta final de lnea.
^ Hasta principio de lnea.

Sin n de veces.

G Hasta el final del fichero.


Al borrar, el texto pasa a un bfer de carcter general. (CORTAR)

Cambiar
c[n]alcance
n y alcance tienen el mismo significado que en la orden anterior, pero para indicar una lnea en
alcance, se emplea la letra c.
El bloque de texto as especificado se sustituye por la siguiente entrada por teclado, hasta que
pasemos a modo comando.

Copiar al bfer general


y[n]alcance
Donde n y alcance tienen el mismo significado que en el comando "d", con la salvedad que
para referirnos a lnea en alcance hay que poner y.
El texto indicado se copia al bfer general sin borrarlo de su ubicacin.

El Sistema Operativo Unix - Linux

43

Pegar
p

Pega el contenido del bfer general despus de la posicin del cursor.

P dem., pero antes de la posicin del cursor.

Repeticin
. El punto repite la ltima operacin de borrado o el ltimo bloque insertado.

Deshacer
u

Deshace la ltima operacin realizada.

U Restaura la lnea actual.

Configuracin
:set showmode

Indica cuando esta modo INSERT y REPLACE.


(En Linux tambin Command y Buffer)

:set noshowmode Desactiva la anterior.

:set list

Muestra los caracteres no imprimibles, TAB como ^I, final de lnea como $.

:set nolist

Desactiva la anterior.

:set number

Muestra nmeros de lnea.

:set nonumber

Desactiva la anterior.

Ejemplo de rdenes de la lnea de comandos que usan los nmeros de lnea:


:rango_origencolnea_destino
Copiar.
:rango_origenmlnea_destino
Mover.
:rangow fichero
Grabar.
El Rango se indica con el n inicial y el final separados por una coma.

:set wrapscan

Por defecto bsquedas circulares.

:set nowrapscan No realiza bsquedas circulares.

:set ignorecase

No diferencia entre maysculas y minsculas.


A efectos de bsquedas y reemplazos.

:set noignorecase Desactiva la anterior.

:set shiftwidth=n Sangrado izquierdo.


^T deja n espacios ms.
^D quita n espacios al sangrado.
No afecta a la tecla del tabulador, que inserta 8 espacios.

El Sistema Operativo Unix - Linux

44

:set autoindent

En la nueva lnea emplea el mismo margen izq.

:set noautoindent Desactiva la anterior.

:set wrapmargin=n Nmero de espacios del margen derecho.

:set showcmd

Muestra el comando de pantalla en la lnea inferior mientras se escribe, al


ejecutarse se borra.

:set noshowcmd Desactiva la anterior.

:set ruler

En la lnea de estado, muestra la lnea y columna donde se encuentra el


cursor.

:set noruler

Desactiva la anterior.

Para recomponer la pantalla despus de un mensaje u otra incidencia pulsar ^L, en modo
comando.

:set

Muestra las opciones activas.

:set all

Muestra todos los posibles set.

Estos comandos set se pueden utilizar en cualquier momento cuando se esta trabajando con
vi, pero se pueden guardar en un fichero de configuracin llamado ".exrc" (.vimrc para el editor
vim) y automticamente se cargaran al comenzar una sesin con vi. Estos ficheros se encuentran
en el directorio home de cada usuario. Por ejemplo .exrc (.vimrc) puede contener:
set showmode
set number
set autoindent
set shiftwidth=4
set wrapmargin=5

Acceder al shell
:!orden

Ejecuta la orden y despus de pulsar return regresa al vi.

:sh

Sale al sh y regresa al escribir exit o ^d.

Abreviaturas
:ab abreviada cadena_a_abreviar Pone una abreviatura a una cadena.
:una abreviada

Deshace la abreviatura.

:ab

Muestra las abreviaturas creadas.

El Sistema Operativo Unix - Linux

45

Bsquedas y reemplazos.
/texto

El cursor se desplaza a la lnea de comandos.


La bsqueda se realiza hacia el final del fichero.

?texto

dem, pero hacia el principio del fichero.

Repite la ltima bsqueda.

dem pero cambiando el sentido.

La bsqueda no se har circular si empleamos :set nowrapscan.

Se puede utilizar una expresin en lugar del texto. Caracteres con un significado especial
dentro de las expresiones de bsqueda:

Cualquier carcter.

Debe de ser el primer carcter. Indica principio de lnea.

Indica final de lnea.

\< Comienzo de palabra.


\> Final de palabra.
[ ] Conjunto de caracteres. Ejemplos:[0-9], [^A-Z], [aeiou].
*

Ninguna o ms repeticiones del carcter anterior.

Para que estos metacaracteres pierdan su significado se usa \.


Tambin se pueden inhabilitar con :set nomagic.

Reemplazos globales.
:mbitos/patrn1/patrn2/g

mbito

La lnea nmero n.

n1,n2 Rango de lneas.


.

Lnea actual.

Final de fichero.

Todo el fichero.

Es la orden.

/patrn1

Lo que buscamos.

/patrn2

Por lo que lo vamos a sustituir. Si no se especifica se borra la expresin buscada.

/g
En todas las ocurrencias de una lnea. De no indicarse se reemplaza la
primera ocurrencia de cada lnea.

El Sistema Operativo Unix - Linux

46

Marcar texto.
mletra
Donde m es el comando (mark) marcar, y debe de ir seguido de una letra de la a a la z. Pone
una seal invisible en la posicin del cursor.
Las marcas sirven para:
Referirnos a la lnea: 'letra (comilla simple).
Referirnos al carcter: `letra (acento grave).
Con las marcas podemos desplazarnos a determinados puntos, solo con teclearlas precedidas
de ' o `.
Tambin se pueden utilizar para indicar el alcance en comandos como d, y, c. As por ejemplo
para borrar de la lnea en curso hasta la que esta marcada con la letra a d'a.

Los Bfers del VI


Podemos distinguir 3 tipos de bfers:

El bfer sin nombre o de proposito general. Que se usa automticamente en las


operaciones de cortar, copiar, pegar y cambiar.

Los bfers numerados, que son nueve. Y contienen los nueve grupos de lneas
borradas ms recientemente con el comando d o x. Lo borrado ms recientemente se
almacena en el bfer n 1.

Se puede pegar su contenido en cualquier parte con el comando p o P.


Utilizando la sintaxis np.

Los 26 bfers alfabticos (de la a a la z). Se emplean en conjuncin con las rdenes
de cortar, copiar y pegar. Para ello se teclea precediendo la orden, comillas dobles y la
letra del bfer, que se va a utilizar para depositar la informacin o tomarla de all.

Edicin de mltiples ficheros.


Cuando al invocar a vi se especifican varios ficheros (ya sea utilizando una lista o empleando
metacaracteres). Se empieza editando el primero.

:n Despus de que ejecutemos :w (grabar) se pasa al siguiente.


:n!
:rew

Despus de :w pasa a editar el primero de la lista.

:rew!
:args

Informa de los ficheros cargados.

El Sistema Operativo Unix - Linux

47

:e fichero Pasa a editar el nuevo fichero si se ha grabado el anterior. Aunque no se haya


cargado inicialmente, no se ver con la orden :args.
:e! fichero dem aunque no se haya grabado el anterior.
:e#

Regresa al fichero anterior.

Mover texto de un fichero a otro.


Utilizando los bfers alfabticos.

Ejemplo: "ay'z (extrae el texto desde la lnea en curso hasta la marcada con z y las almacena
en el bfer a.
En otro fichero se pegar con la orden ap.

No se puede utilizar el bfer sin nombre, ni los numerados (en el vi estndar), pues estos se
borran al pasar de un fichero a otro.

Otra forma sera grabando el bloque en un fichero temporal:


:nLnea1, nLnea2w fichero Graba el rango de lneas en el fichero indicado.
:r fichero

Inserta el fichero despus de la lnea en curso.

Contamos con otros editores como: emacs, joe, nano, gedit,

El Sistema Operativo Unix - Linux

48

Comunicacin entre Usuarios


Lo primero ser averiguar informacin sobre los usuarios y los que estn conectados

finger
Proporciona informacin sobre los usuarios conectados al sistema, o incluso no conectados si
indicamos su nombre. La sintaxis es:
finger [opc] [usuario...] [usuario@host...]
Por defecto muestra la siguiente informacin sobre cada usuario comectado al host local:
 Nombre de conexin.
 Nombre completo del usuario.
 Nombre del terminal, si va precedido por un * no admite mensajes con write.
 Tiempo que lleva ocioso.
 Hora de conexin.
 Desde dnde se ha establecido la conexin.
Si slo queremos informacin del usuario user07 escribiremos:
finger user07
En este caso la muestra aunque no est conectado.

who
who [opciones]
Con who podemos ver los usuarios conectados a nuestro sistema, adems, nos muestra el
terminal en el que estn conectados y el tiempo de conexin. who imprime la siguiente informacin
por cada usuario que actualmente est conectado al sistema:
 Nombre de la cuenta (login name).
 Terminal.
 Momento en el que se conect.
 Nombre de ordenador remoto o terminal X.
Si slo queremos informacin sobre el usuario que ejecuta la orden escribiremos:
who -m
who am i

w
w [usuario]
Nos da informacin sobre los usuarios que estn conectados en el momento que se ejecuta el
comando y sobre que estn haciendo.
Tambin se puede indicar un usuario en concreto.
Ejemplo:
$w
4:59pm up 4:05, 3 users, load average: 0.00, 0.01, 0.01
USER
TTY
LOGIN@
IDLE
JCPU

El Sistema Operativo Unix - Linux

PCPU

WHAT

49

paco
tty1
cursolin tty3
paco
pts/0

12:54pm 4:04m
4:59pm 7.00s
4:53pm 0.00s

11.85s
0.06s
0.08s

0.03s
?
0.03s

startx
w

En la primera lnea nos informa de



La hora actual.

Cunto lleva el sistema funcionando.

Cuntos usuarios estn conectados.

Las cargas medias en los anteriores 1, 5 y 15 minutos.
A continuacin para cada usuario se muestra:

Nombre de login,

Nombre de tty.

Tiempo de conexin.

Tiempo inactivo.

Jcpu, es el tiempo usado por todos los procesos bajo el terminal tty.

Pcpu, es el tiempo usado por el proceso en curso.

La lnea de comando del proceso en curso.

write
write usuario [terminal]
El comando write nos permite mandar un mensaje a otro usuario en tiempo real, es decir, el
mensaje aparecer inmediatamente en la pantalla del destinatario. Estos mensajes no se
almacenan en ningn buzn.
Por supuesto slo nos vale si el destinatario est conectado, y adems debe tener mesg en y.
Supongamos que deseamos enviar un mensaje al usuario user07, y que tiene activa la
recepcin de mensajes, en ese caso escribiramos
write user07
Una vez escrito el texto que deseemos enviar como mensaje:
Hola Pepito, que no se te olvide la cita.
pulsaremos [Ctrl]+[d] y el mensaje ser enviado.

Tambin podemos mantener comunicaciones bidireccionales tipo walkie-talkie.


Para ello no se pulsa ^d, y el otro usuario debe de escribir la orden write con nuestro nombre,
cada vez que pulsemos return, esa lnea aparecer en el terminal del otro ususario.

wall
wall [archivo]
Si queremos enviar un mensaje, no a un solo usuario, sino a todos los usuarios conectados
usaremos wall. El mensaje puede estar previamente contenido en un fichero, y para enviarlo
escribiremos:
wall < fichero.txt
Es una utilidad para el administrador y slo l puede escribir en los terminales de los usuarios
que hayan denegado la recepcin de mensajes.

El Sistema Operativo Unix - Linux

50

Mensaje del da.


Es otra forma de comunicacin, en este caso del administrador con los usuarios.
Consiste en un pequeo mensaje o aviso que aparecer en el terminal de cada usuario cuando
este se conecte.
El administrador colocar este mensaje en el fichero /etc/motd.

Mensaje de preentrada
Aparece justo antes de la lnea que nos pide el nombre del usuario login:, cuando accedemos
al sistema mediante acceso de consola.
El administrador coloca el mensaje en el fichero /etc/issue.

mail
En el caso de que nuestro usuario no est conectado, el mejor comando para comunicarnos
con l es mail.

Envio de mensajes
El mensaje a enviar puede ser tecleado directamente o estar previamente contenido en un
fichero. La sintaxis bsica es:
mail usuario(s)
mail usuario(s) < fichero
No admite metacaracteres.
Si queremos enviar un mensaje a User07 escribiremos:
mail User07
Subject: Cita
Te recuerdo que tenemos una cita
.
Se nos pide el asunto y a continuacin escribimos el texto, finalmente al principio de una nueva
lnea ponemos un punto (.) y pulsamos return.
Cuando User07 se conecte al sistema, ste le avisar de que tiene un correo:

Para enviar el contenido de un fichero:


mail user07 < carta
Algunas opciones de la lnea de comando:
De esta manera no solicita el asunto, si tenemos inters en indicarlo usaremos la opcin -s:
-s cadena

Indicamos el asunto de la correspondencia.

-c Usuario(s) Usuarios que recibirn una copia.


-b usuario(s) Usuarios que recibirn una copia ciega (los dems no se enteran).
En cualquiera de los dos formatos en lugar de poner un ususario podemos colocar una lista de
destinatarios.
Si queremos enviar un mensaje a un usuario de otra mquina escribiremos:
$ mail usuario@nombre_maquina

El Sistema Operativo Unix - Linux

51

Lectura del correo.


Entramos en el modo de lectura del correo electrnico simplemente escribiendo mail sin
opciones ni argumentos.
Al entrar muestra un resumen tabular de todos los mensajes existentes en nuestro fichero
buzn /usr/spool/mail/UserName (en nuestro sistema /var/mail/UserName), esta informacin
consiste en:
 Estado:
N
Mensajes nuevos.
U
No son nuevos, pero no han sido leidos.
R
Leidos en la actual sesin.
P
Preservados. leidos y almacenados en el buzn de entrada.
D
Marcados para ser eliminados.
O
Mensajes antiguos.
*
Guardados en otro archivo buzn.
 N de mensaje.
 Remitente.
 Fecha y hora de recepcin.
 N de lneas / caracteres.
 Asunto.
Finalmente aparece el prompt o inductor de mail, para que le indiquemos cual es la siguiente
operacin que vamos a realizar.
rdenes para ver mensajes:
h

Vuelve a visualizar las cabeceras de los mensajes.

z+ z-

Si la lista de cabecera es muy larga, avanza y retrocede pantalla.

n_mensaje

Visualiza el mensaje.

Intro

Visualiza mensaje siguiente.

Visualiza el mensaje siguiente.

Visualiza el mensaje anterior.

Eliminacin y recuperacin de mensajes.


d n_mensaje

Marca para eliminar los mensajes indicados.

Sale de mail, elimina los marcados y guarda los leidos en mbox.

Sale de mail sin borrar los marcados.

pre n_mensaje

Preserva los mensajes en el buzn de entrada aunque estn leidos.

s n_mensaje fichero

Almacena los mensajes en el fichero incluida la cabecera.

w n_mensaje fichero Almacena los mensajes en el fichero sin cabecera.

Configuracin.
mail posee un fichero de configuracin llamado .mailrc, que es utilizado por mail cada vez que
se ejecuta, en l podemos configurar muchas opciones:
set asksub
Solicita introduccin de asunto.
set askcc
Solicita, antes de enviarlo, direcciones para copias.

El Sistema Operativo Unix - Linux

52

set prompt=cad
set sign=cad
set folder=dir
set record=fich
set outfolder
set MBOX=fich
set MBOX=+fich

Cambia el inductor de mail.


Establece cadena de firma que se inserta con ~a.
Establece directorio donde almacenar archivos buzn.
Guarda en el fich todo el correo que se cree o envie.
Pone el archivo record en el directorio folder.
Establece el nombre para el fichero mbox.
Con el signo + lo coloca en el directorio folder.

Otra utilidad del fichero de configuracin es la de crear alias, un alias en mail es un nombre que
se le da a un grupo de usuarios para mandarle el mismo correo a todos, ahorrndonos de esta
forma tener que teclear el nombre de cada usuario individual. El formato es el siguiente:
alias NombreAlias ListaUsuarios
ejemplo:
alias clase user01 user02 user03 user 04 user05 user06 user07

El Sistema Operativo Unix - Linux

53

Empaquetar y Comprimir Ficheros.


Linux dispone de mltiples utilidades y programas para empaquetar y comprimir ficheros,
desde el clsico compress hasta el ms moderno bzip2. Sin embargo los ms utilizados (hoy por
hoy) son:

tar para empaquetar


gzip para comprimir

tar
Tar (Tape Archive, archivar en cinta) permite empaquetar o desempaquetar ficheros. El
concepto de empaquetar aqu es el de meter varios ficheros y/o directorios en un solo fichero
(paquete). Posteriormente podremos recuperar esa estructura de ficheros y directorios en el lugar
donde queramos. Su sintaxis bsica es:
tar opciones [archivo.tar] [origen]
Opciones:
Se pueden combinar, siempre y cuando no indiquen acciones contrarias. Si especificamos varias se escriben
juntas sin mediar espacios entre ellas. Tradicionalmente no se emplea el guin (-), que normalmente precede
a las opciones en las rdenes Unix.

c Crear un nuevo archivo tar (empaquetado).


t

Para mostrar el contenido de un paquete.

x Para extraer archivos empaquetados, se pueden indicar ficheros individuales.


r

Aade el (los) fichero(s) especificado(s) al final del paquete.

u Aade el (los) fichero(s), slo si no estn o son de fecha ms reciente.

Siempre se debe usar una de las opciones anteriores inmediatamente despus de la


orden tar.
v Visualizamos la informacin en forma detallada.
f

Indica que el primer argumento, despus de las opciones, es el nombre de un


fichero tar o un dispositivo. Si se pone - , utiliza la entrada o salida estndar, de esta
manera se puede usar con tuberas.

M Para crear / desempaquetar paquetes que ocupen varios discos.


z Filtrar el archivo a travs de gzip (tanto para comprimir como descomprimir).
Tendrn la extensin .tgz.
j

Linux. Comprime o descomprime con bzip2. Extensin .bz2.

archivo.tar Nombre del archivo almacn.


origen

Nombre del directorio(s) / fichero(s) a empaquetar separados por espacios

Supongamos que deseamos empaquetar dos ficheros llamados linux1.txt y linux2.txt, en un


fichero tar de nombre linux.tar, escribiremos:
tar -cvf linux.tar linux1.txt linux2.txt
tambin podamos escribir:
tar -cvf linux.tar linux?.txt
Para empaquetar todo el contenido del directorio entrega:
tar -cvf entrega.tar entrega

El Sistema Operativo Unix - Linux

54

Si lo que deseamos es desempaquetar un fichero tar, en vez de escribir la opcin -c


escribiremos -x, as para desempaquetar el contenido de la entrega anterior escribiremos:
tar -xvf entrega.tar
De esta manera se crear la estructura de subdirectorios que hubiese dentro de entrega.
Si solamente queremos ver el contenido del fichero empaquetado (tar), ejecutaremos.
tar -tvf entrega.tar
Antes de extraer ficheros tar es importante conocer donde deben desempaquetarse los
ficheros, y con qu tipo de trayectoria fueron empaquetados (absoluta o relativa), la opcin -t nos
informa de esto. Y as podremos crear los directorios apropiados y poner activo el directorio
correspondiente.

Uso de dispositivos
En lugar de un fichero como contenedor para empaquetar los ficheros o directorios, podemos
usar el nombre de un fichero dispositivo, /dev/fd0 para el primer disquete y /dev/rmt0 para la unidad
de cinta.
Para usar un disquete con tar, no requiere formato MSDOS ni SF Unix, slo es necesario que
el disco este formateado a bajo nivel, lo cual se consigue con:
fdformat dispositivo
Para el caso del disquete (A:) de 1,440 MB
fdformat /dev/fd0H1440
Podemos usar tar para hacer copias de seguridad en varios discos (multivolumen), en ese
caso la sintaxis sera:
tar cvfM /dev/fd0 origen
Hay que hacer notar que en este caso no se puede empaquetar y comprimir a la vez y que no
podemos poner el guin delante de las opciones, no funciona.
Para desempaquetar los discos as obtenidos tan slo tendremos que introducir el primer
disco, y sin montarlo, ejecutar:
tar xvfM /dev/fd0
Se nos pedirn los disco uno a uno hasta que termine el proceso.

gzip
Gzip permite comprimir ficheros, la sintaxis bsica es:
gzip [opciones] fichero
Reemplaza el fichero existente por su versin comprimida, aadindole al nombre la extensin
.gz.
Opciones:
-v Comprime y muestra el nombre y porcentaje de reduccin de cada fichero.
-d Para descomprimir archivos.
-t Para comprobar la integridad del fichero comprimido, si est bien no muestra nada,
a no ser que la combinemos con la opcin -v.
-1 a -9 Nivel de compresin, el -1 indica menor ratio y mayor rapidez, el -9 dara como
resultado un archivo ms pequeo pero un mayor tiempo de compresin. El nivel por
defecto es 6.
-c Para que trabaje con la entrada / salida estndar.

El Sistema Operativo Unix - Linux

55

archivo

Nombre del archivo a comprimir o descomprimir.

Ya tenemos empaquetado nuestro archivo entrega y deseamos comprimirlo al mximo y


verificar que todo est bien, usaremos:
gzip -9 entrega.tar
El resultado es el fichero entrega.tar.gz, si queremos comprobar la integridad del fichero
escribiremos:
gzip -tv entrega.tar.gz
entrega.tar.gz: OK
Si ahora queremos descomprimir este fichero tenemos dos posibilidades, bien usamos:
gzip -d entrega.tar.gz
Bien escribimos directamente
gunzip entrega.tar.gz
Y posteriormente habr que desempaquetarlo.

Los dos a la vez: tar y gzip


Encadenando los dos comando mediante tuberas.
tar cvf - /home/user07 | gzip -9c > backup.tar.gz
gunzip -c backup.tar.gz | tar xv
Se puede empaquetar y comprimir un directorio directamente sin tener que usar un comando
tras otro, las dos posibilidades son:
tar -czvf nombre_fichero.tar.gz origen
tar -czvf nombre_fichero.tgz origen
En ambos casos, la opcin -z es la que seala que tenemos que comprimir. Las extensiones
tar.gz y .tgz son equivalentes.
Tambin podemos descomprimir y desempaquetar un fichero tar.gz o un tgz usando slo la
orden tar, la sintaxis sera:
tar -xzvf fichero.tar.gz

zcat
Visualiza ficheros comprimidos.

compress, uncompress
Los ficheros comprimidos con compress tienen extensin .Z, para comprimirlos se usa el
programa compress y para descomprimirlos uncompress, es un formato no muy utilizado en este
momento y, adems la utilidad gunzip permite descomprimirlos. As, para descomprimir un fichero
comprimido con compress podemos usar:
uncompress archivo.Z

o bien

gunzip archivo.Z

bzip2, bunzip2
Para comprimir y descomprimir ficheros existen ms herramientas que las ya comentadas pero
la nica que merece mencin especial es bzip2.
Prcticas:


Crear un archivo .tar en vuestro directorio de trabajo.

El Sistema Operativo Unix - Linux

56

Aadirle ficheros, nuevos y modificados, usando distintos tipos de trayectorias..

Comprobar los ficheros que lo componen.

Borrar los originales y recuperarlos del paquete.

Realizar las operaciones anteriores con un disquete y una cinta.

Sistema de Impresin.
rdenes relacionadas con la Impresin: lp, lpr, lpq, lprm lpstat, cancel, pr, lpc.
La instalacin y configuracin de una impresora se tratar al hablar de las tareas del
administrador.
Un sistema Unix puede disponer de varias impresoras (caso de tener muchas se suelen
organizar en grupos), siempre habr una a la que se dirigirn los trabajos por defecto.
Los trabajos que se mandan a la impresora se gestionan mediante un spooler o cola de
impresin, al colocarse un trabajo en el spooler se le asigna un n (request ID), mediante el cual
ser identificado hasta que termine de imprimirse o se retire de la cola.
La impresin se realiza en 2 plano, de forma desatendida, de esta manera no compite con los
procesos interactivos, pudiendo el usuario realizar cualquier otro trabajo inmediatamente despus
de mandar un documento a la impresora.
Los ficheros que estn en la cola se colocan normalmente en un directorio llamado
/usr/spool/lpd, donde existe un directorio para cada impresora.
La gestin de la cola de impresin la lleva a cabo el proceso lpd, que es un demonio, es decir,
un proceso que no est asociado a ningn terminal.

Mandar trabajos a la impresora

Orden lpr
Enva un trabajo a la cola de impresin.
lpr [opc] fichero(s)
Si el sistema tiene conectadas varias impresoras, es til la siguiente opcin para usar una
distinta a la impresora por defecto.
-P NombreImpresora

(Line Printer) Impresora de lneas.


lp [opc] [fichero(s)]
Sin opciones envia los trabajos a la impresora por defecto, e imprime una pgina identificativa
para cada trabajo.
-d destino
-nn

Impresora o grupo en la que debe de ejecutarse el trabajo.


N de copias.

-c

Realiza una copia temporal del trabajo, para que en la impresin no


influyan cambios posteriores.

-t ttulo

Imprime un ttulo, precediendo el trabajo en una hoja banner.

-m

Enva un correo al usuario al terminar de imprimir su trabajo.

-s

Suprime los mensajes por pantalla, request id ...

El Sistema Operativo Unix - Linux

57

-q nivel_prioridad
El rango es desde 0 (mxima prioridad), hasta 25 (mnima
prioridad). En Suse 1 mnima, 100 mxima, 50 por defecto.
Puede recibir la informacin a imprimir mediante una tuberia, procedente de otro comando o
con un redireccionamiento. Si no se le indica entrada o se especifica con un guin (-) se usa la
entrada estndar.

Directamente usando el fichero de dispositivo.


Los ficheros de dispositivo de las impresoras, como los dems, se encuentran en el directorio
/dev y su nombre comienza por lp seguido de un n, as tenemos lp0, lp1 y lp2. lp0 se usa para el
primer puerto paralelo, el normalmente usado por la impresora. En el directorio /dev/usb tambin
contamos con 8 ficheros de dispositivo para la impresora.
Se puede mandar informacin directamente a la impresora redirigindola a su fichero
dispositivo, aunque esto no sea aconsejable. En nuestro sistema por defecto no se tienen permisos,
salvo los usuarios que pertenezcan al grupo lp.
cat fichero > /dev/lp0
ls l > /dev/lp0

Control de la cola.

Ver los trabajos de la cola.


lpq [opc]
Muestra el estado de la cola de impresin, los trabajos existentes y cuando se han eliminado
de la cola de impresin.
De las tareas en la cola nos dice: Owner/ID Class NJob Files Size Time.
-P NombreImpresora
-l Listado largo, informa cuando ha sido impreso cada trabajo.

Informacin sobre impresoras y la cola de impresin.


lpstat [opc] [request ID]
Sin argumentos nos informa sobre el estado de todos nuestros trabajos.
-c Grupos de impresoras e impresoras de cada grupo.
-d Impresora por defecto.
-t Toda la informacin asociada al estado del sistema de impresin y al estado de la
cola.
-u usuario(s) Informa sobre las peticiones de esos usuarios.

Eliminar trabajos de la cola.


lprm [opc] IDTarea o UserID
Elimina trabajos de la cola, bien sea indicando el ID del trabajo o el ID del usuario, en cuyo
caso se eliminarn todos los trabajos que tenga en la cola.
-P NombreImpresora

El Sistema Operativo Unix - Linux

Elimina todos los trabajos de la cola.

58

Un solo guin elimina todos los trabajos de impresin del usuario que ejecuta la
orden. Si lo ejecuta el administrador, elimina todos los trabajos de todos los
usuarios.

Cancelar trabajos de impresin.


cancel [impresora][request ID]
request ID Elimina el trabajo de la cola.
impresora Corta o cancela el trabajo que est actualmente imprimindose.

Administrar la impresin.
lpc
Permite comprobar el estado de las impresoras, activar y desactivar las impresoras, iniciar o
detener la impresin de trabajos, as como reorganizar el orden de los trabajos en la cola de
impresin.
Esta orden muestra su propio prompt (lpc>) en el que admite sus propias rdenes, algunas de
las ms tiles son:
status [all | printer]

Visualiza el estado de los programas demonio y de las colas de


impresin.

start [all | printer]

Activa la impresin iniciando un programa demonio para la cola. Es


usado cuando por alguna condicin anormal el servidor termina
inesperadamente dejando trabajos en la cola.

stop [all | printer]

Detiene un programa demonio de spooling, una vez que haya


terminado el trabajo en curso.

enable [all | printer] Activa el spooling de las impresoras que se listan. Permite
nuevos trabajos en la cola de impresin.
disable [all | printer] Desactiva las colas de impresin y no se aceptan nuevos trabajos.
topq printer JobId ... Pone los trabajos relacionados al principio de la cola.
quit o exit

Sale de lpc.

? o help

Muestra una breve descripcin de cada orden.

El Sistema Operativo Unix - Linux

59

Aadir el espacio Swap


Para aadir una particin swap (asumiendo que /dev/hdb2 es la particin que quieres
agregar):
1. Lo primero es saber cuanto de espacio de intercambio tienes, para ello ejecuta el
comando (con la opcin m, muestra la informacin en MB):
free m

2. Inicia con un Live-CD.


Desactiva el espacio swap del disco duro (si es que existe) con el comando
swapoff.
Crea la particin swap usando Gparted.
Reinicia tu linux instalado.
3. Ahora que tienes la particin swap, usa el comando mkswap para configurar la
particin swap.
mkswap /dev/hdb2

Genera el UUID (Universally Unique Identifier), antalo, se aconseja poner en


fstab en lugar del dispositivo.
4. Para activar la particin swap inmediatamente, escribe el comando siguiente:
swapon /dev/hdb2

5. Para activarlo cuando se arranca, edita /etc/fstab para incluir una de estas lneas:
/dev/hdb2
UUID=

none
none

swap
swap

sw
sw

0
0

0
0

6. La prxima vez que se arranque el sistema, activar la nueva particin swap.


El siguiente comando carga sftab sin necesidad de reiniciar
mount -a

7. Asegrate de que est activa usando alguno de los siguientes comandos.


cat /proc/swaps
free
swapon s

Como obtener Ayuda en GNU/Linux


1. Introduccin
2. Corriendo comandos
3. Obteniendo ayuda
4. El comando whatis y apropos
5. La opcin --help
6. El comando man
6.1 Movindonos por las Pginas del man
7. El comando info
7.1 Movindonos por las Pginas de info
8. Otras opciones de ayuda

Introduccin
El objetivo de este wiki, es conocer las diferentes maneras de obtener ayuda sobre sistemas
basado en GNU/Linux. No importa la distribucin que manejes, la forma de obtener la sintaxis,
los parmetros y dems acciones de los diferentes comandos y/o forma de invocacin.
Daremos una revisin a la forma estndar de correr programas, as como tambin a las
mltiples opciones de obtener ayuda e interpretarla.

Corriendo Programas
Los sistemas *nix, se han caracterizado por tener una lnea de comandos altamente eficiente, y
poderosa, para realizar cualquier tipo de procedimiento sobre ella.
Antes de proceder, acerca de como obtener ayuda, es conveniente dar un acercamiento a la
lnea de comandos.
La mayora de los comandos, tienen una sintaxis parecida a la siguiente:
comando opciones argumento
Aunque actualmente muchos comandos permiten cambiar el orden entre los argumentos y las
opciones, esta es la forma general y universal para cualquier sistemas *NIX.
Las opciones modifican el comportamiento de los comandos y normalmente tienen la siguiente
caracterstica:

Opciones de una sola letra, estn precedidas por un -, y es posible unirlas en una sola,
por ejemplo:
ls -l -h
ls -lh
Opciones en forma de palabras, normalmente estn precedidas por --, por ejemplo:
ls --color=tty

Los argumentos se refieren a los nombres de archivos y/o otros datos necesitados por el
comando. Es posible poner mltiples comandos separando uno de otro a travs del ;

Obteniendo ayuda
La lnea de comandos es muy extensa, y dependiendo de la cantidad de paquetes instalados,
podemos encontrarnos con miles de comandos y cada uno de estos con diferentes opciones
que varan una y otra vez su comportamiento.
La idea es como siempre no tratar de memorizar todo, sino comprender como funciona, y para
entender esto, uno no esta solo. Existen diferentes niveles para la obtencin de ayuda sobre
las distintas utilidades del sistema, estos niveles incluyen:

El comando whatis y apropos

La opcin --help
Las paginas del manual
Las pginas info
La documentacin incluida con el paquete
Los grandes foros como esdebian.org y Google

El comando whatis y apropos


Ambos comandos son usados para obtener un primer acercamiento hacia las utilidades de
lnea de comandos, pero desde diferentes perspectivas.
whatis es usada para obtener una corta descripcin de los comandos; esta descripcin es
obtenida desde una base de datos que es actualizada mediante cron.
Para actualizar manualmente esta base, es necesario como root correr el comando:
makewhatis. Como ejemplo, podemos citar:
natas@pc-natas:~$ whatis dbus-monitor
dbus-monitor (1)
- debug probe to print message bus messages
apropos es el comando que necesitamos cuando no conocemos el nombre del programa que
nos proporciona tal o cual cualidad. Esto queda mas entendido con un ejemplo, imaginemos
que queremos cambiarle el "password" a un usuario, sin embargo hemos tenido un ataque de
amnesia temporal y hemos olvidado el comando para hacer esto, pues bien podemos hacer
uso de apropos, para recordarlo:
natas@pc-natas:~$ apropos password
chage (1)
- change user password expiry information
chgpasswd (8)
- update group passwords in batch mode
chpasswd (8)
- update passwords in batch mode
expiry (1)
- check and enforce password expiration policy
grub-md5-crypt (8)
- Encrypt a password in MD5 format
login.defs (5)
- shadow password suite configuration
ophcrack (1)
- a Microsoft Windows password cracker using
rainbow tables.
pam_cracklib (8)
- PAM module to check the password against
dictionary words
pam_unix (8)
- Module for traditional password authentication
<strong>passwd (1)
- change user password</strong>
passwd (1ssl)
- compute password hashes
passwd (5)
- the password file
Como podemos observar, mediante este comando recordamos una vez ms cual es el
comando necesario.

La opcin --help
La mayora de los comandos, ofrecen una ayuda intuitiva y bsica directamente sobre la
terminal, esta ayuda es llamada con la opcin --help. Una salida, comn de esta opcin es:
natas@pc-natas:~$ sed --help
Usage: sed [OPTION]... {script-only-if-no-other-script} [inputfile]...
-n, --quiet, --silent
suppress automatic printing of pattern space
-e script, --expression=script
add the script to the commands to be executed
-f script-file, --file=script-file
add the contents of script-file to the commands to be

executed
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension
supplied)
-l N, --line-length=N
specify the desired line-wrap length for the `l'
command
--posix
disable all GNU extensions.
-r, --regexp-extended
use extended regular expressions in the script.
-s, --separate
consider files as separate rather than as a single
continuous
long stream.
-u, --unbuffered
load minimal amounts of data from the input files and
flush
the output buffers more often
--help
display this help and exit
--version output version information and exit
If no -e, --expression, -f, or --file option is given, then the first
non-option argument is taken as the sed script to interpret. All
remaining arguments are names of input files; if no input files are
specified, then the standard input is read.
La lnea que comienza con usage es la que nos dice como se usa el comando, la forma de
leer, este tipo de lneas, quedar aclarada con un ejemplo:

Los Argumentos encerrados en [] se consideran opcionales


Los Argumentos encerrados en <> o {}, se consideran variables, es decir pueden existir
cero o mas veces.
El texto seguido por ..., representa una lista
El operador |, representa una operacin de tipo or.

El comando man
Las conocidas pginas del manual de linux, proporcionan informacin autosuficiente y extensa
sobre los comandos. Casi todas las utilerias, comandos y archivos de configuracin mantienen
una pgina del manual.
Las pginas del manual, estn organizadas en captulos, donde cada captulo especfica la
seccin y tipo de informacin que proporciona, estos captulos son:

Seccin 1 Comandos Generales


Seccin 2 Llamadas al sistema
Seccin 3 Libreras de funciones (c/Perl/c++/etc)
Seccin 4 Archivos especiales (normalmente los hospedados en /dev
Seccin 5 Archivos de configuracin
Seccin 6 Juegos y ScreenSavers
Seccin 7 Misclanea
Seccin 8 Comandos de administracin del sistema y Demonios

Movindonos por las Pginas del man


En realidad los archivos de man, estn creados con archivos que despus son interpretados
por groff y redireccionados a nuestro $PAGER (que puede ser less o more), por lo tanto la
navegacin sobre las pginas man, difiere segun el $PAGER que estemos usando, sin

embargo usualmente y a no ser que modifiquemos las caractersticas, es less, que ser el
usado en este wiki.
La navegacin por las paginas del manual puede hacerse mediante las flechas del teclado, o
con las teclas PageUp y PageDown.
Para buscar una frase o palabra en especfico podemos usar /texto a buscar, y para movernos
a travs de las coincidencias usamos n o N, segun nos movamos a la siguiente o anterior
coincidencia respectivamente.
Unas de las opciones de man mas usadas es :
man -a passwd Nos entrega todas las paginas del manual de passwd (el comando, el archivo,
etc)
man 5 passwd Nos entrega la pagina del manual de archivo passwd (recordemos que la
seccin 5 es de archivos de configuracin).

El comando info
El comando info es la siguiente generacin de ayuda, y es usado generalmente cuando la
informacin de man es o muy poca, o tanta que es dificil movernos por ella.
Aunque, estaba planeado que esta utileria sustituyera a las pginas del man, en la actualidad
son complementos uno de otra, puesto que en muchos casos, la informacin contenida en una,
es la misma que en la otra.

Movindonos por las Pginas de info


El programa info tiene una interfaz navegable: muchas de las pginas tienen enlaces a otras
pginas relacionadas, muy similar a como tienen las pginas web. Los enlaces se indican
mediante un asterisco (*) seguido por el ttulo del enlace, seguido por un doble dos puntos (::).
Para seguir los enlaces, hay que situar el cursor sobre ellos y pulsar la tecla . Asmismo existen
diferentes teclas para el movimiento sobre estas pginas:

La tecla de tabulador, nos mueve por entre los diferentes links


La navegacin bsica puede ser con las flechas o las teclas PageUp o PageDown
n/p/u Nos manda a la siguiente, anterior pagina, o nos sube un nodo, respectivamente
hablando.
s texto a buscar Busca por el texto especificado, sino especificamos un texto busca la
siguiente coincidencia del ltimo texto buscado.
q salimos de las paginas info.

Otras Opciones de Ayuda


Finalmente podemos navegar en nuestro sistema de archivos hasta /usr/share/doc y buscar
mas informacin como, changelogs, readmes especifcos de distribucin, archivos de ejemplo,
etc, de la aplicacin y/o utilera que estemos estudiando.
Por ltimo, en caso de no encontrar lo que necesitamos podemos hacer uso de los grandes
foros como EsDebian y pginas de bsqueda donde seguramente encontraremos lo que
necesitamos.

Lista de comandos de GNU/Linux (I)


Recopilacin de comandos Debian GNU/Linux
ndice:
1. Prlogo

2. Trabajo con ficheros


2.1. Varios
2.2. Imprimiendo
2.3. Nano
2.4. Formatos
2.5. Compresin
2.6. Comodines
2.7. Alias
2.8. Entrada/Salida
2.9. Renombrado
2.10. Mtools
3. Grficos
4. Multimedia
4.1. Imgenes
4.2. Grabacin de CDs
4.3. Grabacin de DVDs
4.4. Ripeo de CD-AUDIO
4.5. Conversiones
4.6. Otros
4.7. Reproduccin
5. Sistema
5.1. Varios
5.2. Memoria y procesos
5.3. Disco duro
5.4. Entorno
5.5. Instalacin de software
6. Recuperacin del sistema
6.1. Usando Knoppix live
6.2. Disquete de arranque

6.3. Copiando el MBS


6.4. Copiando el VBS
7. Kernel,logs,hardware...

8. Redes
9. Otros
9.1. Mldonkey
9.2. Mutella
9.3. FTP
9.4. IRC
9.5. Calculadora
9.6. Promps

PRLOGO
Los datos estn cogidos de los artculos:
http://www.esdebian.org/articulos/24063/lista-comandos-gnulinux-i
http://www.esdebian.org/articulos/24062/lista-comandos-gnulinux-ii
http://www.esdebian.org/articulos/24070/lista-comandos-gnulinux-iii

TRABAJO CON FICHEROS

Varios

mc
Explorador de archivos que incluye su propio editor,mcedit.
mcedit
Editor de texto includo en mc.
ls
Lista los ficheros de un directorio concreto.

1.

ls -l

Lista tambin las propiedades y atributos.


2.

ls -la

Lista ficheros incluidos los ocultos de sistema.


3.

ls -la | more

Lista los ficheros de un directorio de forma paginada.


4. ls -lh
Lista ficheros especificando la unidad de tamao (Kilobyte, Megabyte, Gigabyte).
5. ls -l | grep ^d
Lista slo los directorios
1. ls -d */
Este ltimo comando tambin lista solamente directorios: sin concatenar
comandos, de una forma ms sencilla y respetando el color definido que se
tiene en Bash para los directorios.
cat -n fichero
Muestra el contenido de un fichero.(-n lo numera)
pr -t fichero
Muestra el contenido de un fichero de manera formateada.Ver imprimiendo.
cat fichero | less
cat fichero | lmore
more fichero
less fichero
Muestra el contenido de un fichero de forma paginada.
zcat fichero
zmore fichero
zless fichero
Muestra el contenido de un fichero comprimido (.gz)
echo cadena
echo nos muestra en pantalla,el texto que le siga.

grep \'cadena\' archivo


Muestra las lneas del archivo que contienen la cadena.
stat fichero
Muestra el estado de un fichero.
1.

stat -f fichero

Muestra el estado del sistema de ficheros.


file fichero
Muestra de qu tipo es un fichero.
tail archivo
Muestra las ltimas lneas de un archivo, 10 por defecto.
1.

tail -n 12 archivo

Muestra las 12 ltimas lneas del archivo.


2.

tail -f archivo

Muestra las ltimas lneas del archivo, actualizndolo a medida que se van aadiendo.
til para controlar logs.
head archivo
Muestra las primeras lneas de un archivo, 10 por defecto. Admite opcin -n igual que el
comando tail.
find /usr -name lilo -print
Busca todos los ficheros con nombre lilo en /usr.
find /home/paco -name *.jpg -print
---------- ---------- ----|
|
|
V
V
`---->muestra la ruta completa del
fichero encontrado
ruta patrn de bsqueda
Busca todas las imgenes .jpg en /home/paco.
find -maxdepth 1 -regex ".*/[^./]*" -type f
Lista ficheros sin punto en el directoria actual.

whereis ejecutable
Busca ejecutables(ejemplo: whereis find)
type comando
Muestra la ubicacin del comando indicado.
Si es un comando interno del shell mostrar algo as como:comando is a shell builtin.
pwd
Visualiza el directorio actual.
history
Muestra el listado de comandos usados por el usuario (~/.bash_history)
fc -l
Muestra el listado de los ltimos comandos ejecutados.
eject cdrom0
Abre la bandeja del cdrom.
1.

eject -t cdrom0

Cierra la bandeja del cdrom.


cd nom_directorio
Cambia de directorio
1.

cd ..

Vuelves al anterior.
2.

cd .mozilla

Entras al de mozilla.(por la puerta grande)


3.

cd ./.mozilla

Entras al de mozilla (indicando la ruta relativa)


4.

cd /home/paco/.mozilla

Entras al de mozilla.(indicando la ruta completa)

cp -dpR fichero1 ruta_fichero2


Realiza una copia del fichero1 a ruta_fichero2,cambindole el nombre.
cp -dpR fichero1 /directorio
Copia fichero1 a directorio,conservando fichero1 el nombre.
1.

-R

Copia un directorio recursivamente,salvo los ficheros especiales.


2.

-p

Copia preservando permisos,propietario,grupos y fechas.


3.

-d

Conserva los enlaces simblicos como tales y preserva las relaciones de los duros.
4.

-a

Lo mismo que -dpR .


mv ruta_fichero1 ruta_fichero2
Mueve y/o renombra ficheros o directorios.
mkdir nom_directorio
Crea un directorio.
rmdir nom_directorio
Elimina un directorio(tiene que estar vaco).
rm archivo
Elimina archivos .
1.

rm -r directorio

Borra los ficheros de un directorio recursivamente.Quietorrrrrrr...


2.

rm *.jpg

Borra todos los ficheros .jpg del directorio actual.

ln ruta_fichero ruta_enlace
Crea un enlace duro (con el mismo inodo,es decir mismo fichero con distintos nombres)
ln -s ruta_directorio ruta_enlace
Crea un enlace simblico (con diferente inodo,es decir se crea un nuevo fichero que apunta al
\"apuntado\",permitiendo enlazar con directorios y con ficheros de otro sistema de archivos)
diff [opciones] fichero1 fichero2
Compara ficheros.
1.

diff -w fichero1 fichero2

Descarta espacio en blanco cuando compara lneas.


2.

diff -q fichero1 fichero2

Informa slo de si los ficheros difieren,no de los detalles de las diferencias.


3.

diff -y fichero1 fichero2

Muestra la salida a dos columnas.


join [opciones] fichero1 fichero2
Muestra las lneas coincidentes entre fichero1 y fichero2.
wc fichero
Muestra el n de palabras,lneas y caracteres de un archivo.
wc -c fichero
Muestra el tamao en bytes de un fichero.
touch [-am][-t] fichero
Cambia las fechas de acceso (-a) y/o modificacin (-m) de un archivo.
1.

touch -am fichero

A la fecha actual.Si no existiese el fichero,se creara.


2.

touch -am -t 0604031433.30 fich


AAMMDDhhmm.ss ------- Si no se especifican los
segundos,tomara 0 como valor.

A la fecha especificada.Si no existiese el fichero,se creara.


3.

touch fichero

Usado sin opciones creara un fichero con la fecha actual.


split -b 1445640 mozart.ogg mozart
---------------|
V
|
nombre elegido para las partes,por defecto x
V
tamao en bytes de cada parte
Partir un archivo
cat mozart.* > mozart.ogg
Unir las distintas partes de un fichero cortado con split.
chown [-R] usuario fichero
Cambia el propietario de un fichero o directorio.
chgrp [-R] grupo fichero
Cambia el grupo de un fichero o directorio.
chmod [-R][ugo][+/- rwxs] fichero
Cambia los permisos de acceso de un fichero
+: da permisos -: quita permisos
u: propietario R: recursivo
g: grupo r: lectura ejemplo: chmod +x fichero, es lo mismo que: chmod
a+x fichero
o: otros w: escritura explicacin: a es la opcin por defecto.
a: todos x: ejecucin
s: los atributos suid y sgid,otorgan a un \"fichero\" los permisos de
su dueo o grupo respectivamente,cada vez que se ejecute,sea quien sea
el que lo ejecute.
Ejemplo: chmod +s /usr/bin/cdrecord
Cmo afectan los permisos a los directorios:
r permite ver su contenido(no el de sus ficheros)
w permite aadir o eliminar ficheros (no modificarlos)
x permite acceder al directorio.
Mtodo absoluto de determinar los permisos: chmod 760 fichero
explicacin:
------------

dueo
-----

grupo
-----

otros
-----

asci
binario
octal
paso de asci
a binario
paso de
binario
a octal

r w x
1 1 1
7
r w x
1 1 1
1 1 1
4+2+1
7

r w 1 1 0
6
r w 1 1 0
1 1 0
4+2+0
6

- - 0 0 0
0
- - 0 0 0
0 0 0
0+0+0
0

activar=1
desactivar=0
r activado=4
w activado=2
x activado=1

umask nnn
Establece qu permisos sern deshabilitados para los archivos nuevos.
umask
Muestra la configuracin actual de umask(normalmente 022)
umask 000
Deshabilita ninguno,es decir los activa todos.
Atencin,que la cosa manda huevos:
umask
umask
umask
umask

0 2
0 0
-----

2 =
0 =
-w---

chmod
chmod
-w- =
--- =

7 5 5
7 7 7 |
chmod rwx r-x r-x
chmod rwx r-x r-x

Una manera rpida de averiguar los permisos partiendo de umask es aplicando la siguiente
resta:
777-022=755 para el primer caso y 777-000=777 para el segundo.
Cuando umask es 022,los permisos normales de un directorio son 755 (rwx r-x r-x) producto de
la
resta 777-022.Sin embargo los de un fichero son 644 (rw- r-- r--).sto es as porque se
considera que lo normal para un fichero es que no sea ejecutable de manera que la resta para
averiguar los permisos de un fichero sera 666-022=644
Si escribo en una consola umask 000 y a continuacin \"mkdir nuevodirectorio\",ste tendr
todos los pemisos:
rwx rwx rwx (777) pero y los ficheros que creemos dentro de dicho directorio? pues stos
tendrn los permisos :
rw- rw- rw- (666) resultado de la resta 666-000=666
Os aclarais?... yo tamp
Para que la mscara de permisos permanezca de una sesin a otra tienes que ponerla en el
.bash_profile de tu home.

Imprimiendo

lpr fichero
Aade un documento a la cola de impresin.
lpr -P "nombre_impresora" fichero
Se especifica la impresora a la que queremos mandar el fichero a imprimir
lpr -#3 fichero
Realiza 3 copias del fichero.
lpr -P "hp" -o page-set=odd fichero
Imprime slo las pginas impares del fichero que hemos mandado a la impresora "hp"
lpr -o page-ranges=7-49 fichero
Imprime el intervalo de pginas 7-49 del documento
lpr fichero
Aade un documento a la cola de impresin.
lpq
Muestra los documentos en cola.
lprm
Cancela la impresin del documento activo.
lprm 3
Cancela la impresin del trabajo n 3.
pr +2 l70 -w 80 -h \"Comandos\" fichero
Preprocesador de impresin para formatear un archivo de texto.
-l70
Establece la longitud de la pgina de 70 lineas (66 por defecto).
-w 80
Establece el ancho de linea en 80 caracteres()72 por defecto).

-h \"Comandos\"
Establece \"Comandos\" como cabecera de cada pgina.
+2
Imprime a partir de la pgina 2.
-t
No imprimira cabeceras ni pies de pgina.
pr l70 -d comandos.txt | lpr
Una vez formateado el documento lo manda a la cola.

Nano

nano fichero
Leer,crear,editar un fichero de texto.
M = Esc/Alt | | Ctrl
Ctrl + x ----------Ctrl + o ----------Ctrl + r ----------Ctrl + w ----------Ctrl + y ----------Ctrl + v ----------Ctrl + k ----------cutbuffer.
Ctrl + u ----------Ctrl + l ----------Ctrl + j ----------Ctrl + m ----------cursor.
Ctrl + _ ----------M + g -------------M + i -------------M + x -------------M + p -------------M + m -------------M + r -------------M + e -------------M + b -------------M + s -------------M + h --------------

+ g ----------- Invocar el men de ayuda.


Salir de nano.
Escribir el fichero actual a disco.
Insertar otro fichero en el actual.
Buscar un texto en el editor.
Moverse a la pgina anterior.
Moverse a la pgina siguiente.
Cortar la lnea actual y guardarla en el
Pegar el cutbuffer en la lnea actual.
Redibujar la pantalla actual.
Justificar el prrafo actual.
Insertar un retorno de carro en la posicin del
Ir a un nmero de lnea en concreto.
Ir a un nmero de lnea en concreto.
Auto indentar habilitar/deshabilitar.
Modo ayuda habilitar/deshabilitar.
Modo Pico habilitar/deshabilitar.
Soporte para ratn habilitar/deshabilitar.
Reemplazar texto en el editor.
Expresiones regulares habilitar/deshabilitar.
Respaldar ficheros habilitar/deshabilitar.
Desplazamiento suave habilitar/deshabilitar.
Tecla \'smart home\' habilitar/deshabilitar.

M + y -------------- Coloreado de sintaxis habilitar/deshabilitar.


M + p -------------- Mostrar blancos habilitar/deshabilitar.

Formatos

[w3m,lynx,links,links2,elinks] fichero.html
Visualizan ficheros html.
tidy fichero.html
Analiza el cdigo de un documento html.
tidy -m fichero.html
Corrige,modificndolo,el cdigo del fichero html.
tidy -m -asxml fichero.html
Convierte un html a xml.
tidy -m -asxhtml fichero.html
Convierte un html a xhtml.
tidy -m -ashtml fichero.xhtml
Convierte un xhtml a html.
pstotext fichero.ps | less
Visualiza ficheros ps.
pstotext fichero.pdf | less
Visualiza ficheros pdf.
pdftops fichero.pdf fichero.ps
Convierte un fichero pdf a ps.
pdftotext -layout fich.pdf fich.txt
Convierte un fichero pdf a texto.
pdftotext -layout -htmlmeta fich.pdf fich.html

Convierte un fichero pdf a html.


htmldoc fich1.html fich2.html -f unidos.html
Une varios ficheros html en uno solo.
htmldoc --webpage fich1.html fich2.html -f suma.pdf
Convierte o une varios html en un pdf.
htmldoc --webpage fich1.html fich2.html -f suma.ps
Convierte o une varios html en un ps.
links2 fichero.html -> guardar con formato
Convierte un fichero html a texto.
antiword fichero.doc | less
Visualiza un fichero doc.
antiword -p folio fichero.doc > fichero.ps
Convierte un fichero doc a ps con tamao folio.
antiword -t -w 30 fichero.doc > fichero.txt
Convierte un fichero doc a texto.
-p tambin puede ser a3,a4,a5,b4,etc
-w anchura de la linea en caracteres
Notas:
pdftotext y pdftops vienen en el paquete xpdf-utils.
tidy se gua por el estndar de la W3C.
la opcin -layout hace que el documento de texto conserve lo mejor posible la disposicin fisica
del documento pdf:columnas,saltos de linea,etc
links2 convierte un html a texto,conservando totalmente la disposicin fsica del documento
html.

Empaquetado y compresin

7z a fichero.7z fichero
Comprimir.
7z e fichero_comprimido

Descomprimir.
7z x fichero_comprimido -o ruta_de_destino
Extraer donde indicamos.
7z l fichero_comprimido
Ver contenido.
7z t fichero_comprimido
Chequea el contenido.
Notas sobre 7zip
Comprime en formato 7z, zip, gzip, bzip2 y tar.
Si es un directorio lo hace recursivamente sin emplear la opcin -r
Con -t{tipo de fichero} tras las opcin \"a\" elegimos el formato de compresin:
7z a -tgzip fichero.gz fichero
Con -p protegemos con una contrasea el fichero:
7z a -tgzip -p fichero.gz fichero
Para comprimir ms de un archivo gz o bz2 antes hay que empaquetarlos en formato tar:
1)
7z a -ttar prueba.tar *.txt
2)
7z a -tgzip prueba.tgz prueba.tar
El formato 7z no guarda el dueo o grupo de un fichero por lo que | | no es recomendable para
copias de seguridad.
Es capaz de descomprimir zip,rar,gz,bz2,tar,cab,arj,cpio,deb,rpm aunque para rar necesita del
paquete 7zip-rar
zip -r fichero.zip fichero ;ejemplo: zip -r sinatra.zip ./sinatra/
Comprimir zip.
unzip archivo.zip
Descomprimir zip.
unzip -v archivo.zip
Ver contenido zip.
unrar e -r archivo.rar (e extrae en el directorio actual)

Descomprimir rar.
unrar x -r archivo.rar directorio de destino (x extrae donde se
indique)
Descomprimir rar.
unrar v archivo.rar
Ver contenido rar.
gzip -r fichero ; ejemplo: gzip -r ./sinatra
Comprimir gz.
gzip -d fichero.gz
Descomprimir gz.
gzip -c fichero.gz
Ver contenido gz.
bzip2 fichero ; ejemplo: bzip2 ./sinatra/*.ogg
Comprimir bz2.
bzip2 -d fichero.bz2
Descomprimir bz2.
bzip2 -c fichero.bz2
NOTA:
r equivale en todos los casos a recursivo
Mientras que zip comprime y empaqueta,gzip bzip2 slo comprimen ficheros,no
directorios,para eso existe tar.
Ficheros tar
tar -vcf archivo.tar /fichero1 /fichero2 ...(fichero puede ser
directorio)
Empaquetar.
tar -vxf archivo.tar
Desempaquetar.
tar -vtf archivo.tar
Ver contenido.

Para comprimir varios ficheros y empaquetarlos en un solo archivo hay que combinar el tar y el
gzip o el bzip2 de la siguiente manera:
Ficheros tar.gz (tgz)
tar -zvcf archivo.tgz directorio
Empaquetar y comprimir.
tar -zvxf archivo.tgz
Desempaquetar y descomprimir.
tar -zvtf archivo.tgz
Ver contenido.
Ficheros tar.bz2 (tbz2)
tar -jvcf archivo.tbz2 directorio
Empaquetar y comprimir.
tar -jvxf archivo.tbz2
Desempaquetar y descomprimir.
tar -jvtf archivo.tbz2
Ver contenido.
Opciones de tar:
-c : crea un nuevo archivo.
-f : cuando se usa con la opcin -c,usa el nombre del fichero
especificado para la creacin del fichero tar
cuando se usa con la opcin -x,retira del archivo el fichero
especificado.
-t : muestra la lista de los ficheros que se encuentran en el fichero
tar
-v : muestra el proceso de archivo de los ficheros.
-x : extrae los ficheros de un archivo.
-z : comprime el fichero tar con gzip.
-j : comprime el fichero tar con bzip2.

Comodines

(~) Sustituye el directorio home de manera que:

~/comandos.txt equivale a /home/paco/comandos.txt (si estamos en nuestro propio directorio)


~pepe/comandos.txt equivale a /home/pepe/comandos.txt (pepe es otro usuario)
(?) Sustituye un solo caracter.Ejemplos:
ls p?pe
mostrara todos los ficheros cuyos 1 3 y 4 caracteres fuesen p,p y e
ls ?epe
mostrara todos los ficheros de 4 caracteres y acabados en epe
(*) Sustituye cualquier sucesin de caracteres.Ejemplos:
ls .ba*
muestra todos los directorios o ficheros que comiencen con .ba
ls .*
muestra todos los archivos ocultos.
rm -r *
otra manera de desinstalar el sistema operativo.
rm *.jpg
borra todas las imgenes jpg
oggdec *.ogg
pasa de ogg a wav todos los ogg del directorio en el que estamos.
(;) Puesto entre dos comandos hace que tras el primero se ejecute el segundo.Ejemplos:
nano nuevo.txt ; cat nuevo.txt
nos abrir el editor nano para que escribamos lo que queramos en un nuevo archivo que se
llamar nuevo.txt y tras guardar y salir del editor,cat nos mostrar el contenido de lo que
acabamos de crear.
sleep 5m ; xmms cancin.mp3
tras 5 minutos se iniciar el xmms (ver ms abajo)

Alias

Es el mote que se le pone a un comando,de manera que la prxima vez que queramos
ejecutarlo
basta con llamarlo por su mote.Escribiendo alias sin parmetos nos aparecen la lista de alias
que tenemos.
Ejemplos:

Si ejecuto:
alias rm=\'mv --target-directory=/home/paco/.papelera_rm\'
le he puesto el mote rm a mv --target-directory=/home/paco/.papelera_rm
As la prxima vez que borre algo con rm, ir a parar al directorio .papelera_rm
Pero si lo escribo as: \\rm loquesea el alias ser ignorado.

Otro:
alias cdrip=\'cdda2wav -B -D /dev/hdd -s -x\'
cada vez que escriba en una consola cdrip me ripear el CD que tenga en /dev/hdd
Para que los alias permanezcan de una sesin a otra hay que ponerlos en el archivo
/home/.bashrc
nota1:el mote y el comando al que sustituye bien pegaditos al signo igual.
nota2:el comando entre comillas simples.

Conceptos de entrada -salida (I/O)(E/S)

stdin
entrada estandar para datos,el teclado (0)
stdout
salida estandar para los programas,la pantalla (1)
stderr
salida estandar para los mensajes de error,la pantalla (2)
Redirecciones,un redireccionador redirige la salida de un comando a un fichero
(<)
comando < fichero

(>)
Su sintaxix suele ser:
comando > fichero
(>>)
comando >> fichero
Ejemplos:
dpkg --get-selections > programas_instalados.txt
En vez de mostrar la salida por pantalla, nos la vuelca al fichero programas_instalados.txt
Si ese fichero ya exista ha sido sobreescrito su contenido,pero si usamos >> no borrar nada
y aadira su salida al final del fichero.Otro ejemplo con echo:
echo \"fin de la lista de programas instalados\" >>
programas_instalados.txt
en vez de mostrar en pantalla el texto,lo aade al final del fichero programas_instalados.txt
Para despistar los de Unix se han inventado el mismo caracter pero al revs:
cat < programas_instalados.txt
en donde programas_instalados hace,no de salida sino de entrada para cat el cual lo muestra
en pantalla ,ya que la salida natural de cat es la estandar,stdout o pantalla
Si queremos que la salida de error no aparezca en pantalla sino que vaya a un archivo de
texto:
comando 2> fichero.txt ejemplo: xmms 2> error_xmms.txt
Tuberas,Una tubera hace que la salida de un programa sea la entrada de otro.
(|) Su sintaxis suele ser:
comando | comando
Ejemplos:
cat programas_instalados.txt | grep mozilla
Aqu le hemos cambiado la salida natural a cat y se la hemos mandado a grep para que
busque la
palabra mozilla dentro del fichero programas_instalados.txt
pr l70 -d comandos.txt | lpr Una vez formateado el documento (pr) lo manda a la cola (lpr)

Renombrando

mp3rename opciones *.mp3


Renombra ficheros mp3 basndose en las etiquetas incluidas en los mp3 (id3tags)
Opciones:
-i Slo muestra los id3 de los ficheros.
-p pone un cero al track cuando es menor que 10.
-s Se usa para configurar las opciones por defecto,las cuales
quedarian definidas en el fichero ~/.mp3rename
&t ttulo
&b album
&a artista Hay que usarlas entrecomilladas para que no sean
interpretadas por el shell
&y ao
&k pista
Ejemplos:
1. mp3rename -s \'&a_&t\'
establecera artista_ttulo como predeterminadas de manera que
2. mp3rename *.mp3
renombrar los mp3 como: \"artista_ttulo.mp3\"
rename
Script de Perl que sirve para renombrar ficheros usando expresiones de Perl
rename \'y/A-Z/a-z/\' *.zip
Cambiamos todas las maysculas a minsculas(en este caso en el nombre de los .zip)
rename \'y/ /_/\' *.jpg
Renombramos el espacio en blanco por _ (en este caso en el nombre de los .jpg)
rename \'s/expresin //\' *.mp3
Eliminamos una expresion en el nombre de todos los .mp3 del directorio actual.
rename \'s/M.Oldfield//\' *.mp3
quitara \"M.Oldfield\" del nombre en todos los mp3 |
mrename \'ruta_fich.\' prefijo opcin

Aade un prefijo al nombre de los ficheros.


Opciones:
-c
-m

Copia los ficheros con un nuevo nombre.


Los renombra.

Ejemplo:
1. cd/ruta a los ficheros
debe ejecutarse en el directorio en donde se encuentren.
2. mrename \'*.jpg\' boda -m
aadira boda a los nombres de los jpg
mmv \";*.original\" \"#1#2.nuevo\"
Comando para cambiar el sufijo del nombre de los archivos.En su sintaxis #1 sustituye a la
primera expresin regular(;) y #2 a la segunda(*).Aunque con este comando el(;) representa
cualquier subdirectorio y es la forma de darle recursividad a la accin.
Ejemplos:
1. mmv \"*.cbz\" \"#1.zip\"
Renombrara todos los cbz a zip,conservandose el nombre que precede a .cbz
2. mmv \";*.cbz\" \"#1#2.zip\"
Renombrara todos los cbz a zip en el directorio actual y sus subdirectorios

Mtools

Coleccin de herramientas que permite acceder y manipular ficheros de MS-DOS sin


necesidad de un montaje previo. El uso de comodines refirindose a archivos del disquete
requiere que los nombres se entrecomillen para que no sean interpretados por el shell sino por
herramientas de mtools.Ms informacin:\"info mtools\"
minfo unidad:
Muestra informacin sobre el sistema de archivos MS-DOS de una unidad (a:)
mformat a:
Formatea un disquete,donde \"a:\" es \"dev/fd0\"

mbadblocks a:
Se emplea tras formatear para buscar errores.
mcd [a:]
Informa del directorio MS-DOS en curso o bin cambiamos a uno.
mdir -a a:
Muestra el contenido de un directorio MS-DOS.
mcopy
Copia de ficheros MS-DOS a/o desde Unix.
mcopy \"a:directorio/*\"
copiara el contenido de \"a:directorio/*\" al directorio en curso.
mcopy \"a:directorio/*\" ~/disquete
copiara el contenido de \"a:directorio/*\" al directorio \"disquete\".
mcopy *.txt a:bill
copiara al directorio \"bill\" del disquete todos los .txt.
mmd a:nuevo_directorio
Crea un directorio MS-DOS
mdel \"a:bill/*.txt\"
Elimina un fichero MS-DOS.
mrd a:bill
Elimina un directorio MS-DOS
mdeltree a:bill
Elimina recursivamente un directorio MS-DOS
mren \"a:direct1/*.txt\" a:direct2
Mueve o renombra ficheros MS-DOS
mmove a:directorio1 a:directorio2
Mueve o renombra ficheros o subdirectorios MS-DOS
Comandos relacionados:

mkfs.msdos /dev/fd0
Formatea en formato msdos un disquete.
fdformat /dev/fd0
Formatea en formato msdos un disquete y despus verifica el formateo.

GRFICOS

glxinfo
Informacin sobre la biblioteca grfica OpenGL y su extensin GLX para X-Window
direct rendering: YES = Salida de glxinfo que nos indica si tenemos activada la aceleracin 3D.
showrgb
lista los colores reconocidos por el sistema y su valor RGB.
bsdgames
Coleccin de juegos para consola.
sl
Tren pasando.
apt-get moo
La supervaca del apt ----------->
cowsay muuuuu
Una vaca hablando en su idioma
cowthink -p muuuuu??
Una vaca pensando. *
cowsay -f tux hola
Tux saludando.Ver /usr/share/cowsay/cows.
(__)
(oo)
/------ \\/

/ | ||
/\\---/\\
banner [texto]
Muestra un cartel en pantalla.
figlet [opciones] [texto]
Derivado del anterior pero ms versatil.Tambin se puede usar de forma interactiva.
-w valor ------------------------- Indicamos la anchura del texto,el
valor por defecto es 80
-t ------------------------------- La salida se mostrar en su mxima
anchura.
-c ------------------------------- La salida se mostrar centrada.
-f tipo -------------------------- Indicamos la tipografa de la
salida.Ver /usr/share/figlet/fichero.flf
small,shadow,mini,etc. Podemos indicar la ruta donde buscar las
fuentes: figlet -f ~/fuentes/konto
Ejemplo: #figlet -f small texto
_
_
| |_ _____ _| |_ ___
| _/ -_) \\ / _/ _ \\
\\__\\___/_\\_\\\\__\\___/
xwd -root -screen > pantalla.xwd
Capturar la pantalla.
sleep 5 ; xwd -root -screen > pantalla.xwd
Capturar la pantallas tras 5 segundos.
xwd > ventana.xwd
Capturar una ventana.
import -window root pantalla.ps (tambin jpg,png,gif,etc)
Capturar la pantalla en cualquier formato.
sleep 5s ; import -window root pantalla.png
Capturar la pantalla tras 5 segundos.
import -window - ventana.jpg
Capturar una ventana en cualquier formato.
xwud -in pantalla.xwd
Ver imgenes en formato xwd.

display imagen.xwd
Visualizar imgenes (includas las xwd).
animate remero.gif (tambin admite delay)
Visualizar gif animados.
ascii/color
cacaview imagen.jpg (tambin png,gif,etc)
ascii
asciiview imagen.jpg (tambin png,gif,etc)
Visualizar imgenes en consola.
identify imagen.gif
Ver las propiedades de una imagen.
pdfimages fichero.pdf nombre_para_las_imgenes: pdfimages Xmen.pdf
xmen
Extraer las imgenes de un pdf
convert fichero.pdf nombre_y_formato_imgenes:convert fichero.pdf
imagen.png
Extraer las imgenes de un pdf
convert *.jpg catlogo.pdf
Crear un catlogo pdf con imgenes.
display \"vid:*.jpg\"
Crear un ndice grfico con miniaturas.
convert imgen_color.jpg -monochrome imgen_b/n.jpg
Convertir una imagen a blanco y negro.
convert imagen_original.ppm imagen_nueva.jpg
Cambiar el formato de UNA imagen.
convert -sample 100x50 imagen_original.jpg imagen_nueva.jpg
Cambiar las dimensiones de UNA imagen.
mogrify -format jpg *.ppm (convierte a .jpg todas las imgenes .ppm)
Cambiar el formato de VARIAS imgenes.

mogrify -format png -sample 20%x20% *.jpg


Crear miniaturas de VARIAS imgenes.
Miniaturiza nuestras imgenes jpg cambindoles el formato.
ATENCIN porque de no cambirselo nos eliminara las originales
convert -delay 15 imag1.jpg imag2.jpg imag3.jpg remero.gif
Crear un gif animado con varios jpg.
-delay 15
Pausa entre imgenes (centsimas de segundo).
convert remero.gif -adjoin remeros.jpg
Extraer los fotogramas de un gif animado.
Aadir texto a una imagen :
columna_

_fil

a
|
|
convert -font courier -fill yellow -pointsize 25 -draw \'text 100,250
remeros\' imagen.jpg imagen_con_txt.jpg
-------------------- -----------------------|
|
|
posicin del
texto
|
V
V
V
v
fuente
color de fuente tamao de la
fuente
|texto
|si ste tuviese ms de una palabra
|habra que ponerlo entre dobles comillas
Notas:
xwd viene en el paquete xbase-clients.
pdfimages viene en el paquete xpdf-utils.
las cacas viene en el paquete caca-utils.
asciiview viene en el paquete aview
aafire viene en el paquete libaa-bin
convert,animate,identify,mogrify import y display vienen en el paquete imagemagick
libaa es una libreria que nos permite ver las imgenes,incluso las animadas,mediante
caracteres ascii.
libcaca permite lo mismo que libaa pero en color-

MULTIMEDIA

Adaptado para un kernel 2.4.26 con emulacin SCSI con la nomenclatura :


#cdrecord -scanbus:
0,0,0 0) \'_NEC \' \'DVD_RW ND-2500A \'
0,1,0 1) \'HL-DT-ST\' \'DVD-ROM GDR8162B\'

grabadora
lector

/dev/sr0
/dev/sr1

Nota:
Salvo cdrecord y dvdrecord los dems se pueden usar en un kernel sin emulacin SCSI.
Para usar cdrecord y dvdrecord con un kernel 2.6 ,sin emulacin SCSI, podemos probar a
realizar un scanbus sobre nuestro dispositivo grabador para ver si lo detecta:
# cdrecord -scanbus dev=/dev/hdc
en cuyo caso lo podremos usar sin ms,sustituyendo la nomenclatura propia de cdrecord
dev=0,0,0 por dev=/dev/hdc (ver nota 1 ms abajo)

Imgenes

mkisofs -R -J -T -o imagen1.iso fichero1


Crea una imagen de un fichero del disco duro.
dd if=/dev/cdrom of=imagen.iso
Crea una imagen del cdrom y la vuelca en el fichero imagen.iso
cat /dev/cdrom > debian.iso
nrg2iso imagen.nrg imagen.iso
Convierte una imagen nrg a iso
bin2iso imagen.cue
Convierte una imagen bin/cue a iso
ccd2iso imagen.img imagen.iso
Convierte una imagen img/ccd/sub/cue a iso
mdf2iso imagen.mdf imagen.iso
Convierte una imagen mdf/mds a iso

mount -t iso9660 -o loop imagen.iso p.montaje


Monta una imagen.
umount p.montaje
Desmontar una imagen.
md5sum archivo.iso > archivo.iso.txt
Generar la suma control MD5 de un archivo.
md5sum -w -c archivo.iso.txt
Verificar la suma control MD5 de un archivo.
archivo.iso y archivo.iso.txt deben estar en el mismo directorio.

Grabacin de CD

cdrecord -v dev=0,0,0 fs=16M speed=30 imagen.iso


Grabar un CD de datos/imagen
cdrecord -v dev=0,0,0 fs=16M speed=30 -eject -isosize /dev/sr1
Copiar un CD de datos/imagen.
wodim -v dev=/dev/cdrw isoimage.iso
Copiar una imagen de disco a CD. La ruta puede variar segn el caso. e recomienda migrar
desde cdrecord a su fork, wodim.
cdrecord -v dev=0,0,0 fs=16M speed=30 -pad -audio *.wav
Grabar un CD de audio (cda)
cdrdao copy -v 2 --device 0,0,0 --source-device 0,1,0 --reload \\
--eject --on-the-fly --fast-toc --paranoia-mode 0
Copiar un CD audio (cda)
cdrecord -v dev=0,0,0 fs=16M speed=30 -pad -audio *.wav -data
imagen.iso
Grabar CD mixto.

1 sesin
dnde acab la sesin
en el siguiente paso.
creamos nueva imagen
imagen2.iso fichero2
2 sesin

cdrecord -multi imagen1.iso (ver nota 1)


cdrecord -msinfo nos da un n que usaremos
mkisofs -R -J -T -C n -M /dev/sr0 -o
cdrecord -multi imagen2.iso

Grabar CD multisesin
cdrecord -v blank=fast (ver cdrecord blank=help)
Borrar un CDRW.
cdrecord -v -eject speed=8 blank=all dev=1,1,0
Borrar un CDRW por completo, y no slo la tabla de particiones (tardar ms que en el caso
anterior). Le pedimos que nos muestre los detalles con -v (por ejemplo, el progreso del
borrado) y con -eject indicamos que el CD ser expulsado al finalizar el proceso
wodim -v dev=/dev/cdrw -blank=all
Borrar un CDRW por completo.

Grabacin de DVD

growisofs -Z /dev/sr0 -R -J archivo (growisofs llama a mkisofs)


Grabar un DVD de datos/imagen.
growisofs -M /dev/sr0 -R -J archivo (-M aade ms datos al dvd)
Grabar DVD multisesin.
growisofs -dvd-compat -Z /dev/sr0=imagen.iso
Grabar una imagen ya creada.
dvdrecord -v dev=0,0,0 blank=fast (ver dvdrecord blank=help)
Borrar un DVDRW.
dvdbackup -M -i/dev/sr0 -o/home/paco/copia_dvd/
vobcopy -i /dev/sr0 -m -o /home/paco/copia_dvd/
Ripear un video DVD.

Notas:
1.Se pueden establecer valores predeterminados para dev,el dispositivo de grabacin;
fs,el tamao del bufer(nunca menor que el de la grabadora) y speed,la velocidad de
grabacin,indicndolo en el fichero /etc/default/cdrecord y simplificando de esta
manera la sintaxis.
2.growisofs viene en el paquete dvd+rw-tools.
3.dvdrecord viene en el paquete dvdrtools.

Ripeo de un CD

cdda2wav -B -H -D /dev/sr1 -s -x
extrae disco completo en archivos wav separados.
cdda2wav -H -D /dev/sr1 -s -x -t 5
extrae el track n 5
cdparanoia -B -d /dev/sr1
extrae disco completo en archivos wav separados.
cdparanoia 5 -d /dev/sr1
extrae el track n 5
cdparanoia -- "1-"
extrae el disco completo desde el track n 1 en un solo archivo wav
abcde -d /dev/sr1 -N -x -o mp3
extrae disco completo en archivos mp3 separados.
abcde -d /dev/sr1 -N -x -o mpc
extrae disco completo en archivos mpc separados.
abcde -d /dev/sr1 -N -x -o ogg
extrae disco completo en archivos ogg separados.
abcde -d /dev/sr1 -N -x -o ogg tracks 1-3 5
extrae las tres primeras canciones y la quinta.
-d indica el dispositivo
-N actua con las opciones por defecto,sin preguntar

-x expulsa el cd al acabar
-o tipo de archivo resultante
abcde -1 -M -o flac
extrae el CD en un solo archivo flac con su correspondiente cuesheet
Nota:
abcde conserva los id3 de los temas al pasarlos al disco duro,es decir artista,ttulo,etc.Requiere
de oggenc,lame,cdparanoia o cdda2wav,id3v2 y cd-discid y opcionalmente normalize.

Conversiones

lame -h -m j tema.wav
Pasar de wav a mp3 (-b bitrate -h mayor calidad; -m j join stereo)
lame -h -m j --nogap *.wav
Pasar lote de wav a mp3
oggenc -b 128 -q 5 tema.wav
y 10)
oggenc *.wav
fichero ogg)
oggenc -a -l -t *.wav
respectivos ogg)

(-b bitrate ;-q calidad (valores entre 0


(convierte todos los wav en un solo
(convierte todos los wav en sus

Pasar de wav a ogg


oggdec tema.ogg
Pasar de ogg a wav (oggdec *.ogg para convertir un lote)
lame -h --decode tema.mp3 tema.wav
Pasar de mp3 a wav
mplayer -ao pcm fichero.asf
Pasar de asf/wma a wav

Otros

soxmix tema1.ogg tema2.ogg mezcla.ogg (tambin mp3,wav,au,etc)


Unir varios ficheros de audio.
normalize-audio *.wav
normalize-mp3 *.mp3
normalize-ogg *.ogg
Ajustar el volumen de uno o varios ficheros de audio.
Nota:
oggdec y oggenc vienen en el paquete vorbis-tools
Las conversiones entre formatos comprimidos las he descartado pues hay una prdida notoria
de calidad.

Reproduccin

aafire
Fuego animado.
cacafire
Fuego animado a color.
cacademo
Demostracin de arte ascii a color.
cacaball
cacamoin
cacaplas
Variados grficos animados a color.
bb
Impresionante demostracin audiovisual de arte ascii.
aatv
Programa para ver la tele mediante cdigo ascii.
xaos -driver aa

Indicamos a xaos que use las librerias aalib para visualizar fractales.
aaxine video.wmv
mplayer -vo aa video.avi
mplayer -vo caca video.mpg
mplayer video.avi
mplayer -vcd 1
mplayer -dvd-device /dev/hdd dvd://1

(en ascii)
(en ascii con color)
(tambin mpg,wmv,etc)
(para ver un vcd)
(para ver un dvd)

Ver vdeo en consola.


play tema.ogg
mocp
ncurses)
tcd
cdplay -d /dev/hdd

(digital)
(digital con
(cd con ncurses)
(cd)

Escuchar audio.
mplayer -cache 100
mms://...
(protocolo mms)
mplayer -cache 100 -playlist
http://ruta_del_archivo.asx
(protocolo mms)
mlayer http://... ;ejemplo:mplayer
http://147.156.27.128:8004
(shoutcast-icecast)
somaplayer http://... ;ejemplo:somaplayer
http://147.156.27.128:8004
(shoutcast-icecast)
Ecuchar la radio.
mimms -t 20 -o radio3_uned.asf mms://...
-t tiempo de grabacin en mnts.
-o nombre que queremos para la grabacin.

mms (asf/wma)

streamripper http://... -l
3600
shoutcast(mp3/ogg)
-l tiempo de grabacin en sgs.
Grabar emisiones.
Cmo conseguir la direccin mms:
Una vez en la web de la radio que nos gusta,por ejemplo radio3,nos vamos al enlace que nos
indican para el comienzo del streaming y copiamos su ruta o bin nos bajamos dicho
enlace,que es un fichero asx que contiene las direcciones mms,lo abrimos con un editor de
texto y las buscamos.
Pero si el enlace es cdigo javascript al aparecer la ventana emergente, miramos su cdigo
fuente y buscamos (Ctrl+f) por asx o mms y ah estarn.
Cmo conseguir direcciones shoutcast-icecast:
aqu: http://www.shoutcast.com/ y aqu: http://www.icecast.org
Notas:
Con -vo le indicamos al mplayer el driver de salida de video,en este caso aa o caca para verlo
en ascii.

Con \"mplayer -vo help\" podemos ver los drivers de salida de video disponibles.
Si tenemos un enlace de nuestro dispositivo a /dev/dvd, podemos simplificar la sintaxises,ya
que es el sitio por defecto en el que mira el mplayer.
aaxine viene en el paquete xine-ui de sid y lee los mismos formatos de video que xine.
play y soxmix vienen en el paquete sox.
cdplay viene en el paquete cdtool.
mocp viene en el paquete moc.
somaplayer y mplayer pueden igualmente reproducir audio digital y audio cd.

SISTEMA

Varios

man comando
man --help
info comando
xman
Muestra informacin sobre el comando.
help comando
Muestra informacin sobre un comando interno del shell(bash).
apropos palabra_clave
Busca dentro de las descripciones de man la palabra clave.
apropos -e palabra_clave
Busca la palabra exacta.
finger
Muestra los usuarios conectados en tiempo real al sistema. Necesita instalarse como paquete
aparte (finger).
last
Muestra los ltimos usuarios que se conectaron al sistema y las fechas y horas de conexin
(til para analizar intrusiones)

cal -my
Muestra el calendario.
uptime
Muestra la hora,tiempo de funcionamiento,n usuarios conectados y la carga media.
tzconfig/tzselect
Programas interactivos que permiten selecionar la zona horaria.
grep UTC /etc/default/rcS
Comprobamos si el reloj hardware mantiene la hora local o universal (UTC)
date
Muestra la fecha y hora del sistema,en formato local.
date -u
Muestra la fecha y hora en formato UTC(Tiempo Universal Coordinado).
hwclock --show
Muestra el reloj harware (tambin llamado reloj de la BIOS y reloj CMOS).
hwclock -systohc
Pone el reloj harware a la hora del sistema.
ntpdate servidor NTP
Ajusta directamente la hora del sistema sincronizndola con la de un servidor NTP.
ntpd
Demonio que ajusta el reloj de forma gradual sincronizndolo con servidores NTP.
Como obtener Ayuda en GNU/LinuxarribaLista de comandos de GNU/Linux

Lista de comandos de GNU/Linux (II)


$ watch -n tiempo comando
Ejecuta un comando cada x segundos (2 por defecto).

$ watch -n 1 date
Igual que date pero en este caso veramos correr los segundos.

$ clear
Limpia la pantalla.

$ reset
Restaura la Consola.til para cuando empiezan a aparecer caracteres raros.

$ uname -a
Versin del kernel

$ hostname
Visualiza el nombre de la mquina.

$ tty
Muestra el nombre de fichero de la terminal conectada a la salida estndar.

# /etc/init.d/servicio stop
Para un servicio/demonio

# /etc/init.d/servicio start
Inicia un servicio/demonio.

# /etc/init.d/servicio restart
Reinicia un servicio/demonio.

$ startx
Arranca el entorno grfico con el gestor especificado en el .initrc de tu home.

$ startx /usr/bin/X11/icewm
Arranca el entorno grfico con el icewm (si es que no fuera el predeterminado)

$ Ctrl+C
Termina un proceso.

$ Ctrl+Z
Suspende temporalmente la ejecucin de un programa.

$ Ctrl+S
Para la transferencia de datos a la terminal.

$ Ctrl+Q
Resume,reinicia la tranferencia de datos

$ Ctrl+R
Entra en modo de busqueda incremental de linea de comandos, ej: Si entras en el modo y
escribis "ls" (sin comillas) te completar la entrada ms reciente que empiece por "ls", para ir
rotando por la entradas antereriores seguir presionando Ctrl+R, para terminar presionar alguna
flecha.

$ Ctrl+L
Limpia la pantalla.

$ Ctrl+O
Ejecuta un comando (como si se hubiera presionado ENTER) pero vuelve y deja el comando
escrito en el prompt.

$ Ctrl+K
Borra desde donde est el cursor hasta el final.

$ Ctrl+W
Borra desde donde est el cursor hasta el inicio de la palabra debajo de l.

$ Ctrl+E
Salta al final de lo que se est escribiendo.

$ Ctrl+Alt+F2
Salir del entorno grfico a un terminal.(Fn segn gettys activados en /etc/inittab)

$ Ctrl+Alt+Supr
Estando en una terminal reinicia (si no se indica otra cosa en /etc/inittab)

$ ./script
Ejecuta un script de shell.

$ java -jar fichero.jar


Ejecuta un programa java.

$ consolechars -f fuente.psf.gz
Cambiar la fuente de la consola.Las fuentes se encuentran en /usr/share/consolefonts/

$ base-config
Configura el sistema base.

$ gpm
Programa que da soporte de ratn a la consola y aplicaciones que corren sobre ella.

$ reportbug
Programa en modo texto para enviar bugs a Debian

$ exit
Termina la ejecucin del programa en curso.

# init 0
Apaga la mquina.

# init 6
Reinicia la mquina.

# shutdown -t1 -h now


Apaga la mquina .

# shutdown -t1 -r now


Reinicia la mquina.

$ su
Entrar a la sesin como root u otro usuario.

# su nom_usuario
Estando como root entramos como otro usuario.

$ passwd
Cambio de contrasea.

$ who -a -H
Muestra informacin de los usuarios conectados al sistema.

$ users
Muestra informacin de los usuarios conectados al sistema.

$ id
Muestra informacin del usuario actual,(grupos a los que pertenece,uid,gid)

$ groups
Muestra los grupos a los que pertenece un usuario.

# adduser usuario
Crea un nuevo usuario.

# adduser usuario grupo


Aade un usuario existente a un grupo ya existente.

# adduser --no-create-home usuario


Crea un usuario pero sin directorio personal(home).

# addgroup grupo
Crea un nuevo grupo.

# deluser usuario
Elimina un usuario.

# deluser usuario grupo


Elimina un usuario del grupo especificado.

# deluser --remove-home usuario


Elimina un usuario y su directorio home.

# delgroup grupo
Elimina un grupo.

# delgroup grupo --only-if-empty


Elimina un grupo slo si no tiene ningn usuario.

# usermod -l nuevo_login
Cambia el nombre del usuario. Sera bueno combinarlo con -d

# usermod -d nueva_home -m login


Cambia el home al usuario,crendolo si no existiese y transfiriendo el contenido.

# usermod -e 2006-04-14 login


Fecha en que la cuenta del usuario ser desactivada,expresada en formato AAAA-MM-DD

# groupmod -n nuevo_nombre grupo


Cambia el nombre de un grupo.

Usando el gestor de arranque (NTloader) de windows:


Se copian los sectores de arranque de las particiones al archivo debian_sarge.lnx:
# dd if=/dev/hda2 of=/debian_sarge.lnx bs=512 count=1 (tenemos sarge
en hda2 con lilo o grup)

# dd if=/dev/hda5 of=/debian_etch.lnx bs=512 count=1 (tenemos etch en


hda5 con lilo o grup)
los archivos debian*.lnx se copian en la particin raiz de windows y al archivo boot.ini de
windows,oculto y de slo lectura,le agregamos las siguientes lineas dentro de su seccin
[operating systems]:
C:\debian_sarge.lnx="Debian Sarge"
C:\debian_etch.lnx="Debian Etch"
Atencin:
cada vez que modifiquemos los sectores de inicio o gestores de
arranque de las particiones linux habr que volver a realizar lo
anterior ya que los ficheros .lnx habrn quedado
desactualizados.

5.b. Procesos y memoria


Memtest86+
Realiza una comprobacin del estado de la memoria si optamos a ello desde los gestores de
arranque, para lo cual necesitamos editarlos aadiendoles su ruta.
En lilo.conf:

image = /boot/memtest86+.bin
label = memtest86+

En menu.lst:

title memtest86+
root
(hd0,0)
kernel /boot/memtest86+.bin

suponiendo que /boot est en la particin raiz (/)

# make-memtest86+-boot-floppy
Crea un disquete de arranque desde el que se ejecutar memtest86+

$ free -m -s 3
Muestra el uso de memoria.

$ ps aux
Muestra informacin de los procesos en curso.

$ top
Muestra informacin de los procesos en curso.(tecla z colorea los activos)

$ pstree
Muestra los procesos en curso en rbol.

$ pidof comando
Busca el ID de un programa que se est ejecutando.

$ killall proceso
Para un proceso.

$ strace comando
Muestra las llamadas al sistema originadas por un proceso.

$ fuser -v archivo
Muestra los procesos que estn usando un fichero o directorio.

$ lsof | less
Lista los ficheros abiertos por los procesos, en realidad descriptores de ficheros

$ lsof -c comando
Lista los ficheros abiertos por un proceso.

$ lsof +D /home/paco
Lista los procesos que estn usando mi directorio.

$ lsof -i :60627
Muestra que proceso se encuentra detrs del puerto 60627 (aunque est a la escucha)

$ nohup comando &


Lanza un proceso de forma que si cerramos el shell,el proceso contina ejecutandose

$ comando &
Ejecuta un comando en segundo plano(background),permitiendonos seguir usando el promp.

$ jobs
Lista los procesos en segundo plano identificndolos con un n de tarea.

$ fg n
Pasa a primer plano (foreground)un proceso

$ bg
Pasa a background un proceso que hemos suspendido temporalmente tecleando Ctrl-z

$ nice -n prioridad comando


Ejecuta un comando con una prioridad determinada(0 por defecto).
Ejemplo:

$ nice -n -10 cdrecord


esos valores,de mayor a menor, son -20...+20, slo root puede establecer valores negativos.

$ renice prioridad PID_del_proceso


Cambia la prioridad de un proceso en marcha

$ sleep 5 comando
Retarda 5 segundos la ejecucin de un comando, m para minutos y h para horas.

$ at [-f script] [tiempo]


Ejecutar un script a una hora y/o fecha.
Ejemplo
$ at -f script 15:23
formas de indicar el tiempo:
$ at -f script 15:23
hoy a las 15:23

$ at -f script 15:23 01.23.06


El 01.23.06 a las 15:23

$ at -f script now + 23 minutes


Dentro de 23 minutos, puede ser minutes, hours, days, weeks

$ at [tiempo]
sta forma nos abre un promp interactivo.
Ejemplo:
$ at 15:00
Abre el promp de at
$ at > comando
Ingresamos el comando/os.
$ ctrl+d
Salimos de at

$ atq
Muestra,numeradas,la lista de tareas programadas.

$ atrm n
Eliminar una tarea identificada por su n.

$ batch
Se emplea de las mismas formas que at,solo que en este caso, el script o comando se
ejecutar slo si la media de carga de la CPU es inferior al 80%.

5.c.-Disco duro
Nomenclatura de dispositivos
------------------------------------------------------| Nomenclatura de discos en linux|
IDE
|
SCSI
|
| -------------------------------|-----------|----------|
| Disco maestro del primer bus | /dev/hda | /dev/sda |
| Disco esclavo del primer bus | /dev/hdb | /dev/sdb |
| Disco maestro del segundo bus | /dev/hdc | /dev/sdc |
| Disco esclavo del segundo bus | /dev/hdd | /dev/sdd |
-------------------------------------------------------

Designacion de particiones

|
|
|
|
|
|

---------------------------------------disco /dev/hda |primarias | lgicas


|
----------------|----------|-----------|
1 particin
|/dev/hda1 | /dev/hda5 |
2 particin
|/dev/hda2 | /dev/hda6 |
3 particin
|/dev/hda3 | /dev/hda7 |
4 particin
|/dev/hda4 | /dev/hda8 |
----------------------------------------

$ du -h fichero
Muestra espacio ocupado en disco,del directorio en curso si no indicamos nada.

$ tree -a -s -L 2
tree es un programa que muestra lo mismo que du en forma de rbol.

$ df
Muestra informacin sobre particiones montadas, con la opcion -h se muestra en formato
Human Readable (e.g. KB, MB, GB).

# cfdisk
Muestra informacin sobre particiones.Herramienta para particionar en ncurses.

# fdisk -l
Muestra informacin sobre particiones.Herramienta para particionar.

# mount
Vemos el listado de dispositivos montados.

# mount punto_montaje
Monta un dispositivo.(ya establecido en el fstab)

# umount punto_montaje
Desmonta un dispositivo.(ya establecido en el fstab)

# mount -t sistema_archivo dispositivo punto_montaje


Monta un dispositivo. Ejemplo:
# mount -t ext3 /dev/hda2 /mnt
Donde se monta la segunda particin primaria del dispositivo /dev/hda, la cual es de tipo ext3,
en el directorio /mnt

# umount /dev/hda2
Desmonta un dispositivo

# fsck /dev/hdax
Chequea y repara el sistema de archivos de una particin NO MONTADA.

# fsck.ext2 -vpf /dev/hdx


Chequea y repara el sistema de archivos de una particin ext2 NO MONTADA.

# fsck.ext3 -vpf /dev/hdx


Chequea y repara el sistema de archivos de una particin ext3 NO MONTADA.

# mkfs.ext2 /dev/hdb1
Crea un sistema de ficheros Linux ext2 en la primera particin del segundo disco duro.

# mkfs.ext3 /dev/hdb1
Crea un sistema de ficheros Linux ext3 en la primera particin del segundo disco duro.

# mkfs.ext3 /dev/fd0
Crea un sistema de ficheros Linux ext3 en el floppy.

# mkswap /dev/hda2
Crea un sistema de ficheros Linux swap (intercambio) en hda2.

# resize2fs -f /dev/hda2
Reajusta el tamao del sistema de ficheros despus de haber ampliado/reducido la
particin/volumen

# tune2fs -O ^has_journal /dev/hda2


Convierte hda2 de ext3 a ext2

# tune2fs -j /dev/hda2
Convierte hda2 de ext2 a ext3

# tune2fs -C 255 /dev/hda1


Fuerza a que se revise /dev/hda1 en el prximo reinicio (con fsck).
til para revisar la particin raz, que no se puede desmontar.

# quota
Programa que gestiona/limita el uso que hacen del disco los usuarios/grupos.

5.d.-Entorno
$ locale
Muestra la zona geogrfica configurada.

# dpkg-reconfigure locales
Reconfigura los locales.

# dpkg-reconfigure console-data
Reconfigura el teclado.

$ loadkeys ruta_mapa_teclado.gz
Carga el mapa de teclado que le indicamos,que estar en:/usr/share/keymaps

$ locale charmap
Muestra el cdigo de caracteres en uso.

$ set
Muestra las variables locales definidas

$ env
Muestra las variables de entorno definidas.

$ export
Muestra las variables de entorno declaradas.

$ export VARIABLE=valor
Aadimos una variable.Con export EDITOR=nano establecemos nano como editor
predeterminado.

$ export VARIABLE=
Eliminamos una variable dejando en blanco su valor. Para que las variables permanezcan de
una sesin a otra hay que ponerlas en el archivo .bashrc de tu home.

5.e-Instalacin de software
Dpkg
Herramienta de nivel medio para instalar, construir, borrar y gestionar los paquetes de Debian

# dpkg -i paquete
Instalacin de paquetes .deb

# dpkg -r paquete
Desinstala un paquete.

# dpkg --purge paquete


Desinstala un paquete y sus archivos de configuracin.

# dpkg --force -r paquete


Fuerza la desinstalacin de un paquete.Ms informacin: dpkg --force-help

# dpkg --force-all -r paquete


Fuerza an ms la desinstalacin de un paquete.Su uso puede daar el sistema.

# dpkg -c paquete
Muestra el contenido (ficheros) de un paquete.

# dpkg -L paquete
Muestra todos los ficheros que se instalaron con un paquete.

# dpkg -S fichero
Muestra a qu paquete pertenece un fichero.

# dpkg --get-selections
Muestra todos los paquetes instalados en el sistema.

# dpkg-reconfigure paquete
Reconfigura paquetes instalados.Ejemplo: dpkg-reconfigure locales

Apt
Herramienta Avanzada de Empaquetamiento (Advanced Packaging Tool)
que gestiona el sistema de paquetes de Debian instalando,desinstalando, actualizando y
configurando los mismos.
La sintaxis es:
# apt-get [opciones] accin

# apt-get update
Descarga y analiza la lista de nuevos paquetes desde los repositorios del sources.list.

# apt-get upgrade
Actualiza todos los paquetes instalados(no instala ni elimina paquetes).

# apt-get dist-upgrade
Actualiza todos los paquetes resolviendo las dependencias.

# apt-get install paquete/s


Instalacin de paquetes por red,con resolucin de depencias.

# apt-get -s accin
Simula,sin llevar a cabo la accin. Por ejem: apt-get -s install paquete.

# apt-get -d accin
Slo descarga los paquetes deb en /var/cache/apt/archives/ sin instalar o desinstalar nada

# apt-get install --reinstall paquete


Reinstala un paquete.

# apt-get remove paquete/s


Desinstala un paquete.

# apt-get remove --purge paquete/s


Desinstala un paquete y sus archivos de configuracin.

# apt-get clean
Elimina todos los paquetes (.deb) descargados y almacenados en /var/cache/apt/archives/

Apt-cache
Utilidad que manipula la cach de paquetes de APT en busca de informacin

$ apt-cache search palabra


Busca en los paquetes y en las descripciones la palabra.

$ apt-cache show paquete


Muestra la descripcin completa del paquete

$ apt-cache showpkg paquete


Muestra su relacin con otros paquetes.

$ apt-cache depend paquete


Muestra las dependencias del paquete

$ apt-cache rdepend paquete


Muestra las dependencias inversas del paquete(cuales dependen de l)

Apt-build
Herramienta que no se limita a instalar un paquete deb sino que compila el tarball, crea el
paquete deb y lo instala, quedando as integrado con apt. Lo que se consigue compilando es

optimizar la ejecucin de los programas en nuestro procesador, de hecho al instalarse pregunta


por el tipo de procesador del sistema. Tiene las mismas opciones que apt como update,
upgrade, install
Ejemplo:
# apt-build install mplayer
Instala mplayer (el paquete del ejemplo no est escogido al azar?)
y alguna ms como word para recompilar todo. En este ltimo caso hay que crear una lista con
los paquetes a recompilar en /etc/apt/apt-build.list
para lo cual nos puede servir el siguiente comando:
# dpkg --get-selections awk '{if ($2 == "install") print $1}' >
/etc/apt/apt-build.list
Es aconsejable eliminar de dicha lista paquetes delicados como gcc, libc6

Aptitude
Gestor de paquetes con algunas mejoras con respecto a apt como la instalacin automtica de
los paquetes que sin ser dependencias forman parte de los sugeridos o recomendados y la
autodesinstalacin de los paquetes instalados en su momento como dependencias de otros
(automticamente en contraposicin a manualmente),si ningn otro paquete|
los necesitase.Se puede usar de forma interactiva si no se especifica ninguna accin o desde
la linea de comandos,usando las mismas opciones y acciones de apt.La sintaxis es: aptitude
[opciones] accin ejem.: aptitude -s purge firefox

# aptitude update
Descarga y analiza la lista de nuevos paquetes segn los repositorios del sources.list.

# aptitude safe-upgrade
Realiza una actualizacin segura (no instala ni elimina paquetes).

# aptitude full-upgrade
Realiza una actualizacin,instalando y eliminando paquetes si fuera preciso

# aptitude install paquete/s


Instala/actualiza paquetes

# aptitude reinstall paquete/s


Reinstala un paquete

# aptitude remove paquete/s


Elimina paquetes

# aptitude purge paquete/s


Elimina paquetes y sus ficheros de configuracin

# aptitude download paquete/s


Se limita a descargar los paquetes deb al directorio en el que estamos.

# aptitude hold paquete/s


Bloquea paquetes

# aptitude unhold paquete/s


Desbloquea un paquete

# aptitude unmarkauto paquete/s


Desmarca paquetes como instalados manualmente

# aptitude markauto paquete/s


Marca paquetes como instalados manualmente (elegidos por nosotros)

$ aptitude search expresin


Busca un paquete por nombre y/o expresin

$ aptitude show paquete


Muestra informacin detallada de un paquete

$ aptitude clean
Elimina los ficheros .deb descargados
Opciones:
-s
Simula las acciones, pero en realidad no las realiza.

-d
Slo descarga paquetes, no instala o desinstala nada.

-p
Siempre pide confirmacin de las acciones

-y
Supone que la respuesta a preguntas simples del tipo s/no es s

-f
Trata de arreglar paquetes rotos de forma agresiva.

-V
Muestra la versin de los paquetes a instalar.

-D
Muestra las dependencias de los paquetes cambiados automticamente.

-t rama
Establece la rama de Debian desde la que se instalan los paquetes

Deborphan
Muestra los bibliotecas (paquetes lib) hurfanas

-a
Muestra todos los paquetes hurfanos (que no dependen de ningn otro).

-d
Muestra tambin sus dependencias.

-n
Muestra los paquetes \"sugeridos\" y \"recomendados\" como dependencias.

# deborphan -A paquete
Ignora un paquete(buena opcion si tenemos mala memoria y queremos conservar un hurfano)

# deborphan -R paquete
Cancela la orden anterior,si el paquete es hurfano lo mostrar.

# deborphan -L
Lista los paquetes ignorados

Orphaner
Interfaz grfica de deborphan, sin parmetros slo mostrar paquetes lib.
-a
Muestra todos los paquetes hurfanos del sistema.

Editkeep
Interfaz grfica que gestiona o edita la lista de paquetes ocultos de deborphan.

Debfoster
Programa que mantiene una lista de los paquete que fueron instalados como dependencias de
otros.La primera vez que se ejecuta pregunta si quieres conservar los paquetes
instalados(pregunta por todos),Puede ejecutarse de manera interactiva o bin directamente
desde la linea de comandos para instalar o desinstalar paquetes.

Localepurge

Script que elimina e impide la instalacion de los locales y pginas man que
no nos interesa tener en el disco.Al instalarlo nos da a elegir los locales y
si automaticamente impide la instalacin de otros.El programa no se encuentra
bin integrado con la gestin de paquetes de debian...

Checkinstall

$
$
$
#

./configure
make
su
checkinstall

Esta sucesin de comandos crean un paquete .deb, una vez descomprimido el tarball* y
ubicados en el directorio recin creado (si es el caso).
./configure: comprueba si nos faltan dependencias y crea el archivo make.ini necesario para la
compilacin.
make: compila el programa.(lo pasa a lenguaje mquina o binario)
checkinstall: crea el paquete .deb
*tarball: fichero comprimido con el cdigo fuente del programa.
Me parece mejor la idea de hacer un paquete deb que la de compilar un programa desde las
fuentes, de sta manera se puede instalar el programa mediante dpkg -i quedando totalmente
integrado en el sistema y luego si queremos desinstalarlo lo tendremos tambin mucho ms
facil con dpkg -r

fakeroot make-jpkg jre-linux.bin dpkg -i sun-j2re.deb


sta sucesin de comandos nos instala el java de sun, quedando totalmente integrado en
nuestro sistema.
fakeroot es un programa normal, sin el bit setuid (ver chmod). No aumenta los privilegios de un
usuario ni disminuye la seguridad del sistema. Se escribi especficamente para permitir que
los usuario pudiesen crear paquetes deb sin tener privilegios de superusuario.
make-jpkg viene en el paquete java-package y sirve para convertir en paquete deb el binario
de sun que contiene la mquina virtual de java (jre).

6.Recuperacin del sistema


7.a.-Usando knoppix live
CD_knoppix # su
desde knoppix CD nos convertimos en root.

root@CD # cd /
nos vamos a / del knoppix CD.

root@CD # mount -t ext3 /dev/hdax /mnt/hdax


montamos la particin en cuestin.

root@CD # chroot /mnt/hdax


nos introducimos en ella con chroot*

root@disco_duro # mount -t proc proc /proc


puede ser necesario montar el sistema de ficheros proc.

root@disco_duro # nano /etc/lilo.conf


editamos lilo (o lo que sea necesario).

root@disco_duro # /sbin/lilo
ejecutamos lilo.

root@disco_duro # umount -t proc proc /proc


desmontamos proc

root@disco_duro # exit
nos salimos de chroot y por tanto del disco duro

root@CD # umount -t ext3 /dev/hdax /mnt/hdax


desmontamos la particin en cuestin.

root@CD # exit
salimos del root de knoppix.

CD_knoppix $
volvemos al punto de partida.
* La orden chroot lo que hace es situarte virtualmente en la particin que le indicas y a partir de
ah las ordenes que le pases a la consola se ejecutan en esa particin, es como si realmente
estuvieras en esa particin.

7.b.-Creando un disquete de arranque/rescate


Con lilo
Tan fcil como copiar lilo.conf en un disquete e indicarle que arranque desde el mismo, para lo
cual hay que cambiar la linea boot por:

boot=/dev/fd0
Si teneis varias particiones,entre ellas alguna lgica debeis aadir al lilo.conf del disquete la
opcin: \"lba32\" para que pueda arrancarla.

Con el programa mkboot


Este programa viene en el paquete debianutils.

mkboot, entre otras cosas, te copia el lilo.conf al disquete,pero la verdad es que yo slo he
conseguido que me funcionen los disquetes creados con mkboot,cambiando el lilo.conf que te
crea por el original y realizando despus las modificaciones que cuento ms arriba.El mismo
programa te explica cmo:

# mount /dev/fd0 /mnt


montamos el disquete.

# cd /mnt
nos vamos a l.

# nano lilo.conf
editamos lilo.conf

# lilo -C lilo.conf
con -C le decimos que ejecute el lilo del disquete y no el de /etc/lilo.conf

# cd ..
nos salimos.

# umount /dev/fd0
desmontamos el disquete.

Con grub
ste no lo he probado pero por lo que he visto se tratara de copiar los ficheros stage1 y stage2
al disquete tal que as:

# mkfs.ext3 /dev/fd0
formateamos el disquete.

# mount -t ext3 /dev/fd0 /floppy


lo montamos en /floppy.

# cp /ruta_de_acceso/stage1 /floppy
copiamos stage1

# cp /ruta_de_acceso/stage2 /floppy
copiamos stage2

# cp /boot/vmlinuz /dev/fd0
si hay sitio se puede incluir el nucleo en el disquete.

# umount /dev/fd0
se desmonts floppy sin sacarlo.

# grub
inicia la interfaz de comandos de GRUB

grub> root (fd0)


instala las herramientas de GRUB...

grub> setup (fd0)


...en el MBR del disquete.

grub> quit
salimos
Cuando se arranque desde el disquete y aparecezca el interprete de comandos de grub hay
que teclear:

grup> root (fd0)


grup> kernel /boot/vmlinuz
raiz
grup> boot

root=/dev/hda2

# kernel de inicio y particion

Con el NTloader de microsoft


En el caso de que lo usemos para el inicio tambin podemos crear un disquete de arranque
con el mismo.Para ello copiaremos los ficheros ocultos \"ntldr\" , \"ntdetect.com\" y \"boot.ini\"
que se encuentran en el directorio raz del sistema (normalmente C:).sto es lo que hara
cualquier windosero, pero nosotros adems,tendremos que copiar el o los ficheros con
extensin .lnx que pusimos en la particin raiz.

7.c.-Copiando el MBS(Master Boot Sector)-sector de arranque maestro


sto crea un archivo llamado mbr con los primeros 512 bytes de hda:
# dd if=/dev/hda of=mbr count=1 bs=512
Para restaurar la tabla de particiones:
# dd if=mbr of=/dev/hda

7.d.-Copiando el VBS(Volume Boot Sector)-sector de arranque de una


particin
sto crea un archivo llamado sector_arranque_hda2 con los primeros 512 bytes de hda2
# dd if=/dev/hda2 of=/sector_arranque_hda2 count=1 bs=512
Para restaurar el sector de arranque
# dd if=sector_arranque_hda2 of=/dev/hda2
Cada vez que se modifique lilo o grup,habr que realizar una nueva copia del MBR o el sector
de arranque que incluya los cambios.

Kernel ,logs y hardware


$ uname -a
Versin del kernel.

$ cat /proc/version
Versin del nucleo y compilador empleado.

$ lsmod
Lista los mdulos cargados.

$ cat /proc/modules
Lista los mdulos cargados.

$ lsmod | grep mdulo


Ver si est cargado el mdulo.

$ modinfo mdulo
Muestra informacin sobre un mdulo.

# modprobe mdulo
Inserta un mdulo en el kernel cargando antes los mdulos de los cuales dependa.

# modprobe -r mdulo
Elimina un mdulo del kernel y si procede los que dependen del mismo.

# insmod mdulo
Inserta un mdulo en el kernel.

# rmmod mdulo
Elimina un mdulo del kernel.

# echo mdulo >> /etc/modules


Inserta un mdulo en el kernel de forma permanente.

# depmod mdulo
Comprueba las dependencias del mdulo.

# modconf
Programa grfico para listar,cargar y descargar mdulos del kernel.

# alsaconf
Programa interactivo que detecta las tarjetas de audio y carga los modulos adecuados.

# less /var/log/kern.log
Mensajes del nucleo (solo root o algun usuario que pertenesca al grupo adm tiene acceso a los
logs)

# less /var/log/syslog
Registro de mensajes relativos a la seguridad.

# less /var/log/debug
Registro de informacin de depuracin de los programas.

# less /var/log/messages
Mensajes del sistema de carcter informativo.

# less /var/log/user.log
Informacin del usuario.

# less /var/log/XFree86.0.log
Informacin sobre las X

# less /var/log/Xorg.0.log
Informacin sobre las X

# less /var/log/auth.log
Accesos al sistema(incluye los intentos fallidos).

# last
Lista los usuarios conectados/desconectados (fichero /var/log/wtmp).

# lastb
Muestra los intentos de conexin fallidos (fichero /var/log/btmp).

# hdparm /dev/hda
Verificar DMA

# hdparm -I /dev/hdx
Informacin sobre hdx

# hdparm -d1 /dev/hdx


Activar DMA en el disco duro o perifrico.

$ dmesg
Ver la salida que el kernel produjo en el arranque.

$ dmesg | grep hd
Informacin sobre dispositivos IDE.

# sensors-detect
Detecta,instala y carga los sensores y los mdulos necesarios(en un kernel 2.6)

# sensors
Tras ejecutar el anterior,muestra temperaturas, voltajes y revoluciones de ventilador.

# lsdev
Muestra informacin sobre los dispositivos(canales IRQ,DMA y puertos E/S que utilizan)

# lspci
Ver dispositivos conectados a la placa madre mediante un bus PCI.

# lsusb
Ver los buses USB y los dispositivos conectados a los mismos.

# cdda2wav -scanbus
Comprobar el interfaz SCSI.

# cdrecord -scanbus
Comprobar el interfaz SCSI.

$ cat /proc/meminfo
Informacin sobre la memoria.

$ cat /proc/cpuinfo
Informacin sobre el procesador.

$ cat /proc/devices
Informacin sobre dispositivos en uso.

Notas
syslogd registra los mensajes que los programas y el sistema ofrecen.
klogd es un demonio del sistema que intercepta y registra los mensajes del ncleo.
lsdev viene en el paquete procinfo.
sensors viene en el paquete lm-sensors.
Dispositivo de bloques:aquellos que almacenan informacin en bloques de tamao fijo,
(cada uno con su direccin) y utilizan los buffers del sistema (memoria temporal),
Dispositivo de caracteres: aquellos que envian o reciben un flujo de datos de forma
secuencial y sus procesos de lectura/escritura no poseen buffer.por ej. el ratn
DMA(Acceso Directo Memoria): es la manera en que los dispositivos se comunican directamente con la memoria sin intervencin del procesador.Cada controlador dispone de una
linea o canal DMA de acceso directo.
IRQ (solicitud de interrupcin): es la manera en que el controlador de un dispositivo

solicita al procesador que le atienda porque va a comunicarle algn suceso,cada controlador tiene una linea IRQ distinta.
IO Ports (puertos de entrada/salida): se trata de una abstraccin (que se corresponde
con un dispositivo)a travs de la cual un dispositivo intercambia datos con el sistema.
Tienen una direccin(en hexadecimal)que los identifica.

8. Redes
# /etc/init.d/networking start
Inicia los servicios de red.

# /etc/init.d/networking restart
Reinicia los servicios de red.

# /etc/init.d/networking stop
Para los servicios de red.

# ifconfig [interfaz opciones IP]


Informacin y configuracin de interfaces de red.

# ifconfig
Muestra el estado de los interfaces activos.

# ifconfig -a
Muestra el estado de todos los interfaces.

# ifconfig ppp0
Muestra el estado de ppp0

# ifconfig eth0 up
Activa eth0.

# ifconfig eth0 down


Cierra eth0.

# ifconfig eth1 address 156.35...


Asigna una direccin al interfaz especificado.

# iwconfig
Similar a ifconfig pero slo para interfaces wireless

# ifup interface
Habilita la interface especificada,ejemplos: ifup eth0 ;ifup ppp0

# ifdown interface
Deshabilita la interface especificada,ejemplos: ifdown eth0 ;ifdown ppp0

# dhclient eth0/eth1
Inicia conexin dhcp mediante el cliente dhcp-client.

# pump -i eth0/eth1
Inicia conexin dhcp mediante el cliente pump.

# pppoeconf
Programa para configurar conexiones pppoe.

# pppconfig
Programa en modo texto para configurar una conexin ppp.

# pon
Establece la conexin ppp a internet.

# plog
Monitoriza la conexin ppp.

# poff
Finaliza la conexin ppp a internet.

$ finger usuario
Informa sobre un usuario conectado al sistema.

$ finger @servidor
Informa sobre todos los usuarios conectados a un servidor (nombre o IP)

$ finger usuario@servidor
Informa sobre un usuario conectado a un servidor

$ ping google.com
Verifica la conexin,en este caso con www.google.com (Ctrl+Z pone fin)

$ traceroute microsoft.es
Muestra la ruta que los paquetes de datos han seguida hasta la mquina de destino.

$ mtr rediris.es
Combinacin de ping y traceroute.

$ whois esdebian.org
Informacin sobre ste,nuestro dominio.

$ host -v -a telefonica.com
Determina la ip de un nombre o el nombre de una ip.(host -v -a 194.224.55.221)

$ iptraf
Monitoriza trfico de redes(ncurses)

# tethereal
Versin para consola de ethereal,un analizador del trfico de red (sniffer).

# ettercap
Sniffer/interceptor/logger para redes LAN con switchs basado en ncurses.

$ nmap
Escaner de puertos.

# fail2ban
Escanea logs como /var/log/auth.log y banea las IP con demasiados errores de conexin.

# snort
Sniffer de paquetes y un detector de intrusiones en una red (NIDS).

# aide
Detector de intrusiones en un nico Servidor, PC o host.(HIDS).

# portsentry
IDS que detecta escaneos de puertos y reacciona a un ataque.

3 chkrootkit
Detector de rootkit.

w3m,lynx,links,links2,elinks
Navegadores web,elinks soporta SSL con lo que podremos acceder a correo web.

Irssi,*censored*x,WeeChat-curses
Clientes IRC( Internet Relay Chat) )

mutt,mush,pine,elm
Clientes de correo(MUA).

cabber
Cliente jabber( protocolo libre para mensajera instantnea.)

Centericq
Cliente de mensajeria multiprotocolo (ICQ,Yahoo,AIM,MSN,IRC,Jabber)

ncftp
Cliente ftp (File Transfer Protocol) basado en ncurses

ftp-ssl
Cliente ftp con soporte de cifrado SSL y TSL.(dependiendo de la otra parte)

telnet-ssl
Cliente telnet(acceso remoto) con soporte de cifrado SSL,(dependiendo de la otra parte)

ssh
Cliente ssh (Secure SHell),acceso remoto cifrado,forma parte del paquete openssh-client

rtorrent, bittornado
Clientes bittorrent.Bitornado es una versin mejorada del cliente homnimo bittorrent.

$ talk usuario
Entabla una conversacion con un usuario del sistema.

$ talk usuario@sistema
Entabla conversacion con un usuario de otro sistema(entre mquinas UNIX)

$ mesg -n
Anula la notificacion de comunicacion de talk o write

$ mesg -y
Habilita la llegada de notificaciones de talk o write

$ write usuario
Manda un mensaje a un usuario del sistema.

$ netstat -napt
Saber qu puertos tiene abiertos nuestro sistema

n
No resuelve las direcciones a sus nombres DNS. Esto hace ms rpida la ejecucin.<

a
Muestra todos las conexiones,includas las que estn escuchando.

p
Muestra el nmero y nombre del proceso,dueo de dicha conexin.

t
slo muestra conexiones tcp

$ jigdo-lite fichero.jigdo
Programa interactivo que permite la descarga y/o \"actualizacin\" de una imagen ISO;
descarga los ficheros de una imagen ISO mediante wget, los une y forma al vuelo una copia de
la imagen ISO original. Pero si ya tenemos una imagen en el disco o un CD, bastara con
indicarle la ruta a la misma para que se actualizara. Para ambos casos hay
que descargar previamente los ficheros .jigdo y .template asociados a la imagen.

$ jigdo-file
Herramienta para generar los ficheros .jigdo y .template de una imagen

$ wget [opciones] URL


Gestor de descargas.

-p
descarga web completa.

-r
recursivo.

-k
Convierte los enlaces absolutos en relativos.

-c
Reanuda la descarga de un fichero parcialmente descargado.

-l6
profundidad de recursin (5 por defecto)

-A formato
formato para descargar.

-nH
hace que no se cree el subdirectorio localhost.

--cut-dirs=n
elimina n nmero de directorios dentro de la jerarquia.
Ejemplo 1w
$ get -A zip URL
Bajara todos los archivos zip de una pgina web.
Ejemplo 2: nos queremos descargar el manual nano.pdf que est en
http://www.manuales.com/informtica/editores/nano.pdf

$ wget -nH --cut-dirs=2


http://www.manuales.com/informtica/editores/nano.pdf
nos bajara slo el manual sin crearnos ningn nuevo directorio en nuestra home.
Ejemplo 3: nos queremos bajar el manual de Arocena en formato html cuya primera pgina
est en: http://usuarios.lycos.es/ortihuela/index.htm ,pues entonces:
$ wget -r -nH http://usuarios.lycos.es/ortihuela/index.htm
nos bajara todo el contenido del curso (ficheros .html,.css,.jpg,etc) al directorio /ortihuela
Lista de comandos de GNU/Linux (I)arribaLista de comandos de GNU/Linux (III)

Lista de comandos de GNU/Linux (III)


9. OTROS
9.a. MLDONKEY
telnet 127.0.0.1 4000
Abrir interfaz telnet
kill
Matar mldonkey
q
Cerrar interfaz telnet
?
Muestra la ayuda
??
Muestra ms ayuda
add_user usuario clave
Aade un nuevo usuario
add_user usuario clave
Cambia la contrasea de un usuario

remove_use usuario
Elimina un usuario
voo
Ver todas las opciones
set opcin valor
Cambiar valor de la opcin
save
Guardar opciones
networks
Ver todas las redes
enable n
Activar la red n
disable n
Desactivar la red n
alias
Crea un alias.Ejemplo:alias red netwoks
unalias
Elimina un alias.Ejemplo:unalias red
c n
Conectar a ms servidores o aln
vm
Servidores conectados
vma
Lista todos los servidores conocidos
x n
Desconectar del servidor
dllink .torrent
Inicia la descarga de un elinks o torrent
dllinks fichero
Descarga los elinks contenidos en un fichero
http url refererencia
Inicia la descarga desde una URL
s
Buscar archivos en todas las redes

network: nombre de red


minsize: tamao mnimo
maxsize: tamao mximo
media: video|Audio|...
Video: video
Audio: audio

format: formato
title: ttulo
album: album
artist: autor
field: field ,fieldvalue
not: palabra
and: palabra
or: palabra

vr
Ver resultados de la ltima busqueda
vs
Ver todas las busquedas
d n
Bajar resultado n
cancel n
Cancelar descarga n
pause n
Pausar descarga n
resume n
Resumir descarga n
uploaders
Informa sobre la subidas y sus usuarios
upstats
Muestra estadsdicas sobre las subidas
torrents
Muestra todos los torrents en el servidor
compute_torrent fichero
Genera un .torrent
vd
Muestra la cola de descargas
scan_temp
Muestra el contenido del directorio temp
recover_temp
Recupera los archivos perdidos detemp
commit
Mueve las descargas al directorio incoming

9.b. MUTELLA
mutella
Abrimos la interfaz de mutella.

leave
Cerramos la interfaz,pero mutella sigue corriendo.
exit
Salir.
version
Muestra la versin del programa.
help
Muestra la ayuda.
help commando
Muestra la ayuda del comando.
?
Igual que "help"
set
Muestra las opciones de mutella.
set+
Aade un valor a las opciones.
setQuita un valor de las opciones.
color
Configurar los colores de la consola.
info opciones
Muestra informacin sobre la actividad de la red, las opciones son:

network: Informacin general sobre la red.


connections: Conexiones
transfers: Transferencias
uploads: Subidas
downloads: Descargas

hosts
Muestra la lista de servidores en cach.
open
Conectar a un servidor.
close ID
Cierra una conexin/es
find palabra/s opciones
Buscar archivos, las opciones son:

-palabra: Excluye una palabra de la bsqueda.


size:bytes: tamao exacto del archivo,en bytes.
around:bytes: tamao aproximado.
min:bytes: tamao mnimo del archivo,en bytes.
max:bytes: tamao mximo del archivo,en bytes.

ejemplo: find mike oldfield .ogg: -tubulars bells min:30000


list
Muestra las bsquedas en curso.
ls
Muestra slo las bsquedas con resultados.
edit
Modifica los trminos de la bsqueda.
delete ID
Elimina una bsqueda.
erase ID
Elimina una bsqueda y borra la descarga parcial.
clear
LImpia los resultados de una o ms bsquedas.
results ID
Muestra los resultados de la bsqueda.
get ID
Inicia la descarga de uno o ms archivos.
stop ID
Para la transferencia.
kill ID
Igual que stop,pero borra el archivo parcial.
move
Modifica el nombre del archivo en descarga.
scan
Fuerza un reescaneo de los archivos compartidos.
library
Muestra los archivos compartidos.
load
Loads and executes Mutella terminal-mode script
system comando
Ejecuta un comando de shell
!
Sinnimo de "system"
NOTA:

los ID deben ser tomados del ltimo ls, list, info...


Todos los comandos admiten abreviaturas:info downloads por id, etc
El fichero con las opciones es ~/.mutella/mutellarc
El fichero con las opciones de color es ~/.mutella/termclr

9.c. FTP(Protocolo de Transferencia de Archivos)


open servidor
Conectar con el servidor#
?
Imprimir informacin de ayuda local
append
Anexar a un archivo
bell
Emitir sonido cuando se complete el comando
binary
Establecer transferencia binaria (todas salvo .txt)
bye
Finalizar la sesin ftp y salir
ascii
Establecer tipo de transferencia ascii (slo para .txt)
cd
Cambiar el directorio de trabajo remoto
close
Finalizar la sesin ftp
ls
Mostrar el contenido del directorio remoto#
dir
Mostrar el contenido del directorio remoto
delete
Eliminar archivo remoto
debug
Alternar modo de depuracin
get
Recibir archivo
help
Ayuda sobre un comando 1-help y luego el comando
lcd
Cambiar el directorio de trabajo local#
mdir
Mostrar el contenido de mltiples directorios remotos
mdelete
Eliminar mltiples archivos

mget
Obtener mltiples archivos#
mkdir
Crear directorio en el equipo remoto#
mls
Mostrar el contenido de mltiples directorios remotos
mput
Enviar mltiples archivos
open
Conectar a tftp remoto
put
Enviar un archivo
pwd
Imprimir el directorio de trabajo del equipo remoto
quit
Finalizar la sesin ftp y salir
quote
Enviar un comando arbitrario ftp
recv
Recibir archivo
rename
Cambiar el nombre del archivo
rmdir
Quitar directorio en el equipo remoto
remotehelp
Obtener ayuda del servidor remoto
send
Enviar un archivo
status
Muestra el estado actual#
trace
Alternar trazado de paquetes#
type
Establecer el tipo de transferencia de archivos
user
Enviar nueva informacin de usuario
verbose
Alternar modo detallado

9.d. IRC
/server
Lista,aade o elimina servidores.
/server [nombre:puerto:clave]
Conecta con un servidor.
/info [servidor]
Obtener informacin sobre servidor.
/lusers
Obtener estadsticas del servidor.
/users
Usuarios conectados al servidor.
/links
Lista los servidores de la red actual.
/list
Lista e informa sobre los canales.
/admin
Informa sobre el admin. del servidor.
/help [comando]
Muestra la ayuda sobre un comando.
/ison [nick]
Comprobar si un usuario est conectado.
/join [canal]
Unirse a un canal.
/names
Listar usuarios en canales.
/whois [nick]
Muestra informacin sobre un usuario.
/whowas [nick]
Informa sobre un usuario que ya no est.
/who [patrn]
Muestra informacin sobre patrn.
/msg NiCK SET PASSWORD [clave]
Cambiar de contrasea(en irc-hispano)
/msg [nick | canal][texto]
Envia un mensaje a un usuario o canal.
/amsg [texto]
Envia mensaje a todos los canales en los que ests.

/notice [nick | canal]


Envia un mensaje privado a un usuario/os
/query [usuario texto]
Envia un mensaje privado a un usuario.
/ignore
Lista los usuarios ignorados.
/ignore nick
Ignora los mensajes de un usuario.
/unignore [nick | *]
Deja de ignorar el/los mensajes.
/ctcp [nick texto]
Envia un mensaje mediante CTCP
/me [texto]
\'-> precedido de nuestro nick
/ame [texto]
\'->a todos los canales en los que ests.
/dcc [chat nick ]
Pide y/o inicia charla con un usuario.
/dcc [close nick]
Cierra charla.
/dcc [send nick fichero]
Ofrece y/o envia un fichero.
/dcc [get nick fichero]
Permite recibir un fichero.
/time
Muestra fecha y hora.
/clear
Limpia la ventana de texto actual.
/away [texto]
Pasar a estado ausente.
/away
Volver de la ausencia.
/nick [nuevonick]
Cambiar el nick.
/nick [nuevonick][clave]
Cambiar un nick registrado.
/nick [nick:contrasea]
Identificarse enirc-hispano.

/part [canal]
Abandonar un canal.
/quit
Cerrar todas las conexiones y salir.
Notas:
CTCP (Protocolo de cliente a cliente): permite dar respuestas predeterminadas y automticas
ante una peticin espeffica de otro usuario.
DCC: protocolo que establece una conexin TCP directa entre dos ordenadores.

9.d. Calculadora
bc
Abrimos bc.
> 20 + 5.4
Suma.
> 77 - n
Resta.
> 99 * 86
Multiplica.
> 47 / 3
Muestra el cociente de la divisin.
> 47 % 3
Muestra el resto de la divisin.
>4 ^ 2
Calcula la potencia 4
> sqrt (16)
Calcula la raiz cuadrada de 16
> (2*3+2) / sqrt (2^3/2.5)
Un poco de cada.
> quit
Salimos de bc.
Tambin podemos hacerlo usando echo y mandando la salida a bc:
echo \"(2*3+2)\" / sqrt \"(2^3/2.5)\" | bc
en este caso los parntesis deben ir entrecomillados

9.e. Ppromps
PS1=\"\\[\\033[1;34m\\][\\u@\\h:\\w]$\\[\\033[0m\\] \"
PS1=\"\\[\\033[30;47m\\][\\[\\033[31m\\]\\u\\[\\033[30;47m\\]@ \\ \\W]\\[\\033[00m\\]$ \"
PS1=\'\\[\\033[01;30m\\]\\u
\\[\\033[01;32m\\]\\h\\[\\033[01;33m\\]:\\[\\033[01;35m\\]\\w\\[\\033[0m\\$ \'

PS1=\"\\[\\033[;31m\\][\\[\\033[;36m\\]\\u@\\h\\[\\033[;31m\\]:\\[\\033[;36m\\ ]\\w\\
[\\033[;31m\\]]$\\[\\033[0m\\] \"
Para que los promp permanezcan de una sesin a otra hay que ponerlos enel archivo .bashrc
de tu home.
Lista de comandos de GNU/Linux (II)arribaLocalizar y eliminar lneas que coincidan con una
expresin regular especfica

Autologin en Debian
Como lograr un Autologin en tu Debian. Para hacer que una terminal ingrese automticamente,
(estilo Live-CD)
Metodo 1
Edita tu /etc/inittab. Puedes usar tu editor favorito.
#vi /etc/inittab
#nano /etc/inittab
Busca la siguiente lnea
1:2345:respawn:/sbin/getty 38400 tty1
Comntala con un #. Debe quedar as:
#1:2345:respawn:/sbin/getty 38400 tty1
Agrega la siguiente linea debajo:
1:2345:respawn:/bin/login -f YOUR_USER_NAME tty1 </dev/tty1 >/dev/tty1
2>&1
Reemplazando YOUR_USER_NAME por el nombre de usuario que quieres que haga login
automtico.
Ahora, si deseas que el servidor X se inicie automticamente:
Edita el archivo .bash_profile del home del usuario con login automtico. En caso de no existir
el archivo crealo.
#vi ~/.bash_profile
#nano ~/.bash_profile
Y agrega:

if [ -z "$DISPLAY" ] && [ $(tty) = /dev/tty1 ]; then


startx
fi
La lnea del if [ -z "$DISPLAY" ] ... sirve para verificar si se est ejecutando en la tty nmero 1;
en caso de ser otra terminal (tty2, tty2, etc...) no se ejecutar el servidor X.
Aunque es cmodo tener un autologin sin necesidad de ingresar contraseas, esto puede
representar un riesgo de seguridad, as ten cuidado con quin utiliza tu equipo.
Archivos configuracin de BasharribaComo obtener Ayuda en GNU/Linux

Viviendo en Consola
ndice
1. Introduccin
2. Navegadores Web
2.1. Lynx
2.2. Links2
2.3. W3M
3. Gestores de archivos
3.1. Midnight Commander (MC)
3.2. FD Clone (FD)
3.3. Vladi File Manager for Unix (VFU)
4. Clientes de Mensajera instantnea
4.1. Pebrot
4.2. CenterIM
4.3. Finch
4.4. Bitlbee
5. Reproductores de Msica
5.1. Music Player Daemon (mpd)
5.2. Mp3Blaster
5.3. MOC
6. Control de procesos
6.1. HTop
7. Consultando el estado del tiempo
7.1 Weather-util
8. Montar unidades externas
9. Redes sociales
9.1. Twidge

1. Introduccin
En algunas ocasiones en las cuales se pretende evitar el uso de todo tipo de aplicacin grfica,
como en el caso de servidores o en casos mas particulares cuando realizamos una instalacin
desde cero digamos tipo Netinstall, y deseamos navegar, chatear o poder realizar una gestin

de archivos de una forma un poco didctica siempre se encuentra como limitante la falta de un
ratn, de no tener los tan cmodos iconos y dems.
Pero hoy os digo que es posible vivir en una tty utilizando herramientas como las que
conocers a continuacin.

2. Navegadores Web
Antes de empezar a analizar cada uno de los navegadores es importante saber como trabajan
estos, y bueno en general convierten el cdigo HTML a cdigo ASCCI y permiten la
visualizacin del "documento" de forma ordenada por medio de un paginados como less,
utilizando en la mayora de los casos el siguiente comando:

lynx -dump /home/huhn/


lynx.html | less

Por medio del comando dump se le da el formato correspondiente (ASCCI) al documento,


posteriormente se archiva temporalmente en una ruta especifica y se invoca al paginador less
para la correspondiente visualizacin de este.

2.1 Lynx
Lynx es un navegador web en modo texto para consola. Permite en algunos casos especficos la
visualizacin de tablas linearizandolas y los marcos los identifica por nombres para luego ser
explorados como paginas independientes, tambin conexiones SSL y permite desplazamiento
tanto vertical como horizontal. Una de sus grandes ventajas es que no es necesario esperar a
que cargue la pagina completa para permitir la visualizacin de esta, por que la va
renderizando mientras va cargando la misma.
Navegar con Lynx es casi tan sencillo como jugar PACMAN es solo cuestion de desplazarnos
por los diferentes enlaces con las teclas de direccin, tambin en algunos casos podemos usar
los nmeros con enlaces numerados y las teclas pg up y pg dn para avanzar o retroceder de
una forma rapida. La versin actual soporta conexiones SSL y HTML. Las tablas se linearizan y
los marcos se idenfitican por nombre para ser explorados como pginas independientes.
Ultima versin estable lynx2-8-6 y la linea de trabajo actualmente se basa en la versin lynx2-87.
instalacin:
En una terminal ejecutamos:

#aptitude install lynx

Para ejecutarlo podemos hacerlo de dos formas:


Opcin1

lynx

Esta opcin nos abrir el navegador con su pagina principal en la cual muestra algunos
comandos generales para realizar la navegacin.

Opcin2

lynx www.esdebian.org

Esta opcin nos abrir el navegador con la pagina de esdebian, ahora si revisamos en la parte
de abajo de nuestro navegador, podremos observar que se encuentran los atajos de teclado
mas utilizados, puesto que lynx se maneja nicamente por medio de teclado y en general para
revisar y configurar las diferentes opciones solo basta con presionar la tecla (o)pciones.
Atajos de teclado comandos para lynx.

Shift + H: Invoca la ayuda "(h)elp"

Q: Cerrar el programa despus de preguntar

Shift + Q: Cerrar el programa sin preguntar

K: Muestra una lista de comandos de teclado disponibles

M: Vuelve a la pagina de inicio, despus de preguntar (confirmamos con


(Y)es)

G: Abre un cuadro de dialogo para ingresar una nueva url

Shift + G: Abre un cuadro de dialogo para ingresar una nueva url

L: Muestra los enlaces disponibles en el documento actual desde el


Setup

P: Muestra las correspondientes opciones de impresin es decir, si lo


guarda en un archivo local,
se realiza un envo al correspondiente e-mail o se enva directamente a
impresin

D: Guarda el archivo de la pagina con todas las imgenes

A: Aade a los favoritos o bien la pagina que estamos viendo, o bien la


pagina cuyo enlace tenemos bajo el cursor

V: Abre un administrador de favoritos

Ctrl + A: Vuelve al comienzo de la pagina

Ctrl + E: Va el final de la pagina

Ctrl + R: Recarga la pagina

/: Comienza una bsqueda

Y para el dado caso de paginas en las cuales se requiere login y pass, podemos ingresar
directamente en sta de la siguiente forma:

lynx www.esdebian.org -auth=epica:esta-es-mi-contrasea

Ayuda fuera del navegador:

man lynx

Imagen navegador Lynx:

2.2 Links2
Un poco de historia.
La versin original de Links, fue desarrollada en 1999 y era muy similar a Lynx, por lo que
despus cambio la orientacion del proyecto, renombrndolo como Links2. Escrito inicialmente
como un simple pasatiempo, es desarrollado por Twibright Labs en el ao 2000, siendo el
sucesor de Links.
Permite conexiones multiples, lo que facilita el estar realizando una descarga y poder continuar
con la navegacion en diferentes paginas. Otra de sus caractersticas es el soporte parial para
tablas y frames en HTML, permite el scroll horizontal, tambin el uso de marcadores, soporte
de formatos grficos antialising del texto y javascrpti4, todo esto acompaado de un men
desplegable. Soporta consolas con color o monocromo , ademas permite la pre-visualizacin
de las pginas an sin estar cargadas.
En cuanto a la versin la ultima en la que se desarrollo fue la versin 0.98, desde entonces no
se agregan nuevas caractersticas, slo se han realizado correcciones de algunos errores.
Instalacin:
En una terminal ejecutamos:

aptitude install links2

Para ejecutarlo podemos hacerlo de dos formas:


Opcin1

links2

Esta opcin nos abrir el navegador pero con una pantalla vaca, en la cual dependiendo de las
opciones iniciamos la navegacin
Opcin2

links2 www.esdebian.org

Esta opcin abrir el navegador con la pagina indicada en este caso: www.esdebian.org, para
ver el men solo basta con presionar la tecla [Esc]. Links2 est disponible en ingls , pero
podemos configurarlo al espaol o cualquiera de los otros 23 idiomas disponibles, si nos
dirigimos a Setup > Lenguage.
Atajos de teclado para Links2:

Esc: Muestra/Minimiza la barra de men

Q: Cierra el programa preguntando antes de salir

Shift + Q / Ctrl + C: Cierra el programa sin preguntar

G : Abre una nueva linea para escribir la url a la cual se desea acceder

Shift + G: Abre la misma linea pero mostrando la ultima visitada,


permitiendo modificar la direccin

/: Bsqueda hacia adelante en el documento actual

? : Bsqueda hacia atrs en el documento actual

N: Va hasta la siguiente coincidencia

Shift + N : Vuelve a la anterior coincidencia

= : Abre una ventana con informacin igual de la url (juego de


caracteres, servidor Web, etc)

A: Aade favoritos

S: Abre el administrador de favoritos

Ctrl + R : Recarga la pagina

Ayuda fuera del navegador:

man links2

Imagen navegardor Links2:

2.3 W3M
Leer ms w3m - Navegador web en lnea de comandos
W3m es un navegador web basado en texto, que utiliza un paginador. En general se parece
mucho a Lynx, tiene soporte para tablas, marcos, conexiones SSL, soporta colores e incluso
imgenes. Tambien en el caso de no encontrarnos en una consola real, brinda soporte al
mouse y ademas se rige por los estandares W3C
Instalacin:
En una terminal ejecutamos:

aptitude install w3m

A diferencia de las anteriores para ejecutar w3m debemos asignar una direccion url de esta
forma:

w3m www.esdebian.org

Con esto abrir el navegador con la pagina indicada en este caso: www.esdebian.org.
Atajos de teclado comandos para w3m:

Shith + H: Invoca la ayuda

Q: Cierra el programa preguntando antes de salir

Shift + Q : Cierra el programa sin preguntar

Space : Desplazamiento por paginas

G : Va a la primera o ultima linea del documento dependiendo del caso

Tab: Va al siguiente enlace

Alt + Tab : Vuelve al enlace anterior

Return: Siguiente enlace

Shift + B : Vuelve a la pagina anterior

U: Muestra la URL

Shift + U: Abre cuadro de dialogo para indicar nueva URL

/: Bsqueda hacia adelante con palabra clave

?: Bsqueda hacia atrs con palabra clave

V: Alterna entre la vista normal y el codigo fuente

A: Aade un documento a la lista de favoritos

B: Muestra los Favoritos

Shift + R: recarga la pagina

S: Abre historial reciente

Alt + S: Guarda el archivo en el disco

O: Abre un cuadro de dialogo para configuracin personal

E: Abre la pagina en el editor (podemos escoger nuestro editor favorito


en configuracin)

Ayuda fuera del navegador:

man w3m

Imagen Navegador w3m:

3. Gestores de archivos
Un administrador o gestor de archivos puede verse como una apliacin que facilita el acceso a
los archivos y a su vez facilita las diferentes operaciones que se pueden realizar con estos,
llmese copiar, mover, eliminar, etc.
Los gestores de archivos tipo consola, se caracterizan por tener uns interfaz de usuario de
smbolos ascii que representan las unidades, particiones y directorios reales dentro del
sistema.

3.1. Midnight Commander (MC)


Midnight Commander (mc) es un gestor de ficheros, que funciona por medio de una aplicacin
en modo texto. La pantalla principal consiste en dos paneles en los cuales se muestra el
sistema de ficheros. Y por medio de las teclas direccionales o el mouse podemos desplazarnos
por estos. Y borrar, renombrar, editar, copiar ficheros, etc.
MC tambien la capacidad de explorar dentro de los formatos de archivo comprimidos como si
fuera un simple directorio, soporta transferencias FTP o cliente del protocolo FISH.

Instalacin:
En una terminal ejecutamos:

#aptitude install mc

Para ejecutarlo simplemente lo invocamos desde nuestra consola en calidad de root

#mc

Y listo tendremos una pantalla como la siguiente:

En la cual si observamos en la parte superior se encuentra el menu principal y en la parte de


abajo unos cuantos atajos de teclado con opciones como:

F1: Ayuda

F2: Men de carpeta

F3: Ver

F4: Editar

F5: Copiar

F6: Mover

F7: Crear directorio

F8: Borrar

F9: Menu principal

F10: Salir

R: Actualizar

J: Ejecutar y ver archivo

B: Buscar archivos

man mc: Ayuda fuera del gestor de ficheros

Temas de colores
Para cambiar el tema por defecto de Midnight Commmander podemos editar el archivo
~/.mc/ini, y agregar la etiqueta [Colors] seguido de la configuracin deseada de colores.Guate
con la siguiente configuracin de ejemplo:
[Colors]
base_color=lightgray,green:normal=green,default:selected=white,gray:ma
rked=yellow,default:markselect=yellow,gray:directory=blue,default:exec
utable=brightgreen,default:link=cyan,default:device=brightmagenta,defa
ult:special=lightgray,default:errors=red,default:reverse=green,default
:gauge=green,default:input=white,gray:dnormal=green,gray:dfocus=bright
green,gray:dhotnormal=cyan,gray:dhotfocus=brightcyan,gray:menu=green,d
efault:menuhot=cyan,default:menusel=green,gray:menuhotsel=cyan,default
:helpnormal=cyan,default:editnormal=green,default:editbold=blue,defaul
t:editmarked=gray,blue:stalelink=red,default

3.2. FD Clone (FD)


FD (del ingls "File and Directory", "Archivo y directorio") es un gestor de archivos fcil de usar
para los sistemas Unix. Como su nombre lo indica, es el clon libre de fd, el cual fue escrito por
Atsushi Idei para MS-DOS (tm), siendo muy popular en Japn alrededor de 1989. Su
popularidad en el pas nipn fue tal que se le llego a considerar sinnimo de gestor de archivos.
Fue creado en 1995 por T. Shirai.
Los mensajes de estado estn disponibles en ingls o en japons.
Su diseo atpico puede resultar raro al principio, ya que maneja un modo de organizacin de
rbol para los directorios, los cuales se muestran en columnas. Al presionar , mostrar las
carpetas y contenidos dentro del mismo.En lugar de desplazarse por orden alfabtico de la
parte inferior de la pantalla, la lista de archivos se ajusta a la parte superior de la columna de al
lado, a modo de una gran lista.
Por otra parte, el no reconoce directorios o archivos que hagan uso de acentos o de la letra ,
adems no cuenta con soporte para colores. An as tiene algunas opciones interesantes, por
ejemplo, es capaz de leer el contenido de distintos tipos de archivos comprimidos. Las teclas
del 1 al 5 pueden agregar de 1 a 5 columnas, facilitando la bsqueda o lectura de nuestros
archivos. Puede desplegar la informacin del archivo seleccionado. Incluye tambin la opcin
de hacer busquedas recursivas.
Por desgracia no hay suficiente documentacin en espaol que nos de una idea de como
configurarlo, afortunadamete su diseo sencillo lo hace fcil de manejar.
Para instalarlo slo hace falta tirar de apt:

apt-get install fdclone

Lo invocamos con:

fd

Estos son algunos de sus comandos bsicos:

Retroceso Atrs

Bs:Directorio raiz

l: Directorio de entrada

Tab: Seleccionar el archivo

c: Copiar archivos

m: Mover archivos

d: Eliminar

k: Crear directorio

D: Eliminar directorio

r: Renombrar archivos

1,2,3,5: Aumentar o disminuir el nmero de columnas

s: Ordenar por tipo de archivos

t: Ver el esquema de rbol del directorio

h: Ejecutar una orden

u: Descomprimir

f: Buscar

?: Invoca a la ayuda (en japons)

Esc (q): Salir de FD clone

En definitiva, es una gran opcin si buscamos algo diferente, sencillo y rpido.

3.3. Vladi File Manager for Unix (VFU)


VFU es un gestor de archivos minimalista verstil y extensible basado en ncurses para los
sistemas Unix. Fue escrito por Vladi Belperchinov-Shabanski.Incluye gran parte de las acciones
de un gestor de archivos, como copiar, cortar, renombrar ficheros, extraccin de archivos
comprimidos, navegacin por directorios, ftp, edicin de texto y automontaje de dispositivos
extraibles.
La primera vez que lo ejecutemos notaremos que slo dispone de una columna, la cual se
divide en secciones donde nos muestra informacin relevante de nuestros ficheros, como la
fecha de creacin y sus permisos. Vfu se maneja por medio de combinaciones de teclado.
Podemos entrar en un directorio si damos enter, as como para salir del mismo si pulsamos la
tecla retroceso.Si pulsamos retroceso si estamos seleccionando un archivo, esta accin abrir
un pequeo editor de textos. Con la tecla H invocamos a la ayuda y con U nos da la posibilidad
de introducir un comando externo.
Para instalarlo:

apt-get install vfu

Lo ejecutamos con:

vfu

Colorear archivos segn su extensin


En el fichero vfu.conf (localizado en nuestro home), tenemos la opcin de activar el coloreado
de archivos, en un editor de textos buscamos la siguiente linea:

cGREEN=.ext.ext.ext.

La cual dice que mostrar en color verde los archivos citados, por ejemplo :
cGREEN=.txt.odf.rc.TXT.
En el ejemplo, vfu mostrar los documentos de texto en color verde.

chGREEN=.ext.ext.ext.

La variable "h" provocara que los archivos citados se visualicen en verde claro. Por ejemplo:
chGREEN=.TXT.
Podemos usar otros colores:

cMAGENTA=.ext.ext.ext.
cCYAN=.ext.ext.ext.
cRED=.ext.ext.ext.
cBLUE=.ext.ext.ext.
cYELLOW=.ext.ext.ext.

Algunos atajos de teclado:


C: Copiar.
D: Cambiar directorio.
E: Eliminar.
G: Seleccionar todo, deseleccionar todo
I: Editar archivo.
H: Muestra el archivo de ayuda.

N: Buscar
: Renombrar archivo.
~: Transporta el directorio seleccionado a la carpeta home.
Q: Salir
Ayuda fuera de vfu:

man vfu

4. Clientes de mensajera instantnea


La mensajera instantnea ha facilitado mucho la conexin y comunicacin de usuarios a travs
de internet, y puede que esta herramienta en muchas ocasiones sea de uso necesario para
cierto tipo de personas, las que a la vez pueden ser amantes de las tan seductoras tty's. Para
este y otro tipo de personas (curiosos) tambien existen los mensajeros instantneos para la
consola. Estos son slo algunos :

4.1 Pebrot
Pebrot es la solucin para los msn-adictos, que ven como necesidad de estar conectados la
mayoria del tiempo con el mundo de la internet, este esta desarrollado en su gran mayoria en
python y exclusivamente para sistemas de tipo *nix
Este programa posee una interface sencilla pero a su vez lo suficiente funcional, es decir
soporta cosas tales como conversaciones multiples por medio de pestaas y establecer tu
estado de conexin (disponible, ocupado, etc).
Nota: Como requerimiento para su funcionamiento debe estar instalado Python 2.2 o superior
Instalacin
Para la instalacin debemos descargar de la pgina del proyecto el Pebrot el correspondiente
.tar.gz y luego desde consola por medio del comando cd ingresamos a la correspondiente ruta
en la cual hemos descargado nuestro .tar.gz de la siguiente forma.
Nota:La siguiente instalacin se realizo desde el escritorio de root

#cd /root/Desktop/

Despues de esto procedemos a descomprimir y desempaquetar el archivo que hemos


descargado:

#tar -zxvf

pebrot-0.8.8.tar.gz

Procedemos a instalarlo con:

#python setup.py install

Configuracin Pebrot

Abrimos con nuestro editor favorito el archivo pebrotrc, para este caso especifico, lo haremos
de la siguiente forma:

nano /root/Desktop/pebrot-0.8.8/pebrotrc

Y en este configuramos las diferentes opciones disponibles, de acuerdo a nuestras


preferencias, a continuacin os muestro unos cuantos detalles
Nota:Agregaremos o las siguientes lineas del archivo de acuerdo a las opciones que
deseemos.
La configuracin de nuestra cuenta es indispensable para el funcionamiento de pebrot.
Configuracin Cuenta

User= este_es_mi_correo@hotmail.com
Password= esta_es_mi_contrasea

Estado:

state= NLN
#Comentarios de mas estados:
#NLN: En lnea
#FLN: Fuera de lnea
#HDN: Invisible Desconectado
#IDL: Inactivo
#Awy: Ausente
#BSY: Ocupado
#NPH: Al Telfono
#y dems

Activar conversaciones:

Show_invited= 1

1 Conversaciones mltiples
0 Conversacin nica
Campanilla ante un nuevo mensaje:

Beep_on_msg= 1

1 sonara la campanilla cuando reciba un mensaje


2 campanilla desactivada
Campanilla para nueva conversacin:

Beep_on_new_chat= 1

1 sonara la campanilla cuando alguien empiece a conversar con usted.


0 Campanilla desactivada
Descargas:

Download_dir= /esta/es/mi/ruta/descargas-msn

Para mayor informacin acerca de mas configuraciones pueden revisar el archivo README, en
este se encuentran detalladas cada una de las opciones de configuracin y personalizacin de
nuestro msn tipo consola.
Imagen Pebrot:

4.2. CenterIM
CenterIM (tambin conocido como "cim")es un mensajero instantneo multiprotocolo y
multiplataforma, basado en ncurses para los sistemas *nix publicado bajo la licencia GPL. Es
un fork del mensajero CenterICQ.
Instalacin:
En una terminal ejecutamos:

#aptitude install centerim-utf8

Ejecucin y configuracin:
Para ejecutarlo simplemente lo invocamos desde la consola de la siguiente forma:

centerim-utf8

Una vez llevado acabo, las primeras pantallas mostradas por el programa son en su mayora
de configuracin.
Configuracin de cuenta
Jabber

Servidor: Servidor:5223
Secured: s
Nombre de Usuario: Mi_usuario
Contrasea: Mi_contrasea
Priority: 4

Msn

Servidor: messenger.hotmail.com:1863
Nombre de Usuario: Mi_usuario
Contrasea: Mi_contrasea

Configuracin de codificacin Utf8


Para que CenterIM muestre correctamente los carcteres en las cuentas Msn hace falta
configurar lo siguiente:

Switch to lenguaje present: None


Remote charset: sp1250
Local charset: utf-8
For protocols: msn

Hecho esto no tendremos problemas con acentos, diresis o la letra "".


Atajos de teclado comandos para Centerim:

F2: Men de opciones sobre un contacto especifico

F3: Estado, ya sea conectado, no disponible y demas. Para seleccionarlo


utilizamos la tecla Space

F4: Men general

Ctrl + N / Ctrl + B: Siguiente / Anterior chat

Q: Salir

Imagen CenterIM:

Ayuda fuera de Centerim:

man centerim

4.3. Finch
Finch es completo cliente de mensajera multiplataforma y multiprotocolo, sencillamente es la
versin de Pidgin para la lnea de comandos.
Para instalar Finch:

apt-get install finch

Invocamos con:

finch

La primera vez que ejecutamos Finch notamos que viene con una agradable interfaz que se ve
totalmente diferente en comparacin con la mayora de los clientes en modo texto. En otras
palabras, disponemos de la interfaz de Pidgin bajo la lnea de comandos. Cuenta con ventanas
pop-up que se abren conforme nos envien mensajes, as como la capacidad de cerrarlas,
minimizarlas o maximizarlas.
Podemos editar los atajos del teclado, la configuracin de los colores y el registro de nuestras
conversacin con un archivo de texto. Una vez dentro de Finch, este nos solicitara la
informacin de nuestra(s) cuentas de MI, usamos la tecla TAB para desplazarnos por los
mens. Terminando el llenado de nuestros datos, salimos del programa y volvemos a
ejecutarlo.
Si todo ha salido bien, debemos de tener algo como esto en la pantalla:

Atajos de teclado:

Salir de las ventanas: ALT-c.


Cambiar entre ventanas: ALT-n o ALT-p.
Abrir el men de cada ventana: F10.
Redimensionar ventanas: ALT-r y luego alguna de las flechas.
Cambiar a la n-sima ventana: ALT-n.
Mover las ventanas: ALT-m.
Ver todas las acciones posibles (e.g., agregar cuentas): ALT-a.

Por otro lado Finch requiere algunas libreras innecesarias de Pidgin, gtk y gnome para
funcionar. Pero a manera de evitar esto, se puede optar por la compilacin de Finch desde el
cdigo fuente de Pidgin.
Descargamos el cdigo fuente desde la pgina oficial de Pidgin.

Simplemente aade los siguientes parametros en la orden "configure".

./configure --disable-gtkui --disable-vv --disable-meanwhile --disable-avahi -disable-nm --disable-tcl

Y prosigue con el proceso de compilacin.

4.4. Bitlbee
Leer ms Bitlbee

Con bitlbee podremos hacer uso de la mensajera instantnea a travs de nuestro cliente de
IRC preferido. Bitlbee soporta los protocolos XMPP/Jabber (Google Talk includo), MSN
Messenger, Yahoo! Messenger, AIM y ICQ, y es una buena opcin si somos usuarios de IRC y
no queremos utilizar otro cliente adicional para la mensajera instantnea.
Nuestro entorno de trabajo ser una Debian Sid/Experimental, aunque este dato carece de
especial relevancia, puesto que bitlbee se encuentra en todas las ramas de Debian. Para
empezar lo instalamos,
#aptitude install bitlbee
Permitiremos el acceso a nuestra mquina en /etc/hosts.allow y reiniciamos.
#nano /etc/hosts.allow
bitlbee: 127.0.0.1

5. Reproductores de Msica
En el caso de los reproductores de msica existen tambin varias opciones, aqu enunciaremos
unas cuantas:

5.1. Music Player Daemon (mpd)


Leer ms mpd (Music Player Daemon)
Una de las cosas que se nos plantean a la hora de instalar y utilizar Debian es la eleccin de
un reproductor para nuestra msica. Aqu os presento el mpd (Music Player Daemon). En
realidad es un demonio del sistema, con muchsimas funcionalidades, que funciona con la
arquitectura cliente-servidor. Entre los formatos soportados se encuentran mp3, ogg, flac,
musepack, mp4, aac y wave, y es muy bueno y rpido para colecciones grandes de msica.
En esta ocasin nos centraremos en su uso para la reproduccin de msica en el mismo
equipo en el que est instalado.

Bien, lo primero es instalarlo.


# aptitude install mpd
En /etc aparece el archivo de configuracin del mpd, mpd.conf, que pasamos a editar segn
nuestras necesidades. En este punto, hay varias maneras, dejar aqu expuesta la que para m
es ms sencilla.
Creamos los directorios necesarios en nuestro home:

# mkdir /home/arctica/.mpd
# mkdir /home/arctica/.mpd/playlists

5.2. Mp3Blaster
Mp3Blaster es un programa reproductor de ficheros de audio que soporta formatos tales
como:mp3,wav y ogg, posee una interfaz grfica basada en consola con mens para la facil
navegacin entre las diferentes opciones. Entre sus caracteristicas se encuentran el control de
volumen, selector de carpetas, mezclador y por supuesto su bajo consumo de memoria.
Instalacin:
En una terminal ejecutamos:

#aptitude install mp3blaster

Ejecucin:

mp3blaster

Atajos de teclado comandos para mp3blaster:

F1: Aadir ficheros a la lista.

F2: Invertir seleccin.

F3: Seleccionar todo recursivamente.

F4: Ingresar nueva direccin.

F5: Aadir directorios como grupos.

F6: Convertir MP3 a WAV.

F7: Add URL(shoutcast)

/: Iniciar bsqueda.

Space: Seleccionar archivo.

r: Renombrar fichero.

U: Deseleccionar todo.

D: Eliminar fichero.

<: Bajar volumen del mezclador.

>: Subir volumen del mezclador.

q: Salir del programa.

?: Invocar ayuda.

4: Cancin anterior.

5: Reproducir/Pausar cancin.

6: Cancin siguiente.

1: Retroceder cancin.

2: Deneter cancin.

3: Avanzar cancin.

Os dejo con una imagen:

Ayuda fuera del gestor de reproductor:

man mp3blaster

5.3. MOC
Leer ms MOC - Music on console
Caractersticas:

MOC es un reproductor de audio fcil de manejar y ligero, ideal para equipos con
pocos recursos.
La interfaz es similar a MC (Midnight Commander, el administrador de archivos)
MOC reproduce todos los archivos en el directorio a partir del archivo seleccionado
para lo que no es necesario crear listas de reproduccin.
Es posible reproducir varios archivos o directorios de archivos y despus guardar la
lista de reproduccin como un archivo con extensin m3u.
Funciona como demonio, es decir que se ejecuta en segundo plano por lo que no
necesita entorno grfico. Esto quiere decir tambin que si necesitas usar la terminal, el
emulador de terminal cerrar el entorno grfico no es necesario detener la
reproduccin ya que sta sigue activa en segundo plano. Esto lo hace una gran opcin
para cuando estas configurando kdm, los drivers de la tarjeta de video o cosas por el
estilo y por supuesto para manejadores de ventanas y entornos minimalistas
Soporta los siguientes formatos: mp3, Ogg Vorbis, FLAC, Musepack, Speex, WAVE,
AIFF y AU entre otros.
Soporta Internet stream.
Soporta temas de configuracin.

6. Control de Procesos

Normalmente para la visualizacin y detalle de los procesos en consola utilizamos el siguiente


comando:

#ps aux

Pero en caso dado de neecsitar matar algun demonio, debemos aprendernos el


correspondiente nmero de su PID, y en el caso de que dicho proceso sea mantenido por
varios demonios, tendremos que aprendernos varios nmeros PID para luego proceder a
matarlos. En este caso os presento una herramienta que facilitara mucho mas la visualizacin y
control de los procesos.

6.1. HTop
HTop es un visor de procesos con interfaz basada en ncurses que permite gestionar procesos.
Entre las grandes ventajas que nos ofrece est el monitoreo del sistema mostrando el estado
de la memoria RAM, la Swap y el consumo de CPU.
Instalacin:

# aptitude install htop

Para la ejecucin simplemente lo invocamos por su nombre:

$ htop

Puede ser ejecutado por cualquier usuario y dependiendo de los privilegios este sobre los
procesos que se estn ejecutando en el sistema, podr o no ejecutar tareas como terminar o
matar estos procesos.
La vista de la aplicacin:

Atajos de teclado comandos para HTop:

F1: Invoca la ayuda

F2: Opciones de configuracin

F3: Buscar

F4: Cambiar orden

F5: Mostrar rbol de procesos

F6: Ordenar utilizando un parametro especifico

F7: Aumenta el valor de asignacin del proceso

F8: Disminuye el valor de asignacin del proceso

F9: Enviar una seal a un proceso (Kill)

Para ms detalles se recomienda leer el manual:

$ man htop

7 Consultando el estado del tiempo


En algunos entornos de escritorio tenemos aplicaciones que nos dicen el estado actual del
tiempo. En la consola tambin:

7.1 Weather-util

Weather-util es una aplicacin muy simple, para consultar el estado del tiempo en cualquier
ciudad del mundo.
Instalacin
Ejecutamos como root en una consola:

#aptitude (o apt-get) install weather-util

Para ejecutarlo, escribimos:

weather -i cdigo_de_la_ciudad

Para obtener el cdigo de la ciudad, tenemos que buscarlo en esta pgina Ah, en la parte de
abajo, veremos una opcin que dice: "Display all stations in a country" ("Mostrar todas las
estaciones en un pas") y ah buscar el pas que nos interese.
Si queremos ampliar la informacin mostrada en pantalla por weather, tenemos que agregar el
parmetro: -v
Tambin nos da la posibilidad de obtener un pronstico con el parmetro -f, pero eso
solamente est disponible para ciudades de Estados Unidos
Podemos definir aliases en el archivo $HOME/.weatherrc de la siguiente forma:

[alias]
City = Ciudad
Forecast = True/False (para el pronstico del tiempo)
ID = cdigo_de_la_ciudad
Verbose = 1/0 (verdadero/falso) (con esto le indicamos si queremos usar o n
el parmetro -v)

Y luego ejecutamos el programa pasndole el alias como parmetro.


Ejemplos
Este es mi $HOME/.weatherrc:

[Montevideo]
City = Montevideo
Forecast = False
ID = SUMU (este es el cdigo de una de las estaciones meteorolgicas de
Montevideo)
verbose = 1

Salida del programa ejecutando weather Montevideo (que, segn mis definiciones en
$HOME/.weatherrc, es equivalente a ejecutar weather -i sumu -v):

Carrasco, Uruguay (SUMU) 34-50S 056-00W 32M


Mar 01, 2010 - 05:00 PM EST / 2010.03.01 2200 UTC
Wind: from the SE (130 degrees) at 10 MPH (9 KT):0

Visibility: greater than 7 mile(s):0


Sky conditions: mostly clear
Temperature: 73 F (23 C)
Dew Point: 68 F (20 C)
Relative Humidity: 83%
Pressure (altimeter): 30.00 in. Hg (1016 hPa)
ob: SUMU 012200Z 13009KT 9999 FEW030 23/20 Q1016 NOSIG
cycle: 22

8. Montar unidades externas


Dentro de la consola Debian tambin es posible montar nuestros dispositivos de
almacenamiento externo haciendo uso del comando mount. Pero a la larga el montaje manual
puede resultar engorroso y repetitivo. As el usuario puede echar de menos el montaje
automtico que hacen algunos entornos de escritorio populares en el modo grfico, como
GNOME o KDE.
Por fortuna tenemos esa opcin disponible en nuestra lnea de comandos. Para poder hacer
uso de la misma, debemos de tener instalado con anterioridad los paquetes usbmount y
autofs.

apt-get install usbmount


apt-get install autofs

A continuacin se deber de editar el archivo usbmount.conf para habilitar el montaje


automtico.

emacs /etc/usbmount/usbmount.conf

Haciendo las siguientes modificaciones.

FILESYSTEMS=vfat ext2 ext3


MOUNTOPTIONS=sync,noexec,nodev,noatime,users,umask=000

Guardamos los cambios y reiniciamos el ordenador, ahora al conectar un dispositivo usb este
se montar automticamente dentro de la carpeta /media/usb*.

9. Redes sociales
9.1 Twidgwe
Twidge es un cliente de consola para las redes sociales Twitter e identi.ca; con el podremos
realizar una serie de tareas comunes en estos sitios de "microblogging" sin necesidad de abrir
un navegador web.
Actualmente se encuentra en los repositorios de testing/unstable, por lo que instalarlo no
implica ms que:

apt-get install twidge

Obviamente, necesitaremos una cuenta en cualquiera de los dos servicios para poder utilizarlo.
Antes de ejecutarlo por primera vez, es necesario configurarlo. Para ello:

twidge setup

Este comando nos guiar de forma muy clara en la configuracin de la aplicacin; nos solicitar
usuario y contrasea y, en el caso de Twitter, se genera una url a la que debemos acceder
para "decirle" a Twitter que permitimos a twidge acceder a nuestros datos mediante el API.
A continuacin, ya podremos utilizar twidge. Si lo ejecutamos, nos dir esto:

usuario@host ~ $ twidge
Invalid command name help
Usage: twidge [global-options] command [command-options]
Available global-options are:
-d
-c FILE

--debug
--config=FILE
--help

Enable debugging
Use specified config file
Display this help

Run "twidge lscommands" for a list of available commands.


Run "twidge command --help" for help on a particular command.
This is Twidge, version 1.0.5.

Copyright (c) 2008-2010 John Goerzen

Para saber qu es lo que podemos hacer, ejecutamos:

twidge lscommands

Este comando nos muestra todos los comandos disponibles de este modo:

All available commands:


Name
Description
-------------------- ------------------------------------------------------dmsend
Send direct message
block
Start blocking someone
follow
Start following someone
lsarchive
List recent status updates you posted yourself
lscommands
Display a list of all available commands
lsdm
List recent direct messages to you
lsdmarchive
List recent direct messages you sent
lsblocking
List people you are blocking
lsfollowers
List people that follow you
lsfollowing
List people you are following
lsrecent
List recent updates from those you follow
lsreplies
List recent replies to you
lsrt
List recent retweets from those you follow
lsrtarchive
List recent retweets you made yourself
lsrtreplies
List others' retweets of your statuses
setup
Interactively configure twidge for first-time use
unblock
Stop blocking someone
unfollow
Stop following someone
update
Update your status

Localizar y eliminar lneas que coincidan con una expresin regular


especficaarribaAdministracin del Sistema

Archivos configuracin de Bash


Archivos Configuracin de Bash
Solo hablar de bash, aunque me refiera a ella como shell o consola, la configuracin de
otras shells puede ser similar o igual.

Ficheros inicializacin de una sesin de login shell. p.e. ttys


/etc/profile
El primero en leerse automticamente por bash cuando este es invocado en modo login (P.e.
las ttys).
En este fichero se configuran muchas de las variables de bash (PATH, USER, MAIL,
HOSTNAME ...) y otros valores como umask. Resumiendo,en l se incluyen variables generales
del sistema.
Pero como este fichero es leido por muchas shells, no solo bash, es mejor poner las
configuraciones de esta en otros archivos especficos.
~/.bash_profile
El segundo en orden en ser ledo por bash. Normalmente poco se mete en este archivo, lo mas
importante es que indica a bash que lea otros archivos como ~/.bash_login, ~/.profile,
~/.bash_logout
~/.bash_login
Normalmente el tercero en ser ledo, si existe indica los comandos que corrern 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 ledo por mas shells,
aparte de bash. Puede ser ledo por shells nologin si estas arrancan con la invocacin a sh.
~/.bash_logout
Fichero con opciones para el momento del cierre de un login shell, lo mas habitual es que se
incluya el comando clear y nada mas.

Ficheros inicializacin para nologin shells


/etc/bash.bashrc
Bash lee y ejecuta las ordenes de este fichero. En el se incluyen variables generales del
sistema, es como un /etc/profile pero que carga cada vez que arrancamos una shell en X o
cualquier instancia de bash nologin, no es necesario reiniciar para que la shell acepte los
cambios. Su uso no es habitual.
tambin es ledo cuando se ejecuta bash a travs de un demonio de consola remota (p.e. rshd)
/etc/bashrc

Puede cumplir las mismas funciones que /etc/profile. Si existe, se leer a continuacin de
/etc/bash.bashrc, solo que este es ledo nicamente por bash, excluyendo otras shells, por lo
que si en nuestro sistema usamos varios tipos, podramos dedicar este fichero para configurar
bash.
~/.bashrc
Aqu es donde habitualmente se establece el prompt y los alias. Es un fichero para uso
individual de cada usuario de consolas que no necesitan login, sin embargo es muy comn que
este archivo sea invocado desde ~/.profile por lo que tambin afectar a consolas login. Si
queremos modificaciones individuales, este es el archivo a modificar, con preferencia a todos
los anteriores.
Nota: entiendas por nologin shell a toda shell a la cual se accede sin necesidad de ingresar
usuario y contrasea como ser xterm, konsole, gnome-terminal o bien la ejecucin de una nueva
instancia del shell sobre una shell ya activa (p.e. ejecutar $ bash). Es tambin un caso de
nologin shell el escalar/degradar privilegios mediante $ su.
En la practica podr identificar un nologin shell sabiendo que no es posible salir de ellas
mediante logout.

Otros archivos relacionados


Existen otros muchos archivos que se puede utilizar para configurar conductas de la shell
Bash.
Pero son de raro uso. Como ejemplo:
~/.bash_aliases
Fichero al que aadir como su nombre indica, alias. No es en principio necesario, ya que
.bashrc cumple esa funcin. Solo en casos muy raros puede interesar separar esos alias, de
los que usamos habitualmente y "alimentar" bash con: source .bash_aliases.
~/.bash_history
Historial de comandos.
Referencias:
man bash
Lnea de ComandosarribaAutologin en Debian

Localizar y eliminar lneas que coincidan con


una expresin regular especfica
Script cuyo objetivo no es otro que eliminar de un fichero todas aquellas lneas que contengan
una cadena determinada. Para ello uso la muy potente y siempre buena amiga ma herramienta
sed... La sintaxis, para este objetivo sera:
sed '/expresin regular o cadena/d' fichero
Si, solo eso, Es simplemente decirle a sed que encuentre esa y la sustituya por... Nada! Y
bueno, la "d" al final lo que hace es eliminar esa lnea en blanco...
Para eliminar las trazas, digamos, de una IP 192.168.1.1 del fichero access.log, quedara algo
as:
sed '/192.168.1.1/d' /var/log/squid3/access.log
Y voil! Listo! Claro que esto lo que har ser devolvernos en la salida estndard el contenido
de dicho fichero ya sin las lneas que alguna vez contuvieron la IP 192.168.1.1... Para guardar
esto debemos enviar dicha salida a un fichero temporal y luego renombrarlo al fichero original...
El proceso completo quedara as:
sed '/192.168.1.1/d' /var/log/squid3/access.log > foo
mv foo /var/log/squid3/access.log
Y listo
Enjoy it !
Lista de comandos de GNU/Linux (III)arribaViviendo en Consola

Comprobar configuracin
ifconfig

Si no se pasan argumentos, muestra el estado de los interfaces activos.


Si se pasa un slo argumento de interfaz, muestra slamente el estado de ese interfaz.
Con el argumento -a, muestra el estado de todos los interfaces, incluso de aquellos que no
estn activos.
De otros modos, configura un interfaz.

Parada e inicio de los servicios de red


La red se configura durante el arranque con el script /etc/init.d/networking, que activa
todas las interfaces de red que aparecen en las secciones auto de /etc/network/interfaces.
Mediante la lnea de comando podemos iniciar, parar o reiniciar los sevicios de red, con
los siguientes comandos:
sudo /etc/init.d/networking start
sudo /etc/init.d/networking stop
sudo /etc/init.d/networking restart

Siempre que modificamos el fichero de interfaces, debemos de reiniciar los servicios de


red.
(Tambin se disponemos de los comandos ifup e ifdown)

El fichero /etc/network/interfaces
Contiene la configuracin de las interfaces de red, cada interfaz de red a configurar
aparece en una seccin.
Cmo se configuran las interfaces de red ms habituales:

Loopback o interfaz de retorno: direccin IP 127.0.0.1.


El archivo /etc/network/interfaces incluir la seccin:
auto lo
iface lo inet loopback

Configuracin DHCP de la tarjeta de red


Si desea configurar su tarjeta de red para obtener una direccin DHCP.
# The primary network interface
auto eth0
iface eth0 inet dhcp

Despus de introducir toda la informacin y guardar el archivo, se necesita reiniciar los


servicios de red.

Configurar manualmente la direccin IP de la tarjeta de red


Si desea configurar la direccin IP editamos el archivo /etc/network/interfaces y tecleamos
los datos de nuestro direccionamiento.
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.208.7
netmask 255.255.255.0
network 192.168.208.0
broadcast 192.168.208.255
gateway 192.168.208.208

Despus de introducir toda la informacin y guardar el archivo, reiniciar los servicios de


red.
Los parmetros son:
Static (IP esttica): Si en la LAN hay un servidor DHCP y tenemos IP dinmica,
pondremos dhcp.
address (direccin IP de la mquina en la LAN): cada interfaz de red conectada a una red
IP es identificada por una IP nica de cuatro bytes (32 bits). El rango de IPs
reservadas para LAN es de 192.168.0.0 a 192.168.255.255
netmask (mscara de red de la LAN): es un nmero que establece qu parte de la IP de un
host corresponde a la red y qu parte corresponde a la mquina. Tambin nos
indica la cantidad mxima de equipos que podemos tener en nuestra red.
network (direccin IP de la LAN): es la parte de la IP de la mquina comn a todas las
mquinas de la red.
broadcast (direccin de difusin): es la IP a la que se mandan los paquetes que deben
recibir todas las mquinas de la LAN.
gateway (direccin de pasarela o puerta de enlace): es la IP de la mquina de nuestra LAN
a travs de la cual salimos hacia el exterior.
Un gateway es una mquina que tiene dos intefaces de red (una tarjeta conectada a nuestra
LAN y la otra conectada a una red exterior), cada una de ellas con una IP, la que le
corresponda en esa red. La IP del gateway suele ser la primera IP disponible (192.168.1.1)
o la ltima (192.168.1.254).

Establecer el nombre de host del sistema


Para ver el nombre del host tecleamos:
hostname

Podemos establecer el nombre del host tecleando:


sudo /bin/hostname NUEVO_NOMBRE

Cuando su sistema arranca automticamente se lee el nombre de host del archivo


/etc/hostname

Configuracin de DNS
Para hacer que el sistema consulte con uno o varios servidores de nombres, slo tiene que
aadir sus direcciones en /etc/resolv.conf.
Por ejemplo, una mquina que debe realizar bsquedas desde el servidor DNS con la
direccin IP 192.168.1.200 el archivo resolv.conf tendra lo siguiente:
nameserver 192.168.1.200

Podemos aadir varios nameserver.

F a m i l i a r i z n d on o s c o n L i n u x
1. Historia ........................................................................................................... 3
Antecedentes:.....................................................................................................................3
Nacimiento:.........................................................................................................................3
Expansin de Unix:.............................................................................................................3
Evolucin: ...........................................................................................................................4
La G.N.U.............................................................................................................................5
Distribuciones de Linux. .....................................................................................................6

2. Generalidades de la gestin del S.O. ........................................................... 6


3. Caractersticas ............................................................................................... 7
4. Estructura del S.O. UNIX ............................................................................... 8
Kernel o Ncleo ..................................................................................................................8
Dispositivos ........................................................................................................................8
Utilidades ............................................................................................................................8
SHELL o Caparazn...........................................................................................................8

5. Primera Aproximacin................................................................................... 9
Antes de entrar al Sistema: ................................................................................................9
Escribir algunos comandos para tomar contacto. ..............................................................9

6. Algunas utilidades para experimentar. ...................................................... 10


Consultar el manual..........................................................................................................10
Hacer clculos ..................................................................................................................10
Mirar el almanaque ...........................................................................................................11

7. Conceptos Bsicos del Sistema de Ficheros ............................................ 12


Distribucin de la informacin en disco: ...........................................................................12
Inodos ...............................................................................................................................12
Los ficheros pueden ser esencialmente de tres tipos: .....................................................13
Trayectoria o pathname:...................................................................................................16
Nombres de ficheros y Metacaracteres............................................................................16

8. Trabajo del Usuario con Ficheros Ordinarios. .......................................... 18


Formato de las rdenes....................................................................................................18
Crear ficheros ...................................................................................................................18
Listar nombres e informacion sobre ficheros....................................................................18
Copiar, Mover, Enlazar y Borrar Ficheros. .......................................................................19
Permisos, Propietario y Grupo. ........................................................................................21

El Sistema Operativo Unix - Linux

9. Operaciones Con Ficheros Directorios...................................................... 27


10. Flujo De Informacin. .................................................................................. 29
Entrada y salidas estndar (std).......................................................................................29
Redireccionamiento:.........................................................................................................29
Tuberas (pipes): ..............................................................................................................30
Filtros para: Contar, Ordenar y Eliminar Repetidos..........................................................31
Filtros para ver que hay en los ficheros............................................................................34
Filtro para cambiar caracteres..........................................................................................35
Buscar en ficheros. Familia grep. .....................................................................................37
Comparacion de Ficheros. ...............................................................................................38
Cortar y Pegar Ficheros. ..................................................................................................39

11. Bsqueda de ficheros. ................................................................................ 41


12. Editores: ....................................................................................................... 44
Editor VIsual. Generalidades. ...........................................................................................44
Configuracin ...................................................................................................................46
Bsquedas y reemplazos. ................................................................................................48
Los Bfers del VI ..............................................................................................................49

13. Comunicacin entre Usuarios .................................................................... 51


finger.................................................................................................................................51
who ...................................................................................................................................51
w .......................................................................................................................................51
write ..................................................................................................................................52
wall....................................................................................................................................52
Mensaje del da. ...............................................................................................................53
Mensaje de preentrada.....................................................................................................53
mail ...................................................................................................................................53

El Sistema Operativo Unix - Linux

Historia
Antecedentes:
El SO Multics se utiliz durante algn tiempo en los laboratorios Bell.
En Europa se haba desarrollado el sistema de acceso multiple de Cambridge (The Cambridge
Multiple Access System).
Tambin se emple durante algn tiempo el CTSS (sistema de tiempo compartido compatible).
Los desarrolladores de Unix aprovecharon este trabajo realizado con estos y otros sistemas
operativos, para combinar las mejores caractersticas de cada uno.

Nacimiento:
El UNIX surgi en 1964-66 cuando Ken Thompson intentaba utilizar un programa de un
ordenador grande, que funcionaba con el SO Multics, en otro ordenador llamado PDP-7. Para ello
escribi un sistema operativo nuevo llamado UNIX.
A l se uni Dennis Ritchie y el UNIX se comenz a utilizar en los laboratorios Bell.
Pronto se adapt a otros ordenadores y tuvo gran aceptacin en el ambiente universitario, del
cual recibi un gran impulso, en especial de la Universidad de Berkeley en California.
En un principio fue escrito en Ensamblador, pero el hecho de que se pudiese adaptar a
muchos tipos de ordenadores (portabilidad), se debe a que se reescribi casi en su totalidad en
lenguaje C, lenguaje de nivel medio desarrollado por Dennis Ritchie modificando otro ya existente
llamado lenguaje B.
El nacimiento de UNIX y el lenguaje C se hizo a la par y su posterior desarrollo continu
paralelo.

Expansin de Unix:
El sistema operativo Unix ha estado ejecutndose en ordenadores ms de 40 aos. En un
principio se ejecutaba en mainframes y miniordenadores, aunque su principal plataforma de
desarrollo han sido las estaciones de trabajo RISC. En la actualidad el acercamiento de los PC,s a
las estaciones de trabajo ha hecho de las plataformas Intel una buena base para utilizar Unix.
Debido a la gran portabilidad que ofrece el lenguaje
creasen versiones destinadas a otros procesadores.

C, no pas mucho tiempo antes de que

La evolucin de Unix comenz a complicarse cuando Unix se escindi para satisfacer a


diferentes plataformas hardware. Por un lado se obtuvo Xenix, de Microsoft, el primero en
ejecutarse en ordenadores Intel. La versin BSD, desarrollada en la Universidad de California, en
Berkeley, encontr alojamiento en multitud de miniordenadores de alta potencia. Unix 2.0, el
predecesor del presente System V Unix de AT&T, fue el que ms atencin acapar y es el estndar
de hoy en da.
El diagrama muestra un rbol genealgico de Unix desde 1969 hasta nuestros das. Obsrvese
cmo Unix se divide en varias versiones. Adems, es importante destacar de qu forma se
combinaron diversas versiones con el fin de obtener nuevos enfoques del sistema operativo. El
nacimiento de hbridos de diferentes versiones parece la tendencia del momento. Algunos de los
elementos ms destacables de esta numerosa familia son AIX, el sistema operativo IBM RS/6000,
Solaris de SunSoft y Mach.

El rbol genealgico de Unix.:

El Sistema Operativo Unix-Linux

Comandos Bsicos

Evolucin:
Cuando Unix era joven (versin 6), su cdigo fuente se encontraba por todas partes, con
autorizacin de AT&T, y se estudiaba frecuentemente en muchas universidades, de las cuales
haba recibido y reciba un gran impulso.
Pero AT&T, en la versin 7 (1979), comprendi que Unix era un valioso producto comercial; y
prohibi el estudio y distribucin del cdigo fuente, para evitar poner en peligro su condicin de
secreto comercial.
Para remediar la situacin y especialmente con fines educativos, en 1983, Andy Tannembaum
desarroll un SO nuevo en cuanto a cdigo, pero compatible con Unix en cuanto a su funcionalidad,
evadiendo los problemas legales para su estudio. Lo llam Minix de Mini-Unix. Finalmente su
creador cedi todos los derechos sobre Minix a una empresa que comenz a cobrar por licencia.
A principios de la decada de los 90, un estudiante de informtica se pone a trabajar en una
variante de Unix llamada Linux, con la idea de que estubiese enmarcado dentro del proyecto GNU.
El padre de la criatura es Linus Benedict Torvalds, nacido en Helsinki en 1969.
El 5 de octubre de 1991 Linus dio a conocer la primera versin oficial, que poda ejecutar el
bash (shell de GNU) y el compilador de C. Lo puso en un grupo de noticias con el siguiente
mensaje:

El Sistema Operativo Unix-Linux

Comandos Bsicos

Suspiris por recordar aquellos das del Minix-1.1, cuando los hombres eran
hombres y escriban sus propios drivers? Os sents sin ningn proyecto interesante y os
gustara tener un verdadero SO, que pudierais modificar a placer?
Os resulta frustrante el tener slo a Minix? Entonces, este artculo es para vosotros.
Como dije hace un mes, estoy trabajando en una versin gratuita de algo parecido a
Minix para ordenadores AT-386. He alcanzado la etapa en la que puede ser utilizable y voy a
poner las fuentes para su distribucin. Es slo la versin 0.02 ... pero he conseguido ejecutar
en el bash, gcc, gnu-make, gnu-sed, compress, etc.

Tras esta versin y el apoyo de voluntarios enganchados a Internet, no ha dejado de


evolucionar y mejorarse:
1992 Linus aadi Linux al proyecto GNU.
Abril de 1992, aparece la primera versin capaz de ejecutar X.
Abril de 1994, primera versin completa de Linux, la 1.0.
Diciembre de 1996 aparece la versin 2.0.
Para comprobar la versin actual http://www.kernel.org
Linux ha sido registrado bajo los trminos de la Licencia Pblica General GNU (GNU General
Public License) o GPL. Esta licencia, escrita por la Free Software Foundation (FSF), est diseada
para evitar que alguna persona restrinja la distribucin de software. En pocas palabras, dice que
aunque Ud. cobre a alguien por entregarle una copia, no podr impedir que ese alguien la regale.
Tambin significa que debe estar disponible el cdigo fuente. Esto es til para los programadores.
Cualquiera puede modificar Linux y an distribuir sus modificaciones, siempre que mantenga el
cdigo bajo la misma licencia.

La G.N.U.
Linux est regido por lo que se conoce como la Licencia Pblica General de GNU, o GPL,
General Public License. La GPL fue desarrollada para el proyecto GNU por la Free Software
Foundation, que podemos traducir como "Fundacin por el Software Gratuito". La licencia hace una
serie de previsiones sobre la distribucin y modificacin del "software gratis". "Gratis" en este
sentido se refiere a libertad, y no slo al coste. La GPL puede ser interpretada de distintas formas,
y esperamos que este resumen ayude a entenderla y cmo afecta a Linux. Se puede encontrar una
copia completa de la Licencia en Internet o en cualquier libro de Linux.
Originalmente, Linus Torvalds lanz Linux bajo una licencia ms restrictiva que la GPL, que
permita que el software fuera libremente distribuido y modificado, pero prohiba su uso para ganar
dinero. Sin embargo, la GPL autoriza que la gente venda su software, aunque no le permite
restringir el derecho que su comprador tiene a copiarlo y venderlo a su vez.
En primer lugar, hay que aclarar que el "software gratis" de la GPL no es software de dominio
pblico. El software de dominio pblico carece de copyright y pertenece literalmente al pblico. El
software regido por la GPL s tiene el copyright de su autor o autores. Esto significa que est
protegido por las leyes internacionales del copyright y que el autor del software est declarado
legalmente. No slo porque un programa sea de libre distribucin puede considerrsele del dominio
pblico.
El software regido por la GPL tampoco es "shareware". Por lo general, el "shareware" es
propiedad del autor, y exige a los usuarios que le paguen cierta cantidad por utilizarlo despus de la
distribucin. Sin embargo, el software que se rige por la GPL puede ser distribuido y usado sin
pagar a nadie.
La GPL permite a los usuarios modificar el software y redistribuirlo. Sin embargo,
cualquier trabajo derivado de un programa GPL se regir tambin por la GPL. En otras
palabras, una compaa nunca puede tomar Linux, modificarlo y venderlo bajo una licencia

El Sistema Operativo Unix-Linux

Comandos Bsicos

restringida. Si un software se deriva de Linux, ste deber regirse por la GPL tambin.
La GPL permite distribuir y usar el software sin cargo alguno. Sin embargo, tambin permite
que una persona u organizacin gane dinero distribuyendo el software. Sin embargo, cuando se
venden programas GPL, el distribuidor no puede poner ninguna restriccin a la redistribucin. Esto
es, si compras un programa GPL, puedes a su vez redistribuirlo gratis o cobrando una cantidad.
Esto puede parecer contradictorio. Por qu vender software cuando la GPL especifica que
puede obtenerse gratis? Por ejemplo, supongamos que una empresa decide reunir una gran
cantidad de programas GPL en un CD-ROM y venderlo. La empresa necesitar cobrar por el hecho
de haber producido el CD, y asimismo querr ganar dinero. Esto est permitido por la GPL.
Las organizaciones que vendan el software regido por la GPL deben tener en cuenta algunas
restricciones. En primer lugar, no pueden restringir ningn derecho al comprador del programa.
Esto significa que si compramos un CD-ROM con programas GPL, podremos copiar ese CD y
revenderlo sin ninguna restriccin. En segundo lugar, los distribuidores deben hacer saber que el
software se rige por la GPL. En tercer lugar, el vendedor debe proporcionar, sin coste
adicional, el cdigo fuente del software a distribuir. Esto permite a cualquiera adquirir el software
y modificarlo a placer.
Permitir a una empresa distribuir y vender programas que son gratis es bueno. No todo el
mundo tiene acceso a Internet para llevarse los programas, como Linux, gratis. La GPL permite a
las empresas vender y distribuir programas a esas personas que no pueden acceder al software
con un coste bajo. Por ejemplo, muchas empresas venden Linux CD-ROM por correo, y hacen
negocio de esas ventas. Los desarrolladores de Linux pueden no tener constancia de estos
negocios. Por ejemplo, Linus sabe que ciertas compaas venden Linux, y l no va a cobrar nada
por esas ventas.

Distribuciones de Linux.
Es imprescindible seleccionar una distribucin que se adapte a las necesidades de cada uno
para poder instalar, configurar y administrar un sistema Linux con xito.
Hace aos, cuando Linux empez a distribuirse por Internet, instalar Linux consista en bajarse
de Internet todos los archivos necesarios a unos disquetes. En esos tiempos la instalacin poda
llegar a ser un laborioso proceso, haciendo que muchos usuarios frustrados acabasen por rendirse.
Por ello, programadores de todo el mundo se unieron para crear distribuciones que incorporasen el
sistema operativo y programas que facilitaran la instalacin, adems de los paquetes conteniendo
programas de todo tipo. De esta forma la instalacin se reduca a seguir unos pasos, dando la
posibilidad a los usuarios con pocos conocimientos de poder instalar un sistema operativo de este
tipo con un menor esfuerzo.
En este momento hay un buen nmero de distribuciones en las que poder elegir, pero cada
una de ellas tiene sus pros y sus contras.

Generalidades de la gestin del S.O.


Est escrito en C, en lugar de enamblador, como la mayora de los sistemas, lo que le permite
una completa adaptacin a los diferenes ordenadores.
Como otros SSOO consta de dos partes:
1. El ncleo, que se encarga de la gestin de la memoria, planificacin de la CPU y el Sistema
de ficheros.
2. Los programas del sistema, que facilitan la compilacin, ejecucin y manipulacin de
ficheros.
La CPU est planificada de forma que favorece los procesos interactivos.
La planificacin de los procesos se hace mediante un algoritmo de prioridades, de forma que a
nmeros mayores corresponde una menor prioridad y procesos del sistema poseen prioridad

El Sistema Operativo Unix-Linux

Comandos Bsicos

negativa. Para los procesos que utilizan mucho la CPU, se les concede tiempo segn Round-Robin.
La espera de un proceso indefinidamente, se resuelve mediante el cambio de prioridad por
envejecimiento de los procesos.
Existen dos tendencias en la planificacin de la memoria, dependiendo de las diferentes
versiones de Unix:
a) En unas se utiliza el intercambio (swapping) entre los diferentes procesos. Los
procesos vctimas se eligen: por estar ociosos, llevar mucho tiempo en memoria o ser
grandes. Y se cargan en memoria si llevan mucho tiempo fuera o son pequeos.
b) En las versiones de Berkeley y Linux, se utiliza el sistema de memoria virtual con
paginacin bajo solicitud.
El sistema de entrada y salida maneja normalmente dos tipos de dispositivos:
1. De bloque, como discos y cintas.
2. Y de caracteres, terminales e impresoras.
Los ficheros se organizan en directorios estructurados en rbol y se manejan mediante bloques
de datos.
Linux tiene soporte para diferentes sistemas de archivos, algunos son sistemas de archivos de
redes especializados o son sistemas de archivos desarrollados para otros sistemas operativos. Una
sorprendente cantidad de ellos pueden ser utilizados como sistema de archivos nativo en Linux:
ext2, ext3, ext4, ReiserFS, XFS, y Journaled File System (JFS).
La cuarta extensin del sistema de archivos (ext4fs) existe porque algunos desarrolladores
queran incorporar nuevas y mejoradas caractersticas al ext3. La mejora ms llamativa de ext4
est en el soporte de archivos y sistemas de archivos de gran tamao.

Caractersticas
Multitarea: Un usuario puede ejecutar varios programas (procesos) a la vez, sin tener que
detener una aplicacin para ejecutar otra.
Multiusuario: Varios usuarios pueden acceder a las aplicaciones y a los recursos en el mismo
PC y al mismo tiempo. Con la impresin para cada uno de ellos de estar trabajando solo.
Tiempo compartido: Es la forma de conseguir las caractersticas anteriores, y se basa en que
en una fraccin de tiempo muy pequea, la CPU atiende a varios usuarios. A cada proceso se le
dedica por turno una unidad de tiempo llamada cuanto.
La memoria: es aprovechada al mximo, para acceder al disco el menor nmero de veces,
consiguiendo mayor rapidez.
Recuperacin automtica del sistema de ficheros despus de una cada del sistema, o
interrupcin elctrica.
Seguridad de acceso a la informacin de cada usuario, mediante una serie de permisos que el
propietario puede conceder o denegar sobre cada uno de sus ficheros.
Multiplataforma: Corre en muchos PCs distintos (Intel 386/486/Pentium y compatibles,...).
Facilita la portabilidad del software, entre plataformas, al menos a nivel de cdigo fuente.
Shell programables, lo que le hace ser un SO muy flexible.

El Sistema Operativo Unix-Linux

Comandos Bsicos

Estructura del S.O. UNIX


Es un SO jerrquico, ya que se organiza en una serie de estratos, cada uno de los cuales
interacta con su entorno a travs de interfaces bien definidos.
SHELL
Utilidades

Hardware
Kernel
Dispoditivos

Kernel o Ncleo
Es el corazn del sistema, la parte ms cerrada al usuario y ms cercana al hardware.
Reside permanentemente en memoria. Su trabajo consiste en:
o Planificar, coordinar y gestionar la ejecucin de procesos.
o Dar servicio al sistema, como entrada / salida y gestin de ficheros.
o Manejar las operaciones dependientes del hardware, realizando las operaciones de
ms bajo nivel de manera que se oculten al usuario.

Dispositivos
Los ficheros de dispositivo son los intermediarios entre el SO y el dispositivo fsico.

Utilidades
Estas rdenes tambin conocidas como herramientas, que van desde el compilador de C,
hasta el editor de texto, pueden utilizarse por separado o de forma conjunta para llevar a cabo
tareas tiles. Se invocan por su nombre a travs del Shell.

SHELL o Caparazn
Es la parte que permite al usuario comunicarse con el sistema, tambin se le conoce como
"caparazn".
Puede estudiarse desde dos puntos de vista:
-

1.- Como intrprete de comandos, es un programa que siempre est en ejecucin.


Espera que introduzcamos una orden.
Analiza la lnea.
Comprueba su correccin y los permisos.
Y llama a ejecucin al programa o programas necesarios.

2.- Como lenguaje de programacin: Combina, mediante estructuras de control grupos


de rdenes, estos ficheros se llaman procedimientos Shell, Shell Script o guiones Shell, adems
posee sus propias sentencias. (se estudiarn ms adelante)

El Sistema Operativo Unix-Linux

Comandos Bsicos

Existen varios tipos de SHELL diferentes:


sh: Bourne Shell (Unix System V, Xenix). Los shell tipo Bourne toman su nombre a partir de su
inventor, Steven Bourne. Este fue el shell original de Unix, denominado sh; a partir de entonces, la
mayora de los shells tienen un nombre con el sufijo sh para indicar que son extensiones de la idea
original.
Est diseado para usuarios experimentados, su prompt por defecto es el signo dlar ($).
Tiene capacidad para redireccionar entradas y salidas, interpretar metacaracteres, usar tuberas y
filtros, manejar variables y adems posee su propio lenguaje de programacin.
Tradicionalmente, los shell Bourne se han utilizado para los scripts de shell por razones de
compatibilidad con el sh original
rsh: Reduced Shell, es un subconjunto del anterior, contiene las rdenes bsicas. No permite
el cambio de directorio ni el redireccionamiento.
csh: C Shell (Berkeley), fue implementado por Bill Joy, los shells C han sido ms comunes en
su aplicacin interactiva. Es similar al sh, pero aade algunas caractersticas especficas para el
programador de C.
Ksh: Korn Shell, desarrollado por David Korn de Bell Laboratories, incorpora la mayor parte de
las caractersticas del csh y conserva la sintaxis y caractersticas bsicas del sh.
Bash: Bourne Again Shell. Fue desarrollado en el marco GNU, y es el derivado ms extendido
del Bourne Shell.
Tcsh: Una versin de csh para Linux.
En principio el Administrador del sistema adjudica un tipo de Shell a cada usuario, aunque este
puede cambiarse tecleando el nombre de otro Shell (si tiene permiso); se sale de un Shell pulsando
Ctrl + d.

Primera Aproximacin
Antes de entrar al Sistema:
Debe de tener creada una cuenta de usuario, la cual tendr un nombre y que adems puede
llevar asociada una palabra clave.
Se podr acceder al sistema mediante cualquier terminal que est preparado, en cuyo caso
mostrar por pantalla: login:, esto quiere decir que est esperando a que le introduzcamos un
nombre de usuario. Una vez introducido y pulsado Return puede que nos pida una palabra clave
password: Pasados estos requisitos puede que aparezca algn mensaje y debajo el prompt del
Sistema.
Para los usuarios habitualmente el prompt es slo el signo dlar ($), pero en linux suele
aparecer por defecto: el nombre del usuario, el de la computadora y la trayectoria actual en el rbol
de directorios (el directorio de conexin se muestra como ~).

Escribir algunos comandos para tomar contacto.


Hay que tener en cuenta que el UNIX distingue entre maysculas y minsculas.
Se adelantan dos rdenes de gestin de ficheros, para crear un directorio prueba, en el que
se realizarn las primeras prcticas:
mkdir nombre_dir
Crea un nuevo directorio.
cd nombre_dir
Activa o se traslada al directorio indicado.

El Sistema Operativo Unix-Linux

Comandos Bsicos

date
Muestra la fecha actual.
who
Indica que usuarios estn en ese momento conectados al Sistema.
clear
Borra la pantalla.
echo mensaje
Vuelve a escribir el mensaje.
echo mensaje > fichero
El signo mayor que (>), significa redirigir la salida o resultado de un comando. Guardara el
mensaje dentro del fichero que hayamos indicado.
ls
Lista los nombre de los ficheros.
cat fichero
Visualizara el contenido del fichero, aunque su principal funcin es concatenar ficheros.
rm fichero
Borra el fichero indicado.

Cuando se desea terminar un programa antes de su fin normal debemos pulsar la tecla Supr
dos veces en Unix y Ctrl + C en Linux.
Para salirnos del Sistema (modo comando) pulsamos las teclas Ctrl + d. (Unix) o exit


1 Prctica de familiarizacin con las rdenes anteriores.

Algunas utilidades para experimentar.


Consultar el manual
man orden
Nos explica la utilidad y el funcionamiento de la orden. Es un autntico manual adaptado a
nuestro sistema en particular.

Hacer clculos
bc
Se puede emplear como una calculadora normal.
Para separar los decimales emplea el punto (.).
Admite cualquier nivel de parntesis.
Las operaciones son: + (suma), - (resta), * (multiplicacin), / (divisin), % (mdulo o resto), ^
(exponenciacin).
Tiene capacidad para asignar valores a variables utilizando el signo igual (=).
Utiliza unas variables internas que rigen su trabajo, a las que les podemos cambiar su valor,

El Sistema Operativo Unix-Linux

Comandos Bsicos

10

como son:
-

obase=n base del sistema de numeracin en el que mostrar los resultados.

ibase=n dem para leer las entradas.

scale=n n de dgitos decimales que se deben de tener en cuenta en un


clculo, comprendido entre 0 y 99,

Permite la creacin de funciones, lo cual no se explicar por ahora; un ejemplo:


define a(x,y){
auto z
z = x * y
return(z)
}
Se usara: a(4, 7.8)

Mirar el almanaque
cal [[mes] ao]
Sin argumento nos muestra fecha, hora y despliega el mes actual, anterior y posterior.
Con un solo n del 0 al 9999 muestra todo el calendario del ao correspondiente; y si le
especificamos mes y ao slo muestra ese mes.

2 Prctica de familiarizacin con las utilidades anteriores.

El Sistema Operativo Unix-Linux

Comandos Bsicos

11

Conceptos Bsicos del Sistema de Ficheros


Distribucin de la informacin en disco:
- Sector de arranque. Almacena un pequeo programa de inicializacin, que a su vez pasa el
control a otro ms grande o al mismo KERNEL. En los sistemas de ficheros que no poseen
arranque el primer bloque no se utiliza.
- Superbloque tambin conocido como Cabecera del Sistema de Ficheros. Contiene datos
importantes sobre el resto de la distribucin del disco, como es:
Bloques ocupados por los i-nodos: isize.
Bloque ocupados por los ficheros: fsize.
Puntero a la tabla de bloques disponibles.
- Tabla de i-nodos. Se almacenan a partir del bloque 2 con una longitud de isize bloques; estn
numerados secuencialmente con un tamao fijo de 64 bytes en los que se almacena informacin
relativa a un fichero.
- Bloques de ficheros. En ellos se almacena la informacin que contienen los ficheros (y otra
informacin necesaria como distintas tablas).
- Area de swap

Inodos
Los ficheros son la unidad fundamental del Sistema de Ficheros Linux. Cada fichero al ser
grabado es asociado automticamente y durante toda su vida a un inodo (nodo-i), este identifica
perfectamente al fichero asociado y contiene los siguientes datos del fichero al que identifica:
TIPO: ordinario (-), directorio (d), especial (b) o (c), enlace simblico (l)
PROPIETARIO: usuario que cre el fichero.
GRUPO: grupo al que pertenece el usuario.
PERMISOS: pueden ser de lectura, escritura y ejecucin para el propietario, su grupo y
el resto de los usuarios. Estos se pueden alterar segn las necesidades de seguridad con el
comando chmod.
NMERO DE ENLACES: un enlace es la unin entre un nombre de fichero y un inodo.
Un mismo fichero puede estar referenciado por otro nombre. Los enlaces se pueden crear con
la orden ln.
TABLA DE PUNTEROS: es un vector con trece posiciones, cada una de las cuales
almacena un puntero, cuyo significado es:
-

Los diez primeros punteros sealan a los diez primeros bloques de informacin del
fichero.

El dcimoprimer puntero seala a otra tabla que contiene punteros, que a su vez
apuntan a bloques de informacin.

El dcimosegundo puntero seala a otra tabla que contiene punteros, que a su vez
apuntan a tablas de punteros, que apuntan a bloques de informacin.

El dcimotercer puntero seala a otra tabla de punteros, cada uno de los cuales
apuntan a tablas de punteros, que a su vez apuntan a tablas de punteros, que
apuntan a bloques de informacin.

FECHA DE CREACION.
FECHA DE LA LTIMA MODIFICACION.
FECHA DE LA LTIMA UTILIZACION.

El Sistema Operativo Unix-Linux

Comandos Bsicos

12

Para comprobar el n de inodo, usar la orden ls con la opcin -i.

Los ficheros pueden ser esencialmente de tres tipos:


ORDINARIOS: lo que normalmente se entiende por ficheros, contienen texto, datos o
programas.
ESPECIALES: corresponden a dispositivos fsicos (hacen de interface entre el Sistema y el
dispositivo fsico), sirven para que nos podamos comunicar con discos, impresoras, terminales y la
memoria del Sistema. Son llamados tambin ficheros especiales de dispositivos, y pueden ser de:
o Bloques (b), disquete, particin del disco duro, disco duro entero,...
o Caracteres (c), cinta magntica, puerto paralelo, puerto serie,...
Esos ficheros se almacenan en el directorio /dev:
o /dev/fd0  disquete de la primera disquetera (A: en Windows).
o /dev/sda  primer disco duro (sin considerar particiones) (antes eran /dev/hda para
discos IDE y /dev/sda para SCSI).
o /dev/sda1  primera particin del primer disco.
o /dev/sdb  segundo disco duro.
o /dev/sdc  disco USB (se utiliza emulacin SCSI).
o /dev/sdc1  particin de un disco USB.
o /dev/ttyS1  primera terminal de consola.
o /dev/ttyS2  segunda terminal de consola.
o /dev/lp0  primer puerto paralelo.
o /dev/null  cualquier dato enviado a este dispositivo desaparece.
o /dev/pty  pseudoterminales, proporcionan un "terminal" a sesiones remotas.
o /dev/console  consola del sistema, monitor conectado directamente a su sistema.
o /dev/tty  consolas virtuales del sistema.
DIRECTORIOS:

 Con la orden cat fichero Cmo accede el SO a los bloques de este fichero?.
Los directorios son ficheros que contienen informacin sobre ficheros u otros directorios, esta
informacin es su nombre y nmero de inodo. Con el comando ls se pueden visualizar los nombres
de los ficheros contenidos en el directorio y otros datos.
Linux utiliza la estructura de directorios en forma de rbol, para mantener la cohesin entre sus
ramas, cada directorio contiene otro llamado . (punto), que hace referencia a l mismo, y otro .. (dos
puntos), que hace referencia al su directorio padre.
Para ver la informacin de los directorios . y .., utilizar la orden ls con la opcin -a.
Utilizar la orden ls -l, que nos muestra la mayor parte de las caractersticas de los ficheros y
directorios (tipo, permisos, enlaces, propietario, grupo, ocupacin en bytes, fecha ltima actualizacin y
nombre del fichero).


Distingue entre los tipos de ficheros, para ver ficheros de dispositivo en /dev.

Observa los permisos de los ficheros ordinarios y de los directorios. Son iguales?

A qu grupo perteneces?

Estudiar el n de enlaces de los directorios.


a) Recin creado.
b) Con distinto n de subdirectorios.

Ejemplo de estructura bsica de un sistema Linux:

El Sistema Operativo Unix-Linux

Comandos Bsicos

13

Directorio raiz del sistema de ficheros. En algunos casos directorio home del
administrador.

bin

Abreviatura de binaries. En este directorio se encuentran los rdenes bsicas del SO. En
/usr/bin tambin hay rdenes bsicas, pero son menos esenciales.

boot Aqu estn los ficheros binarios de arranque del sistema (vmlinuz)
dev

Contiene los ficheros especiales o de dispositivo (device drivers). Son usados para
acceder a los dispositivos del sistema y recursos, como discos duros, mdems,
memoria, etc. Por ejemplo, de la misma forma que podemos leer datos de un fichero,
podemos leerla desde la entrada del mdem usando /dev/modem.

etc

En este directorio se encuentran las rdenes relacionadas directamente con la


administracin del sistema, as como los ficheros de datos asociados. Estos incluyen
/etc/passwd (la base de datos de usuarios), /etc/rc (guiones de
inicializacin del sistema), etc.

home Por cada usuario cuelga de home un directorio que por defecto tendr el mismo nombre
que el del usuario. Ejemplo /home/user01. Estos a su vez dentro de su directorio pueden
crear la estructura de ficheros y directorios que necesiten.

root

En algunos sistemas es el directorio de conexin (home) del administrador.

El Sistema Operativo Unix-Linux

Comandos Bsicos

14

lib

Directorio que contiene las libreras compartidas. Estas son comunes para todos los
programas que las usan, en lugar de tener cada programa su copia.

proc No existe fsicamente, es un SF virtual. Los ficheros que contiene residen realmente en
memoria. En l podemos encontrar informacin sobre el sistema (procesos).

sbin

Contiene los programa utilizados en la inicializacin del sistema y en la recuperacin del


mismo.

tmp

Contiene los ficheros temporales que el Sistema necesita crear para realizar
determinados trabajos.

usr

Para almacenar otros directorios accesibles a los usuarios, tales como: /usr/lib, /usr/bin,
/usr/share/man, /usr/share/doc. En algunos sistemas, de aqu cuelgan los directorios de
los usuarios.
Los directorios descritos arriba son esenciales para que el sistema est operativo, pero
la mayora de las cosas que se encuentran en /usr son opcionales para el sistema. De
cualquier forma, son estas cosas opcionales las que hacen que el sistema sea til e
interesante, contiene la mayora de los paquetes grandes de programas y sus ficheros
de configuracin.

/usr/X11R6

Contiene el sistema X Window si lo instalamos. El sistema X Window es


un entorno grfico grande y potente el cual proporciona un gran nmero de utilidades y
programas grficos.

/usr/bin Es el almacn real de programas del sistema Unix. Contiene la mayora de los
programas que no se encuentran en otras partes como /bin.

/usr/etc Como /etc contiene diferentes ficheros de configuracin y programas del sistema,
/usr/etc contiene incluso ms que el anterior. En general, los ficheros que se encuentran
en /usr/etc/ no son esenciales para el sistema, a diferencia de los que se encuentran en
/etc, que si lo son.

/usr/include

Contiene los ficheros de cabecera para el compilador de C. Estos ficheros


(la mayora de los cuales terminan en .h, de header) declaran estructuras de datos,
subrutinas y constantes usados en la escritura de programas en C. Los ficheros que se
encuentran en /usr/include/sys son generalmente usados en la programacin de Unix a
nivel de sistema.

/usr/include/g++

Contiene ficheros de cabecera para el compilador de C++ (muy parecido


a /usr/include).

/usr/lib Contiene las libreras equivalentes stub y static a los ficheros encontrados en /lib.
Adems, varios programas guardan ficheros de configuracin en /usr/lib.

/usr/local

En general, los programas que se encuentran en /usr/local son


especficos de nuestro sistema, esto es, el directorio /usr/local difiere bastante entre
sistemas Unix. Aqu encontraremos programas grandes como TEX (sistema de
formateo de documentos) y Emacs (gran y potente editor), si los instalamos.

/usr/man

Este directorio contiene las pginas de manual.

/usr/src Contiene el cdigo fuente (programas por compilar) de varios programas de nuestro

El Sistema Operativo Unix-Linux

Comandos Bsicos

15

sistema. El ms importante es /usr/src/linux, el cual contiene el cdigo fuente del kernel


de Linux.

opt

Este es la raz del subrbol que contiene los paquetes de aplicacin especficos.

var

Este contiene los directorios de todos los ficheros que cambian de tamao o tienden a
crecer, como /var/adm (ficheros de registro y contabilidad), /var/mail (ficheros de correo
del usuario), /var/spool (ficheros que van a ser pasados a otro programa), /var/news
(mensajes de inters comn),...

mnt o media De este cuelgan directorios para montar sistemas de ficheros sobre el Root File
System. Por ejemplo /mnt/floppy, /mnt/cdrom,...

lost+found (perdido+encontrado) Contiene ficheros que por algn problema no estn enlazados
al Sistema de Ficheros.


Explorar la estructura de directorios.

Trayectoria o pathname:
Es el camino que hay que seguir dentro de la estructura arborescente de directorios para
encontrar un fichero o directorio.
Vamos a distinguir dos tipos de trayectorias:
1. Trayectoria absoluta es la que parte del directorio raz (root).
2. Trayectoria relativa es la que parte del directorio de trabajo.
Referencias a directorios especiales:
-

Directorio raz (root) simbolizado con la barra de dividir.

Directorio domicilio o casa (HOME), es el directorio que le corresponde al usuario


dentro del directorio home o usr; Nos vamos a casa con cd.

Directorio de trabajo, activo o en curso, es aquel en el que nos encontramos


trabajando en un momento determinado, se representa por un punto (.). pwd nos
informa del directorio actual.

Directorio padre del directorio en curso, es el directorio del cual cuelga el directorio
activo, se representa por dos puntos (..).

Nombres de ficheros y Metacaracteres


Linux admite nombres largos de hasta 255 caracteres (Unix originalmente hasta 14 caracteres)
normalmente incluyen caracteres alfanumricos y el punto (.).
En un directorio no puede haber dos ficheros con el mismo nombre, pero s en directorios
diferentes.
Cuando un nombre empieza por un punto se oculta a algunas rdenes.
Dentro de los nombres de fichero se interpretan de forma especial los siguientes caracteres,
tambin llamados metacaracteres. Se usan especialmente para hacer referencia a un grupo de
ficheros:
-

* Equivale a 0 o ms caracteres.

El Sistema Operativo Unix-Linux

Comandos Bsicos

16

? Equivale a un solo carcter.

[caracteres] Equivale a cualquier carcter contenido dentro de los corchetes, slo a


uno. Se puede especificar un rango de caracteres con solo indicar el primero y el
ltimo separados por un guin (-). Tambin se puede negar el conjunto de caracteres,
para indicar cualquier carcter que no est entre los corchetes, ponindole delante el
signo de admiracin [!caracteres].

\ Suprime el significado propio del metacarcter que vaya a continuacin.

El proceso de sustitucin de los metacaracteres, por los nombres de los ficheros que
correspandan se llama expansin de los metacaracteres, y es efectuado por el intrprete de
comandos, de esta forma los comandos u rdenes nunca ven los metacaracteres.

Crear todos los ficheros necesarios para practicar con los metacaracteres, al menos con la orden
ls.

El Sistema Operativo Unix-Linux

Comandos Bsicos

17

Trabajo del Usuario con Ficheros Ordinarios.


Formato de las rdenes
orden [opcin(es)] [argumento(s)]
Siempre es obligatorio el nombre de la orden, teniendo en cuenta que Unix distingue entre
maysculas y minsculas.
Las opciones matizan la forma de trabajar la orden. Suelen ser un solo carcter, normalmente
precedido por un guin (-), si hay varias se pueden colocar juntas (sin mediar espacio) despus de
un solo guin.
Los argumentos nos indican con que va a trabajar la orden, suelen ser nombres de ficheros, de
directorios, usuarios, terminales, etc. Si hay que indicar varios se pueden utilizar los metacaracteres
o simplemente se separan con un espacio.
Existen comandos sucios, que no responden a este formato.

Crear ficheros

Vaco:
cat /dev/null > fichero
> fichero
Las dos rdenes tienen el mismo efecto, en la primera de ellas se emplea el dispositivo nulo.

Con informacin tecleada por nosotros:


cat > fichero
cat -> fichero
Esta orden nos permitir introducir tantas lneas de texto como deseemos, al final de las cuales
pulsaremos ^d o ^c como seal de final de fichero, y se almacenarn en el fichero indicado.

Con informacin procedente de cualquier otra orden


Esta otra orden debe de producir una salida redireccionable.
orden > fichero

Listar nombres e informacion sobre ficheros.


ls [opciones] [ficheros | directorio(s)]
Sin ninguna opcin ni argumento produce un listado de los nombres de los ficheros del
directorio activo en orden alfabtico. Entre las opciones ms interesantes contamos con:
-l Imprime informacin detallada sobre el fichero: tipo, permisos, enlaces, propietario,
grupo, ocupacin en bytes, fecha de la ltima actualizacin y nombre del fichero.
-n Igual que -l, pero del propietario y grupo no muestra su nombre, sino su nmero,
llamados UserId y GroupId respectivamente.
-i Muestra el n de i-nodo de cada fichero.
-a Indica a la orden que tenga en cuenta a todos los ficheros incluidos los ocultos.
-d Para que nos muestre informacin del directorio y no de los ficheros que contiene el
directorio.
-t Los muestra ordenados por fecha de actualizacin, primero los ms recientes.
-r Invierte el orden de mostrar los ficheros.
-R Recursividad.

El Sistema Operativo Unix-Linux

Comandos Bsicos

18

-F Pone una (/) despus de cada directorio y un (*) despus de cada ejecutable.
La orden l es un alias de ls la.
Como argumentos se puede especificar: nombre(s) de fichero(s), de directorio(s) y utilizar los
metacaracteres.
file fichero(s)
Realiza una suposicin sobre qu tipo de informacin almacena un fichero; as nos puede
indicar s un fichero es de texto, ejecutable, directorio, un programa fuente, est comprimido ...
Para ello revisa la primera parte del fichero en busca de palabras clave o nmeros especiales
del linkador, tambin consulta los permisos de acceso. Sus resultados no siempre son correctos.

Ojear la salida de rdenes o contenido de ficheros.


orden | less
less fichero(s)
Dosifica la salida por pantalla, cuando el resultado no entra en ella.
Posee una serie de comandos para poder desplazarnos por la salida.
h.....................................Ayuda de less.
q.....................................Para salir de less.
j, Intro o flecha abajo .....Avanza lnea.
k o flecha arriba.............Retrocede lnea.
Nj..................................Avanza N lneas.
Nk.................................Retrocede N lneas.
z.....................................Avanza pantalla.
w ....................................Retrocede pantalla.
Barra espaciadora .........Avanza pgina.
Ctrl + L...........................Refresca pantalla.
Ejercicios:


Ver ms opciones de less y ls con man.

Probar las distintas opciones y sus combinaciones.

Seguir practicando con los metacaracteres.

Ver el n de enlaces de los directorios.

Comprobar que los directorios enlazados tienen el mismo n de inodo.

Copiar, Mover, Enlazar y Borrar Ficheros.

Copiar:
cp [opc.] f_origen f_destino
-i Pide confirmacin antes de sobreescribir.
-r Copia recursiva, incluyendo subdirectorios.
Realiza duplicados de ficheros, en el mismo directorio con distinto nombre o en distinto
directorio con cualquier nombre. S el nombre del fichero destino ya existe se pierde la informacin
que pudiera tener.
Sobre el f_origen hay que tener al menos permiso de lectura (r) y sobre el f_destino, si ya
existe, de escritura (w).
Como destino se puede indicar un directorio, en cuyo caso se copiaran todos los ficheros

El Sistema Operativo Unix-Linux

Comandos Bsicos

19

origen en l.
cp f(s)_origen directorio
Los ficheros origen se pueden indicar por su nombre completo, separados por blancos o
utilizando metacaracteres; por supuesto se puede emplear una trayectoria.
Con esta orden al duplicarse la informacin nunca se pierde el contenido del fichero origen.

Mover:
mv [-i] f_origen f_destino
mv [-i] f(s)_origen directorio
Renombra un fichero dentro de un directorio o lo traslada a otro directorio.
La diferencia con la orden cp es que mv no duplica la informacin, desapareciendo siempre los
ficheros origen.
-i Si en el destino ya existe el fichero, pregunta antes de sobreescribirlo.
La mayora de las veces es ms rpida que cp, ya que se limita solo a anotar el cambio en los
ficheros directorio.

Enlazar:
ln [-f] f_origen f_destino
-f No hace preguntas.
A un mismo fichero se le da otro nombre, los dos nombres se referirn en adelante al mismo
fichero.
No se hace una copia del fichero origen y el nuevo nombre puede estar en distinto directorio.
Lo nico que realiza esta orden es aadir una nueva entrada en el directorio que corresponda
con el nombre del fichero destino y el n de i-nodo del fichero origen.
No es necesario poseer ningn permiso sobre el fichero origen, pero si debemos poseer
permiso de escritura (w) sobre el directorio destino y de lectura sobre el directorio origen.
Como origen se pueden indicar varios ficheros si el destino es un directorio.
-s Realiza un enlace simblico.
Un enlace o vnculo simblico es un archivo que slo contiene el nombre de otro archivo.
Cuando el SO opera sobre el enlace simblico, se dirige hacia el archivo al que apunta. Se usan
para enlazar ficheros en computadoras diferentes o en distintos sistemas de ficheros, tambin para
crear varios nombres a un directorio.
Estas tres rdenes tienen en comn, que el contenido del fichero destino, si existe, es
destruido.

Borrar:
rm [opc] fichero(s)
Para borrar un fichero es necesario poseer permiso de escritura sobre el directorio, no sobre el
fichero, pues lo que realmente se hace es borrar un entrada del directorio.
Si el fichero a borrar tiene varios enlaces, se borrar el enlace que tiene con el nombre de
fichero indicado, los dems permanecen.
-f (forzar) S no tenemos permiso de escritura sobre el fichero, se salta una pregunta
de confirmacin y lo borra.
-i (interactivo) Pide confirmacin en todos los ficheros.
-r (recursivo) Borra a partir de donde le indiquemos, toda la posible rama de

El Sistema Operativo Unix-Linux

Comandos Bsicos

20

subdirectorios, es rpida y peligrosa.


Ejemplos peligrosos:
rm * .c
rm -r dir1
Ejercicios:


Duplicar un fichero en el mismo directorio.

Copiar varios ficheros al mismo tiempo a otro directorio.

Renombrar un fichero. Comprobar si le ha cambiado el n de inodo.

Mover ficheros a otro directorio. Tienen otro inodo?

Crear enlaces de un fichero en el mismo y distinto directorio. Comprobar inodos y el n de


enlaces. Borrar algunos de los enlaces creados y volver a comprobar el n de enlaces.

Intentar hacer un enlace duro a un directorio.

Realizar enlaces simblicos de ficheros. Comprobar el carcter de tipo de fichero. Concuerda el


n de inodo?. Trabajar con el enlace simblico. Borrar el fichero origen del enlace. Volver a
trabajar con el enlace simblico.

Crear un enlace simblico a un directorio.

Estudiar los permisos de vuestro directorio home. Qu permisos tienen los de tu grupo?.

Entra en el directorio home de algn compaero. Intenta crear ficheros. Borra un fichero.

Permisos, Propietario y Grupo.


Las operaciones que se pueden realizar sobre un fichero son: leer (r), escribir (w) y ejecutar (x).
Estos permisos se conceden o deniegan a tres niveles: el propietario del fichero, el grupo al que
este pertenece y el resto de los usuarios.
Que el grupo posea un permiso determinado no implica que lo posea el usuario, y que el resto
posea un permiso no implica que lo posean el usuario y el grupo.
En un fichero convencional tener permiso de lectura significa poder consultar el contenido del
fichero, el permiso de escritura indica que se puede modificar y el de ejecucin que se pueden
ejecutar las rdenes contenidas en el fichero.

En los ficheros directorio el permiso de lectura posibilita que podamos averiguar el contenido
del directorio, es decir, los nombres de los ficheros que contiene, el no poseer este permiso no
impide acceder al contenido de los ficheros.
El permiso de escritura nos permite crear y borrar ficheros, la modificacin de un fichero en
particular no la controlan los permisos de directorio sino los de ese fichero.
El permiso de ejecucin en el caso de directorios impide que podamos usarlo dentro de una
trayectoria o que lo usemos como directorio de trabajo, denegar el permiso de ejecucin si es una
proteccin real para un directorio y los ficheros que contenga. (Si perdemos el permiso de ejecucin
sobre el directorio de trabajo o el padre de este, podemos desplazarnos a cualquier otro usando
una trayectoria absoluta.)

El propietario de un fichero puede cambiarle los permisos con respecto a l mismo, su grupo o
el resto de los usuarios con la orden:

El Sistema Operativo Unix-Linux

Comandos Bsicos

21

chmod [quien(es)][+-=][permiso(s)] fichero(s)| directorio(s)


[quien]:

u Usuario propietario.
g Grupo.
o Otros, el resto.
a Todos (por defecto).

[+-=]:

+ Aade permiso.
- Elimina permiso.
= Asigna o establece permiso. Aade los permisos indicados y
quita los dems, para los usuarios indicados.

[permiso]:

r Lectura.
w Escritura.
x Ejecucin.

Ejemplos:

Un permiso a un quin: chmod g+w fichero


Varios permisos a un quin:
chmod o+rwx fichero
Varios permisos a gente variada:
chmod go-rw fichero
Permisos distintos para varia gente: chmod o-r,g+w fichero
(nunca espacio despus de la coma)
Asignacin absoluta:
chmod ug=rw fichero

Ejercicios:


Si a un fichero con varios enlaces se le cambian los permisos Se cambiarn tambin en sus
ficheros enlazados?

Quitar a un fichero permiso de w: mostrarlo, aadirle informacin, borrarlo. (Podemos por


ahora escribir en un fichero aadindole informacin con: orden >> f1)

Quitar a un fichero permiso de r: mostrarlo, aadirle informacin, borrarlo.

Grabar en un fichero:

Poner su nombre despus del prompt, para ejecutarlo.

Darle permiso de ejecucin.

Poner su nombre despus del prompt, para ejecutarlo.

clear
echo hola mundo
echo te encuentras en
pwd

Tambin se permite una notacin numrica, en octal, para indicar los permisos que se van a
establecer a unos determinados ficheros.
chmod nmero_octal fichero(s)
Nmero_octal: Un fichero tiene 9 permisos, se codifican en binario, si se tiene permiso 1 y si no
se tiene 0; resulta un nmero binario de 9 dgitos binarios, este se pasa a octal y obtenemos el
nmero octal de tres dgitos.

Ejemplo: permiso de escritura al propietario, permiso de ejecucin al propietario y al grupo y

El Sistema Operativo Unix-Linux

Comandos Bsicos

22

permiso de lectura a todos.


chmod a=r,u+w,ug+x fich
chmod 754 fich

Permisos especiales.
An hay otro tipo de permisos que hay que considerar. Se trata de:
o El bit de permisos SUID (Set User ID).
o El bit de permisos SGID (Set Group ID).
o El bit de permisos de persistencia (sticky bit).
SUID
Veamos los permisos de un par de comandos que cuando se ejecutan modifican el fichero
/etc/passwd, que es propiedad de root, y slo l lo puede modificar.
ls -l /etc/passwd
-rw-r--r-- 1 root root 2625 2010-11-19 11:39 /etc/passwd
El comando passwd, sirve para cambiar la contrasea del usuario, y puede ser invocado por
cualquier usuario para cambiar su propia contrasea.
Y el comando chsh, que se usa para cambiarnos el shell de conexin por defecto.
Si vemos sus permisos observaremos un nuevo tipo de permiso:
$ cd /usr/bin
$ ls -l passwd chsh
-rwsr-xr-x 1 root root 31700 2010-01-26 18:09 chsh
-rwsr-xr-x 1 root root 37140 2010-01-26 18:09 passwd
En lugar de la 'x' para el usuario encontramos ahora una 's' (suid).
passwd es un comando propiedad de root, que modifica ficheros de configuracin de usuarios
sobre los que slo el administrador posee permiso de escritura, pero sin embargo un usuario sin
privilegios al ejecutar este comando tambin deber de modificar los ficheros de configuracin de
usuarios. Es aqu donde interviene el bit SUID.
Este nuevo permiso obliga a la orden a ejecutarse como si la hubiera lanzado el usuario
propietario y no realmente quien la ejecut. Es decir, es poder invocar un comando propiedad de
otro usuario (generalmente de root) como si uno fuera el propietario.

SGID
El bit SGID funciona exactamente igual que el anterior, solo que se aplica al grupo del
programa. Es decir, permite ejecutar el comando con los permisos del grupo.
Veamos un ejemplo con la orden write, que sirve para realizar una comunicacin instantana
con los usuarios que hay conectados. Para realizar su cometido necesita escribir en los ficheros de
dispositivo de los terminales, que pertenen al grupo tty.
$ ls -l /dev/tty8
crw--w---- 1 root tty 4, 8 2010-11-20 21:32 /dev/tty8
En nuestro sistema write es un enlace simblico al siguiente fichero, en el que se muestra una

El Sistema Operativo Unix-Linux

Comandos Bsicos

23

's' en vez del bit 'x' en los permisos del grupo.


$ ls -l /usr/bin/bsd-write
-rwxr-sr-x 1 root tty 9708 2009-11-10 17:12 /usr/bin/bsd-write
De esta forma cuando lo estamos ejecutando tenemos permiso de escritura sobre los dems
terminales.

STICKY BIT (Bit de persistencia)


Este bit se aplica para directorios, como en el caso de /tmp y se indica con una 't':
ls -ld /tmp
drwxrwxrwt 24 root root 4096 sep 25 18:14 /tmp
Puede apreciarse la 't' en vez de la 'x' en los permisos de otros. Lo que hace el bit de
persistencia en directorios compartidos por varios usuarios, es que el slo el propietario del archivo
pueda eliminarlo del directorio.

Modificacin de los permisos especiales


Para cambiar este tipo de bit se utiliza el mismo comando chmod pero agregando un nmero
octal extra al principio de los permisos, ejemplo:
ls -l /usr/prog
-r-x--x--x 24 root root 4096 sep 25 18:14 prog
chmod 4511 /usr/prog
ls -l /usr/prog
-r-s--x--x 24 root root 4096 sep 25 18:14 prog
Ntese que el valor extra es el '4' y los dems permisos se dejan como se quieran los permisos
para el archivo. Es decir, los permisos originales en este ejemplo eran 511 (r-x--x--x), y al
cambiarlos a 4511, se cambi el bit SUID reemplazando el bit 'x' del usuario por 's'.
Los posibles valores seran los siguientes:
- - - - - - - - - = 0 Predeterminado, sin permisos especiales.
- - - - - - - - t = 1 Bit de persistencia, sticky bit
- - - - - s - - - = 2 Bit sgid de grupo
- - s - - - - - - = 4 Bit suid
IMPORTANTE: Algo sumamente delicado y que se tiene que tomar muy en cuenta es lo que
decidas establecer con permisos de bit SUID y SGID, ya que recuerda que al establecerlos de esta
manera, cualquier usuario podr ejecutarlos como si fuera el propietario original de ese programa.
Y esto puede tener consecuencias de seguridad severas en tu sistema. Mejores alternativas
pueden ser los comandos sudo y su.

Mscara de permisos para la creacin de ficheros.


El propietario tambin puede definir con que permisos por defecto se crearn sus ficheros.

El Sistema Operativo Unix-Linux

Comandos Bsicos

24

umask [nmero_octal]
Solamente tiene formato numrico, el n octal al pasarlo a binario, los unos indican los
permisos que quitamos y a quin.
La orden tiene efecto para el usuario que la aplica, y a partir de su uso los ficheros y directorios
se crearn con la restriccin de los permisos indicada.
(Atencin: a los ficheros de texto, en un principio, no se les asigna permiso de ejecucin)
Si utilizamos la orden sin ningn parmetro, muestra la mscara de creacin actual, que suele
ser 022.
Para dejarlo fijo en la sesin, agregarlo a nuestro fichero de inicio de sesin .bashrc de nuestro
directorio de inicio o .profile si iniciamos con una consola de texto (Ctrl + Alt + Fn).

Cambio de propietario.
El propietario de un fichero en System V (en los sistemas Berkeley solo el administrador)
puede cambiar el fichero de propietario y de grupo.
chown [-R] nuevo_propietario[:grupo] fichero(s)
-R
Recursividad.
El nombre del nuevo propietario debe de ser un nombre vlido de entrada al sistema (login) o
un nmero de identificacin de usuario; estos y otros datos se encuentran en el fichero /etc/passwd.
Si el usuario perteneciese a otro grupo se indica este separado del usuario por (:). Y se cambia
al mismo tiempo de usuario y de grupo.

Cambio de grupo.
chgrp nuevo_grupo fichero(s)
Igualmente el nuevo grupo se puede indicar con el nombre o el nmero de identificacin, que
se encuentra en el fichero /etc/group.

Ejercicios: (en octal)




Poner a dos ficheros al mismo tiempo los permisos rw- -wx r--.

Quitarle a un subdirectorio todos los permisos Qu podis hacer en l?

Dejarle todos menos el de ejecucin Qu podis hacer en l?

Mostrar el contenido de un directorio al que le falta el permiso de lectura.

Poner al directorio permiso de escritura y un fichero dentro de l sin este permiso, probar a
borrarlo.

Poner una mscara de creacin, de forma que a los directorios slo les de permiso de ejecucin
para g y o, y para el propietario todos. Comprobarla creando algn directorio.

La mscara anterior, que permisos da a los nuevos ficheros ordinarios.

Intenta cambiar un fichero de propietario.

El Sistema Operativo Unix-Linux

Comandos Bsicos

25

Concede permiso de ejecucin a tu directorio de conexin para los de tu grupo, dentro crea una
carpeta llamada compartida, donde los de tu grupo puedan escribir y borrar slo lo que han
creado.

El Sistema Operativo Unix-Linux

Comandos Bsicos

26

Operaciones Con Ficheros Directorios.


Ya sabemos visualizar el contenido de un directorio utilizando la orden ls, para lo cual debemos
de poseer permiso de lectura sobre l.

Creacin.
mkdir trayectoria(s)
Para crear un directorio necesitamos permiso de escritura sobre el directorio en el que se va a
crear.
Se pueden crear varios directorios al mismo tiempo, indicando su trayectoria, ya sea absoluta o
relativa.
Ejemplos.
mkdir base/direc base2
mkdir base/dire1 base/dire1/dire2 (dire1 no exista)

Cambio de directorio activo.


cd [directorio]
Nos podemos desplazar libremente por el rbol de directorios siempre que tengamos permiso
de ejecucin sobre los directorios por los que nos desplazamos.
Si no indicamos directorio se asume el directorio $HOME o de conexin.

Dnde nos encontramos.


Si necesitamos asegurarnos de cual es nuestro directorio de trabajo utilizaremos la orden
pwd
En otras versiones de Unix no era tan fcil que el prompt nos indicase la trayectoria del
directorio de trabajo, por lo que esta orden era ms utilizada. Pero todava puede ser til en
programas Shell.

Eliminar directorios
rmdir directorio(s)
Se requiere permiso de escritura sobre el directorio padre.
Antes de borrar un directorio debemos de borrar su contenido y cuidar de que no sea el
directorio de trabajo.
Otro usuario que tenga permiso para ello nos puede borrar nuestro directorio de trabajo, con lo
que nos dejar "como suspendidos en el aire", pero podemos transladarnos a cualquier otro
directorio.
El sistema permite borrar el directorio de trabajo.
Recordar que tambin se pueden borrar directoros usando la orden rm de forma recursiva.

Cambio de nombre.
mv directorio_antiguo directorio_nuevo
Se requiere permiso de escritura en el directorio padre.

El Sistema Operativo Unix-Linux

Comandos Bsicos

27

Copia de directorios.
cp [-R] DirectorioOrigen DirectorioDestino
-R
De forma recursiva.

Variables PS1 y PS2.


Se usan para definir el prompt o inductor del shell.
El prompt primario (PS1) aparece para solicitarnos la introduccin de una orden.
El prompt secundario (PS2) se muestra cuando no se ha terminado de introducir un comando.
Tanto PS1 como PS2 son variables del shell que pueden ser redefinidas por los usuarios (cada
usuario tiene las suyas).
Esto se hace simplemente asignndole un nuevo valor, con el formato:
PS1=NuevoValor
El NuevoValor puede ser cualquier cadena, pero hay una serie de cdigos con un significado
especial para modificar el inductor, estos son:
\!
Siguiente n del histrico de sucesos.
\$
Usa el signo $, salvo para root, que usa el signo # (tradicional).
\d
Fecha actual.
\s
Shell actualmente activo.
\t
Hora actual.
\u
Nombre del usuario.
\w
Directorio de trabajo actual (directorio activo).
\h
Nombre de la mquina. Host.
Ejercicios:


Crear varios directorios con la misma orden.


Trayectorias relativas.
Trayectorias absolutas.
Que el directorio activo no sea el padre de los subdirectorios.
Examinar el rbol de directorios de Unix.

Desplazarse usando ambos tipos de trayectorias.

Probar a eliminar un directorio no vaco.

Probar a eliminar un directorio vaco, pero que sea el directorio activo.

Eliminar varios directorios con la misma orden.

Cambiar de nombres a directorios. Con y sin permiso de escritura sobre el padre.

Copiar una rama del rbol de directorios de forma recursiva.

Eliminar la rama recin copiada tambin de forma recursiva.

Modificar el prompt primario y secundario incluyendo texto y cdigos especiales de la orden.

El Sistema Operativo Unix-Linux

Comandos Bsicos

28

Flujo De Informacin.
Entrada y salidas estndar (std).
Muchas rdenes Unix reciben informacin desde el teclado, que es la entrada estndar (stdin)
y muestran los resultados por la pantalla, salida estndar (stdout); la pantalla tambin es la salida
estndar para los posibles errores (stderr).
Ejemplo:
Cat
sort
Sin opciones ni argumentos leen texto del teclado (stdin) y muestran los resultados por pantalla
(stdout), visualizando los posibles errores, en el caso de que se produzcan, por pantalla (stderr).

Tanto la entrada como las salidas estndar son tratadas como ficheros especiales, y el shell
los identifica por su nmero de descriptor de fichero:
stdin
0
stdout
1
stderr
2
(Deben de emplearse junto al signo de redireccionamiento).

El guin (-) realiza una entrada por teclado.

Redireccionamiento:
Se pueden redireccionar la entrada y salidas estndar mediante los metacaracteres de
redireccionamiento: > < >>.
> Redireccionamiento de salida, enva los datos que normalmente saldran por pantalla hacia
el fichero que indiquemos.
Ejemplo:
cat > file
cat 1> file
cat - > file
Usa la entrada estndar y la salida al fichero especificado.

>> Redireccionamiento de adicin, igual que el anterior, pero si el fichero al que se dirige la
salida ya existe no se borra la informacin que tenga, sino que la nueva se aade al final.
Ejemplo:
Cat 1>> file
Aadiendo informacin a un fichero desde la entrada estndar.

< Redireccionamiento de entrada, la orden no tomar la informacin del teclado, sino del
fichero especificado.
Ejemplo:
cat file
cat < file

El Sistema Operativo Unix-Linux

Comandos Bsicos

29

cat 0< file


Toma como entrada el fichero indicado, siendo la salida por pantalla.
cat 0< fichero 1>> otro
La entrada de un fichero y la salida la aade a otro.
cat 2> errores 0< fichero 1> fichero1
cat fichero > fichero1 2> errores
Entrada fichero, salida fichero1 y errores al fichero errores.
cat fichero1 fichero2 > total
Entre dos ficheros permite una entrada por teclado

Con el formato:
orden >& fichero
Tanto la salida estndar, como la salida de error se almacenan en el fichero indicado.
Ejemplo:
cat fichero fichero_inexistente >& todo

Tuberas (pipes):
Orden | Orden2
Mediante el uso de tuberas se consigue que la salida de una orden sea la entrada de otra. El
metacarcter tubera es |.
Ejemplo:
ls lR /home | less

Duplicar la salida
orden | tee [opciones] fichero(s)
orden | tee [opciones] | filtro
La entrada que recibe tee la copia en la salida estndar y en el o los ficheros indicados como
argumentos, si estos no existen son creados.
-i No responde a interrupciones.
-a Si los ficheros existen le aade la informacin al final.

Ejemplo:
date | tee a fecha
ls l | tee listado
cat fichero1 fichero2 | sort | tee FileOrden
El primero muestra la fecha y adems la aade en un fichero.
E segundo muestra el contenido del directorio y lo almacena en el fichero listado.
Y el tercero concatena la entrada, la ordena, la muestra ordenada y la almacena en el fichero

El Sistema Operativo Unix-Linux

Comandos Bsicos

30

FileOrden.

Ejercicios:


Practicar todos los redireccionamientos, con todas las formas de indicar la entrada y salida.

Combinar los redireccionamientos y la tubera:


Almacenar ordenado el listado largo de un directorio en un fichero.
Darle a sort la entrada con un fichero y que la salida la pase a less.
Los usuarios que hay conectados, almacenarlos ordenados en un fichero.
Al fichero anterior aadirle la fecha.

En los ejercicios anteriores emplear los filtros vistos: less, cat y sort.

Filtros para: Contar, Ordenar y Eliminar Repetidos.

Contar:
wc [opciones] fichero(s)
Abreviatura de Word Counting. Sin opciones cuenta el nmero de lneas, palabras y caracteres
contenidos en un fichero o en la entrada indicada. Si se especifica un grupo de ficheros contabiliza
en cada uno de ellos y adems muestra un total.
Si no especificamos la entrada, toma por defecto la entrada estndar.
Para que no muestre toda la informacin, podemos utilizar las opciones:
-l Slo cuenta las lneas.
-w Idem las palabras.
-c Idem los caracteres.
Ejemplos:
wc f1 f2 f3
Cuenta el n de lneas, palabras y caracteres de cada fichero y hace un total.
ls | wc -w
Cuenta el n de ficheros de un directorio.
Ejercicios:


Sin opciones ni argumentos.

Con una opcin, y varias cambindolas de orden.

Con varios ficheros.

Pasndole la informacin mediante una tubera.

Almacenando el resultado en un fichero.

Averiguar cuantos ficheros y directorios hay en una rama del rbol de directorios, por ejemplo
en tu $HOME. El resultado almacenarlo en un fichero y los posibles errores que no aparezcan
por ninguna parte.

Ordenar:
Este filtro adems de clasificar puede fusionar ficheros. En principio lo hace siguiendo el cdigo
ASCII.

El Sistema Operativo Unix-Linux

Comandos Bsicos

31

La entrada, al igual que en todos los filtros, pueden ser: ficheros indicados como argumentos,
pasada por una tubera o suministrada por la entrada estndar.
sort [opciones] [fichero(s)]
Opciones generales:
-o file Sirve para indicar el fichero de salida. Ya que si redireccionamos la salida a un
fichero que se llame igual que el de entrada, se pierde la informacin.
-m Mezcla los ficheros que supone que estn ordenados.
-c Comprueba si el fichero est ordenado.
-u Muestra las lneas repetidas una sola vez, til para la mezcla de ficheros.
Opciones de ordenacin de datos:
-d (diccionario), slo tiene en cuenta los caracteres alfabticos, numricos y espacio.
-f Convierte maysculas a minsculas a efectos de la ordenacin.
-b Ignora los blancos iniciales.
-n Ordenamiento numrico, toman su valor aritmtico el signo menos (-) y el punto
decimal (.), En Ubuntu como tenemos definido el idioma toma como separador de
los decimales la coma (,). Los blancos iniciales no se tienen en cuenta.
-r Ordenacin inversa.
-R Ordenacin aleatoria (Random).
Ordenacin de campos:
Los campos se entienden separados por blancos o tabuladores salvo que se indique la opcin:
-tx Donde x es el carcter delimitador de campos. Es aconsejable poner el carcter
entre comillas.
Para ordenar slo por un grupo de campos:
-k inicio[,fin]

Rango de campos por los que se ordena.

Pueden indicarse opciones slo para un rango, si se colocan inmediatamente despus del
nmero de campo, no irn precedidas de guiones; estas son b, f, n, r.
La lista de ficheros caso de ser varios los ordena y mezcla, salvo que se utilice la opcin -m,
que slo mezcla.

Ejemplos:
sort t"," -f k 2,3 lista > lista.ord
Un fichero con la estructura: nombre, apellido1, apellido2, edad. Es ordenado por apellidos, sin
diferenciar entre maysculas y minsculas.
who | sort | tee quien.hay
Muestra y almacena los usuarios que hay conectados de forma ordenada.
sort -nr o num num
Ordena el fichero num, que contiene nmeros, en orden descendente y lo almacena en el
mismo fichero.
Comprobar que ocurre si en lugar de usar la opcin o empleamos el redireccionamento de
salida.

El Sistema Operativo Unix-Linux

Comandos Bsicos

32

Ejercicios:


Sin argumentos ni opciones.

Ordenando un fichero.

Almacenando el resultado en otro fichero.

Probar las opciones y su combinacin.

Ordenar el fichero lista por edad.

Quin hay conectado, mostrando los ltimos en conectarse primero.

Mostrar el listado largo de ficheros de un directorio, ordenado por tamao, de mayor a menor.

Ordenar el fichero de grupos (/etc/group) por el n de grupo (campo 3) de menor a mayor y


almacenar el resultado en un fichero.

Ordenar el fichero de password (/etc/passwd) por el GID (4 campo) de forma numrica, los
que pertenecen al mismo grupo los ordenamos por su nombre de usuario LOGNAME (campo
1). Los campos estn separados por :. El resultado almacenarlo en un fichero llamado passwd
en vuestro directorio $HOME.

Ordenar y mezclar dos ficheros con nmeros (donde algunos estn repetidos), comprobar la
opcin u.

Eliminar lneas iguales o con parte igual.


uniq [opc] [-campos] [+carac.] [f_in] [f_out]
Controla las lneas consecutivas repetidas mostrando slo una. Opciones:
-c Precede cada lnea del nmero de repeticiones.
-d Slo muestra las que se han repetido alguna vez.
-u Visualiza las que no se han repetido.
-i No distingue entre maysculas y minsculas.
-f n_campos: Ignora el nmero de campos que se indique.
-s n_caracteres Ignora el nmero de caracteres que se indique.
-w n_caracteres compara como mximo el n de caracteres indicado, despus de
haber saltado los campos o caracteres indicados en f o s.

Si no se especifican ficheros de entrada o salida se utilizan la entrada y salida estndar.


Ejemplos:
sort alumnos | uniq f 1 | wc -l
En un fichero de alumnos compuesto por nombre y apellidos, cuenta todos los que hay con
apellidos distintos.
sort direcciones | uniq -d f 1
Una vez ordenado el fichero muesta los registros repetidos a partir del primer campo.
Ejercicios:


En el fichero de nombres, apellidos y edades, procurar que se repitan algunas edades.

El Sistema Operativo Unix-Linux

Comandos Bsicos

33

Cuntos hay de cada edad?

Filtros para ver que hay en los ficheros.


El filtro ms habitual para ver el contenido de un fichero es cat, ya visto.

Ver el final de un fichero.


tail [opcin][n] [fichero]
Sin opciones lista las 10 ltimas lneas.
S el n lleva el signo (+) empieza a mostrar a partir de ese n de unidades, contando desde el
principio del fichero, en el caso contrario cuenta las unidades indicadas desde el final del fichero.
Las unidades se miden segn la opcin, que puede ser:
-c n Caracteres.
-n n Lineas.


Mostrar el listado largo de un directorio, sin que incluya la 1 linea, que indica el total de
bloques usados.

Ver el principio de un fichero.


head [opcin] [fichero]
Por defecto muestra las 10 primeras lneas.
-c n Caracteres.
-n n Lineas.
Con el signo () muestra todas menos las n ltimas unidades.

En un fichero tenemos los nmeros del 0 al 9 (cada uno en una lnea), escribir la lnea de
comando para que nos muestre uno de ellos aleatoriamente.

Volcado en octal (octal dump)


od [opciones] [fichero]
Es til para ver que contienen los ficheros objeto o de texto con caracteres no imprimibles.
-t c Los caracteres imprimibles los muestra con caracteres normales, los no
imprimibles con un n en octal de tres dgitos, y algunos de estos los muestra de la
siguiente forma:
\0
Nulo.
\b
Retroceso.
\f
Salto de pgina.
\n
Nueva lnea.
\r
Return.
\t
Tabulador.
-t oC Muestra los byte con su valor en octal.
-j n


N de byte que son saltados sin mostrar.

Almacenar en un fichero la palabra hola ms intro. Mostrarlo con las distintas opciones.

El Sistema Operativo Unix-Linux

Comandos Bsicos

34

Filtro para cambiar caracteres.


tr (translate), cambia o traduce caracteres procedentes de una entrada de acuerdo a las reglas
que se le indiquen.
Supongamos que tenemos un archivo que usa los dos puntos(:) para separar campos, y que
necesitamos cambiar cada dos puntos por otro carcter, por ejemplo el tabulador.
tr : "\t" < fichero

\t

representa un tabulador.

Formato:

tr [opc] lista_de_entrada lista_de_salida


Las listas deben de tener el mismo n de caracteres, y la sustitucin es posicional, el primer
carcter de la lista de entrada es sustituido por el primero de la lista de salida, ...
Normalmente se trabaja redireccionando la entrada y la salida.
Opciones:
-s (squeeze = estrujar, apretar) elimina caracteres repetidos en la salida.
-c (complement) toma como lista_de_entrada el complemento.
-d (delete) borra en la salida los caracteres del conjunto de entrada.

Indicar rangos
Se pueden usar conjuntos de caracteres. Por ejemplo para cambiar letras minsculas por
maysculas:
tr [a-z] [A-Z] < fichero

Ejemplo para codificar texto, desplazando cada letra trece posiciones en el alfabeto ingls de
26 letras:
tr [a-m][n-z][A-M][N-Z] [n-z][a-m][N-Z][A-M] < fich > fich.13

Para traducir un conjunto de caracteres de entrada por el mismo carcter de salida, se usa el *
despus del carcter de salida indicando que se repita las veces que sea necesario.
tr [0-9] [#*] < fichero

Eliminacin de repetidos en la salida


tr -s [0-9] [#*] < fichero
Cada n con todas sus cifras es reemplazado por un solo smbolo #.

Sustitucin de los caracteres complementarios


tr -c [a-z][A-Z][0-9] [#*] < fichero
En el ejemplo anterior todo carcter no alfanumrico es sustituido por #.

Eliminacin de caracteres
tr -cd [a-z][A-Z][0-9] < fichero

El Sistema Operativo Unix-Linux

Comandos Bsicos

35

Son eliminados todos los caracteres no alfanumricos incluidos los signos de puntuacin,
espacios,...

Para representar caracteres especiales:


\NNN
character with octal value NNN.
\a
audible BEL
\\
Backslash
\b
Backspace
\f
form feed
\n
new line
\r
Return
\t
horizontal tab
\v
vertical tab
Para representar conjuntos de caracteres:
CHAR1-CHAR2 all characters from CHAR1 to CHAR2 in ascending order
[:alnum:]
all letters and digits
[:alpha:]
all letters
[:digit:]
all digits
[:cntrl:]
all control characters
[:lower:]
all lower case letters
[:upper:]
all upper case letters
[:graph:]
all printable characters, not including space
[:print:]
all printable characters, including space
[:punct:]
all punctuation characters
[:blank:]
all horizontal whitespace
[:space:]
all horizontal or vertical whitespace
Ejercicio:


Dado un fichero de texto, producir un listado con las palabras que contiene ordenadas
alfabticamente, sin que estn repetidas e indicar el n de veces que aparece cada palabra en el
fichero.
tr -s "[:blank:]" "\n" < fichero | sort | uniq -c

El Sistema Operativo Unix-Linux

Comandos Bsicos

36

Buscar en ficheros. Familia grep.


Busqueda de un patrn en un fichero: grep, fgrep, egrep.
Buscar un patrn dentro de un fichero, grupo de ficheros, entrada estndar o la que se
le especifique mediante tubera o redireccionamiento. Cuando se busca en ms de un fichero,
encabeza cada lnea con el nombre del fichero.
En la formacin del patrn se pueden usar expresiones regulares, tambin llamados
formatos de sustitucin. Precisamente de las expresiones regulares toma su nombre que viene
de las siglas: Global Regular Expression and Print
grep [opc] patrn [fichero(s)]
Reglas importantes de los formatos de sustitucin, expresiones regulares:
Si el patrn est formado por ms de una palabra deben de incluirse entre comillas o
apstrofos segn los sistemas.
El punto (.) sustituye cualquier carcter nico, igual que ? para el shell.
Una lista entre corchetes ([]) tiene el mismo significado que para el shell.
El circunflejo (^) dentro de unos corchetes precediendo una lista empareja todos los caracteres
que no estn en la lista, igual que la ! en el shell.
El signo dolar ($) al final de una expresin indica que debe de estar al final de una lnea.
El acento circunflejo (^) al principio de una expresin indica el principio de lnea.
El asterisco (*) sirve por cero o ms repeticiones del carcter que le precede.
La barra invertida (\) quita el significado especial al siguiente carcter.

Sin opciones produce como salida las lneas que contienen el patrn.

-n Al principio de lnea aparece su n de lnea.


-i Ignora maysculas y minsculas.
-c Slo indica el n de lneas que contienen el patrn dentro del fichero.
-h No imprime los nombres de los ficheros.
-l (ele) Indica en que fichero(s) se encuentra el patrn.
-v Devuelve las lneas que no contienen el patrn.
Ejemplos:
grep byte *.apuntes
grep "\.f" programas
grep [^m-t]ata fichero
grep "^Santa Fe$" america europa
grep ^[0-9][0-9]* datos

fgrep [opc] patrn(es) [fichero(s)]


La principal diferencia es que puede buscar muchos patrones de forma simultnea (puede
buscar miles de palabras al mismo tiempo), pero no permite el uso de metacaracteres para formar

El Sistema Operativo Unix-Linux

Comandos Bsicos

37

expresiones regulares, slo cadenas fijas.


Es ms rpida que sus hermanas grep y egrep.
Le son vlidas las opciones anteriores, y adems:
-f fichero
bsqueda.

Sirve para indicar el fichero que contiene los patrones de

Si se especifican varios patrones en la lnea de comando, irn todos entre comillas y separados
por un retorno de carro.
Ejemplo:
fgrep f palabras lista1 lista2

egrep [opc] patrn(es) [fichero(s)]


Como fgrep puede leer patrones desde un fichero. Y como grep puede emplear expresiones
regulares.

Actualmente las rdenes


grep -E sustituye a egrep
grep F sustituye a fgrep

Ejercicios:


Buscar una palabra en un fichero. Comprobar la opcin para que no distinga las maysculas.

En varios ficheros buscar una frase e informar del nombre de los ficheros que la contengan.

Mostrar el n de veces que aparece la palabra if al principio de lnea en un fichero(s).

Eliminar las lneas en blanco de fichero1 y almacenarlo en fichero2.

Borrar todas las lneas que contengan Manolo, Manuel, Lolo o Manoln.

Comparacion de Ficheros.
diff - busca diferencias entre dos ficheros
diff [opciones] fichero-origen fichero-destino
Por defecto muestra los cambios de edicin que habra que realizar en f1 para que quedase
igual que f2, de la siguiente forma:
Lnea o rango de f1 operacin lnea o rango de f2
Donde operacin puede ser:
a (aadir lneas de f2 a f1)
d (borrar lneas de f1)
c (cambiar lneas de f1 por lneas de f2).
Y a continuacin de cada operacin muestra las lneas afectadas, si estas se preceden por el
smbolo "<" quiere decir que son de f1, y si se preceden por ">" son de f2.

Opciones

El Sistema Operativo Unix-Linux

Comandos Bsicos

38

-a Trata todos los ficheros como de texto y los compara lnea por lnea, incluso si no
parecen ser de texto.
-b No se tienen en cuenta los blancos al final de lnea y trata los distinto conjuntos de
blancos como si fuesen iguales.
-B No hace caso de cambios consistentes en slo insertar o borrar lneas en blanco.
-c Emplea el formato de salida de contexto.
-i Considera las letras maysculas y minsculas equivalentes.
-q Informa slo de si los ficheros difieren, no de los detalles de las diferencias.
-r Cuando compara directorios, compara recursivamente cualesquier subdirectorios
encontrados.
-u Emplea el formato de salida unificado.

Un estado de salida de 0 significa que no se encontraron diferencias, 1 significa que se


encontr alguna diferencia y 2 significa problemas.

Cortar y Pegar Ficheros.

Cortar de forma horizontal (por lneas).


split [-n] [fichero] [prefijo]
Divide el "fichero" en trozos de n lneas, los trozos son grabados en ficheros cuyo nombre base
es "prefijo" y se le aaden las terminaciones "aa", "ab", hasta "zz", por lo que se puede dividir hasta
en 676 ficheros. (26 letras)
-n

N de lneas de cada trozo, por defecto 1000.

Si no se indica el "fichero" se toma la stdin.


Si no se indica el nombre base se asume "x".

Variante de split
csplit [-f prefijo] fichero arg1 [...argn]
Divide el fichero en las porciones que indiquen los argumentos, estos pueden ser:
n
El trozo termina en la lnea n n (no incluida).
"/exp/"
Hasta la lnea que contiene la expresin (no incluida).
"%exp%" Salta sin grabar en fichero hasta la lnea que contiene la expresin, esta lnea se
graba en el prximo fichero.
En pantalla se muestra el tamao de los ficheros en los que se divide. Algunas opciones son:
-f prefijo Prefijo tiene el mismo significado que en split, si no se pone se asume "xx" y
se van numerando, desde xx00 hasta xx99.
-s No muestra el tamao de las partes en la salida estndar.

Pegar de forma horizontal.


Hemos utilizado la orden cat para crear y visualizar ficheros, con redireccionamientos y
tuberas, pero cat es una abreviatura de concatenar.
cat [opc] [fichero(s)] [-]
Concatena los ficheros especificados, y los muestra por stdout, la cual podemos redireccionar.

El Sistema Operativo Unix-Linux

Comandos Bsicos

39

El guin (-) significa una entrada por teclado.


-v Muestra los caracteres no imprimibles.
-t Adems los TAB los muestra como ^I. Slo los TAB T.
-e Adems en los EOL muestra un $. Slo los EOL E.
-n Numera las lneas de salida.
-b No numera las lneas en blanco.
-s No muestra ms de una lnea en blanco.
-A Equivale a vET.
Ejemplos:
cat f1 f2
cat f1 - f2 > f3

Dividir ficheros verticalmente (por columnas).


cut [opc] [fichero]
Permite seleccionar columnas (caracteres o campos) de un fichero, el resultado va a stdout.
-c lista

Seleccionamos la columna por caracteres.

-f lista

Indicamos la columna por campos (fields).

En ambos casos la lista est formada por un conjunto de nmeros separados por comas o
guiones.
-dcarcter
Informa de cual es el carcter delimitador de campos cuando
usamos la opcin -f, por defecto se asume tab.
-s Se usa conjuntamente con la opcin f, para pasar por alto las lneas que no tengan
el delimitador, como son cabeceras, ttulos o lneas vacas.
Ejemplos:
Corta el rango de caracteres del 20 al 35:
cut -c20-35 datos
Se obtiene el 2 y 4 campo, actuando como separador los :
cut -d: -f2,4 datos

Unir ficheros verticalmente.


paste [opc] fichero(s)
Une los ficheros verticalmente, produciendo una nica salida nueva.
Sin opciones, sustituye los caracteres de fin de lnea por tab, excepto los del ltimo fichero.
-dcarcter

Carcter que sustituye los finales de lnea.

Ejercicios:


Obtener un listado ordenado de todos los usuarios que son propietarios de algo dentro del
directorio /home; no deben de estar repetidos. Orientaciones:
A la salida de la orden ls -l le podemos eliminar la cabecera.
Cortar la columna de los propietarios.
Ordenar
Eliminar los repetidos.

El Sistema Operativo Unix-Linux

Comandos Bsicos

40

En un fichero de alumnos, donde tenemos los datos de un alumno por linea, con los datos
Nombre; Apellidos; Edad. Obtener otro fichero con los datos apellidos, nombre; ordenado por
apellidos.

Bsqueda de ficheros.
find [ruta(s)] [opcion(es)]
Es til para localizar ficheros que cumplan determinadas condiciones o caractersticas, en las
ramas del rbol de directorio que se le indique. Finalmente sobre los ficheros o directorios
encontrados se puede ejecutar alguna accin.
Dentro de las opciones, unas indican criterios de bsqueda (en el caso de que se indique ms
de un criterio se seleccionan los ficheros que cumplan todos simultneamente).
Otras opciones indican las acciones a realizar con los ficheros encontrados.
Cuando el criterio se acompaa de un n n, este puede llevar el signo positivo (+), negativo (-) o
ninguno, significando respectivamente mayor que, menor que o igual que.
Algunas opciones que indican criterios de busqueda:
-name patrn

Nombre del fichero a buscar, admite metacaracteres. Se aconseja


poner el nombre entre comillas, para que los metacaracteres no sean
interpretados por el shell.

-iname patrn Como -name, pero no hace distincin entre maysculas y minsculas.
-type t

Donde t es un carcter que


indica el tipo de fichero, este puede ser:
f
Ficheros ordinarios.
b
Dispositivos de bloques.
c
Dispositivos de caracteres.
d
Directorios.
l
Vnculos simblicos.

-links []n

N de enlaces.

-inum n

Empareja con los ficheros


que tengan como n de inodo n.

-perm n

Localiza los ficheros que


tengan exactamente los permisos indicados por el n n (octal).

-user usuario

Ficheros que pertenezcan al usuario, se indica el nombre del usuario.

-uid n

Idem, n debe de ser un


identificador de usuario. (ls -n muestra uid y gid)

-group grupo

Ficheros que pertenezcan al grupo.

-gid n

Idem, n debe de ser un


identificador de grupo.

-size []n

N de bloques de tamao
del fichero. Si se aade una c detrs del nmero se interpreta el
tamao en bytes (caracteres), k (Kbytes), w (palabras 2 bytes), b
(bloques, por defecto).

-empty

Si el fichero o el directorio
est vaco.

-atime []n

Si ha sido accedido en los


ltimos n das.

El Sistema Operativo Unix-Linux

Comandos Bsicos

41

-mtime []n

Idem modificado.

-newer fichero Ficheros modificados con posterioridad a la fecha y hora de


modificacin del fichero especificado.
-maxdepth n

n indica el nivel de profundidad al que se descender buscando ficheros


en el rbol de directorios a partir de la trayectoria indicada. 0 Ninguno, 1
slo en el directorio indicado.

-mindepth n

n indica a partir de que nivel se inicia la bsqueda. 1 a partir del


directorio indicado, 2 omite los ficheros del directorio indicado.

Ejemplos:
find . -size -25c
find /home/user07 -name hola -type d
find programas -name "*.c"
find /home -atime +30


Probar todos los criterios vistos y algunas combinaciones entre ellos.

Estos criterios se pueden alterar y combinar con los operadores relacionales.


Se listan en orden de prioridad:
()

Fuerza a la ejecucin prioritaria.

Colocada delante de un criterio este queda negado.

-a

Operador lgico y. Si no ponemos ninguno este va implcito.

-o

Entre dos criterios representa el o lgico.

find . ! -name "*.c" -print


find ./cartas ./epistolas \( -name pepe -o -name jose \) -ls
find /home -name "*.txt" -user user07 fprint txtde07
Son necesarios los parntesis, ya que el AND tiene precedencia sobre el OR. Las barras
invertidas son para que estos caracteres sean interpretados por el comando, no por el shell.
Observar los espacios de separacin entorno a los parntesis.

Opciones que indican acciones a realizar:


-print

Muestra la trayectoria de los ficheros que se encuentren. Esta ser


relativa o absoluta, dependiendo del tipo de trayectoria de bsqueda
que nosotros indiquemos en la orden. Accin realizada por defecto.

-fprint file

Almacena el resultado en el fichero indicado.

-ls

Lista los ficheros encontrados por la salida estndar con el formato de


la orden ls -dils, es decir, informacin de directorios, n de inodo,
listado largo y tamao en bloques.

-exec orden [{}] \;


Ejecuta la orden con los
ficheros encontrados. El juego de llaves representan los ficheros
encontrados, el (;) indica el final de la orden y hay que colocarle antes la
(\) para que pierda el significado especial que tiene para el shell.
-ok orden [{}] \; Igual que la anterior, pero pide confirmacin antes de ejecutar la orden

El Sistema Operativo Unix-Linux

Comandos Bsicos

42

con cada fichero. Los corchetes indican opcionalidad.

Ejemplos:
find . -name carta* - type f -exec cat {} \;
find cuentas -atime +90 -ok rm {} \;
find programas -newer proyec.c -exec mv {} /home/user07/actual \;
find . -atime +3 -atime -60 -exec mv {} ../reserva \;
find /home -atime +30 -size +20 -ok rm {} \;
En ocaciones, esta orden puede tardar bastante, por lo que se suele ejecutar en background, si
no necesitamos su resultado inmediatamente, para ello se aade al final de la orden el carcter &.
En este caso ejecutar las acciones de forma desatendida y la salida estndar la debemos de
redirigir.


Observar la diferencia entre find . -name fichero y find /home/user07 -name fichero.

Para ejecutar acciones sobre los ficheros encontrados, realizar la prctica en vuestro directorio
de trabajo y preferiblemente con -ok orden ....

El Sistema Operativo Unix-Linux

Comandos Bsicos

43

Editores:
Editor VIsual. Generalidades.

Comenzar con VI
vi [-opciones] [fichero(s)]
-R Abre el fichero en modo de solo lectura.
+n Al abrir el fichero se posiciona automticamente en la lnea n.
+ dem, pero colocndose al final del fichero.

Modos de trabajo


Texto.

Comando:


De pantalla (al iniciar).

De lnea de rdenes.
Entrar a modo texto:

Inserta en la posicin del cursor.

a Inserta despus del cursor.


I

Inserta al principio de la lnea.

A Inserta al final de la lnea.


o Abre una lnea debajo de la activa.
O Abre la lnea encima de la activa.
Pasar a modo comando:

Pulsando <Esc>.

Desplazamiento
En algunos terminales con las teclas de direccin.
Tambin h j k l (izquierda, abajo, arriba y derecha respectivamente).
<Ctrl>+f

Avanza pantalla.

<Ctrl>+b

Retrocede pantalla.

<Ctrl>+d

Avanza 1/2 pantalla.

<Ctrl>+u

Retrocede 1/2 pantalla.

Avanza una palabra.

Retrocede una palabra.

Sobreescritura
r

Un solo carcter, y pasa a modo comando.

Reemplaza indefinidamente hasta que se pulse <Esc>.

Grabar y Salir
:q

Abandona vi si no se ha modificado el documento.

:q!

Abandono imperativo, perdiendo los posibles cambios.

El Sistema Operativo Unix-Linux

Comandos Bsicos

44

:wq

Grabar y salir.

:w fich

Graba en el nombre de fichero que le indiquemos.

:w! fich

Si el fichero existe lo sobreescribe.

:w >> fich

Aade al fichero indicado.

^g

Muestra el nombre del fichero.

Borrar
J Une la lnea actual con la siguiente.
x Borra el carcter sobre el que est el cursor.
d[n]alcance
Donde n es el nmero de veces que se va a repetir la operacin.
El alcance puede ser:
d Lnea actual.
w Palabra siguiente a partir del cursor.
b Palabra anterior a partir del cursor.
) Hasta final de frase. (Punto o lnea en blanco)
( Hasta principio de frase.
} Hasta el final de prrafo. (Pto. y aparte y lnea en blanco)
{ Hasta el principio de prrafo.
$ Hasta final de lnea.
^ Hasta principio de lnea.

Sin n de veces.

G Hasta el final del fichero.


Al borrar, el texto pasa a un bfer de carcter general. (CORTAR)

Cambiar
c[n]alcance
n y alcance tienen el mismo significado que en la orden anterior, pero para indicar una lnea en
alcance, se emplea la letra c.
El bloque de texto as especificado se sustituye por la siguiente entrada por teclado, hasta que
pasemos a modo comando.

Copiar al bfer general


y[n]alcance
Donde n y alcance tienen el mismo significado que en el comando "d", con la salvedad que
para referirnos a lnea en alcance hay que poner y.
El texto indicado se copia al bfer general sin borrarlo de su ubicacin.

El Sistema Operativo Unix-Linux

Comandos Bsicos

45

Pegar
p

Pega el contenido del bfer general despus de la posicin del cursor.

dem., pero antes de la posicin del cursor.

Repeticin
. El punto repite la ltima operacin de borrado o el ltimo bloque insertado.

Deshacer
u

Deshace la ltima operacin realizada.

Restaura la lnea actual.

Configuracin
:set showmode

Indica cuando esta modo INSERT y REPLACE.


(En Linux tambin Command y Buffer)

:set noshowmode Desactiva la anterior.

:set list
:set nolist

Muestra los caracteres no imprimibles, TAB como ^I, final de lnea como
$.
Desactiva la anterior.

:set number

Muestra nmeros de lnea.

:set nonumber

Desactiva la anterior.

Ejemplo de rdenes de la lnea de comandos que usan los nmeros de lnea:


:rango_origencolnea_destino
Copiar.
:rango_origenmlnea_destino
Mover.
:rangow fichero
Grabar.
El Rango se indica con el n inicial y el final separados por una coma.

:set wrapscan

Por defecto bsquedas circulares.

:set nowrapscan

No realiza bsquedas circulares.

:set ignorecase

No diferencia entre maysculas y minsculas.


A efectos de bsquedas y reemplazos.

:set noignorecase Desactiva la anterior.

:set shiftwidth=n

Sangrado izquierdo.
^T deja n espacios ms.
^D quita n espacios al sangrado.

El Sistema Operativo Unix-Linux

Comandos Bsicos

46

No afecta a la tecla del tabulador, que inserta 8 espacios.


:set autoindent

En la nueva lnea emplea el mismo margen izq.

:set noautoindent Desactiva la anterior.

:set wrapmargin=n Nmero de espacios del margen derecho.

:set showcmd

Muestra el comando de pantalla en la lnea inferior mientras se escribe, al


ejecutarse se borra.

:set noshowcmd Desactiva la anterior.

:set ruler
:set noruler

En la lnea de estado, muestra la lnea y columna donde se encuentra el


cursor.
Desactiva la anterior.

Para recomponer la pantalla despus de un mensaje u otra incidencia pulsar ^L, en modo
comando.

:set

Muestra las opciones activas.

:set all Muestra todos los posibles set.

Estos comandos set se pueden utilizar en cualquier momento cuando se esta trabajando con
vi, pero se pueden guardar en un fichero de configuracin llamado ".exrc" (.vimrc para el editor
vim) y automticamente se cargaran al comenzar una sesin con vi. Estos ficheros se encuentran
en el directorio home de cada usuario. Por ejemplo .exrc (.vimrc) puede contener:
set showmode
set number
set autoindent
set shiftwidth=4
set wrapmargin=5

Acceder al shell
:!orden Ejecuta la orden y despus de pulsar return regresa al vi.
:sh

Sale al sh y regresa al escribir exit o ^d.

Abreviaturas
:ab abreviada cadena_a_abreviar Pone una abreviatura a una cadena.
:una abreviada
:ab

El Sistema Operativo Unix-Linux

Deshace la abreviatura.
Muestra las abreviaturas creadas.

Comandos Bsicos

47

Bsquedas y reemplazos.
/texto

El cursor se desplaza a la lnea de comandos.


La bsqueda se realiza hacia el final del fichero.

?texto dem, pero hacia el principio del fichero.


n

Repite la ltima bsqueda.

dem pero cambiando el sentido.

La bsqueda no se har circular si empleamos :set nowrapscan.

Se puede utilizar una expresin en lugar del texto. Caracteres con un significado especial
dentro de las expresiones de bsqueda:

Cualquier carcter.

Debe de ser el primer carcter. Indica principio de lnea.

Indica final de lnea.

\<

Comienzo de palabra.

\>

Final de palabra.

[]

Conjunto de caracteres. Ejemplos:[0-9], [^A-Z], [aeiou].

Ninguna o ms repeticiones del carcter anterior.

Para que estos metacaracteres pierdan su significado se usa \.


Tambin se pueden inhabilitar con :set nomagic.

Reemplazos globales.
:mbitos/patrn1/patrn2/g

mbito n

La lnea nmero n.
n1,n2

Rango de lneas.

Lnea actual.

Final de fichero.

Todo el fichero.

Es la orden.

/patrn1 Lo que buscamos.


/patrn2 Por lo que lo vamos a sustituir. Si no se especifica se borra la expresin buscada.
/g En todas las ocurrencias de una lnea. De no indicarse se reemplaza la primera
ocurrencia de cada lnea.

El Sistema Operativo Unix-Linux

Comandos Bsicos

48

Marcar texto.
mletra
Donde m es el comando (mark) marcar, y debe de ir seguido de una letra de la a a la z. Pone
una seal invisible en la posicin del cursor.
Las marcas sirven para:
Referirnos a la lnea: 'letra (comilla simple).
Referirnos al carcter: `letra (acento grave).
Con las marcas podemos desplazarnos a determinados puntos, solo con teclearlas precedidas
de ' o `.
Tambin se pueden utilizar para indicar el alcance en comandos como d, y, c. As por ejemplo
para borrar de la lnea en curso hasta la que esta marcada con la letra a d'a.

Los Bfers del VI


Podemos distinguir 3 tipos de bfers:

El bfer sin nombre o de proposito general. Que se usa automticamente en las


operaciones de cortar, copiar, pegar y cambiar.

Los bfers numerados, que son nueve. Y contienen los nueve grupos de lneas
borradas ms recientemente con el comando d o x. Lo borrado ms recientemente se
almacena en el bfer n 1.

Se puede pegar su contenido en cualquier parte con el comando p o P.


Utilizando la sintaxis np.

Los 26 bfers alfabticos (de la a a la z). Se emplean en conjuncin con las rdenes
de cortar, copiar y pegar. Para ello se teclea precediendo la orden, comillas dobles y la
letra del bfer, que se va a utilizar para depositar la informacin o tomarla de all.

Edicin de mltiples ficheros.


Cuando al invocar a vi se especifican varios ficheros (ya sea utilizando una lista o empleando
metacaracteres). Se empieza editando el primero.

:n

Despus de que ejecutemos :w (grabar) se pasa al siguiente.

:n!
:rew

Despus de :w pasa a editar el primero de la lista.

:rew!
:args

Informa de los ficheros cargados.

:e fichero Pasa a editar el nuevo fichero si se ha grabado el anterior. Aunque no se haya

El Sistema Operativo Unix-Linux

Comandos Bsicos

49

cargado inicialmente, no se ver con la orden :args.


:e! fichero

dem aunque no se haya grabado el anterior.

:e#

Regresa al fichero anterior.

Mover texto de un fichero a otro.


Utilizando los bfers alfabticos.

Ejemplo: "ay'z (extrae el texto desde la lnea en curso hasta la marcada con z y las almacena
en el bfer a.
En otro fichero se pegar con la orden ap.

No se puede utilizar el bfer sin nombre, ni los numerados (en el vi estndar), pues estos se
borran al pasar de un fichero a otro.

Otra forma sera grabando el bloque en un fichero temporal:


:nLnea1, nLnea2w fichero Graba el rango de lneas en el fichero indicado.
:r fichero

Inserta el fichero despus de la lnea en curso.

Contamos con otros editores como: emacs, joe, nano, gedit,

El Sistema Operativo Unix-Linux

Comandos Bsicos

50

Comunicacin entre Usuarios


Lo primero ser averiguar informacin sobre los usuarios y los que estn conectados

finger
Proporciona informacin sobre los usuarios conectados al sistema, o incluso no conectados si
indicamos su nombre. La sintaxis es:
finger [opc] [usuario...] [usuario@host...]
Por defecto muestra la siguiente informacin sobre cada usuario comectado al host local:
 Nombre de conexin.
 Nombre completo del usuario.
 Nombre del terminal, si va precedido por un * no admite mensajes con write.
 Tiempo que lleva ocioso.
 Hora de conexin.
 Desde dnde se ha establecido la conexin.
Si slo queremos informacin del usuario user07 escribiremos:
finger user07
En este caso la muestra aunque no est conectado.

who
who [opciones]
Con who podemos ver los usuarios conectados a nuestro sistema, adems, nos muestra el
terminal en el que estn conectados y el tiempo de conexin. who imprime la siguiente informacin
por cada usuario que actualmente est conectado al sistema:
 Nombre de la cuenta (login name).
 Terminal.
 Momento en el que se conect.
 Nombre de ordenador remoto o terminal X.
Si slo queremos informacin sobre el usuario que ejecuta la orden escribiremos:
who -m
who am i

w
w [usuario]
Nos da informacin sobre los usuarios que estn conectados en el momento que se ejecuta el
comando y sobre que estn haciendo.
Tambin se puede indicar un usuario en concreto.
Ejemplo:
$w
4:59pm up 4:05, 3 users, load average: 0.00, 0.01, 0.01
USER
TTY
LOGIN@
IDLE
JCPU

El Sistema Operativo Unix-Linux

PCPU

Comandos Bsicos

WHAT

51

paco
tty1
cursolin tty3
paco
pts/0

12:54pm 4:04m
4:59pm 7.00s
4:53pm 0.00s

11.85s
0.06s
0.08s

0.03s
?
0.03s

startx
w

En la primera lnea nos informa de



La hora actual.

Cunto lleva el sistema funcionando.

Cuntos usuarios estn conectados.

Las cargas medias en los anteriores 1, 5 y 15 minutos.
A continuacin para cada usuario se muestra:

Nombre de login,

Nombre de tty.

Tiempo de conexin.

Tiempo inactivo.

Jcpu, es el tiempo usado por todos los procesos bajo el terminal tty.

Pcpu, es el tiempo usado por el proceso en curso.

La lnea de comando del proceso en curso.

write
write usuario [terminal]
El comando write nos permite mandar un mensaje a otro usuario en tiempo real, es decir, el
mensaje aparecer inmediatamente en la pantalla del destinatario. Estos mensajes no se
almacenan en ningn buzn.
Por supuesto slo nos vale si el destinatario est conectado, y adems debe tener mesg en y.
Supongamos que deseamos enviar un mensaje al usuario user07, y que tiene activa la
recepcin de mensajes, en ese caso escribiramos
write user07
Una vez escrito el texto que deseemos enviar como mensaje:
Hola Pepito, que no se te olvide la cita.
pulsaremos [Ctrl]+[d] y el mensaje ser enviado.

Tambin podemos mantener comunicaciones bidireccionales tipo walkie-talkie.


Para ello no se pulsa ^d, y el otro usuario debe de escribir la orden write con nuestro nombre,
cada vez que pulsemos return, esa lnea aparecer en el terminal del otro ususario.

wall
wall [archivo]
Si queremos enviar un mensaje, no a un solo usuario, sino a todos los usuarios conectados
usaremos wall. El mensaje puede estar previamente contenido en un fichero, y para enviarlo
escribiremos:
wall < fichero.txt
Es una utilidad para el administrador y slo l puede escribir en los terminales de los usuarios
que hayan denegado la recepcin de mensajes.

El Sistema Operativo Unix-Linux

Comandos Bsicos

52

Mensaje del da.


Es otra forma de comunicacin, en este caso del administrador con los usuarios.
Consiste en un pequeo mensaje o aviso que aparecer en el terminal de cada usuario cuando
este se conecte.
El administrador colocar este mensaje en el fichero /etc/motd.

Mensaje de preentrada
Aparece justo antes de la lnea que nos pide el nombre del usuario login:, cuando accedemos
al sistema mediante acceso de consola.
El administrador coloca el mensaje en el fichero /etc/issue.

mail
En el caso de que nuestro usuario no est conectado, el mejor comando para comunicarnos
con l es mail.

Envio de mensajes
El mensaje a enviar puede ser tecleado directamente o estar previamente contenido en un
fichero. La sintaxis bsica es:
mail usuario(s)
mail usuario(s) < fichero
No admite metacaracteres.
Si queremos enviar un mensaje a User07 escribiremos:
mail User07
Subject: Cita
Te recuerdo que tenemos una cita
.
Se nos pide el asunto y a continuacin escribimos el texto, finalmente al principio de una nueva
lnea ponemos un punto (.) y pulsamos return.
Cuando User07 se conecte al sistema, ste le avisar de que tiene un correo:

Para enviar el contenido de un fichero:


mail user07 < carta
Algunas opciones de la lnea de comando:
De esta manera no solicita el asunto, si tenemos inters en indicarlo usaremos la opcin -s:
-s cadena

Indicamos el asunto de la correspondencia.

-c Usuario(s)

Usuarios que recibirn una copia.

-b usuario(s)
enteran).

Usuarios que recibirn una copia ciega (los dems no se

En cualquiera de los dos formatos en lugar de poner un ususario podemos colocar una lista de
destinatarios.
Si queremos enviar un mensaje a un usuario de otra mquina escribiremos:
$ mail usuario@nombre_maquina

El Sistema Operativo Unix-Linux

Comandos Bsicos

53

Lectura del correo.


Entramos en el modo de lectura del correo electrnico simplemente escribiendo mail sin
opciones ni argumentos.
Al entrar muestra un resumen tabular de todos los mensajes existentes en nuestro fichero
buzn /usr/spool/mail/UserName (en nuestro sistema /var/mail/UserName), esta informacin
consiste en:
 Estado:
N Mensajes nuevos.
U No son nuevos, pero no han sido leidos.
R Leidos en la actual sesin.
P Preservados. leidos y almacenados en el buzn de entrada.
D Marcados para ser eliminados.
O Mensajes antiguos.
* Guardados en otro archivo buzn.
 N de mensaje.
 Remitente.
 Fecha y hora de recepcin.
 N de lneas / caracteres.
 Asunto.
Finalmente aparece el prompt o inductor de mail, para que le indiquemos cual es la siguiente
operacin que vamos a realizar.
rdenes para ver mensajes:
h

Vuelve a visualizar las cabeceras de los mensajes.

z+ z-

Si la lista de cabecera es muy larga, avanza y retrocede pantalla.

n_mensaje

Visualiza el mensaje.

Intro

Visualiza mensaje siguiente.

Visualiza el mensaje siguiente.

Visualiza el mensaje anterior.

Eliminacin y recuperacin de mensajes.


d n_mensaje
q
mbox.

Marca para eliminar los mensajes indicados.


Sale de mail, elimina los marcados y guarda los leidos en

Sale de mail sin borrar los marcados.

pre n_mensaje
leidos.

Preserva los mensajes en el buzn de entrada aunque estn

s n_mensaje fichero

Almacena los mensajes en el fichero incluida la cabecera.

w n_mensaje fichero

Almacena los mensajes en el fichero sin cabecera.

Configuracin.
mail posee un fichero de configuracin llamado .mailrc, que es utilizado por mail cada vez que

El Sistema Operativo Unix-Linux

Comandos Bsicos

54

se ejecuta, en l podemos configurar muchas opciones:


set asksub
Solicita introduccin de asunto.
set askcc
Solicita, antes de enviarlo, direcciones para copias.
set prompt=cad
Cambia el inductor de mail.
set sign=cad
Establece cadena de firma que se inserta con ~a.
set folder=dir
Establece directorio donde almacenar archivos buzn.
set record=fich
Guarda en el fich todo el correo que se cree o envie.
set outfolder
Pone el archivo record en el directorio folder.
set MBOX=fich
Establece el nombre para el fichero mbox.
set MBOX=+fich
Con el signo + lo coloca en el directorio folder.
Otra utilidad del fichero de configuracin es la de crear alias, un alias en mail es un nombre que
se le da a un grupo de usuarios para mandarle el mismo correo a todos, ahorrndonos de esta
forma tener que teclear el nombre de cada usuario individual. El formato es el siguiente:
alias NombreAlias ListaUsuarios
ejemplo:
alias clase user01 user02 user03 user 04 user05 user06 user07

El Sistema Operativo Unix-Linux

Comandos Bsicos

55

Particionado

Estructura fsica del disco


Hay varios conceptos para referirse a zonas del disco:

Plato: cada uno de los discos que hay dentro


del disco duro.
Cara: cada uno de los dos lados de un plato.
Cabeza: nmero de cabezales, uno por plato.
Pista: una circunferencia dentro de una cara;
la pista 0 est en el borde exterior.
Cilindro: conjunto de varias pistas; son todas
las circunferencias que estn alineadas
verticalmente (una de cada cara).
Sector: cada una de las divisiones de una
pista. El tamao del sector no es fijo, siendo
el estndar actual 512 bytes, aunque
prximamente sern 4 KB. Antiguamente el
nmero de sectores por pista era fijo, lo cual
desaprovechaba el espacio significativamente, ya que en las pistas exteriores pueden
almacenarse ms sectores que en las interiores. As, apareci la tecnologa ZBR
(grabacin de bits por zonas) que aumenta el nmero de sectores en las pistas
exteriores, y utiliza ms eficientemente el disco duro.
Pista (A), Sector (B), Sector de una pista (C), Clster (D)

El primer sistema de direccionamiento que se us fue el


CHS (siglas de cylinder-head-sector cilindro-cabezasector), ya que con estos tres valores se puede situar un
dato cualquiera del disco. Ms adelante se cre otro
sistema ms sencillo: LBA (siglas de logical block
addressing, direccin lgica de bloques), que consiste en
dividir el disco entero en bloques y asignar a cada uno un
nico nmero. ste es el que actualmente se usa.

Particin
Una particin de disco, es el nombre genrico que recibe cada divisin de una unidad fsica
de almacenamiento de datos. Toda particin tiene su propio sistema de ficheros (formato);
generalmente, casi cualquier sistema operativo interpreta, utiliza y manipula cada particin
como un disco fsico independiente, a pesar de que dichas particiones estn en un solo disco
fsico.
Fsicamente una particin se corresponde con un conjunto de cilindros contiguos.

MBR: Partes y funciones


El registro de arranque maestro como tambin se conoce (del ingls Master boot record
cuyo acrnimo es MBR), es un sector de 512 bytes al principio del disco duro que contiene
una secuencia de comandos necesarios para cargar un sistema operativo y una tabla donde
estn definidas las particiones del disco duro.
Se localiza en el primer sector fsico (Cilindro 0, Cabeza 0, Sector 1) asignado a un disco
duro. Cada disco duro tiene un MBR
Cuando se arranca desde el disco duro, la BIOS copia el contenido del MBR en una direccin
fija de la memoria para luego darle el control. Este cdigo arrancar seguidamente el sistema
operativo, ya sea desde el disco duro o desde un Boot-Loader o cargador, algo ms complejo,
como por ejemplo LILO, GRUB o GAG.
El MBR incluye generalmente la tabla de particiones y un cdigo inicial para arrancar el
Sistema operativo.
Estructura del Master Boot Record
Offset Naturaleza

Size

+00h

446 byte

Cdigo ejecutable

+1BEh 1 entrada de tabla de particiones 16 bytes


+1CEh 2 entrada de tabla de particiones 16 bytes
+1DEh 3 entrada de tabla de particiones 16 bytes
+1EEh 4 entrada de tabla de particiones 16 bytes
+1FEh Marcador ejecutable (AA55h)

2 bytes

Este diseo permite que la BIOS arranque el cdigo mquina contenido all y este inicie el
sistema operativo segn las especificaciones de su programa. Muchos virus aprovechan este
funcionamiento de arranque estndar para arrancarse antes que el sistema operativo.

Entradas de la tabla de particiones


Registro de la tabla de particiones 16 bytes
Offset Descripcin
0x00
Estado
0x01
Cabezal, Sector y Cilindro del primer sector en la particin
0x04
Tipo de particin
0x05
Cabezal, Sector y Cilindro del ltimo sector de la particin
0x08
(4 bytes) (Logical block) address del primer sector de la particin
0x0C (4 bytes) Longitud de la particin, en sectores
Por convencin, hay exactamente cuatro entradas de particiones primarias.

Tipos de particiones y unidades lgicas


El formato o sistema de archivos de las particiones (p. ej. NTFS) no debe ser confundido con
el tipo de particin (p. ej. particin primaria), ya que en realidad no tienen directamente
mucho que ver. Independientemente del sistema de archivos de una particin (FAT32, ext4,
NTFS, etc.), existen 3 tipos diferentes de particiones:

Particin primaria: Son las divisiones crudas o primarias del disco, solo puede haber
un mximo de 4, o 3 primarias y una extendida. Un disco fsico completamente
formateado consiste, en realidad, de una particin primaria que ocupa todo el espacio
del disco y posee un sistema de archivos. A este tipo de particiones, prcticamente
cualquier sistema operativo puede detectarlas y asignarles una unidad, siempre y
cuando el sistema operativo reconozca su formato (sistema de archivos).
Particin extendida: Tambin conocida como particin secundaria es otro tipo de
particin que acta como una particin primaria; sirve para contener infinidad de
unidades lgicas en su interior. Fue ideada para romper la limitacin de 4 particiones
primarias en un solo disco fsico. Solo puede existir una particin de este tipo por
disco, y solo sirve para contener particiones lgicas. Por lo tanto, es el nico tipo de
particin que no soporta un sistema de archivos directamente.
Particin lgica: Ocupa una porcin de la particin extendida o la totalidad de la
misma, la cual se ha formateado con un tipo especfico de sistema de archivos
(FAT32, NTFS, ext4,...) y se le ha asignado una unidad, as el sistema operativo
reconoce las particiones lgicas o su sistema de archivos. Puede haber un mximo de
23 particiones lgicas en una particin extendida. Linux impone un mximo de 15,
incluyendo las 4 primarias, en discos SCSI y en discos IDE 63.

Las particiones extendidas se inventaron para superar el lmite de 4 particiones primarias


mximas por cada disco duro y poder crear un nmero ilimitado de unidades lgicas, cada una
con un sistema de archivos diferente de la otra.
Todos los sistemas modernos (Linux, cualquier Windows basado en NT e incluso OS/2) son
capaces de arrancar desde una unidad lgica. Sin embargo, el MBR por defecto utilizado por
Windows y DOS slo es capaz de continuar el proceso de arranque con una particin
primaria. Cuando se utiliza este MBR, es necesario que exista por lo menos una particin
primaria que contenga un cargador de arranque (comnmente el NTLDR de Windows). Otros
cargadores de arranque que reemplazan el MBR, como por ejemplo GRUB, no sufren de esta
limitacin.
Hay que tener en cuenta que solo las particiones primarias y lgicas pueden contener un
sistema de archivos propio.

Representacin grfica de un disco particionado.

Cmo nombra las particiones Linux


Linux hace referencia a las particiones en disco como una combinacin de letras y nmeros,
este es un mtodo ms flexible y ofrece ms informacin que el enfoque dado por otros
sistemas operativos. De forma resumida:

Dos Letras Iniciales - las primeras dos letras del nombre de la particin indican el
tipo de dispositivo donde reside la particin. Normalmente sern hd (para discos IDE)
o sd (para discos SCSI o SATA).
Tercera Letra - esta letra indica que dispositivo contiene la particin. Por ejemplo
/dev/hda (el primer disco duro IDE) o /dev/sdb (segundo disco SCSI).
Nmero - indica la particin. Las primeras cuatro (primarias o extendida) particiones
son numeradas de 1 a 4. Particiones lgicas empiezan en 5. Por ejemplo /dev/hda3 es
la tercera primaria o extendida en el primer disco IDE; /dev/sdb6 es la segunda
particin lgica del segundo disco duro SATA.

As para acceder a las particiones y a otros dispositivos de almacenamiento usaremos:

Disqueteras
o Primera disquetera: /dev/fd0 (en Windows sera la disquetera A:)
o Segunda disquetera: /dev/fd1
Discos IDE (en general: /dev/hdx#, donde x es el disco y # es la particin)
o Primer disco duro: (todo el disco) /dev/hda
 Particiones primarias
 Primera particin primaria: /dev/hda1
 Segunda particin primaria: /dev/hda2
 Tercera particin primaria: /dev/hda3
 Cuarta particin primaria: /dev/hda4
 Particiones lgicas
 Primera particin lgica: /dev/hda5, las siguientes correlativas
o Segundo disco duro: (todo el disco) /dev/hdb
Discos SCSI o SATA
o Primer disco: /dev/sda
o Segundo disco: /dev/sdb
 Y la misma numeracin para las particiones.
Primer CD-ROM SCSI: /dev/scd0, tambin conocido como /dev/sr0

Aplicaciones para la edicin de particiones


GParted es el editor de particiones de GNOME.
Esta aplicacin es usada para crear, destruir,
redimensionar,
inspeccionar
y
copiar
particiones, como tambin sistemas de archivos.
Esto es til para crear espacio para nuevos
sistemas operativos, para reorganizar el uso del
disco y para crear imgenes de un disco en una
particin. QtParted, es la contraparte de GParted
pero para entornos de escritorios KDE.

Servidor ssh
Secure SHell, (cuya traduccin sera intrprete de comandos seguro) es un protocolo de
comunicacin para controlar un ordenador en remoto a travs de una CLI (Command Line Interface Interfaz de Lnea de Comandos- tambin llamada: "shell"). Sirve para conectarnos con un ordenador
ante el cual no estamos fsicamente, bien porque est en una sala de servidores refrigerada, bien
porque no tiene teclado ni pantalla, por ejemplo los que estn apilados en un rack (un armario donde
se guardan ordenadores como los servidores web, de correo electrnico, firewalls, etc...).
OpenSSH es una versin libre del protocolo Secure Shell (SSH), es una familia de herramientas para
control remoto o transferencia de archivos entre equipos. Las herramientas utilizadas tradicionalmente
para realizar estas funciones, eran telnet o rcp, que son inseguras y transmiten la contrasea de los
usuarios en texto plano cuando son usadas. OpenSSH proporciona un demonio y unos clientes para
facilitar un control remoto seguro y encriptado.

Instalacin
La instalacin de cliente y servidor OpenSSH es simple. Para instalar las aplicaciones cliente de
OpenSSH en tu sistema Linux, usa el siguiente comando:
sudo apt-get install openssh-client
Para instalar la aplicacin servidor de OpenSSH, y los archivos de soporte relacionados:
sudo apt-get install openssh-server


Instala la parte cliente y la parte servidora en tu equipo.

Configuracin
Puedes configurar el comportamiento predeterminado del servidor OpenSSH, sshd,
editando el archivo /etc/ssh/sshd_config. Para ms informacin: man sshd_config.
Debes hacer una copia del archivo original y protegerlo contra escritura; as tendrs la
configuracin original como referencia y podrs volver a usarla si es necesario.
Ejemplos de direct ivas de configuracin que se pueden cambiar editando el archivo
/etc/ssh/ssh_config:
Para hacer que OpenSSH escuche por el puerto TCP 2222 en lugar del puerto TCP 22
por defecto, cambia la direct iva Port como sigue:
Port 2222

Para hacer que sshd permita credenciales de inicio de sesin basados en clave
pblica, simplemente aade o modifica la lnea:

Openssh

PubkeyAuthentication yes

Para hacer que el servidor OpenSSH muestre el contenido del archivo /etc/issue.net
como banner antes del login, simplemente aade o modifica la lnea:
Banner /etc/issue.net

Indicar la versin del protocolo a ut ilizar (SSH v1 o SSH v2).


Protocol 2

PermitRootLogin: Permit ir conexiones como el usuario root (NO PERMITIR, por


seguridad).
PermitEmptyPasswords: Permit ir contraseas vacias (NO PERMITIR, por seguridad).
PermitEmptyPasswords no

Permit ir el reenvio a traves de SSH de los siguientes servicios


X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes

Despus de hacer los cambios en el archivo /etc/ssh/sshd_config, guarda este, y reinicia el


servidor sshd para que los cambios tengan efecto usando la siguiente orden en una
terminal:
sudo

/etc/init.d/ssh

restart

Hacer una copia del fichero sshd.config a sshd.config.copia

Examinar al fichero /etc/ssh/sshd_config

Modificar algn valor.

Reiniciar el servicio.

Conexin a un servidor remoto


Si tenemos instalada la parte cliente de Openssh, hacemos ping al servidor y contamos en el con una
cuenta. Nos conectamos de la siguiente forma:
$ ssh usuario_remoto@host_remoto
Nos pide la contrasea del usuario. La primera vez que nos conectemos a un servidor tarda un poco
ms y nos pide confirmacin tecleando "yes" con todas sus letras, las subsiguientes ya no. Sabemos
que estamos conectados porque el prompt cambia y aparece en lugar del nombre de nuestro host el
nombre del host remoto.
Los comandos, programas y scripts que lancemos tras conectarnos se ejecutarn en la mquina a las

Openssh

que nos hayamos conectado, utilizando los recursos del host remoto (CPU, memoria, disco, etc.). Esta
arquitectura puede utilizarse, por ejemplo, para tener un servidor ms potente y varios clientes que
ejecutan aplicaciones en dicha mquina.


Conectaros al Linux de un compaero, usando la cuenta usuario clave


usuario.

Comprobar que se han conectado, consultando los usuarios que hay


activos en el sistema.

Uso de aplicaciones grficas


Para poder ejecutar aplicaciones grficas en el host remoto de forma segura, necesitamos dos cosas.
La primera, que en la configuracin del servidor SSH del host remoto (/etc/ssh/sshd_config) se
encuentre activada la siguiente opcin:
X11Forwarding yes
Para aprovechar esta caracterstica, hemos de conectarnos usando el parmetro -X, lo que exportar
la configuracin de la variable $DISPLAY con lo que podremos ejecutar aplicaciones grficas de forma
remota:
$ ssh -X usuario_remoto@host_remoto
Ahora si ejecutas el programa xclock vers que la ventana sale en tu escritorio:
$ xclock
De igual manera puedes ejecutar gedit.


Comprueba que tu fichero de configuracin de sshd, admita conexiones


grficas.

Conctate al sevidor ssh de un compaero con la opcin X.

Enviar u obtener archivos y carpetas con scp


Permite la copia de ficheros entre ordenadores de una red, empleando la misma autenticacin y
seguridad que ssh.
En una consola o terminal tecleamos:
$ scp -r usuario@maquina:/home/user07/carpeta ./local
Nos pide el password y copiar el directorio remoto "/home/user07/carpeta", en el directorio "./local",
siempre que usuario tenga los permisos necesario.
La opcin "-r" significa recursivo, es decir, copia el directorio y todo su contenido, incluidos los
subdirectorios y su contenido. Si no lo ponemos la orden para copiar todos los archivos de una
carpeta sera:

Openssh

$ scp usuario@maquina:/home/user07/carpeta/* ./local


Si lo que queremos es enviar el contenido de un directorio, al ordenador remoto, utilizaremos la
orden:
$ scp /home/sif07/local/* usuario@maquina:/home/user07/carpeta/


Transferir archivos y carpetas, desde y hacia vuestra cuenta en el


ordenador del profesor.

Realizar copias entre los ordenadores de los compaeros.

Hacer todo esto en modo grfico


Si lo que que queremos es conectarnos a un ordenador por ssh en modo grfico tambin lo podremos
hacer. Es ms simple pero tambin tienes menos posibilidades, o para hacer ciertas cosas tardas ms
incluso que hacindolo por consola, pero para las operaciones fciles como administrar, editar un
fichero tambin es posible hacerlo de esta manera.
Entraremos en Lugares -> Conectar con al servidor...
Elegiremos en el desplegable de arriba en lugar de FTP pblico, SSH y pondremos la IP del servidor.

Restringir el acceso SSH


Para evitar que todos los usarios de la mquina estn accesibles por SSH, editamos el fichero
/etc/ssh/sshd_config, y aadimos la lnea AllowUsers y a continuacin los usuarios que se van a poder
conectar remotamente via SSH:
$ sudo gedit /etc/ssh/sshd_config
Y aadimos la lnea:
AllowUsers usuario1 usuario2 usuario3
Para que los cambios surtan efectos habr que reiniciar el servidor:
$ sudo /etc/init.d/ssh restart

Openssh

Administracin de grupos y usuarios


Trabajo con grupos
Los grupos son colecciones de usuarios que comparten recursos o ficheros del sistema. Con los grupos se
pueden aplicar permisos concretos para un conjunto de usuarios, sin tener que repetirlos cada vez que se
desee aplicarlos.

Cmo actan los grupos:


Cada usuario pertenece como mnimo a un grupo. Al crear un fichero se establece como grupo propietario el
grupo activo del usuario en ese momento.
Para determinar si tenemos permisos sobre un fichero, por ejemplo para leerlo o modificarlo, se usan todos
los grupos a los que pertenecemos.
El grupo activo suele ser el primario, salvo que se haya cambiado con newgrp

El fichero de configuracin de grupos


/etc/group
Este archivo contiene todos los grupos existentes en el sistema y los usuarios que pertenecen a los diversos
grupos. En cada lnea almacena informacin relativa a un grupo. La estructura de este fichero es de la
siguiente forma:

Grupo:x:GID:Lista de usuarios

Grupo: nombre del grupo, o groupname.

x indica que el password se guarda en el archivo /etc/gshadow.

GID: identificador del grupo, internamente el sistema identifica al grupo por este nmero.

Lista de usuarios: los usuarios que pertenecen al grupo, separados por comas ,

Por ejemplo:

sif:x:519:pilar,alvaro,juan,luis,user01,user02,user03

/etc/gshadow, contiene la informacin de seguridad de los grupos (grupo, contrasea, y tambin los
miembros). Su funcionalidad es la misma que /etc/shadow para los usuarios, esto es, aadir una seguridad
extra a las contraseas. Su estructura es:

Grupo:Clave encriptada:Administradores del grupo:Lista de usuarios

Usuarios y Grupos

Administracin Linux

Ojear el fichero group de tu sistema y el del profesor.

Intentarlo igualmente con el fichero gshadow

Comprobar la diferencia entre los permisos de /etc/group y /etc/gshadow

Tipos de grupos

Primario: el grupo especificado en el fichero /etc/passwd, se asigna al dar de alta al usuario.

Secundarios: los otros grupos a los que pertenece, que aparen en /etc/group

Comandos

Nuevo grupo:

groupadd grupo
Tambin podemos dar de alta un grupo editando directamente el fichero /etc/group.

Modificar un grupo existente:

groupmod [-n nuevo-nombre] nombre-grupo


Con esto le estamos cambiando el nombre al grupo.

Eliminar un grupo:

groupdel grupo
Tambin lo podemos eliminar directamente en el fichero /etc/group, con cuidado de mantener la integridad
con los ficheros de usuarios.

Aadir un usuario a un grupo

gpasswd -a user grupo

Eliminar un usuario de un grupo:

gpasswd -d user grupo

Aadir una lista de usuarios a un grupo

gpasswd -M user1,user2,usern grupo

Aadir una lista de usuarios administradores a un grupo

gpasswd -A user1,user2,usern grupo

Otra forma de aadir y eliminar usuarios de un grupo:

# adduser usuario grupo


# deluser usuario grupo

Cambiar de grupo activo:

newgrp grupo
Usuarios y Grupos

Administracin Linux

Lanza un shell donde el usuario trabaja con los permisos del grupo indicado, y los ficheros o directorios que
cree pertenecern a este grupo.

Asignar una contrasea a un grupo:

gpasswd grupo
Si un grupo tiene contrasea, un usuario que la conozca podr trabajar con ese grupo, a pesar de no
pertenecer l. Al ejecutar la orden newgrp grupo introducir la contrasea y pasar a ser su grupo activo.

Eliminar contrasea de un grupo:

gpasswd r grupo

Grupos a los que pertenece un usuario

groups usuario

Lista el identificador del usuario y los grupos a los que pertenece

id usuario

Chequea la consistencia del fichero de grupos

grpck

Volver a sincronizar los ficheros group y gshadow

grconv
Se usa la orden pwconv para los ficheros de usuarios.

Cambiar directorios o ficheros de grupo propietario

chgrp [-R] grupo archivo


Con la opcin -R hace el cambio de forma recursiva.

Grupos predeterminados
o

root, sys

bin, daemon, adm, lp, disk, mail, ftp, nobody, tty, etc.

Kmem: Grupo propietario de los programas para leer la memoria del kernel

users

Prctica de grupos:


Hacer una copia de los ficheros group y gshadow.

Usuarios y Grupos

Administracin Linux

Crear los grupos: grupouno, grupodos y g20.

(*) Comprobar los cambios en los ficheros group y gshadow.

Cambiar el nombre de g20 por grupo20. (*)

Chequear la consistencia de los ficheros de grupos.

Eliminar el grupo20 del fichero group con un editor.

Volver a comprobar la consistencia de los ficheros de grupos.

Agregarlo nuevamente y borrarlo con el comando apropiado.

Asignar una clave al grupodos. (*)

Cambiar al grupodos, aunque no pertenezcamos a l.

Crear un fichero y comprobar a que grupo pertenece.

Volver al grupo primario.

Quitarle la contrasea al grupodos, e intentar pasarse a l.

Aadiros al grupouno y al grupodos. (*)

Poneros grupouno como el activo.

Crear un fichero y comprobar a que grupo pertenece.

Mostrar a que grupos pertenecis, con y sin GID.

Borrar el grupodos. (*)

Chequea la consistencia del fichero de grupos.

Los usuarios
Las cuentas de usuario ofrecen:
o

Un nombre y una contrasea, con los que autenticarnos en el sistema.

Una ruta para almacenar los documentos.

Un perfil generalmente dentro de la carpeta /home/nombre-usuario, comnmente denominada


carpeta home del usuario.

Un intrprete de comandos (shell) que le permitir ejecutar aplicaciones.

Ficheros de configuracin de usuarios


Cuando se agregan usuarios al sistema se modifican ciertos archivos que a continuacin mostramos, adems
de los de grupos:

/etc/passwd
Este archivo contiene todos los usuarios del sistema y la estructura que guarda es de la

siguiente forma

Usuario:x:UID:GID:Comentarios:Directorio Home:Shell
Con el siguiente significado:

Usuario: Nombre del usuario.

x: La clave se encuentra en el fichero /etc/shadow.

Usuarios y Grupos

Administracin Linux

UID: N de identificacin del usuario.

GID: N de identificacin del grupo primario.

Comentarios: Informacin Usuario. Campo comentario.

Directorio Home: o Directorio de Conexin.

Shell: El intrprete de comando por defecto.

/etc/shadow
Almacena informacin sobre la contrasea de cada usuario. No es obligatorio, por lo que no existe en
algunas versiones. Sus campos, tambin separados por : son los siguientes:

Nombre del usuario.

Contrasea cifrada.

Das transcurridos desde 01-01-1970 y la ltima modificacin de la clave.

N de das necesarios para que el usuario pueda cambiarla.

N de das mximo en los que la contrasea es vlida.

N de das de antelacin con los que el sistema avisar al usuario de la caducidad.

N de das de inactividad que se permite al usuario.

N de das a partir del 1/1/1970, pasados los cuales su nombre no podr ser utilizado.

No usado.

Este fichero es an ms restrictivo en sus permiso que el fichero /etc/passwd.




Examinar los ficheros /etc/passwd y /etc/shadow, comprobar sus permisos.

Creacin de usuarios
Esta labor es exclusiva del administrador. Dependiendo de las versiones, contamos con las rdenes:
o

adduser

Existe en versiones interactivas y otras en las que la informacin se introduce

mediante parmetros.
o

useradd

[-opciones] login

adduser (comando interactivo para dar de alta)

Pide los datos necesarios y confirmacin al final.

Da de alta al usuario en los ficheros /etc/passwd y /etc/group.

Crea su directorio y en el copia los ficheros existentes en /etc/skel, que deber de contener los
ficheros de configuracin.

useradd recibe la informacin como parmetros de la lnea de comando, su formato es:

useradd [opciones] usuario


-g IDGroup

N ID o nombre del grupo primario.

-G IDGrupo(s)

Grupo(s) secundario(s), separados por comas sin espacios.

Usuarios y Grupos

Administracin Linux

-d directorio

Trayectoria absoluta del directorio de conexin ($HOME).

-m

Crea el directorio $HOME.

-M

No crea el directorio $HOME para el usuario.

-s shell

Trayectoria absoluta del shell de conexin.

-c informacin

Informacin del usuario (comentario), no es obligatorio.

-k directorio

Usa el directorio como alternativo al /etc/skell.

-e fecha_exp.

A partir de esta el usuario no tendr acceso al sistema.

-f nDas

Tiempo inactivo dado en das, que tiene que transcurrir para que caduque la

contrasea y se inhabilite la cuenta.


-u IDUser

N de identificacin del usuario (por defecto la siguiente libre).

-U

Crea un grupo con el mismo nombre que el usuario.

-N

No crea un grupo con el nombre del usuario.

-p passwd

Contrasea cifrada (crypt).

En el fichero /etc/default/useradd, podemos definir valores por defecto para la creacin de nuevos usuarios.
Si no lo hacemos en el momento de la creacin del usuario, posteriormente deberemos crear su directorio y
asignarle un passwd.
Ejemplo:

# useradd d /home/pepe -m s /bin/bash -g sif pepe

El usuario no se puede conectar hasta que no se le defina una contrasea. El administrador crear una
contrasea para cada usuario con el comando:

# passwd nombre_usuario
Cuando se omite el nombre_usuario, nos cambiamos la contrasea a nosotros mismos.


Visualizar el fichero de configuracin de usuarios por defecto


/etc/default/useradd, y comprobar las opciones que podemos preconfigurar.

Crear un usuario sin contrasea, identificarlo en los ficheros de


configuracin de usuarios.

Intentar conectarse como el usuario anterior en una consola virtual.

Asignarle una contrasea, comprobarla en el fichero shadow.

Acceder al sistema con el nuevo usuario.

Que el propio usuario se cambie la contrasea.

Para cambiar fichero o directorios de dueo, usamos el comando:

chown [-R] usuario[:grupo] fichero


El comando useradd permite crear muchos usuarios automticamente mediante archivos de comandos
(scripts).

Usuarios y Grupos

Administracin Linux

Plantillas de ususarios
/etc/skel
Crear una plantilla nos permite, a partir de ella, aadir nuevos usuarios con unas determinadas
configuraciones en cuanto a aspecto del escritorio y entorno por defecto de archivos y carpetas, as como
valores en variables de entorno.
El directorio /etc/skel contiene ficheros y directorios que son automticamente copiados al directorio home
del usuario, cuando un nuevo usuario es creado utilizando el programa de lnea de comando useradd o bien
desde el entorno grfico (Sistema->Administracin->Usuarios y grupos).
Un directorio home, tambin denominado directorio de login, es un directorio en los sistemas operativos
Linux/Unix, que sirve como repositorio o almacn para los ficheros personales del usuario, directorios y
programas, incluyendo los ficheros de configuracin personales. Tambin es el directorio donde el sistema
nos ubica despus de loguearnos ante el sistema.
Si queremos estar seguros que todos los usuarios de nuestro sistema tengan la misma configuracin inicial,
los cambios los deberemos realizar en /etc/skel
Procedimiento:

Creamos un usuario, que servir de modelo (lo llamamos plantilla).

Le configuramos el escritorio, paneles de control, contenido de los paneles, accesos directos a


aplicaciones en el escritorio,

Hacemos una copia del directorio original (por precaucin)

cp r /etc/skel /etc/skel.original

Los ficheros de configuracin, como .profile, los modificamos directamente en /etc/skel, para
modificar variables de entorno como PATH o incluir rdenes como umark.

Slo nos queda copiar, al directorio /etc/skel, las carpetas del directorio personal del usuario
plantilla, donde se encuentra la configuracin del escritorio y del gestor de ventanas gnome.

cd /etc/skel
sudo cp rf /home/plantilla/Escritorio .
sudo cp rf /home/plantilla/.gconf .
sudo cp rf /home/plantilla/.gnome2 .
sudo cp rf /home/plantilla/.gnome2_private .
Una vez copiadas al directorio /etc/skel, sern copiadas al directorio home de los usuarios cada vez que
creemos uno nuevo, quedando configurado el aspecto del escritorio, su mscara y su PATH, a partir de la
plantilla almacenada en /etc/skel.

NOTA: Los ficheros de inicializacin dependen del intrprete de rdenes seleccionado:


Se ejecuta al hacer un login (PATH, variables de entorno, umask, funciones de inicializacin, etc.):

Usuarios y Grupos

Administracin Linux

.bash_profile

en Bourne Again Shell (bash)

.profile

en Bourne Shell (sh)

.login

en C Shell (csh)

Cada vez que se ejecuta un shell (alias, var. del propio shell, etc.)
.bashrc

en Bourne Again Shell (bash)

.cshrc

en C Shell (csh)

Al salir del sistema el usuario (al finalizar la sesin)


.bash_logout

en Bourne Again Shell (bash)

.logout

en C Shell (csh)

Password o contraseas
El administrador puede cambiar la contrasea de cualquier usuario, y cada usuario se la puede cambiar a si
mismo.

passwd [nombre_usuario]
A la hora de elegir una buena contrasea:
No utilizar:
Tu nombre o parte de l, o de alguien cercano a ti.
Nmeros significativos para ti o alguien cercano a ti.
Algn nombre, nmero, lugar, gente, etc., asociado a tu trabajo.
Palabra que este en un diccionario (espaol, ingls, etc.)
Nombre de gente famosa, lugares, pelculas, relacionadas con publicidad, etc.
Consejos:
Introducir 2 o ms caracteres extras, smbolos especiales o de control.
Escribir mal las palabras.
Utilizar maysculas y minsculas, pero no de forma evidente.
Utilizar algunos dgitos.
Concatenar, embeber o mezclar 2 o ms palabras, o partes de palabras.
Usar caracteres poco comunes, como por ejemplo $, &, # ,
La contrasea se debe cambiar cuando:
Se sospecha que alguien la ha podido conocer o averiguar.
Un usuario se marcha del trabajo, cambiar todas las que conozca.
Un administrador del sistema se va, cambiar TODAS.
Se sospecha que alguien ha conseguido el fichero con las contraseas (tanto /etc/passwd como
/etc/shadow)
Un intruso ha conseguido entrar en el sistema.
Peridicamente, se debe forzar a que los usuarios cambien sus contraseas, incluido el
administrador.

Usuarios y Grupos

Administracin Linux

Prctica:


Una empresa acaba de instalar un servidor Linux y desea dotar de cuentas de


usuario a sus empleados.

Departamentos (entre parntesis se muestran los usuarios de cada


departamento):
comercial (cojefe, co1, co2, co3, co4)
almacen (aljefe, al1, al2, al3)

Confeccionar dos plantilla de usuarios, una para comerciales en /home/co y


otra para almacn en /home/al. Incluirn diferentes paneles, lanzadores,
fondo y temas de escritorio, ficheros de inicio.

Crear un grupo por departamento, llamados: comerciales y almacenistas.

Crear un directorio dentro de /home por departamento (/home/comercial y


/home/almacen)

Dar de alta a los usuarios:


Teniendo en cuenta sus plantillas correspondientes
Contrasea inical de cada usuario ser el nombre de su grupo.
La contrasea deber expirar en un da.
La shell a utilizar ser /bin/bash.
Asignarlos a su grupo primario.
Los directorios personales de cada usuario colgarn del departamento al
que pertenezca.

Por defecto, cualquier usuario de un grupo puede leer los directorios


personales de otros usuarios si y slo si estos pertenecen a su mismo grupo.
En ningn caso podrn escribir en otros directorios personales que no sean el
suyo.

Dentro de cada directorio departamento coexistir con los directorios


personales otro directorio llamado work donde todos los usuarios del
departamento pueden intercambiar informacin (todos pueden crear y borrar
archivos).

En /home existir tambin un directorio comun donde todos los usuarios de


cualquier departamento pueden intercambiar informacin. Dentro de dicha
ubicacin, existir otro directorio comunJefes donde slo los jefes de
departamento pueden intercambiar informacin. comunJefes no ser accesible
para ningn otro empleado.

Bajas de usuarios
Distintos niveles:
- Dar de baja slo la posibilidad de conectarse. Colocando un * en el 2 campo de /etc/passwd. til para
usuarios temporalmente ausentes.
- Dar de baja en el fichero de contraseas, pero dejando todos sus ficheros y directorios. Editando y
borrando la lnea correspondiente o con el comando:

userdel NombreUsuario
- Dar de baja al usuario y eliminar todos sus ficheros.

userdel -r NombreUsuario

Usuarios y Grupos

Administracin Linux

Cambio de atributos de un usuario


usermod [-l nuevoNombre][-c comentario][-d home] [-m] [-e fecha][f dias][-g grupo][-G lista de grupos][-s shell][-L | -U] usuario
usermod permite las opciones de useradd y adems:
-l NuevoNombre
-m

Traslada el directorio login al indicado con la opcin -d.

-L

Bloquea al usuario.

-U

Desbloquea al usuario.

(Con la opcin s es similar a chsh -s shell)

Inhabilitar un usuario colocando un * en su segundo campo del fichero


/etc/passwd. Comprobar que no se puede conectar.

Volver a habilitarlo y comprobar que se puede conectar.

Borra las lneas correspondientes del usuario en los ficheros de


configuracin de usuarios (o userdel)

Entra como administrador en su directorio y haz un listado largo Qu usuario


aparece?

Volver a crear el usuario (con otro nombre), para que pueda acceder a sus
ficheros.

Conectarse como el usuario rehecho.

Cambiarle el nombre para dejarle el original.

Bloquear un usuario, usando usermod, averigua que cambios a realizado el


comando en los ficheros de configuracin.

Comprobamos que efectivamente est bloqueado y a continuacin lo


desbloqueamos.

Borrar el directorio $HOME de un usuario. Conectarse Dnde est? Puede


crear ficheros?

Crearle otro directorio de conexin, segn la plantilla de creacin por


defecto. Al nuevo directorio asignarle el propietario y grupo adecuados de
forma recursiva.

Dar de baja definitiva al usuario.

Dar de alta un nuevo usuario sin usar los comandos de gestin de usuarios.
Ponerle password y probarlo.

Usuarios estndar
o

root: Cuenta del administrador

bin, daemon, lp, sync, shutdown, etc.: usados para poseer ficheros o ejecutar servicios

mail, news, ftp: Asociados con herramientas o facilidades

postgres, mysql, xfs: Creados por herramientas instaladas para administrar y ejecutar sus servicios

nobody o nfsnobody: Usada por NFS y otras utilidades

Usuarios y Grupos

Administracin Linux

10

SUDOERS
Introduccin:
Por cuestiones de seguridad, ubuntu intenta evitar el uso indiscriminado del usuario root, que es el
usuario administrador o superusuario. Este usuario tiene identificacin cero (UID = 0).
root, tiene permiso para hacer cualquier cosa: borrar, modificar, ejecutar o crear cualquier objeto o
fichero.
En Ubuntu el usuario root, viene sin clave de acceso preestablecida. Como lo podemos ver en el
fichero /etc/shadow:

root:!:14301:0:99999:7:::
daemon:*:14301:0:99999:7:::
bin:*:14301:0:99999:7:::
sys:*:14301:0:99999:7:::
En el caso de root aparece un signo de exclamacin (!), esto quiere decir que el usuario root no tiene
clave establecida.
De esta forma no nos podemos conectar al sistema directamente como root, con lo que de alguna
forma queda limitado su uso indiscriminado, es decir, que se use tanto para tareas administrativas
como para las que no lo son.
Otra medida para proteger el uso de root, en caso de haber instalado el servidor ssh (secure shell), es
evitar las conexiones remotas a travs del usuario root. Para esto editamos su fichero de
configuracin en el servidor ssh, /etc/ssh/sshd_config, en una de sus lneas especifica que se
permita hacer login al usuario root o no:

# Authentication:
LoginGraceTime 120
PermitRootLogin no
Esta es la lnea que impide que el usuario root pueda acceder va ssh.

Cmo se hace para administrar el sistema?


La respuesta est en el paquete sudo. sudo significa super user do o Super Usuario Hace, el
comando sudo, es utilizado en modo texto para ejecutar casi cualquier comando como si lo estuviese
ejecutando el usuario root, ahora bien, slo ciertos usuarios pueden usar el comando sudo.
Por defecto en Ubuntu, durante la instalacin, y a diferencia de otras distribuciones de GNU/Linux, no
se pregunta la clave del usuario root, pero si el nombre de un primer usuario y su clave de acceso, ese
primer usuario, ser quien pueda ejecutar el comando sudo inicialmente.

1. Aunque no sea recomendable, pero debido a que ya somos unos usuarios

Sudo

Administracin Linux

cuasi experimentados, que sabemos que la cuenta de root se debe de usar


de manera exclusiva para tareas administrativas y que en nuestras
prcticas estamos realizando trabajo de administracin. Vamos a habilitar
la cuenta de root simplemente ponindole contrasea.

Exactamente qu es y qu hace sudo?


sudo permite implementar un control de acceso altamente granulado, de qu usuarios ejecutan qu
comandos. Si un usuario normal desea ejecutar un comando de root (o de cualquier otro usuario),
sudo verifica en su lista de permisos y si est permitida la ejecucin de ese comando para ese usuario,
entonces sudo se encarga de ejecutarlo.
Es decir, sudo es un programa que basado en una lista de control (/etc/sudoers), permite (o no) la
ejecucin al usuario que lo invoc sobre un determinado programa propiedad de otro usuario,
generalmente del administrador del sistema 'root'.
Sin embargo, el fichero /etc/sudoers no contiene al usuario que se cre durante la instalacin, pero si
miramos bien, tiene una lnea que dice:

# Members of the admin group may gain root privileges


%admin ALL=(ALL) ALL
Aqu es donde se establece que los miembros del grupo admin puedan hacer uso del comando sudo.
El equivalente al sudo en modo grfico es el comando gksu y funciona igual que su equivalente sudo
en el intrprete de comando (terminal) o Shell.

sudo, para fines prcticos se puede dividir en tres partes:


a. sudo, el comando con permisos de SUID.
b. visudo, el comando que permite al administrador modificar /etc/sudoers.
c. /etc/sudoers, el archivo de permisos que le indica a sudo qu usuarios ejecutan qu
comandos.

2. Buscar donde se encuentra el ejecutable de sudo, con el comando whereis.


3. Comprobar sus permisos.
4. Visualizar su contenido y comprobar que existe la lnea en la que a los
miembros del grupo admin se les da permisos totales.
5. Mostrar los grupos a los que pertenece el usuario creado en la
instalacin, o en el fichero group, ver los usuarios que incluye.
6. Meter un usuario sin privilegios en el grupo admin Podr ejecutar
comandos de root?
7. Ejecutar desde la lnea de comandos alguna aplicacin grfica (como
nautilus) con el comando gksu.

Sudo

Administracin Linux

sudo
sudo (SUperuser DO) lo ejecuta un usuario normal, al que se le concede permiso para ejecutar ciertos
comandos, que en principio no le son propios. sudo requiere que el usuario se autentifique a si
mismos a travs de su contrasea para permitirle la ejecucin del comando. Veamos un ejemplo:

$ sudo visudo
[sudo] Password for user07:
...
Por defecto, despus de hacer lo anterior, durante 5 minutos puedes volver a usar el mismo comando
u otros a los que tengas derecho, sin necesidad de escribir la contrasea de nuevo. Para extender el
tiempo por otros 5 minutos usa:

sudo v

(validate).

Por el contrario, si ya terminaste lo que tenas que hacer, para finalizar con el tiempo de gracia de
validacin puedes usar:

sudo -k

(kill).

sudo con la opcin l nos muestra los comandos que podemos usar, gracias al fichero sudoers.

$ sudo -l
User sergio may run the following commands on this host:
(root) /sbin/ifconfig
(root) /sbin/lspci
Normalmente sudo interesa para ejecutar comandos de root, pero tambin es posible ejecutar
comandos de otros usuarios del sistema indicando la opcin u, siempre que en el fichero sudoers se
nos haya concedido permiso:

$ sudo -u ana /home/ana/suprograma


Otra opcin interesante es la que permite editar archivos de texto de root (con el permiso otorgado en
'sudoers' como se ver ms adelante), y esto se logra con la opcin e (equivale a sudoedit), que
invoca al editor por defecto, que generalmente es 'vi'.

$ sudo -e /etc/shadow
(Permitir modificar el archivo indicado como si fuera root)
Cuando se configuran las reglas de acceso en el fichero sudoers, existen mltiples opciones (defaults),
que se pueden configurar, estas se muestran con la opcin L de sudo.

$ sudo -L
Nos muestra las opciones y una pequea descripcin, ests opciones se establecen en el archivo de
configuracin 'sudoers'.
sudo -V lista las opciones (defaults) establecidas para todos los usuarios, comandos, equipos, etc.

Sudo

Administracin Linux

Nota: Esta opcin requiere privilegios de administrador.

# sudo -V

visudo
Permite la edicin del fichero de configuracin de sudo, sudoers. Invoca al editor que se tenga por
defecto que generalmente es 'vi' (enlazado con el fichero /usr/bin/editor).
Cuando se ejecuta, bloquea el archivo /etc/sudoers, para que nadie ms lo pueda editar, esto por
razones obvias de seguridad que evitarn que dos o ms usuarios administradores sobreescriban
accidentalmente los cambios que el otro realiz.
Otra caracterstica importante de visudo es que al cerrar el fichero, verifica que est bien configurado,
es decir, detectar si hay errores de sintaxis en sus mltiples opciones o reglas de acceso. Por esta
razn no debe editarse /etc/sudoers directamente (perfectamente posible ya que es un archivo de
texto como cualquier otro), sino siempre usando visudo.
Si al cerrar, visudo detecta un error, nos mostrar la lnea donde est, y pregunta "What now?":

>>> sudoers file: syntax error, line 15 <<<


What now?
Se tienen tres opciones para esta pregunta:
o

Edita de nuevo el archivo, colocando el cursor en la lnea del error.

Salir sin guardar los cambios.

Salir y guarda los cambios.

Si tan solo se desea comprobar que /etc/sudoers est bien configurado se usa la opcin -c.

# visudo -c
/etc/sudoers file parsed OK
La opcin -s activa el modo 'estricto' del uso de visudo, al grabar, no solo se comprobar los errores
sintcticos, sino tambin el orden correcto de las reglas, por ejemplo, si se define el alias para un
grupo de comandos y este se usa antes de su definicin.

8.
Haz una copia del fichero sudoers a sudoers.original.
9.
Comprueba que est bien configurado (opcin c)
10. Entra a editarlo con la opcin s, proboca un error (borra un igual) y
trata de grabarlo.
11. Corrge el error y vuelve a grabarlo.

Sudo

Administracin Linux

Sudoers
En este archivo se establece quin (usuarios) puede ejecutar qu (comandos) y cmo (opciones),
generando efectivamente una lista de control de acceso que puede ser tan detallada como se desee.
Es ms fcil entender sudo si dividimos en tres partes su posible configuracin:
o

Alias

Opciones (Defaults)

Reglas de acceso

Ninguna de las secciones es obligatoria, ni tienen que estar en algn orden especfico, pero la que al
menos debe de existir es la tercera.

Alias
Un alias se refiere a usuarios, comandos o equipos. El alias engloba bajo un solo nombre (nombre del
alias) una serie de objetos y despus, en la parte de definicin de reglas, al poner el alias, nos
estamos refiriendo a todos los objetos que contiene.
La forma para crear un alias es la siguiente:

tipo_alias NOMBRE_DEL_ALIAS = objeto1, objeto2,... objetoN


tipo_alias NOMBRE1 = objeto1, objeto2 : NOMBRE2 = objeto3, objeto4
En el segundo caso, separados por ":", se estn definiendo dos alias.

El tipo_alias indica los elementos que contendr. Hay cuatro tipos:


o

Cmnd_Alias

define alias de comandos.

User_Alias

define alias de usuarios normales.

Runas_Alias

define alias de usuarios administradores o con privilegios.

Host_Alias

define alias de hosts o equipos.

El NOMBRE_DEL_ALIAS puede llevar letras, nmeros o guin bajo ( _ ) y DEBE de comenzar con una
letra mayscula, se acostumbra a usarlos siempre en maysculas.

Cmnd_Alias
Engloba a uno o ms comandos y otros alias de comandos. Ejemplos:
Cmnd_Alias WEB = /usr/sbin/apachectl, /usr/sbin/httpd, sudoedit /etc/httpd/*

A quien se le aplique el alias WEB podr ejecutar los comandos apachectl, httpd y editar todo lo que
este debajo del directorio /etc/httpd/.
Notas: Hay que indicar la ruta de los comandos. Cuando nos referimos a directorios, la trayectoria
deber de terminar con '/'.

Sudo

Administracin Linux

Cmnd_Alias APAGAR = /usr/bin/shutdown -h 23\:00


Al usuario que se le asigne el alias APAGAR, podr hacer uso del comando 'shutdown', exactamente
con los parmetros como estn indicados, es decir, apagar -h (halt) el equipo a las 23:00 horas.
Nota: Es necesario escapar el signo ':', as como los smbolos ' : , = \

Cmnd_Alias NET_ADMIN = /sbin/ifconfig, /sbin/iptables, WEB


NET_ADMIN es un alias con los comandos de configuracin de interfaces de red ifconfig y de firewall
iptables, pero adems le agregamos un alias previamente definido que es WEB, as que a quien se le
asigne este alias, podr tambin hacer uso de los comandos del alias WEB.

Cmnd_Alias TODO_BIN = /usr/bin/, !/usr/bin/rpm


A quien se le asigne podr ejecutar todos los comandos que estn dentro del directorio /usr/bin/,
menos el comando 'rpm' ubicado en el mismo directorio.

OTA: este tipo de alias con un permiso muy amplio menos '!' algo, generalmente no son una
buena idea, ya que comandos nuevos que se aadan despus a ese directorio tambin podrn ser
ejecutados, es mejor siempre definir especficamente lo que se requiera.
12. Crea un alias de comando llamado ALTAS, que incluya las principales
rdenes de gestin de usuarios y grupos.
13. Define otro alias llamado ALTASEDIT, que contenga al anterior, ms el
comando sudoedit.
14. Declara un alias llamado DIRECTORIOS, que nos permita editar en las
carpetas:
/home/comunjefes,
/home/comercial/trabajo
y
/home/almacen/trabajo.

User_Alias
Definen a uno o ms usuarios por su nombre o su UID (precedido de #), grupos del sistema
(precedidos con %), grupos de red (netgroups precedidos con +) u otros alias de usuarios. Ejemplos:

User_Alias ADMIN = sergio, ana


'sergio' y 'ana' pertenecen al alias ADMIN.

User_Alias MYSQL_USERS = andy, marce, juan, %mysql


Al alias MYSQL_USERS pertenecen los usuarios indicados individualmente ms los usuarios que formen
parte del grupo 'mysql'.

Sudo

Administracin Linux

User_Alias TODOS = ALL, !samuel, !david


El alias de usuario TODOS, al incluir la palabra reservada 'ALL' abarcara a todos los usuarios del
sistema, excluyendo a dos de ellos, los negamos con '!'. Es decir, todos los usuarios menos esos dos.
NOTA: los usuarios nuevos que se aadan al sistema tambin sern considerados como ALL, es mejor
siempre definir especficamente a los usuarios que se requieran. ALL es vlido en todos los tipos de
alias.

User_Alias OPERADORES = ADMIN, alejandra


Los del alias ADMIN ms el usuario 'alejandra'.

Runas_Alias
Funciona exactamente igual que User_Alias.
Define los usuarios como quien vamos a ejecutar los comandos.

Runas_Alias OPERADORES = #501, fabian


Al alias OPERADORES pertenecen el usuario con UID 501 y el usuario 'fabian'

15. Crea un alias para los empleados de cada departamento (sin los jefes),
con el nombre del departamento.
16. En otro alias llamado EMPLEADOS une incluye todos los empleados de
todos los departamentos (sin los jefes)
17. Define un alias que incluya los jefes de departamento y al usuario
director, llamarlo JEFES

Host_Alias
Definen uno o ms equipos u otros alias de host. Los equipos pueden indicarse por:

Su nombre, si se encuentran en /etc/hosts.

Nombre de dominio, si existe un controlador de dominios.

Direccin IP.

Direccin de red con mscara de red.

Podemos aadir equipos en /etc/hosts, escribiendo en una lnea la IPv4 del equipo y separado por un
espacio o tabulador el nombre del equipo. El nombre del equipo se define en /etc/hostname

Ejemplos:

Sudo

Administracin Linux

Host_Alias LANS = 192.168.208.0/24, 192.168.209.0/255.255.255.0


El alias LANS define todos los equipos de las redes locales.

Host_Alias WEBSERVERS = 172.16.0.21, web1 : DBSERVERS = 192.168.100.10, dataserver

Se define dos alias en la misma lnea: WEBSERVERS y DBSERVERS con sus respectivas listas de
elementos.
Nota: El separador ':' es vlido en cualquier definicin de tipo de alias.

18. Definir un alias que incluya todos los host de la clase.

Opciones (D
(Defaults)
Las opciones o defaults permiten definir ciertas caractersticas de comportamiento para los alias
previamente creados, usuarios, equipos o de manera global para todos.
No es necesario definir opciones o defaults, sudo ya tiene establecido el valor de cada uno, y es
posible conocerlas a travs de sudo -V.
Sin embargo, la potencia de sudo est en su alta granularidad de configuracin, as que es importante
conocer al menos como se emplean.
Se usa la palabra reservada 'Defaults' para establecer las opciones y dependiendo del nivel al que va a
afectar su sintaxis es la siguiente:
Nivel

Formato

De manera global, afecta a todos

Defaults opcion1, opcion2 ...

Por usuario

Defaults:usuario opcion1, opcion2 ...

Por usuario privilegiado

Defaults>usuario opcion1, opcion2 ...

Por equipo (host)

Defaults@equipo opcion1, opcion2 ...

La lista de opciones es extensa, pueden consultarse en las pginas del manual (man sudoers).
Los defaults los divide el manual en cuatro tipos: flags o booleanos, enteros, cadenas y listas. Veamos
algunos ejemplos de uso para cada uno de ellos:

flags o booleanos
Generalmente se usan de manera global, simplemente se indica la opcin y esta se activa, para
desactivarla se le antepone el smbolo '!' a la opcin. Es necesario consultar el manual para saber el

Sudo

Administracin Linux

valor por defecto 'on' u 'off'.

Defaults mail_always
Establece a 'on' la opcin 'mail_always', que enviar un correo avisando cada vez que un usuario
utiliza sudo, esta opcin requiere que 'mailto_user' este establecida.

Defaults log_year
Anota el ao en el fichero log o bitcora de sudo.

Defaults !authenticate, log_host


Desactiva el default 'authenticate', que por defecto esta activado 'on' (todos los usuarios que usen
sudo deben identificarse con su contrasea), obviamente esto es un ejemplo y sera una psima idea
usarlo realmente, ya que ningn usuario necesitara autenticarse, pues estamos usando Defaults de
manera global.
La segunda opcin 'log_host', que por defecto est en desactivada, la activamos y bitacoriza el nombre
del host cuando se usa un archivo como bitcora de sudo.

Defaults:ana !authenticate
Aqu se aprecia algo ms lgico, usamos opciones por usuario en vez de global, indicando que el
usuario 'ana' no requerir autnticarse. Pero todos los dems s.

Defaults insults
Cuando no escribimos bien la contrasea que requiere sudo, nos trata de intimidar.

Enteros
Manejan valores de nmeros enteros en sus opciones, deben usarse como opcin = valor.

Defaults:fernanda, regina passwd_tries = 1, passwd_timeout = 1


Se establecen opciones para los usuarios 'fernanda' y 'regina', slo tendrn una oportunidad para
escribir la contrasea correcta 'passwd_tries' (el valor por defecto es de 3) y estarn exentas de volver
a escribirla durante 1 minuto, el valor por defecto de 'passwd_timeout' e 5.

Sudo

Administracin Linux

Defaults loglinelen=0
Para que no limite el tamao de la lnea en el fichero log.
La mayora de las opciones numricas, al establecerlas con un valor igual a cero quedan sin lmite.

Defaults@webserver umask = 011


Se establecen opciones slo para los usuarios que se conectan al servidor 'webserver' y el valor
'umask' indica que si mediante la ejecucin del comando que se invoque por sudo es necesario crear
archivos o directorios, a estos se les aplicar la mscara de permisos indicada en el valor de la opcin.

Cadenas
Son valores de opciones que indican mensajes, rutas de archivos, etc. Si hubiera espacios en el valor
es necesario encerrar el valor entre comillas dobles (" ").

Defaults badpass_message = "Intenta de nuevo: "


Para todos los usuarios, cuando se equivoquen al escribir la contrasea, saldr este nuevo mensaje.
En este caso la opcin por defecto es "Sorry: try again".

Defaults logfile="/var/log/sudo.log"
Define el fichero donde se almacena el histrico de usos del comando sudo.

Listas
Permite establecer/eliminar variables de entorno propias de sudo. Para entender como se aplican es
ms fcil si primero ejecutas como 'root' el comando sudo -V, y al final del listado encontrars en
maysculas las posibles variables de entorno que se pueden establecer o quitar y que vienen del shell.
Solo existen tres Defaults de listas:

env_check

Las variables de entorno a eliminar del entorno del usuario si el valor de la


variable contiene los caracteres % o / .

env_delete

Las variables de entorno a eliminar del entorno del usuario.

env_keep

Variables de entorno a mantener cuando al opcin env_check est en vigor.

Las listas pueden ser remplazadas con '=', aadirle variables con '+=', eliminarle variables con '-=' o
deshabilitarlas con '!'. Con un par de ejemplos quedar ms claro.

Sudo

Administracin Linux

10

Defaults env_delete -= HOSTNAME


Quita la variable de entorno 'HOSTNAME' de la lista, pero preserva todas las dems de la lista.

Defaults env_reset
Defaults env_check += DISPLAY
La primera opcin 'env_reset' reinicializa las variables de entorno que sudo utilizar o tendr
disponibles, y solo quedan disponibles LOGNAME, SHELL, USER y USERNAME.
La siguiente lnea indica que agregue (+=) a lo anterior, tambin la variable de entorno DISPLAY a su
valor establecido antes del reset.

19. Definir las Defaults, para crear el fichero log de sudo, de forma que
tambin registre el ao y el host.

Reglas de acceso
El archivo /etc/sudoers no tendra ninguna razn de ser si no se crean reglas de acceso. De hecho
podramos solamente centrarnos en crear reglas de acceso, sin opciones ni alias.
Las reglas de acceso definen qu usuarios ejecutan qu comandos bajo qu usuario y en qu equipos.
Sintaxis bsica:

usuario host = comando1, comando2, ... comandoN


usuario

Puede ser un usuario, un alias de usuario o un grupo (anteponindole un %).

host

Puede ser ALL cualquier equipo, un solo equipo, un alias de equipo, una direccin IP o
una direccin de red/mscara.

comandox

Es cualquier alias de comando o uno o ms comandos, indicado con su ruta completa.


Si se termina en '/', como en /etc/http/, indica todos los comandos dentro de ese
directorio.

daniela ALL = /sbin/iptables


Usuario 'daniela', en cualquier host o equipo, puede utilizar iptables.

ADMIN ALL = ALL


Los usuarios definidos en el alias 'ADMIN', desde cualquier host, pueden ejecutar cualquier comando.

Sudo

Administracin Linux

11

%gerentes dbserver = (director) /usr/facturacion, (root) sudoedit /var/log/*

Los usuarios que pertenezcan al grupo del sistema llamado 'gerentes', pueden en el equipo llamado
'dbserver', ejecutar como si fueran el usuario 'director', la aplicacin llamada 'facturacion'.
Adems como usuarios 'root', pueden acceder al contendido de los archivos del directorio /var/log.

El ejemplo anterior introduce algo nuevo, en la lista de comandos es posible indicar bajo que usuario
se debe ejecutar el permiso. Por defecto es el usuario 'root', pero no siempre tiene por que ser as.
Adems la lista 'hereda' la primera definicin de usuario que se indica entre parntesis ( ), por eso si
se tiene ms de uno hay que cambiar de usuario en el comando conveniente, el ejemplo anterior
tambin sera vlido de la siguiente forma:
%gerentes dbserver = sudoedit /var/log/*, (director) /usr/facturacion

No es necesario indicar (root), ya que es el usuario bajo el cual se ejecutan los comandos por defecto.
Tambin es vlido usar (ALL) para indicar bajo cualquier usuario.

Con lo que el formato completo de las reglas de acceso quedara:


usuario host = (comoQuien) tag: comando1, (comoQuien) tag: comando2,

El ejemplo siguiente da permisos absolutos.

sergio ALL = (ALL) ALL


Se da permiso al usuario 'sergio', en cualquier host, para ejecutar cualquier comando, de cualquier
usuario, por supuesto incluyendo los de root.

SUPERVISORES PRODUCCION = OPERACION


Una regla formada slo por alias. Los ususarios contenidos en el alias 'SUPERVISORES', tendrn
permiso en los equipos definidos en el alias de host 'PRODUCCION', para ejecutar los comandos
incluidos en el alias de comandos 'OPERACION'.
En este ltimo ejemplo se aprecia lo til que pueden ser los alias, ya que una vez definida la regla,
solo debemos agregar o eliminar elementos de las listas de alias definidos previamente. Si se agrega
un equipo ms a la red, se aade al alias 'PRODUCCION', un usuario renuncia a la empresa, alteramos
el alias 'SUPERVISORES' eliminndolo de la lista, etc.

checo ALL = /usr/bin/passwd *, !/usr/bin/passwd root


Este ejemplo muestra la potencia y flexibilidad de las reglas de acceso. El usuario 'checo', desde
cualquier equipo, tiene permiso de cambiar la contrasea de cualquier usuario (usando el comando
'passwd'), excepto '!' la contrasea del usuario 'root'.

Sudo

Administracin Linux

12

Lo anterior se logra mediante el uso de argumentos en los comandos. En el primer ejemplo


'/usr/bin/passwd *' el asterisco es un un metacarcter o comodn (wildcard), que indica cualquier
argumento, es decir, cualquier usuario. En el segundo caso '!/usr/bin/passwd root', Indica un
argumento especfico 'root', y la '!' como ya se sabe expresa negacin, negando entonces el permiso a
cambiar la contrasea de root.

Cuando se indica el comando sin argumentos: /sbin/iptables, sudo lo interpreta como 'puede usar
iptables con cualquiera de sus argumentos'.

mariajose ALL = "/sbin/lsmod"


Al estar entre comillas dobles un comando, entonces sudo interpreta que 'puede hacer uso del
comando lsmod pero sin argumentos'. En este caso el usuario 'mariajose' podr ver la lista de mdulos
del kernel, pero slo eso.

20. Los usuarios del alias COMERCIAL, podrn ejecutar el programa


/usr/bin/comercial, propiedad de root y del grupo root, y con los
permisos: rwxr-x---.
21. Igualmente los usuarios del alias ALMACEN, podrn ejecutar su programa
/usr/bin/almacen, que tiene las mismas caractersticas que el anterior.
22. El usuario director desea disponer de los derechos para ejecutar los
comandos contenidos en el alias ALTASEDIT.
23. A los usuarios del alias JEFES, darle los permisos para ejecutar los
comandos de los alias DIRECTORIOS y ALTAS.
24. Dar
permiso
a
los
EMPLEADOS
para
ejecutar
los
programas
/home/director/bin/entrada y /home/director/bin/sadida, ambos propiedad
del usuario director.
a. Si no existe, creamos el usuario director (contrasea director).
b. El director crear su carpeta bin y en ella los dos programas con el
cdigo siguente:
En el programa de entrada (consultar man date):
echo `date +%Y%t%m%t%d%t%H%t%M%t%S%t``logname` >> /home/director/bin/entradas.log

En el programa de salida:
echo `date +%Y%t%m%t%d%t%H%t%M%t%S%t``logname` >> /home/director/bin/salidas.log

c. Le damos permiso de ejecucin slo al propietario.


d. Para comprobar su funcionamiento, los puede ejecutar el usuario
director.
e. Los ficheros de datos (entradas.log y salidas.log) slo los puede
editar el director.
f. Probar a ejecutarlos desde algn empleado. Ver que se aade la
informacin en los ficheros log.
g. Colocar estos programas en los ficheros de inicio y cierre de sesin
(.profile y bash_logout).
h. Hacer que no se requiera autenticacin para ejecutarlos (apartado
siguiente).

Sudo

Administracin Linux

13

Tags (etiquetas de comandos)


Cuando se definen reglas, la lista de comandos pueden tener cero (como en los ejemplos anteriores) o
ms tags. Existen 6 de estas etiquetas o tags.

NOPASSWD Y PASSWD
Por defecto sudo requiere que cualquier usuario se autentifique con su contrasea. Aprendimos en la
seccin de 'Opciones' o 'Defaults' que es posible indicar que un usuario o alias de usuario no requiera
de autentificacin. Pero el control granular propio de sudo, permite ir an ms lejos al indicar a nivel
de comandos, cules requieren contrasea para su uso y cules no.
lux webserver = NOPASSWD: /bin/kill, /usr/bin/lprm, vi /etc/httpd/conf/*

El usuario 'lux' en el equipo 'webserver' no requerir contrasea para los comandos listados. El tag se
hereda, para los siguientes comandos, mientras no se indique el tag contrario.
Suponiendo que para el ltimo '/etc/httpd/conf/', que permite modificar cualquier archivo contenido en
el directorio, si deseamos que use contrasea, lo escribiremos como sigue:
lux webserver = NOPASSWD: /bin/kill, /usr/bin/lprm, PASSWD: vi /etc/httpd/conf/*

Aunque ya que solicitar contrasea es el default preestablecido, lo anterior tambin funcionar de la


siguiente forma:
lux webserver = vi /etc/httpd/conf/*, NOPASSWD: /bin/kill, /usr/bin/lprm

NOEXEC Y EXEC
Este es un tag muy importante a considerar cuando se otorgan permisos sobre programas que
permiten escapes a shell (shell escape), como en el editor 'vi' que mediante el uso de '!' es posible
ejecutar un comando en el shell sin salir de 'vi'. Con el tag NOEXEC se logra que esto no suceda. Al
igual que los tags anteriores, el tag se hereda y se deshabilita con su tag contrario.

valeria ALL = NOEXEC: /usr/bin/vi

SETENV Y NOSETENV
Una de las mltiples opciones que pueden establecerse en la seccin 'Defaults' u 'opciones', es la
opcin booleana o de flag 'setenv', que por defecto y para todos los usuarios esta establecida en 'off'.
Esta opcin si se activa por usuario (Defaults:sergio setenv) permitir al usuario indicado cambiar el
entorno de variables del usuario del cual tiene permisos para ejecutar comandos, y como
generalmente este es 'root', resulta bastante peligroso.

Sudo

Administracin Linux

14

A nivel de lista de comandos, es posible especificar el tag 'SETENV' a un solo comando o a una
pequea lista de estos y solo cuando se ejecuten estos se podrn alterar las variables de entorno. Es
decir, en vez de establecerlo por usuario, sera ms conveniente establecerlo por comando.

ADMIN ALL = SETENV: /bin/date, NOSETENV ALL


A los usuarios definidos en el alias de usuario 'ADMIN', en cualquier host, pueden alterar las variables
de entorno cuando ejecuten el comando 'date' (que puede ser til por ejemplo para cambiar variables
del tipo LOCALE), cualquier otro comando, no tendr esta opcin, al habilitar el tag contrario
'NOSETENV'. Ya que este es el default, tambin sera vlido de la siguiente manera y haran lo mismo:

ADMIN ALL = ALL, SETENV: /bin/date

25. Hacer que el usuario creado en la instalacin, no


autenticarse al usar sudo, a los dems del grupo admin s.

Sudo

Administracin Linux

tenga

15

que

ARCHIVO /ETC/SUDOERS DE EJEMPLO

Veamos un pequeo ejemplo de un archivo /etc/sudoers:


# *********************************
# sergio.gonzalez.duran@gmail.com *
# *********************************
# *********************************
# DEFINICION DE ALIAS
*
# *********************************
# administradores con todos los privilegios
User_Alias ADMINS = sergio, ana
# administradores de red - network operators
User_Alias NETOPS = marcela, andrea
# webmasters
User_Alias WEBMAS = cristina, juan
# supervisores de produccin (todos los del grupo de sistema supervisores)
User_Alias SUPPRO = samuel, %supervisores
# usuarios que pueden conectarse desde Internet
User_Alias INETUS = NETOPS, ADMINS, samuel
# servidores web
Host_Alias WEBSERVERS = 10.0.1.100, 10.0.1.101
# servidores de aplicaciones
Host_Alias APLICACIONES = WEBSERVERS, 10.0.1.102, 10.0.1.103, mailserver
# comandos de red permitidos
Cmnd_Alias REDCMDS = /sbin/ifconfig, /sbin/iptables
# comandos de apache
Cmnd_Alias APACHECMDS = /usr/sbin/apachectl, /sbin/service httpd *
# *********************************
# DEFINCION DE OPCIONES
*
# *********************************
# Los administradores, requieren autentificarse con la contrasea de 'root'
Defaults:ADMINS rootpw
# Para todos los usuarios, tienen hasta 4 intentos para ingresar su contrasea
# y 3 minuto para que esta expire
Defaults passwd_tries = 4, passwd_timeout = 3
# Los usuarios que se conectan desde Internet, solo tienen una oportunidad
# y cero timeout lo que implica que cada comando que usen a travs de sudo
# requerir siempre de autentificacin.
Defaults:INETUS passwd_tries = 1, passwd_timeout = 0
# Mscara de directorios y archivos por default,
# para los que ejecuten sudo en los servidores web
Defaults@WEBSERVERS umask = 022
# *********************************
# DEFINCION DE REGLAS
*
# *********************************
# administradores todo se les permite en cualquier equipo
# (cuidado con esto en la vida real!!!!!
ADMINS ALL = (ALL) ALL

Sudo

Administracin Linux

16

# administradores de red, en todos los equipos, los comandos de red


NETOPS ALL = REDCMDS
# webmasters, en los servidores web con los comandos indicados en apachecmds
# y adems sin necesidad de contrasea acceder a las btacoras de apache
# y reiniciar los servidores.
WEBMAS WEBSERVERS = APACHECMDS, NOPASSWD: vi /var/log/apache/, /sbin/reboot
# supervisores, pueden ejecutar los comandos indicados
# en los equipos indicados en el alias aplicaciones
# y adems son ejecutados bajo el usuario apps.
SUPPRO APLICACIONES = NOEXEC: (apps) /usr/local/facturacion.exe, /usr/local/nomina.exe
# No definidos por alias previos, sino directamente
# regina es de recursos humanos y puede cambiar contraseas de cualquier usuario
# menos de root
regina ALL = /usr/bin/passwd *, !/usr/bin/passwd root
# david, puede apagar los equipos de aplicaciones
david APLICACIONES = /sbin/shutdown, /sbin/halt
# El equipo firewall de la red puede ser reiniciado (no apagado) por fernanda
# que es asistente de redes
fernanda firewall = /sbin/shutdown -r now

Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx
y segn los trminos de la G&U Free Documentation License, Versin 1.2 o cualquiera posterior publicada por la Free Software
Foundation.
autor: sergio.gonzalez.duran@gmail.com
Adaptacin: Luis Quesada

Sudo

Administracin Linux

17

Administracin del sistema de ficheros


Introduccin
Un sistema de ficheros (filesystem) son los mtodos y las estructuras de datos que emplea el
sistema operativo (en nuestro caso, Linux) para organizar los ficheros en disco.
Organizan la informacin guardada en unidades de almacenamiento (ficheros), esta informacin
luego ser representada ya sea textual o grficamente utilizando un gestor de archivos.
Los sistemas de ficheros proveen mtodos para crear, mover, renombrar, enlazar y eliminar tanto
ficheros como directorios, adems de facilitar mecanismos de acceso y proteccin de los datos.
Linux soporta varios tipos de sistemas de ficheros. Entre los ms importantes podemos destacar los
siguientes:
o

MINIX: El ms antiguo, presume de ser el ms seguro, pero es bastante limitado en las


caractersticas que proporciona. Un sistema de ficheros de este tipo solo puede tener 64 MB.

EXT2: Es el sistema de ficheros nativo de Linux. Est diseado para ser compatible con
versiones anteriores.

EXT3: Es una modificacin del ext2, para aadirle funcionalidades de jourmaling.

EXT4: Mejora ext3, permitiendo sistemas de ficheros de gran tamao, es capaz de trabajar
con volmenes de hasta 1 exabyte y ficheros de tamao de hasta 16 TB.

VFAT: Este tipo permite utilizar sistemas de ficheros de Windows (FAT, FAT32), y
actualmente est soportado el sistema de ficheros de Windows NT, pero slo fiable en modo
lectura.

Iso9660: Es el sistema de ficheros estndar para CD-ROM.

NFS: Sistema de ficheros en red, que permite compartir sistemas de ficheros entre
diferentes mquinas conectadas en red y tratarlos de forma local.

HPFS: Es el de sistema de ficheros de OS/2.

SYSV: Es el sistema de ficheros de SystemV/386, Coherent y Xenix.

Existe tambin un sistema de ficheros especial denominado proc, y que es accesible a travs del
directorio /proc, el cual no es realmente un sistema de ficheros. El sistema de ficheros /proc permite
acceder fcilmente a ciertas estructuras de datos del kernel, como es la lista de procesos.
Convierte estas estructuras de datos en algo parecido a un sistema de ficheros y por tanto da la
posibilidad de manipularlas con las herramientas habituales de manipulacin de ficheros. Hay que
tener en cuenta que aunque se le denomine sistema de ficheros, ninguna parte del sistema de
ficheros /proc toca el disco. Existe nicamente en la imaginacin del kernel.

Administracin del S.F.

Linux

Si aadimos un nuevo disco al sistema ya instalado, deberemos crear las particiones y los sistemas
de ficheros, esta operacin implica los siguientes pasos:
1. Creacin de particiones (comando fdisk)
2. Creacin de los sistemas de ficheros (comando mkfs)
3. Montado de los sistemas de ficheros (comando mount)

Creacin de particiones 
El comando, en modo texto, para crear particiones es fdisk. Formato:

fdisk [opciones] dispositivo


dispositivo

Es el nombre del fichero de dispositivo correspondiente (/dev/hdx en IDE, /dev/sdx

para SCSI o SATA)


Debemos tener permiso de administrador para usarlo.
Opciones:
-l

Muestra la tabla de particiones del dispositivo

fdisk se usa mediante un men:

# fdisk /dev/sda
Orden (m para obtener ayuda): m
Orden Accin
a
Conmuta el indicador de iniciable (particin activa)
b
Modifica la etiqueta de disco bsd
c
Conmuta el indicador de compatibilidad con DOS
d
Suprime una particin
l
Lista los tipos de particiones conocidos
m
Imprime este men
n
Aade una nueva particin
o
Crea una nueva tabla de particiones DOS vaca
p
Imprime la tabla de particiones
q
Sale sin guardar los cambios
s
Crea una nueva etiqueta de disco Sun
t
Cambia el identificador de sistema de una particin (tipo de particin)
u
Cambia las unidades de visualizacin/entrada
v
Verifica la tabla de particiones
w
Escribe la tabla en el disco y sale
x
Funciones adicionales (slo para usuarios avanzados)

Existen otras herramientas para modificar las particiones:

cfdisk

Interfaz para el fdisk (tambin escribe la tabla de particiones)

parted

Programa de GNU que permite crear, destruir, cambiar el tamao, chequear


y copiar particiones.

gparted

Administracin del S.F.

Clnico del Partition Magic para Linux (basado en libparted)

Linux

Partition Magic Programa comercial de la compaa Symantec que puede manejar diversos
filesystems.

1.
2.
3.
4.

Visualizar con la opcin -l las particiones existentes.


Verificar la tabla de particiones.
Calcular el tamao en GB de una particin (confirmarlo con gparted).
Borrar todas las posibles particiones de un pen (lo ms normal es que
exista una).
5. Crear dos particiones primarias y una lgica en el pen, de diferentes
tamaos, que alguna de ellas sea FAT32.
6. En el disco del equipo, comprobar que queda espacio sin asignar en la
particin extendida.

7. Crear una segunda particin lgica en el disco del sistema

.

Creacin de un Sistema de Ficheros.


Los sistemas de ficheros se crean con el comando mkfs (Make Filesystem). mkfs nos permite
construir un sistema de ficheros sobre un dispositivo, normalmente una particin de un disco.
En Linux, existe un programa separado por cada tipo de sistema de ficheros. mkfs es solamente un
'front-end', que ejecuta el programa apropiado dependiendo del tipo de sistema de ficheros
deseado. El tipo de sistema de ficheros se define con la opcin -t de mkfs.

La sintaxis de este comando es:

mkfs [-t tipo] dispositivo


Donde:

tipo

Es el argumento mediante el que se indica la clase de sistema de ficheros a crear. Si


se omite este argumento, mkfs lo deducir buscando en /etc/fstab. Y si no hay
entrada en fstab tomar por defecto ext3.

Dispositivo

Puede ser el nombre del dispositivo sobre la cual queremos crear el sistema de
ficheros (como por ejemplo /dev/hda1 o /dev/sdb2) o el punto de montaje (como /,
/usr o /home). En el caso de indicar el punto de montaje, la orden mkfs intentar
encontrar el dispositivo en el que crear el sistema de ficheros, en la entrada del fichero
/etc/fstab, donde encuentre el punto de montaje.

Ejemplos:

mkfs -t ext3 /dev/sda1


mkfs /dev/fd0
mkfs /media/floppy

# Primera unidad de disquete.

8. Utilizando diferentes particiones del pen, crea un sistema de ficheros


ext3 y otro vfat.
9. En la nueva lgica del HD crea un sistema de ficheros ext4.

Administracin del S.F.

Linux

Montaje,
Montaje, desmontaje y el fichero /etc/fstab.
Para poder usar un sistema de ficheros tiene que estar montado. El concepto de montaje tiene que
ver con que en Unix/Linux todos los elementos son ficheros. Para ello, cada nuevo sistema de
ficheros se enlaza mediante la operacin de montaje con otra estructura de directorios de la que
cuelga.
El sistema de ficheros inicial se denomina el sistema de ficheros raz y posee el smbolo /. Este
sistema de ficheros se monta al arrancar el equipo y ocupa el lugar ms alto.
Por ejemplo, supongamos que en tres particiones de nuestro disco (o discos diferentes) hemos
creado tres sistemas de ficheros. Cada uno de ellos visto de forma independiente posee una raz.
Supongamos que son /dev/sda1, /dev/sda2 y /dev/sda3.
Cuando montamos un sistema de ficheros, indicamos un directorio del sistema de ficheros padre,
del cual va a colgar la estructura de directorios del sistema de ficheros hijo. Mediante las rdenes
de montaje siguientes:

# mount /dev/sda2 /home


# mount /dev/sda3 /usr
Hemos montado el sistema de ficheros que hay en /dev/sda2 bajo el directorio /home del sistema
de ficheros raz. Y el sistema de ficheros de /dev/sda3 bajo el directorio /usr.
Cuando se inicia linux se realiza un montaje automtico, mediante la orden mount a que monta
todos los sistemas de ficheros que as se indique dentro de /etc/fstab. Esta orden se encuentra
dentro de los directorios de inicializacin /etc/rc.d/.
De igual forma, al apagar el sistema con la orden shutdown, se ejecuta la orden umount a, que
desmonta todos los sistemas de ficheros montados al iniciar.

El fichero /etc/fstab
El fichero /etc/fstab contiene informacin descriptiva sobre los distintos sistemas de ficheros del
sistema. Este fichero es de slo lectura y debe ser mantenido por el administrador del sistema.
Cada sistema de ficheros se describe en una lnea de este fichero, y los campos de cada lnea estn
separados por tabuladores o espacios. El orden de los registros es importante ya que fsck, mount y
umount actan secuencialmente sobre este fichero.

/etc/fstab y UUID
Normalmente se especifica en el archivo fstab nombres de los dispositivos, como /dev/sdb1, tal
como en el siguiente ejemplo:

/dev/sdb1

Administracin del S.F.

/media/storage

ntfs

Linux

defaults

Si queramos que un dispositivo se monte en una ubicacin concreta siempre, tenemos el problema
que el nombre del dispositivo /dev/sdb1, del ejemplo anterior, podra cambiar por ejemplo si se
tratara de un dispositivo USB, o de si las Pleyades estn alineadas o si es Luna llena.
En este caso podemos utilizar el UUID (Universally Unique Identifier), el cual identifica a cada
sistema de ficheros y hace que el nombre del dispositivo sea irrelevante al momento de montarse.
Un par de formas de obtener el UUID:

# ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx

1
1
1
1
1
1

root
root
root
root
root
root

root
root
root
root
root
root

10
10
10
10
10
10

May
May
May
May
May
May

5
5
5
5
5
5

02:38
02:38
02:38
02:38
02:38
02:38

07D4-0918 -> ../../sda1


1501c1df-798c-4359-a100-37c97f426269 -> ../../sdb2
1cd538b0-c4da-4280-a485-c0324066832f -> ../../sda5
25b9f76e-0d99-4c6d-b441-4a4a879ff049 -> ../../sda3
9E88682C886804DD -> ../../sdb1
D8701AD2701AB6EA -> ../../sda2

# blkid
/dev/sda1:
/dev/sda2:
/dev/sda3:
/dev/sda5:
/dev/sdb1:
/dev/sdb2:

SEC_TYPE="msdos" LABEL="DellUtility" UUID="07D4-0918" TYPE="vfat"


UUID="D8701AD2701AB6EA" LABEL="winxp" TYPE="ntfs"
UUID="25b9f76e-0d99-4c6d-b441-4a4a879ff049" TYPE="ext3"
UUID="1cd538b0-c4da-4280-a485-c0324066832f" TYPE="swap"
UUID="9E88682C886804DD" LABEL="storage" TYPE="ntfs"
UUID="1501c1df-798c-4359-a100-37c97f426269" TYPE="ext3

Procedemos a modificar nuestro fstab:

UUID=9E88682C886804DD

/media/storage

ntfs

defaults

0 1

Datos que van en una lnea de /etc/fstab:


o

device

Es la ruta hacia la particin a montar (/dev/sda2) o el UUID que la representa


(UUID=01234567-89ab-cdef-0123-4567890abcde).

directorio Es el segundo campo y especifica el punto de montaje para el sistema de


ficheros. Para particiones de swap este campo debera estar a "none". El
directorio destino de montaje tiene que existir en nuestro sistema antes de
montar el sistema de ficheros.

tipo

Es el tercer campo y especifica el tipo de sistema de ficheros.

opciones

Es el cuarto campo e incluye las opciones de montaje asociadas al sistema de


ficheros.
Las opciones van separadas por comas. Algunas de las opciones posibles son:

auto

La particin se monta al arrancar.

noauto

No se monta la particin en el arranque.

user

Se permite a los usarios montar la particin.

nouser

Slo el root puede montar esta particin.

ro

Read-Only, particin de slo lectura, no se puede escribir.

Administracin del S.F.

Linux

rw

Read-Write, monta la particin para que sea posible leer y escribir en ella.

sw

Cuando una particin acta de intercambio (Swap).

exec

Se pueden ejecutar los programas de esa particin.

noexec

Impide la ejecucin de cualquier archivo contenido en ese sistema de


ficheros.

async

El sistema sigue trabajando tras una peticin de escritura del dispositivo,


aunque todava no haya recibido la confirmacin.

defaults Equivale a: rw, exec, auto, nouser, async.

frecuencia Con l determinamos la frecuencia con que deben de hacerse copias de


seguridad del sistema por el comando dump. Si este campo no est presente
se devuelve a dump el valor cero, lo que indica que el sistema de ficheros no
necesita ser salvado (no suele usarse).

secuencia Es el sexto campo (fsckorder) y es usado por fsck para determinar el orden en
que se realizan los chequeos de los sistemas de ficheros en tiempo de
arranque. El sistema de ficheros raz debera ser especificado con un 1, y los
dems sistemas de ficheros deberan tener 2. Los sistemas de ficheros en un
mismo disco deberan chequearse secuencialmente, pero los sistemas de
ficheros en diferentes discos deberan de chequearse al mismo tiempo, para
utilizar el paralelismo disponible en el hardware. Si el sexto campo no est
presente o es cero, fsck asume que el sistema de ficheros no necesita ser
chequeado.

Ejemplo de fichero /etc/fstab:

<device>
/dev/hdc1
/dev/hdc6
/dev/fd0
/dev/cdrom
/dev/hda1
none

<directorio>
/
swap
/mnt/floppy
/mnt/cdrom
/mnt/windows
/proc

<Tipo>
ext2
swap
ext2
iso9660
vfat
proc

<Opciones>
defaults
sw
noauto,user
noauto,ro,user
noauto
defaults

<dump>
1
0
0
0

<fsckorder>
1
0
0
0

El sistema de ficheros proc se usa para almacenar informacin sobre los procesos del sistema,
memoria disponible y otros datos de la misma ndole. No est relacionado con ninguna particin o
disco, sino que permanece en memoria.

10. Aadir la particin lgica del HD que hemos creado al fichero fstab, de
forma que se monte y desmonte automticamente, para lectura y escritura,
y que los usuarios puedan ejecutar los comandos que contenga.

Administracin del S.F.

Linux

El comando mount
El comando mount nos permite montar los sistemas de ficheros y anclarlos a puntos de montaje
(directorios). A partir de este momento podremos acceder a ellos. La sintaxis ms usual es:

mount [-r][-t tipo] [dispositivo] dir


Si montamos una unidad que est incluida en el fichero /etc/fstab y se omiten los argumentos [-t
tipo] y [dispositivo], la informacin necesaria la obtiene el comando mount del fichero /etc/fstab.
-r

Monta el dispositivo de slo lectura.

-t tipo

Tipo de sistema de ficheros que se va a montar

dispositivo

Fichero dispositivo que contiene el sistema de ficheros.

directorio

Directorio sobre el que se monta el sistema de ficheros.

Por ejemplo, con el /etc/fstab anterior, para montar la unidad de CD escribiramos:

mount /mnt/cdrom
Sin embargo, si lo que queremos es montar un disquete formateado bajo Windows tendremos que
escribir:

mount -t vfat /dev/fd0 /mnt/floppy


Si ese mismo disco es del tipo ext2, tan slo tendremos que usar:

mount /mnt/floppy
El sistema mantiene una lista de los sistemas de ficheros montados actualmente, en el fichero
/etc/mtab. Si se utiliza el comando mount sin argumentos:

mount
Nos muestra la lista de sistemas de ficheros montados.

11.
12.
13.
14.

Ver los sistemas de ficheros montados.


Montar el sistema de ficheros (ext3) creado en el pen.
Comprobar que se ha montado.
Crear en l directorios y ficheros.

El comando umount
La sintaxis ms usual es:

umount [opciones] dir


El comando umount elimina el anclaje entre el dispositivo especial y el punto de montaje.
Para desmontar la unidad de CD:

umount /mnt/cdrom
Si tenemos una unidad de CD montada no podremos extraer el CD hasta que no lo desmontemos. Si
estamos trabajando con una unidad de disquete o pen es fundamental desmontarla antes de extraer
el disco

Administracin del S.F.

Linux

Algunas opciones son:


-a

Desmonta todos los sistemas de ficheros contenidos en /etc/mtab, con montaje


automtico.

-t

Desmonta slo los sistemas de ficheros de un tipo en concreto (o varios, separando


los argumentos por comas).

Para desmontar un sistema de ficheros debemos de estar situados fuera de l, y ningn proceso del
sistema debe estar utilizando el sistema de ficheros que deseemos desmontar, en caso contrario nos
dira que est ocupado.
La solucin ser matar al proceso o procesos que estn utilizando el sistema de ficheros que
deseamos desmontar o esperar a que acaben por las buenas.
Para saber qu procesos estn utilizando un sistema de ficheros podemos utilizar la orden fuser. Por
ejemplo, si en /mnt/win tenemos montada nuestra particin con el sistema de ficheros vfat y no nos
deja desmontarla, podemos ver de qu procesos se trata con:

/sbin/fuser -a /mnt/win
15. Intentar desmontar el SF del pen, mientras se est editando uno de sus
ficheros.
16. Hacer lo necesario para desmontarlo.
17. Tratar de acceder a l una vez desmontado.
18. Ver los sistemas de ficheros montados.

chroot
chroot cambia el directorio raz al que le indiquemos. Este directorio ser usado como raz para
todas las trayectorias que comiencen por /.
Solamente el superusuario puede cambiar el directorio raz.
Este comando no cambia de directorio activo, por lo que el directorio . puede estar fuera del rbol
enraizado en /.
Este comando es til cuando queremos trabajar (administrar) un linux instalado en un SF distinto al
de arranque.
Previamente a la utilizacin de este comando debemos montar el SF donde se encuentre el SO.
Sintaxis:

chroot directorio [comando [argumentos]]

Cuando se indica el comando, lo ejecuta, sobre el SO linux cuya raiz est en el directorio indicado.
Si omitimos el comando entramos en un nuevo shell, que actuar sobre el SO montado en el

Administracin del S.F.

Linux

dirctorio.

19.
20.
21.
22.

Iniciar desde un pen o CD live y montar el SF linux del equipo.


Cambiar la raiz del sistema a la del equipo.
Hacer algn cambio (crear algn fichero o modificarlo), salir con ^d.
Desmontar y arrancar linux desde el disco duro, comprobar si se han hecho
los cambios.

Situaciones:
Contrasea de root o usuario administrador olvidada.
Quin no ha olvidado la contrasea del super usuario? Quin no ha tenido que acceder al

ordenador de un compaero que se fue de la empresa sin dejar las claves y usuarios que utilizaba
en su equipo?
Pasos a seguir:
a.

Arrancar el equipo con un livecd o pen.

b.

Montar la particin en la que est instalado Linux en el equipo (comando mount y fdisk para
tratar de localizar la particin que contiene el sistema operativo)

c.

Establecer el sistema del equipo como raiz:

chroot /mnt/disco_linux
Suponiendo que /mnt/disco_linux es el directorio utilizado en el paso 'b' para montar la
particin que contiene Linux.
d.

Ejecutar passwd para cambiar la clave del administrador.

e.

Ya slo queda salir y cerrar el equipo:

exit
umount /mnt/disco_linux

# salir de chroot.
# Desmontar la particin.

Retirar el pen o CD-live.

reboot

# Reiniciar el equipo.

Ya se puede acceder como administrador usando la nueva contrasea.

Instalar programas en los equipos de la Escuela TIC 2.0


Una solucin poco intrusiva es crear un nuevo usuario y aadirlo a sudoers
Pasos a seguir:
 Procedemos de forma similar al caso anterior hasta el paso 'c'.
 Creacin de un usuario 'clon' al que trae por defecto, pero con permisos administrativos:
a.

Tomamos nota de los grupos a los que pertenece 'usuario', para averiguarlos:

Administracin del S.F.

Linux

group usuario
b.

Creamos el usuario 'clon':


useradd -d /home/clon -m -G grupos -k /home/usuario -s /bin/bash clon

c.

Dmosle una clave con:

passwd clon
d.

Slo nos queda aadir al usuario clon a /etc/sudoers ejecutando:

visudo
Aadir la lnea

clon ALL=(ALL) NOPASSWD: ALL


e.

Salir como en el caso anterior.

Y ya podemos acceder al sistema con el nuevo usuario, con la posibilidad de realizar tareas
administrativas (instalar juegos,)

Chequeo y Recuperacin de un Sistema de Ficheros: fsck.


El comando fsck nos permite chequear y, opcionalmente, reparar un sistema de ficheros. fsck repara
inconsistencias en los sistemas de ficheros despus de un apagado incorrecto de la mquina.
El funcionamiento es el siguiente. Cuando un sistema de ficheros se monta, se marca como sucio,
porque el sistema en su trabajo normal, tendr datos mantenidos en memoria en vez de grabarlos
directamente al disco, con el fin de mejorar las prestaciones.
Si el sistema lo apagamos correctamente, una de sus tareas es descargar todo lo que se encuentre
en la memoria y que corresponda a los discos a su lugar correspondiente. Tras hacer esto, se marca
el sistema de ficheros como limpio. Si por cualquier razn se apagase sin que se pueda realizar el
proceso correcto, los discos se quedarn como sucios y debern comprobarse en el siguiente
arranque.
Para chequear un sistema de ficheros ste debe estar desmontado.
Su sintaxis bsica es:

fsck [-t fstype] [-fsopcion] dispositivo


dispositivo es el fichero especial correspondiente a la particin que se va a chequear. Por ejemplo,

/sbin/fsck /dev/hda2

# verifica el volumen /dev/hda2.

Opciones:
-a

Repara los ficheros sin confirmacin por nuestra parte. Los ficheros perdidos que recupere
los podemos encontrar en el subdirectorio /lost+found del dispositivo.

-A

fsck recorre el fichero /etc/fstab y verifica todas las unidadades en funcin del parmetro
fsckorder del fichero /etc/fstab.

Administracin del S.F.

Linux

10

Sistema de cuotas
El almacenamiento en disco se puede restringir mediante la implementacin de cuotas de disco. Las
cuotas se pueden configurar para usuarios individuales o para grupos. Este tipo de flexibilidad hace
posible darle a cada usuario una pequea porcin del disco para que maneje sus archivos
personales (tales como correo o informes), mientras que se le permite tener ms espacio para
manejar los proyectos en los que estn trabajando sus grupos.
Adems, se puede configurar las cuotas no slo para que controlen el nmero de bloques de disco,
sino tambin el nmero de inodos, esto permite controlar el nmero de archivos que pueden ser
creados.
El soporte de cuotas de disco ha sido integrado en el kernel Linux desde la versin 1.3.46.
Se necesita utilizar un kernel posterior para poder beneficiarse de las cuotas. El paquete software
necesario que permite gestionar las cuotas es 'quota'. Adems necesitamos tener esa opcin
compilada en el kernel respondiendo afirmativamente a la opcin Quota support. Con esto
conseguiremos limitar el espacio de disco consumido por usuario o por un grupo de usuarios.

Activacin
Activacin de las cuotas
Existen dos tipos de cuotas: las cuotas asociadas a los usuarios y las cuotas asociadas a los grupos
de usuarios. Las primeras definen el nmero mximo de archivos y de bloques de disco asociados a
cada usuario, las segundas definen el nmero mximo de archivos asociados a cada grupo de
usuarios. Los dos tipos de cuotas pueden ser activados separadamente.
Para activar las cuotas para los usuarios es necesario indicar la opcin 'usrquota' para los sistemas
de archivos referidos en /etc/fstab. Las cuotas que conciernen a los grupos son reguladas por la
opcin 'grpquota'. Los archivos de definicin de cuotas se llaman respectivamente 'quota.user' y
'quota.group' estos se encuentran situados en la raz de cada sistema de archivos involucrado.
Es posible modificar los nombres de los archivos de gestin de cuotas utilizando la sintxis siguiente:

usrquota=nombredearchivo
grpquota=nombredearchivo
He aqu un ejemplo del archivo /etc/fstab:

/dev/hda2
/dev/hdb2
/dev/sda1

/
/home
/usr

ext3
ext3
ext3

defaults,rw
defaults,rw,usrquota,grpquota
defaults,rw,usrquota

0
0
0

1
1
1

La activacin de las cuotas es lanzada por la orden 'quotaon'. Para activarlas automticamente a la
inicializacin del sistema, se debe agregar al archivo de inicializacin (/etc/rc.d) las lneas:

quotaon -avug
Para crear los archivos de cuotas (aquota.user y aquota.group) en el sistema de archivos, se usa la

Administracin del S.F.

Linux

11

opcin -c del comando quotacheck.

quotacheck -acug /home


Puede ser igualmente necesario verificar la coherencia de la informacin sobre gestin de cuotas
despus de bloqueos repentinos. Para esto se utiliza la orden quotacheck:

quotacheck -avug
Si las utilidades han sido compiladas con-DEXTc2DIRECT, la orden quotacheck debe ejecutarse
relativamente rpido, en caso contrario puede ser muy lento, pues debe explorar todos los
directorios del disco. Es aconsejable de todas maneras ejecutar quotacheck durante la inicializacin
del sistema antes de la activacin de las cuotas con quotaon.

Cuotas de usuario
La orden 'edquota' es utilizada para asignar una cuota a un usuario o a un grupo de usuarios.
Su sintxis es:

edquota -u usuario
edquota -g grupo.
Esta orden lanza un editor de texto que contiene la definicin de cuotas asignadas al usuario o al
grupo y toma en cuenta el nuevo valor cuando el archivo es reescrito.
Para cada usuario o grupo existen dos limitaciones: el nmero de archivos y el nmero de bloques
disco (expresados en bloques de 1024 octetos). Para cada uno existen dos lmites:
a.

El lmite "suave": cuando este lmite es alcanzado o superado un mensaje advierte al


usuario cada vez que un nuevo bloque o archivo es escrito.

b.

El lmite "duro": cuando este lmite es alcanzado el usuario no puede escribir nuevos
archivos o nuevos bloques.

El lmite "suave" se transforma en lmite "duro" cuando ha sido alcanzado o superado transcurrido
cierto tiempo (7 das por defecto).
Se puede definir una plantilla de usuario al cual se le asignan las cuotas y utilizarla para adjudicar
cuotas a los dems usuarios del sistema.

edquota -p usuarioplantilla -u usuario


Todo usuario puede obtener el estado de la cuota que le ha sido asignada (limites como el nmero
de archivos y de bloques que le han sido atribuidos) gracias a la orden:

quota
El superusuario puede obtener las mismas informaciones sobre cualquier usuario o grupo con la
misma orden:

quota -u usuario
quota -g grupo
Adems es posible utilizar la orden repquota para obtener una lista de cuotas asociadas a uno o
varios sistemas de archivos.

Administracin del S.F.

Linux

12

Estadsticas
Estadsticas del sistema
Los comandos bsicos para averiguar la ocupacin del disco y la carga del sistema.

du (disk usage)
du [-abs] [trayectoria1 trayectoria2 . . . trayectoriaN]
El comando

du contabilizar el espacio de disco ocupado por un subdirectorio y todos sus

subdirectorios. El uso de este comando sin utilizar parmetros devolver una lista de cuanto disco
consume cada subdirectorio del directorio actual, y al final del informe, cuanto disco

utiliza el

directorio (y todos sus subdirectorios). Si se le pasa uno o ms parmetros, devolver la cantidad de


espacio utilizado por esos ficheros o directorios en lugar de la del directorio actual.
Algunas opciones son:
-a

Mostrar adems del espacio de los directorios, el de los ficheros.

-b

Presentar el total en bytes, en lugar de kilobytes.

-s

Informar slo acerca de los directorios explictos en la linea de comando y no de sus


subdirectorios.

df (disk filling, espacio disponible en el disco)


df
Para cada sistema de ficheros (recuerde que sistemas de ficheros diferentes son o bien unidades
fsicas o particiones diferentes) muestra:
o

El espacio total de disco.

La cantidad utilizada.

La cantidad disponible.

La capacidad total del sistema de ficheros que se utiliza.

Un caso extrao que puede darse, es la posibilidad de tener una capacidad superior al 100%, o que
la cantidad utilizada ms la disponible no sea igual a la total. Esto es debido a que Unix reserva
parte del espacio de cada sistema de ficheros para el directorio raz. De esta forma aunque algn
usuario accidentalmente sature el disco, el sistema todava tendr un poco de espacio para seguir
operativo.

uptime
uptime

Administracin del S.F.

Linux

13

El comando uptime informa sobre el tiempo que el sistema ha estado activo, es decir el tiempo
transcurrido desde que arranc por ltima vez.
Este comando tambin devuelve la hora actual y el promedio de carga que soporta el sistema.
El promedio de carga es el nmero medio de procesos esperando a ser ejecutados en un
determinado periodo de tiempo. uptime muestra el promedio de carga del ltimo minuto y de los
cinco y diez ltimos minutos.
Si el promedio de carga se aproxima a cero indica que el sistema ha estado relativamente
desocupado; por el contrario si el promedio es cercano al uno indica que el sistema ha estado casi
completamente utilizado pero en ningn momento sobrecargado. Los promedios de carga altos son
el resultado de la ejecucin simultnea de varios programas.

Administracin del S.F.

Linux

14

Copias de seguridad
Realizar copias de seguridad es una de las tareas ms importantes del administrador del sistema, este
debe:

Planear e implementar un sistema de copias de seguridad.

Peridicamente, hacer copias de seguridad de todos los ficheros.

Guardar las copias de seguridad en un lugar seguro.

Es casi inevitable que se produzcan prdidas de informacin, debido a, entre otras causas:

Deterioro o borrado accidental por parte de un usuario autorizado.

Ataque intencionado por parte de personas no autorizadas.

Fallo del software o el hardware.

Incendio, robos, y desastres naturales, etc.

Estrategias para las copias de seguridad


Factores a considerar en una estrategia de copias de seguridad:

Qu ficheros se deben copiar y dnde estn esos ficheros?

Conocer qu es lo ms importante del sistema.

Quin har la copia? Administrador o propietario de los ficheros?

Dnde, cundo y bajo qu condiciones se deben hacer? Mejor hacer las copias cuando no
haya usuarios trabajando (por la noche, al medioda).

Con qu frecuencia cambian los ficheros? Frecuencia de las copias.

Cada cunto tiempo necesitan recuperarse importantes ficheros daados o perdidos? (Esto es
muy difcil de saber).

Dnde se restaurarn los datos?

Hacer las rutinas de restauracin sencillas.

Proteger las copias de seguridad contra escritura.

Seguridad de las copias: lugar donde se almacenan, condiciones ambientales, propiedades de


los medios empleados, . . .

Carctersticas deseables en una buena estrategia para copias


de seguridad:

Ser fcil de usar, preferiblemente que sea totalmente automtica.

Eficiencia y rapidez: compromiso entre el tiempo de backup y el tiempo de recuperacin.

Copias de Seguridad

Linux

Facilidad de restauracin.

Capacidad de verificar las copias (difcil si el sistema est siendo usado continuamente).

Tolerancia a fallos en los medios de almacenamiento (cintas, etc.): necesidad de mantener al


menos dos copias de los backups completos del sistema, almacenadas en distinto sitio.

Portabilidad: posibilidad de recuperar la informacin en diferentes sistemas.

Componentes de las copias de seguridad


Hay bsicamente tres componentes que intervienen en una copia de seguridad:

El planificador: decide qu informacin se copia y cundo.

Los medios de almacenamiento: cintas, CDs, memorias USB, HD, etc.

El programa de copia: los comandos que mueven los datos de los discos a los medios.

El planificador
Decide qu informacin se debe salvar en cada copia, y cundo se hacen estas.
Normalmente es gestionado mediante cron.
Segn la informacin que salvemos podemos hablar de los siguientes tipos de backup:

Completo
Copia de seguridad completa de un sistema de ficheros (TODO). Llamada de NIVEL 0.
Este tipo de copia tarda mucho tiempo en hacerse y presenta inconvenientes para recuperar un nico
fichero.
Si los ficheros no cambian muy a menudo: no hay justificacin para realizarlas de forma asidua. Si
cambian mucho y son vitales para el trabajo de mucha gente, estn justificadas incluso a diario.
Es recomendable hacerla ante grandes cambios: nuevo software, nuevo SO, . . .

Parcial
Slo se salva la informacin ms importante y difcil de recuperar:

Los ficheros de usuario.

Los ficheros de configuracin, p.e. /etc/passwd.

Directorios de correo, web, etc.

Incremental
Slo se salvan los ficheros modificados desde el ltimo backup completo o incremental. Llamada de
NIVEL 2.

Copias de Seguridad

Linux

La copia de seguridad necesita menos tiempo y espacio, pero para restaurar los datos necesitaremos el
ltimo backup completo y todos los incrementales.
Se deben realizar con mucha ms frecuencia, incluso a diario.

Diferencial
Se salvan los ficheros modificados desde el ltimo backup completo. Llamada de NIVEL 1.

Los backups son ms grandes que en el caso incremental.

Para restaurar slo necesitamos el backup completo y el ltimo diferencial.

Ejemplos de estrategias:

Lunes de nivel 0 y el resto de das de nivel 1

Lunes de nivel 0, martes de nivel 1, mircoles de nivel 2, jueves de nivel 1 y viernes de nivel 2

Cmo se restaurarn?

Soportes de seguridad
Son los medios de almacenamiento o soportes donde se guarda la informacin:

Cintas magnticas, principalmente cintas de 8 mm o de 4mm, con capacidades de hasta 72 GB.


Las hay con no-rebobinado (/dev/nstX ) y con rebobinado (/dev/stX).

Discos duros internos o externos.

CD-Rom's o DVDs regrablables. buenos cuando la cantidad de datos no es excesivamente


elevada. Necesitan software adicional para crear las imgenes ISO (como mkisofs) y para
realizar la grabacin (cdrecord).

Memorias USB.

Disquetes, en desuso, poca capacidad.

Papel, aunque parezca mentira puede ser til, por ejemplo, imprimir un fichero de
configuracin que vamos a modificar.

etc.

Copias de Seguridad

Linux

Programas de copia
tar
Tar (Tape Archive, archivar en cinta) permite empaquetar o desempaquetar ficheros. El concepto de
empaquetar, es el de meter varios ficheros y/o directorios en un solo fichero (paquete). Posteriormente
podremos recuperar esa estructura de ficheros y directorios en el lugar donde queramos. Su sintaxis
bsica es:

tar

[-]opcin[modificador]

[fichero.tar]

[origen]

Ejemplo: crea un fichero tar conteniendo los ficheros del directorio /etc.

tar

-cvf copia.tar /etc

Puede indicarse un fichero o un dispositivo (p.e. /dev/sdb2).


tar conserva las propiedades de los ficheros: permisos, usuario, grupo, fechas, etc.

Opciones:
Se pueden combinar, siempre y cuando no indiquen acciones contrarias. Si especificamos varias se
escriben juntas sin mediar espacios entre ellas. Tradicionalmente no se emplea el guin (-), que
normalmente precede a las opciones en las rdenes Linux.
c

Crear un nuevo archivo tar (empaquetado).

Para mostrar el contenido de un paquete.

Para extraer archivos empaquetados, se pueden indicar ficheros individuales.

Aade el (los) fichero(s) especificado(s) al final del paquete.

Aade el (los) fichero(s), slo si no estn o son de fecha ms reciente.

Obtiene las diferencias entre los ficheros de la copia (paquete) y los del disco.

Siempre se debe usar una de las opciones anteriores inmediatamente despus de la orden tar.

Algunos modificadores:
v

Visualiza la informacin de lo que hace de forma detallada por pantalla.

Indica que el primer argumento, despus de las opciones, es el nombre de un fichero tar o un
dispositivo. Si no se indica este modificador o como fichero se pone - , utiliza la entrada o
salida estndar, de esta manera se puede usar con tuberas.

Para crear / extraer de paquetes que ocupan varios discos.

Filtrar el archivo a travs de gzip (para comprimir como descomprimir). Tendrn la extensin

Copias de Seguridad

Linux

.tgz equivalente a .tar.gz.


j

Comprime o descomprime con bzip2. Extensin .bz2.

No sobreescribe los ficheros existentes al extraer.

TF

Obtiene la lista de ficheros a guardar del fichero F.

XF

Excluye los ficheros que concuerdan con los patrones listados en el fichero F

N Fecha

Slo guarda los ficheros ms nuevos que Fecha (copias diferenciales e incrementales).

fichero.tar

Nombre del archivo o dispositivo almacn.

origen

Nombre del directorio(s) / fichero(s) a empaquetar separados por espacios.

Supongamos que deseamos empaquetar dos ficheros llamados linux1.txt y linux2.txt, en un fichero tar
de nombre linux.tar, escribiremos:

tar -cvf linux.tar linux1.txt linux2.txt


Tambin podemos escribir:

tar -cvf linux.tar linux?.txt


Para empaquetar todo el contenido del directorio home:

tar -cvf home.tar /home


Si lo que deseamos es desempaquetar un fichero tar, en vez de escribir la opcin -c escribiremos -x, as
para desempaquetar el contenido de home.tar escribimos:

tar -xvf home.tar


De esta manera se crea la estructura de subdirectorios que hubiese dentro de /home.
Si solamente queremos ver el contenido del fichero empaquetado (tar), ejecutamos.

tar -tvf entrega.tar


Antes de extraer ficheros tar es importante conocer, donde deben desempaquetarse los ficheros, y con
qu tipo de trayectoria fueron empaquetados (absoluta o relativa), la opcin -t nos informa de esto. Y
as crear los directorios apropiados y poner activo el directorio correspondiente.
tar permite hacer copias de seguridad en varios discos (multivolumen), en ese caso la sintaxis sera:

tar cvfM /dev/fd0 origen


Hay que hacer notar que en este caso no se puede empaquetar y comprimir a la vez y que no podemos
poner el guin delante de las opciones, no funciona.
Para desempaquetar los discos as obtenidos tan slo tendremos que introducir el primer disco, y sin
montarlo, ejecutar:

tar xvfM /dev/fd0

Copias de Seguridad

Linux

Se nos pedirn los disco uno a uno hasta que termine el proceso.

tar czvf /dev/sda1 /home


Qu sucede con la particin /dev/sda1?

Crear una copia de seguridad comprimida de la primera particin.

tar czvf /dev/nst0 /dev/sda1


Hacer la copia de seguridad comprimida en un fichero, del directorio prac_iso.

tar czvf practicas.tgz prac_iso


Mostrar los ficheros que componen la copia.

tar tzvf practicas.tgz


Descomprimir.

tar xzvf practicas.tgz


Recuperar el fichero boletin1.pdf (observa que hay que indicar la ruta con la que tar lo almacen).

tar xzvf practicas.tgz prac_aso/boletin1.pdf

Prcticas:
1. Crear un paquete .tar en vuestro directorio de trabajo, de alguno de
vuestros subdirectorios.

2. Aadirle al paquete ficheros nuevos o modificados, usando distintos tipos


de trayectorias.

3. Comprobar los ficheros que lo componen.

4. Borrar los originales y recuperarlos del paquete.

5. Realizar las operaciones anteriores con una memoria usb.

Copias de Seguridad

Linux

cpio
Permite realizar copias de seguridad de conjuntos de ficheros arbitrariamente, es similar en
funcionalidad a tar y maneja tanto ficheros en formato cpio como tar.
Lee de la entrada estndar el nombre de los ficheros a guardar, lo comn es usarlo enlazado con otras
rdenes mediante tuberas.
cpio tiene tres modos de operacin.

En el modo de copia-afuera, cpio copia ficheros hacia un paquete. Lee una lista de nombres de
ficheros, uno por lnea, de la entrada estndar, y escribe el paquete en la salida estndar. Una
forma tpica de generar la lista de nombres de ficheros es con la orden find; se debera dar a
find la opcin -depth para minimizar problemas con permisos en directorios para los que no se
tiene permiso de paso.

cpio -o < lista-nombres > paquete

En el modo de copia-adentro, cpio copia ficheros desde un paquete (archivo) o lista los
contenidos del paquete. Lee el paquete desde la entrada estndar. Los argumentos de la lnea
de rdenes son patrones del shell de concordancia de nombres de ficheros; slo se copian
desde el paquete aqullos ficheros cuyos nombres concuerden con los patrones. Si no se dan
patrones, se extraen todos los ficheros.

cpio -i patrn < paquete

En el modo de copia-de-paso, cpio copia ficheros de un rbol de directorio a otro. Lee desde la
entrada estndar la lista de ficheros a copiar; el directorio dentro del cual copiar esos ficheros
se da como un argumento que no es una opcin.

cpio -p directorio-destino < lista-ficheros


Algunas opciones:
o

Copiar fuera (out), crear la copia de seguridad.

Copiar dentro (in), extraer de la copia.

Copia de paso.

Conserva fecha y hora de los ficheros.

Crea tabla de contenidos, muestra el contenido de la copia

Aade ficheros a un contenedor existente.

Crear directorios al descomprimir.

Modo verbose.

Consultar otras muchas opciones con: cpio --help | less


Ejemplos:
Copia en la unidad de cinta.

Copias de Seguridad

Linux

find /home | cpio -o > /dev/nst0


La copia la realiza en un fichero

find /home | cpio -o -F h.cpio


Restaura la copia de seguridad de ese paquete.

cpio -i < h.cpio


Restaura slo el fichero indicado

cpio -i fichero < h.cpio

6. Usa find para obtener una lista de los ficheros a respaldar, almacena sus
nombres mediante una tubera en el fichero acopiar.

7. Realiza la copia de los ficheros en un paquete llamado copia.cpio.

8. Visualiza los nombres de los ficheros contenidos en copia.cpio.

9. Borra algn fichero de los originales.

10. Restaura la copia.

dump
Los comandos dump y restore, son los ms comunes para copias de seguridad.
dump: Hace copias de un sistema de archivos entero, con las siguientes caractersticas:

Pueden ser copias multivolumen.

Puede salvar ficheros de cualquier tipo (incluido ficheros de dispositivos).

Los permisos, propietarios y fechas de modificacin son preservados.

Puede realizar copias incrementales.

Tambin puede usarse para salvar ficheros individuales (no es lo usual).

Si no lo tenemos instalado, ejecutamos:

apt-get install dump

El formato y los argumentos de dump dependen de la versin utilizada, pero en general es:

dump [-nivel] [opciones] [ficheros_a_copiar]

Copias de Seguridad

Linux

Nivel de dump: entero entre 0-9:

0 implica backup completo.

Mayor que 0 implica copiar slo los ficheros nuevos o modificados desde el ltimo backup de
nivel inferior

dump guarda informacin sobre los backups realizados, en el fichero /etc/dumpdates o


/var/lib/dumpdates (este ltimo es el caso de Ubuntu).
Algunas opciones:
-f

Especifica el dispositivo o fichero donde almacenar la copia.

-u

Actualiza el fichero dumpdates despus de una copia correcta, cuando se respaldan SF


completos.

-a

Determina automticamente el fin de la cinta (opcin por defecto).

-j, -z

Usa compresin con bzlib o zlib (slo en algunas versiones).

Backup de nivel 0 de la particin /home

# dump -0u -f /dev/sdb2 /home


Backup en una mquina remota usando ssh como transporte

# export RSH=/usr/bin/ssh
# dump -0u -f usuario@sistema_remoto:/dev/sda6 /home

restore: Restaura ficheros salvados por dump


Formato:

restore accin [opciones ] [ficheros_a_recuperar]


Acciones principales:
r

Restaura la copia completa.

Muestra los contenidos de la copia.

Extrae slo los ficheros indicados.

Algunas opciones:
-f

Especifica el dispositivo o fichero de la copia

-a

No pregunta de que volumen extraer los ficheros (lee todos los volmenes empezando en 1)

Restaurar el backup almacenado en /dev/sdb2

# restore -rf /dev/sdb2


Restaurar el backup desde un sistema remoto

Copias de Seguridad

Linux

# export RSH=/usr/bin/ssh
# restore -rf usuario@sistema_remoto:/dev/sda6
Restaurar slo un fichero

# restore -xaf /dev/sdb2 fichero

Archivo restoresymtable: Se crea cuando se restaura un filesystem completo, en el directorio donde se


restaura, contiene informacin sobre el sistema restaurado y puede eliminarse una vez finalizada la
restauracin.

Ms ejemplos de estrategias de planificacin de los backups.


Ejemplo 1: copia de nivel 0 mensual, de nivel 9 diaria (L, M, X y J) y de nivel 5 semanal (V).

Necesita 6 o 9 cintas: una para el 0, 4 para los niveles 5 y 1 o 4 para los niveles 9.
Para restaurar necesitamos restaurar en orden:

La copia de nivel 0.

La ltima copia de nivel 5.

La ltima de nivel 9, despus de la de nivel 5.

Ejemplo 2: copia de nivel 0 mensual (completa), de nivel 2 el viernes (diferencial) y de niveles 3 el


lunes, 4 el martes, 5 el mircoles y 6 el jueves (incrementales).
Necesita al menos 9 cintas.
Para restaurar necesitamos restaurar en orden:

La del nivel 0.

La del ltimo viernes (nivel 2).

Las diarias desde el ltimo viernes de forma consecutiva.

Prcticas:
11. Utilizando dump, haz un backup de nivel 0 de la particin logica en
/dump/logica.0.

12. Crea o modifica algn fichero en logica.

13. Haz una copia de nivel 2 de la particin logica en /dump/logica.2.

Copias de Seguridad

Linux

10

14. Observa el contenido del fichero dumpdates.

15. Comprueba los nombres de los ficheros que contiene cada copia.

16. Borra algunos o todos los ficheros de la particin y resturalos a partir


de las dos copias de seguridad.

17. Crea un fichero 'temp.dat' en un directorio 'tmp' dentro de tu HOME. Usa


tar para crear un paquete conteniendo todo tu directorio HOME.

18. Borra el fichero 'temp.dat' y recupralo del paquete tar.

19. Mediante un comando busca todos los ficheros terminados en '.txt', que se
encuentren a partir de un directorio y almacnalos comprimidos con cpio.

Copias de Seguridad

Linux

11

Otras aplicaciones
Existen otros comandos que permiten hacer backups y sincronizar ficheros: bacula, rdist, rsync, etc.

Bacula
Sofisticado sistema de backup en red con diseo modular, que permite hacer copias de seguridad de
todas las mquinas de una LAN a diferentes medios de backups (cinta, disco, . . . )
Soporta MySQL, PostgreSQL o SQLlite para el catlogo.
Hace backups de sistemas UNIX, Linux y Windows.
Para ms informacin, ver www.bacula.org/dev-manual/What_is_Bacula.html

Amanda
Amanda: Advanced Maryland Automatic Network Disk Archiver.
Sofisticado sistema de backup en red, que permite hacer copias de seguridad de todas las mquinas de
una LAN a una unidad de cinta del servidor.
Est disponible en la mayora de los UNIX y soporta muchos tipos de medios de backup.
Puede hacer uso de SAMBA para copias de sistemas Windows NT.
Se basa en dump y tar. Para ms informacin, ver www.amanda.org/docs

Flexbackup
Herramienta de backup flexible para instalaciones de pequeo y medio tamao.
Ms simple de configurar y utilizar que Amanda para sitios con un nmero no muy alto de sistemas.
Usa distintos formatos de archivo: dump, afio, GNU tar, cpio, zip, etc.
Permite backups completos e incrementales, como dump, y remotos a travs de rsh o ssh.
Para ms informacin, ver flexbackup.sourceforge.net

rdiff-backup
rdiff-backup copia un directorio en otro, permitiendo copias remotas.
Hace una copia exacta de los directorios (mirror), guardando las propiedades de los ficheros
(propietario, permisos, etc.).
Guarda las diferencias entre copias de los ficheros para poder recuperar un fichero antiguo
(incremental).

Copias de Seguridad

Linux

12

Slo transmite las diferencias de los ficheros (similar a rsync).


Para ms informacin ver www.nongnu.org/rdiff-backup

DAR
DAR Disk ARchiver comando para hacer backups de rboles de directorios y ficheros.
Permite copiar un sistema de ficheros entero a un archivo.
Permite hacer backups completos y diferenciales y copias multivolumen:
divide en archivo en varios ficheros (slices) parando antes de crear cada nuevo slice, interesante para
hacer copias en floppy, CD o DVD
Ms informacin en: dar.linux.free.fr

Comando rdist
Permite distribuir ficheros desde un servidor central a varias mquinas. Slo copia los ficheros
modificados, preservando el propietario, grupo, modo y fechas de modificacin las versiones actuales.
Puede funcionar sobre ssh.

Comando rsync
Similar a rdist aunque funciona de forma diferente, ms eficiente que rdist, slo transmite las
diferencias entre ficheros no usa fichero de configuracin: funciona de forma similar a rcp.
Ver la pgina de manual de rsync para ms detalles.

Unison
Aplicacin para sincronizar ficheros y directorios entre sistemas, puede sincronizar entre sistemas
Windows y UNIX, no requiere permisos de root, permite sincronizacin en los dos sentidos, las
transferencias se optimizan usando una versin de rsync.
Tiene un interfaz grfico sencillo, para ver un tutorial de uso, hacer:
$ unison -doc tutorial

Copias de Seguridad

Linux

13

Gestin de Pr
Procesos
Una definicin simple de proceso podra ser que es una instancia de un programa en ejecucin
(corriendo). A los procesos frecuentemente se les llama tareas. El contexto de un programa que est
en ejecucin es lo que se llama un proceso. Este contexto incluye procesos hijos que se hayan
generado del principal (proceso padre), los recursos del sistema que este consumiendo, sus atributos
de seguridad (tales como su propietario y permisos de archivos), etc.
Linux, como se sabe, es un sistema operativo multitarea y multiusuario. Esto quiere decir que mltiples
procesos pueden operar simultneamente sin interferirse unos con los otros. Cada proceso tiene la
"ilusin" de ser el nico proceso en el sistema y que tiene acceso exclusivo a todos los servicios del
sistema operativo.
Programas y procesos son entidades distintas. En un sistema operativo multitarea, mltiples instancias
de un programa pueden ejecutarse simultneamente. Cada instancia es un proceso separado. Por
ejemplo, si cinco usuarios desde equipos diferentes, ejecutan el mismo programa al mismo tiempo,
habra cinco instancias del mismo programa, es decir, cinco procesos distintos.
Cada proceso que se inicia es referenciado con un nmero de identificacin nico, conocido como
Process ID PID, que es siempre un entero positivo. Prcticamente todo lo que se est ejecutando en el
sistema en cualquier momento es un proceso, incluyendo el shell, el ambiente grfico que puede tener
mltiples procesos, etc. La excepcin a lo anterior es el kernel en s, el cual es un conjunto de rutinas
que residen en memoria y a los cuales los procesos a travs de llamadas al sistema pueden tener
acceso.
Algunos procesos estn ejecutndose continuamente por el sistema a la espera de atender alguna
peticin. Son los llamados demonios (o daemons). Por ejemplo, los demonios que atienden peticiones
de FTP o de HTTP, los que montan automticamente los CDs, los que realizan tareas programadas,
etc.
No hay que confundirlos con programas que se ejecutan en background (en segundo plano) y que son
programas que realizan una tarea y acaban, pero no esperan entradas interactivas. Si queremos hacer
un clculo muy complejo o una tarea que va a tardar cierto tiempo, lanzamos el programa que lo
realiza, lo mandamos al segundo plano y mientras podemos realizar otras tareas. Para ello usamos el
operador & al final de la lnea.
A todo proceso, cuando se lanza, se le asocia una entrada estndar, una salida estndar y una salida
de errores. De esta forma, cuando solicita un dato, muestra un mensaje en pantalla (salida estndar, la
consola) y espera una respuesta por el teclado (entrada estndar) y, si se produce un error, lo muestra
por la salida de errores (que habitualmente es tambin la consola).
El S.O. nos da posibilidades para redirigir la entrada y la salida de proceso, de forma que en vez de leer
del teclado, lea los datos de un fichero o dirigir la salida del proceso a un fichero o a otro proceso.

Gestin de Procesos

Linux

Ver los procesos: ps


El comando ps (process status) visualiza la lista de procesos del sistema, por ejemplo:

$ ps
PID
4150
4178
4238
4295

TTY
tty1
tty1
tty1
tty1

TIME
00:00:00
00:00:02
00:00:00
00:00:00

CMD
bash
vi
sh
ps

Cada columna tiene el siguiente significado:


PID

Representa el identificador de proceso.

TTY

Terminal asociado, para los procesos en background una ?.

TIME

Tiempo de ejecucin acumulado (uso de la CPU), expresado en horas:minutos:segundos.

CMD

Nombre del proceso.

Ahora slo estamos viendo los procesos que est ejecutando el usuario que ejecuta la orden.
En el ejemplo anterior, desde el bash se ejecut el vi, en este momento bash se echa a dormir, desde
el vi iniciamos otro shell (sh) y desde este se ejecuta el comando ps.
Como puede observar, sh se ejecuta concurrentemente con el comando ps. Cuando ps termina de
ejecutarse (despus de mostrar la tabla de procesos), el proceso sh retoma el control, y muestra el
prompt, indicando que est listo para recibir otro comando.
Y cuando finalice el vi, ser el bash quien tome el control.
Un proceso que est corriendo se denomina tarea para el shell. Los trminos proceso y tarea, son
intercambiables. Sin embargo, se suele denominar tarea" a un proceso, cuando es usado en
conjuncin con control de tareas, que es una caracterstica del shell, que permite gestionar tareas.

Opciones de ps (ps help):

Gestin de Procesos

Linux

********* simple selection ********* ********* selection by list *********


-A all processes
-C by command name
-N negate selection
-G by real group ID (supports names)
-a all w/ tty except session leaders -U by real user ID (supports names)
-d all except session leaders
-g by session OR by effective group name
-e all processes
-p by process ID
T all processes on this terminal
-s processes in the sessions given
a all w/ tty, including other users -t by tty
g OBSOLETE -- DO NOT USE
-u by effective user ID (supports names)
r only running processes
U processes for specified users
x processes w/o controlling ttys
t by tty
*********** output format ********** *********** long options ***********
-o,o user-defined -f full
--Group --User --pid --cols --ppid
-j,j job control
s signal
--group --user --sid --rows --info
-O,O preloaded -o v virtual memory --cumulative --format --deselect
-l,l long
u user-oriented
--sort --tty --forest --version
-F
extra full
X registers
--heading --no-heading --context
********* misc options *********
-V,V show version
L list format codes f ASCII art forest
-m,m,-L,-T,H threads
S children in sum
-y change -l format
-M,Z security data
c true command name -c scheduling class
-w,w wide output
n numeric WCHAN,UID -H process hierarchy

El comando ps es el que permite informar sobre el estado de los procesos. ps esta basado en el
sistema de archivos /proc, es decir, lee directamente la informacin de los archivos que se encuentran
en este directorio. Tiene una gran cantidad de opciones, incluso estas opciones varan dependiendo del
estilo en que se use el comando. Estas variaciones sobre el uso de ps son las siguientes:

Estilo UNIX, donde las opciones van precedidas por un guin -.

Estilo BSD, donde las opciones no llevan guin -

Estilo GNU, donde se utilizan nombres de opciones largas y van precedidas por doble guin
--.

Sea cual sea el estilo utilizado, dependiendo de las opciones indicadas, se muestran varias columnas,
estas pueden ser entre otras muchas, las siguientes:

p o PID
P o PPID
U o UID
t o TT o
TTY
T o TIME
c o CMD
SZ o SIZE
RSS
v o VSIZE
NI
C o PCPU
STIME
S o STAT

Process ID, nmero nico o de identificacin del proceso.


Parent Process ID, padre del proceso.
User ID, usuario propietario del proceso.
Terminal asociada al proceso, si no hay terminal aparece entonces un '?'.
Tiempo de uso de cpu acumulado por el proceso.
El nombre del programa o comando que inici el proceso.
Tamao que ocupa en menoria en KB.
Resident Sise, tamao de la parte residente en memoria en KB.
Tamao en memoria virtual en KB.
Nice, valor nice (prioridad) del proceso, un nmero positivo significa menos tiempo
de procesador y negativo ms tiempo (-19 a 19).
Porcentaje de cpu utilizado por el proceso.
Starting Time, hora de inicio del proceso.
Status del proceso, estos pueden ser los siguientes:

Gestin de Procesos

Linux

R runnable, en ejecucin, corriendo o ejecutndose.

S sleeping, proceso en ejecucin pero sin actividad por el momento, o


esperando por algn evento para continuar.

T sTopped, proceso detenido totalmente, pero puede ser reiniciado.

Z zombie, difunto, proceso que por alguna razn no termin de manera


correcta, no debe haber procesos zombies.

D uninterruptible sleep, son procesos generalmente asociados a acciones de IO


del sistema.

X dead, muerto, proceso terminado pero que sigue apareciendo, igual que los
Z no deberan verse nunca.

Con man ps se pueden ver ms detalles.

A continuacin algunos cuantos ejemplos de ps con la salida recortada.


# ps -e
PID TTY
1 ?
2 ?
3 ?
4 ?

(-e muestra todos los procesos)


TIME CMD
00:00:01 init
00:00:00 kthreadd
00:00:00 migration/0
00:00:00 ksoftirqd/0

# ps -ef
(-f muestra opciones completas)
UID
PID PPID C STIME TTY
TIME
root
1
0 0 10:12 ?
00:00:01
root
2
0 0 10:12 ?
00:00:00
...
root
6130 5662 0 10:24 pts/0
00:00:00
root
6134 6130 0 10:24 pts/0
00:00:00
sergon
6343 5604 0 10:28 ?
00:00:00
/home/sergon/tmp/ksocket-sergon/kl
root
6475 6134 0 10:38 pts/0
00:00:00

CMD
init [5]
[kthreadd]
su -bash
kio_file [kdeinit] file
ps -ef

# ps -eF
(-F muestra opciones completas extra)
UID
PID PPID C
SZ
RSS PSR STIME TTY
root
1
0 0
412
556
1 16:59 ?
root
2
0 0
0
0
1 16:59 ?
sergon
8326 8321 0
902 1272
0 17:07 ?
/usr/lib/firefox-2.0.0.8/run-mozilla.sh /usr/lib/f
sergon
8331 8326 4 53856 62604
0 17:07 ?
/usr/lib/firefox-2.0.0.8/mozilla-firefox-bin
sergon
8570 7726 2 15211 37948
0 17:17 ?
# ps ax
PID TTY
1 ?
2 ?
3 ?
4 ?
# ps aux
USER
root

TIME
00:00:01
00:00:00
00:00:00

CMD
init [5]
[kthreadd]
/bin/sh

00:00:50
00:00:10 quanta

(formato BSD sin guin, a muestra todos, x sin mostrar tty)


STAT
TIME COMMAND
Ss
0:01 init [5]
S<
0:00 [kthreadd]
S<
0:00 [migration/0]
S<
0:00 [ksoftirqd/0]
(formato BSD sin guin, u muestra usuarios y dems columnas)
PID %CPU %MEM
VSZ
RSS TTY
STAT START
TIME COMMAND
1 0.0 0.0
1648
556 ?
Ss
16:59
0:01 init [5]

Gestin de Procesos

Linux

root
root
root
root

2
3
4
5

0.0
0.0
0.0
0.0

0.0
0.0
0.0
0.0

0
0
0
0

0
0
0
0

?
?
?
?

S<
S<
S<
S<

16:59
16:59
16:59
16:59

0:00
0:00
0:00
0:00

[kthreadd]
[migration/0]
[ksoftirqd/0]
[migration/1]

# ps -eo user,pid,tty
(-o output personalizado, se indican los campos
separados por coma, ver ps --help o ps L)
USER
PID TT
root
1 ?
root
2 ?
sergon
8570 tty 1
root
8876 pts/1
# ps -eH (muestra rbol de procesos)
# ps axf (lo mismo en formato BSD)
# ps -ec (el comando que se esta ejecutando, sin la ruta, slo el nombre real)
#> ps -el (muestra formato largo de varias columnas, muy prctico)
#> ps L
(No muestra procesos, lista todos los cdigos de formatos)

Algunas opciones:
-u user

Muestra los procesos lanzados por el usuario indicado.

-t terminal Slo los procesos ligados a un terminal determinado.


-e

Todos los procesos.

-f

Muestra una informacin ms detallada de cada proceso.

-F

formato ms largo.

Muestra un rbol con la jerarqua de procesos.

k campo

Ordena la salida por algn campo (p.e. ps uxak rss).

1.

En varias terminales virtuales, conctate con usuarios diferentes.

2.

Abre varias sh y ejecuta algn programa (editores, ).

3.

Visualiza los procesos de un usuario concreto.

4.

Comprueba las relaciones padre-hijo entre procesos.

5.

Busca procesos dado su nombre.

6.

Observa las diferentes columnas que aparecen con las opciones l, -f, -F,
u.

7.

Realiza algn listado personalizando las columnas.

Gestin de Procesos

Linux

Control de Tareas.
En muchos casos, los usuarios solo ejecutan un trabajo cada vez, que es el ltimo comando que ellos
teclearon desde el shell. Sin embargo, usando el control de tareas, usted podr ejecutar diferentes
tareas al mismo tiempo, cambiando entre cada una de ellas conforme lo necesite.

Primer plano y Segundo plano


Un proceso puede estar en Primer plano o en Segundo plano. Solo puede haber un proceso en primer
plano al mismo tiempo por terminal, el proceso que est en primer plano, es con el que se interacta,
recibe entradas de teclado, y enva las salidas al monitor. (Salvo, por supuesto, que haya redirigido la
entrada o la salida).
El proceso en segundo plano, no recibe ninguna seal desde el teclado, por lo general, se ejecutan en
silencio sin necesidad de interaccin.
Algunos programas necesitan mucho tiempo para terminar, y no muestran nada interesante mientras
tanto. Compilar programas es una de estas tareas, o comprimir un fichero grande. No tiene sentido
sentarse y aburrirse mientras estos procesos terminan. En estos casos es mejor lanzarlos en segundo
plano, para dejar el ordenador en condiciones de ejecutar otro programa.

Los procesos pueden ser suspendidos. Un proceso suspendido es aquel que no se est ejecutando
actualmente, sino que est temporalmente parado. Despus de suspender una tarea, puede indicar a la
misma que contine, en primer plano o en segundo, segn se requiera.
Retomar una tarea suspendida no cambia en nada el estado de la misma, la tarea continuar
ejecutndose justo donde se dej.
Ten en cuenta que suspender un trabajo no es lo mismo que interrumpirlo. Cuando se interrumpe un
proceso, generalmente con la pulsacin de ctrl-C (depende del terminal), el proceso muere, y deja de
estar en memoria y utilizar recursos del ordenador. Una vez eliminado, el proceso no puede continuar
ejecutndose, y deber ser lanzado otra vez para volver a realizar sus tareas. Tambin se puede dar el
caso de que algunos programas capturan la interrupcin, de modo que pulsando ctrl-C no se para
inmediatamente. Esto se hace para permitir al programa realizar operaciones necesarias de limpieza
antes de terminar.
De hecho, algunos programas simplemente no se dejan matar por ninguna interrupcin.

Envo a segundo plano y eliminacin de procesos


Empecemos con un ejemplo sencillo. El comando yes es un comando aparentemente intil, que enva
una serie interminable de y-es a la salida estndar. (Realmente es muy til. Si se utiliza una tubera o
pipe") para unir la salida de yes con otro comando que haga preguntas del tipo si/no, la serie de y
confirmar todas las preguntas.

Gestin de Procesos

Linux

yes
y
y
y
y
y
La serie de y-es continuar hasta el infinito, a no ser que usted la elimine, pulsando la tecla de
interrupcin, generalmente ctrl-C. Tambin puede deshacerse de esta serie de y-es redirigiendo la
salida estndar de yes hacia /dev/null.

yes > /dev/null


Ahora va mucho mejor, el terminal no se ensucia, pero el prompt de la shell no retorna. Esto es porque
yes sigue ejecutndose y enviando y-es a /dev/null. Para recuperarlo, pulse la tecla de interrupcin.
Supongamos ahora que queremos dejar que el comando yes siga ejecutndose, y volver al mismo
tiempo a la shell para trabajar en otras cosas. Para ello enviaremos a yes a segundo plano, lo que nos
permitir ejecutarlo, pero sin necesidad de interaccin.
Una forma de mandar procesos a segundo plano es aadiendo un carcter &" al final de la lnea de
comando.

yes > /dev/null &


[1] 164
Como podr ver, ha regresado a la shell. Pero qu es eso de [1] 164"? Se est ejecutando
realmente el comando yes?
[1]" representa el nmero de tarea del proceso yes. El shell asigna un nmero a cada tarea que est
ejecutando. Como yes es el nico comando que se est ejecutando en background, se le asigna el
nmero de tarea 1. El nmero 164" es el nmero de identificacin del proceso, o PID, que es el
nmero que el sistema le asigna al proceso. Ambos nmeros pueden usarse para referirse a la tarea
como veremos despus.
El proceso yes est corriendo en segundo plano, y enviando constantemente y-es hacia el dispositivo
/dev/null. Para chequear el estado del proceso, utilice el comando interno del shell jobs:

jobs
[1]+ Running yes >/dev/null &
Tambin puede usar el comando ps, como mostramos antes, para comprobar el estado de la tarea.

8.

Lanza varios procesos con el comando yes.

9.

Muestra con ps, slo la informacin de todos los yes , en formato largo

10.

Visualiza la informacin de uno en concreto y comprueba cual es el proceso


padre y el tiempo de CPU consumido.

Gestin de Procesos

Linux

Para eliminar una tarea, utilice el comando kill. Este comando toma como argumento un nmero de
tarea o un nmero de ID de un proceso. Esta era la tarea 1, as que usando el comando.

kill %1
matar la tarea. Cuando se identifica la tarea con el nmero de tarea, se precede el nmero con el
carcter de porcentaje ("%").
Ahora que ya hemos matado la tarea, podemos usar el comando jobs de nuevo para comprobarlo:

jobs
[1]+ Terminated yes >/dev/null
La tarea est, en efecto, muerta, y si usa el comando jobs de nuevo, no mostrar nada.
11.

Comprueba que no existe, buscndola con ps.

Tambin podr matar la tarea usando el nmero de ID de proceso (PID), el cual se muestra
conjuntamente con el ID de tarea cuando arranca la misma. En nuestro ejemplo el ID de proceso es
164, as que el comando

kill 164
es equivalente a

kill %1
No usar el "%" cuando nos referimos a una tarea a travs de su ID de proceso.

Parada y relanzamiento de tareas


Para seguir practicando vamos a crear un programa menos agobiante que yes, le vamos a llamar
punto.sh, y se trata de un bucle infinito que muestra un punto en pantalla cada dos segundos.

while true
do
echo -n ' ';
sleep 2;
done
Hay otra manera de poner una tarea en segundo plano. Se puede lanzar como un proceso normal (en
primer plano), pararla, y despus relanzarla en segundo plano.
Primero, lance el proceso yes en primer plano.

yes > /dev/null


De nuevo, dado que yes corre en primer plano, no debe retornar el prompt de la shell.
Ahora, en vez de interrumpir la tarea con ^C , suspenderemos la tarea. El suspender una tarea no la
mata, solamente la detiene temporalmente hasta que se relance. Para hacer esto pulsar la tecla de
suspender, que suele ser ctrl-Z .

yes > /dev/null


ctrl-Z
[1]+ Stopped yes >/dev/null

Gestin de Procesos

Linux

12.

Comprobarlo con ps.

Mientras el proceso est suspendido, simplemente no se est ejecutando. No gasta tiempo de CPU,
pero s memoria. Se puede retomar de nuevo como si nada hubiera pasado. Continuar ejecutndose
donde se dej.
Para relanzar la tarea en primer plano, use el comando fg (del ingls foreground").

fg
yes >/dev/null
La shell muestra el nombre del comando de nuevo, de forma que tenga conocimiento de que tarea es
la que ha puesto en primer plano. Pare la tarea de nuevo, con ctrl-Z. Esta vez utilice el comando bg
para poner la tarea en segundo plano. Esto har que el comando siga ejecutndose igual que si lo
hubiese hecho desde el principio con &" como en la seccin anterior.

bg
[1]+ yes >/dev/null &
Y tenemos de nuevo el prompt. El comando jobs deber decirnos que yes se est ejecutando, y
podemos matar la tarea con kill tal y como lo hicimos antes.
Cmo podemos parar la tarea de nuevo? Si pulsa ctrl-Z no funcionar, ya que el proceso est en
segundo plano. La respuesta es poner el proceso en primer plano de nuevo, con el comando fg, y
entonces pararlo. Como puede observar podr usar fg tanto con tareas detenidas, como con las que
estn segundo plano.
Hay una gran diferencia entre una tarea que se encuentra en segundo plano, y una que se encuentra
detenida. Una tarea detenida es una tarea que no se est ejecutando, es decir, que no usa tiempo de
CPU, y que no est haciendo ningn trabajo (la tarea an ocupa un lugar en memoria, aunque puede
ser volcada a disco). Una tarea en segundo plano, se est ejecutando, y usando memoria, a la vez que
completando alguna accin mientras usted hace otro trabajo.
Sin embargo, una terea en segundo plano puede intentar mostrar texto en su terminal, lo que puede
resultar molesto si est haciendo otra cosa. Por ejemplo:

yes &
punto.sh &

sin redirigir stdout a /dev/null, una cadena de y-es se mostrarn en su monitor, sin modo alguno de
interrumpirlo (no puede hacer uso de ctrl-C para interrumpir tareas en segundo plano). Para poder
parar esas interminables y-es, tendr que usar el comando fg para pasar la tarea a primer plano, y
entonces usar ctrl-C para matarla.
Otra observacin. Normalmente, los comandos fg" y bg" actan sobre el ltimo proceso parado
(indicado por un +" junto al nmero de tarea cuando usa el comando jobs). Si usted tiene varios
procesos corriendo a la vez, podr mandar a primer o segundo plano una tarea especfica indicando el
ID de tarea como argumento de fg o bg, como en

fg %2
bg %3
No se pueden usar los ID de proceso con fg o bg.

Gestin de Procesos

Linux

Adems, si usamos el nmero de tarea por s solo, como:

%2
es equivalente a

fg %2
Recordar que el uso de control de tareas es una utilidad de la shell. Los comandos fg, bg y jobs son
internos de la shell. Si por algn motivo usted utiliza una shell que no soporta control de tareas, no
espere disponer de estos comandos.
Y adems, hay algunos aspectos del control de tareas que difieren entre Bash y Tcsh. De hecho,
algunas shells no proporcionan ningn control de tareas; sin embargo, la mayora de las shells
disponibles para Linux soportan control de tareas.
13.

Practica con nuestro script punto.sh (puedes jugar con varios al mismo
tiempo o mezclndolo con yes), lanzndolo en bg, pasndolo a fg,
suspendindolo, relanzndolo,

Manipulacin de procesos (kill)


Ya hemos visto que mediante Ctrl-C y Ctrl-Z podemos terminar y detener un proceso: esas
combinaciones envan seales a los procesos.
El comando bsico para enviar seales a un proceso es kill
kill -l lista el conjunto de seales

$ kill -l
1) SIGHUP

2) SIGINT

3) SIGQUIT

4) SIGILL

5) SIGTRAP

6) SIGABRT

7) SIGBUS

8) SIGFPE

9) SIGKILL

10) SIGUSR1

11) SIGSEGV

12) SIGUSR2

13) SIGPIPE

14) SIGALRM

15) SIGTERM

17) SIGCHLD

18) SIGCONT

19) SIGSTOP

20) SIGTSTP

21) SIGTTIN

22) SIGTTOU

23) SIGURG

24) SIGXCPU

25) SIGXFSZ

26) SIGVTALRM

27) SIGPROF

28) SIGWINCH

29) SIGIO

30) SIGPWR

31) SIGSYS

Para ver su significado, man 7 signal


Sintaxis de kill

kill [seal] PID


Seal puede indicarse mediante el nmero o el cdigo, por lo que los siguientes comandos son
equivalentes:

Gestin de Procesos

Linux

10

kill -9

kill KILL

Las seales ms comunes son:

SIGHUP (1)

Cuelgue del terminal o muerte del proceso controlador.

SIGTERM (15)

Mata el proceso permitindole terminar correctamente.

SIGKILL (9)

Mata el proceso sin permitirle terminar.

SIGSTOP (19)

Para el proceso.

SIGCONT (18)

Contina si estaba parado.

SIGINT (2)

Interrupcin de teclado (Ctrl-C).

SIGTSTP (20)

Stop de teclado (Ctrl-Z).

SIGQUIT (3)

Salida de teclado (Ctrl-\).

Algunas caractersticas de las seales:

La seal que se enva por defecto es TERM (15):


Los procesos pueden ignorar esta seal y no terminar.
Las seales KILL (9) y STOP (19) no pueden ignorarse.

En bash, cuando enviamos una seal SIGHUP a un shell, este se lo reenva a todos sus hijos.

Cuando cerramos un terminal en un entorno grfico, o abandonamos una sesin, se enva un


SIGHUP a todos sus hijos.

La mayora de los demonios (daemons) responden a la seal SIGHUP volviendo a leer sus
ficheros de configuracin:
En vez de matar y reiniciar un demonio podemos hacer un kill -HUP para reiniciarlo

14. Lanza el script punto.sh en background, envale diferentes seales,


comprueba su estado con ps.

15. Igualmente en foreground, y envale las seales desde otra consola.

Programacin de tareas.
Es bastante comn que necesite ejecutar un script (o un comando) peridicamente, para algn tipo de
tarea rutinaria.
Para ello se utilizan servicios que emplean el reloj del sistema, y lanzar unos procesos determinados
previamente, a la hora indicada, aunque no est presente el usuario.
Estos servicios se lanzan en el arranque del sistema y permanecen vivos durante toda la sesin para
atender la programacin de tareas.
Tambin disponemos de otro tipo de planificacin. El mtodo descrito anteriormente nos permite
planificar en el tiempo, lo que sin duda resulta til, pero otra manera de aprovechar recursos es

Gestin de Procesos

Linux

11

programar la ejecucin de tareas dependiendo de la carga del sistema.


Linux es multitarea, de manera que el uso de la CPU se reparte entre los procesos que estn en
ejecucin. Esto se consigue repartiendo el tiempo de procesamiento entre cada uno de ellos. Si el
nmero de procesos simultneos es elevado, el tiempo dedicado a cada uno de ellos disminuye. El
efecto que percibe el usuario es una ralentizacin en la ejecucin de las tareas. En estas situaciones
disponemos de mecanismos, que permiten programar la ejecucin de procesos cuando la carga del
sistema sea baja. O modificar la prioridad que tendrn durante su ejecucin.

at
El comando at permite la ejecucin de una serie de rdenes en un momento especificado.
La sintaxis de at es:

at hora fecha + incremento


rdenes
[ctrl+d]
at nos facilita indicar 'cuando se va a ejecutar una tarea de una forma muy flexible.
Acepta horas con formato HH:MM, para ejecutar un trabajo a una determinada hora del da (si esa
hora ya ha pasado, se ejecutar el da siguiente). Tambin se puede especificar la hora usando AM o
PM para indicar por la maana o por la tarde.
Podemos indicar el da de ejecucin, proporcionando la fecha con el formato MMDDYY o MM/DD/YY o
DD.MM.YY. Para indicar la fecha de hoy o maana podemos usar today o tomorrow respectivamente.
La especificacin de una fecha debe seguir a la de la hora del da.
Finalmente se puede indicar el momento de ejecucin contando a partir del instante que ejecutemes
at, con el siguiente formato:

at now + N unidades_de_tiempo
Donde unidades_de_tiempo puede ser minutes, hours, days, o weeks.
Por ejemplo, para ejecutar un trabajo el 14 de febrero a las siete de la tarde:

at 19:00 Feb 14
at> comandos
at> <EOT> # aqu puls <ctrl-d>
warning: commands will be executed using /bin/sh
job 2 at 2011-02-14 19:00
Si quiero lanzar un programa dentro de tres horas:

at now + 3 hours
Gestin de Procesos

Linux

12

at> comandos
at> <EOT> # aqu puls <ctrl-d>
warning: commands will be executed using /bin/sh
job 3 at 2011-02-14 22:05
Algunas opciones:
-l

Muestra un listado con todos los trabajos lanzados en diferido.

-d N Elimina un trabajo de la cola usaremos la opcin -d seguida del nmero identificativo del
trabajo.

16. Programar que dentro de 2 minutos se aada al fichero quien los usuarios
que estn conectados en ese momento.

17. Indicar que nuestro script punto.sh se ejecute en background dentro de 3


minutos, redirigiendo su salida al fichero punto.

18. Programar que se apage el sistema en 10 minutos.

19. Consultar las tareas programadas.

20. Eliminar el apagado del sistema de la lista de tareas programadas.

batch
batch permite ejecutar comandos en modo diferido, cuando lo permite el nivel de carga del sistema,
cuando la carga media cae por debajo de 0.8, o del valor especificado en la invocacin de atrun.
La sintaxis de batch es:

batch
rdenes
[ctrl+d]
Para at y batch:
Los comandos a los que se aplicarn son ledos de la entrada estndar o de un fichero indicado si
usamos la opcin -f.

Gestin de Procesos

Linux

13

El directorio de trabajo, el entorno son tomados del momento de invocacin, y no el de ejecucin.


Tanto la salida estndar y los posibles errores deben de ser redirigijos.
El usuario root, siempre puede utilizar estos comandos. Para otros usuarios, los permisos para
utilizarlos se pueden limitar mediante el uso de los ficheros:

/etc/at.allow y /etc/at.deny.
Si el fichero /etc/at.allow existe, slo los usuarios cuyos nombres estn mencionados aqu tienen
permiso para utilizar at y batch.
Si /etc/at.allow no existe, se chequea /etc/at.deny y entonces todos los usuarios cuyos nombres no
estn mencionados all tienen permiso para utilizar at y batch.
Si ninguno de los ficheros existe, slo podr utilizar at el administrador del sistema.
Un /etc/at.deny vaco significa que todo el mundo puede utilizar estos comandos, esta es
habitualmente la configuracin por defecto.

21. Comprobar la existencia de los ficheros /etc/at.allow y /etc/deny, a quin


pertenecen y qu permisos tienen.

22. Lanza con batch un listado largo de todos los ficheros del sistema
(recursivo desde la /), almacnalo en un fichero llamado todo, en tu
directorio de trabajo.

23. Comprueba la existencia de la tarea.

nice
El comando nice modifica el nivel de prioridad de ejecucin procesos, asignando ms o menos tiempo
de CPU a la tarea dada.
Linux realiza una planificacin por prioridades dinmicas.
Al lanzar un proceso se le asigna un valor de prioridad esttica, nmero nice, por defecto hereda la
prioridad esttica de su proceso padre.
La prioridad dinmica del proceso se calcula en funcin del nmero nice, junto con el consumo de
CPU realizado.
La prioridad puede ser ajustada por nice en el rango entre -20 (la prioridad ms alta) a 19 (la ms
baja). nicamente el root puede asignar valores negativos.
La sitaxis de nice es:

Gestin de Procesos

Linux

14

nice -n orden
Donde n es el nmero que indica la prioridad. Si no indicamos n, se asigna por defecto la prioridad 10.
Sin opciones ni argumentos, muestra la prioridad actual.
Asignar una prioridad de 5.

nice -5 nano
Asignar una prioridad de -10 (slo puede hacerlo el root).

nice 10 nano
Tambin podemos cambiar la prioridad a un proceso que se est ejecutando, sabiendo su PID.
Asignar prioridad 14 al proceso 4890

renice 14 4890

24. consulta el nivel de prioridad del que dispones actualmente.

25. Entra en el vi usando un nivel de prioridad 17.

26. Desde el vi ejecuta una nueva shell (Esc y teclea :!sh).

27. En el nuevo shell que entramos, consulta los procesos con la opcin l, e
identifica la columna en la que se muestran los niveles de prioridad.

28. Cambia la prioridad al vi a 15, y comprueba que se ha cambiado.

29. Intenta darle al vi una prioridad de -10.

nohup
El comando nohup inhibe la terminacin de un proceso, aunque el usuario salga del sistema.
Esto tiene sentido para procesos largos, que no requieran asistencia del usuario que los lanz.
Normalmente se ejecutarn en segundo plano, y nohup impedir que finalicen al salir el usuario del
sistema.
La sitaxis de nohup es:

nohup orden &

Gestin de Procesos

Linux

15

30. En una consola virtual conctate como usuario (usuario), y desde all lanza
por ejemplo nuestro punto.sh redirigiendo la salida y en background.

31. Desconctate del usuario y comprueba como root los procesos que son de su
propiedad.

cron y crontab
Posibilita la ejecucin peridica de rdenes a intervalos prefijados.
cron es lanzado durante el arranque del sistema, y permanece activo para dar servicio a las entradas
que los usuarios le indiquen mediante la ejecucin de crontab.
El comando crontab necesita leer la informacin de las especificaciones de un archivo externo.
La sitaxis de crontab es:

crontab archivo_especificaciones
El archivo de especificaciones constar de una lnea para cada tarea, con seis campos separados por
espacios.
Los campos son, por este orden:

Minutos

Horas

Da_(del mes)

Mes

Da_(de la semana)

Minutos

Rango de 0 a 59.

Horas

Dede 0 a 23.

Da del mes

Desde 1 a 31.

Mes

Desde 1 a 12.

Da semana

Desde 0 a 6, siendo el domingo el nmero cero.

Orden

La orden a ejecutar.

Orden

En los cinco primeros campos:

Un entero que identifica a un nico minuto, hora, da, etc.

Tambien estn admitidos rangos, como por ejemplo, para indicar la repeticin de una orden de
lunes a viernes, en el campo del da de la semana ponemos: 1-5.

Una lista de enteros separados por comas, indicando que es valido para cualquiera de los
enteros indicados.

Un asterisco (*) en cualquiera de los campos anteriores significa cualquier valor del rango, es
decir el comando se ejecutar independientemente del valor de ese campo.

Gestin de Procesos

Linux

16

Veamos algunos ejemplos de como pueden ser estos archivos:


Ejecutar la orden todos los das a las nueve y media.

30 9 * * * orden
Ejecutar la orden los viernes a las doce en punto.

0 12 * * 5 orden
Ejecutar la orden todos los minutos desde las 8 a las 9 horas cada 12 de septiembre.

* 8 12 9 * orden
Ejecutar la orden el primer lunes de cada mes, a las siete de la tarde.

0 19 1-7 * 1 orden

De manera que si creamos un archivo de esta manera, sencillamente con ejecutar crontab seguido del
nombre del archivo, cron se encargar de la ejecucin de las rdenes con la frecuencia indicada.
Cada usuario solo puede tener un fichero de especificacin de crontab (se le conoce como archivo
crontab). Cada ejecucin de crontab archivo_de_especificaciones establece ese archivo como el vlido
para que cron lo interprete y ejecute.
En realidad podr tener varios archivos definidos, pero slo ser utilizado el ltimo que se ejecut con
crontab.
De nuevo se puede limitar el uso de crontab mediante la inclusin de usuarios en los ficheros
/etc/cron.allow y /etc/cron.deny.

Si el fichero cron.allow existe, slo los usuarios cuyos nombres estn mencionados aqu tienen
permiso para utilizarlo.

Si cron.allow no existe, se chequea cron.deny y entonces todos los usuarios cuyos nombres
estn mencionados se les denegar el uso.

Si ninguno de los ficheros existe, slo podr utilizar crontab el administrador del sistema.

Si cron.allow no existe y cron.deny vaco significa que todo el mundo puede utilizar crontab.

Por ltimo decir que una vez editado el fichero de especificacines y ejecutado crontab con l, no es
conveniente modificarlo con un editor de texto.
Algunas opciones:
-e

Es la forma de introducir algn cambio en el fichero de especificaciones.

-r

Para eliminar el fichero utilice la opcin.

-l

Para mostrar la lista del contenido del fichero.

Crear el fichero de especificaciones para crontab, para que realice las copias
de seguridad, con la siguiente planificacin:

Gestin de Procesos

Linux

17

32. Completa el da primero de cada mes a la hora del recreo, en el fichero


/dump/logica.0.

33. Diferencial, todos los viernes a la misma hora, en el fichero /dum/logica.1.

34. De lunes a viernes copias incrementales (niveles 2, 3, 4, 5), en sus


respectivos ficheros, tambin a la hora del recreo.

top
Proporciona una visin continuada de la actividad del procesador en tiempo real, muestra las tareas
que ms uso hacen de la CPU, y tiene una interfaz interactiva para manipular procesos.
Las cinco primeras lneas muestran informacin general del sistema:

Las estadsticas de la orden uptime.

Estadsticas sobre los procesos del sistema (nmero de procesos, procesos en ejecucin,
durmiendo, parados o zombies).

El estado actual de la CPU (porcentaje en uso por usuarios, por el sistema, por procesos con
valor nice positivo, por procesos esperando E/S, desocupada, tratando interrupciones hardware,
interrupciones software, en espera involuntaria por virtualizacin).

La memoria (memoria total disponible, usada, libre, usada como buffer de E/S y en cach.

El espacio de swap (swap total disponible, usada, libre y en cach).

Los datos de la parte inferior son similares a los del ps, excepto: SHR (La cantidad de memoria
compartida usada por la tarea).
Los procesos mostrados los ordena decrecientemente por el uso de la CPU
La lista se actualiza de forma automtica, normalmente cada 5 segundos
La orden top permite realizar una serie de operaciones interactivamente, mediante la pulsacin de
teclas, mientras top est en ejecucin, como por ejemplo:

Cambiar la prioridad de alguno utilizando la opcin r.

Matar o enviar una seal con la opcin k.

Ordenarlos segn diferentes criterios (por PID con N, uso de CPU con P, tiempo con A,
etc.).

Con n se cambia el nmero de procesos que se muestran.

Mostrar los procesos de un solo usuario u.

Gestin de Procesos

Linux

18

Con s cambia el intervalo de refresco de la indormacin.

Mostrar una ventana de ayuda h.

Para salir se utiliza la letra q.

35. Abrir dos consolas grficas, en una de ellas ejecutar top y desde la otra
lanzar procesos en background, para ver el efecto en la actividad que
muestra top.
36. Indica que visualice 13 procesos.

37. Mostrar slo los procesos del usuario.

38. Cambia la prioridad a algn proceso.

39. Elimina y suspende alguno.

Lnea
Lnea de comandos
Agrupamiento de comandos:
(Siendo A y B dos comandos)

A | B
Toda la lnea de comandos se ejecuta como si fuese un solo proceso, que genera procesos hijos para
cada una de las rdenes.
La ejecucin es concurrente. Y el estado de salida de una tubera es el del ltimo comando.

# Cuenta los subdirectorios que hay en el disco.


$ find / -type d 2> /dev/null | wc l &
$ ps f

# Comprueba la ejecucin concurrente.

# Muestra la lista ordenada de los usuarios conectados


# que en su nombre contengan la cadena.
who | grep cadena | sort

A; B
Igual que si estubieran en lneas separadas. La ejecucin es secuencial.

Gestin de Procesos

Linux

19

A &
Ejecucin en Background. Se realiza de forma asncrona.

(A; B; ...)
Se crea un SubShell, que los ejecuta de forma secuencial.

{ bA; B; ...;b}
No se crea un SubShell. Se ejecutan como un solo comando con una sola salida.

# Comprueba que no se lanza un nuevo shell.


{ clear; find / > total 2> /dev/null; ps l; }

# Muestra el contenido de los tres subdirectorios


# como si se tratase de uno solo, y ordenado en sentido inverso:
$

ls -l direc1; ls -l direc2; ls -l direc3;

sort -r

# Aade fecha, hora y el n de usuarios conectados al fichero usu.


{

date; who | wc -l;

>>

usu

A && B
Ejecucin condicional de la orden B. La orden B slo se ejecutar en el caso de que el estado de salida
de A sea verdadero (0).

# Mostrar el mensaje Encontrado slo si existe el directorio:


$ ls

-d directorio > /dev/null && echo Encontrado.

A || B
Ejecucin condicional de la orden B. La orden B slo se ejcutar en el caso de que el estado de salida
de A sea falso (!=0).

# Como un usuario normal intentar crear un subdirectorio


# donde no tengis permiso de escritura (/home).
$ mkdir hola || echo $USERNAME en `pwd` no puedes crear
Gestin de Procesos

Linux

20

Metacaracteres:
Hay que tener en cuenta que muchos caracteres son interpretados de forma especial por el Shell, los
ms importantes son:
< > << >> Redireccionamientos.
|

Tubera.

*?[]

Generacin de nombres de fichero.

&

Background.

(){}

Agrupamiento de comandos.

Separador de rdenes.

Antepuesto a una variable representa su valor.

Quita el significado especial al siguiente carcter.

Lo siguiente se entiende como comentario.

'

Los apstrofos normales, hacen que pierdan su significado especial todos los
caracteres contenidos entre ellos.

"

Las comillas no desconectan el significado especial de $ ` (apstrofo inverso) \ ni


|.

(Apstrofo inverso) Una orden encerrada entre apstrofos inversos se sustituye por su
salida estndar.

Gestin de Procesos

Linux

21

Mquinas Virtuales

Introduccin
En numerosas ocasiones necesitamos probar un programa o realizar pruebas en el Sistema
Operativo que tenemos instalado. Si las pruebas las realizamos en un equipo que estamos utilizando
de manera habitual, corremos el peligro de que un fallo, un mal funcionamiento del programa o una
simple actualizacin, provoquen una cada del sistema, una prdida de su estabilidad y en el peor de
los casos tengamos que hacer una reinstalacin completa.
Una posible solucin sera utilizar otro equipo, donde primero duplicsemos nuestra mquina y luego
instalsemos los programas o actualizaciones que deseamos comprobar. Si todo va bien, lo
aplicamos al equipo en produccin y si hay problemas, un simple formateo del equipo de pruebas
nos resuelve el problema, sin que los usuarios se vean afectados. Evidentemente tener uno o ms
equipos para realizar pruebas conlleva un coste econmico que la mayora de las empresas no estn
dispuestas a asumir.
Una solucin ms sencilla y adecuada es instalar una herramienta que simule el funcionamiento del
Sistema Operativo que se quiere probar y sobre l se instalen las aplicaciones en evaluacin. Esta
herramienta debe independizar el Sistema Operativo real (anfitrin) del Sistema Operativo
Virtualizado (invitado).
En esta situacin podemos realizar una abstraccin e imaginar que tenemos un ordenador real
(nuestra mquina fsica, con su correspondiente Sistema Operativo) y sobre l se emula el
funcionamiento de otro u otros ordenadores virtuales, y adems se nos permite cambiar entre uno y
otro sin mayor problema.
Se dice entonces que tenemos una mquina real, la mquina fsica y una o ms mquinas virtuales,
las que se ejecutan sobre el emulador, cada una de ellas con su hardware emulado (virtual) y con
su Sistema Operativo.
El programa de que usamos para virtualizar (VMM <-> Virtual Machine Monitor) maneja, gestiona y
arbitra los cuatro recursos principales de una computadora (CPU, Memoria, Red, Almacenamiento) y
as podr repartir dinmicamente dichos recursos entre todas las mquinas virtuales definidas en el
ordenador anfitrin. De modo que nos permite tener varias mquinas virtuales ejecutndose sobre
el mismo ordenador fsico.
Llevando un paso ms all este modelo, podran coexistir, en un mismo instante, nuestro ordenador
real, con su Sistema Operativo real y todos los ordenadores virtuales que pongamos en
funcionamiento, pudiendo incluso comunicarse entre ellos, a travs de una red y por lo tanto
compartir recursos, si es que nos parece oportuno.
Llegados a este punto, podemos definir una mquina virtual como un programa informtico, que se
ejecuta sobre un ordenador y un Sistema Operativo, y que simula el funcionamiento de una

Mquinas Virtuales

Linux

mquina sobre la que se pueden instalar diferentes sistemas operativos, aplicaciones, compartir
recursos, conectarnos a Internet, utilizar diferentes dispositivos (impresoras, usb, etc.).

Ventajas

Ahorro de costes, al aprovechar al mximo el hardware disponible, ya que en una misma


mquina fsica pueden coexistir mltiples servidores (la mayor parte de los servidores
pasan mucho tiempo parados, y por otro lado su coste es muy elevado). Con un solo
ordenador y virtualizando los servidores se aprovecha el hardware de la mejor manera
posible.

Sencillas copias de seguridad. Las mquinas virtuales se pueden salvar muy fcilmente,
porque a fin de cuentas, no son ms que uno o varios ficheros; en caso de desastre se
puede recuperar la informacin con rapidez.

Una de las mayores ventanas es su aislamiento. Lo que le ocurra a nuestra mquina


virtual no le afectara al sistema principal ya que no se ver involucrada. Esto implica:
o

Seguridad en las pruebas de aplicaciones. Permite probar una aplicacin y si va mal


recuperar el estado inicial, la mquina anfitrin no se afecta en nada.

Seguridad en la consolidacin de sistemas. Permite instalar y configurar un sistema


informtico sin que los fallos u errores de configuracin supongan un gran retraso ya
que se puede "retroceder" a puntos seguros con facilidad y rpidamente, en caliente
(instantneas).

Centralizacin geogrfica de servicios. En un mismo anfitrin podemos tener


ejecutndose simultneamente tantos servidores como requiera el entorno, por ejemplo,
un Windows Server para dar soporte a una aplicacin y un Linux Server para dar soporte
de web y correo. Esto facilita la administracin al estar centralizada.

Portabilidad y disponibilidad. Con los dispositivos de almacenamiento usb de gran


tamao, podemos tener equipos completos virtualizados privados, que nos permiten
utilizarlos en entornos pblicos. Hay que tener en cuenta que, normalmente, los
volmenes de almacenamiento virtuales ocupan menos espacio ya que slo se
almacenan fsicamente en HD los bloques con datos.

Rpida implantacin. En Internet existen mquinas virtuales ya configuradas, lo que nos


permite ahorrar tiempo en instalaciones y configuraciones.

Desventajas

Rendimiento. Es obvio que al compartir cada husped y el anfitrin los principales


recursos (RAM y procesador) el rendimiento individual de cada mquina es menor que si
estuviesen en mquinas individuales.

Mquinas Virtuales

Linux

Por ello, la virtualizacin requiere de mquinas anfitrionas ms potentes, con ms RAM y varios
ncleos y/o procesadores para una mejor respuesta.

1. Buscar en internet informacin sobre diferentes programas de


virtualizacin, recoger sus principales caractersticas, sobre qu
plataformas funcionan, qu sistemas operativos virtualizan, libres o de
pago, facilidad de uso,

Instalacin
Oracle VM VirtualBox es un programa de virtualizacin con el que es posible instalar sistemas
operativos adicionales, conocidos como sistemas invitados, dentro de otro sistema operativo

anfitrin, cada uno con su propio ambiente virtual. En nuestro caso, el sistema operativo anfitrin
ser Ubuntu y los invitados los sistemas que vayamos instalando o aadiendo a VirtualBox.
Para instalarlo en Ubuntu tenemos dos opciones: usando el paquete .deb o desde los repositorios.
Lo ms recomendable es la segunda opcin ya que as se actualizar automticamente con las
nuevas versiones que vayan apareciendo.

Desde los repositorios:


Para instalar VirtualBox desde los repositorios, ejecutamos los siguientes comandos en un terminal:
1) Aadimos el repositorio de VirtualBox al fichero /etc/apt/sources.list:

deb http://download.virtualbox.org/virtualbox/debian lucid contrib


2) Descargamos la clave pblica para apt-secure:

wget http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
3) Aadimos la clave del repositorio:

apt-key add oracle_vbox.asc


4) Actualizamos la informacin de los repositorios:

apt-get update
5) Instalamos VirtualBox:

apt-get install virtualbox-4.0


6) Agregamos a nuestro usuario al grupo vboxusers, que se crea automticamente al instalar

VirtualBox:

Mquinas Virtuales

Linux

sudo gpasswd -a nomUsuario vboxusers

Usando el paquete .deb:


Descargamos el paquete .deb correspondiente, a nuestra versin de Ubuntu y nuestra arquitectura
(32 64 bits) de la pgina de VirtualBox.

http://download.virtualbox.org/virtualbox/debian/pool/contrib/v/virtualbox-4.0
Una vez descargado, hacemos doble clic sobre el paquete para instalarlo.

2. Realiza la instalacin de VirtualBox en Ubuntu, a ser posible usando


los repositorios.

Creacin de mquinas
Una vez instalado podemos ejecutar VirtualBox desde el men Aplicaciones > Herramientas del
sistema > Oracle VM VirtualBox, es conveniente crearle un lanzador en el escritorio o en alguna
barra.
La primera vez que lo ejecutemos nos leemos y aceptamos la licencia.
En el men Ayuda > Acerca de comprobamos la versin de VirtualBox que tenemos instalada.
Aunque

en

ingls,

puedes

consultar

el

manual

de

VirtualBox

en

http://www.virtualbox.org/manual/UserManual.html

1.- Indicamos que vamos a definir una nueva mquina virtual, bien con el botn como indica la
imagen o en el men "mquina ->Nueva".

Mquinas Virtuales

Linux

En la bienvenida del asistente pulsamos siguiente.

2.- Solicita el nombre que vamos a poner a la mquina y el sistema operativo que tenemos
pensado instalarle. Pero esto es a ttulo identificativo, no implica ninguna configuracin en la
mquina.

Mquinas Virtuales

Linux

3.- En este paso debemos decidir que memoria RAM fsica asignamos a la mquina virtual,
sabiendo que el sistema anfitrin no dispondr de ella. Adems debemos de pensar si vamos a
correr varias mquinas virtuales al mismo tiempo, ya que cada una requerir su parte de RAM.

4.- Eleccin del tipo de disco duro virtual (HDV).


Si optamos por usar uno existente y est previamente incluido en el repositorio de HDV, podemos
seleccionarlos mediante la lista desplegable; si no, deberemos pinchar en el icono de la carpeta para
acceder al Administrador de medios virtuales y aadirlo.

Mquinas Virtuales

Linux

5.-Si optamos por crear el HDV, se abrir el asistente de creacin de discos virtuales. Tras la
pantalla de bienvenida, solicita que indiquemos el tipo de almacenamiento.

6.-Debemos suministrar un nombre al disco (al fin y al cabo el HDV se almacena en un fichero),
por defecto toma el nombre que dimos a la mquina, podemos tambin seleccionar el lugar donde
se almacenar el fichero.
En la parte inferior definimos el tamao que va a tener, debemos consultar cuales son los requisitos
mnimos aceptables para el SO que tenemos previsto instalar, as como del uso que le vamos a dar.

Mquinas Virtuales

Linux

7.-Despus de mostrarnos una serie de resmenes, crea la mquina virtual con una configuracin
bsica, que podemos afinar posteriormente.

3. Crea una mquina virtual para Windows XP, valorando los recursos que le
asignas (consultar previamente los requisitos mnimos).
4. Ver todas las posibilidades que nos ofrece la opcin de Mquina ->
Configuracin.

Men Archivo de VirtualBox


Preferencias...

Establecer la ubicacin de los ficheros que almacenan las mquinas virtuales.


Establecer la tecla host (por defecto la tecla Ctrl de la derecha del teclado).
Configurar las actualizaciones automticas.
El idioma.
Gestionar las tarjetas de red (inicialmente, slo tendremos la tarjeta de red virtual que ha creado
vboxnet0.

Mquinas Virtuales

Linux

Administrador de medios virtuales...


Desde esta opcin podemos gestionar los distintos medios de almacenamiento virtuales.
En la pestaa "Discos duros" nos muestra la informacin sobre los distintos discos virtuales (HDV),
generados por VirtualBox (extensin .vdi) o importados desde otras plataformas (normalmente,
extensin .vdmk).
Los HDV se crean normalmente en el momento de la creacin de la mquina pero desde aqu
podemos crear (botn Nuevo) nuevos discos o agregar HDVs guardados como copia de seguridad.
Los HDV pueden ser de almacenamiento:

Dinmico, crecer segn uso hasta el mximo indicado.

Tamao fijo: ocupan inicialmente el tamao asignado, tienen mejor rendimiento.

Los HDV pueden ser de distintos tipos:


Normal (opcin por defecto): No hay restricciones sobre la forma en que el sistema husped lee
y escribe en l. Cuando se hace una instantnea de la mquina virtual se guarda toda la
informacin del HDV y cuando se restaura la instantnea su estado ser totalmente
"reseteado". Slo se pueden acceder desde una mquina simultneamente.
WriteThrough: Es una variante del tipo anterior. Son accesibles por una sola mquina. No les
afecta en absoluto las instantneas. Su estado no se salva cuando se saca una instantnea y
por lo tanto no se machaca su informacin al restaurar la instantnea (aconsejable para datos).
Compartibles (shareables): se comportan como WriteThrough, pero son de tamao fijo y
accesible por mltiples mquinas virtuales a la vez.
Inmutables (congelados): cada vez que apagas la mquina se restaura como al principio. Son
accesibles por varias mquinas. Restaura al estado original o a la ltima instantnea.
Lo usual es que el S.O. est en un HDV normal o inmutable, que un disco de datos sea
WriteThrough y otro Shareable.

Tipo

Mltiples accesos

Restaurable por

Tamao dinmico

simultneos

instantnea

Normal

No

WriteThrough

No

No

Shareable

No

No

Inmutable

Se puede cambiar de un tipo a otro a travs de lnea de comandos:

Mquinas Virtuales

Linux

vboxmanage modifyhd
http://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi
5. Dnde ha colocado VirtualBox el comando vboxmanage dentro de Ubuntu?
6. Consulta el formato en la pgina de ayuda de VirtualBox.

CDs, DVDs (y disquetes)


VirtualBox emula la unidad.
Podemos indicar respecto a su contenido:
o

Est vaca.

Que tome el contenido de la unidad fsica de la mquina anfitriona.

Que tome el contenido de una imagen como si fuese un soporte real.

En este ltimo caso, el primer paso es aadir al repositorio "Imgenes de CD/DVD" dicha imagen.
Pulsando sobre Agregar nos aparecer la ventana para seleccionar la ubicacin e imagen
correspondiente. Admite imgenes .ISO, .IMG, etc., pero no .NRG (por defecto .ISO, al marcar que
muestre "todos las archivos (*)", no nos mostrar las nuevas imgenes hasta que no refresquemos
la carpeta.

Exportar e importar

Exportar servicio virtualizado: exporta el HDV y los datos de la mquina. Genera tres ficheros:
.ovf, que es un estndar abierto para empaquetar y distribuir servicios virtualizados entre distintas
plataformas; .vmdk, que es el estndar de compactacin dinmica de HDVs de VMWare y .mf que
es el archivo de manifiesto, tambin tenemos la posibilidad de que todo lo empaquete en un solo
fichero .ova.

Importar servicio virtualizado: permite importar a VirtualBox mquinas previamente exportadas.


(Lo desarrollamos y practicamos ms adelante).

Mquinas Virtuales

Linux

10

Instalacin del SO invitado


1.- Como medio de instalacin se puede usar el CD o una imagen del mismo.
Para usar una iso, nos vamos a "Configuracin -> Almacenamiento", seleccionamos el CD, que en
principio est vaco y en la parte derecha pulsamos sobre el icono del CD, y nos aparecen las dos
posibilidades.

2.- Ahora seleccionamos la imagen iso, ser como si un CD de dicha imagen estuviese introducido
en la unidad.

3.- De vuelta en la pantalla principal de VB, comprobamos que se ha modificado el


almacenamiento. Ya podemos iniciar la mquina, y como en el orden de arranque tiene primero el
CD/DVD-ROM, debe comenzar la instalacin del SO.

Mquinas Virtuales

Linux

11

Mquinas Virtuales

Linux

12

Configuracin de una mquina


Abrimos la ventana de configuracin (Men Mquina -> Configuracin)

General
En la ficha "Bsico" podemos cambiar la denominacin de la mquina. Y en la ficha Avanzado":
dnde vamos a ubicar las instantneas, si deseamos que el traspaso de portapapeles funcione
bidireccionalmente, si deseamos que los cambios en los medios de almacenamiento se guarden para
la prxima ejecucin o no, y como queremos ver la mquina en pantalla.

Sistema
En la pestaa "Placa base" podemos modificar la cantidad de memoria que asignamos al crear la
mquina.
En "Orden de arranque," al igual que si fuese la BIOS de una mquina fsica, indicaremos el orden
en que deber buscar el sistema operativo de arranque. Como no vamos a tener imgenes de
disquete, lo desmarcamos y bajamos.
En "Caractersticas extendidas" nos encontramos las siguientes opciones:
o

Habilitar IO APIC: (Advanced Programmable Interrupt Controller) es un controlador de


interrupciones diseado para el multiproceso, concretamente para poder incorporar
mltiples microprocesadores a la placa madre. Habr que indicar esta opcin si asignamos
ms de una CPU a la mquina.

Habilitar EFI: (Extensible Firmware Interface) es una especificacin desarrollada por Intel
para reemplazar la interfaz del estndar IBM PC BIOS, interactuando como puente entre el
sistema operativo y el firmware base. Es necesaria para instalar mquinas MacOS.

Reloj hardware en tiempo UTC: normalmente el guest usar el reloj del host. Pero podemos
indicarle que use el tiempo universal coordinado dado por los relojes atmicos, este es el
sistema de tiempo utilizado por muchos estndares de Internet y la World Wide Web, de
forma que el guest tendr su propio tiempo, independiente del anfitrin.

Habilitar dispositivo apuntador absoluto: permitir incorporar dispositivos de entrada como


las tabletas grficas. En caso contrario, slo emular un ratn PS/2.

En la pestaa Procesador, si tenemos un host con ms de una CPU, podemos indicarle cuantas CPUs
se destinarn a la mquina virtual. En caso de marcar ms de una CPU, deberemos habilitar
tambin la opcin "Habilitar IO APIC".

Pantalla
Aqu indicarnos la cantidad de memoria dedicada a la gestin de vdeo, el nmero de monitores y si
deseamos usar aceleracin grfica (siempre que la soporte la mquina host).

Mquinas Virtuales

Linux

13

Tambin podemos especificar los parmetros para poder hacer acceso remoto a la mquina cuando
est en funcionamiento.

Audio
Aqu se indica el controlador de audio del host y que controlador emular el guest, pudiendo
escoger entre AC97 o Soundblaster.
Ya que no tenemos altavoces, lo desactivamos.

Puertos Serie
Nos permite activar el acceso a los puertos serie de la mquina host, asignando los recursos de IRQ
y memoria necesarios. Slo debemos activarlos si vamos a usar algn dispositivo con conexin por
puerto serie.

USB
En esta pestaa gestionaremos los recursos USB para permitir que la mquina virtual acceda a los
dispositivos USB seleccionados mediante el "Filtro de Dispositivos".
Habilitaremos el controlador USB y USB 2.0.
Pinchando en el icono de la derecha con el + verde, nos mostrar la lista de dispositivos USB que en
ese momento estn conectados al anfitrin, permitindonos seleccionar aquellos que queremos que
sean accesibles desde el guest.
Si queremos que reconozca cualquier penDrive es mejor agregar un filtro vaco, como se muestra en
la image.

La prxima vez que arranquemos esa mquina virtual, tendremos acceso a la memoria USB
seleccionada.
En el men Dispositivos -> Dispositivos USB, podemos activarlos o desactivarlos, tambin en el
icono que representa un conector USB podemos gestionarlos.

Mquinas Virtuales

Linux

14

NOTA: La mquina virtual se hace duea absoluta del USB por lo que mientras se est ejecutando
no podremos acceder desde el host a dicho dispositivo.

Red
Desde esta opcin podemos configurar hasta cuatro adaptadores de red. Las redes en las que se
encuentran las mquinas virtuales son privadas e independientes de las del anfitrin. Por defecto,
viene en modo NAT.

Conectado a: configura el modo en que el adaptador de la mquina husped se conecta a una


red.

Nombre:

selecciona el adaptador de red si se ha seleccionado el tipo Adaptador puente o

Adaptador Soloanfitrin.

Tipo de adaptador: selecciona el tipo de adaptador virtual que usar la mquina guest.
Direccin Mac: indica la MAC virtual del adaptador anterior.
Modos de funcionamiento de red que se pueden establecer
 No conectado: en este modo, la tarjeta virtual existe en el husped, pero est configurada
como si no tuviera ningn cable conectado.
 NAT: (Network Address Translation) es el modo por defecto de la tarjeta de red virtual. Este
modo permite al husped navegar por Internet, descargar ficheros y leer el correo
electrnico sin necesidad de configurar el sistema operativo husped. En este modo, la
mquina virtual puede conectarse a otras redes mediante un router virtual proporcionado
por VirtualBox. Dicho router sirve direcciones DHCP del tipo 10.0.x.0/24 donde x=2 para la
primera tarjeta de red, x=3 para la segunda tarjeta de red, etc. En el caso de una nica
tarjeta de red, el router tiene como puerta de enlace la direccin 10.0.2.2, como servidor
DNS la direccin 10.0.2.3 y la primera direccin DHCP asignada es la 10.0.2.15. Como
desventaja, en este modo, los comandos que envan paquetes ICMP como ping o traceroute
pueden no funcionar correctamente y, en principio, la mquina virtual no es accesible desde
Internet. En resumen:

Se tiene conexin a Internet.


Puedes conectarte a otros equipos de tu red Interna.
Los equipos de la red no tienen acceso a ti, incluido el equipo host de la VM.
Ping no trabaja sobre NAT.
Ciertas limitaciones cuando se est usando comparticin de archivos sobre Windows.
La mquina guest est protegida de accesos indeseados.
No se puede correr un servidor, a menos que se haga un port forwarding (reenvo a puerto)
Mquinas Virtuales

Linux

15

 Adaptador puente (Bridge): en este modo, se crea una tarjeta de red virtual en el anfitrin
que intercepta el trfico de red y puede inyectar paquetes en la red, de manera que el
husped se configura como si estuviera conectado por un cable a la tarjeta de red virtual del
anfitrin.

Nuestra VM es un equipo ms de la red local.


Perfecto para correr servidores en mquinas guest.
Se tiene conexin "directa" con todos los equipos.
Todos los equipos tienen conexin directa contigo.
 Red Interna: en este modo, se crea una red virtual visible entre las mquinas virtuales, pero
invisible al anfitrin o a mquinas externas a la red.

Cuando se quiere que tengan conexin entre s las mquinas virtuales de un mismo anfitrin.
Ni el equipo host, ni la red interna de la empresa ni el mundo exterior tienen conexin con la VM.
Ya que el trfico no pasa por la mquina host como ocurre en el modo bridge, en el cual se
podra poner un sniffer y ver todo el trfico, es ms seguro.

Es ms eficiente que el modo bridge, ya que Virtualbox puede transmitir los datos sin tener que
pasar estos por la pila de red del sistema host.
 Adaptador SloAnfitrin: en este modo se crea una tarjeta de red virtual en el anfitrin que
puede conectarse con las mquinas virtuales sin necesitar que el anfitrin tenga una tarjeta
de red.

No se necesita fsicamente una interfaz de red.


Usa una interfaz de red virtual similar a una interfaz loopback, la cual es creada en el host.
Las mquinas virtuales pueden hablar entre ellas y con el host.
No pueden hablar con el resto del mundo, al igual que en Red Interna, ya que no existe una
interfaz de red fsica presente.

Se crea en el equipo Host una nueva interfaz de red llamada por defecto vboxnet0 con una ip
asignada (por defecto 192.168.56.1), que ser la IP con la que desde los guest podamos acceder al
equipo host.

Las IPs en los equipos guest pueden ser asignadas:


Por el DHCP de Virtualbox.
Estticamente siempre que estn dentro de la subred.

Mquinas Virtuales

Linux

16

Instalar Guest Additions


VirtualBox Guest Additions es un paquete especial de software que forma parte de VirtualBox y
que debe instalarse en cada una de las mquinas virtuales, para mejorar el rendimiento y aadir
nuevas funciones. Consisten en una serie de controladores (drivers) y aplicaciones para el sistema
virtualizado que lo optimizan para un mejor rendimiento y usabilidad.
Las Guest Additions nos ofrecen las siguientes caractersticas:
Integracin del cursor del ratn. Esto implica que podemos mover el ratn libremente entre la
mquina virtual y la real sin necesidad de pulsar ninguna tecla para capturarlo/liberarlo. Hace que
sea mucho ms cmodo usar la mquina virtual.
Mejor soporte de vdeo. En principio el controlador de vdeo virtual que utiliza VirtualBox para
cualquier sistema operativo virtualizado proporciona solamente funciones bsicas. Sin embargo, el

driver de vdeo que se instala con las Guest Additions nos ofrece no slo una buena aceleracin de
vdeo, sino tambin resoluciones ms altas.
Sincronizacin horaria. Gracias a las Guest Additions, VirtualBox se asegura de que la hora del
sistema virtualizado est mejor sincronizada.
Carpetas compartidas. Una de las caractersticas ms importantes es la de "las carpetas
compartidas", porque es una forma fcil de poder intercambiar archivos entre el sistema real y el
virtualizado.
Ventanas sin costuras. Esta caracterstica consiste en mostrar una ventana del sistema
virtualizado como si formara parte de nuestro sistema real.
Portapapeles compartido. Al igual que las carpetas compartidas, poder compartir el portapapeles
es de gran utilidad. Gracias a esta caracterstica podemos copiar y pegar independientemente de
que estemos en la mquina virtual o real.

Es necesario instalar las Guest Additions en cada una de las mquinas virtuales, para poder
aprovecharlas mejor y para que sean mucho ms cmodas de usar.

Mquinas Virtuales

Linux

17

Con

la

arrancada,
men
tenemos

mquina
dentro

del

"Dispositivos"
la

opcin

correspondiente.

La

iso

encuentra

en:

/usr/share/virtualbox/VBoxGuestAdditions.iso
Y en la pgina de Oracle:
http://download.virtualbox.org/virtualbox/4.0.4/Oracle_VM_VirtualBox_Extension_Pack-4.0.470112.vbox-extpack

Pasamos de todas
las

advertencias

de

seguridad

(Windows se fa
slo de Microsoft
Corporation).

Mquinas Virtuales

Linux

18

Ya disponemos de integracin del ratn

Exportar/Importar
Exportar/Importar
Vamos a realizar el proceso de exportacin de la MV con el SO recin instalado

Usamos el formato "ova", que nos empaqueta todo en un solo fichero.

Mquinas Virtuales

Linux

19

En la pantalla anterior no hay mucho que cambiar, podemos rellenar los campos vacos.

La creacin, en un equipo de medianas prestaciones, es bastante rpida, unos pocos minutos.

La importacin la podemos realizar en cualquier Linux que disponga de VirtualBox, y nos crear una
mquina igual, tanto en hardware como en software, as que os las podis llevar y traer.
Para probarlo, la vamos a exportar en el mismo anfitrin, realizando de esta forma un duplicado.

Seleccionamos la mquina exportada, que por ahora hay solo una.

Mquinas Virtuales

Linux

20

Nos informa de su configuracin, por si queremos cambiarle algo, slo le he cambiado el nombre,
indicando que es importada.

Y ahora veremos que tenemos dos mquinas virtuales.

Mquinas Virtuales

Linux

21

S-ar putea să vă placă și