.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "AUGTOOL 1" .TH AUGTOOL 1 "2022-10-24" "Augeas 1.13.0" "Augeas" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" augtool \- inspect and modify configuration files .SH "SYNOPSIS" .IX Header "SYNOPSIS" augtool [\s-1OPTIONS\s0] [\s-1COMMAND\s0] .SH "DESCRIPTION" .IX Header "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. .PP augtool provides a command line interface to the generated tree. \s-1COMMAND\s0 can be a single command as described under \*(L"\s-1COMMANDS\*(R"\s0. When called with no \s-1COMMAND,\s0 it reads commands from standard input until an end-of-file is encountered. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-c\fR, \fB\-\-typecheck\fR" 4 .IX Item "-c, --typecheck" Typecheck lenses. This can be very slow, and is therefore not done by default, but is highly recommended during development. .IP "\fB\-b\fR, \fB\-\-backup\fR" 4 .IX Item "-b, --backup" When files are changed, preserve the originals in a file with extension \&'.augsave' .IP "\fB\-n\fR, \fB\-\-new\fR" 4 .IX Item "-n, --new" Save changes in files with extension '.augnew', do not modify the original files .IP "\fB\-r\fR, \fB\-\-root\fR=\fI\s-1ROOT\s0\fR" 4 .IX Item "-r, --root=ROOT" Use directory \s-1ROOT\s0 as the root of the filesystem. Takes precedence over a root set with the \s-1AUGEAS_ROOT\s0 environment variable. .IP "\fB\-I\fR, \fB\-\-include\fR=\fI\s-1DIR\s0\fR" 4 .IX Item "-I, --include=DIR" Add \s-1DIR\s0 to the module loadpath. Can be given multiple times. The directories set here are searched before any directories specified in the \&\s-1AUGEAS_LENS_LIB\s0 environment variable, and before the default directories \&\fI/usr/share/augeas/lenses\fR and \fI/usr/share/augeas/lenses/dist\fR. .IP "\fB\-t\fR, \fB\-\-transform\fR=\fI\s-1XFM\s0\fR" 4 .IX Item "-t, --transform=XFM" Add a file transform; uses the 'transform' command syntax, e.g. \f(CW\*(C`\-t \*(AqFstab incl /etc/fstab.bak\*(Aq\*(C'\fR. .IP "\fB\-l\fR, \fB\-\-load\-file\fR=\fI\s-1FILE\s0\fR" 4 .IX Item "-l, --load-file=FILE" Load an individual \s-1FILE\s0 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. \f(CW\*(C`\-l /etc/fstab \&\-l /etc/hosts\*(C'\fR. This lens implies \f(CW\*(C`\-\-noload\*(C'\fR so that only the files specified with this option will be loaded. .IP "\fB\-f\fR, \fB\-\-file\fR=\fI\s-1FILE\s0\fR" 4 .IX Item "-f, --file=FILE" Read commands from \s-1FILE.\s0 .IP "\fB\-i\fR, \fB\-\-interactive\fR" 4 .IX Item "-i, --interactive" Read commands from the terminal. When combined with \fB\-f\fR or redirection of stdin, drop into an interactive session after executing the commands from the file. .IP "\fB\-e\fR, \fB\-\-echo\fR" 4 .IX Item "-e, --echo" When reading commands from a file via stdin, echo the commands before printing their output. .IP "\fB\-s\fR, \fB\-\-autosave\fR" 4 .IX Item "-s, --autosave" Automatically save all changes at the end of the session. .IP "\fB\-S\fR, \fB\-\-nostdinc\fR" 4 .IX Item "-S, --nostdinc" Do not search any of the default directories for modules. When this option is set, only directories specified explicitly with \fB\-I\fR or specified in \&\fB\s-1AUGEAS_LENS_LIB\s0\fR will be searched for modules. .IP "\fB\-L\fR, \fB\-\-noload\fR" 4 .IX Item "-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 \f(CW\*(C`/augeas/load\*(C'\fR and then issuing a \f(CW\*(C`load\*(C'\fR command. .IP "\fB\-A\fR, \fB\-\-noautoload\fR" 4 .IX Item "-A, --noautoload" Do not load any lens modules, and therefore no files, on startup. This creates no entries under \f(CW\*(C`/augeas/load\*(C'\fR whatsoever; to read any files, they need to be set up manually and loading must be initiated with a \&\f(CW\*(C`load\*(C'\fR command. Using this option gives the fastest startup. .IP "\fB\-\-span\fR" 4 .IX Item "--span" Load span positions for nodes in the tree, as they relate to the original file. Enables the use of the \fBspan\fR command to retrieve position data. .IP "\fB\-\-timing\fR" 4 .IX Item "--timing" After executing each command, print how long, in milliseconds, executing the command took. This makes it easier to spot slow queries, usually through \fBmatch\fR commands, and allows exploring alternative queries that yield the same result but might be faster. .IP "\fB\-\-version\fR" 4 .IX Item "--version" Print version information and exit. The version is also in the tree under \&\f(CW\*(C`/augeas/version\*(C'\fR. .SH "COMMANDS" .IX Header "COMMANDS" In interactive mode, commands and paths can be completed by pressing \f(CW\*(C`TAB\*(C'\fR. .PP 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 \f(CW\*(C`/\*(C'\fR. In each segment, the character \f(CW\*(C`*\*(C'\fR can be used to match every node regardless of its label. Sibling nodes with identical labels can be distinguished by appending \f(CW\*(C`[N]\*(C'\fR to their label to match the N\-th sibling with such a label. The last sibling with a specific label can be reached as \f(CW\*(C`[last()]\*(C'\fR. See \*(L"\s-1EXAMPLES\*(R"\s0 for some examples of this. .SS "\s-1ADMIN COMMANDS\s0" .IX Subsection "ADMIN COMMANDS" The following commands control the behavior of Augeas and augtool itself. .IP "\fBhelp\fR" 4 .IX Item "help" Print this help text .IP "\fBload\fR" 4 .IX Item "load" Load files according to the transforms in \f(CW\*(C`/augeas/load\*(C'\fR. .IP "\fBquit\fR" 4 .IX Item "quit" Exit the program .IP "\fBretrieve\fR <\s-1LENS\s0> <\s-1NODE_IN\s0> <\s-1PATH\s0> <\s-1NODE_OUT\s0>" 4 .IX Item "retrieve " Transform tree at \s-1PATH\s0 back into text using lens \s-1LENS\s0 and store the resulting string at \s-1NODE_OUT.\s0 Assume that the tree was initially read in with the same lens and the string stored at \s-1NODE_IN\s0 as input. .IP "\fBsave\fR" 4 .IX Item "save" Save all pending changes to disk. Unless either the \fB\-b\fR or \fB\-n\fR command line options are given, files are changed in place. .IP "\fBstore\fR <\s-1LENS\s0> <\s-1NODE\s0> <\s-1PATH\s0>" 4 .IX Item "store " Parse \s-1NODE\s0 using \s-1LENS\s0 and store the resulting tree at \s-1PATH.\s0 .IP "\fBtransform\fR <\s-1LENS\s0> <\s-1FILTER\s0> <\s-1FILE\s0>" 4 .IX Item "transform " Add a transform for \s-1FILE\s0 using \s-1LENS.\s0 The \s-1LENS\s0 may be a module name or a full lens name. If a module name is given, then \*(L"lns\*(R" will be the lens assumed. The \s-1FILTER\s0 must be either \*(L"incl\*(R" or \*(L"excl\*(R". If the filter is \&\*(L"incl\*(R", the \s-1FILE\s0 will be parsed by the \s-1LENS.\s0 If the filter is \*(L"excl\*(R", the \s-1FILE\s0 will be excluded from the \s-1LENS. FILE\s0 may contain wildcards. .IP "\fBload-file\fR <\s-1FILE\s0>" 4 .IX Item "load-file " Load a specific \s-1FILE,\s0 automatically determining the proper lens from the information in \fI/augeas/load\fR; without further intervention, the lens that would oridnarily be used for this file will be used. .SS "\s-1READ COMMANDS\s0" .IX Subsection "READ COMMANDS" The following commands are used to retrieve data from the Augeas tree. .IP "\fBdump-xml\fR \fI[<\s-1PATH\s0>]\fR" 4 .IX Item "dump-xml []" Print entries in the tree as \s-1XML.\s0 If \s-1PATH\s0 is given, printing starts there, otherwise the whole tree is printed. .IP "\fBget\fR <\s-1PATH\s0>" 4 .IX Item "get " Print the value associated with \s-1PATH\s0 .IP "\fBlabel\fR <\s-1PATH\s0>" 4 .IX Item "label " Get and print the label associated with \s-1PATH\s0 .IP "\fBls\fR <\s-1PATH\s0>" 4 .IX Item "ls " List the direct children of \s-1PATH\s0 .IP "\fBmatch\fR <\s-1PATTERN\s0> [<\s-1VALUE\s0>]" 4 .IX Item "match []" Find all paths that match \s-1PATTERN.\s0 If \s-1VALUE\s0 is given, only the matching paths whose value equals \s-1VALUE\s0 are printed .IP "\fBprint\fR \fI[<\s-1PATH\s0>]\fR" 4 .IX Item "print []" Print entries in the tree. If \s-1PATH\s0 is given, printing starts there, otherwise the whole tree is printed .IP "\fBspan\fR <\s-1PATH\s0>" 4 .IX Item "span " Print the name of the file from which the node \s-1PATH\s0 was generated, as well as information about the positions in the file corresponding to the label, the value, and the entire node. \s-1PATH\s0 must match exactly one node. .Sp You need to run 'set /augeas/span enable' prior to loading files to enable recording of span information. It is disabled by default. .SS "\s-1WRITE COMMANDS\s0" .IX Subsection "WRITE COMMANDS" The following commands are used to modify the Augeas tree. .IP "\fBclear\fR <\s-1PATH\s0>" 4 .IX Item "clear " Set the value for \s-1PATH\s0 to \s-1NULL.\s0 If \s-1PATH\s0 is not in the tree yet, it and all its ancestors will be created. .IP "\fBclearm\fR <\s-1BASE\s0> <\s-1SUB\s0>" 4 .IX Item "clearm " Clear multiple nodes values in one operation. Find or create a node matching \s-1SUB\s0 by interpreting \s-1SUB\s0 as a path expression relative to each node matching \&\s-1BASE.\s0 If \s-1SUB\s0 is '.', the nodes matching \s-1BASE\s0 will be modified. .IP "\fBins\fR \fI<\s-1LABEL\s0>\fR \fI<\s-1WHERE\s0>\fR \fI<\s-1PATH\s0>\fR" 4 .IX Item "ins