lunes, 21 de diciembre de 2009

Herramienta de Backups Windows

Cobian Backups 9

viernes, 18 de diciembre de 2009

Ntop: otra herramienta para monitorizar la red

NTOP (Network TOP) es una herramienta que permite monitorizar en tiempo real los usuarios y aplicaciones que están consumiendo recursos de red en un instante concreto y además es capaz de ayudarnos a la hora de detectar malas configuraciones de algún equipo (esto salta a la vista porque al lado del host sale un banderín amarillo o rojo, dependiendo si es un error leve o grave), o a nivel de servicio. Posee un microservidor web que permite que cualquier usuario, que sepa la clave, pueda ver la salida NTOP de forma remota con cualquier navegador, y además es GNU.
Instalación y configuración

Primero debemos instalar la aplicación

$ sudo aptitude install ntop

Establecemos una contraseña para el usuario admin

$ sudo ntop --set-admin-password

Comprobamos que tenemos bien configurada la interfaz (por defecto eth0) dentro del archivo init.cfg

$ sudo gedit /var/lib/ntop/init.cfg

Iniciamos el servicio

$ sudo /etc/init.d/ntop start

Para hacer via web tendremos que acceder a

http://localhost:3000

Mapa de tráfico local

Para poder ver el mapa grafico tenemos que tener instalado el paquete graphviz y gsfonts-x11

$ sudo aptitude install graphviz gsfonts-x11

miércoles, 2 de diciembre de 2009

Instalar OpenVPN en Ubuntu

Qué es una VPN

Una red privada virtual (virtual private network) es una red de comunicaciones canalizada a través de otra red y dedicada a un uso específico. Para nuestro caso esa otra red es Internet. Establecer una VPN que use una red pública como Internet permite eliminar los costos de contratar un enlace dedicado.

Pero Internet no es una red segura así que una VPN debe utilizar autenticación y encriptar el contenido que viaja a través de ella para evitar el uso de packet sniffers (software o hardware que puede interceptar el tráfico en una red insegura).

Utilizar una VPS puede sonar muy esotérico para muchos pero con el incremento de conexiones WiFi y hotspots inseguros en todo el mundo pronto será una necesidad para todos los que no quieren que su información viaje desnuda por la Red.

En el siguiente artículo veremos cómo instalar OpenVPN, una aplicación de código abierto para VPN, en Ubuntu 7.10. Son los pasos que seguí para conectar mis computadoras en Lima con uno de mis servidores en Nueva York y navegar la Red usando su IP. Ahora todos los sitios web y servicios que visito usando OpenVPN detectan mi conexión como si fuera hecha desde los Estados Unidos y todos mis datos viajan seguros.

Y aún con más de una decada trabajando con muchos tipos de redes no pretendo ser un experto en TCP/IP y seguridad o que este sea un tratado sobre el tema así que no puedo ofrecer asistencia técnica sobre el tema pero estoy que tendremos a varios especialistas que podrán aportar en los comentarios.
Instalar OpenVPN en Ubuntu paso a paso

Vale, aquí los pasos que seguí para instalar OpenVPN en un cliente y un servidor, ambos corriendo con Ubuntu 7.10 aunque el procedimiento debe ser muy parecido en otras distribuciones. Gracias a Javier Albarracín, Bruno Kamiche y César Villegas por los tips.

Primero definamos algunos puntos:

* Servidor: es el equipo que aceptará las conexiones de los clientes a través de la VPN. En mi ejemplo usará el IP x.y.z.w (reemplaza por el IP público de tu servidor) y tiene como nombre servo.
* Cliente: el equipo que se conectará al servidor a través de la VPN. Lo llamaremos cliento.
* Red privada: la red que definiremos en nuestra VPN, usaremos 10.8.0.0 por lo que tendremos IP's como 10.8.0.1, 10.8.0.2, etc.
* Todos los comandos deben ser ejecutados por root o través de sudo.
* Los comandos que debes escribir están en negrita.
* Para comentar una línea en openvpn.conf usa # al inicio de la línea.

Lo primero es instalar OpenVPN:

sudo apt-get install openvpn

OpenVPN se instala tanto en el cliente como en el servidor, el archivo de configuración que usaremos al iniciar OpenVPN más adelante definirá el rol de cada equipo.

Ahora comenta todas las líneas en /etc/default/openvpn y añade:

AUTOSTART="openvpn"

Esto le dice a OpenVPN cuál archivo de configuración predeterminado utilizará al iniciar el servicio. Los archivos de configuración se guardan en /etc/openvpn y usan la extensión .conf por lo que la instrucción de arriba le dice a OpenVPN que use /etc/openvpn/openvpn.conf, es un archivo que aún no existe y que crearemos en un momento.

Ahora el servicio OpenVPN puede ser iniciado, detenido o reiniciado en la forma usual, veamos:

Iniciar OpenVPN:

/etc/init.d/openvpn start

Detener OpenVPN:
/etc/init.d/openvpn stop

Reiniciar OpenVPN:
/etc/init.d/openvpn restart

Cada vez que se cambian parámetros en /etc/openvpn/openvpn.conf se debe reiniciar OpenVPN.
Crear claves y certificados

Pero antes de continuar crearemos los certificados y claves de seguridad. Todo esto se hace en el servidor como root. Ejecuta:

cd /etc/openvpn/

Y ahora copia el directorio easy-rsa a /etc/openvpn:

cp -r /usr/share/doc/openvpn/examples/easy-rsa/ .

Recuerda que seguimos en el directorio /etc/openvpn. Ahora editaré el archivo vars con nuestro editor favorito (reemplaza vi con el que tú prefieras):

vi easy-rsa/vars

Comenta esta línea:

#export D=pwd

Añade esta:
export D=/etc/openvpn/easy-rsa

Y modifica los siguientes parámetros:

export KEY_COUNTRY=PE
export KEY_PROVINCE=LI
export KEY_CITY=Lima
export KEY_ORG="Nombre-OpenVPN"
export KEY_EMAIL="tu-nombre@example.com"

Graba y cierra el archivo.

Ahora ejecuta:

. ./vars

Importante, eso es un punto, un espacio y luego otro punto y seguido por /vars. Muchos lo olvidan.

A continuación:
./clean-all

El siguiente comando crea la autoridad de certificados (CA) usando los parámetros arriba definidos, solo deberás añadir Common Name, yo usé OpenVPN-CA. Este paso usa OpenSSL y si no lo tenías en tu servidor deberás instalarlo primero con:

sudo apt-get install openssl

Ahora sí:

./build-ca

Ahora creamos las claves, primero para el servidor:

./build-key-server server

Esta parte es muy importante. Cuando build-key-server te solicite Common Name escribe server, el mismo parámetro que le diste al comando.

Hay dos preguntas más: Sign the certificate? [y/n] y 1 out of 1 certificate requests certified, commit? [y/n], responde afirmativamente en ambos casos.

Y ahora la clave para el cliente:

./build-key client1

Recuerda usar client1 como Common Name, al igual que el parámetro que usaste para build-key.

Si vas a tener más clientes puedes repetir este último paso para client2, client3, etc.

Ahora genera parámetros Diffie Hellman:

./build-dh

Ahora debes tener un nuevo directorio con claves y certificados en tu servidor: /etc/openvpn/easy-rsa/keys. Para configurar tu primer cliente copia los siguientes archivos de servo a cliento:

ca.crt
client1.crt
client1.key

Lo ideal es usar un canal seguro, yo prefiero scp con autenticación RSA (tema para otro artículo), ejecutando algo como esto en el cliente:

scp alexis@servo:ca.crt .
scp alexis@servo:client1.crt .
scp alexis@servo:client1.key .

Estos comandos asumen que copiaste los archivos al directorio personal del usuario alexis en el servidor y les asignaste permisos de lectura. Luego debes moverlos a /etc/openvpn en el cliente.
Los archivos de configuración: openvpn.conf

Aún en el cliente crea un archivo llamado openvpn.conf en /etc/openvpn y escribe lo siguiente en él:

dev tun
client
proto tcp
remote x.y.z.w 1194
resolv-retry infinite
nobind
user nobody
group nogroup

# Try to preserve some state across restarts.
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo

# Set log file verbosity.
verb 3

No olvides reemplazar x.y.z.w por el IP público de tu servidor.

Ahora en el servidor crea un archivo openvpn.conf en /etc/openvpn y escribe lo siguiente en él:

dev tun
proto tcp
port 1194

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem

user nobody
group nogroup
server 10.8.0.0 255.255.255.0

persist-key
persist-tun

#status openvpn-status.log
#verb 3
client-to-client

push "redirect-gateway def1"

#log-append /var/log/openvpn
comp-lzo

En mi primeras pruebas tuve conexiones muy lentas y me ayudó desactivar la compresión en cliente y servidor comentando esta línea:

#comp-lzo

Y finalmente configura IP forwarding e iptables para NAT en el servidor:

echo 1 > /proc/sys/net/ipv4/ip_forward

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Puedes verificar que la regla fue escrita correctamente con un listado:
sudo iptables -L -t nat

Si tienes un Firewall deberás desactivarlo para probar y luego crear reglas que permitan que el tráfico de tu VPN pase.

Si quieres remover todas las reglas si cometiste un error con:
sudo iptables -F -t nat

Reiniciar OpenVPN en ambos equipos, cliente y servidor, y deberías estar listo.

Si ahora ejecutas ifconfig y route -n deberías ver una nueva interfaz, tun0, en cliente y servidor.

Puedes confirmar que hay conexíon haciendo ping entre ambos usando los IP de las interfaces tun0, por ejemplo:

ping 10.8.0.1

jueves, 26 de noviembre de 2009

Proteger el ancho de banda-SQUID

Cada usuario tiene tendencia a utilizar el 100% del ancho de banda disponible, no sé si esto es una ley escrita, si no debería estarlo.

Pues ahora que tenemos instalada la red y el acceso mediante proxy cache vamos a intentar regular el consumo de ancho de banda. Resulta interesante que nadie pueda cometer abusos y consumir todos los recursos de la red a costa del resto de usuarios. La regulación del ancho de banda se puede llevar a cabo utilizando distintos criterios: la máquina origen, la dirección o página destino o el tipo de transferencia.

Por un lado podemos intentar discriminar el origen de los datos, resumiendo que los jefe dispongan de mejor conexión. Resumiendo, vamos a asignar distintos anchos de banda a distintos rangos de direcciones IP.

También se nos puede dar el caso de que haya consultas masivas a unos determinados dominios o páginas y puede ser práctico delimitar el ancho de banda asignado a ese dominio.

En general el volumen de tráfico que genera el acceso a páginas web en html es bastante bajo, lo que realmente consume un volumen apreciable del ancho de banda son ficheros de sonido e imagen y una medida posible podría ser limitar de alguna forma la transferencia de estos tipos de ficheros.

Otra posibilidad sería que limitar el ancho de banda sólo para descargas de ficheros grandes y dejar un mayor ancho de banda a ficheros pequeños para que la navegación por páginas html sea más rápida.

Mediante Squid podemos establecer límites al ancho de banda mediante una de sus características de configuración denominada "delay pools". Establecemos una definición de regulación de ancho de banda, establecemos una ACL y asociamos la regulación a la ACL.


Parámetros de configuración

Cada una de las reglas de regulación está definida por un número entero que vamos a utilizar para indentificarlo en los distintos parámetros.

delay_pools
Esta parámetro se utiliza para definir cuantas reglas de regulación vamos a definir.

delay_class
Este parámetro toma dos argumentos el primero el identificador de la regla y en segundo lugar el tipo (clase) de la regla.

El primero argumento es un número entero para identificar la regla.

El segundo argumento puede ser 1,2 ó 3 para indicar uno de estos tipos de reglas.

delay_parameters
Establece los valores de la regla. Los argumentos de este parámetro son parejas de valores velocidad/tamaño, donde velociad es un número entero que indica una velocidad en bytes por segundo (B/s), y tamaño indica el número de bytes de reserva que se transmiten antes de aplicar la velocidad de transferencia.

Es decir cada pareja especifica el número de bytes de margen que se permiten antes de se haga efectiva la restricción de velocidad.

Los valores no tienen por qué ser múltiplos de 2.

Tipos de reglas
Hay tres clases de regulaciones, con características diferentes.

Clase 1
La clase uno consiste en un canal individual compartido por todos los usuarios. Es la clase más simple, todas las tasas de descarga van juntas y lo único que tenemos que especificar es la velocidad, en bytes por segundo, y el número de bytes a partir de los cuales tiene que retardar la descarga.

Ejemplo: Supongamos que queremos que la velocidad de descarga de los ficheros .wmv que ocupen más de 1Mb sea de 8k/s.

delay_pools 1
delay_class 1 1
delay_parameters 1 8192/1048576
acl ficheros_wmv url_regex \.wmv$
delay_access 1 allow ficheros_wmv

Cuando en esa red, algún equipo haya bajado más de 1Mb correspondiente a ficheros .wmv entonces la descarga total de ficheros .wmv se hará a una velocidad de 8k/s. Si quisiéramos establecer este límite para los hosts de una red deberíamos elegir la clase 2.

En el anterior ejemplo hemos supuesto que hay un único canal de regulación en el parámetro delay_pools. Ahora vamos a ver un ejemplo con dos canales de clase 1. Queremos que el tráfico de la red local no tenga límite de transferencia, mientras que para las conexiones a internet vamos a utilizar un total de 256Kbits/s.

delay_pools 2
delay_class 1 1
delay_parameters 1 -1/-1
acl red_local src 192.168.0.0/24
delay_access 1 allow red_local

delay_class 2 1
delay_parameters 2 32768/1024
acl resto all src 0.0.0.0/0.0.0.0
delay_access 2 allow resto

La tasa de transferencia viene especificada en bytes por segundo, por ejemplo convirtiendo a otras unidades uno de los parámetros de delay_parameters:

32768 B/s = 32 KB/s = 32 x 8 Kb/s (bits) = 256 Kb/s = 256 Kbits/s

El valor 1024 es un número de bytes lo suficientemente pequeño para que se alcance pronto y se estabilice el ancho de banda.

El valor -1 indica ilimitado.

Las regulaciones de clase 1 están diseñadas para evitar que la acl correspondiente consuma todo el ancho de banda, es decir definen la suma máxima de los anchos de banda de todos los clientes, pero no evita que un cliente pueda consumir ese ancho de banda a costa de otro; todos los clientes comparten un máximo ancho de banda.


Clase 2
La clase dos que consiste en un canal común con 256 canales individuales. Es decir tenemos un canal global y dentro de él otros 256 canales que se aplican a las máquinas de una red de clase C.

Ahora vamos a ver otro ejemplo con dos canales, en este caso ambos de de clase 2. Ahora también que el tráfico de la red local no tenga límite de transferencia, ni global ni por IP, mientras que para las conexiones a internet vamos a utilizar un total de 256Kbits/s y a cada máquina de la red le asigna un máximo de 64kbits/s.

delay_pools 2
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
acl red_local src 192.168.0.0/24
delay_access 1 allow red_local

delay_class 2 2
delay_parameters 2 32768/1024 8192/1024
acl resto all src 0.0.0.0/0.0.0.0
delay_access 2 allow resto

Este ejemplo es muy parecido al anterior de clase 1, sólo tenemos que agregarle una pareja de valores al parámetro "delay_parameters". La primera pareja de este parámetro especifica el ancho de banda global, mientras que la segunda pareja especifica el ancho de banda por host.

Hay que tener en cuenta que los clientes están limitados por el tamaño del canal más pequeño, por lo que no tiene sentido que el canal común tenga un tamaño menor que los canales individuales.


Clase 3
La clase tres que define un canal común que contiene 256 canales de red, 65536 canales individuales. Muy parecida a la clase dos pero par redes de clase B.

Ejemplos de control de ancho de banda

Limitación global del ancho de banda
Tenemos una conexión con internet de 4Mbits y queremos que el ancho de banda dedicado a consulta de páginas web desede las IP comprendidas entre 192.168.5.100 hasta 192.168.5.199 sea de 1Mbits máximo.
1Mb/s = 128kB/s = 131072 B/s
4Mb/s = 512kB/s = 524288 B/s

delay_pools 1
delay_class 1 1
delay_parameters 1 131072/8192
acl lista src 192.168.5.100-192.168.5.199/32
delay_access 1 allow lista

Limitación de ancho de banda por red y host
Tenemos una conexión con internet de 4Mbits y queremos que el ancho de banda dedicado a consulta de páginas web desede las IP comprendidas entre 192.168.5.100 hasta 192.168.5.199 sea de 1Mbits máximo, de forma que cada una de las máquinas no pueda consumir más de 512Kbits/s.

Es como el ejemplo anterior, pero añadiendo restricciones adicionales a cada una de las máquinas, por lo que tendremos que elegir la clase 2:

delay_pools 1
delay_class 1 2
delay_parameters 1 131072/8192 65536/8192
acl lista src 192.168.5.100-192.168.5.199/32
delay_access 1 allow lista

Limitación de ancho de banda por servidor
Queremos limitar el ancho de banda a 4KB/s y que cada máquina consuma a lo sumo 2KB/s para todas las conexiones que se hagan a los servidores de banner cuyo nombre empieza por ad.

delay_pools 1
delay_class 1 2
delay_parameters 1 4096/4096 2048/2048
acl publicidad url_regex http://ad.*
delay_access 1 allow publicidad

Ancho de banda ilimitado para la red local.
Garantizar un ancho de banda ilimitado para los accesos a la red local.

delay_pools 1
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
acl redlocal url_regex -i 192.168
delay_access 1 allow redlocal

Establecer privilegios de acceso.

Establecer privilegios en la red.

delay_pools 3
delay_class 1 1
delay_class 2 1
delay_class 3 1
delay_parameters 1 -1/-1
delay_parameters 2 131072/8192
delay_parameters 3 65536/8192
acl jefes src 192.168.5.1-192.168.5.50/32
acl subjefes src 192.168.5.51-192.168.5.99/32
acl resto src 0/0
delay_access 1 allow jefes
delay_access 2 allow subjefes
delay_access 3 allow resto

Establecer ancho de banda en franja horaria.
acl todos src 0/0
acl laboral time 08:30-16:30
delay_pools 2
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow todos
delay_class 2 2
delay_parameters 2 131072/8192 65536/8192
delay_access 2 allow laboral
delay_access 2 deny !laboral
delay_access 2 allow todos


Configuración de los navagadores clientes
Esta configuración exige que cada navegador esté configurado para utilizar el proxy. Pero claro, por una lado es un engorro tener que configurar uno a uno todos los equipos de la red y por otro, tenemos la posibilidad de que la configuración TCP/IP le da salida a través de una pasarela.

Si a pesar de todo queremos esta configuración, tendremos que decirle al navegador que utilice como proxy el equipo que alberga Squid y el puerto el 3128. El puerto se puede cambiar en el fichero de configuración. Otro puerto que se suele usar para proxy es el 8080, pero ¿para qué cambiarlo?

Proxy Transparente
Como queremos evitar tener que configurar los navegadores cliente y queremos evitar posibles puertas traseras de salida vamos a configurar un proxy transparente.

¿Qué es un proxy transparente? Es un proxy que no necesita ninguna configuración especial en los clientes. Se denomina transparente porque el cliente en realidad no sabe que lo está usando, es transparente para él.

Cómo configurar el proxy transparente, pues en primer lugar tenemos que configurar el cortafuegos para que reenvíe todas las peticiones que se hagan a un puerto 80 hacia el puerto 3128 que utiliza Squid. Es decir, capturamos todas las peticiones que se hagan a un servidor http y se las enviamos a Squid para que él se encarge del resto.

Estas son las reglas de iptables. La primera para redrigir las peticiones al proxy la siguiente para rechazar el resto de los reenvíos.

Si queremos que las páginas web pasen por el proxy con squid que está en 192.168.5.254, pero el resto siga con acceso normal, pondríamos:

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.5.254:3128

Si el equipo con squid está en la misma pasarela entonces podemos poner:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Cuidado, de las opciones anteriores sólo debemos escoger una de ellas.

Si sólo queremos salida para visitar págias web, entonces pondremos:

Primero garantizamos el tráfico DNS:

iptables -A FORWARD -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -m udp --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A FORWARD -p udp -m udp --sport 53 -j ACCEPT

miércoles, 25 de noviembre de 2009

SARG

Puede que en Ubuntu el archivo de configuración se encuentre en

/etc/squid/sarg.conf

Las lineas mas importantes a configurar son:

language English

Configura el idioma que sarg va a mostrar.

access_log /var/log/squid/access.log

Se indica donde sarg va a sacar los registros, en este caso es por defecto donde squid guarda los Log de acceso por Ip, Hora, Web visitada y varios formatos que se pueden configurar.

title “Squid User Access Reports” :

Titulo que mostrará sarg cuando se acceda por la web.

output_dir /var/www/squid-reports

La salida por donde se van a mostrar los registros que Sarg muestra, se debe colocar la Ruta donde esta configurado Apache.

resolve_ip yes o no

Si el registro aparece o no aparece por la IP

exclude_users /etc/squid/sarg.users

No registra los usuario que esten configurados en el archivo correspondiente.

date_format u

Reportes con la configuracion de la hora U america (mes/dia/año)

mail_utility mailx

Los reportes se envian mediante correo, no es recomendable.

weekdays 0-6 : Se indica dias a ver en los registros.( Sunday->0, Saturday->6 )

La linea de Dansguardian se deben dejar comentadas ya que si no se tiene configurada ninguna de estas opciones en el server dara error Sarg.

Las demas lineas hay que dejarlas tal como estan por defecto al igual que las comentadas.

Saludos.

martes, 24 de noviembre de 2009

Brazilfw

Download

Brazilfw

http://www.brazilfw.com.br/forum/viewtopic.php?f=46&t=63972

How to Install and Configure DHCP Server in Ubuntu Server

Install DHCP server in ubuntu

sudo apt-get install dhcp3-server

This will complete the installation.

Configuring DHCP server

If you have two network cards in your ubuntu server you need to select which interface you want to use for DHCP server listening.By default it listens to eth0.

You can change this by editing /etc/default/dhcp3-server file

sudo vi /etc/default/dhcp3-server

Find this line

INTERFACES=”eth0″

Replace with the following line

INTERFACES=”eth1″

Save and exit.This is optional.

Next you need to make a backup copy of /etc/dhcp3/dhcpd.conf file

cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.back

Edit /etc/dhcp3/dhcpd.conf file using the following command

sudo vi /etc/dhcp3/dhcpd.conf

Using address pool method

You need to change the following sections in /etc/dhcp3/dhcpd.conf file

default-lease-time 600;
max-lease-time 7200;

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name “yourdomainname.com”;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.200;
}

save and exit the file

This will result in the DHCP server giving a client an IP address from the range 192.168.1.10-192.168.1.200 . It will lease an IP address for 600 seconds if the client doesn’t ask for a specific time frame. Otherwise the maximum (allowed) lease will be 7200 seconds. The server will also “advise” the client that it should use 255.255.255.0 as its subnet mask, 192.168.1.255 as its broadcast address, 192.168.1.254 as the router/gateway and 192.168.1.1 and 192.168.1.2 as its DNS servers.

Using MAC address method

This method is you can reserver some of the machines or all the machines with fixed ip address.In the following example i am using fixed ip address for server1,server2,printer1 and printer2

default-lease-time 600;
max-lease-time 7200;

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name “yourdomainname.com”;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.200;
}

host server1 {
hardware ethernet 00:1b:63:ef:db:54;
fixed-address 192.168.1.20;
}

host server2 {
hardware ethernet 00:0a:95:b4:d4:b0;
fixed-address 192.168.1.21;
}

host printer1 {
hardware ethernet 00:16:cb:aa:2a:cd;
fixed-address 192.168.1.22;
}

host printer2 {
hardware ethernet 00:0a:95:f5:8f:b3;
fixed-address 192.168.1.23;
}

Now you need to restart dhcp server using the following command

sudo /etc/init.d/dhcp3-server restart

Configure Ubuntu DHCP Client

If you want to configure your ubuntu desktop as DHCP client following this procedure

You need to open /etc/network/interfaces file

sudo vi /etc/network/interfaces

make sure you have the following lines (eth0 is an example)

auto lo eth0
iface eth0 inet dhcp
iface lo inet loopback

Save and exit the file

You need to restart networking services using the following command

sudo /etc/init.d/networking restart

How to find DHCP server IP address

You need to use the following commands

sudo dhclient

or

tail -n 15 /var/lib/dhcp3/dhclient.*.leases

viernes, 20 de noviembre de 2009

Instalar y configurar OpenVPN (servidor – cliente)

http://nekan.net/instalar-y-configurar-openvpn-servidor-cliente

Enlazar 2 redes diferentes a través de Internet utilizando OpenVPN

—Instalación del software tanto en cliente como en servidor:
apt-get install openvpn openssl

—Copiamos ejemplos y ficheros para realizar la configuración:
cp -R /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn/
cd /etc/openvpn/easy-rsa/2.0

— Editamos el fichero “vars” para configurar los siguientes valores:
export KEY_SIZE=1024
export KEY_COUNTRY=”ES”
export KEY_PROVINCE=”BA”
export KEY_CITY=”BARCELONA”
export KEY_ORG=”ORGANIZACION”
export KEY_EMAIL=”muestro@mail.es”


—Activamos la configuración, cargamos variables:
.vars
clean-all

—Creamos la key y el certificado:
build-ca

—Creamos el key para el servidor y para el cliente:
build-key-server
build-key
build-dh

—Si queremos autentificación TLS ejecutamos los siguientes comandos en el path /etc/openvpn/:
openvpn –genkey –secret ta.key

El fichero que nos ha generado debemos de copiarlo en el servidor y en el cliente.

//// Tenemos que tener los siguientes ficheros \\\\

Servidor: ca.crt / “server_common_name”.key / “server_common_name”.crt / ta.key / dh1024.pem
Cliente: ca.crt / “client_common_name”.key / “client_common_name”.crt / ta.key

*Configurando el servidor…

—Copiamos el fichero de ejemplo e configuración y lo descomprimimos:
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
gzip -d /etc/openvpn/server.conf.gz

—Modificamos el fichero de configuración descomprimido para el servidor:
dev tun
proto udp
secret static.key
comp-lzo
port 1194
comp-lzo
ifconfig 10.8.0.1 10.8.0.2
status openvpn-status.log
log openvpn.log

ping 10
verb 3
mute 10
ping-restart 60
ping-timer-rem
persist-tun
persist-key
resolv-retry 86400

—Modificamos el fichero de configuración descomprimido para el cliente:
dev tun
remote IP_SERVIDOR_REMOTO
proto udp
ifconfig 10.8.0.2 10.8.0.1
secret static.key
port 1194
comp-lzo

ping 10
verb 3
mute 10
ping-restart 60
ping-timer-rem
persist-tun
persist-key
resolv-retry 86400

—Arrancamos el servicio tanto en el servidor como en el cliente:
openvpn server.conf
openvpn client.conf

En breve ya podemos estar haciendo pings entre ellos.

miércoles, 11 de noviembre de 2009

Howto SQUID

http://www.linuxzone.es/howtos-manuales/how-to-instalar-squid-el-proxy-cache-de-linux/

pfSense Firewall

pfSense es una distribución basada en FreeBSD, derivada de m0n0wall. Su objetivo es tener un cortafuegos (firewall) fácilmente configurable a través de una interfase web e instalable en cualquier PC, incluyendo los miniPC de una sola tarjeta.

http://www.bellera.cat/josep/pfsense/index_cs.html

Howto

http://www.bellera.cat/josep/pfsense/config_base_cs.html

jueves, 5 de noviembre de 2009

Instalar Apache2 con SSL en Ubuntu 9.04 (Jaunty)

Esta es una guía para ayudar en la instalación de Apache2 con soporte para SSL en un servidor Ubuntu 9.04 (Jaunty). Esta guía asume que para esto ya se tiene instalado un stack LAMP (Linux, Apache, MySQL y PHP) en la máquina donde se desea realizar la instalación. No será necesario contar con el stack completo sin embargo si es necesario al menos contar con Apache2 instalado en el equipo.

Para verificar que efectivamente contamos con todos los requisitos tecleamos en la terminal:

sudo apt-get install apache2 apache2.2-common apache2-utils openssl openssl-blacklist openssl-blacklist-extra


Para configurar un servidor seguro, se utiliza en este caso criptografía de clave pública para crear un par de llaves, una pública y una privada. En la mayoría de los casos, el certificado que se genera localmente en el equipo tiene que ser enviado junto con varios requisitos a una Autoridad Certificadora (CA por sus siglas en inglés). La CA verifica su petición y su identidad, y luego le devuelve un certificado para asegurar el servidor. En este caso como no tenemos ni el dinero ni el tiempo suficiente (:D) tendremos que crear nuestro propio certificado, firmado por nosotros mismos. Sin embargo, es importante recalcar que estos certificados no deberán ser utilizados en ambientes de producción. El problema con este tipo de certificados es que no son aceptados de manera automática por los navegadores, por lo que tendremos que (al menos en FireFox) crear una excepción para el sitio con el cerficado que estamos creando nosotros. Pero para fines de demostrar los pasos será más que suficiente.

Primero: Generamos un CSR (Petición de Firma de Certificado)

Para generar el CSR debemos crear nuestra llave (key):

openssl genrsa -des3 -out server.key 4096

Puede ejecutar su propio servidor sin una clave. Esto es conveniente proque no necesitaría en este caso estar introduciendo la clave cada que requiera iniciar el servidor de https. Pero es demasiado inseguro, no recomendable ya que compromete seriamente la seguridad del sistema. De cualquier manera, es posible elegir ejecutar el servidor seguro sin clave eliminando la opción -des3 con lo que el comando quedaría de la siguiente manera:

openssl rsa -in server.key -out server.key.insegura

Al ejecutar este comando en cualquiera de sus dos formas presentadas anteriormente el sistema nos requerirá varia información que acompañará al certificado, la ubicación de la companía, el nombre de la misma, el nombre de quien firma el certificado y varias cosas mas. Todos estos datos son guardados en el archivo /etc/ssl/openssl.cnf. Si se requieren mas llaves para mas servidores o sitios que se ejecutarán en el mismo equipo se pueden agregar mendiante:

openssl req -new -key server.key -out server.csr

Este certificado (el archivo server.csr en este caso) es el que deberemos enviar a la Autoridad Certificadora (CA).

Una vez que hemos generado nuestro certificado necesitamos instalarlo en el servidor.

Segundo: Crear un Certificado Firmado por nosotros mismos.
Para firmar nuestro certificado de manera local ejecutamos:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

El comando anterior nos va a requerir que introduzcamos la clave de nuestra llave (si optamos por utilizar una clave segura, de otro modo no solicitará esta información), que es la clave que introdujimos al crear nuestra Petición de Firma de Certificado (CSR). Una vez que hemos ingresado la clave correcta, se generará un cerficiado y se almacenará con el nombre server.crt en nuestro servidor.

Tercero: Instalar el Certificado
Para instalar el certificado vamos a copiar los archivos server.crt y server.key a un directorio donde en adelante podremos almacenar todos los certificados de nuestro equipo.

Vamos a crear un directorio ssl dentro del directorio de configuración de apache y enseguida copiamos los archivos generados:

sudo mkdir /etc/apache2/ssl/
sudo cp server.crt /etc/apache2/ssl/
sudo cp server.key /etc/apache2/ssl/

Cuarto: Habilitar el módulo SSL para Apache2
Ejecutamos el siguiente comando:

sudo a2enmod ssl

Quinto: Crear y habilitar el sitio SSL
Vamos a crear un VirtualHost para nuestro sitio:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/www.misitio.com

Luego, editamos el archivo www.misitio.com

sudo gedit /etc/apache2/sites-available/www.misitio.com
Y lo dejamos con el siguiente contenido:


ServerAdmin webmaster@localhost
ServerName www.misitio.com
LogLevel warn
ErrorLog /var/log/apache2/www.misitio.com.error.log
CustomLog /var/log/apache2/www.misitio.com.access.log combined

DocumentRoot /var/www/www.misitio.com/


Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all


SSLEngine On
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown


Por último, habilitamos el sitio que acabamos de crear:


sudo a2ensite www.misitio.com

Sexto: Habilitar Apache2 para que escuche en el puerto 443.
Necesitamos editar el archivo ports.conf:


sudo gedit /etc/apache2/ports.conf

Al abrirlo se ve de la siguiente manera:

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default

NameVirtualHost *:80
Listen 80
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443

Vamos a agregar el NameVirtualHost al puerto de https (443). Así que al terminar deberá quedar de esta manera :

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default

NameVirtualHost *:80
Listen 80
# SSL name based virtual hosts are not yet supported, therefore no
NameVirtualHost *:443
Listen 443

No hay que olvidar editar el archivo /etc/hosts si se esta corriendo de manera local el sitio www.misitio.com y apuntarlo a 127.0.0.1

Ahora reiniciamos el servidor:

sudo /etc/init.d/apache2 restart

Si se ha optado por utilizar una llave con clave, el servidor requerirá que tecleemos la contraseña para poder continuar, en caso contrario no arrancará el servicio.

Séptimo: Acceder al servidor.
Ahora es posible acceder al servidor en la dirección https://www.misitio.com. Si se ha utilizado un certificado que nostros mismos hemos firmado, el navegador nos indicará que ha fallado la conexión segura, es cuestión de ignorar simplemente el mensaje y agregar una excepción de seguridad para nuestro sitio.

miércoles, 28 de octubre de 2009

GUÍA RÁPIDA PARA COMPRIMIR/DESCOMPRIMIR ARCHIVOS

.tar (tar)

Empaquetar tar cvf archivo.tar /archivo/mayo/*

Desempaquetar tar xvf archivo.tar

Ver el contenido (sin extraer) tar tvf archivo.tar
.tar.gz - .tar.z - .tgz (tar con gzip)

Empaquetar y comprimir tar czvf archivo.tar.gz /archivo/mayo/*

Desempaquetar y descomprimir tar xzvf archivo.tar.gz

Ver el contenido (sin extraer) tar tzvf archivo.tar.gz

.gz (gzip)

Comprimir gzip -q archivo

(El archivo lo comprime y lo renombra como "archivo.gz")

Descomprimir gzip -d archivo.gz

(El archivo lo descomprime y lo deja como "archivo"

Nota: gzip solo comprime archivos, no directorios

.bz2 (bzip2)

Comprimir bzip2 archivo

bunzip2 archivo

(El archivo lo comprime y lo renombra como "archivo.bz2")

Descomprimir bzip2 -d archivo.bz2

bunzip2 archivo.bz2

(El archivo lo descomprime y lo deja como "archivo")

Nota: bzip2 solo comprime archivos, no directorios

.tar.bz2 (tar con bzip2)

Comprimir tar -c archivos | bzip2 > archivo.tar.bz2

Descomprimir bzip2 -dc archivo.tar.bz2 | tar -xv

tar jvxf archivo.tar.bz2 (versiones recientes de tar)

Ver contenido bzip2 -dc archivo.tar.bz2 | tar -tv

.zip (zip)

Comprimir zip archivo.zip /mayo/archivos

Descomprimir unzip archivo.zip

Ver contenido unzip -v archivo.zip

.lha (lha)

Comprimir lha archivo.lha /mayo/archivos

Descomprimir lha -x archivo.lha

Ver contenido lha -v archivo.lha

lha -l archivo.lha

.zoo (zoo)

Comprimir zoo -a archivo.zoo /mayo/archivos

Descomprimir zoo -x archivo.zoo

Ver contenido zoo -v archivo.zoo

zoo -L archivo.zoo

.rar (rar)

Comprimir rar -a archivo.rar /mayo/archivos


Descomprimir rar -x archivo.rar

Ver contenido rar -v archivo.rar

rar -l archivo.rar

miércoles, 21 de octubre de 2009

Virtualhost APACHE 2

NameVirtualHost *:80

$ cp default hackit

Edito hackit para que las primeras líneas queden así:


ServerAdmin webmaster@hackit

ServerName hackit

DocumentRoot /var/www/hackit

Options FollowSymLinks
AllowOverride None


$ cd /etc/apache2

El siguiente comando, a2ensite (available2enablesite) crea un enlace en sites-enable al site que le indiquemos (es decir, activa el virtualhost que acabamos de crear)

# a2ensite hackit

Comprobamos:

$ ls -al sites-enabled/

Recargamos apache2:

#/etc/init.d/apache2 force-reload
Listo!

jueves, 15 de octubre de 2009

Ntop: otra herramienta para monitorizar la red

NTOP (Network TOP) es una herramienta que permite monitorizar en tiempo real los usuarios y aplicaciones que están consumiendo recursos de red en un instante concreto y además es capaz de ayudarnos a la hora de detectar malas configuraciones de algún equipo (esto salta a la vista porque al lado del host sale un banderín amarillo o rojo, dependiendo si es un error leve o grave), o a nivel de servicio. Posee un microservidor web que permite que cualquier usuario, que sepa la clave, pueda ver la salida NTOP de forma remota con cualquier navegador, y además es GNU.
Instalación y configuración

Primero debemos instalar la aplicación

$ sudo aptitude install ntop

Establecemos una contraseña para el usuario admin

$ sudo ntop --set-admin-password

Comprobamos que tenemos bien configurada la interfaz (por defecto eth0) dentro del archivo init.cfg

$ sudo gedit /var/lib/ntop/init.cfg

Iniciamos el servicio

$ sudo /etc/init.d/ntop start

Para hacer via web tendremos que acceder a

http://localhost:3000

viernes, 2 de octubre de 2009

OPENVPN CLIENTE UBUNTU DEBIAN

Configurar cliente OpenVPN en UBUNTU DEBIAN

Lo mejor es siempre usar software libre por esto aca explico como configurar en tu equipo la VPN de OpenVPN, bueno lo primero es sencillisimo y es bajar el paquete de openvpn con nuestro super apt-get de la siguiente forma:

root@localhost~#apt-get install openvpn

Bueno con el paquete ya instalado tienes que pedirle a tu administrador de VPN que te entrege los cuatro archivos de configuración que genera el servidor de VPN, que son las llaves de acceso y cuyas extensiones son crt, key y conf (son dos del primero no me falta ninguna), ya con eso haces los siguientes pasos:

root@localhost~#addgroup nobody

Te pasas a tu usuario común y creas una carpeta oculta, así:

user@localhost~$mkdir .openvpn/

Ahora los archivos que te entregaron los copias en esta carpeta excepto el de la extensión conf, este lo copias en /etc/openvpn, ahora verificas que el archivo de configuración este bien, este debe contener los siguiente cuando lo veas:

client
dev tun
proto udp
remote IP_Servidor Puerto_VPN

resolv-retry infinite
nobind

user nobody
group nobody

persist-key
persist-tun
#Ubicacion de las llaves de enciptación
ca /home/$user/.openvpn/ca.crt
cert /home/$user/.openvpn/diego.crt
key /home/$user/.openvpn/diego.key
comp-lzo
verb 4

Bueno para conectarla solo le debes dar el comando

root@localhost~#openvpn llave.conf

Listo verificando eso ya debe funcionar para probar le das el comando route -n y con eso ves las redes a las que puedes acceder o le das ifconfig -a y debes ver una tarjeta de mas con el nombre tun0

miércoles, 30 de septiembre de 2009

Zabbix by repositorios de Debian Lenny

aptitude install build-essentials mysql-server php5 php5-gd snmp libsnmp9-dev snmpd php5-mysql libmysqlclient15-dev
aptitude install zabbix-frontend-php zabbix-server-mysql zabbix-agent


HOWTO

http://www.ecualug.org/2009/02/27/blog/elsanto/como_instalar_y_configurar_zabbix_en_debian

GUIA UBUNTU MYSQL

http://www.guia-ubuntu.org/index.php?title=MySql

Hacer una copia de seguridad de las tablas y bases de datos MySQL

Acceder a MYSQL
----------------------

mysql -h localhost -u root -p
password:

show databases;----muestra las bases de mysql
use nombre_de_la_base;-----usa una base
show tables;------muestra las tablas de la base seleccionada

repair table nombre_de_la_tabla;---repara la tabla



Hacer un backup con Linux

Si estamos en un servidor linux podemos ejecutar el siguiente código en la linea de comandos para realizar un backup

mysqldump --opt -u nombredeusuario -p basededatos tabla1 > archivodebackup

nombredeusuario: es el nombre del usuario que tiene permisos para acceder a la base de datos.
basededatos: el nombre de la base de datos de la que queremos realizar el backup.
tabla1: es un parámetro opcional necesario si queremos realizar el backup de sólo una tabla de la base de datos. Podemos escribir más tablas separadas por espacios en blanco. No es necesario especificar ninguna tabla si queremos hacer un respaldo de toda la base de datos.
archivodebackup: es el nombre del archivo que contendrá el backup de la base de datos (la estructura de las tablas y los datos).

Una vez ejecutado este comando nos pedirá la password del usuario y se creará el archivo de backup en el directorio en el que nos encontramos.
Hacer un backup con Windows

Si queremos realizar una copia de seguridad desde entornos Windows, deberemos utilizar la linea de comandos ("cmd"). Para abrir la linea de comandos en Windows podemos ir al menú Inicio>Ejecutar, escribir cmd y pulsar enter). Se nos abrirá la linea de comandos de Windows. Ahora hemos de situarnos en la carpeta donde tenemos instalados los binarios de MySQL por ejemplo: c:\mysql\bin (esta ruta depende de dónde instalaste MYSQL) y escribimos el mismo comando que en linux:

mysqldump --opt -u nombredeusuario -p basededatos tabla1 > archivodebackup.txt

Comprimir un backup en Linux

Podemos comprimir el archivo resultante de hacer el backup tras ejecutar el comando mysql dump. Por ejemplo:

1. mysqldump --opt -u nombredeusuario --password=clave basededatos > archivodebackup.sql
2. tar -cfv archivodebackup.sql.tar archivodebackup.sql
3. gzip archivodebackup.sql

Backup de una base de datos InnoDB

Para una base de datos transaccional (de tipo InnoDB o BDB) y de gran tamaño, se puede utilizar este comando

mysqldump --opt -q --single-transaction -u nombredeusuario -p basededatos tabla1 > archivodebackup.txt

El parámetro -q es útil para bases de datos de gran tamaño.
Backup con phpMyAdmin

phpMyAdmin es una aplicación para navegar a través de las tablas creadas en la base de datos mysql que te permite realizar muchas operaciones.

Es muy sencillo exportar tablas y bases de datos con esta aplicación. Una vez lo hayas instalado, puedes hacer click en la base de datos de la que quieras una copia de seguridad. En el menú de arriba puedes hacer click sobre EXPORT. Entrarás en una página donde podrás escoger el tipo de archivo en que quieres guardar el backup (txt,pdf,csv,etc) y después si quieres exportar sólamente la estructura de la tabla, sólo los datos o los dos. También hay la posibilidad de comprimir el archivo, útil para grandes bases de datos. Finalmente, presionas sobre el botón EXPORT del formulario y te podrás descargar el creado con todos los datos de tus tablas.



EN SINTESIS EN LINUX
---------------------------


mysqldump --opt -u nombredeusuario --password=clave basededatos > archivodebackup.sql

gzip archivodebackup.sql

viernes, 25 de septiembre de 2009

Instalar el Agente de Zabbix en Windows

Como todo administrador de Windows uno quiere un instalable fácil, con su asistente, la opción de desinstalar en agregar y quitar programas e incluso la posibilidad de instalación desatendida para grandes despliegues.

Ahí va el link donde podemos encontrar el agente con la última versión empaquetada para poder ser instalado con todas estas opciones bajo plataformas Windows.

http://www.suiviperf.com/zabbix/

WEBMIN

Para instalarla en un servidor Debian/Ubuntu:

apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl libmd5-perl

wget http://prdownloads.sourceforge.net/webadmin/webmin_1.450_all.deb

sudo dpkg -i webmin_1.450_all.deb

APACHE Proxy Reverso


ServerName xxxxxxxxxxxx.xxxxx.com
ServerAdmin admin@xxxxxx.com

SSLEngine on
SSLCertificateFile /etc/apache2/certs/xxxxxxxxxx.crt
SSLCertificateKeyFile /etc/apache2/certs/xxxxxxxxxxx.key

ProxyPreserveHost on
ProxyRequests Off


Order deny,allow
Allow from all


ProxyPass / http://192.168.xxx.xxx:8080/
ProxyPassReverse / http://192.168.xxx.xxx:8080/
ErrorLog /var/log/apache2/xxxxxxxxxxxxxxxxxxx-error.log
CustomLog /var/log/apache2/xxxxxxxxxxxxxxxxxx-access.log common

DHCP en Linux

Editar el archivo /etc/dhcpd.conf y agregar al cominezo

default-lease-time 345600;
max-lease-time 691200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.xxx.255;
option routers 192.168.xxx.xxx;
option domain-name-servers 192.168.xxx.xxx;
option domain-name "xxxxxxx";

subnet 192.168.xxx.0 netmask 255.255.255.0
range 192.168.xxx.70 192.168.xxx.87;
range 192.168.xxx.92 192.168.xxx.99;
range 192.168.xxx.130 192.168.xxx.145;

COMANDOS DE LINUX

1.=|«««««« PRÓLOGO »»»»»»|

'========================='





Ahora que han salido las faqs,es una buena ocasión para incluir un listado de comandos de GNU/linux

en esDebian y curiosamente dispongo de uno.Todo empezó al instalar Debian a un colega.Pensé que no

sería mala idea que,aparte de disponer en su menú de enlaces a manuales,pudiera hechar un vistazo

rápido a un listado de comandos básicos con sólo apretar una tecla (uso/a icewm).



Al final lo que hice fue unir el listado básico que hice para él,con el que vengo utilizando yo mismo.

No están todos los que son pero si son todos los que están.Es posible que haya algún error o que

algunos estén a medio hacer,en cuyo caso y al igual que en las faqs se pueden ir aportando nuevos datos

hasta completarlo.









.======================================.

2.=|«««««« TRABAJO CON FICHEROS »»»»»»|

'======================================'



2.1-Varios

==========



mc ----------------------------------- Explorador de archivos que incluye su propio editor,mcedit.

mcedit ------------------------------- Editor de texto incluído en mc.



ls ----------------------------------- Lista los ficheros de un directorio concreto.

|ls -l ---------------------------- Lista también las propiedades y atributos.

|ls -la --------------------------- Lista ficheros incluidos los ocultos de sistema.

|ls -la | more -------------------- Lista los ficheros de un directorio de forma paginada.

'-------------



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 ------------|

|----> Muestra el contenido de un fichero de forma paginada.

more fichero -------------------|

less fichero -------------------'



zcat fichero -------------------,

zmore fichero ------------------|----> Muestra el contenido de un fichero comprimido (.gz)

zless fichero ------------------'



echo cadena -------------------------- echo nos muestra en pantalla,el texto que le siga.

grep 'cadena' archivo ---------------- Muestra las líneas del archivo que contienen la cadena.



stat fichero ------------------------- Muestra el estado de un fichero.

| stat -f fichero ----------------- Muestra el estado del sistema de ficheros.

'----------------



file fichero ------------------------- Muestra de qué tipo es un fichero.



tail archivo ------------------------- Muestra las últimas líneas de un archivo,10 por defecto.

|tail -n 12 archivo --------------- Muestra las 12 últimas líneas del fichero.

'-------------------



head -nº fichero --------------------- Muestra las primeras (número) líneas de un fichero.

find /usr -name lilo -print ---------- Busca todos los ficheros con nombre lilo en /usr.

find /home/paco -name *.jpg -print --- Busca todas las imágenes .jpg en /home/paco.

---------- ---------- -----

| | |

V V `---->muestra la ruta completa del fichero encontrado

ruta patrón de búsqueda



whereis ejecutable ------------------- Busca ejecutables(ejemplo: whereis find)

type comando ------------------------- Muestra la ubicación 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.

eject -t cdrom0 ---------------------- Cierra la bandeja del cdrom.



cd nom_directorio -------------------- Cambia de directorio

|cd .. ---------------------------- Vuelves al anterior.

|cd .mozilla ---------------------- Entras al de mozilla.(por la puerta grande)

|cd ./.mozilla -------------------- Entras al de mozilla (indicando la ruta relativa)

|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,cambiándole el nombre.

cp -dpR fichero1 /directorio --------- Copia fichero1 a directorio,conservando fichero1 el nombre.

| -R ------------------------------ Copia un directorio recursivamente,salvo los ficheros especiales.

| -p ------------------------------ Copia preservando permisos,propietario,grupos y fechas.

| -d ------------------------------ Conserva los enlaces simbólicos como tales y preserva las relaciones de los duros.

| -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 vacío).

rm archivo --------------------------- Elimina archivos .

|rm -r directorio ----------------- Borra los ficheros de un directorio recursivamente.Quietorrrrrrr...

|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 simbólico (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.

|diff -w fichero1 fichero2 -------- Descarta espacio en blanco cuando compara líneas.

|diff -q fichero1 fichero2 -------- Informa sólo de si los ficheros difieren,no de los detalles de las diferencias.

|diff -y fichero1 fichero2 -------- Muestra la salida a dos columnas.

'-------------------------



join [opciones] fichero1 fichero2 ---- Muestra las líneas coincidentes entre fichero1 y fichero2.



wc fichero --------------------------- Muestra el nº de palabras,líneas y caracteres de un archivo.

wc -c fichero ------------------------ Muestra el tamaño en bytes de un fichero.





touch [-am][-t] fichero -------------- Cambia las fechas de acceso (-a) y/o modificación (-m) de un archivo.

|touch -am fichero ---------------- A la fecha actual.Si no existiese el fichero,se crearía.

|touch -am -t 0604031433.30 fich -- A la fecha especificada.Si no existiese el fichero,se crearía.

| AAMMDDhhmm.ss ------- Si no se especifican los segundos,tomaría 0 como valor.

|touch fichero -------------------- Usado sin opciones crearía un fichero con la fecha actual.

'------------



split -b 1445640 mozart.ogg mozart- -- Partir un archivo

---------- -------

| V

| nombre elegido para las partes,por defecto x

V

tamaño en bytes de cada parte



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 explicación: a es la opción por defecto.

|a: todos x: ejecución

|

|s: los atributos suid y sgid,otorgan a un "fichero" los permisos de su dueño o

| grupo respectivamente,cada vez que se ejecute,sea quien sea el que lo ejecute.

| Ejemplo: chmod +s /usr/bin/cdrecord

|------------------------------------------------------

|Cómo afectan los permisos a los directorios:

|r permite ver su contenido(no el de sus ficheros)

|w permite añadir o eliminar ficheros (no modificarlos)

|x permite acceder al directorio.

|------------------------------------------------------

|

| Método absoluto de determinar los permisos: chmod 760 fichero

|

| .---------------------.

| explicación: |dueño | grupo | otros|

| .--------------|---------------------|

| | asci | r w x r w - - - - |

| | binario | 1 1 1 1 1 0 0 0 0 |

| | octal | 7 6 0 |

| |--------------|---------------------|----------------.

| | paso de asci | r w x r w - - - - | activar=1 |

| | a binario | 1 1 1 1 1 0 0 0 0 | desactivar=0 |

| |--------------|---------------------|----------------|

| | paso de | 1 1 1 1 1 0 0 0 0 | r activado=4 |

| | binario | 4+2+1 4+2+0 0+0+0 | w activado=2 |

| | a octal | 7 6 0 | x activado=1 |

| '-----------------------------------------------------'

'---------------------------------------------------------------------------------------





umask nnn ---------------------------- Establece qué permisos serán deshabilitados para los archivos nuevos.

| umask --------------------------- Muestra la configuración actual de umask(normalmente 022)

| umask 000 ----------------------- Deshabilita ninguno,es decir los activa todos.

|

| Atención,que la cosa manda huevos:

| .----------------------------------------. .----------------------------------------.

| | umask 0 2 2 = chmod 7 5 5 | | umask 0 0 0 = chmod 7 7 7 |

| | umask --- -w- -w- = chmod rwx r-x r-x | | umask --- --- --- = chmod rwx r-x r-x |

| '----------------------------------------' '----------------------------------------'

|

| Una manera rápida 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 sería 666-022=644

|

| Si escribo en una consola umask 000 y a continuación "mkdir nuevodirectorio",éste tendrá todos los

| pemisos: rwx rwx rwx (777) pero ¿y los ficheros que creemos dentro de dicho directorio? pues éstos

| tendrán los permisos : rw- rw- rw- (666) resultado de la resta 666-000=666

|

| ¿Os aclarais?... yo tampoco.

|

| Para que la máscara de permisos permanezca de una sesión a otra tienes que ponerla en el

| .bash_profile de tu home.

'---------------------------------------------------------------------------------------



2.2.-Imprimiendo

================



lpr fichero -------------------------- Añade un documento a la cola de impresión

| lpr -#3 fichero ----------------- Realiza 3 copias del fichero.

'----------------



lpq ---------------------------------- Muestra los documentos en cola

lprm --------------------------------- Cancela la impresión del documento activo.

| lprm 3 -------------------------- Cancela la impresión del trabajo nº 3.

'-------



pr +2 l70 -w 80 -h "Comandos" fichero- Preprocesador de impresión para formatear un archivo de texto.

| -l70 --------------------------- Establece la longitud de la página 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 página.

| +2 ------------------------------ Imprime a partir de la página 2.

| -t ------------------------------ No imprimiría cabeceras ni pies de página.

'------------------

pr l70 -d comandos.txt | lpr --------- Una vez formateado el documento lo manda a la cola.



2.3.- Nano

==============



nano fichero ------------------------- Leer,crear,editar un fichero de texto.

|

| M = Esc/Alt

|

| Ctrl + g ----------- Invocar el menú de ayuda.

| Ctrl + x ----------- Salir de nano.

| Ctrl + o ----------- Escribir el fichero actual a disco.

| Ctrl + r ----------- Insertar otro fichero en el actual.

| Ctrl + w ----------- Buscar un texto en el editor.

| Ctrl + y ----------- Moverse a la página anterior.

| Ctrl + v ----------- Moverse a la página siguiente.

| Ctrl + k ----------- Cortar la línea actual y guardarla en el cutbuffer.

| Ctrl + u ----------- Pegar el cutbuffer en la línea actual.

| Ctrl + l ----------- Redibujar la pantalla actual.

| Ctrl + j ----------- Justificar el párrafo actual.

| Ctrl + m ----------- Insertar un retorno de carro en la posición del cursor.

| Ctrl + _ ----------- Ir a un número de línea en concreto.

| M + g -------------- Ir a un número de línea en concreto.

| M + i -------------- Auto indentar habilitar/deshabilitar.

| M + x -------------- Modo ayuda habilitar/deshabilitar.

| M + p -------------- Modo Pico habilitar/deshabilitar.

| M + m -------------- Soporte para ratón habilitar/deshabilitar.

| M + r -------------- Reemplazar texto en el editor.

| M + e -------------- Expresiones regulares habilitar/deshabilitar.

| M + b -------------- Respaldar ficheros habilitar/deshabilitar.

| M + s -------------- Desplazamiento suave habilitar/deshabilitar.

| M + h -------------- Tecla 'smart home' habilitar/deshabilitar.

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

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

'-------------------------------------------------------------------------





2.4.-Formatos:

==============



[w3m,lynx,links,links2,elinks] fichero.html ---------- Visualizan ficheros html.



tidy fichero.html ------------------------------------ Analiza el código de un documento html.

|tidy -m fichero.html ----------------------------- Corrige,modificándolo,el código 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 tamaño folio

antiword -t -w 30 fichero.doc > fichero.txt ---------- Convierte un fichero doc a texto

|-p también 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 guía por el estándar de la W3C. |

|-la opción -layout hace que el documento de texto conserve lo mejor posible |

| la disposición fisica del documento pdf:columnas,saltos de linea,etc |

|-links2 convierte un html a texto,conservando totalmente la disposición |

| física del documento html. |

'---------------------------------------------------------------------------'



2.5.-Empaquetado y compresión

=============================



.-----------------------------------------------------------------------------

|Comprimir ---------------------- 7z a fichero.7z fichero |

|Descomprimir ------------------- 7z e fichero_comprimido |

|Extraer donde indicamos --------- 7z x fichero_comprimido -o ruta_de_destino |

|Ver contenido ------------------ 7z l fichero_comprimido |

|Chequea el contenido ------------ 7z t fichero_comprimido |

| |

| <<<< Notas sobre 7zip >>>> |

| |

|-Comprime en formato 7z, zip, gzip, bzip2 y tar. |

|-Si es un directorio lo hace recursivamente sin emplear la opción -r |

| |

|-Con -t{tipo de fichero} tras las opción "a" elegimos el formato de |

| compresión: |

| 7z a -tgzip fichero.gz fichero |

| |

|-Con -p protegemos con una contraseña el fichero: |

| |

| 7z a -tgzip -p fichero.gz fichero |

| |

|-Para comprimir más 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 dueño 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 |

'-----------------------------------------------------------------------------'





Comprimir zip: ------------------ zip -r fichero.zip fichero ;ejemplo: zip -r sinatra.zip ./sinatra/

Descomprimir zip: --------------- unzip archivo.zip

Ver contenido zip: -------------- unzip -v archivo.zip



Descomprimir rar: --------------- 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)

Ver contenido rar: -------------- unrar v archivo.rar



Comprimir gz: ------------------- gzip -r fichero ; ejemplo: gzip -r ./sinatra

Descomprimir gz: ---------------- gzip -d fichero.gz

Ver contenido gz ---------------- gzip -c fichero.gz



Comprimir bz2: ------------------ bzip2 fichero ; ejemplo: bzip2 ./sinatra/*.ogg

Descomprimir bz2: --------------- bzip2 -d fichero.bz2

Ver contenido bz2: -------------- bzip2 -c fichero.bz2



NOTA: r equivale en todos los casos a recursivo



Mientras que zip comprime y empaqueta,gzip ó bzip2 sólo comprimen ficheros,no directorios,para eso existe tar.



Ficheros tar

Empaquetar: --------------------- tar -vcf archivo.tar /fichero1 /fichero2 ...(fichero puede ser directorio)

Desempaquetar: ------------------ tar -vxf archivo.tar

Ver contenido ------------------- tar -vtf archivo.tar



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)

Empaquetar y comprimir: --------- tar -zvcf archivo.tgz directorio

Desempaquetar y descomprimir: --- tar -zvxf archivo.tgz

Ver contenido: ------------------ tar -zvtf archivo.tgz



Ficheros tar.bz2 (tbz2)

Empaquetar y comprimir: --------- tar -jvcf archivo.tbz2 directorio

Desempaquetar y descomprimir: --- tar -jvxf archivo.tbz2

Ver contenido: ------------------ tar -jvtf archivo.tbz2



.-opciones de tar:

| -c : crea un nuevo archivo.

| -f : cuando se usa con la opción -c,usa el nombre del fichero especificado para la creación del fichero tar

| cuando se usa con la opción -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.

'----------------------------------------



__________________________________________________________________________________________________

+ +

+ 2.6.-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 -------- mostraría todos los ficheros cuyos 1º 3º y 4º caracteres fuesen p,p y e +

+ ls ?epe -------- mostraría todos los ficheros acabados en epe +

+ +

+ (*) Sustituye cualquier sucesión 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 imágenes 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 canción.mp3 --------- tras 5 minutos se iniciará el xmms (ver más abajo) +

+__________________________________________________________________________________________________+



__________________________________________________________________________________________________

+ +

+ 2.7.-Alias: +

+ +

+ Es el mote que se le pone a un comando,de manera que la próxima vez que queramos ejecutarlo +

+ basta con llamarlo por su mote.Escribiendo alias sin parámetos 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 próxima 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 sesión 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. +

+__________________________________________________________________________________________________+



__________________________________________________________________________________________________

+ +

+ 2.8.-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 existía ha sido sobreescrito su contenido,pero si usamos >> no borrará nada +

+ y añadira 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 añade al final del fichero programas_instalados.txt +

+ +

+ Para despistar los de Unix se han inventado el mismo caracter pero al revés: +

+ +

+ 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 +

+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

+ +

+ Tuberías,Una tubería 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) +

+__________________________________________________________________________________________________+





2.9.-Renombrando

=================



mp3rename opciones *.mp3 ------------- Renombra ficheros mp3 basándose en las etiquetas incluidas en los mp3 (id3tags)

|

|Opciones:

|-i --- Sólo 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 -- título

| |&b -- album

| |&a -- artista Hay que usarlas entrecomilladas para que no sean interpretadas por el shell

| |&y -- año

| |&k -- pista

| '----

|Ejm : 1º- mp3rename -s '&a_&t' --- establecería artista_título como predeterminadas de manera que

| 2º- mp3rename *.mp3 ------- renombrará los mp3 como: "artista_título.mp3"

'-------



rename ------------------------------- Script de Perl que sirve para renombrar ficheros usando expresiones de Perl

|rename 'y/A-Z/a-z/' *.zip -------- Cambiamos todas las mayúsculas a minúsculas(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/expresión //' *.mp3 ---- Eliminamos una expresion en el nombre de todos los .mp3 del directorio actual

| |rename 's/M.Oldfield//' *.mp3 -- quitaría "M.Oldfield" del nombre en todos los mp3

| '----

'-------



mrename 'ruta_fich.' prefijo opción -- Añade un prefijo al nombre de los ficheros.

|

|Opciones:|-c --- Copia los ficheros con un nuevo nombre.

| |-m --- Los renombra.

| '-----

|Ejm: cd/ruta a los ficheros ------ debe ejecutarse en el directorio en donde se encuentren.

| mrename '*.jpg' boda -m ----- añadiría 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 expresión regular(;) y #2 a la segunda(*).Aunque con

| este comando el(;) representa cualquier subdirectorio y es la forma de darle

|Ejemplos: recursividad a la acción.

|

| mmv "*.cbz" "#1.zip" -------- Renombraría todos los cbz a zip,conservandose el nombre que precede a .cbz

| mmv ";*.cbz" "#1#2.zip" ----- Renombraría todos los cbz a zip en el directorio actual y sus subdirectorios

|

'----------





2.10.-Mtools

===========

Colección de herramientas que permite acceder y manipular ficheros de MS-DOS sin necesidad de un montaje previo.

El uso de comodines refiriéndose a archivos del disquete requiere que los nombres se entrecomillen para que no sean

interpretados por el shell sino por herramientas de mtools.Más información:"info mtools"



minfo unidad: ------------------------ Muestra información 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 bién 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/*" ----------- copiaría el contenido de "a:directorio/*" al directorio en curso.

|mcopy "a:directorio/*" ~/disquete copiaría el contenido de "a:directorio/*" al directorio "disquete".

|mcopy *.txt a:bill --------------- copiaría 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 después verifica el formateo.







.==========================.

3.=|«««««««« GRÁFICOS »»»»»»»»|

'=========================='

_______ ___________

|Comando ============================== Descripción|



glxinfo ------------------------------ Información sobre la biblioteca gráfica OpenGL y su extensión GLX para X-Window

direct rendering: YES ---------------- Salida de glxinfo que nos indica si tenemos activada la aceleración 3D.

showrgb ------------------------------ lista los colores reconocidos por el sistema y su valor RGB



bsdgames ----------------------------- Colección de juegos para consola. (__)

sl ----------------------------------- Tren pasando. (oo)

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.



banner [texto] ----------------------- Muestra un cartel en pantalla

figlet [opciones] [texto]------------- Derivado del anterior pero más versatil.También 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 máxima anchura.

|-c ------------------------------- La salida se mostrará centrada.

|-f tipo -------------------------- Indicamos la tipografía 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

| _ _

| | |_ _____ _| |_ ___

| | _/ -_) \ / _/ _ \

| \__\___/_\_\\__\___/

'--------------------------





___________ _______

|Descripción ================================== Comando|



Capturar la pantalla ------------------------- xwd -root -screen > pantalla.xwd

Capturar la pantallas tras 5 segundos -------- sleep 5 ; xwd -root -screen > pantalla.xwd

Capturar una ventana ------------------------- xwd > ventana.xwd



Capturar la pantalla en cualquier formato ---- import -window root pantalla.ps (también jpg,png,gif,etc)

Capturar la pantalla tras 5 segundos --------- sleep 5s ; import -window root pantalla.png

Capturar una ventana en cualquier formato ---- import -window - ventana.jpg



Ver imágenes en formato xwd ------------------ xwud -in pantalla.xwd

Visualizar imágenes (incluídas las xwd) ------ display imagen.xwd

Visualizar gif animados ---------------------- animate remero.gif (también admite delay)



.-ascii/color-- cacaview imagen.jpg (también png,gif,etc)

Visualizar imágenes en consola |

'-ascii ------- asciiview imagen.jpg (también png,gif,etc)



Ver las propiedades de una imagen ------------ identify imagen.gif



Extraer las imágenes de un pdf --------------- pdfimages fichero.pdf nombre_para_las_imágenes: pdfimages Xmen.pdf xmen

Extraer las imágenes de un pdf --------------- convert fichero.pdf nombre_y_formato_imágenes:convert fichero.pdf imagen.png



Crear un catálogo pdf con imágenes ----------- convert *.jpg catálogo.pdf

Crear un índice gráfico con miniaturas ------- display "vid:*.jpg"



Convertir una imagen a blanco y negro -------- convert imágen_color.jpg -monochrome imágen_b/n.jpg



Cambiar el formato de UNA imagen ------------- convert imagen_original.ppm imagen_nueva.jpg

Cambiar las dimensiones de UNA imagen -------- convert -sample 100x50 imagen_original.jpg imagen_nueva.jpg



Cambiar el formato de VARIAS imágenes ------- mogrify -format jpg *.ppm (convierte a .jpg todas las imágenes .ppm)

Crear miniaturas de VARIAS imágenes ---------- mogrify -format png -sample 20%x20% *.jpg

|miniaturiza nuestras imágenes jpg cambiándoles el formato.

o _o _ o |ATENCIÓN porque de no cambiárselo nos eliminaría las originales

\...\/_\.../ \....|_|.../ \..../_/.../ '---------------------------------------------------------------

\___\\___/ \___|\___/ \__//____/

\ | /



Crear un gif animado con varios jpg ---------- convert -delay 15 imag1.jpg imag2.jpg imag3.jpg remero.gif

|-delay 15 pausa entre imágenes (centésimas de segundo)

'--------------------------------------------------------



Extraer los fotogramas de un gif animado ----- convert remero.gif -adjoin remeros.jpg



Añadir texto a una imagen :

columna_ _fila

| |

convert -font courier -fill yellow -pointsize 25 -draw 'text 100,250 remeros' imagen.jpg imagen_con_txt.jpg

----- ----- ------------ ------------------ -------

| | | posición del texto |

V V V v

fuente color de fuente tamaño de la fuente |texto

|si éste tuviese más de una palabra

|habría 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 imágenes,incluso las animadas,mediante |

| caracteres ascii. |

|-libcaca permite lo mismo que libaa pero en |

| color |

'--------------------------------------------'







.==========================.

4.=|«««««« MULTIMEDIA »»»»»»|

'=========================='







Adaptado para un kernel 2.4.26 con emulación SCSI con la nomenclatura :

.-----------------------------------------------.

|#cdrecord -scanbus: |

| |

| 0,0,0 0) '_NEC ' 'DVD_RW ND-2500A ' | ---> grabadora ---> /dev/sr0

| 0,1,0 1) 'HL-DT-ST' 'DVD-ROM GDR8162B' | ---> lector -----> /dev/sr1

'-----------------------------------------------'



.----Nota:---------------------------------------------------------------------------.

|Salvo cdrecord y dvdrecord los demás se pueden usar en un kernel sin emulación SCSI. |

|Para usar cdrecord y dvdrecord con un kernel 2.6 ,sin emulación 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 más,sustituyendo la nomenclatura propia de cdrecord |

|dev=0,0,0 por dev=/dev/hdc (ver nota 1 más abajo) |

'------------------------------------------------------------------------------------'



4.a.-Imágenes

==============

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

'----------------------------------------------------------------

4.b.-Grabación de CD

====================

Grabar un CD de datos/imagen: -------------------- cdrecord -v dev=0,0,0 fs=16M speed=30 imagen.iso

Copiar un CD de datos/imagen: -------------------- cdrecord -v dev=0,0,0 fs=16M speed=30 -eject -isosize /dev/sr1

Grabar un CD de audio (cda):---------------------- cdrecord -v dev=0,0,0 fs=16M speed=30 -pad -audio *.wav

Copiar un CD 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



Grabar CD mixto: --------------------------------- cdrecord -v dev=0,0,0 fs=16M speed=30 -pad -audio *.wav -data imagen.iso



.--1ª sesión --------------- cdrecord -multi imagen1.iso (ver nota 1)

/---dónde acabó la sesión --- cdrecord -msinfo --> nos da un nº que usaremos en el siguiente paso.

Grabar CD multisesión

\---creamos nueva imagen----- mkisofs -R -J -T -C nº -M /dev/sr0 -o imagen2.iso fichero2

'--2ª sesión --------------- cdrecord -multi imagen2.iso



Borrar un CD±RW: -------------------------------- cdrecord -v blank=fast (ver cdrecord blank=help)



4.c.-Grabación de DVD

=====================

Grabar un DVD de datos/imagen: ------------------- growisofs -Z /dev/sr0 -R -J archivo (growisofs llama a mkisofs)

Grabar DVD multisesión: -------------------------- growisofs -M /dev/sr0 -R -J archivo (-M añade más datos al dvd)

Grabar una imagen ya creada: --------------------- growisofs -dvd-compat -Z /dev/sr0=imagen.iso

Borrar un DVD±RW: -------------------------------- dvdrecord -v dev=0,0,0 blank=fast (ver dvdrecord blank=help)

Ripear un video DVD ------------------------------ dvdbackup -M -i/dev/sr0 -o/home/paco/copia_dvd/

'------------------------------ vobcopy -i /dev/sr0 -m -o /home/paco/copia_dvd/





.----Notas:--------------------------------------------------------------------------.

|-1.Se pueden establecer valores predeterminados para dev,el dispositivo de grabación; |

| fs,el tamaño del bufer(nunca menor que el de la grabadora) y speed,la velocidad de |

| grabación,indicándolo 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. |

'------------------------------------------------------------------------------------'



4.d.-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

'-----------------------------



-|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

'-------------------------------------------------



.----Nota:---------------------------------------------------------------------------------.

|-abcde conserva los id3 de los temas al pasarlos al disco duro,es decir artista,título,etc.|

| Requiere de oggenc,lame,cdparanoia o cdda2wav,id3v2 y cd-discid y opcionalmente normalize. |

'------------------------------------------------------------------------------------------'



4.e.-Conversiones

=================



Pasar de wav a mp3: ------------------ lame -h -m j tema.wav ----------------(-b bitrate -h mayor calidad; -m j join stereo)

Pasar lote de wav a mp3 -------------- lame -h -m j --nogap *.wav

,-------------- oggenc -b 128 -q 5 tema.wav ----------(-b bitrate ;-q calidad (valores entre 0 y 10)

Pasar de wav a ogg ----|-------------- oggenc *.wav -------------------------(convierte todos los wav en un solo fichero ogg)

'-------------- oggenc -a -l -t *.wav ---------------(convierte todos los wav en sus respectivos ogg)

Pasar de ogg a wav ------------------- oggdec tema.ogg ----------------------(oggdec *.ogg para convertir un lote)

Pasar de mp3 a wav ------------------- lame -h --decode tema.mp3 tema.wav

Pasar de asf/wma a wav --------------- mplayer -ao pcm fichero.asf



4.f.-Otros

==========



Unir varios ficheros de audio -------- soxmix tema1.ogg tema2.ogg mezcla.ogg (también mp3,wav,au,etc)



|Ajustar el volumen ------------------ normalize-audio *.wav

|de uno o varios --------------------- normalize-mp3 *.mp3

|ficheros de audio ------------------- normalize-ogg *.ogg

'---





.----Nota:--------------------------------------------------------------------------------------------.

|-oggdec y oggenc vienen en el paquete vorbis-tools |

|-Las conversiones entre formatos comprimidos las he descartado pues hay una pérdida notoria de calidad.|

'-----------------------------------------------------------------------------------------------------'



4.f.-Reproducción

=================



aafire ----------------------------------------> Fuego animado.

cacafire --------------------------------------> Fuego animado a color.

cacademo --------------------------------------> Demostración de arte ascii a color.

cacaball,cacamoin,cacaplas --------------------> Variados gráficos animados a color.

bb --------------------------------------------> Impresionante demostración audiovisual de arte ascii.

aatv ------------------------------------------> Programa para ver la tele mediante código ascii.

xaos -driver aa -------------------------------> Indicamos a xaos que use las librerias aalib para visualizar fractales.



.-------> aaxine video.wmv

.--- en ascii |-------> mplayer -vo aa video.avi

/ '-color-> mplayer -vo caca video.mpg

Ver vídeo en consola --|

\ .-------> mplayer video.avi (también mpg,wmv,etc)

'-------------|-------> mplayer -vcd 1 (para ver un vcd)

'-------> mplayer -dvd-device /dev/hdd dvd://1 (para ver un dvd)



,---- digital ------------> play tema.ogg

/ '-----> mocp (ncurses)

Escuchar audio ----|

\ ,-----> tcd (ncurses)

'---- cd -----------------> cdplay -d /dev/hdd



.-------> mplayer -cache 100 mms://...

,-- protocolo mms |

/ '-------> mplayer -cache 100 -playlist http://ruta_del_archivo.asx

Ecuchar la radio --|

\ .---> mlayer http://... ;ejemplo:mplayer http://147.156.27.128:8004

'-- shoutcast-icecast |

'---> somaplayer http://... ;ejemplo:somaplayer http://147.156.27.128:8004



,-- mms (asf/wma) --------> mimms -t 20 -o radio3_uned.asf mms://...

/ |-t tiempo de grabación en mnts.

Grabar emisiones --| |-o nombre que queremos para la grabación.

\ '---------------------

'-- shoutcast(mp3/ogg)----> streamripper http://... -l 3600

|-l tiempo de grabación en sgs.

'----------------------

.-----------------------------------------------------------------------------.

| Cómo conseguir la dirección 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 |

| bién nos bajamos dicho enlace,que es un fichero asx que contiene las direc- |

| ciones mms,lo abrimos con un editor de texto y las buscamos. |

| Pero si el enlace es código javascript al aparecer la ventana emergente, |

| miramos su código fuente y buscamos (Ctrl+f) por asx o mms y ahí estarán. |

|.............................................................................|

| Cómo 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 |

'--------------------------------------------------------------------------------------'







.======================.

5.=|«««««« SISTEMA »»»»»»|

'======================'





5.a.-Varios

===========



man comando ---------------------,

man --help ----------------------|---> Muestra información sobre el comando.

info comando --------------------'

help comando ------------------------- Muestra información 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.



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 (también 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 sincronizándola con la de un servidor NTP.

ntpd --------------------------------- Demonio que ajusta el reloj de forma gradual sincronizándolo con servidores NTP.



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

watch -n 1 date ---------------------- Igual que date pero en este caso veríamos correr los segundos.



clear -------------------------------- Limpia la pantalla.

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



uname -a ----------------------------- Versión del kernel

hostname ----------------------------- Visualiza el nombre de la máquina.

tty ---------------------------------- Muestra el nombre de fichero de la terminal conectada a la salida estándar.



/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 gráfico con el gestor especificado en el .initrc de tu home.

startx /usr/bin/X11/icewm ------------ Arranca el entorno gráfico con el icewm (si es que no fuera el predeterminado)



Ctrl+C ------------------------------- Termina un proceso.

Ctrl+Z --------------------------------Suspende temporalmente la ejecución de un programa.

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

Ctrl+Q ------------------------------- Resume,reinicia la tranferencia de datos

Ctrl+Alt+F2 -------------------------- Salir del entorno gráfico a un terminal.(Fnº según 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 ratón a la consola y aplicaciones que corren sobre ella.

reportbug ---------------------------- Programa en modo texto para enviar bugs a Debian



exit --------------------------------- Termina la ejecución del programa en curso.

init 0 ------------------------------- Apaga la máquina.

init 6 ------------------------------- Reinicia la máquina.

shutdown -t1 -h now ------------------ Apaga la máquina .

shutdown -t1 -r now ------------------ Reinicia la máquina.



su ---------------------------------- Entrar a la sesión como root u otro usuario.

su nom_usuario ----------------------- Estando como root entramos como otro usuario.

passwd ------------------------------- Cambio de contraseña.

who -a -H ---------------------------- Muestra información de los usuarios conectados al sistema.

users -------------------------------- Muestra información de los usuarios conectados al sistema.

id ----------------------------------- Muestra información 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 ---------------- Añade 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 sólo si no tiene ningún usuario.

usermod -l nuevo_login --------------- Cambia el nombre del usuario.Sería bueno combinarlo con -d

usermod -d nueva_home -m login ------- Cambia el home al usuario,creándolo 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 partición raiz de windows y al archivo boot.ini

| de windows,oculto y de sólo lectura,le agregamos las siguientes lineas dentro de su sec-

| ción [operating systems]:

|

| C:\debian_sarge.lnx="Debian Sarge"

| C:\debian_etch.lnx="Debian Etch"

|

| Atención:

| 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 habrán quedado

| desactualizados.

'-------------------------------------------------------------------------------



5.b.-Procesos y memoria

=======================



memtest86+

|Realiza una comprobación del estado de la memoria si

|optamos a ello desde los gestores de arranque,para

|lo cual necesitamos editarlos añadiendoles 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 partición 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 información de los procesos en curso.

top ---------------------------------- Muestra información 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 están 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 están usando mi directorio.

|lsof -i :60627 ------------------- Muestra que proceso se encuentra detrás del puerto 60627 (aunque esté a la escucha)

'-------------



nohup comando & ---------------------- Lanza un proceso de forma que si cerramos el shell,el proceso continúa ejecutandose

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

jobs -------------------------------- Lista los procesos en segundo plano identificándolos 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 xdefecto).

|Ejemplo: nice -n -10 cdrecord...

|esos valores,de mayor a menor, son -20...+20,

|sólo 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 ejecución de un comando

|m para minutos y h para horas.

'------------------------------

at_

|at [-f script] [tiempo] ------> Sirve para ejecutar un script a una hora y/o fecha.

|

| ejemplo at -f script 15:23

|

| |formas de indicar el tiempo:

| |HH:MM ------------ 15:23 (hoy a las 15:23)

| |HH:MM MM.DD.AA --- 15:23 01.23.06 (el 01.23.06 a las 15:23)

| |now + tiempo ----- now + 23 minutes (dentro de 23 minutos)

| '---- |

| '-> minutes,hours,days,weeks

|

|at [tiempo] ------------------> Ésta forma nos abre un promp interactivo.

| |

| | 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á sólo

| si la media de carga de la CPU es inferior al 80%.

'-----------------------------------------------------------------------------------





5.c.-Disco duro

===============



------------------------------------------------------- ----------------------------------------

| Nomenclatura de discos en linux| IDE | SCSI | | disco /dev/hda |primarias | lógicas |

| -------------------------------|-----------|----------| | ----------------|----------|-----------|

| Disco maestro del primer bus | /dev/hda | /dev/sda | | 1ª partición |/dev/hda1 | /dev/hda5 |

| Disco esclavo del primer bus | /dev/hdb | /dev/sdb | | 2ª partición |/dev/hda2 | /dev/hda6 |

| Disco maestro del segundo bus | /dev/hdc | /dev/sdc | | 3ª partición |/dev/hda3 | /dev/hda7 |

| Disco esclavo del segundo bus | /dev/hdd | /dev/sdd | | 4ª partición |/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 información sobre particiones montadas.

cfdisk ------------------------------- Muestra información sobre particiones.Herramienta para particionar en ncurses.

fdisk -l ----------------------------- Muestra información sobre particiones.Herramienta para particionar.



.-----

|mount -------------------------------- Vemos el listado de dispositivos montados.

|mount p.de montaje ------------------- Monta un dispositivo.(ya establecido en el fstab)

|umount p.de montaje ------------------ Desmonta un dispositivo.(ya establecido en el fstab)

|mount -t ext3 /dev/hda2 /micaasa ----- Monta un dispositivo.

| ----- ------- -------

| | | v

| | V p.montaje

| | dispositivo

| v

|sistema de ficheros

|

|umount /dev/hda2 ------------------- Desmonta un dispositivo

'-----



fsck /dev/hdax ----------------------- Chequea y repara el sistema de archivos de una partición NO MONTADA.

fsck.ext2 -vpf /dev/hdx -------------- Chequea y repara el sistema de archivos de una partición ext2 NO MONTADA.

fsck.ext3 -vpf /dev/hdx -------------- Chequea y repara el sistema de archivos de una partición ext3 NO MONTADA.



mkfs.ext2 /dev/hdb1 ------------------ Crea un sistema de ficheros Linux ext2 en la primera partición del segundo disco duro.

mkfs.ext3 /dev/hdb1 ------------------ Crea un sistema de ficheros Linux ext3 en la primera partición 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.



tune2fs -O ^has_journal /dev/hda2 ---- Convierte hda2 de ext3 a ext2

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



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



5.d.-Entorno

============



locale ------------------------------- Muestra la zona geográfica 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 código 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 ------------ Añadimos 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 sesión a otra hay que ponerlas

|en el archivo .bashrc de tu home.

'----------------------------------



5.e-Instalación de software

===========================

.------------------------------------------------------------------------.

|dpkg:Herramienta de nivel medio para instalar, construir, borrar |

| y gestionar los paquetes de Debian |

|

|dpkg -i paquete --------------------- Instalación de paquetes .deb

|dpkg -r paquete --------------------- Desinstala un paquete.

|dpkg --purge paquete ---------------- Desinstala un paquete y sus archivos de configuración.

|dpkg --force -r paquete ------------- Fuerza la desinstalación de un paquete.Más información: dpkg --force-help

|dpkg --force-all -r paquete --------- Fuerza aún más la desinstalación de un paquete.Su uso puede dañar 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] acción |

|

|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 ----------- Instalación de paquetes por red,con resolución de depencias.

|apt-get -s acción ------------------- Simula,sin llevar a cabo la acción. Por ejem: apt-get -s install paquete.

|apt-get -d acción ------------------- Sólo 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 configuración.

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

'-------------------------------------

.-------------------------------------------------------------------------.

|apt-cache es una utilidad que manipula la caché de paquetes de APT en |

|busca de información |

|

|apt-cache search palabra ------------ Busca en los paquetes y en las descripciones la palabra.

|apt-cache show paquete -------------- Muestra la descripción completa del paquete

|apt-cache showpkg paquete ----------- Muestra su relación 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 es una 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 ejecución|

|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

|(el paquete del ejemplo no está escogido al azar¿?)

|

|y alguna más 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 instalación automática de los paquetes que sin ser dependencias |

|forman parte de los sugeridos o recomendados y la autodesinstalación de |

|los paquetes instalados en su momento como dependencias de otros |

|(automáticamente en contraposición a manualmente),si ningún otro paquete|

|los necesitase.Se puede usar de forma interactiva si no se especifica |

|ninguna acción o desde la linea de comandos,usando las mismas opciones y|

|acciones de apt.La sintaxis es: aptitude [opciones] acción |

|ejem.: aptitude -s purge firefox

|

|Acciones:

|update ------------------------------ Descarga y analiza la lista de nuevos paquetes según los repositorios del sources.list.

|upgrade ----------------------------- Realiza una actualización segura (no instala ni elimina paquetes).

|dist-upgrade ------------------------ Realiza una actualización,instalando y eliminando paquetes si fuera preciso

|install paquete/s ------------------- Instala/actualiza paquetes

|reinstall paquete/s ----------------- Reinstala un paquete

|remove paquete/s -------------------- Elimina paquetes

|purge paquete/s --------------------- Elimina paquetes y sus ficheros de configuración

|download paquete/s ------------------ Se limita a descargar los paquetes deb al directorio en el que estamos.

|hold paquete/s ---------------------- Bloquea paquetes

|unhold paquete/s -------------------- Desbloquea un paquete

|unmarkauto paquete/s----------------- Desmarca paquetes como instalados manualmente

|markauto paquete/s ------------------ Marca paquetes como instalados manualmente (elegidos por nosotros)

|search expresión -------------------- Busca un paquete por nombre y/o expresión

|show paquete ------------------------ Muestra información detallada de un paquete

|clean ------------------------------ Elimina los ficheros deb descargados

|

|Opciones:

|-s ----------- Simula las acciones, pero en realidad no las realiza.

|-d ----------- Sólo descarga paquetes, no instala o desinstala nada.

|-p ----------- Siempre pide confirmación 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 versión de los paquetes a instalar.

|-D ----------- Muestra las dependencias de los paquetes cambiados automáticamente.

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

'-------------------------------------



deborphan ---------------------------- Muestra los bibliotecas (paquetes lib) huérfanas

|-a ------------------------------- Muestra todos los paquetes huérfanos (que no dependen de ningún otro).

|-d ------------------------------- Muestra también 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 huérfano)

|deborphan -R paquete ------------- Cancela la orden anterior,si el paquete es huérfano lo mostrará.

|deborphan -L --------------------- Lista los paquetes ignorados

'-----



orphaner ----------------------------- Interfaz gráfica de deborphan,sin parámetros sólo mostrará paquetes lib.

|-a ------------------------------- Muestra todos los paquetes huérfanos del sistema.

'----



editkeep ----------------------------- Interfaz gráfica 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 bién directamente desde la linea de comandos para

|instalar o desinstalar paquetes.

'-----------------------------



localepurge --------------------------|Script que elimina e impide la instalacion de los locales y páginas man que

|no nos interesa tener en el disco.Al instalarlo nos da a elegir los locales y

|si automaticamente impide la instalación de otros.El programa no se encuentra

|bién integrado con la gestión de paquetes de debian...

'-----------------------------



./configure |

make |---------------------->|Esta sucesión de comandos crean un paquete .deb,una vez descomprimido

su | |el tarball* y ubicados en el directorio recién creado (si es el caso).

checkinstall | |./configure,comprueba si nos faltan dependencias.

--------------' |make,compila el programa.(lo pasa a lenguaje máquina o binario)

|checkinstall,crea el paquete .deb

|*tarball:fichero comprimido con el código fuente del programa.

'-----------------------------------------

.--------------------------------------------------------------------------------.

|Me parece mejor la idea de hacer un paquete dev 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 también mucho más facil con dpkg -r |

'--------------------------------------------------------------------------------



fakeroot make-jpkg jre-linux.bin |

dpkg -i sun-j2re.deb |--->|Ésta sucesión 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ó específicamente 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 máquina virtual de java (jre).

'-----------------------------------------------------------------------------



.=======================================.

6.=|«««««« RECUPERACIÓN 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 partición en cuestión.

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 partición en cuestión.

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 partición que le indicas y a partir de ahí las

ordenes que le pases a la consola se ejecutan en esa partición,es como si realmente estuvieras en esa partición.



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

==============================================



-) Con lilo.Tan fácil 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 lógica debeis añadir al lilo.conf del disquete la

opción: "lba32" para que pueda arrancarla.



-) Con el programa mkboot,éste programa viene en el paquete debianutils.



mkboot,entre otras cosas, te copia el lilo.conf al disquete,pero la verdad es que yo sólo he conseguido que

me funcionen los disquetes creados con mkboot,cambiando el lilo.conf que te crea por el original y realizando

después las modificaciones que cuento más arriba.El mismo programa te explica cómo:



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 trataría de copiar los ficheros stage1 y

stage2 al disquete tal que así:



root> mkfs.ext3 /dev/fd0 ---------------------- formateamos el disquete.

root> mount -t ext3 /dev/fd0 /floppy ---------- lo montamos en /floppy.

root> cp /ruta_de_acceso/stage1 /floppy ------- copiamos stage1

root> cp /ruta_de_acceso/stage2 /floppy ------- copiamos stage2

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

root> umount /dev/fd0 ------------------------- se desmonts floppy sin sacarlo.

root> 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 root=/dev/hda2 # kernel de inicio y particion raiz

grup> boot



-) Con el NTloader de microsoft,en el caso de que lo usemos para el inicio también 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 raíz del sistema (normalmente C:).Ésto es lo que haría cualquier windosero,

pero nosotros además,tendremos que copiar el o los ficheros con extensión .lnx que pusimos en la partición 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 partición:

=============================================================================



É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





.----Nota:---------------------------------------------------------.

|-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. |

'------------------------------------------------------------------'



.======================================.

7.=|«««««« KERNEL ,LOGS Y HARDWARE »»»»»»|

'======================================'



uname -a ----------------------------- Versión del kernel.

cat /proc/version -------------------- Versión del nucleo y compilador empleado.

lsmod -------------------------------- Lista los módulos cargados.

cat /proc/modules -------------------- Lista los módulos cargados.

lsmod | grep módulo ------------------ Ver si está cargado el módulo.

modinfo módulo ----------------------- Muestra información sobre un módulo.

modprobe módulo ---------------------- Inserta un módulo en el kernel cargando antes los módulos de los cuales dependa.

modprobe -r módulo ------------------- Elimina un módulo del kernel y si procede los que dependen del mismo.

insmod módulo ------------------------ Inserta un módulo en el kernel.

rmmod módulo ------------------------- Elimina un módulo del kernel.

echo módulo >> /etc/modules ---------- Inserta un módulo en el kernel de forma permanente.

depmod módulo ------------------------ Comprueba las dependencias del módulo.

modconf ------------------------------ Programa gráfico para listar,cargar y descargar módulos del kernel.

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



less /var/log/kern.log -------------- Mensajes del nucleo.

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

less /var/log/debug ----------------- Registro de información de depuración de los programas.

less /var/log/messages --------------- Mensajes del sistema de carácter informativo.

less /var/log/user.log -------------- Información del usuario.

less /var/log/XFree86.0.log ---------- Información sobre las X

less /var/log/Xorg.0.log ------------ Información 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 conexión fallidos (fichero /var/log/btmp).



hdparm /dev/hda ---------------------- Verificar DMA

hdparm -I /dev/hdx ------------------- Información sobre hdx

hdparm -d1 /dev/hdx ------------------ Activar DMA en el disco duro o periférico.

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

dmesg | grep hd ---------------------- Información sobre dispositivos IDE.

sensors-detect ----------------------- Detecta,instala y carga los sensores y los módulos necesarios(en un kernel 2.6)

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

lsdev -------------------------------- Muestra información 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 -------------------- Información sobre la memoria.

cat /proc/cpuinfo -------------------- Información sobre el procesador.

cat /proc/devices -------------------- Información 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 núcleo. |

|-lsdev viene en el paquete procinfo. |

|-sensors viene en el paquete lm-sensors. |

|-Dispositivo de bloques:aquellos que almacenan información en bloques de tamaño fijo, |

| (cada uno con su dirección) 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 ratón |

|-DMA(Acceso Directo Memoria),es la manera en que los dispositivos se comunican directa- |

| mente con la memoria sin intervención del procesador.Cada controlador dispone de una |

| linea o canal DMA de acceso directo. |

|-IRQ (solicitud de interrupción),es la manera en que el controlador de un dispositivo |

| solicita al procesador que le atienda porque va a comunicarle algún suceso,cada contro-|

| lador tiene una linea IRQ distinta. |

|-IO Ports (puertos de entrada/salida) se trata de una abstracción (que se corresponde |

| con un dispositivo)a través de la cual un dispositivo intercambia datos con el sistema.|

| Tienen una dirección(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]----> Información y configuración 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 dirección al interfaz especificado.



Iwconfig --------------------------> Similar a ifconfig pero sólo 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 conexión dhcp mediante el cliente dhcp-client.

pump -i eth0/eth1 -----------------> Inicia conexión dhcp mediante el cliente pump.



pppoeconf -------------------------> Programa para configurar conexiones pppoe.

pppconfig -------------------------> Programa en modo texto para configurar una conexión ppp.

pon -------------------------------> Establece la conexión ppp a internet.

plog ------------------------------> Monitoriza la conexión ppp.

poff ------------------------------> Finaliza la conexión 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 conexión,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 máquina de destino.

mtr rediris.es --------------------> Combinación de ping y traceroute.

whois esdebian.org ----------------> Información 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 tráfico de redes(ncurses)

tethereal -------------------------> Versión para consola de ethereal,un analizador del tráfico 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 conexión.

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.

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 mensajería instantánea.)

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 versión mejorada del cliente homónimo bittorrent.



talk usuario-----------------------> Entabla una conversacion con un usuario del sistema.

talk usuario@sistema --------------> Entabla conversacion con un usuario de otro sistema(entre máquinas 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 más rápida la ejecución.

| a ----------------------------> Muestra todos las conexiones,incluídas las que están escuchando.

| p ----------------------------> Muestra el número y nombre del proceso,dueño de dicha conexión.

| t ----------------------------> sólo muestra conexiones tcp

'--------------



jigdo-lite fichero.jigdo ---------->|Programa interactivo que permite la descarga y/o "actualización" 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,

|bastaría 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 recursión (5 por defecto)

| -A formato -------------------> formato para descargar.

| -nH --------------------------> hace que no se cree el subdirectorio localhost.

| --cut-dirs=n -----------------> elimina n número de directorios dentro de la jerarquia.

|

| Ejemplo 1º: wget -A zip URL ---> Bajaría todos los archivos zip de una página web.

|

| Ejemplo 2º:nos queremos descargar el manual nano.pdf que está en:

|

| http://www.manuales.com/informática/editores/nano.pdf

| ---------------- --------- ------

| localhost 1º dir 2º dir

|

| wget -nH --cut-dirs=2 http://www.manuales.com/informática/editores/nano.pdf

|

| nos bajaría sólo el manual sin crearnos ningún nuevo directorio en nuestra home.

|

| Ejemplo 3º:nos queremos bajar el manual de Arocena en formato html cuya primera página está en:

|

| http://usuarios.lycos.es/ortihuela/index.htm ,pues entonces:

|

| wget -r -nH http://usuarios.lycos.es/ortihuela/index.htm

|

| nos bajaría todo el contenido del curso (ficheros .html,.css,.jpg,etc) al directorio /ortihuela

|



9.=|«««««« OTROS »»»»»»|

'==================='





###########################################################################

# MLDONKEY #

# #

# telnet 127.0.0.1 4000 ---> Abrir interfaz telnet #

# kill --------------------> Matar mldonkey #

# q -----------------------> Cerrar interfaz telnet #

# ? -----------------------> Muestra la ayuda #

# ?? ----------------------> Muestra más ayuda #

# #

# add_user usuario clave --> Añade un nuevo usuario #

# add_user usuario clave --> Cambia la contraseña de un usuario #

# remove_use usuario ------> Elimina un usuario #

# #

# voo----------------------> Ver todas las opciones #

# set opción valor---------> Cambiar valor de la opción #

# 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 más servidores o al nº #

# 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 ------------> tamaño mínimo #

# | maxsize ------------> tamaño máximo #

# | media --------------> video|Audio|... #

# | Video --------------> video #

# | Audio --------------> audio #

# | format -------------> formato #

# | title --------------> título #

# | 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 estadísdicas 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 de temp #

# 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 versión del programa. #

# help --------------- Muestra la ayuda. #

# help commando ------ Muestra la ayuda del comando. #

# ? ------------------ Igual que `help' #

# #

# set ---------------- Muestra las opciones de mutella. #

# set+ --------------- Añade un valor a las opciones. #

# set- --------------- Quita un valor de las opciones. #

# color -------------- Configurar los colores de la consola. #

# #

# info opciones------- Muestra información sobre la actividad de la red. #

# |network -------- Información 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 conexión/es #

# find palabra/s opciones -- Buscar archivos #

# |-palabra ------- Excluye una palabra de la búsqueda. #

# |size:bytes ----- tamaño exacto del archivo,en bytes. #

# |around:bytes --- tamaño aproximado. #

# |min:bytes ------ tamaño mínimo del archivo,en bytes. #

# |max:bytes ------ tamaño máximo del archivo,en bytes. #

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

# '------------------------------- #

# #

# list --------------- Muestra las búsquedas en curso. #

# ls ----------------- Muestra sólo las búsquedas con resultados. #

# edit --------------- Modifica los términos de la búsqueda. #

# delete ID ---------- Elimina una búsqueda. #

# erase ID ----------- Elimina una búsqueda y borra la descarga parcial. #

# clear -------------- LImpia los resultados de una o más búsquedas. #

# results ID --------- Muestra los resultados de la búsqueda. #

# get ID ------------- Inicia la descarga de uno o más 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 #

# ! ------------------ Sinónimo de 'system' #

# #

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

# Todos los comandos admiten abreviaturas:info downloads por i d,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 información 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 sesión ftp y salir #

# ascii --------- Establecer tipo de transferencia ascii (sólo para .txt) #

# cd ------------ Cambiar el directorio de trabajo remoto #

# close --------- Finalizar la sesión ftp #

# ls ------------ Mostrar el contenido del directorio remoto #

# dir ----------- Mostrar el contenido del directorio remoto #

# delete -------- Eliminar archivo remoto #

# debug --------- Alternar modo de depuración #

# 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 múltiples directorios remotos #

# mdelete ------- Eliminar múltiples archivos #

# mget ---------- Obtener múltiples archivos #

# mkdir --------- Crear directorio en el equipo remoto #

# mls ----------- Mostrar el contenido de múltiples directorios remotos #

# mput ---------- Enviar múltiples archivos #

# open ---------- Conectar a tftp remoto #

# put ----------- Enviar un archivo #

# pwd ----------- Imprimir el directorio de trabajo del equipo remoto #

# quit ---------- Finalizar la sesión 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 información de usuario #

# verbose ------- Alternar modo detallado #

# #

###########################################################################







###########################################################################

# 9.d.-IRC #

# #

# /server ---------------------- Lista,añade o elimina servidores. #

# /server [nombre:puerto:clave]- Conecta con un servidor. #

# /info [servidor] ------------- Obtener información sobre servidor. #

# /lusers ---------------------- Obtener estadísticas 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 información sobre un usuario. #

# /whowas [nick]---------------- Informa sobre un usuario que ya no está. #

# /who [patrón] ---------------- Muestra información sobre patrón. #

# /msg NiCK SET PASSWORD [clave] Cambiar de contraseña(en irc-hispano) #

# /msg [nick | canal][texto]---- Envia un mensaje a un usuario o canal. #

# /amsg [texto] ---------------- '->a todos los canales en los que estás. #

# /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 estás. #

# /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:contraseña] ------ Identificarse en irc-hispano. #

# /part [canal] ---------------- Abandonar un canal. #

# /quit ------------------------ Cerrar todas las conexiones y salir. #

# #

# CTCP (Protocolo de cliente a cliente).Permite dar respuestas #

# predeterminadas y automáticas ante una petición espefífica de #

# otro usuario. #

# #

# DCC Protocolo que establece una conexión 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 división. #

# > 47 % 3 --------------------- Muestra el resto de la división. #

# > 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. #

# #

# También podemos hacerlo usando echo y mandando la salida a bc: #

# #

# echo "(2*3+2)" / sqrt "(2^3/2.5)" | bc #

# #

# en este caso los paréntesis deben ir entrecomillados #

# #

###########################################################################





#####################################################################################################################

# 9.e.-Colección de promps guapos : #

# #

# 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 sesión a otra hay que ponerlos en #el archivo .bashrc de tu home. #

# #

#####################################################################################################################