Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
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 en-
     countered.

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 orig-
	 inal 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 direc-
	 tories  set  here  are searched before any directories specified in the
	 AUGEAS_LENS_LIB environment variable, and before the  default	directo-
	 ries /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 individual 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 op-
	 tion 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 origi-
	 nal  file.  Enables  the  use	of the span command to retrieve position
	 data.

     --timing
	 After executing each command, print how long, in milliseconds,  execut-
	 ing  the  command took. This makes it easier to spot slow queries, usu-
	 ally 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 un-
	 der "/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, sepa-
     rated 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.

     helpPrint this help text

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

     quitExit the program

     retrieve <LENS> <NODE_IN> <PATH> <NODE_OUT>
	 Transform tree at PATH back into text using lens LENS and store the re-
	 sulting 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.

     saveSave  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 en-
	 able 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 mod-
	 ified.

     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" af-
     ter 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)

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

     Augeas	     path	   expressions		<https://github.com/her-
     cules-team/augeas/wiki/Path-expressions>

     augparse

     augprint

Augeas 1.13.0			   2022-10-24			      AUGTOOL(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=augtool&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help