Archive for May 19th, 2007

Creo que esto ya parece algun paquete de Debian, todo por partes, un ejemplo seria php5, php5-mysql, php5-gd, pero que va, asi es algo mas organizado y pues ahora creamos ejemplo1.bash (Con el editor que mas nos guste)

#!bin/bash
##########################
#Un script
# David Barreda 19/Mayo/07
##########################
clear
Who am I
echo “Mostrando el contenido del directorio actual”
sleep 3
ls
sleep 3
clear

le doy sus permisos de ejecucion

pato@A17:~$ chmod 755 ejemplo1.bash

y lo ejecuto

pato@A17:~$ ./ejemplo1.bash
pato pts/0 2007-05-19 13:36 (:0.0)
Mostrando el contenido del directorio actual
ark cosa Desktop Examples pato.tar.bz2 practicas
cipfried.npc d3 ejemplo1.bash impresora pato.tar.gz tmp1.txt

Vamos a ver las variables de ambiente con env (Borre algunas que estaban muy largas)

pato@A17:~$ env
SSH_AGENT_PID=5368
SHELL=/bin/bash
DESKTOP_STARTUP_ID=
TERM=xterm
GTK_RC_FILES=/etc/gtk/gtkrc:/home/pato/.gtkrc-1.2-gnome2
WINDOWID=44072840
USER=pato
SSH_AUTH_SOCK=/tmp/ssh-ywdtkv5330/agent.5330
GNOME_KEYRING_SOCKET=/tmp/keyring-F3dkyR/socket
SESSION_MANAGER=local/A17:/tmp/.ICE-unix/5330
USERNAME=pato
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
DESKTOP_SESSION=default
GDM_XSERVER_LOCATION=local
PWD=/home/pato
LANG=es_MX.UTF-8
GDMSESSION=default
HISTCONTROL=ignoreboth
SHLVL=1
HOME=/home/pato
GNOME_DESKTOP_SESSION_ID=Default
LOGNAME=pato
LESSOPEN=| /usr/bin/lesspipe %s
DISPLAY=148.226.81.52:0
LESSCLOSE=/usr/bin/lesspipe %s %s
COLORTERM=gnome-terminal
XAUTHORITY=/home/pato/.Xauthority
_=/usr/bin/env

Ahora vamos a crear una y luego vemos su contenido

pato@A17:~$ export PATH=.:$PATH
pato@A17:~$ echo $PATH
.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Haciendo este script algo mas largo, complejo, y mas bonito =) (esta vez lo descargamos por scp de la leccion de acceso
remoto para no tenerlo que re-escribir

pato@A17:~$ scp pato@148.226.81.23:/home/gerardo/public_html/ls .
pato@148.226.81.23’s password:
ls 100% 331 0.3KB/s 00:00
pato@A17:~$ cat ls
#!/bin/bash
##########################
#Mi primer script
# Gerardo, 19/mayo/07
##########################
clear
echo “Mostrando el contenido del directorio actual”
sleep 3
echo “Borrando tu disco duro”
sleep 1
echo “.”
sleep 2
echo “..”

sleep 3
echo “…”
sleep 3
clear
echo “Just kidding, por eso no debes tener el . en tu path”

Y he alli, la razon de porque no se debe poner el . en el path porque asi te pueden JODER! Ejecutando el script este (que bien podria tener un rm -rf * y borrar todo tu contenido) en lugar del comando ls ya que con el comando que hicimos hace rato, era para que no tubieras que poner ./ls y pusieras solo el nombre del binario, en este caso ls que tiene una broma que en algun momento podria ser maliciosa

Mejor cuando queramos nuestro path hacemos algo asi:

pato@A17:~$ mkdir bin
pato@A17:~$ export PATH=$PATH:/home/pato/bin

Y en este momento, nos estan pasando unas copias para aprender como usar el shell mejor, las leere mas tarde y publicare las payasadas que haga por aqui.

Ahora vamos a hacer un pequeño script que limpie la pantalla, nos de la hora, se duerma 10 segundos y vuelva a limpiar la pantalla:

pato@A17:~$ nano ejemplo2.bash
pato@A17:~$ chmod 755 ejemplo2.bash
pato@A17:~$ ejemplo2.bash
pato@A17:~$ mv ejemplo2.bash bin

Aqui el script que hize: (el contenido del ejemplo2.bash)

#!/bin/bash
##########################
#Un script
# David Barreda 19/Mayo/07
##########################
clear
date
sleep 10
clear

Claro, solo escribo ejemplo.bash porque ya puse mi path hace rato, pero como es un binario en cualquier otro lugar seria

./ejemplo2.bash

Ahora otros 2 scripts, uno que borre (sintaxis: elimina ) y otro que recupere (recupera ) lo que borre con el otro.

pato@A17:~/bin$ cat borrar
echo $1
mv $1 ~/.Trash
pato@A17:~/bin$ cat recupera
echo $1
mv ~/.Trash/$1 ~/

y listo! Aqui estan los resultados:

pato@A17:~$ touch x
pato@A17:~$ ls
ark cipfried.npc d3 ejemplo1.bash impresora pato.tar.gz tmp1.txt
bin cosa Desktop Examples pato.tar.bz2 practicas x
pato@A17:~$ borrar x
x
pato@A17:~$ ls
ark cipfried.npc d3 ejemplo1.bash impresora pato.tar.gz tmp1.txt
bin cosa Desktop Examples pato.tar.bz2 practicas
pato@A17:~$ recupera x
x
pato@A17:~$ ls
ark cipfried.npc d3 ejemplo1.bash impresora pato.tar.gz tmp1.txt
bin cosa Desktop Examples pato.tar.bz2 practicas x

Y pues con algo simple hicimos algo UTIL.

Ahora, algo un script, que nos cree scripts…

echo “#!/bin/bash”>$1
echo “################”>>$1
echo “#Nombre del script $1>>$1
echo “#Creador `whoami`>>$1
echo “#Fecha: `date`”>>$1
echo “################”>>$1
echo “Creando archivo ´$1´?
echo “Cargando…. ”
sleep 3
nano $1
chmod 755 $1
echo “Cambiando Permisos”

Asi creo un script con ese script con la extension .bash, y de tarea le tengo que agregar lo siguiente:
- Si no especificas el nombre del script, te debe preguntar como se va a llamar este.
- Si ese archivo ya existe, debes de cargar el que esta alli.

Comments No Comments »

Pues bien, esto es algo rapido, para conectarnos a un servidor via ssh (Reemplazo de Telnet, ya que Telnet usa texto plano y es inseguro), hacemos lo siguiente en la consola:

pato@A17:~$ ssh arkoldthos@arkold.ath.cx
The authenticity of host ‘arkold.ath.cx (189.129.47.222)’ can’t be established.
RSA key fingerprint is e0:0c:6e:17:92:fe:ef:cb:ff:24:73:84:e5:19:1f:aa.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘arkold.ath.cx,189.129.47.222′ (RSA) to the list of known hosts.
arkoldthos@arkold.ath.cx’s password:
Linux arkpc 2.6.18-4-k7 #1 SMP Mon Mar 26 17:57:15 UTC 2007 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have new mail.
Last login: Fri May 18 14:45:57 2007

arkoldthos@arkpc:~$ ps -e | grep amule
15006 ? 00:16:06 amule
arkoldthos@arkpc:~$ exit

Alli uso mi consola, como si estubiera localmente, y lo cerre con exit, un reeplazo a el FTP (Ya que tambien usa de texto plano) es el scp, y podria mover cosas del siguiente modo:

pato@A17:~$ scp arkoldthos@arkold.ath.cx:/hd2/home/arkoldthos/cipfried.npc .
arkoldthos@arkold.ath.cx’s password:
cipfried.npc 100% 3732 1.8KB/s 00:02

Alli, ya se movio aquel archivo del otro ordenador a el destino que especifique (.) que es la carpeta donde estoy.

Comments No Comments »

tar cvf curso.tar linux -> comprimimos el contenido de linux/ y se guarda en curso.tar
tar xvf curso.tar -> extrae todo el contenido de curso.tar

Hacemos 2 copias de curso.tar, quedandonos con 3 curso?.tar
cp curso.tar curso2.tar
cp curso.tar curso2.tar

pato@A17:~/practicas$ zip curso.tar.zip curso.tar
pato@A17:~/practicas$ zip curso.tar.zip curso.tar
adding: curso.tar (stored 0%)
pato@A17:~/practicas$ bzip2 curso3.tar

pato@A17:~/practicas$ ls
curso2.tar curso3.tar.bz2 curso.tar curso.tar.zip

y curso3.tar.bz2 termina siendo el mas ligero

Extrayendo archivos tar.gz
tar xzvf curso2.tar.gz
x=extaer
z= gzip
v= verbose
f=indicando el nombre del archivo

Extrayendo archivos bz2:
tar xjvf curso3.tar.bz2
j= para archivos bz2

Tarda mas en comprimir y descomprimir dependiendo del tipo de archivos que manejes, para comprobarlo usa el comando time para ver cuanto tarda en cada proceso, con la siguiente sintaxis: time

Ejemplo: time tar xjvf curso3.tar.gz

Y asi comprimi todos los archivos dentro de una carpeta

En bz2:

pato@A17:~$ tar cjvf pato.tar.bz2 *

En tar.gz:

tar czvf pato.tar.gz *

Comments No Comments »

Cambiando un poco la tematica de redes, vamos a Editores de Texto

1. ed
Basado por lineas, no recomendado!

2. vi
Existe en modo comando y modo edicion, todas las lineas que escriba van a ser un comando, para empezar a escribir, puedes hacerlo con la letra i, nos movemos a modo edicion, en si, voy a poner los pdf’s de este editor ya que es muy extenso.

3. vim
No tenemos los paquetes, pero los instalamos con un simple

sudo apt-get install vim-runtime

y ejecutamos vimtutor para aprender a manejar este editor de texto… Para mi, este es algo complicado y me quedo con mi querido nano (4)

4. nano
Un editor de texto algo mas intuitivo y facil de usar, ademas de ser el de mi uso diario…

etc… pondre el PDF con manuales y dibujitos mas tarde

Comments No Comments »

Creo que les llego tarde con la noticia, ya que este juego ya fue presentado hace como 1 o 2 dias, no recuerdo bien, los rumores de la salida de este juego venian de hace tiempo; Rumores como: “Starcraft II esta siendo desarrollado por Blizzard de Japón”, pero bueno, les cuelgo un video aqui, claro, tiene buena calidad pero es recomendable bajarlo desde http://www.starcraft2.com/ si lo quieres ver aun mejor, a mi me encanto, y pues… a disfrutarlo

Comments 1 Comment »

Que es una IP?

Direccion IP, es una direccion de 32 bits (claro, los mortales lo leemos como unos simples numeros separados por 3 puntos para lerlo facilmente), esta; sirve para comunicarse por el internet (estoy hablando de IPv4)

Un pequeño ejemplo seria esta IP: 192.168.1.1 que en bits seria

128 64 32 16 8 4 2 1 . 128 64 32 16 8 4 2 1 . 128 64 32 16 8 4 2 1 . 128 64 32 16 8 4 2 1

El minimo como IP es 0.0.0.0 y la maxima 255.255.255.255

IP = Red
Host

La IP es la que nos ayuda a localizar otro aparato conectada a la red

IPv4 tiene 4 tipos de IP’s, ( R=RED - H=HOSTS)

Tipo A = R.H.H.H

El primer bit siempre lo tomamos con un valor de 0, los demas si se pueden cambiar, todos 0’s o todos 1’s

0 00 0 0000 . 0 00 00000 . 0 0 0 0 0000 . 0 0 0 0 0000 = 0.0.0.0
0 11 1 1111 . 1 11 11111 . 1 1 1 1 1111 . 1 1 1 1 1111 = 127.255.255.255

2^7 = 128 redes de clase A
2^24 = 16′772,216 - 2 = 16′772,214 hosts de clase A, se quitan 2 porque no se usan cuando tienen = 0’s direccion de red
= 1’s direccion de broadcast
Osea que dentro de una red de clase A (ejem. 12.14.2.6) no se pueden usar 12.0.0.0 y 12.255.255.255

Tipo B = R.R.H.H

0 10 0 0000 . 0 00 00000 . 0 0 0 0 0000 . 0 0 0 0 0000, favor de ver esta diferencia, los numeros que estan en negritas estan FIJOS!
Dentro de esta tipo de red (B) el minimo es 128.0.0.0 y el maximo 191.255.255.255
2^14 = 16,384
2^16 = 65,636 - 2 = 65,634 hosts

Tipo C = R.R.R.H

En esta, estan fijos los 3 primeros bits, osea 0 10 0 0000 . 0 00 00000 . 0 0 0 0 0000 . 0 0 0 0 0000; el valor minimo que se puede tener es 192.0.0.0 y el maximo 223.255.255.255
2^21 = 2′097,152
2^8 = 256 - 2 = 254

Tipo D = MULTICAST (Se ignifica, mandar informacion a varias computoras al mismo tiempo mas no a todas)
UNICAST (Comunicacion entre 2 computadoras)
BROADCAST (A todas las computadoras)

Tipo C = PRUEBAS (No se utilizan)

Direcciones Especiales
RFC 1918 (Request For Comments), direcciones privadas, redes no homologadas
10.0.0.0/24 | Cuando llevan internet necesitan:
172.16.0.0/16 > Proxy, NAT (Network Address Translation)
192.168.0.0/24 |

No tienen acceso internet, son privadas, y estas, pueden ser utilizadas en distintas redes sin interferir en otras

Subredes Dividir mi red en red en redes mas pequeñas, prestar bits de la parte de host para crear la subred
Máscara (Netmask) = Poner en 1.s la parte de red + parte de subred y represtarla en decimal

Suponemos que tenemos la red 192.168.10.0 (red no homologada)
Máscara = 255.255.255.0

Aqui una maquina sin internet:

pato@A17:~$ ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:106 errors:0 dropped:0 overruns:0 frame:0
TX packets:106 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9039 (8.8 KiB) TX bytes:9039 (8.8 KiB)

Y aqui me conecto asignando mi host, netmask y bcast

pato@A17:~$ sudo ifconfig eth0 192.168.10.4 netmask 255.255.255.0 broadcast 192.168.10.255
pato@A17:~$ ifconfig eth0eth0 Link encap:Ethernet HWaddr 00:11:85:C0:BC:C0
inet addr:192.168.10.4 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::211:85ff:fec0:bcc0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:720 errors:0 dropped:0 overruns:0 frame:0
TX packets:90 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:73842 (72.1 KiB) TX bytes:35089 (34.2 KiB)
Interrupt:16

Nota, para que te asigne los valores que le des debes matar el proceso (si esta iniciado) dhclient

Ahora, vamos a dividir nuestra red en subredes, que divertido! =)

128 64 32 16 8 4 2 1 . 128 64 32 16 8 4 2 1 . 128 64 32 16 8 4 2 1 . 128 64 32 16 8 4 2 1
1 100 0 0000 . 1 01 00000 . 0 0 0 0 1010 . 0 0 0 0 0 0000

Subredes = (2^Numero de bits prestados)-2
Cuantas sub-redes vamos a hacer? 3, entonces
2^3=8-2=6 por lo tanto debemos de prestarle 3 bits, siempre hay que prestar de izquierda a derecha entonces prestamos:

1 100 0 0000 . 1 01 00000 . 0 0 0 0 1010 . 0 0 0 |0 0000
X X X |

Temos 8 diferentes configuraciones asi que, tenemos las siguientes:
1 100 0 0000 . 1 01 00000 . 0 0 0 0 1010 . 0 0 0 | 0 0000
X X X |
0 0 0 |1 1111 = 192.168.10.0 10.31
0 0 1 |
0 1 0 |
0 1 1 |
1 0 0 |
1 0 1 |
1 1 0 |
1 1 1 |

Subred
0 192.168.10.0 - 192.168.10.31 host por cada subred
255.255.255.224 -> Máscara de red

Tenemos vamos la teoria, vamos a la practica

pato@A17:~$ sudo ifconfig eth0 192.168.10.67 netmask 255.255.255.224 broadcast 192.168.10.63
pato@A17:~$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:11:85:C0:BC:C0
inet addr:192.168.10.67 Bcast:192.168.10.63 Mask:255.255.255.224
inet6 addr: fe80::211:85ff:fec0:bcc0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4726 errors:0 dropped:0 overruns:0 frame:0
TX packets:128 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:405782 (396.2 KiB) TX bytes:40403 (39.4 KiB)
Interrupt:16

Dentro del aula donde estamos, como son 3 filas, cada una usa una subred diferente… yo uso la 2, =)

Un ejemplo practico:

pato@A17:~$ ping 192.168.10.32
connect: Network is unreachable
pato@A17:~$ ping 192.168.10.98
connect: Network is unreachable
pato@A17:~$ ping 192.168.10.66
PING 192.168.10.66 (192.168.10.66) 56(84) bytes of data.
— 192.168.10.66 ping statistics —
3 packets transmitted, 0 received, 100% packet loss, time 2010ms

Vamos a poner la maquina del maestro como router, el escribe en su terminal:

sudo ifconfig eth0:1 192.168.10.65 netmask 255.255.255.224 broadcast 192.168.10.65
sudo ifconfig eth0:1 192.168.10.65 netmask 255.255.255.224 broadcast 192.168.10.97
sudo ifconfig eth0:2 192.168.10.65 netmask 255.255.255.224 broadcast 192.168.10.127
y como root (NO sudo)
echo 1 > /proc/sys/net/ipv4/ip_forward

y de ese modo ya encamina paquetes

sudo router add default gw 192.168.10.X (X = direccion de su IP en su respectiva red) asi que 192.168.10.65 como gateway

pato@A17:~$ sudo route add default gw 192.168.10.65

en mi terminal

pato@A17:~$ ping 192.168.10.97
PING 192.168.10.97 (192.168.10.97) 56(84) bytes of data.
64 bytes from 192.168.10.97: icmp_seq=1 ttl=64 time=0.211 ms
64 bytes from 192.168.10.97: icmp_seq=2 ttl=64 time=0.175 ms
64 bytes from 192.168.10.97: icmp_seq=3 ttl=64 time=0.189 ms

y listo, ya estoy conectado al router =) ya me puedo comunicar con las demas maquinas del aula, aun asi, esten en otra subred.

Como ver nuestro ‘route’

pato@A17:~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.64 * 255.255.255.224 U 0 0 0 eth0
default 192.168.10.65 0.0.0.0 UG 0 0 0 eth0

Suponemos que tenemos esta IP 192.168.10.34/27
128 64 32 16 8 4 2 1 . 128 64 32 16 8 4 2 1 . 128 64 32 16 8 4 2 1 . 128 64 32 16 8 4 2 1
1 100 0 0000 . 1 0 1 00000 . 0 0 0 0 1010 . 0 0 0 0 0 0000 = 192.168.10.34
La mascara seria:
1 11 1 1111 . 1 1 11 1111 . 1 1 1 1 1111 . 1 1 1 0 0 0 0 = 255.255.255.224
_____________________________________________________________________________
Osea:
1 1 0 0 0000 . 1 0 10 10000 . 0 0 0 0 1010 . 0 01 0 0000 = 192.168.10.32

Calcula como llegar a la red y a el ordenador, etc… espero que entiendas :P
Asi puedo explicar, cuantos saltos tiene que dar para llegar a una computadora de otra subred pasando por el route

pato@A17:~$ tracepath 192.168.10.97
1: A17.local (192.168.10.67) 0.134ms pmtu 1500
1: 192.168.10.97 (192.168.10.97) 0.542ms reached
Resume: pmtu 1500 hops 1 back 1

Direcciones Fisicas:

pato@A17:~$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:11:85:C0:BC:C0
inet addr:192.168.10.67 Bcast:192.168.10.63 Mask:255.255.255.224
inet6 addr: fe80::211:85ff:fec0:bcc0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10500 errors:0 dropped:0 overruns:0 frame:0
TX packets:207 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:895538 (874.5 KiB) TX bytes:48094 (46.9 KiB)
Interrupt:16

Esa que esta sombreada, es la direccion fisica (MAC), los primeros numeros tienen la informacion de la manufacturera, los primeros 24 bits son de esta, y los otros 24 son como un serial asignado por la manufacturera. Y en total, son de 48 bits.

Comments No Comments »