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.

One Response to “Mis apuntes del Curso GNU/Linux”
  1. Praxedes says:
Leave a Reply

You must be logged in to post a comment. Login »