Saltar al contenido
Todo sobre trucos y tutoriales de Android

3 Libreta de direcciones de línea de comandos de código abierto para Linux

libreta de direcciones de terminal linux

Los sistemas informáticos modernos emplean varias herramientas para administrar contactos en nuestras libretas de direcciones. Con la proliferación de aplicaciones de redes sociales, esta complejidad ha aumentado considerablemente y carece de la mayor simplicidad en el estilo que adoran la mayoría de los usuarios de Linux. Este artículo muestra tres herramientas utilizadas en la creación de libretas de direcciones desde nuestro terminal bash de linux.

1) Herramienta khard

Khard es una libreta de direcciones para la consola de Linux. Crea, lee, modifica y elimina entradas de la libreta de direcciones carddav en su máquina local. Khard también es compatible con los clientes de correo electrónico mutt and alot y el cliente SIP twinkle. Khard está desarrollado y probado en el sistema operativo Debian, versiones 7, 8 y pruebas, pero debería ejecutarse en todos los sistemas similares a Unix.

requisitos previos

Tienes que instalar y configurar un servidor caldav y carddav. Recomiendo Baikal.
Luego, debe sincronizar los calendarios y las libretas de direcciones con su máquina local con vdirsyncer.
Y necesitas pip para instalar módulos de python:

sudo aptitude install python-setuptools
sudo easy_install pip

Instalación de Khard

a) De pipi

Khard se puede instalar a través de pip. Recomiendo virtualenv para crear un entorno python3 separado. Para que su sistema se mantenga limpio. Además, no tiene que luchar con diferentes instancias de python, especialmente si su sistema operativo aún tiene como valor predeterminado python2.

# install virtualenv package
sudo pip install virtualenv
# create folder for all virtualenv's and put ~/.virtualenvs/bin in your shell's executable path
mkdir ~/.virtualenvs
# create new python3 virtual environment with the name "khard"
virtualenv -p python3 ~/.virtualenvs/khard
# to install khard, use the pip command from that newly created environment
# otherwise it would be installed in the users home directory
~/.virtualenvs/khard/bin/pip install khard
# create subfolder for symlinks of local binaries
# and don't forget to add it to your shell's executable path too
mkdir ~/.virtualenvs/bin
# create a symlink to the local binary folder
ln -s ~/.virtualenvs/khard/bin/khard ~/.virtualenvs/bin

b) De la fuente

Si, en cambio, desea ejecutar el código fuente directamente, puede instalar los módulos de python necesarios a mano, clonar desde git y ejecutar el script khard-runner.py:

pip install --user atomicwrites, configobj, pyyaml, vobject
git clone https://github.com/scheibler/khard.git
cd khard/
./khard-runner.py [action [options]]

Configuración

Para obtener el archivo de configuración de ejemplo y otros datos adicionales, puede clonar desde git (ver arriba) o descargar el paquete desde pypi:

pip install --download /tmp --no-deps --no-use-wheel khard
tar xfz /tmp/khard-x.x.x.tar.gz
rm /tmp/khard-x.x.x.tar.gz
cd khard-x.x.x/

Ahora copie el archivo de configuración de ejemplo y adapte su contenido a sus necesidades:

mkdir ~/.config/khard/
cp misc/khard/khard.conf.example ~/.config/khard/khard.conf

Khard también contiene un script auxiliar llamado davcontroller. Está diseñado para crear y eliminar libretas de direcciones y calendarios en el servidor. Creé davcontroller porque mi servidor CalDAV utilizado anteriormente (Darwin calendarserver) no ofrecía una forma sencilla de crear nuevas libretas de direcciones y calendarios. Pero davcontroller debe considerarse como una solución pirateada y solo se prueba contra el servidor de calendario de Darwin. Entonces, si su servidor CalDAV ofrece una forma de crear nuevas libretas de direcciones y calendarios, recomiendo preferir ese método sobre davcontroller.

TE PUEDE INTERESAR:  Los 9 mejores administradores de descargas para Linux

Si, no obstante, desea probar davcontroller, primero debe instalar CalDAVClientLibrary. Desafortunadamente, esa biblioteca no es compatible con python3, por lo que debe crear un entorno virtual adicional de python2 e instalarlo allí:

# create python2 virtual environment
virtualenv -p python2 ~/.virtualenvs/davcontroller
# get library from svn repository
sudo aptitude install subversion
svn checkout http://svn.calendarserver.org/repository/calendarserver/CalDAVClientLibrary/trunk CalDAVClientLibrary
cd CalDAVClientLibrary
# install library
~/.virtualenvs/davcontroller/bin/python setup.py install
# start davcontroller script
~/.virtualenvs/davcontroller/bin/python /path/to/khard-x.x.x/misc/davcontroller/davcontroller.py

mostrar contactos

Después de haber creado una nueva libreta de direcciones o calendario y haberlo sincronizado con su máquina local, puede enumerar todos los contactos disponibles con el siguiente comando:

khard list

o si tiene más de una libreta de direcciones y desea filtrar la salida:



khard list -a addressbook1,addressbook2

La tabla de contactos resultante solo contiene el primer número de teléfono y la dirección de correo electrónico. Si desea ver todos los detalles de contacto, puede elegir uno de la lista:

khard details

o buscarlo:

khard details [--strict-search] name of contact

o seleccione el contacto por su uid, que puede encontrar en la tabla de contactos:

khard details -u ID

Los parámetros -a y -u de los ejemplos anteriores siempre son opcionales. Si no los usa o su entrada produce resultados inequívocos, puede elegir los contactos de una lista.

El parámetro de búsqueda busca en todos los campos de datos. Por lo tanto, no está limitado al nombre del contacto, sino que también puede, por ejemplo, buscar una parte de un número de teléfono, una dirección de correo electrónico o una dirección postal. Sin embargo, si desea restringir explícitamente su búsqueda al campo de nombre, puede usar el parámetro –strict-search en su lugar.

Crear contacto

Agregue un nuevo contacto con el siguiente comando:

khard new [-a "address book name"]

La plantilla para el nuevo contacto se abre en el editor de texto, que puede configurar en el archivo khard.conf. Sigue la sintaxis de yaml.

TE PUEDE INTERESAR:  Cómo instalar JIRA en Ubuntu Linux

Alternativamente, puede crear el contacto desde stdin:

echo """
First name : John
Last name  : Smith
Email :
    work : john.smith@example.org
Phone :
    home : xxx 555 1234
Categories :
    - cat1
    - cat2
    - cat3
""" | khard new [-a "address book name"]

o crear desde el archivo de plantilla de entrada:

khard new -i contact.yaml [-a "address book name"]

Puede obtener una plantilla de contacto vacía con el siguiente comando:

khard export --empty-contact-template -o empty.yaml

Por defecto, khard crea vcards de la versión 3.0. Si sus otras aplicaciones de contacto admiten vcards de la versión 4.0 más reciente, puede cambiar esto con la opción –vcard-version. Ejemplo:

khard new --vcard-version=4.0 [-a "address book name"]

Para una solución más permanente, puede establecer el parámetro de versión_preferida en la sección vcard del archivo de configuración de khard (consulte misc/khard/khard.conf.example para obtener más detalles). Pero cuidado, khard no puede convertir contactos ya existentes de la versión 3.0 a la 4.0. Por lo tanto, esta configuración no es aplicable a la acción de modificación.

Editar contactos

Use lo siguiente para modificar el contacto después de una creación exitosa:

khard modify [-a addr_name] [-u uid|search terms [search terms ...]]

Si desea editar el contacto en otro lugar, puede exportar la plantilla de contacto completa:

khard export -o contact.yaml [-a addr_name] [-u uid|search terms [search terms ...]]

Edite el archivo yaml y vuelva a importarlo a través de stdin:

cat contact.yaml | khard modify [-a addr_name] [-u uid|search terms [search terms ...]]

o nombre de archivo:

khard modify -i contact.yaml [-a addr_name] [-u uid|search terms [search terms ...]]

Si desea fusionar contactos, use lo siguiente para seleccionar un primer y luego un segundo contacto:

khard merge [-a source_abook] [-u uid|search terms [search terms ...]] [-A target_abook] [-U target_uid|-t target_search_terms]

Accederá a su merge_editor (vea la opción «merge_editor» en khard.conf) donde puede fusionar todos los cambios desde el primer contacto seleccionado al segundo. Una vez que haya terminado, el primer contacto se elimina y el segundo se actualiza.

Copiar o mover contacto:

khard copy [-a source_abook] [-u uid|search terms [search terms ...]] [-A target_abook]
khard move [-a source_abook] [-u uid|search terms [search terms ...]] [-A target_abook]

Remover contacto:

khard remove [-a addr_name] [-u uid|search terms [search terms ...]]

Este pequeño script ayuda a crear y eliminar nuevas libretas de direcciones y calendarios en el servidor carddav y caldav.

TE PUEDE INTERESAR:  Las 31 mejores herramientas de monitoreo de rendimiento de Linux

Lista de recursos disponibles

davcontroller -H example.com -p 11111 -u USERNAME -P PASSWORD list

Las acciones posibles son: lista, nueva libreta de direcciones, nuevo calendario y eliminar. Después de crear o eliminar, debe adaptar su configuración de vdirsyncer.

Establecer como libreta de direcciones externa

Khard se puede utilizar como libreta de direcciones externa para el cliente de correo electrónico mutt. Para lograr eso, agregue lo siguiente a su archivo de configuración mutt (principalmente ~/.mutt/muttrc):

set query_command= "khard email --parsable %s"
bind editor <Tab> complete-query
bind editor ^T    complete

Luego puede completar las direcciones de correo electrónico presionando la tecla Tabulador en el cuadro de diálogo de correo nuevo de mutt. Si sus libretas de direcciones contienen cientos o incluso miles de contactos y el proceso de consulta es muy lento, puede probar la opción –search-in-source-files para acelerar la búsqueda:

set query_command= "khard email --parsable --search-in-source-files %s"

Para agregar direcciones de correo electrónico a la libreta de direcciones de khard, también puede agregar las siguientes líneas a su archivo muttrc:

macro index,pager A 
    "<pipe-message>khard add-email<return>" 
    "add the sender email address to khard"

Luego navegue a un mensaje de correo electrónico en la vista de índice de mutt y presione «A» para iniciar el cuadro de diálogo de importación de direcciones.

2) Herramienta de personas

la libreta de direcciones de las personas depende de `rubígemas` para instalacion; `git` para almacenamiento y sincronización.

Instalación

$ sudo gem install ppl

Crear una libreta de direcciones

$ ppl init ~/contacts

`ppl init` es como crear un repositorio de Git

Agregar contactos

$ cd ~/contacts
$ ppl add alice "Alice Adams"
$ ppl add bob "Bob Brown"
$ ppl add eve "Eve Edwards"

ppl add crea nuevos contactos en la libreta de direcciones

Almacenar algunos detalles de contacto

$ ppl email alice alice@example.org
$ ppl phone bob 0123456789
$ ppl org eve "Red Hat"

ppl tiene muchos comandos para agregar nuevas propiedades a los contactos. Más información está disponible en la documentación.

Establecer su libreta de direcciones predeterminada

$ echo "[address book]" > ~/.pplconfig
$ echo path = "`pwd`" >> ~/.pplconfig

Esto le dice a la gente que le permita seguir trabajando con esta libreta de direcciones incluso después de que discos compactos en otro directorio

3) Velocidad terminal

Terminal Velocity es una aplicación rápida para tomar notas para el terminal UNIX, que se enfoca en permitirle crear o encontrar una nota de la manera más rápida y fácil posible, luego usa su


$EDITOR

para abrir y editar la nota. Está fuertemente inspirado en la aplicación Notational Velocity de OS X.

Instalación

Para instalar Terminal Velocity, ejecute:

pip install terminal_velocity

Luego, para iniciarlo, simplemente ejecute:

terminal_velocity

Para usar un directorio de notas diferente, ejecute:

terminal_velocity path/to/your/notes/dir

Para ver todas las opciones de la línea de comandos, ejecute:

terminal_velocity -h

Para salir de la aplicación, presione

ctrl-c or ctrl-x.

Crear notas

Para crear una nueva nota, escriba un título para la nota y presione enter. La nota se abrirá en su editor de texto. A medida que escribe el título, la lista de notas se filtra para mostrar las notas que coinciden con lo que ha escrito, lo que le brinda la oportunidad de abrir una nota relacionada en lugar de crear una nueva.


Buscar notas

La misma área de texto se utiliza para ingresar los títulos de las notas nuevas y para buscar notas. Para buscar y abrir una nota, escriba algunas palabras del título o contenido de la nota. La lista de notas se filtra a medida que escribe para mostrar solo las notas coincidentes. Cuando vea la nota que desea, utilice el up y down flechas para seleccionarlo y luego presione enter Para abrirlo. También puedes usar page up y page down o clics del ratón para seleccionar notas.


Autocompletar

Si escribe el comienzo del título de una nota (sin distinción entre mayúsculas y minúsculas), esa nota se seleccionará automáticamente en la lista de notas y su título se completará automáticamente en el cuadro de búsqueda. Cada vez que se selecciona una nota, simplemente presione enter para abrir esa nota.

Si desea crear una nueva nota cuyo título sea una subcadena del título de una nota existente, incluso después de haber escrito el título completo de su nueva nota, la función de autocompletar seguirá seleccionando la nota existente. En este caso, usted tiene que golpear ctrl-d o escape para borrar la selección de autocompletar, luego presioneenter para crear tu nota.


Conclusión

Linux proporciona muchas herramientas para crear y mantener notas; además de Además de las enumeradas anteriormente, existen otras herramientas como devtodo que utilizan los desarrolladores para mantener una lista de tareas en orden de importancia. Los usuarios tradicionales de Linux prefieren la interfaz de línea de comandos simple de la terminal de Linux con sus herramientas livianas. Sin embargo, los desarrollos recientes en el ecosistema de Linux han traído muchas herramientas GUI para administrar las libretas de direcciones. A pesar de que pueden parecer simples para algunos usuarios de computadoras sin conocimientos técnicos; las herramientas basadas en terminales siguen siendo un clásico y una preferencia para los usuarios de Linux más experimentados.