Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / doc / xml / AdminGuide / auagd023.xml
CommitLineData
805e021f
CE
1<?xml version="1.0" encoding="UTF-8"?>
2<appendix id="HDRCOMMANDS">
3 <title>Using AFS Commands</title>
4
5 <para>This section describes the components of AFS commands and how to make entering commands more efficient by using shortened
6 forms. It has the following sections: <simplelist>
7 <member><link linkend="HDRWQ613">AFS Command Syntax</link></member>
8
9 <member><link linkend="HDRWQ614">Rules for Entering AFS Commands</link></member>
10
11 <member><link linkend="HDRWQ615">Rules for Using Abbreviations and Aliases</link></member>
12
13 <member><link linkend="HDRWQ616">Displaying Online Help for AFS Commands</link></member>
14 </simplelist></para>
15
16 <sect1 id="HDRWQ613">
17 <title>AFS Command Syntax</title>
18
19 <para>AFS commands that belong to suites have the following structure:</para>
20
21 <programlisting><emphasis role="bold">command_suite operation_code</emphasis><emphasis role="bold">-switch</emphasis> <replaceable>&lt;value&gt;</replaceable>[+] [<emphasis
22 role="bold">-flag</emphasis>]
23</programlisting>
24
25 <sect2 id="Header_691">
26 <title>Command Names</title>
27
28 <para>Together, the <emphasis role="bold">command_suite</emphasis> and <emphasis role="bold">operation_code</emphasis> make up
29 the <emphasis>command name</emphasis>.</para>
30
31 <para>The <emphasis role="bold">command_suite</emphasis> specifies the group of related commands to which the command belongs,
32 and indicates which command interpreter and server process perform the command. AFS has several command suites, including
33 <emphasis role="bold">bos</emphasis>, <emphasis role="bold">fs</emphasis>, <emphasis role="bold">kas</emphasis>,
34 <emphasis role="bold">pts</emphasis>, <emphasis role="bold">scout</emphasis>, <emphasis
35 role="bold">uss</emphasis> and <emphasis role="bold">vos</emphasis>. Some of these suites have an interactive mode in which
36 the issuer omits the <emphasis role="bold">command_suite</emphasis> portion of the command name.</para>
37
38 <para>The <emphasis role="bold">operation_code</emphasis> tells the command interpreter and server process which action to
39 perform. Most command suites include several operation codes. The <emphasis>OpenAFS Administration Reference</emphasis>
40 describes each operation code in detail, and the <emphasis>OpenAFS Administration Guide</emphasis> describes how to use them
41 in the context of performing administrative tasks.</para>
42
43 <para>Several AFS commands do not belong to a suite and so their names do not have a <emphasis
44 role="bold">command_suite</emphasis> portion. Their structure is otherwise similar to the commands in the suites.</para>
45 </sect2>
46
47 <sect2 id="Header_692">
48 <title>Options</title>
49
50 <para>The term <emphasis>option</emphasis> refers to both arguments and flags, which are described in the following
51 sections.</para>
52 </sect2>
53
54 <sect2 id="Header_693">
55 <title>Arguments</title>
56
57 <para>One or more arguments can follow the command name. Arguments specify the entities on which to act while performing the
58 command (for example, which server machine, server process, or file). To minimize the potential for error, provide a command's
59 arguments in the order prescribed in its syntax definition.</para>
60
61 <para>Each argument has two parts, which appear in the indicated order: <itemizedlist>
62 <listitem>
63 <para>The <emphasis>switch</emphasis> specifies the argument's type and is preceded by a hyphen ( <emphasis
64 role="bold">-</emphasis> ). For instance, the switch <emphasis role="bold">-server</emphasis> usually indicates that the
65 argument names a server machine. Switches can often be omitted, subject to the rules outlined in <link
66 linkend="HDRNOSWITCH">Conditions for Omitting Switches</link>.</para>
67 </listitem>
68
69 <listitem>
70 <para>The <emphasis>value</emphasis> names a particular entity of the type specified by the preceding switch. For
71 example, the proper value for a <emphasis role="bold">-server</emphasis> switch is a server machine name like <emphasis
72 role="bold">fs3.example.com</emphasis>. Unlike switches (which have a required form), values vary depending on what the
73 issuer wants to accomplish. Values appear surrounded by angle brackets (<emphasis role="bold">&lt; &gt;</emphasis>) in
74 command descriptions and the online help to show that they are user-supplied variable information.</para>
75 </listitem>
76 </itemizedlist></para>
77
78 <para>Some arguments accept multiple values, as indicated by trailing plus sign ( <emphasis role="bold">+</emphasis> ) in the
79 command descriptions and online help. How many of a command's arguments take multiple values, and their ordering with respect
80 to other arguments, determine when it is acceptable to omit switches. See <link linkend="HDRNOSWITCH">Conditions for Omitting
81 Switches</link>.</para>
82
83 <para>Some commands have optional as well as required arguments; the command descriptions and online help show optional
84 arguments in square brackets ([ ]).</para>
85 </sect2>
86
87 <sect2 id="Header_694">
88 <title>Flags</title>
89
90 <para>Some commands have one or more flags, which specify the manner in which the command interpreter and server process
91 perform the command, or what kind of output it produces. Flags are preceded by hyphens like switches, but they take no values.
92 Although the command descriptions and online help generally list a command's flags after its arguments, there is no prescribed
93 order for flags. They can appear anywhere on the command line following the operation code, except in between the parts of an
94 argument. Flags are always optional.</para>
95 </sect2>
96
97 <sect2 id="HDRCOMMAND-EX">
98 <title>An Example Command</title>
99
100 <para>The following example illustrates the different parts of a command that belongs to an AFS command suite.</para>
101
102 <programlisting>
103 % <emphasis role="bold">bos getdate -server fs1.example.com -file ptserver kaserver</emphasis>
104</programlisting>
105
106 <para>where <itemizedlist>
107 <listitem>
108 <para><emphasis role="bold">bos</emphasis> is the command suite. The BOS Server executes most of the commands in this
109 suite.</para>
110 </listitem>
111
112 <listitem>
113 <para><emphasis role="bold">getdate</emphasis> is the operation code. It tells the BOS Server on the specified server
114 machine (in this case <emphasis role="bold">fs1.example.com</emphasis>) to report the modification dates of binary files in
115 the local <emphasis role="bold">/usr/afs/bin</emphasis> directory.</para>
116 </listitem>
117
118 <listitem>
119 <para><emphasis role="bold">-server fs1.example.com</emphasis> is one argument, with <emphasis
120 role="bold">-server</emphasis> as the switch and <emphasis role="bold">fs1.example.com</emphasis> as the value. This
121 argument specifies the server machine on which BOS Server is to collect and report binary dates.</para>
122 </listitem>
123
124 <listitem>
125 <para><emphasis role="bold">-file ptserver kaserver</emphasis> is an argument that takes multiple values. The switch is
126 <emphasis role="bold">-file</emphasis> and the values are <emphasis role="bold">ptserver</emphasis> and <emphasis
127 role="bold">kaserver</emphasis>. This argument tells the BOS Server to report the modification dates on the files
128 <emphasis role="bold">/usr/afs/bin/kaserver</emphasis> and <emphasis
129 role="bold">/usr/afs/bin/ptserver</emphasis>.</para>
130 </listitem>
131 </itemizedlist></para>
132 </sect2>
133
134 <sect2 id="HDRWQ614">
135 <title>Rules for Entering AFS Commands</title>
136
137 <para>Enter each AFS command on a single line (press <emphasis role="bold">&lt;Return&gt;</emphasis> only at the end of the
138 command). Some commands in this document appear broken across multiple lines, but that is for legibility only.</para>
139
140 <para>Use a space to separate each element on a command line from its neighbors. Spaces rather than commas also separate
141 multiple values of an argument.</para>
142
143 <para>In many cases, the issuer of a command can reduce the amount of typing necessary by using one or both of the following
144 methods: <itemizedlist>
145 <listitem>
146 <para>Omitting switches</para>
147 </listitem>
148
149 <listitem>
150 <para>Using accepted abbreviations for operation codes, switches (if they are included at all), and some types of
151 values</para>
152 </listitem>
153 </itemizedlist></para>
154
155 <para>The following sections explain the conditions for omitting or shortening parts of the command line. It is always
156 acceptable to type a command in full, with all of its switches and no abbreviations.</para>
157
158 <sect3 id="HDRNOSWITCH">
159 <title>Conditions for Omitting Switches</title>
160
161 <para>It is always acceptable to type the switch part of an argument, but in many cases it is not necessary. Specifically,
162 switches can be omitted if the following conditions are met. <itemizedlist>
163 <listitem>
164 <para>All of the command's required arguments appear in the order prescribed by the syntax statement</para>
165 </listitem>
166
167 <listitem>
168 <para>No switch is provided for any argument</para>
169 </listitem>
170
171 <listitem>
172 <para>There is only one value for each argument (but note the important exception discussed in the following
173 paragraph)</para>
174 </listitem>
175 </itemizedlist></para>
176
177 <para>Omitting switches is possible only because there is a prescribed order for each command's arguments. When the issuer
178 does not include switches, the command interpreter relies instead on the order of arguments; it assumes that the first
179 element after the operation code is the command's first argument, the next element is the command's second argument, and so
180 on. The important exception is when a command's final required argument accepts multiple values. In this case, the command
181 interpreter assumes that the issuer has correctly provided one value for each argument up through the final one, so any
182 additional values at the end belong to the final argument.</para>
183
184 <para>The following list describes the rules for omitting switches from the opposite perspective: an argument's switch must
185 be provided when any of the following conditions apply. <itemizedlist>
186 <listitem>
187 <para>The command's arguments do not appear in the prescribed order</para>
188 </listitem>
189
190 <listitem>
191 <para>An optional argument is omitted but a subsequent optional argument is provided</para>
192 </listitem>
193
194 <listitem>
195 <para>A switch is provided for a preceding argument</para>
196 </listitem>
197
198 <listitem>
199 <para>More than one value is supplied for a preceding argument (which must take multiple values, of course); without a
200 switch on the current argument, the command interpreter assumes that the current argument is another value for the
201 preceding argument</para>
202 </listitem>
203 </itemizedlist></para>
204 </sect3>
205
206 <sect3 id="Header_698">
207 <title>An Example of Omitting Switches</title>
208
209 <para>Consider again the example command from <link linkend="HDRCOMMAND-EX">An Example Command</link>.</para>
210
211 <programlisting>
212 % <emphasis role="bold">bos getdate -server fs1.example.com -file ptserver kaserver</emphasis>
213</programlisting>
214
215 <para>This command has two required arguments: the server machine name (identified by the <emphasis
216 role="bold">-server</emphasis> switch) and binary file name (identified by the <emphasis role="bold">-file</emphasis>
217 switch). The second argument accepts multiple values. By complying with all three conditions, the issuer can omit the
218 switches:</para>
219
220 <programlisting>
221 % <emphasis role="bold">bos getdate fs1.example.com ptserver kaserver</emphasis>
222</programlisting>
223
224 <para>Because there are no switches, the <emphasis role="bold">bos</emphasis> command interpreter relies on the order of
225 arguments. It assumes that the first element following the operation code, <emphasis role="bold">fs1.example.com</emphasis>, is
226 the server machine name, and that the next argument, <emphasis role="bold">ptserver</emphasis>, is a binary file name. Then,
227 because the command's second (and last) argument accepts multiple values, the command interpreter correctly interprets
228 <emphasis role="bold">kaserver</emphasis> as an additional value for it.</para>
229
230 <para>On the other hand, the following is not acceptable because it violates the first two conditions in <link
231 linkend="HDRNOSWITCH">Conditions for Omitting Switches</link>: even though there is only one value per argument, the
232 arguments do not appear in the prescribed order, and a switch is provided for one argument but not the other.</para>
233
234 <programlisting>
235 % <emphasis role="bold">bos getdate ptserver -server fs1.example.com</emphasis>
236</programlisting>
237 </sect3>
238 </sect2>
239
240 <sect2 id="HDRWQ615">
241 <title>Rules for Using Abbreviations and Aliases</title>
242
243 <para>This section explains how to abbreviate operation codes, option names, server machine names, partition names, and cell
244 names. It is not possible to abbreviate other types of values.</para>
245
246 <sect3 id="Header_700">
247 <title>Abbreviating Operation Codes</title>
248
249 <para>It is acceptable to abbreviate an operation code to the shortest form that still distinguishes it from the other
250 operation codes in its suite.</para>
251
252 <para>For example, it is acceptable to shorten <emphasis role="bold">bos install</emphasis> to <emphasis role="bold">bos
253 i</emphasis> because there are no other operation codes in the <emphasis role="bold">bos</emphasis> command suite that begin
254 with the letter <emphasis role="bold">i</emphasis>. In contrast, there are several <emphasis role="bold">bos</emphasis>
255 operation codes that start with the letter <emphasis role="bold">s</emphasis>, so the abbreviations must be longer to remain
256 unambiguous: <simplelist>
257 <member><emphasis role="bold">bos sa</emphasis> for <emphasis role="bold">bos salvage</emphasis></member>
258
259 <member><emphasis role="bold">bos seta</emphasis> for <emphasis role="bold">bos setauth</emphasis></member>
260
261 <member><emphasis role="bold">bos setc</emphasis> for <emphasis role="bold">bos setcellname</emphasis></member>
262
263 <member><emphasis role="bold">bos setr</emphasis> for <emphasis role="bold">bos setrestart</emphasis></member>
264
265 <member><emphasis role="bold">bos sh</emphasis> for <emphasis role="bold">bos shutdown</emphasis></member>
266
267 <member><emphasis role="bold">bos start</emphasis> for <emphasis role="bold">bos start</emphasis></member>
268
269 <member><emphasis role="bold">bos startu</emphasis> for <emphasis role="bold">bos startup</emphasis></member>
270
271 <member><emphasis role="bold">bos stat</emphasis> for <emphasis role="bold">bos status</emphasis></member>
272
273 <member><emphasis role="bold">bos sto</emphasis> for <emphasis role="bold">bos stop</emphasis></member>
274 </simplelist></para>
275
276 <para>In addition to abbreviations, some operation codes have an <emphasis>alias</emphasis>, a short form that is not
277 derived by abbreviating the operation code to its shortest unambiguous form. For example, the alias for the <emphasis
278 role="bold">fs setacl</emphasis> command is <emphasis role="bold">fs sa</emphasis>, whereas the shortest unambiguous
279 abbreviation is <emphasis role="bold">fs seta</emphasis>.</para>
280
281 <para>There are two usual reasons an operation code has an alias: <itemizedlist>
282 <listitem>
283 <para>Because the command is frequently issued, it is convenient to have a form shorter than the one derived by
284 abbreviating. The <emphasis role="bold">fs setacl</emphasis> command is an example.</para>
285 </listitem>
286
287 <listitem>
288 <para>Because the command's name has changed, but users of previous versions of AFS know the former name. For example,
289 <emphasis role="bold">bos listhosts</emphasis> has the alias <emphasis role="bold">bos getcell</emphasis>, its former
290 name. It is acceptable to abbreviate aliases to their shortest unambiguous form (for example, <emphasis
291 role="bold">bos getcell</emphasis> to <emphasis role="bold">bos getc</emphasis>).</para>
292 </listitem>
293 </itemizedlist></para>
294
295 <para>Even if an operation code has an alias, it is still acceptable to use the shortest unambiguous form. Thus, the
296 <emphasis role="bold">fs setacl</emphasis> command has three acceptable forms: <emphasis role="bold">fs setacl</emphasis>
297 (the full form), <emphasis role="bold">fs seta</emphasis> (the shortest abbreviation), and <emphasis role="bold">fs
298 sa</emphasis> (the alias).</para>
299 </sect3>
300
301 <sect3 id="Header_701">
302 <title>Abbreviating Switches and Flags</title>
303
304 <para>It is acceptable to shorten a switch or flag to the shortest form that distinguishes it from the other switches and
305 flags for its operation code. It is often possible to omit switches entirely, subject to the conditions listed in <link
306 linkend="HDRNOSWITCH">Conditions for Omitting Switches</link>.</para>
307 </sect3>
308
309 <sect3 id="HDRFMSABBREV">
310 <title>Abbreviating Server Machine Names</title>
311
312 <para>AFS server machines must have fully-qualified Internet-style host names (for example, <emphasis
313 role="bold">fs1.example.com</emphasis>), but it is not always necessary to type the full name on the command line. AFS commands
314 accept unambiguous shortened forms, but depend on the cell's name service (such as the Domain Name Service) or a local host
315 table to resolve a shortened name to the fully-qualified equivalent when the command is issued.</para>
316
317 <para>Most commands also accept the dotted decimal form of the machine's IP address as an identifier.</para>
318 </sect3>
319
320 <sect3 id="HDRPARTABBREV">
321 <title>Abbreviating Partition Names</title>
322
323 <para>Partitions that house AFS volumes must have names of the form <emphasis
324 role="bold">/vicep</emphasis><replaceable>x</replaceable> or <emphasis
325 role="bold">/vicep</emphasis><replaceable>xx</replaceable>, where the variable final portion is one or two lowercase
326 letters. By convention, the first server partition created on a file server machine is called <emphasis
327 role="bold">/vicepa</emphasis>, the second <emphasis role="bold">/vicepb</emphasis>, and so on. The <emphasis>OpenAFS Quick
328 Beginnings</emphasis> explains how to configure and name a file server machine's partitions in preparation for storing AFS
329 volumes on them.</para>
330
331 <para>When issuing AFS commands, you can abbreviate a partition name using any of the following forms:</para>
332
333 <programlisting>
334<emphasis role="bold">/vicepa</emphasis> = <emphasis role="bold">vicepa</emphasis> = <emphasis role="bold">a</emphasis> = <emphasis
335 role="bold">0</emphasis>
336<emphasis role="bold">/vicepb</emphasis> = <emphasis role="bold">vicepb</emphasis> = <emphasis role="bold">b</emphasis> = <emphasis
337 role="bold">1</emphasis>
338</programlisting>
339
340 <para>After <emphasis role="bold">/vicepz</emphasis> (for which the index is 25) comes</para>
341
342 <programlisting>
343<emphasis role="bold">/vicepaa</emphasis> = <emphasis role="bold">vicepaa</emphasis> = <emphasis role="bold">aa</emphasis> = <emphasis
344 role="bold">26</emphasis>
345<emphasis role="bold">/vicepab</emphasis> = <emphasis role="bold">vicepab</emphasis> = <emphasis role="bold">ab</emphasis> = <emphasis
346 role="bold">27</emphasis>
347</programlisting>
348
349 <para>and so on through</para>
350
351 <programlisting>
352<emphasis role="bold">/vicepiv</emphasis> = <emphasis role="bold">vicepiv</emphasis> = <emphasis role="bold">iv</emphasis> = <emphasis
353 role="bold">255</emphasis>
354</programlisting>
355 </sect3>
356
357 <sect3 id="HDRCELLABBREV">
358 <title>Abbreviating Cell Names</title>
359
360 <para>A cell's full name usually matches its Internet domain name (such as <emphasis role="bold">example.org</emphasis> for
361 the Example Organization or <emphasis role="bold">example.com</emphasis> for Example Corporation). Some AFS commands accept unambiguous
362 shortened forms, usually with respect to the local <emphasis role="bold">/usr/vice/etc/CellServDB file</emphasis> but
363 sometimes depending on the ability of the local name service to resolve the corresponding domain name.</para>
364 </sect3>
365 </sect2>
366
367 <sect2 id="HDRWQ616">
368 <title>Displaying Online Help for AFS Commands</title>
369
370 <para>To display online help for AFS commands that belong to suites, use the <emphasis role="bold">help</emphasis> and
371 <emphasis role="bold">apropos</emphasis> operation codes. A <emphasis role="bold">-help</emphasis> flag is also available on
372 every almost every AFS command.</para>
373
374 <para>The online help entry for a command consists of two or three lines: <itemizedlist>
375 <listitem>
376 <para>The first line names the command and briefly describes what it does</para>
377 </listitem>
378
379 <listitem>
380 <para>If the command has aliases, they appear on the next line</para>
381 </listitem>
382
383 <listitem>
384 <para>The final line, which begins with the string <computeroutput>Usage:</computeroutput>, lists the command's options
385 in the prescribed order; online help entries use the same typographical symbols (brackets and so on) as this
386 documentation.</para>
387 </listitem>
388 </itemizedlist></para>
389
390 <para>If no operation code is specified, the <emphasis role="bold">help</emphasis> operation code displays the first line
391 (short description) for every operation code in the suite:</para>
392
393 <programlisting>
394 % <replaceable>command_suite</replaceable> <emphasis role="bold">help</emphasis>
395</programlisting>
396
397 <para>If the issuer specifies one or more operation codes, the <emphasis role="bold">help</emphasis> operation code displays
398 each command's complete online entry (short description, alias if any, and syntax):</para>
399
400 <programlisting>
401 % <replaceable>command_suite</replaceable> <emphasis role="bold">help</emphasis> <replaceable>operation_code</replaceable>+
402</programlisting>
403
404 <para>The <emphasis role="bold">-help</emphasis> flag displays a command's syntax but not the short description or
405 alias:</para>
406
407 <programlisting>
408 % <replaceable>command_name</replaceable> <emphasis role="bold">-help</emphasis>
409</programlisting>
410
411 <para>The <emphasis role="bold">apropos</emphasis> operation code displays the short description of any command in a suite
412 whose operation code or short description includes the specified keyword:</para>
413
414 <programlisting>
415 % <replaceable>command_suite</replaceable> <emphasis role="bold">apropos</emphasis> <replaceable>"&lt;help string&gt;"</replaceable>
416</programlisting>
417
418 <para>The following example command displays the complete online help entry for the <emphasis role="bold">fs setacl</emphasis>
419 command:</para>
420
421 <programlisting>
422 % <emphasis role="bold">fs help setacl</emphasis>
423 fs setacl: set access control list
424 aliases: sa
425 Usage: fs setacl -dir &lt;<replaceable>directory</replaceable>&gt;+ -acl &lt;<replaceable>access list entries</replaceable>&gt;+
426 [-clear] [-negative] [-id] [-if] [-help]
427</programlisting>
428
429 <para>To see only the syntax statement, use the <emphasis role="bold">-help</emphasis> flag:</para>
430
431 <programlisting>
432 % <emphasis role="bold">fs setacl -help</emphasis>
433 Usage: fs setacl -dir &lt;<replaceable>directory</replaceable>&gt;+ -acl &lt;<replaceable>access list entries</replaceable>&gt;+
434 [-clear] [-negative] [-id] [-if] [-help]
435</programlisting>
436
437 <para>In the following example, a user wants to display the quota for her home volume. She knows that the relevant command
438 belongs to the <emphasis role="bold">fs</emphasis> suite, but cannot remember the operation code. She uses <emphasis
439 role="bold">quota</emphasis> as the keyword:</para>
440
441 <programlisting>
442 % <emphasis role="bold">fs apropos quota</emphasis>
443 listquota: list volume quota
444 quota: show volume quota usage
445 setquota: set volume quota
446</programlisting>
447
448 <para>The following illustrates the error message that results if no command name or short description contains the
449 keyword:</para>
450
451 <programlisting>
452 % <emphasis role="bold">fs apropos "list quota"</emphasis>
453 Sorry, no commands found
454</programlisting>
455 </sect2>
456 </sect1>
457</appendix>