Archive for May, 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 »

Hola :P Hoy viernes, Rossana y yo compramos una conejita que le pusimos de nombre “Tequila” y pues aqui una foto =)

conejitaa tequilaaaaa

Si o no esta bonita? =)

Comments 1 Comment »

Aprovechando que es el dia del Internet, leyendo uno de los blogs que estan en el blogroll encontre este poema tambien, que va por el dia del internet, espero que les guste.

Poema Cibernético

Les Luthiers

Te veo por esos campos
en mis suenos cibernéticos,
ondeando al viento tus cables
por esos campos magnéticos.

Me atraviesa una descarga,
un eléctrico temblor,
cuando deslizo mi mano
por tu panel posterior

Tengo celos de los hombres
que tu memoria han cargado,
que movieron tus tarjetas,
que tocaron tu teclado.

Excitaron tus circuitos
y, aunque sé que no los amas,
son demasiados los hombres
con los que has hecho programas.

¿En qué estarás procesando,
tu monitor? ¿Por qué calla?
Me estás ocultando algo,
se te nota en la pantalla.

No contestas mi diskette.
¿Por qué no me imprimes nada?
No almacenaste mis ruegos.
¿O es que estás desenchufada?

Eres cruel e insensible
al amor que me devora.
Eres fría y sistemática.
Eres muy calculadora.

Grábame algún mensaje.
Con esa voz digital,
puedes comenzar a hablar
a partir de la señal.

Para todos los demás,
no eres más que una computadora
que no siente, ni palpita,
para mí siempre serás, simplemente dora…
dora…mi computita.

Comments No Comments »

Pues, ultimamente se a notado mi inactividad (eso espero :P) en foros, mi blog, IRC, etc… Y pues principalmente es por mi horario; llego a mi casa a las 15:30 mas o menos, a las 20:00 a el GYM y se preguntaran que hago entre esas horas, pues, como lo dice el titulo, actualmente estamos trabajando en un cortometraje con el maestro Ellard del Colegio de Xalapa donde yo estudio, yo principalmente estoy en lo que es la direccion de este cortometraje (Por el momento no he estado en ninguna toma y aunque no quiero estar creo que hoy grabaran conmigo bajo las camaras, pero ya ni modo…), mi novia (Rossana) es la personaje principal dentro de la historia, donde ella a corta edad amaba a su padre, que para la familia era un funcionario del gobierno, pero el dia de su asesinato se descubre que era un narcotraficante, la familia pierde casi todo, y ella empieza a odiar a los hombres, ya que hizo un estereotipo de ellos desde su niñez, despues descubre que no todos son iguales, se enamora de un compañero de la escuela (Fernando), quien era molestado por el grupo de la joven que odiaba a los chicos en ese tiempo, hasta que el maestro la obligo a trabajar junto a el; este, la ayuda durante un asalto y se gana su amor, son pareja desde la secundaria hasta la universidad, y pues, recuerdan lo que les dije? del asalto? Pues, uno de los delicuentes le dijo que nunca se le hiba a olvidar ese dia y en la universidad este chico es asesinado… Una historia que va a valer la pena, proximamente la publicare por aqui cuando le pida permiso a el escritor (mi maestro de teatro) y el video cuando ya este terminado y editado.

Comments 1 Comment »

Probably this is my only post on Spanish in all my blog, counting the entries that were deleted, but anyway, I am taking the notes too fast during the curse and really, I will not traslate them cause I am too lazy. Here is.

Note, I will post all this in Spanish, probably later I do some PDF’s files, probably in English, depend of my free time.

Para empezar:
Textos interesantes:
“Catedral y el bazar”
“El derecho a leer”
“Pringao How-To”
“GNU General Public Licence)

Como ir a home (”tu hogar”) - vas a el hogar del usuario que estes usando

cd
cd ~
cd $HOME

Estructura de directorios…
cd .. - sube un directorio en el arbol de archivos
cd . - especifica el directorio donde estas ahorita

Algunas herramientas faciles, pero utiles, dentro de la consola :
CTRL + U Borra todo a la izquierda del cursor
CTRL + L Limpia la pantalla

alias - agregas un alias a un comando, por ejemplo, alias ls=’ls –color’
touch - crear archivo o modificar fecha de actualizacion
whatis descripcion de algun comando, ejemplo, man
apropos - nos busca el manual, nombres y restricciones
man - abre el manual de x aplicacion, como extra, puedes abrir x linea, ejemplo: man -s 5 passwd, asi entra a la quinta pagina

pato@A17:~/ark$ whatis man
man (1) - an interface to the on-line reference manuals
man (7) - macros to format man pages

date - Algo logico por el nombre

pato@A17:~/ark$ date
sáb may 12 13:44:15 CDT 2007

strings - cadenas de un archivo
more - puedes ver como si fuera un man un archivo de texto, cuando llegas al final se cierra
less - lo mismo que more, pero cuando llegas al final te muestra END y no se cierra
zmore - Lo mismo que more pero con archivos comprimidos en gz
zmore - Lo mismo que less pero con archivos comprimidos en gz
tail - vez las ultimas 10 lineas de un archivo, -f sirve para ver modificaciones sin actualizar manualmente
head - vez las primeras 10 lineas de un archivo
cat - te saca todo el contenido de un archivo de texto
!! - ejecuta el ultimo comando, puedes poner !!apt y pone lo ultimo que se hizo con apt…
rmdir - borra directorio (necesita estar vacio)
rm - borra (-r para borrar carpetas, sin importar su contenido)
wc - lineas, palabras, caracteres de un archivo
cp - copiar y pegar, seria algo como…

arkoldthos@arkpc:~$ mkdir ark
arkoldthos@arkpc:~$ cd ark
arkoldthos@arkpc:~/ark$ touch x
arkoldthos@arkpc:~/ark$ mkdir d1
arkoldthos@arkpc:~/ark$ cp x d1

mv - mover o renombrar
echo - saca el texto, para especificar donde (normalmente en la misma shell) se le pone > para agregarlo a el final (sobreescribe), >> lo pone abajo de la ultima linea

ej. echo “cosa” >> archivo.txt

ls -l - ver atributos, listado largo de archivos
s - sockets
p - pipe
b - bloques
d - directorio
etc…

pwd - te muestra donde estas
ej.

pato@A17:~$ pwd
/home/pato

id - identificacion de usuario
ej.

pato@A17:~$ id
uid=1000(pato)gid=1000(pato)grupos=4(adm),20(dialout),24(cdrom),
25(floppy),29(audio),30(dip),44(video),46(plugdev),104(scanner),
112(netdev),113(lpadmin),115(powerdev),117(admin),1000(pato)

Permisos
A nivel de dueño, grupos u otros:
rwx lectura, escritura y ejecution

El dueño de un archivo, es quien lo crea
Grupo, gente que pertenece a mi mismo grupo
Otros, gente que no es el dueño ni pertenece a los grupos

Cuando creo un archivo

pato@A17:~/ark$ touch cosa
pato@A17:~/ark$ ls -l
total 0
-rw-r–r– 1 pato pato 0 2007-05-12 13:07 cosa

Algunos ejemplos practicos viendo a:
r como 4 (leer)
w como 2 (escribir)
x como 1 (ejecutar)

Ahora si, la suma de 4, 2 y 1 (4+2+1=7), osea se, 7 es tener permisos de leer, escribir y ejecutar, y son tres sietes para especificar dueño, grupo y otros.

Vamos a hacer una CHMOD para mi directorio hogar,
Quiero que yo como el todo poderoso de mi hogar, quiero permisos de leer, escribir y ejecutar, osea se (4+2+1=7)
Quiero que los de mi grupo lo puedan leer, y ejecutar pero no quiero que lo escriban, osea se (4+1=5)
Quiero que los desconosidos solo lo puedan ejecutar, pero no leer ni escribir, osea se (1=1)

Y terminamos con un 751, ahora vamos a ejecutarlo

pato@A17:~/ark$ chmod 751 cosa
pato@A17:~/ark$ ls -l
total 0
-rwxr-x–x 1 pato pato 0 2007-05-12 13:07 cosa

Y ya, nuestro archivo tiene los valores que quisimos

u = owner (dueño)
g = group (grupo)
o = otros (others)

Pero si queremos agregar permisos de leer a los desconocidos (otros), ponemos

pato@A17:~/ark$ chmod o+r cosa
pato@A17:~/ark$ ls -l
total 0
-rwxr-xr-x 1 pato pato 0 2007-05-12 13:07 cosa

El numero que sigue, que seria el 1 despues de toda la chorrada de los permisos, seria el numero de enlaces que hay hacia el archivo, dejen se los pongo en negritas:

-rwxr-xr-x 1 pato pato 0 2007-05-12 13:07 cosa

Despues, sigue el usuario

-rwxr-xr-x 1 pato pato 0 2007-05-12 13:07 cosa

Despues, el grupo al que pertenece

-rwxr-xr-x 1 pato pato 0 2007-05-12 13:07 cosa

Despues, el peso, en este caso es, 0, siguiendolo, la fecha de actualizacion (la cual se puede actualizar con touch), y despues el nombre del archivo…

Si ya tenemos un archivo que tenga un peso considerable, pues los bytes son algo dificiles ya que tenemos que convertir, asi que si queremos que ls nos muestre el peso en un formato humanamente leible, agregamos el modificador ls -lh

Redireccionar una salida (por defecto, la misma shell)
Ejemplo, ls > directorio.txt y vean el resultado

pato@A17:~/ark$ cat directorio.txt
cosa
directorio.txt

Sin embargo, si lo repito se va a sobre-escribir la informacion, para demostrarlo, voy a cambiarle el nombre de “cosa” por “thing”

pato@A17:~/ark$ mv cosa thing
pato@A17:~/ark$ ls > directorio.txt
pato@A17:~/ark$ cat directorio.txt
directorio.txt
thing

Si vez, ya no hay rastro de la redireccion pasada, pero mira ahora, regreso “thing” con el nombre “cosa”, y ver si lo agrego abajo de lo que me dio la vez pasada… claro, con otro parametro que no es >, ahora va a hacer >>

pato@A17:~/ark$ mv thing cosa
pato@A17:~/ark$ ls >> directorio.txt
pato@A17:~/ark$ cat directorio.txt
directorio.txt
thing
cosa
directorio.txt

Vieron? Ahora lo agrega abajo, y no lo sobre escribe.

Ahora, mandar correos entre usuarios, puede ser asi (dentro del mismo sistema)

pato@A17:~/ark$ write pato
Hola pato =)

Y en otra consola me da

pato@A17:~$
Message from pato@A17 on pts/0 at 13:51 …
Hola pato =)

Para buscar archivos con find

pato@A17:~$ find . -name ‘passwd’
./practicas/d1/d1.1/passwd
./practicas/d3/d3.1/passwd

Alli sale los archivos con ese nombre que copie hace un buen rato para probar el comando cp (copy paste)

Ahora, cree un directorio llamado privado con permisos chmod 000

pato@A17:~/practicas$ mkdir privado
pato@A17:~/practicas$ chmod 000 privado
pato@A17:~/practicas$ find . -name ‘passwd’
./d1/d1.1/passwd
find: ./privado: Permiso denegado
./d3/d3.1/passwd

Si me llegara a aparecer un error asi mientras hago ‘find’, hago lo siguiente para que no aparescan (sea por permisos o otras cosas):

Primero, si quiero que se vallan a ningun lugar y mueran alli (es un decir, claro), seria:

pato@A17:~/practicas$ find . -name ‘passwd’ 2>/dev/null
./d1/d1.1/passwd
./d3/d3.1/passwd

Y si queremos ver el error despues, claro, con algo mas complejo, no con algo tan chiquito… (bueno, si quieres guardarlo, guardalo, por mi no hay problema)

pato@A17:~/practicas$ find . -name ‘passwd’ 2>error.txt
./d1/d1.1/passwd
./d3/d3.1/passwd
pato@A17:~/practicas$ cat error.txt
find: ./privado: Permiso denegado

Y claro, al igual que las salidas que vimos hace rato, podemos poner algo como,

pato@A17:~/practicas$ find . -name ‘passwd’ 2>>error.txt

Para que se ponga debajo del error que ya teniamos y ya :P
Otra cosa interesante, y molesta, es poner ls en alguna carpeta con muchos archivos, y no alcanzar a leer todos, para eso podemos escribir

ls | more

Asi te muestra el ls por paginas, y de una manera comoda, asi se puede usar con muchos otros comandos, con todos para ser exacto.

Un ejemplo algo practico, quiero ver el quinto usuario creado en este equipo:

pato@A17:/etc$ head -n 5 passwd | tail -n 1
sync:x:4:65534:sync:/bin:/bin/sync

Paso por paso

pato@A17:~/ark$ head -n 5 /etc/passwd >tmp1.txt
pato@A17:~/ark$ cat tmp1.txt
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync

Lo puse en tmp1.txt para hacerlo paso por paso… asi, esas 5 lineas se guardan en el texto, y el tail -n 1 tmp1.txt te mostraria la ultima, de este modo…

pato@A17:~/ark$ tail -n -1 tmp1.txt
sync:x:4:65534:sync:/bin:/bin/sync

Esto se ignifica, que la seguna aplicacion toma la salida de el otro

ps -e me muestra todos los procesos, pero puedo usar ps -e | grep apache por ejemplo, aqui no tengo apache, pero asi te mostraria solo los procesos para el apache

ps -e | wc -l te muestra cuantos procesos estan corriendo

pato@A17:~/practicas$ ps -e | wc -l
103

ls -F | grep / | wc -l ls -F agrega el caracter / al final de los archivos, grep / hace el filtrado y wc -l los cuenta

pato@A17:~/practicas$ ls
d1 d2 d3 dddd error.txt
pato@A17:~/practicas$ ls -F | grep / | wc -l
4

Un programita que hice ocupando lo que hemos aprendido

echo “Reporte de `cat /etc/hostname` el `date`.”;
echo “En el directorio actual hay `ls -F | grep / | wc -l` directorios.”;
echo “Y hay `cat /etc/passwd | wc -l` usuarios.”;
echo “En este equipo se estan ejecutando `ps -e | wc -l` de los cuales `ps | wc -l` se estan ejecutando en este usuario.”;

Ahora, vamos a empezar a saber como se usan los procesos
Abrimos la calculadora de Gnome, este proceso se llama gcalctool, asi que vamos a ver su pid de este modo:

pato@A17:~/practicas$ ps -e | grep gcalctool
15363 ? 00:00:00 gcalctool

Si no lo sabemos, podemos hacer esto:

ps | less (en caso de que no lo alcasemos a ver con ps), ya que sabemos el pid, hacemos lo siguiente

pato@A17:~/practicas$ kill -9 15363

Señales mas usadas en kill:
-9 - Matarla
-HUP - Matala, vuelvela a iniciar usando el mismo pid
Hay mas, podeis consultarlas en man signal

En caso de que no quieras consultar el PID, y sepas el nombre de la aplicacion, puedes usar esto:

pato@A17:~/practicas$ killall

en este caso,

pato@A17:~/practicas$ killall -9 gcalctool

.

Nota: Puede servir si se te blokea una aplicacion, si se te blokea el xorg (puedes matar kdm, gdm, yo que se…) por ssh, o ya sea CTRL + ALT + BACKSPACE que te puede salvar de aprietos, ya que muchos programas como apache2, mysql, etc… corren en el ‘background’ y lo que dejo de responder fue el xorg y no estos servidores.

Otra cosa interesante, es el pstree que te muestra los procesos de una manera en forma de arbol, muy util en algunos casos, yo lo veo como… no se, si matas a los padres, que son una dependencia para las otras aplicaciones que se derivan… yo que se.

Quiero iniciar alguna aplicacion (ya sea grafica o textual), las abro desde la terminal, ejemplo…

pato@A17:~/practicas$ gaim
–En este lapso se abre el GAIM, pero esta atado a la consola, quieres seguir usando la terminal, pero le das ‘CTRL + C’ y se cierra la aplicacion, tu lo que quieres es usarlo, pero tambien la consola, asi que mejor lo ‘dormimos’, con ‘CTRL + Z’
bg fg
[1]+ Stopped gaim

Noten que se quedo en el proceso numero 1 durmiendo, asi que podemos hacer dos cosas, ‘despertarlo’, o mandarla a background para que se ejecute allá, de los siguientes modos:

pato@A17:~/practicas$ bg 1
[1]- gaim &

Ahora corremos man ls del mismo modo y lo dormimos

pato@A17:~/practicas$ man ls
[2]+ Stopped man ls

Y podemos ver los procesos que duermen de este modo:

pato@A17:~/practicas$ jobs
[1]- Stopped gaim
[2]+ Stopped man ls

Ahora, puedes ocupar el GAIM y utilizar la consola tambien (Nota: Si GAIM quiere dar una salida (’output’), se va a ir a la terminal donde la mandaste a background, para que no le pase nada, puedes hacer esto, nohup gaim & y la mandas a background)

Si quieres cerrar la terminal, y dejar que esta siga corriendo la inicias del segundo modo:

pato@A17:~/practicas$ nohup gaim &
[4] 15969
pato@A17:~/practicas$ nohup: se añade la salida a `nohup.out’

Y asi ya podemos cerrar al terminal y tener el gaim corriendo sin problema, y claro, una funcionalidad buena seria como:

pato@A17:~/practicas$ nohup wget http://algo.com/algo.iso &

Y te vas de vacaciones y cuando regreses probablemente ya vas a aver bajado este archivo (depende del tamaño y tiempo jeje) y pues, alli un buen uso de esto.

Ahora para finalizar esta sesion, vamos a modificar sudo vi /boot/grub/menu.lst para cambiar el arranque por defecto Windows XP para los chamos de la universidad…

Nos vamos al final del documento por donde dice ## ## End Default Options ##, vamos a contar cada title desde 0, osea Windows es el cuarto (4), y al principio dice

default 0

y lo cambiamos por (CTRL + r + r)

default 4

Lo grabamos (CTRL + z + z)

Y damos por finalizado esto, hasta el proximo Sabado, a sido una sesion algo interesante =) mas practica y menos teoria comparada con la semana pasada. –Ya pondre los archivos por aqui durante la semana.

Comments 1 Comment »