29 de diciembre de 2009

Caracteres del teclado

Combinación teclas
Signo
Descripción
Alt+0151

Raya
Alt+0150

Menos
(con tecla propia)
-
Guion
Alt+0191
¿
Interrogación de apertura
Alt+0161
¡
Exclamación de apertura
Alt+164
ñ
(ñ, con tecla propia en teclado español)
Alt+165
Ñ
(Ñ, con tecla propia en teclado español)
Ctrl+Mayús+(espacio)

Espacio fijo (entre dos palabras)
Ctrl+Mayús+-
-
Guion fijo (entre dos palabras)
Alt+174
«
Comillas latinas o españolas de apertura
Alt+175
»
Comillas latinas o españolas de cierre
Alt+0147

Comillas altas o inglesas de apertura
Alt+0148

Comillas altas o inglesas de cierre
Alt+0145
'
Comillas simples de apertura
Alt+0146
'
Comillas simples de cierre
Alt+0133
...
Puntos suspensivos
Alt+166
ª
Ordinal femenino voladita
Alt+167
º
Ordinal masculino voladita
Alt+248
°
Grado
Alt+0128

Euro
Alt+0162
¢
Centavo
Alt+0163
£
Libra esterlina
Alt+171
1/2
Un medio
Alt+172
1/4
Un cuarto
Alt+190
3/4
Tres cuartos
Alt+0169
©
Símbolo de copyright
Alt+0174
®
Símbolo de marca registrada
Alt+0153

Símbolo de marca
Alt+0167
§
Párrafo
Alt+0182

Calderón
Alt+0134

Cruz
Alt+0135

Cruz doble
Alt+0177
±
Más menos
Alt+126
~
Tilde o virgulilla
Alt+486
µ
Micra
Alt+0759
÷
Dividido por
Alt+249
·
Punto centrado
Alt+ 64
@
Arroba
Alt+0149

Topo (para listas)
Alt+0216
Ø
O barrada
Alt+0137

Por mil



from: http://www.rlozano.com/consulta/14/14.html

Tutorial sobre perl (...en construcción)


El lenguaje perl esta especialmente indicado para el manejo de ficheros y la depuración de texto. Según me ha comentado una mogo que está ahora progrmando con él tiene unas expresioner regulares muy potentes y sencillas.
... ya veremos.

COMADOS Y ESTRUCTURAS BÁSICAS DEL PERL

1) Para confirmar si esta instalado el intérprete perl:

# perl -v

This is perl, v5.10.0 built for i486-linux-gnu-thread-multi
Copyright 1987-2007, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl".  If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.


2) Para ver la ruta de perl:
#which perl
/usr/bin/perl

los scripts de perl deben comenzar indicando la ruta del interprete:
#!/usr/bin/perl

3) Variables en perl:
  • Escalares "$":




    • $NUM = 4;
    • $TEXT = "texto";



  • Arrays "@":




    • @NUMEROS = (1,2,3,4,5);
    • @DIAS = ("lunes" , "martes" , "miercoles");



  • Hash "%":




    • %DIAS = ( l =>; "lunes" , m =>; "martes" , mi =>; "miercoles"



4) Argumentos en perl:
./perlscript.pl a b c
$ARGV [0]  = a
$ARGV [1]  = b
$ARGV [2]  = c
$#ARGV   = 2; indica el indice del último argumento.

5) condicional "if" , "else", "elsif":

#!/usr/bin/perl
if ($VAR == 10) {
print "Es igual a 10";
} 
if ($VAR > 10) {

print "Mayor de 10\n";
}
if ($VAR > 20){
print "Mayor de 20\n";
}
if ($VAR > 30){
print "Mayor de 30\n";
}
else {
print "Menor de 10";
}


Formas resumidas de if: 

if($VAR > 10) print "Mayor de 10";
ó 
print "Mayor de 10" if($VAR > 10);


6) Condicional "unless"
#!/usr/bin/perl
print "Hola" unless ($NOHOLA = 1);

7) Bucle "while":
#!/usr/bin/perl 
$T = 0;
while ($T < 5) {
print "Hola 5 veces\n";
$T = $T + 1;
}

8) Bucle "until":
#!/usr/bin/perl 
$T = 1;
until ($T > 5) {
print "Hola 5 veces\n";
$T = $T + 1;
}

9) Bucle "for":
#!/usr/bin/perl
for ($T = 0 ; $T < 5 ; $T = $T + 1){
print "Hola 5 veces\n";
}

10) Bucle "foreach":
#!/usr/bin/perl
@SEMANA=("lunes" , "martes" , "..." , "y domingo");
foreach  $DIA  (@SEMANA) {
print "$DIA\n";
}


11) Abriendo archivos:
open (FILE, "file.txt");    #en modo lectura.
open (FILE, ">file.txt");   #en modo escritura.
open (FILE, ">>file.txt");  #en modo actualización.

open (FILE, ">file.txt") or print "Sin acceso al archivo";

close (FILE);

12) Escribiendo en archivos (open, print, close):
#!/usr/bin/perl
open (FILE, ">>file.txt") or die "Privilegios insuficentes\n";
print FILE "Texto añadido al archivo file.txt";
close (FILE);

13) Leyendo archivos
Podemos copiar el contenido de un archivo a una variable array, cada línea es un elemento de la matriz:

#!/usr/bin/perl
open (FILE, "file.txt");
@VAR = <FILE>;
close (FILE);
print @VAR;

Haciendo un bucle con las filas del archivo:

#!/usr/bin/perl
open (FILE, "file.txt");
while ($LINEA = <FILE>) {
print $LINEA;
}
close (FILE);


14) Quitar espacios en blaco a avariable: =~ s/ //g
#!/usr/bin/perl
$FRASE = "Frase con esapacios";
print "$FRASE\n";
$FRASE =~ s/ //g;
print "$FRASE\n";

result:
Frase con esapacios
Fraseconesapacios

15)  Expresiones regulares en perl:

Pattern
Matches
^A
"A" at the beginning of a line
A$
"A" at the end of a line
A^
"A^" anywhere on a line
$A
"$A" anywhere on a line
^^
"^" at the beginning of a line
$$
"$" at the end of a line

Regular Expression
Matches
[]
The characters "[]"
[0]
The character "0"
[0-9]
Any number
[^0-9]
Any character other than a number
[-0-9]
Any number or a "-"
[0-9-]
Any number or a "-"
[^-0-9]
Any character except a number or a "-"
[]0-9]
Any number or a "]"
[0-9]]
Any number followed by a "]"
[0-9-z]
Any number,

or any character between "9" and "z".
[0-9\-a\]]
Any number, or

a "-", a "a", or a "]"

Regular Expression
Matches
_
*
Any line with an asterisk
\*
Any line with an asterisk
\\
Any line with a backslash
^*
Any line starting with an asterisk
^A*
Any line
^A\*
Any line starting with an "A*"
^AA*
Any line if it starts with one "A"
^AA*B
Any line with one or more "A"'s followed by a "B"
^A\{4,8\}B
Any line starting with 4, 5, 6, 7 or 8 "A"'s

followed by a "B"
^A\{4,\}B
Any line starting with 4 or more "A"'s

followed by a "B"
^A\{4\}B
Any line starting with "AAAAB"
\{4,8\}
Any line with "{4,8}"
A{4,8}
Any line with "A{4,8}"

Regular Expression
Class
Type
Meaning
_
.
all
Character Set
A single character (except newline)
^
all
Anchor
Beginning of line
$
all
Anchor
End of line
[...]
all
Character Set
Range of characters
*
all
Modifier
zero or more duplicates
\<
Basic
Anchor
Beginning of word
\>
Basic
Anchor
End of word
\(..\)
Basic
Backreference
Remembers pattern
\1..\9
Basic
Reference
Recalls pattern
_+
Extended
Modifier
One or more duplicates
?
Extended
Modifier
Zero or one duplicate
\{M,N\}
Extended
Modifier
M to N Duplicates
(...|...)
Extended
Anchor
Shows alteration
_
\(...\|...\)
EMACS
Anchor
Shows alteration
\w
EMACS
Character set
Matches a letter in a word
\W
EMACS
Character set
Opposite of \w

Regular Expression
Class
Type
Meaning
\t
Character Set
tab
\n
Character Set
newline
\r
Character Set
return
\f
Character Set
form
\a
Character Set
alarm
\e
Character Set
escape
\033
Character Set
octal
\x1B
Character Set
hex
\c[
Character Set
control
\l
Character Set
lowercase
\u
Character Set
uppercase
\L
Character Set
lowercase
\U
Character Set
uppercase
\E
Character Set
end
\Q
Character Set
quote
\w
Character Set
Match a "word" character
\W
Character Set
Match a non-word character
\s
Character Set
Match a whitespace character
\S
Character Set
Match a non-whitespace character
\d
Character Set
Match a digit character
\D
Character Set
Match a non-digit character
\b
Anchor
Match a word boundary
\B
Anchor
Match a non-(word boundary)
\A
Anchor
Match only at beginning of string
\Z
Anchor
Match only at EOS, or before newline
\z
Anchor
Match only at end of string
\G
Anchor
Match only where previous m//g left off

http://www.grymoire.com/Unix/Regular.html

100) Bibliografía:
htttp://www.perl.org
Web oficial de perl.


24 de diciembre de 2009

boot floopy con grub

Script que crea un floopy de arranque del sistema operativo:



#!/bin/bash

echo
echo ---- debian pp bot creando un floppy boot con actual /boot/grub/menu.lst ---
read -p "Pon un diskuete en la diskuetera ... ya ???"

echo
echo pues vaaaamos....
echo

mkfs -t ext2 /dev/fd0
mount -t ext2 /dev/fd0 /media/floppy0

echo
echo Instalando grub ...
echo

grub-install --root-directory=/media/floppy0 fd0
cp /boot/grub/menu.lst /media/floppy0/boot/grub/menu.lst
umount /media/floppy0

echo
echo ... ok!.. ya esta!!!
echo un placer, debian pp bot agent.
echo



Testado en debian lenny.

23 de diciembre de 2009

limitar el uso de la cpu

El el micro servidor micra, hace un poco de todo pero en certas tareas prefiero que tarde un poquito mas y no consuma mucha cpu que bastante justito.
Esto lo podemos hacer con cpulimit

Tenemos el paquete para debian:
#aptitude install cpulimit

Uso:

cpulimit –e NOMBREAPLICACION –limit 50 
cpulimit -p 1234 -l 50
cpulimit -P /usr/bin/programa -l 50


Ojo para limitar el uso de cpu de scripts hay que hacerlo con el PID.

Al cpulimit he tenido varios problemas ya que NO se pude puede poner la ruta de ejecutables scripts, hay que usar los PID, y tambien me falla cuando se limita una aplicación que se ejecuta varias veces con diferentes PID que van cambiando.

Tengo varios scripts que se ejecutan en background de forma continuada en micra y quiero limitarles la CPU maxima que pueden usar.

Creo un nuevo cliente que ejecutara los daemons scripts.
Le asigno privilegios con sudo.
Limito su uso de cpu con ulimit.
Ulimit solo permitie limitar el tiempo total de uso de la CPU no el % de uso puntual.

13 de diciembre de 2009

rtorrent


Comados básicos:

backspaceAdd torrent using an URL or file path. Use tab to view directory content and do auto-complete. Also, wildcards can be used. For example: ~/torrent/*
returnSame as backspace, except the torrent remains inactive. (Use ^s to activate)
^oSet new download directory for selected torrent. Only works if torrent has not yet been activated.
^sStart download. Runs hash first unless already done.
^dStop an active download, or remove a stopped download.
^kStop and close the files of an active download.
^rInitiate hash check of torrent. Without starting to download/upload.

a/s/dIncrease the upload throttle by 1/5/50 KB.
z/x/cDecrease the upload throttle by 1/5/50 KB.
A/S/DIncrease the download throttle by 1/5/50 KB.
Z/X/CDecrease the download throttle by 1/5/50 KB.

rightSwitch to Download View.
^rInitiate hash check of torrent.
+/-Change priority of torrent.
lView log. Exit by pressing the space-bar.
1Show all downloads
2Show all downloads, ordered by name
3Show started downloads
4Show stopped downloads
5Show complete downloads
6Show incomplete downloads
7Show hashing downloads
8Show seeding downloads

Para salir de rtorrent: crtl + q

Referencias:

11 de diciembre de 2009

Shellinabox en debian

Shellinabox permite un acceso desde cualquier nevegador web a una consola linux.
http://code.google.com/p/shellinabox/

funciona en el puerto 4200

Mediante un proxi con apache2 se puede hcer que funciones en el 443: https

Pero en Debian no funciona SSL !!!
http://code.google.com/p/shellinabox/issues/detail?id=23

Y por lo que parece es un bug todavia sin resover
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535905