MundoNuevo | Mayo 2011
Introducción a GNU/Linux y la Programación
Author:
Date:
Copyright:
Slides:
Hugo Ruscitti <
[email protected]>, Osiris Gomez <
[email protected]>
2011-05-12
CreativeCommons
<http://gcoop.coop/pdf/introduccion-gnu-linux-programacion-2.pdf>
Introducción a GNU/Linux y la Programación | 1
MundoNuevo | Mayo 2011
Filosofía Unix
Escriba programas que hagan sólo una cosa pero que la hagan bien.
Escriba programas que trabajen juntos.
Escriba programas que manipulen flujos de texto, pues esta es una interfaz universal.
Todo es un archivo
En sistemas *nix todo es un archivo, es decir todos los dispositivos, las particiones de disco, CDs, impresoras,
tarjeta de sonido, video, etc.
Introducción a GNU/Linux y la Programación | 2
MundoNuevo | Mayo 2011
Permisos
r = read 4
w = write 2
x = execute 1
# usuario y grupo todo, el resto nada.
770 rwxrwx--
# solo dueño y grupo leer y ejecutar.
550 r-xr-x--
# solo dueño tiene escritura, todos pueden leer.
644 rw--r--r
Introducción a GNU/Linux y la Programación | 3
MundoNuevo | Mayo 2011
¿Qué és una consola?
Suele usarse indistintamente el termino shell, terminal, emulador de terminal, intérprete de comandos. Se puede
decir que es una interface de texto que permite ingresar instrucciones a un programa informático.
¿Por qué usar una consola?
Uno de los principales beneficios es la automatización de las tareas. Es la interconexión de comandos la mayor
ventaja, ya que esto permite escribir rápidamente soluciones que no tienen una aplicación específica que las
resuelva. Está siempre disponible en todas las distribuciones de GNU/Linux, BSD, Unix, etc.
es una alternativa.
está siempre disponible.
es igual en todas las distribuciones.
no necesita grandes recursos, ahorra batería y ancho de banda.
permite trabajar en remoto.
Introducción a GNU/Linux y la Programación | 4
MundoNuevo | Mayo 2011
comandos básicos
man leer el manual, es el mas importante!
echo eco, imprime texto en pantalla
ls listar archivos y directorios
pwd mostrar directorio actual
cd cambiar directorio
cp copiar
rm borrar
mv mover
mkdir crear directorio
cat muestra contenido de un archivo
Introducción a GNU/Linux y la Programación | 5
MundoNuevo | Mayo 2011
más comandos
more pagina la salida de un archivo
sort ordena
wc cuenta cantidad líneas y palabaras
grep filtra un texto
sed editor de texto en línea
awk procesa texto
find busca archivos
chmod cambia permisos
chown cambia el propietario de un archivo
alias define un alias para un comando
ps muestra procesos en ejecucion
Introducción a GNU/Linux y la Programación | 6
MundoNuevo | Mayo 2011
stdinput
En lugar de tipear podemos enviar un archivo como la entrada estandard de un comando:
mail
[email protected] < archivo.txt
stdoutput
Podemos almacenar en un archivo el resultado de la ejecución de un comando:
# sobreescribe
ls *.png >lista.txt
# agrega
ls *.txt >>lista.txt
pipe
Convertir la salida standard de un comando en la entrada standard de otro comando permite conectar procesos:
ls | sort
Introducción a GNU/Linux y la Programación | 7
MundoNuevo | Mayo 2011
Introducción a GNU/Linux y la Programación | 8
MundoNuevo | Mayo 2011
Tareas cotidianas
grabar un CD/DVD
descargar archivos
leer y responder correos
copiar archivos
publicar fotos
redactar y dar formato a un documento
Introducción a GNU/Linux y la Programación | 9
MundoNuevo | Mayo 2011
Expresiones regulares
[a-z] rango de la *a* a la *z*
[A-Z] rango de la *A* a la *Z*
[0-9] rango de 0 a 9
[^..] negación
^ principio de línea
$ fin de línea
. cualquier caracter
? cero o una aparición
* ninguna o muchas repeticiones
+ una o mas repeticiones
Introducción a GNU/Linux y la Programación | 10
MundoNuevo | Mayo 2011
Personalizando tu sesión con alias
set alias buscar='apt-cache search'
set alias instalar='apt-get install'
set alias web='w3m -dump'
set alias descargar='wget'
set alias editar='vim'
set alias filtrar='egrep -i --color=auto'
Instalando programas
apt-get
aptitude
pacman
yum
Introducción a GNU/Linux y la Programación | 11
MundoNuevo | Mayo 2011
Automatizando tareas
Tareas fácilmente enumerables.
Reproducibles en papel.
Se trabaja con listas.
# cuál es mi ip?
ip r | grep -o src.[0-9.]+ | awk '{print $2}'
# cuál es mi mac?
ifconfig eth0 | grep HWaddr | awk '{print $5}'
# sé la mac, pero cúal es la ip?
tcpdump -ennqti eth0 \( arp or 600pxp \) | grep "48:5b:39:6e:f4:d4"
# encender la compu remotamente
wakeonlan 48:5b:39:6e:f4:d4
# quíen está consumiendo todo el ancho de banda?
iftop -i eth0
# ips entregadas por dhcp?
egrep -o "[0-9]+>[0-9]+>[0-9]+>[0-9]+" dhcpd.leases | uniq | wc -l
# obtener una línea específica de un archivo
head -30 /var/log/messages | tail -1
# reemplazar texto en varios archivos
find -name '*.php' | while read i;do cat $i | \
Introducción a GNU/Linux y la Programación | 12
MundoNuevo | Mayo 2011
sed s/GNU/GPL/g >$i.tmp;cat $i.tmp>$i;done
# buscar en el contenido de una web
w3m -dump http://barrapunto.com | grep -i -C2 android
w3m -dump http://debian.org/News | grep -i squeeze | grep frozen >/tmp/debian
# notificar estado batería
if [ "$BAT_STATUS" = "Discharging" ];then \
if [ $BAT_PERCENT -le 25 ];then \
notify-send -u critical "$MSG" "$BAT_PERCENT";fi
else;notify-send "$MSG";fi
publicar fotos
c=0;ls | grep jpg | while read f; \
do mv -v $f $'mundo-nuevo-2010-'$c$'.jpg'; \
c=$[$c+1];done
for i in *.jpg
do
convert -filter cubic -resize 640 $i 640-$i
done
Introducción a GNU/Linux y la Programación | 13
MundoNuevo | Mayo 2011
Dudas y comentarios
mailto:
[email protected]
Cualquier duda pueden consultar por correo a la lista del curso.
http://gcoop.coop/capacitaciones
Pueden descargar ésta y otras charlas, incluído el código fuente
.
Introducción a GNU/Linux y la Programación | 14
Comentarios de: Introducción a GNU/Linux y la Programación (0)
No hay comentarios