<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Alias on Karpoke - Just Another Blog</title><link>http://karpoke.ignaciocano.com/tags/alias/</link><description>Recent content in Alias on Karpoke - Just Another Blog</description><generator>Hugo -- 0.159.0</generator><language>es</language><lastBuildDate>Sat, 31 May 2014 13:27:00 +0100</lastBuildDate><atom:link href="http://karpoke.ignaciocano.com/tags/alias/index.xml" rel="self" type="application/rss+xml"/><item><title>Enviar y reicibir notificaciones de Telegram desde la línea de comandos</title><link>http://karpoke.ignaciocano.com/2014/05/31/enviar-y-reicibir-notificaciones-de-telegram-desde-la-linea-de-comandos/</link><pubDate>Sat, 31 May 2014 13:27:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/31/enviar-y-reicibir-notificaciones-de-telegram-desde-la-linea-de-comandos/</guid><description>&lt;p&gt;Utilizando &lt;a href="http://github.com/vysheng/tg"&gt;tg&lt;/a&gt;, podemos enviar y recibir mensajes de nuestros
contactos en Telegram, incluyéndonos a nosotros mismos, desde el
terminal.&lt;/p&gt;
&lt;h2 id="envíos-programados"&gt;Envíos programados&lt;/h2&gt;
&lt;p&gt;Combinándolo con &lt;code&gt;expect&lt;/code&gt;, conseguiremos una forma sencilla de programar
notificaciones.&lt;/p&gt;
&lt;p&gt;He aquí un pequeño ejemplo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#!/usr/bin/env bash
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;function tg {
# First argument, if any, must be the receiver
local to=&amp;#34;$1&amp;#34;
local msg=&amp;#34;&amp;#34;
local cmd=&amp;#34;&amp;#34;
if [ $# -gt 1 ]; then
shift 1
msg=&amp;#34;$@&amp;#34;
else
while read line; do
if [ -z &amp;#34;$msg&amp;#34; ]; then
msg=$line
else
msg=&amp;#34;$msg\n$line&amp;#34;
fi
done
if [ -z &amp;#34;$to&amp;#34; ]; then
to=$(awk &amp;#39;{print $1}&amp;#39; &amp;lt;&amp;lt;&amp;lt; $msg)
msg=$(awk &amp;#39;{$1=&amp;#34;&amp;#34;;print $0}&amp;#39; &amp;lt;&amp;lt;&amp;lt; $msg)
fi
fi
if [[ $msg =~ &amp;#34;\n&amp;#34; ]]; then
file=$(mktemp)
echo -e &amp;#34;$msg&amp;#34; &amp;gt; $file
cmd=&amp;#34;send_text $to $file&amp;#34;
else
cmd=&amp;#34;msg $to $msg&amp;#34;
fi
#echo $cmd
expect -c &amp;#34;
log_user 0
match_max 100000
spawn /path/to/telegram -k /path/to/tg-server.pub
expect \&amp;#34;User \&amp;#34;
send -- \&amp;#34;$cmd\r\&amp;#34;
expect \&amp;#34;Sent\&amp;#34;
send \&amp;#34;quit\&amp;#34;
&amp;#34;
}
tg $@
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Algunos ejemplos de uso:&lt;/p&gt;</description></item><item><title>Obteniendo la IP pública, la IP privada y la dirección MAC en Bash</title><link>http://karpoke.ignaciocano.com/2011/08/14/obteniendo-la-ip-publica-la-ip-privada-y-la-direccion-mac-en-bash/</link><pubDate>Sun, 14 Aug 2011 19:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/14/obteniendo-la-ip-publica-la-ip-privada-y-la-direccion-mac-en-bash/</guid><description>&lt;p&gt;En los &lt;em&gt;scripts&lt;/em&gt; que escribimos, a menudo, es necesario conocer la IP pública
de nuestra red, o la IP privada y la dirección MAC de una interfaz de red. Con
el comando &lt;code&gt;ifconfig&lt;/code&gt; podemos conocer la información de las interfaces de red:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ ifconfig
eth0 Link encap:Ethernet direcciónHW 00:11:22:33:44:55
Direc. inet:192.168.0.30 Difus.:192.168.0.255 Másc:255.255.255.0
Dirección inet6: fe80::203:dff:fe3c:f419/64 Alcance:Enlace
ACTIVO DIFUSI–N FUNCIONANDO MULTICAST MTU:1500 Métrica:1
Paquetes RX:1627 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:1067 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:1000
Bytes RX:560137 (560.1 KB) TX bytes:235094 (235.0 KB)
Interrupción:19 Dirección base: 0xc800
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;eth1 Link encap:Ethernet direcciónHW 00:11:22:33:44:66
DIFUSI–N MULTICAST MTU:1500 Métrica:1
Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0 colisiones:0 long.colaTX:1000
Bytes RX:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupción:21 Dirección base: 0x8000 Memoria:ffcfe000-ffcfefff
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;lo Link encap:Bucle local
Direc. inet:127.0.0.1 Másc:255.0.0.0
Dirección inet6: ::1/128 Alcance:Anfitrión
ACTIVO BUCLE FUNCIONANDO MTU:16436 Métrica:1
Paquetes RX:3299 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:3299 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:0
Bytes RX:355696 (355.6 KB) TX bytes:355696 (355.6 KB)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Sin embargo, si queremos utilizar el dato en concreto—la IP privada o la
dirección MAC—, necesitaremos trabajar un poco la salida que muestra
&lt;code&gt;ifconfig&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>urlencode y urldecode</title><link>http://karpoke.ignaciocano.com/2011/03/06/urlencode-y-urldecode/</link><pubDate>Sun, 06 Mar 2011 17:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/06/urlencode-y-urldecode/</guid><description>&lt;p&gt;Los siguientes caracteres &lt;a href="http://tools.ietf.org/html/rfc3986#section-2.3"&gt;son los únicos que se pueden utilizar&lt;/a&gt; en
una URL:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[a-zA-Z0-9-._~]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;El resto, se deben codificar usando el prefijo &lt;code&gt;%&lt;/code&gt; seguido del valor
ASCII hexadecimal del carácter. Por ejemplo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;( = %28
) = %29
/ = %2F
+ = %2B
...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para &lt;a href="http://stackoverflow.com/questions/296536/urlencode-from-a-bash-script/298258#298258"&gt;codificar la URL&lt;/a&gt; podemos utilizar la función &lt;code&gt;uri_escape&lt;/code&gt; del
módulo &lt;code&gt;URI&lt;/code&gt; de Perl.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;alias urlenc=&amp;#39;furlenc() { perl -MURI::Escape -e &amp;#34;print uri_escape(\&amp;#34;$1\&amp;#34;).\&amp;#34;\n\&amp;#34;;&amp;#34;; }; furlenc&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;$ urlenc http://www.google.com
http%3A%2F%2Fwww.google.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para la &lt;a href="http://www.commandlinefu.com/commands/view/2285/urldecoding"&gt;decodificación de la URL&lt;/a&gt;, podemos hacer uso de &lt;code&gt;sed&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>html2pdf = html2ps + ps2pdf</title><link>http://karpoke.ignaciocano.com/2011/02/28/html2pdf-html2ps-ps2pdf/</link><pubDate>Mon, 28 Feb 2011 13:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/02/28/html2pdf-html2ps-ps2pdf/</guid><description>&lt;p&gt;Un buen comando para &lt;a href="http://www.atareao.es/ubuntu/conociendo-ubuntu/convetir-un-sitio-web-a-pdf-en-ubuntu/"&gt;convertir una web a PDF&lt;/a&gt;, idóneo para sitios con
documentación pero que ésta sólo está disponible &lt;em&gt;online&lt;/em&gt;. Por ejemplo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ html2ps -W b http://www.vala-project.org/doc/vala/ | ps2pdf - out.pdf
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Con la opción &lt;code&gt;-W b&lt;/code&gt; le decimos a &lt;code&gt;html2ps&lt;/code&gt; que siga sólo los enlaces
que están en el mismo directorio, o a partir de él,
respecto a la ruta proporcionada.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Cool HTML Codes" loading="lazy" src="http://karpoke.ignaciocano.com/images/cool-html-codes-300x225.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fuente: &lt;a href="http://www.techpin.com/"&gt;techpin.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Podemos crear un alias que reciba dos parámetros, la URL y el nombre que
queremos ponerle al PDF:&lt;/p&gt;</description></item><item><title>Memento en Bash</title><link>http://karpoke.ignaciocano.com/2010/09/26/memento-en-bash/</link><pubDate>Sun, 26 Sep 2010 16:01:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/09/26/memento-en-bash/</guid><description>&lt;blockquote&gt;
&lt;p&gt;No me acuerdo de olvidarte.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="Memento Polaroid Natalie Clean" loading="lazy" src="http://karpoke.ignaciocano.com/images/memento_polaroids_natalieclean_18700997-248x300.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Si lo primero que haces nada más iniciar una sesión es abrir el
terminal. Varias ventanas, varias pestañas. &lt;code&gt;screen&lt;/code&gt;, &lt;code&gt;terminator&lt;/code&gt; o
&lt;code&gt;byobu&lt;/code&gt;. Es posible que, alguna vez, se te haya pasado por la cabeza que
sería interesante guardar una nota sobre algo que estamos haciendo, algo
que quisiéramos recordar más tarde, algo que quisiéramos no olvidar,
algo que está relacionado con el directorio en el que estamos.&lt;/p&gt;</description></item></channel></rss>