Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

augtool (1)

Name

augtool - inspect and modify configuration files

Synopsis

augtool [OPTIONS] [COMMAND]

Description

AUGTOOL(1)                          Augeas                          AUGTOOL(1)



NAME
       augtool - inspect and modify configuration files

SYNOPSIS
       augtool [OPTIONS] [COMMAND]

DESCRIPTION
       Augeas is a configuration editing tool. It parses configuration files
       in their native formats and transforms them into a tree. Configuration
       changes are made by manipulating this tree and saving it back into
       native config files.

       augtool provides a command line interface to the generated tree.
       COMMAND can be a single command as described under "COMMANDS". When
       called with no COMMAND, it reads commands from standard input until an
       end-of-file is encountered.

OPTIONS
       -c, --typecheck
           Typecheck lenses. This can be very slow, and is therefore not done
           by default, but is highly recommended during development.

       -b, --backup
           When files are changed, preserve the originals in a file with
           extension '.augsave'

       -n, --new
           Save changes in files with extension '.augnew', do not modify the
           original files

       -r, --root=ROOT
           Use directory ROOT as the root of the filesystem. Takes precedence
           over a root set with the AUGEAS_ROOT environment variable.

       -I, --include=DIR
           Add DIR to the module loadpath. Can be given multiple times. The
           directories set here are searched before any directories specified
           in the AUGEAS_LENS_LIB environment variable, and before the default
           directories /usr/share/augeas/lenses and
           /usr/share/augeas/lenses/dist.

       -t, --transform=XFM
           Add a file transform; uses the 'transform' command syntax, e.g. "-t
           'Fstab incl /etc/fstab.bak'".

       -l, --load-file=FILE
           Load an invididual FILE into the tree. The lens to use is
           determined automatically (based on autoload information in the
           lenses) and will be the same that is used for this file when the
           entire tree is loaded. The option can be specified multiple times
           to load several files, e.g. "-l /etc/fstab -l /etc/hosts". This
           lens implies "--noload" so that only the files specified with this
           option will be loaded.

       -f, --file=FILE
           Read commands from FILE.

       -i, --interactive
           Read commands from the terminal. When combined with -f or
           redirection of stdin, drop into an interactive session after
           executing the commands from the file.

       -e, --echo
           When reading commands from a file via stdin, echo the commands
           before printing their output.

       -s, --autosave
           Automatically save all changes at the end of the session.

       -S, --nostdinc
           Do not search any of the default directories for modules. When this
           option is set, only directories specified explicitly with -I or
           specified in AUGEAS_LENS_LIB will be searched for modules.

       -L, --noload
           Do not load any files on startup. This is generally used to fine-
           tune which files to load by modifying the entries in "/augeas/load"
           and then issuing a "load" command.

       -A, --noautoload
           Do not load any lens modules, and therefore no files, on startup.
           This creates no entries under "/augeas/load" whatsoever; to read
           any files, they need to be set up manually and loading must be
           initiated with a "load" command. Using this option gives the
           fastest startup.

       --span
           Load span positions for nodes in the tree, as they relate to the
           original file. Enables the use of the span command to retrieve
           position data.

       --timing
           After executing each command, print how long, in milliseconds,
           executing the command took. This makes it easier to spot slow
           queries, usually through match commands, and allows exploring
           alternative queries that yield the same result but might be faster.

       --version
           Print version information and exit. The version is also in the tree
           under "/augeas/version".

COMMANDS
       In interactive mode, commands and paths can be completed by pressing
       "TAB".

       The paths accepted as arguments by commands use a small subset of XPath
       path expressions. A path expression consists of a number of segments,
       separated by "/". In each segment, the character "*" can be used to
       match every node regardless of its label. Sibling nodes with identical
       labels can be distinguished by appending "[N]" to their label to match
       the N-th sibling with such a label. The last sibling with a specific
       label can be reached as "[last()]". See "EXAMPLES" for some examples of
       this.

   ADMIN COMMANDS
       The following commands control the behavior of Augeas and augtool
       itself.

       help
           Print this help text

       load
           Load files according to the transforms in "/augeas/load".

       quit
           Exit the program

       retrieve <LENS> <NODE_IN> <PATH> <NODE_OUT>
           Transform tree at PATH back into text using lens LENS and store the
           resulting string at NODE_OUT. Assume that the tree was initially
           read in with the same lens and the string stored at NODE_IN as
           input.

       save
           Save all pending changes to disk. Unless either the -b or -n
           command line options are given, files are changed in place.

       store <LENS> <NODE> <PATH>
           Parse NODE using LENS and store the resulting tree at PATH.

       transform <LENS> <FILTER> <FILE>
           Add a transform for FILE using LENS. The LENS may be a module name
           or a full lens name.  If a module name is given, then "lns" will be
           the lens assumed.  The FILTER must be either "incl" or "excl".  If
           the filter is "incl",  the FILE will be parsed by the LENS.  If the
           filter is "excl", the FILE will be excluded from the LENS. FILE may
           contain wildcards.

       load-file <FILE>
           Load a specific FILE, automatically determining the proper lens
           from the information in /augeas/load; without further intervention,
           the lens that would oridnarily be used for this file will be used.

   READ COMMANDS
       The following commands are used to retrieve data from the Augeas tree.

       dump-xml [<PATH>]
           Print entries in the tree as XML. If PATH is given, printing starts
           there, otherwise the whole tree is printed.

       get <PATH>
           Print the value associated with PATH

       label <PATH>
           Get and print the label associated with PATH

       ls <PATH>
           List the direct children of PATH

       match <PATTERN> [<VALUE>]
           Find all paths that match PATTERN. If VALUE is given, only the
           matching paths whose value equals VALUE are printed

       print [<PATH>]
           Print entries in the tree. If PATH is given, printing starts there,
           otherwise the whole tree is printed

       span <PATH>
           Print the name of the file from which the node PATH was generated,
           as well as information about the positions in the file
           corresponding to the label, the value, and the entire node. PATH
           must match exactly one node.

           You need to run 'set /augeas/span enable' prior to loading files to
           enable recording of span information. It is disabled by default.

   WRITE COMMANDS
       The following commands are used to modify the Augeas tree.

       clear <PATH>
           Set the value for PATH to NULL. If PATH is not in the tree yet, it
           and all its ancestors will be created.

       clearm <BASE> <SUB>
           Clear multiple nodes values in one operation. Find or create a node
           matching SUB by interpreting SUB as a path expression relative to
           each node matching BASE. If SUB is '.', the nodes matching BASE
           will be modified.

       ins <LABEL> <WHERE> <PATH>
           Insert a new node with label LABEL right before or after PATH into
           the tree. WHERE must be either 'before' or 'after'.

       insert <LABEL> <WHERE> <PATH>
           Alias of ins.

       mv <SRC> <DST>
           Move node SRC to DST. SRC must match exactly one node in the tree.
           DST must either match exactly one node in the tree, or may not
           exist yet. If DST exists already, it and all its descendants are
           deleted. If DST does not exist yet, it and all its missing
           ancestors are created.

       move <SRC> <DST>
           Alias of mv.

       cp <SRC> <DST>
           Copy node SRC to DST. SRC must match exactly one node in the tree.
           DST must either match exactly one node in the tree, or may not
           exist yet. If DST exists already, it and all its descendants are
           deleted. If DST does not exist yet, it and all its missing
           ancestors are created.

       copy <SRC> <DST>
           Alias of cp.

       rename <SRC> <LBL>
           Rename the label of all nodes matching SRC to LBL.

       rm <PATH>
           Delete PATH and all its children from the tree

       set <PATH> <VALUE>
           Associate VALUE with PATH. If PATH is not in the tree yet, it and
           all its ancestors will be created.

       setm <BASE> <SUB> [<VALUE>]
           Set multiple nodes in one operation.  Find or create a node
           matching SUB by interpreting SUB as a path expression relative to
           each node matching BASE. If SUB is '.', the nodes matching BASE
           will be modified.

       touch <PATH>
           Create PATH with the value NULL if it is not in the tree yet.  All
           its ancestors will also be created.  These new tree entries will
           appear last amongst their siblings.

   PATH EXPRESSION COMMANDS
       The following commands help when working with path expressions.

       defnode <NAME> <EXPR> [<VALUE>]
           Define the variable NAME to the result of evaluating EXPR, which
           must be a nodeset. If no node matching EXPR exists yet, one is
           created and NAME will refer to it. If VALUE is given, this is the
           same as 'set EXPR VALUE'; if VALUE is not given, the node is
           created as if with 'clear EXPR' would and NAME refers to that node.

       defvar <NAME> <EXPR>
           Define the variable NAME to the result of evaluating EXPR. The
           variable can be used in path expressions as $NAME. Note that EXPR
           is evaluated when the variable is defined, not when it is used.

ENVIRONMENT VARIABLES
       AUGEAS_ROOT
           The file system root, defaults to '/'. Can be overridden with the
           -r command line option

       AUGEAS_LENS_LIB
           Colon separated list of directories with lenses. Directories
           specified here are searched after any directories set with the -I
           command line option, but before the default directories
           /usr/share/augeas/lenses and /usr/share/augeas/lenses/dist

DIAGNOSTICS
       Normally, exit status is 0. If one or more commands fail, the exit
       status is set to a non-zero value.

       Note though that failure to load some of the files specified by
       transforms in "/augeas/load" is not considered a failure. If it is
       important to know that all files were loaded, you need to issue a
       "match /augeas//error" after loading to find out details about what
       files could not be loaded and why.

EXAMPLES
         # command line mode
         augtool print /files/etc/hosts/

         # interactive mode
         augtool
         augtool> help
         augtool> print /files/etc/hosts/

         # Print the third entry from the second AcceptEnv line
         augtool print '/files/etc/ssh/sshd_config/AcceptEnv[2]/3'

         # Find the entry in inittab with action 'initdefault'
         augtool> match /files/etc/inittab/*/action initdefault

         # Print the last alias for each entry in /etc/hosts
         augtool> print /files/etc/hosts/*/alias[last()]

FILES
       Lenses and schema definitions in /usr/share/augeas/lenses and
       /usr/share/augeas/lenses/dist

AUTHOR
       David Lutterkort <lutter@watzmann.net>

COPYRIGHT AND LICENSE
       Copyright 2007-2016 David Lutterkort

       Augeas (and augtool) are distributed under the GNU Lesser General
       Public License (LGPL)


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+--------------------------+
       |ATTRIBUTE TYPE |     ATTRIBUTE VALUE      |
       +---------------+--------------------------+
       |Availability   | system/management/augeas |
       +---------------+--------------------------+
       |Stability      | Uncommitted              |
       +---------------+--------------------------+

SEE ALSO
       Augeas project homepage <http://www.augeas.net/>

       augparse



NOTES
       Source code for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This software was built from source available at
       https://github.com/oracle/solaris-userland.  The original community
       source was downloaded from
       http://download.augeas.net/augeas-1.8.1.tar.gz.

       Further information about this software can be found on the open source
       community website at http://www.augeas.net/.



Augeas 1.5.0                      2016-08-05                        AUGTOOL(1)