\section*{kdb-\/introduction(1) -- introduction to kdb }

{\bfseries Elektra} solves the task of accessing the configuration storage. Additionally, a tooling gathered around Elektra helps with minor problems that appear every day. Maybe the administrator needs a cron job that periodically changes the settings of a service. Maybe the user wants to have an overview of the whole configuration to learn what can be tweaked. Maybe the developer needs to fully export the configuration the program had when a failure occurred. These tasks have in common that they become trivial once a programmatic access to a global key database exists.

In this subsection we give an overview of the command-\/line tool {\ttfamily kdb}. It is part of Elektra's environment and performs the mentioned tasks. {\ttfamily kdb} consists of individual subprograms. The programs are independent, but can access a shared part that provides functionality too specific to be in the library -- for example, pretty printing of error messages and warnings. Most parts of this suite are short programs which basically call {\ttfamily \hyperlink{group__kdb_ga28e385fd9cb7ccfe0b2f1ed2f62453a1}{kdb\+Get()}}, do something with the data structure and eventually write it back using {\ttfamily \hyperlink{group__kdb_ga11436b058408f83d303ca5e996832bcf}{kdb\+Set()}}. Note that the command-\/line tool {\ttfamily kdb} should not be confused with the class {\ttfamily K\+D\+B}.

{\ttfamily kdb} was rewritten as part of this thesis with a new architecture. Now every part of the application suite will be able to accept its own command line arguments and will have its own documentation. Also a completely new feature {\ttfamily mount} arose.

Only a few commands are enough for daily use. We can retrieve a key by\+: {\ttfamily kdb get user/keyname}

We store a key permanently with a value given by\+: {\ttfamily kdb set user/keyname value}

We list all available keys arranged below a key by\+: {\ttfamily kdb ls user/keyname}

Many other tools beside {\ttfamily kdb} are possible. They may be more convenient depending on the situation. Preference dialogues, graphical editors, web-\/interfaces and web services can all provide access to the global key database. 