Provided by: elektra-bin_0.7.1-1_amd64 bug

NAME

       kdb - Elektra key database command line administration tool

SYNOPSIS


       kdb get [-dlr] key/name

       kdb set [-t type] [-d] [-c "A comment about this key"] [-m mode] [-u uid] [-g gid] key/name "the value"

       kdb set [-t type] [-m mode] [-c "A comment"] key/name -- "the value"

       kdb set [-t type] [-b file] key/name

       kdb ls [-lRfvs] [key/dir | key/name]

       kdb ls [-lRfvx] [key/dir | key/name] > keys.xml

       kdb edit [-R] [key/dir | key/name]

       kdb rm key/name

       kdb mv key/src key/dest

       kdb ln key/src key/dest

       kdb export [-f] system/some/tree.root > [file.xml]

       kdb import < file.xml

       kdb import file.xml

       kdb monitor some/key/name Description.PP The kdb command provide ways to manipulate the Elektra keys
                   database.

       The subcommands implemented are very similar to regular UNIX commands like ls, and rm, specially in their
       output and options.  Subcommands.PP get
           Get the value from the specified key. Accepts options: -d, -l, -f, -s

       set
           Set the value to the specified key. Accepts options: -c, -t, -d, -m, -b

       ls
           As the ls(1) command, list key names for the specified key, or children keys, if specified a folder
           key. The -v argument will make it show also the values of each key. The -d (descriptive) will make it
           show the comment, key name and its value, as you are watching a plain text file. Accepts options: -x,
           -d, -l, -f, -v, -R, -s

       ln
           Creates a key that is a symbolic links to another key.

       mv
           Move, or renames a key. Currently it can't move keys across different filesystems.

       rm
           As the rm(1) command, removes the key specified.

       edit
           A very powerful subcommand that lets you edit an XML representation of the keys. The parameters it
           accepts is usually a parent key, so its child keys will be gathered. Can be used with the -R flag to
           work recursively. The editor used is the one set in the $EDITOR environment variable, or vi. After
           editing the keys, kdb edit will analyze them and commit only the changed keys, remove the keys
           removed, and add the keys added. This command is only available when /usr/lib/libelektratools.so is
           available.

       export, save
           Export a subtree of keys to XML. If no subtree is defined right after the export command, system and
           current user trees will be exported. Output is written to standard output. The output encoding will
           allways be UTF-8, regardeless of your system encoding. UTF-8 is the most universal charset you can
           get when exchanging data between multiple systems. Accepts -f.

       import, load
           Import an XML representation of keys and save it to the keys database. If no filename is passed right
           after the import command, standard input is used. This command is only available when
           /usr/lib/libelektratools.so is available.

       monitor, mon
           Monitor a key for some value change. It will block your command line until a change in the key value
           is detected, then return its new value.
       Options.PP -R
           Causes to work recursively. In ls, will list recursively.

       -x
           Makes ls output an XML representation of the keys, instead of an ls-compatible output.

       -l
           Causes to display long results. With ls, will generate lists similar to ls -l. With get, will show
           also the key name.

       -a
           Causes ls to display also inactive keys. Generate lists similar to ls -a. Inactive keys are keys
           which basename begins with a '.' (dot). An example of inactive key:
           system/sw/XFree/current/Monitor/.Monitor1

       -f
           Causes to work with full key names. A full key name makes sense only on user/* keys, and
           differentiate from the regular key names in specifying the owner user. If the current user is
           someuser, the user/some/key full name is user:someuser/some/key. Makes effect in ls, export and get
           subcommands.

       -d
           Causes get to work descriptivelly. When requesting a key it will show the comment, key name and its
           value in a fancy format.  Causes set to mark the key as a directory key.

       -s
           Causes get and ls to be more friendly to Shell scripts. For example, when requesting
           user/env/env2/PATH, the output will be PATH="the value", that is, only the basename of the key will
           be showed and the value will be surrounded by ' " '.

       -t type
           When setting a key's value, you can specify the type with this switch. Currently accepted types are
           string for plain text, bin for binary as-is values, dir to create folder keys and link to create
           symbolic links between keys. Plain text are always stored as UTF-8(7) in Elektra, regardeless of your
           current encoding ($LANG). If you want to force a value to be stored without the UTF-8(7) encoding (a
           bad idea), you can set it as binary. Binary values should be avoided, because they are black boxes
           for system administrators.

       -b filename
           Set the key value as the content of file filename. This option is more useful when setting binary
           keys.

       -m mode
           For the set command. Will set the key access permission to mode, which must be an octal number as for
           chmod(1).

       -u uid
           Create the key with uid user ID. It can be a user name or a uid number.

       -g gid
           Create the key with gid group ID. It can be a group name or a gid number

       -c comment
           When setting keys, you can use this argument to set a descriptive comment for it. This comment is
           exactly as a comment in a plain text configuration file. The comment is stored as UTF-8(7)
           regardeless of your current encoding ($LANG).

       -v
           With the ls subcommand, will make it show also the value stored in the key.

       --
           With the set subcommand, everything after it will be considered the value, even text with dashes (-).
       Best Practices When Creating Keys.PP When using Elektra to store your application's configuration and
       state, please keep in mind the following rules:

       •   You are not allowed to create keys right under system or user.

       •   You are not allowed to create folder keys right under system or user. They are reserved for very
           essential OS subsystems.

       •   The keys for your application, called say MyApp, should be created under system/sw/MyApp and/or
           user/sw/MyApp.

ENVIRONMENT

       KDB_ROOT if defined, prepends it to key names.

       KDB_BACKEND defines the name of another backend plugin library to use ExamplesSetting Keys.PP bash$kdb
       set -c "My first key" user/example/key "Some nice value"

       bash$kdb set user:luciana/example/key -- "Some - nice - value with dashes"

       bash#KDB_ROOT=user:http/sw/httpd kdb set -u nobody -g http key "Some value"

       bash$kdb set -b image.png -t bin user/example/binaryKey

       bash$kdb set -b file.txt user/example/regularKey

       bash#kdb set -t link system/sw/XFree/current system/sw/XFree/handmade Getting Keys.PP
       bash$KDB_ROOT=user/example kdb get some/key/name

       bash$eval `kdb get -s user/env/env1/PS1`

       bash$KDB_BACKEND=gconf kdb get user/sw/gnome-terminal/global/active_encodings Listing.PP bash$kdb ls -laR
       user:valeria

       bash$kdb ls -lR system/sw/xorg/current

       bash$KDB_ROOT=system/sw kdb ls -lR xorg

       bash$KDB_BACKEND=fstab kdb ls -Rv system/filesystems

       bash$eval `kdb ls -Rvs user/env/env2` Miscelaneous.PP bash#kdb ln system/sw/xorg/handmade
       system/sw/xorg/current

       bash#kdb mv system/sw/xorg/current system/sw/xorg/old

       bash#kdb rm system/inittab/rc4

       bash$KDB_BACKEND=gconf kdb rm user/gconfKey XML Import and Export.PP bash#kdb export user/sw/app | sed -e
       's|/app/|/app2/|g' | kdb import

       bash#KDB_ROOT=system/sw kdb export myapp > myappconf.xml

       bash#kdb import myappconf.xml

       bash$KDB_BACKEND=gconf kdb export user/sw

SEE ALSO

       elektra(7), elektra(5)

AUTHOR

       Avi Alkalay <avi at unix.sh>
       Linux Market Developer, Senior IT and Software Architect, IBM Linux Impact Team :: ibm.com/linux
           Author.

COPYRIGHT

       Copyright © 2004 Avi Alkalay

Elektra Initiative                                 March 2004                                             KDB(1)