Comandos útiles para un mejor uso del terminal de GNU/Linux

Esta pequeña entrada recoge varios comandos y funciones pensadas para aquellas personas que usan muy a menudo la terminal en sistemas GNU/Linux. La mayoría funciona en todas las distribuciones basadas en Debian.

Si abres la terminal de tu sistema verás algo similar a la imagen de abajo. terminal básica

Para continuar con la configuración de nuestra terminal, accederemos a su archivo de configuración, llamado .bashrc, y se ubica en la ruta /home/usuario/bashrc. Puedes usar tu editor de texto favorito, en este caso usaremos mousepad. La forma rápida de hacerlo es con:

$mousepad /home/usuario/.bashrc

Dentro del archivo de configuración vemos gran cantidad de texto como el siguiente: archivo .bashrc

Para que un futuro sea fácil editar este archivo y hacer cambios con facilidad, es recomendable crear un alias, es un atajo sencillo para acceder al archivo. Solamente nos ubicamos en la parte final de texto y escribimos la siguiente línea de código:

alias editar='mousepad ~/.bashrc'

Ahora continuamos con más atajos que nos van a facilitar las actividades diarias; para actualizar y administrar nuestro sistema podemos usar el alias: alias aptud='sudo apt-get update'
alias aptins='sudo apt-get install'
alias aptrem='sudo apt-get autoremove'
alias aptup='sudo apt-get upgrade'

Como la seguridad de nuestra información es importante, existen algunos atajos que pueden ser útiles como: alias borra='srm -r -vz', que borra directorios de forma segura, haciendo casi imposible que puedan ser recuperados por adversarios. El comando alias tritura='shred -u -n9 -vz' borra archivos y ficheros individuales, no borra directorios. Atención: no es recomendable borrar TODOS los directorios con el primer comando ni archivos con el segundo; a mediano o largo plazo reducirá la vida útil de tu disco duro, pues los comandos srm y shred ejecutan varios pases de datos para ocultar lo mejor posible la información, haciendo trabajar casi el doble a tu pobre disco duro.

Si vamos a manejar archivos confidenciales o muy importantes, lo mejor es cifralos para almacenarlos en nuestro equipo o en otro disco duro; por lo tanto, el comando más útil que podemos usar es:

alias cifrar='gpg --cipher-algo AES256 --symmetric'

Aqui se hace uso de la poderosa suite de GPG, y para visualizar el archivo cifrado solamente usamos: alias gpgd='gpg -d -o'. Es importante señalar la necesidad de una contraseña fuerte, pues es en vano cifrar contenido confiando solo en el algoritmo y nuestra contraseña es 1234567890. Hablando de contraseñas, tenemos a la mano, sin recurrir a servicios externos y muchas veces privativos, la suite OpenSSL, que nos ayuda también generando contraseñas seguras, usando el comando:

alias generar='openssl rand -base64 40'

Nos va a crear una contraseña alfanumérica y con símbolos incluídos, además podemos modificar el número de caractéres, no hay valor recomendado, pero yo uso 40, puedes cambiarlo a 10 o incluso 100.

Ahora vamos con las funciones, la primera es bastante útil a la hora de descomprimir directamente un archivo, sin importar el formato, pero es importante señalar que hay que tener instalado en nuestro sistema el formato necesario. Por defecto los sistemas basados en Debian incluyen pocos archivos de compresión, pero podemos agregar varios como zip, rar, 7zip, entre otros. La función es:

extraer () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xvjf $1 ;;
*.tar.gz) tar xvzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xvf $1 ;;
*.tbz2) tar xvjf $1 ;;
*.tgz) tar xvzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "No sé como extraer esta cosa '$1'..." ;;
esac
else
echo "'$1' ¡PELIGRO, ES VIRUS!"
fi
}

Un poco inútil pero llamativa, es la siguiente función, que hace colorida las páginas de manual en nuestra terminal, dando un toque menos plano y opaco. La función es:

man() {
env \
LESS_TERMCAP_mb=$(printf "\e[1;35m") \
LESS_TERMCAP_md=$(printf "\e[1;35m") \
LESS_TERMCAP_me=$(printf "\e[0m") \
LESS_TERMCAP_se=$(printf "\e[0m") \
LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
LESS_TERMCAP_ue=$(printf "\e[0m") \
LESS_TERMCAP_us=$(printf "\e[1;31m") \
man "$@"
}

La relación de los colores es la siguiente, con esta tabla podemos jugar con los valores y adecuarla a nuestras preferencias, por ejemplo las niñas pueden usar azul y negro y los niños rosa y morado.

`DETALLES: mb – modo parpadeo rojo, md – negrita rojo me – finaliza todos los modos, se – quitar modo resaltado so – inicia modo resaltado, us – inicia subrayado ue – finaliza subrayado

COLORES: NEGRO 0;30 GRIS OSCURO 1;30 ROJO 0;31 ROJO CLARO 1;31 VERDE 0;32 VERDE CLARP 1;32 CAFÉ 0;33 AMARILLO 1;33 AZUL 0;34 CELESTE 1;34 MORADO 0;35 ROSA 1;35 CYAN 0;36 CYAN CLARO 1;36 GRIS CLARO 0;37 BLANCO 1;37`

Al final dejamos lo posiblemente más inútil, y es que nuestra terminal nos salude cada vez que la iniciamos, además de ver la fecha y hora, podemos personalizar el mensaje a nuestro antojo.

tput setaf 5 5 6 ; echo "Hola, hoy es:" ; date '+%A, %B %-d %Y Son las: %H:%M' ; tput sgr0

Con estos comando y ejemplos bastante sencillos termina esta pequeña entrada, ahora son todos unos ninja de la terminal; no duden en retroalimentar al autor y comentar sobre más ideas, correcciones o mejoras para que todes podamos darle un mejor uso a nuestro sistema. ¡Un saludo!

Compartir

2 Comentarios

  1. A parte de los típicos de instalación y apagado/inicio/suspensión hay un par de alias que me encantan, son muy sencillos y que me gustaría compartir, «cd .. = .. «, «ll = ls» y «la = ls -l», aunque estos dos últimos puedes poner el alias a gusto.

Deja una respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax