jueves, 22 de junio de 2017

Cómo teclear menos en la línea de comandos usando "alias"

Autor y fuente: Greg Pittman

La herramienta de línea de comandos 'alias' es útil y relativamente simple. Su propósito es simplificar un comando de una línea creando un nombre personalizado para él. Hay una buena probabilidad de que ya tengas algunos alias incluso si nunca has utilizado la herramienta. En Bash, los alias se pueden crear con un editor de texto simple y se almacenan en el archivo '$HOME/.bashrc'. Si desea ver qué alias se han configurado, consulte este archivo o simplemente escriba 'alias' en una línea de comandos y presione Intro.

alias cp = 'cp -v'
alias rm = 'rm -v'
alias mv = 'mv -v'
alias ls = 'ls --color'
alias ll = 'ls -l --color'
alias lh = 'll -h'
Los tres primeros alias anteriores aseguran que cada vez que utilice cp, rm o mv, obtengo una salida detallada. Los otros modifican ligeramente la salida del comando ls.

Los seis también muestran cómo escribir un alias: Primero es el comando de alias, seguido por el nombre que da el alias, luego el signo de igualdad, y finalmente el comando completo entre comillas simples. Puede utilizar un nombre de alias existente o crear uno único.

Estos son obviamente simples, pero veamos algunos alias más complejos que he configurado.

Abrir archivos de Emacs

alias emacs='emacs %f --no-splash --maximize -fg "white" -bg "dark slate gray" -cr "yellow"'
Yo uso Emacs un poco, y el comando anterior asegura su tamaño y apariencia son la forma en que me gustan. Observe el% f, que es un marcador de posición para el nombre de archivo que escribo después del comando emacs. Si quiero crear un nuevo archivo en Emacs, simplemente escribo un nombre de archivo que no existe.

Uso de un script de conversión de temperatura

alias temp = '/ home / gregp / perl / tempconv.pl'
Aquí está el alias que creé para usar una escritura de Perl de la temperatura-conversión que escribí sobre el año pasado. No se muestra, pero hay que seguir temp con un número para que el script funcione.

Haciendo un seguimiento de las personas

alias census2file = 'pg_dump -vt census gregp> census.out'

alias fromfile = 'psql -e gregp <census.out'
Cuando todavía estaba practicando medicina, solía hacer un seguimiento de mi lista de pacientes en el hospital y visitas individuales con PostgreSQL, así que podía cortar y cortar la información como quería. Utilicé un ordenador portátil y un escritorio y para mantenerlos actualizados en ambos sistemas, hice los dos alias arriba.

Con el primer alias, podría volcar el contenido de la tabla "censo" en un sistema, a continuación, utilizar el segundo alias para importarlo con psql en el otro sistema. También usé estos cuando he actualizado Fedora a una versión más reciente.

Ejecutar varios comandos juntos

A veces es posible que desee utilizar un alias para ejecutar más de un comando. Puede hacerlo con la herramienta de alias, como puede hacerlo en la línea de comandos.

Por ejemplo, he descargado y compilado una herramienta de línea de comandos, el clima, que funcionó bastante bien, aunque me costó un poco encontrar el nombre preciso de la estación meteorológica que quería, y también sólo funcionaba desde dentro de su directorio.

alias ​​weather = 'cd /home/gregp/Downloads/weather-2.3;/weather "Louisville East CCD"; cd / home / gregp'
En el ejemplo anterior, tres comandos están separados por punto y coma (igual que estarían en la línea de comandos). El alias me lleva al directorio correcto, ejecuta el comando de tiempo, luego vuelve a / home.

alias ​​forecast = 'cd /home/gregp/Downloads/weather-2.3;./weather -f -n "Louisville East CCD"; cd / home / gregp'
Obtener un pronóstico requiere que se establezcan algunos conmutadores, y este alias de pronóstico me impide tener que buscarlos repetidamente.

Actualización de software

Por último, aquí está el alias más complicado que he creado hasta ahora.

alias ​​cmake15x = 'cmake. -DCMAKE_INSTALL_PREFIX: PATH = / home / gregp / scribus15x -DWANT_DEBUG = 1 -DWANT_HUNSPELL = 1 -DWANT_GRAPHICSMAGICK = 1
Escribí esto porque estoy constantemente al día con las últimas versiones de y compilando Scribus. Es bastante fácil recordar svn para actualizar Scribus desde el repositorio, pero luego tengo que ejecutar cmake con una serie de configuraciones. Con este script, sólo puedo escribir cmake15x, que es mucho más fácil que tratar de recordar todos los pasos.

La herramienta de línea de comandos de alias me ahorra mucho tiempo y pulsaciones de teclas, especialmente para comandos de uso frecuente o complejos. Sin embargo, recomendaría mantener algunas notas sobre cómo utilizar los comandos más complejos, especialmente en los casos en que se requiere más que el comando.

Fuente: opensource.com

miércoles, 14 de junio de 2017

Cómo recortar las últimas líneas de grandes archivos.

Dos métodos:
Primero el método lento pero simple.
sed -i '<número_línea_desde_la_que_recortar>,$d <nombre_archivo>
Símplemente usando el comando "sed" para tomar las primeras líneas del archivo. Este método es lento porque ha de leer todo el archivo.

Segundo método; rápido pero complicado.
dd if=/dev/null of=<nombre_archivo> bs=1 seek=$(echo $stat --format=%s <nombre_archivo>) - $(tail -n<número de líneas a recortar> <nombre_archivo>| wc -c) | bc)
En este caso se recorta las últimas líneas por medio de escribir en ese punto un código de final de archivo. Es complicado porque lo que hacemos es medir el tamaño del archivo y restar el tamaño del trozo que queremos recortar, pero al mismo tiempo es rápido ya que no modificamos el archivo por completo, solo ponemos un indicador en el lugar adecuado.

Cómo poner un programa en nohup.

Un rápido recordatorio de cómo poner un programa que ya está en ejecucción para que al cerrar la ventana, el programa siga ejecutandose:

  1. En la terminal donde esta el programa corriendo pulsar [CTRL]+[z] para detenerlo temporalmente (se puede continuar con el comando "fg" pero esto no nos interesa ahora).
  2. Poner el programa en el "fondo" con el comando "bg".
  3. Independizar el programa de la terminal con el comando "disown -h [job-spec]". El [job-spec] se obtiene con el comando "jobs". Ejemplo: "disown -h %1"

Mas sobre FUDGE RPG

En el anterior blog mostré una adaptación incompleta del FUDGE para jugar en el universo de Myst. Pero, ¿qué es el FUDGE?. FUDGE es un sistema de rol de mesa del que existe una excelente traducción por Demonio Sonriente y que se puede descargar aquí.

Como nota, tambien resulta interesante su "Cazeria de Bichos", que aunque no muy adecuado para el universo Myst, es sin duda muy interesante (además de la nueva "CdB ENGINE").

martes, 13 de junio de 2017

FUDGE Myst, adaptable a FATE.

Esta es una modificación del FUDGE RPG para jugar en el universo de Myst:
Originalmente en ingles, pero desgraciadamente incompleto y desactualizado.

Nota: Esto solo es una (mala) traducción de la página web original.


viernes, 9 de junio de 2017

Una página web que crea mapas para tus partidas de Rol.

Esta página web permite crear mapas aleatorios para,por ejemplo, partidas de juegos de rol. Incluye sets para ciencia ficción y fantasía.


Un juego sobre Hackers para jugar desde el navegador.

El juego no-crypto-for-old-men:



"Cuando el Presidente Trump requirió que todos los servidores tuvieran puertas traseras para la aplicación de la ley, ¡fue un regalo gigantesco para piratas informáticos como tú! Ahora, cada servidor en el país tiene un camino, y están cayendo como dominó. ¡Es un paraíso de piratas informáticos!

En este conjunto HTML5 roguelike en un universo alternativo donde las decisiones de política tecnológica han ido terriblemente mal, se mueven alrededor de las redes de laberinto como buscando ICE para luchar y los datos para robar, tratando de obtener los bienes antes de sysadmins aviso de su actividad y cerrarlo .

Este juego fue creado en menos de una semana para el 2016 "Seven-Day Roguelike" desafío (7DRL)."

No confies en los átomos...


jueves, 8 de junio de 2017

Fail2Ban: Bloquea host que tienen múltiples errores de autentificación.

Fail2Ban es un programa escrito en Python que escanea los ficheros de log (ejemplo: /var/log/auth.log) y bloquea las direcciones IP que han realizado demasiados intentos de conexión fallidas. El proceso se realiza mediante una acualización del firewall que rechaze todos los nuevos intentos de conexión desde esa dirección IP durante un periodo de tiempo configurable. Fail2Ban viene por defecto preparado para su uso con diversas aplicaciones como por ejemplo sshd y Apache, y es configurable a otras aplicaciones.

miércoles, 7 de junio de 2017

Cómo hacer una pelicula desde imagenes sueltas en Linux

En Ubuntu suponiendo que las imagenes de entrada son *.png:
0) Se agrandan las imagenes
# mogrify -resize 1280x960 *.png
1) Se convierten en jpg con morph para suavizar:
# convert *.png -delay 10 -morph 10 %05d.jpg
2)Se transforma en pelicula:
# ffmpeg -r 25 -i %05d.jpg output.mp4

martes, 6 de junio de 2017

Quetoo BETA, otro juego de primera persona.

Quetoo es un shooter de primera persona gratis para Mac, PC y Linux. Su objetivo es traer la diversión de oldschool deathmatch a una nueva generación de jugadores.

Caracteristicas


  • Modos de juego Deathmatch, Capture, Instagib, Duel y Rocket Arena
  • Equipos de juego y juego de apoyo
  • Un remake de alta calidad del legendario deathmatch Quake II de id Software.
  • Sonidos originales y música de juego de Roland Shaw y Anthony Webb.
  • 100% gratis para descargar, jugar y modificar.

Buscar ficheros de un tamaño especifico en GNU/Linux

Una práctica común es buscar ficheros de un tamaño especifico en disco y para esto nunca tenemos la/s instrucciones a mano.


Para esto hay un comando que viene muy bien:
find . -type f -size +100000k -exec ls -lh {} \;

Este comando lo que hace es buscar ficheros mas grandes de 100MB a partir del directorio actual y los muestra por pantalla con el siguiente formato:
-rw-rw-r--. 1 depruebas depruebas 119M ene 25 2012 ./1/733_setup_e.exe
-rw-r--r-- 1 depruebas depruebas 694M jun 22 10:38 ./distros/ubuntu-12.04.2-desktop-i386.iso
-rw-r--r-- 1 depruebas depruebas 785M jul 2 07:33 ./distros/ubuntu-13.04-desktop-amd64.iso
-rw-r--r-- 1 depruebas depruebas 644M jun 22 12:23 ./distros/xubuntu-13.04-desktop-i386.iso
-rw-r--r-- 1 depruebas depruebas 754M jun 22 12:26 ./distros/ubuntu-12.10-desktop-i386.iso
-rw-r--r-- 1 depruebas depruebas 794M jun 22 12:28 ./distros/ubuntu-13.04-desktop-i386.iso
-rw-r--r-- 1 depruebas depruebas 928M jun 22 15:57 ./distros/linuxmint-15-cinnamon-dvd-32bit.iso
-rw-r--r-- 1 depruebas depruebas 817M jun 22 15:39 ./distros/linuxmint-13-cinnamon-dvd-32bit.iso
-rw-r--r-- 1 depruebas depruebas 966M jun 22 19:09 ./distros/linuxmint-14.1-mate-dvd-32bit.iso
-rw-r--r-- 1 depruebas depruebas 898M jun 22 19:01 ./distros/linuxmint-13-mate-dvd-32bit.iso
-rw-r--r-- 1 depruebas depruebas 879M jun 22 15:54 ./distros/linuxmint-14.1-cinnamon-dvd-32bit.iso
-rw-r--r-- 1 depruebas depruebas 690M jun 22 12:23 ./distros/xubuntu-12.04.2-desktop-i386.iso

Si queremos buscar desde la raiz del disco cambiaremos el '.' por '/' asi:
find / -type f -size +100000k -exec ls -lh {} \;

Si queremos guardar el resultado de la busqueda en un fichero usaremos el comando tee de la siguiente forma:
find . -type f -size +100000k -exec ls -lh {} \; | tee ficheros.txt

Poner programas en background en GNU/Linux

Tres métodos simples para poner programas en background:


Usando "&"
programa.exe&
y se pone en frente con "fg"

Con "nohup ...&"
nohup programa.exe&
permite que siga calculando tras cerrar la ventana.

Y con "CTRL-Z"

Una vez el programa esta en marcha se puede poner en el fondo con "CTRL-Z" para pararlo y "bg" para ponerlo de fondo y "fg" para continuar con el programa en pantalla.

lunes, 5 de junio de 2017

Visualización del progreso de operaciones con ficheros con "Pipe Viewer"

Comprimir ficheros grandes desde la líea de comandos puede ser pesado y a menos que uses un "file manager" como Midnigth Comander (que desde aquí recomiendo para facilitar la vida en el manejo de la línea de comandos), no tenemos por defecto forma de conocer cómo avanza la operacion o cuanto se supone que hay que esperar para que el proceso concluya.
Aquí es donde tenemos el comando "pv" (Pipe Viewer), un interesante comando que permite visualizar una barra de progreso e incluso el tiempo estimado de finalización.
A continuación algunos ejemplos de su uso :

Comprimir un archivo usando gzip :

pv access.log | gzip > access.log.gz
482MB 0:00:26 [18.3MB/s] [==================================>] 100%

Comprimir un archivo usando bzip2 :

pv access.log | bzip2 > access.log.bz2
482MB 0:04:45 [1.69MB/s] [==================================>] 100%

Descomprimir un archivo usando gzip :

pv access.log.gz | gunzip > access.log
48.5MB 0:00:08 [5.85MB/s] [==================================>] 100%

Descomprimir un archivo usando bzip2:

pv access.log.bz2 | bunzip2 > access.log
25.2MB 0:00:42 [ 607kB/s] [==================================>] 100%

Comprimir el directorio actual con una sola línea de comando :

tar cpf - . | pv -s $(du -sb . | cut -f1) | gzip > archive.tar.gz
1.48GB 0:01:33 [16.3MB/s] [==================================>] 100%

Este es un poco más complicado y requiere algo de explicación: dado que "pv" no puede conocer a priori la cantidad de datos que se transferirán, tenemos que incluir de antemano la información mediante el comando "du"

Hay mucho más que el comando "pv" puede hacer por nosotros, por ejemplo, limitando el flujo de datos de un "pipe" (usando el modificador de salida "-L"). Junto con el modificador de salida "-q" (que desactiva la barra de progreso), es posible su uso para la proyección de animaciones de texto.

Ejecutar una animación  VT100 a 9600 bytes por segundo (un globo que gira):

curl -s http://artscene.textfiles.com/vt100/movglobe.vt | pv -q -L 9600

Y finalmente un grupo de ejemplos más vistosos (que usan el comando "dialog" que es igualmente interesante):

(pv -n backup.tar.gz | tar xzf - -C path/to/data ) 2>&1 | dialog --gauge "Running tar, please wait..." 10 70 0

tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70

tar -cf - . | pv -s $(du -sb . | awk '{print $1}') | gzip > out.tgz
pv linux-source.tar.bz2 | tar -jxf -


jueves, 1 de junio de 2017

OpenTomb, el nuevo intento de recrear Tomb Raider.


@opentomb

OpenTomb es una nueva recreación del clásico Tomb Raider open source cuyo código se halla en github.
En esta ocasión se trata de recrear los primeros cinco juegos de la saga. Para lo que se necesitan los datos de los juegos originales y algunos trucos, pues el formato es un tanto obscuro.