augtool - inspect and modify configuration files
augtool [OPTIONS] [COMMAND]
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.
-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".
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.
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
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.
# 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()]
Lenses and schema definitions in /usr/share/augeas/lenses and /usr/share/augeas/lenses/dist
David Lutterkort <[email protected]>
Copyright 2007-2015 David Lutterkort Augeas (and augtool) are distributed under the GNU Lesser General Public License (LGPL)
Augeas project homepage <http://www.augeas.net/> augparse
Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.
Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.
Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.
Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.
The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.
Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.
Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.
Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.