ch01_04.htm:For example, if you are calling <b class="emphasis-bold">grep</b><a name="IXT-1-1152" /><a name="IXT-1-1153" /> (<a href="ch13_01.htm#upt3-CHP-13-SECT-1">Section 13.1</a>), a program for searching through files for a
ch01_05.htm:are even exceptions to this exception. A program like <b class="emphasis-bold">less</b><a name="IXT-1-1172" /> (<a href="ch12_03.htm#upt3-CHP-12-SECT-3">Section 12.3</a>) can read
ch01_09.htm:(<a name="IXT-1-1252" /><a name="IXT-1-1253" /><a href="ch01_16.htm#upt3-CHP-1-SECT-16">Section 1.16</a>) beginning with<a name="IXT-1-1254" /> <em class="emphasis">/</em>, like
ch01_10.htm:the <b class="emphasis-bold">ps x</b><a name="IXT-1-1264" /><a name="IXT-1-1265" /> (<a href="ch24_05.htm#upt3-CHP-24-SECT-5">Section 24.5</a>)
ch02_01.htm:<i class="command">man</i> command may understand the <b class="emphasis-bold">MANPATH</b><a name="IXT-2-7210" /> <a name="IXT-2-7211" /> (<a href="ch03_21.htm#upt3-CHP-3-SECT-21">Section 3.21</a>) environment variable, a list of where
ch02_04.htm:<p><a name="IXT-2-7235" /> <a name="IXT-2-7236" />Your manpage files may be <b class="emphasis-bold">compressed</b> (<a href="ch15_06.htm#upt3-CHP-15-SECT-6">Section 15.6</a>). In
ch02_06.htm:Which command you'll get depends on your <b class="emphasis-bold">PATH</b><a name="IXT-2-7254" /> (<a href="ch35_06.htm#upt3-CHP-35-SECT-6">Section 35.6</a>)
ch02_07.htm:<a name="IXT-2-7259" />login session has its own <b class="emphasis-bold">tty</b> (<a href="ch24_06.htm#upt3-CHP-24-SECT-6">Section 24.6</a>) -- a
ch02_07.htm:to <b class="emphasis-bold">write</b><a name="IXT-2-7260" /> <a name="IXT-2-7261" /> or <b class="emphasis-bold">talk</b> (<a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>) to you,
ch03_03.htm:(<a name="IXT-3-6985" /><a name="IXT-3-6986" /> <a name="IXT-3-6987" /><a href="ch35_03.htm#upt3-CHP-35-SECT-3">Section 35.3</a>) like HOME, PATH, SHELL, TERM, MAIL, and
ch03_03.htm:(<a name="IXT-3-7000" /><a href="ch29_02.htm#upt3-CHP-29-SECT-2">Section 29.2</a>) should,
ch03_03.htm:<em class="filename">/etc/csh.cshrc</em></tt><a name="IXT-3-7004" />,<a href="#FOOTNOTE-5">[5]</a> and for
ch03_03.htm:present. The <em class="filename">.profile</em> can set the <b class="emphasis-bold">ENV</b><a name="IXT-3-7014" /> (<a href="ch35_05.htm#upt3-CHP-35-SECT-5">Section 35.5</a>)
ch03_04.htm:script</b> (<a name="IXT-3-7062" /><a href="ch35_02.htm#upt3-CHP-35-SECT-2">Section 35.2</a>). In this case, the shell
ch03_05.htm:<p><a name="IXT-3-7069" />Setup files for <b class="emphasis-bold">login shells</b> (<a name="IXT-3-7070" /> <a name="IXT-3-7071" /><a href="ch03_04.htm#upt3-CHP-3-SECT-4">Section 3.4</a>) -- such as
ch03_05.htm:(<a name="IXT-3-7072" /><a href="ch27_06.htm#upt3-CHP-27-SECT-6">Section 27.6</a>) if the system default path
ch03_05.htm:(<a name="IXT-3-7073" /><a href="ch05_03.htm#upt3-CHP-5-SECT-3">Section 5.3</a>) and <b class="emphasis-bold">make various
ch03_05.htm:(<a name="IXT-3-7074" /><a href="ch35_03.htm#upt3-CHP-35-SECT-3">Section 35.3</a>) that might
ch03_09.htm:(<a name="IXT-3-7117" /><a href="ch24_04.htm#upt3-CHP-24-SECT-4">Section 24.4</a>) (like the one that <i class="command">which</i>
ch03_10.htm:<a name="IXT-3-7124" /> <a name="IXT-3-7125" />Bourne-type shells use <b class="emphasis-bold">case</b> (<a href="ch35_10.htm#upt3-CHP-35-SECT-10">Section 35.10</a>) and
ch03_10.htm:<em class="emphasis">TERM</em><a name="IXT-3-7126" /> <a name="IXT-3-7127" /> <b class="emphasis-bold">environment variable</b> (<a href="ch03_11.htm#upt3-CHP-3-SECT-11">Section 3.11</a>). <b class="emphasis-bold">Testing other
ch03_10.htm:<p>In the <a name="IXT-3-7128" />X Window System, you can <b class="emphasis-bold">test the window size</b> (<a href="ch03_16.htm#upt3-CHP-3-SECT-16">Section 3.16</a>) and make various settings based on that.
ch03_10.htm:obscure <b class="emphasis-bold">tset</b><a name="IXT-3-7129" /> (<a href="ch05_03.htm#upt3-CHP-5-SECT-3">Section 5.3</a>) program
ch03_10.htm:that sets the terminal type is <b class="emphasis-bold">qterm</b><a name="IXT-3-7130" /> (<a href="ch05_04.htm#upt3-CHP-5-SECT-4">Section 5.4</a>).
ch03_13.htm:<b class="emphasis-bold">and</b> <b class="emphasis-bold">ssh</b><a name="IXT-3-7144" /> (<a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>),
ch03_18.htm:<a name="IXT-3-7183" /><a name="IXT-3-7184" /><dt><i>Other <b class="emphasis-bold">shell variables</b> (<a href="ch35_09.htm#upt3-CHP-35-SECT-9">Section 35.9</a>) and <b class="emphasis-bold">environment variables</b> (<a href="ch35_03.htm#upt3-CHP-35-SECT-3">Section 35.3</a>)</i></dt>
ch04_02.htm:<p><a name="IXT-4-6706" /><a name="IXT-4-6707" />As <a href="ch04_01.htm#upt3-CHP-4-SECT-1">Section 4.1</a> explains, the simplest
ch04_02.htm:<p><a name="IXT-4-6709" />Notice the <b class="emphasis-bold">single quotes</b> (<a href="ch11_03.htm#upt3-CHP-11-SECT-3">Section 11.3</a>)
ch04_06.htm:<p><a name="IXT-4-6746" /><a name="IXT-4-6747" /><a href="ch04_03.htm#upt3-CHP-4-SECT-3">Section 4.3</a> has examples of some shells'
ch04_06.htm:(<a name="IXT-4-6750" /><a name="IXT-4-6751" /><a href="ch28_05.htm#upt3-CHP-28-SECT-5">Section 28.5</a>) like <tt class="literal">:t</tt>; the Korn Shell,
ch04_06.htm:is a <b class="emphasis-bold">case</b><a name="IXT-4-6755" /> <b class="emphasis-bold">statement</b> (<a href="ch35_11.htm#upt3-CHP-35-SECT-11">Section 35.11</a>) that
ch04_06.htm:<a name="IXT-4-6756" />prompt string is inside <b class="emphasis-bold">double quotes</b> (<a href="ch27_12.htm#upt3-CHP-27-SECT-12">Section 27.12</a>)
ch04_08.htm:(<a name="IXT-4-6789" /><a name="IXT-4-6790" /><a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>),
ch04_10.htm:later. (The <a name="IXT-4-6802" /> <a name="IXT-4-6803" />GNU <b class="emphasis-bold">dircolors</b> (<a href="ch08_06.htm#upt3-CHP-8-SECT-6">Section 8.6</a>)
ch04_14.htm:<em class="filename">.tcshrc</em><a name="IXT-4-6851" /> to make a <b class="emphasis-bold">multiline prompt</b> (<a href="ch04_07.htm#upt3-CHP-4-SECT-7">Section 4.7</a>) that shows the directory stack:
ch04_15.htm:(<a name="IXT-4-6870" /><a href="ch24_03.htm#upt3-CHP-24-SECT-3">Section 24.3</a>) of the background shell. Before you log out,
ch04_16.htm:<b class="emphasis-bold">uptime</b><a name="IXT-4-6882" /> (<a href="ch26_04.htm#upt3-CHP-26-SECT-4">Section 26.4</a>) every
ch04_18.htm:<p><a name="IXT-4-6900" /> <a name="IXT-4-6901" /><a name="IXT-4-6902" /><a name="IXT-4-6903" /><a href="ch04_17.htm#upt3-CHP-4-SECT-17">Section 4.17</a>
ch05_03.htm:the value determined for the terminal type to <b class="emphasis-bold">standard output</b> (<a name="IXT-5-7298" /><a href="ch43_01.htm#upt3-CHP-43-SECT-1">Section 43.1</a>).
ch05_03.htm:(<a name="IXT-5-7300" /><a name="IXT-5-7301" /><a href="ch28_14.htm#upt3-CHP-28-SECT-14">Section 28.14</a>) surrounding
ch05_03.htm:also allow you to <b class="emphasis-bold">set the</b> <b class="emphasis-bold">TERMCAP</b><a name="IXT-5-7304" /> <b class="emphasis-bold">variable</b> (<a href="ch35_05.htm#upt3-CHP-35-SECT-5">Section 35.5</a>). (You
ch05_06.htm:(<a name="IXT-5-7340" /><a name="IXT-5-7341" /><a href="ch27_15.htm#upt3-CHP-27-SECT-15">Section 27.15</a>) on the stuck account's setup
ch05_06.htm:You might use <a name="IXT-5-7348" /><b class="emphasis-bold">ls -l</b> (<a href="ch50_02.htm#upt3-CHP-50-SECT-2">Section 50.2</a>) to check.
ch05_06.htm:(by NFS)</b> (<a name="IXT-5-7353" /><a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>)?
ch05_06.htm:<p><a name="IXT-5-7386" />Enter the command <b class="emphasis-bold">kill PID</b> (<a href="ch24_12.htm#upt3-CHP-24-SECT-12">Section 24.12</a>), where
ch05_08.htm:<b class="emphasis-bold">stty</b><a name="IXT-5-7399" /> (<a href="ch05_07.htm#upt3-CHP-5-SECT-7">Section 5.7</a>)
ch05_11.htm:Options</b><a name="IXT-5-7431" /> <b class="emphasis-bold">menu</b> (<a href="ch05_17.htm#upt3-CHP-5-SECT-17">Section 5.17</a>) by holding
ch05_14.htm:<a name="IXT-5-7454" /><tt class="literal">charClass</tt> <b class="emphasis-bold">resource variable</b> (<a href="ch06_03.htm#upt3-CHP-6-SECT-3">Section 6.3</a>). The value this resource accepts is a
ch05_17.htm:<p><a name="IXT-5-7479" />Note that a Release 5 <b class="emphasis-bold">patch</b> (<a href="ch20_09.htm#upt3-CHP-20-SECT-9">Section 20.9</a>) has
ch05_18.htm:<p><a name="IXT-5-7481" /><a name="IXT-5-7482" />The <i class="command">xterm</i> <b class="emphasis-bold">VT Fonts menu</b> (<a href="ch05_17.htm#upt3-CHP-5-SECT-17">Section 5.17</a>)
ch05_18.htm:<a name="IXT-5-7483" /><a name="IXT-5-7484" /><a name="IXT-5-7485" />constant-width fonts shown in <a href="ch05_18.htm#upt3-CHP-5-TABLE-4">Table 5-4</a>. 
ch05_21.htm:<i class="command">vi</i><a name="IXT-5-7505" /> <b class="emphasis-bold">filter-through</b> (<a href="ch17_18.htm#upt3-CHP-17-SECT-18">Section 17.18</a>):
ch06_10.htm:(<a name="IXT-6-927" /><a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>), its X
ch06_10.htm:are using the wrong <i class="command">rsh</i> command. Use the <b class="emphasis-bold">which</b> (<a name="IXT-6-941" /> <a name="IXT-6-942" /><a href="ch01_06.htm#upt3-CHP-1-SECT-6">Section 1.6</a>) or <b class="emphasis-bold">whereis</b> (<a href="ch01_03.htm#upt3-CHP-1-SECT-3">Section 1.3</a>) command
ch07_03.htm:(<a name="IXT-7-6920" /><a href="ch50_02.htm#upt3-CHP-50-SECT-2">Section 50.2</a>) for
ch07_05.htm:created a private directory, you should set its <b class="emphasis-bold">file access mode</b> (<a name="IXT-7-6945" /> <a name="IXT-7-6946" /><a href="ch50_02.htm#upt3-CHP-50-SECT-2">Section 50.2</a>) to <tt class="literal">700</tt>; this means that
ch07_05.htm:(<a name="IXT-7-6947" /><a href="ch49_09.htm#upt3-CHP-49-SECT-9">Section 49.9</a>) and read any files he wants. So a private
ch08_03.htm:<a name="IXT-8-6546" />file-time comparisons <b class="emphasis-bold">in a script</b> (<a href="ch08_15.htm#upt3-CHP-8-SECT-15">Section 8.15</a>).
ch08_04.htm:might want to pipe the output to a pager program such as <b class="emphasis-bold">less</b> (<a name="IXT-8-6562" /><a href="ch12_03.htm#upt3-CHP-12-SECT-3">Section 12.3</a>). The
ch08_06.htm:(<a name="IXT-8-6573" /><a href="ch21_04.htm#upt3-CHP-21-SECT-4">Section 12.4</a>) command
ch08_10.htm:or -A option</b> (<a name="IXT-8-6624" /><a href="ch08_09.htm#upt3-CHP-8-SECT-9">Section 8.9</a>)
ch08_12.htm:<span class="option">-b</span><a name="IXT-8-6664" /><a name="IXT-8-6665" /> option.<a href="#FOOTNOTE-37">[37]</a> This
ch08_13.htm:<p><a name="IXT-8-6666" /><a name="IXT-8-6667" /> <a name="IXT-8-6668" /><a name="IXT-8-6669" />I use <b class="emphasis-bold">awk</b> (<a href="ch20_10.htm#upt3-CHP-20-SECT-10">Section 20.10</a>) a lot. One
ch08_15.htm:<p>If your system doesn't have a <b class="emphasis-bold">head</b> (<a name="IXT-8-6682" /> <a name="IXT-8-6683" /><a href="ch12_12.htm#upt3-CHP-12-SECT-12">Section 12.12</a>) command, use <em class="emphasis">sed 1q</em>
ch08_17.htm:<p>Use a <tt class="literal">+</tt> parameter and <b class="emphasis-bold">backquotes</b> (<a name="IXT-8-6698" /><tt class="literal">``</tt>) (<a href="ch28_14.htm#upt3-CHP-28-SECT-14">Section 28.14</a>) to get a temp file named for the current date
ch09_09.htm:<p>The <b class="emphasis-bold">C shell</b> (<a name="IXT-9-52" /><a href="ch29_01.htm#upt3-CHP-29-SECT-1">Section 29.1</a>) uses
ch09_19.htm:(<a name="IXT-9-126" /><a href="ch01_13.htm#upt3-CHP-1-SECT-13">Section 1.13</a>) (<tt class="literal">*</tt><a name="IXT-9-127" /> <a name="IXT-9-128" /> <a name="IXT-9-129" />,
ch10_05.htm:<em class="filename">ln</em><a name="IXT-10-6369" /> command creates both <b class="emphasis-bold">hard and soft (symbolic) links</b> (<a href="ch10_04.htm#upt3-CHP-10-SECT-4">Section 10.4</a>). If by some strange chance
ch10_05.htm:<p>Note that <a name="IXT-10-6372" /><a name="IXT-10-6373" /><a name="IXT-10-6374" /><a name="IXT-10-6375" />symbolic links can get <b class="emphasis-bold">out-of-date</b> (<a href="ch09_06.htm#upt3-CHP-9-SECT-6">Section 10.6</a>).
ch10_06.htm:(<a name="IXT-10-6377" /><a name="IXT-10-6378" /> <a name="IXT-10-6379" /><a name="IXT-10-6380" /><a href="ch10_05.htm#upt3-CHP-10-SECT-5">Section 10.5</a>) have one problem. Like good bread, they
ch10_06.htm:<a name="IXT-10-6382" /><b class="emphasis-bold">relative pathnames</b> (<a href="ch01_16.htm#upt3-CHP-1-SECT-16">Section 1.16</a>) when appropriate. For instance, using
ch10_07.htm:(<a name="IXT-10-6386" /><a name="IXT-10-6387" /><a name="IXT-10-6388" /><a name="IXT-10-6389" /><a href="ch10_05.htm#upt3-CHP-10-SECT-5">Section 10.5</a>) (a.k.a.
ch10_07.htm:<p>But when I do <a name="IXT-10-6393" />a <em class="filename">pwd</em>,<a href="#FOOTNOTE-42">[42]</a> I see that
ch10_10.htm:<p><a name="IXT-10-6420" /><a name="IXT-10-6421" /><a name="IXT-10-6422" /><a href="ch10_09.htm#upt3-CHP-10-SECT-9">Section 10.9</a> shows how to rename a set of files, e.g.,
ch10_12.htm:<span class="option">-r</span> option. But it also has an <b class="emphasis-bold">rcp</b> (<a name="IXT-10-6423" /><a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>) command that <em class="emphasis">does</em> have
ch10_13.htm:<tt><b></b></tt><a name="IXT-10-6436" /><a name="IXT-10-6437" /><b class="emphasis-bold">&amp;&amp; operator</b> (<a href="ch35_14.htm#upt3-CHP-35-SECT-14">Section 35.14</a>) tells the shell to start <tt class="literal">tar xvf
ch10_13.htm:(<a name="IXT-10-6439" /><a name="IXT-10-6440" /><a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>) or <i class="command">ssh</i>, you can run either
ch11_03.htm:Incidentally, these examples would also work with <b class="emphasis-bold">cvs diff</b> (<a name="IXT-11-6064" /><a href="ch39_07.htm#upt3-CHP-39-SECT-7">Section 39.7</a>), if you
ch11_07.htm:(<a name="IXT-11-6087" /><a href="ch11_01.htm#upt3-CHP-11-SECT-1">Section 11.1</a>); it tells
ch11_07.htm:(<a name="IXT-11-6088" /><a href="ch35_12.htm#upt3-CHP-35-SECT-12">Section 35.12</a>) that
ch11_11.htm:NIS</b> (<a name="IXT-11-6090" /><a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>) (formerly called <span class="acronym">YP</span>, or
ch12_04.htm:(<a name="IXT-12-6468" /><a href="ch13_15.htm#upt3-CHP-13-SECT-15">Section 13.15</a>) program finds printable strings of characters
ch12_07.htm:(<a name="IXT-12-6478" /> <a name="IXT-12-6479" /> <a name="IXT-12-6480" />Many versions of <b class="emphasis-bold">less</b> (<a href="ch12_03.htm#upt3-CHP-12-SECT-3">Section 12.3</a>) and
ch12_11.htm:(<a name="IXT-12-6496" /><a href="ch25_02.htm#upt3-CHP-25-SECT-2">Section 25.2</a>) job to rotate log files (rename the files,
ch13_02.htm:<p><i class="command">grep</i><a name="IXT-13-5838" /> is also often used as a <b class="emphasis-bold">filter</b> (<a href="ch01_05.htm#upt3-CHP-1-SECT-5">Section 1.5</a>), to
ch13_02.htm:(<a name="IXT-13-5839" /> <a name="IXT-13-5840" /><a href="ch24_05.htm#upt3-CHP-24-SECT-5">Section 24.5</a>) and
ch13_05.htm:<p><b class="emphasis-bold">egrep</b> (<a name="IXT-13-5865" /><a href="ch13_04.htm#upt3-CHP-13-SECT-4">Section 13.4</a>) lets you look
ch13_10.htm:(<a name="IXT-13-5905" /><a href="ch27_17.htm#upt3-CHP-27-SECT-17">Section 27.17</a>) to
ch13_11.htm:mechanism</b> (<a name="IXT-13-5908" /><a href="ch30_02.htm#upt3-CHP-30-SECT-2">Section 30.2</a>) and
ch13_11.htm:<p>[Yes, you can do the exact same thing with multiple <b class="emphasis-bold"> grep -v</b> (<a name="IXT-13-5910" /><a href="ch13_03.htm#upt3-CHP-13-SECT-3">Section 13.3</a>) commands,
ch13_16.htm:<p>The <b class="emphasis-bold">less</b> (<a name="IXT-13-5931" /><a href="ch12_03.htm#upt3-CHP-12-SECT-3">Section 12.3</a>) pager
ch14_02.htm:(<a name="IXT-14-6211" /><a href="ch09_24.htm#upt3-CHP-9-SECT-24">Section 9.24</a>, <a href="ch10_03.htm#upt3-CHP-10-SECT-3">Section 10.3</a>) to a file. But you do care about the
ch14_02.htm:<a name="IXT-14-6214" /><dt><i>The file's <b class="emphasis-bold">access mode</b> (<a href="ch01_17.htm#upt3-CHP-1-SECT-17">Section 1.17</a>, <a href="ch50_02.htm#upt3-CHP-50-SECT-2">Section 50.2</a>)</i></dt>
ch14_02.htm:<a name="IXT-14-6215" /><dt><i>The file's <b class="emphasis-bold">timestamps</b> (<a href="ch08_02.htm#upt3-CHP-8-SECT-2">Section 8.2</a>)</i></dt>
ch14_04.htm:<p>Use <a name="IXT-14-6228" />revision control (<a href="ch39_04.htm#upt3-CHP-39-SECT-4">Section 39.4</a>). 
ch14_08.htm:<p><a name="IXT-14-6243" /><a name="IXT-14-6244" /> <a name="IXT-14-6245" />Using <b class="emphasis-bold">noclobber</b> (<a href="ch43_06.htm#upt3-CHP-43-SECT-6">Section 43.6</a>) and
ch14_08.htm:<em class="emphasis">-i</em> file in your home directory and <b class="emphasis-bold">hard link</b> (<a name="IXT-14-6248" /><a href="ch15_04.htm#upt3-CHP-15-SECT-4">Section 15.4</a>)
ch14_09.htm:via a <b class="emphasis-bold">cron</b> (<a name="IXT-14-6253" /><a href="ch25_02.htm#upt3-CHP-25-SECT-2">Section 25.2</a>) entry like
ch14_10.htm:<p>Normally, <i class="command">rm</i>'s <b class="emphasis-bold">exit status</b> (<a name="IXT-14-6256" /><a href="ch35_12.htm#upt3-CHP-35-SECT-12">Section 35.12</a>) is 0 if
ch14_14.htm:The <b class="emphasis-bold">ls -q</b> (<a name="IXT-14-6265" /><a href="ch08_12.htm#upt3-CHP-8-SECT-12">Section 8.12</a>)
ch14_14.htm:You can see exactly what the filename is by using <b class="emphasis-bold">ls -b</b> (<a name="IXT-14-6267" /><a href="ch08_12.htm#upt3-CHP-8-SECT-12">Section 8.12</a>): 
ch14_15.htm:(<a name="IXT-14-6279" /> <a name="IXT-14-6280" /><a href="ch09_25.htm#upt3-CHP-9-SECT-25">Section 9.25</a>) for
ch14_17.htm:<i class="command">find</i> commands to your <b class="emphasis-bold">crontab file</b> (<a name="IXT-14-6297" /><a href="ch25_02.htm#upt3-CHP-25-SECT-2">Section 25.2</a>).
ch14_18.htm:(<a name="IXT-14-6315" /> <a name="IXT-14-6316" /><a href="ch28_14.htm#upt3-CHP-28-SECT-14">Section 28.14</a>)
ch14_18.htm:(<a name="IXT-14-6317" /><a name="IXT-14-6318" /><a href="ch13_03.htm#upt3-CHP-13-SECT-3">Section 13.3</a>) command, and then use backquotes to give the
ch15_09.htm:in the current directory and below. It uses <b class="emphasis-bold">find</b> (<a name="IXT-15-6186" /><a href="ch09_02.htm#upt3-CHP-9-SECT-2">Section 9.2</a>) to
ch16_02.htm:<p>The original Unix spell-checking program, <b class="emphasis-bold">spell</b> (<a name="IXT-16-1587" /><a name="IXT-16-1588" /><a name="IXT-16-1589" /><a href="ch15_01.htm#upt3-CHP-15-SECT-1">Section 15.1</a>), is fine
ch16_03.htm:<p>If you're using <b class="emphasis-bold">ispell</b> (<a name="IXT-16-1598" /> <a name="IXT-16-1599" /><a href="ch16_02.htm#upt3-CHP-16-SECT-2">Section 16.2</a>) or the newer <i class="command">aspell</i>, you
ch16_04.htm:and sort -u</b> (<a name="IXT-16-1607" /> <a name="IXT-16-1608" /><a href="ch22_06.htm#upt3-CHP-22-SECT-6">Section 22.6</a>) to remove
ch16_05.htm:<p><b class="emphasis-bold">ispell</b> (<a name="IXT-16-1620" /><a name="IXT-16-1621" /><a href="ch16_02.htm#upt3-CHP-16-SECT-2">Section 16.2</a>)
ch16_05.htm:<b class="emphasis-bold">ispell -a</b> (<a name="IXT-16-1627" /><a href="ch16_03.htm#upt3-CHP-16-SECT-3">Section 16.3</a>) option.
ch16_06.htm:<i class="command">ls</i><a name="IXT-16-1642" /> command is <b class="emphasis-bold">aliased</b> (<a href="ch29_02.htm#upt3-CHP-29-SECT-2">Section 29.2</a>) to
ch16_06.htm:(<a name="IXT-16-1651" /><a href="ch15_08.htm#upt3-CHP-15-SECT-8">Section 15.8</a>) command gives accurate disk usage.
ch16_07.htm:tr</b> (<a name="IXT-16-1656" /><a href="ch21_11.htm#upt3-CHP-21-SECT-11">Section 21.11</a>):
ch16_09.htm:(<a name="IXT-16-1677" /><a href="ch21_11.htm#upt3-CHP-21-SECT-11">Section 21.11</a>) has slightly different syntax.
ch17_01.htm:(<a name="IXT-17-1380" /><a name="IXT-17-1381" /><a name="IXT-17-1382" /><a href="ch19_01.htm#upt3-CHP-19-SECT-1">Section 19.1</a>)? That's because
ch17_05.htm:(<a name="IXT-17-1399" /> <a name="IXT-17-1400" /><a href="ch17_23.htm#upt3-CHP-17-SECT-23">Section 17.23</a>) and <b class="emphasis-bold">key mappings</b> (<a href="ch18_02.htm#upt3-CHP-18-SECT-2">Section 18.2</a>).
ch17_05.htm:<i class="command">ex</i> in an <a name="IXT-17-1403" /><a name="IXT-17-1404" />environment variable called <b class="emphasis-bold">EXINIT</b> (<a href="ch17_27.htm#upt3-CHP-17-SECT-27">Section 17.27</a>). If
ch17_05.htm:(<a name="IXT-17-1405" /><a href="ch10_05.htm#upt3-CHP-10-SECT-5">Section 10.5</a>) to them
ch17_08.htm:patterns</b> (<a name="IXT-17-1424" /><a href="ch32_01.htm#upt3-CHP-32-SECT-1">Section 32.1</a>). For example:
ch17_13.htm:<a name="IXT-17-1456" />blocks of text delimited by <b class="emphasis-bold">patterns</b> (<a href="ch17_08.htm#upt3-CHP-17-SECT-8">Section 17.8</a>). For
ch17_18.htm:(<a name="IXT-17-1474" /><a name="IXT-17-1475" /><a href="ch21_11.htm#upt3-CHP-21-SECT-11">Section 21.11</a>)
ch17_21.htm:(<a name="IXT-17-1488" /><a href="ch23_03.htm#upt3-CHP-23-SECT-3">Section 23.3</a>), that works on most Unix systems. Job control
ch17_25.htm:<p><a name="IXT-17-1497" /> <a name="IXT-17-1498" /><a name="IXT-17-1499" /><a name="IXT-17-1500" /><b class="emphasis-bold">Abbreviations</b> (<a href="ch17_23.htm#upt3-CHP-17-SECT-23">Section 17.23</a>)
ch17_28.htm:of your lines too short or long? The <b class="emphasis-bold">fmt</b> (<a name="IXT-17-1514" /><a href="ch21_02.htm#upt3-CHP-21-SECT-2">Section 21.2</a>) utility
ch17_30.htm:are <a name="IXT-17-1524" />RETURNs. Make them by pressing <b class="emphasis-bold">CTRL-v, then RETURN</b> (<a href="ch18_06.htm#upt3-CHP-18-SECT-6">Section 18.6</a>). Lines that start with a double quote
ch18_02.htm:(<a name="IXT-18-1684" /><a name="IXT-18-1685" /><a href="ch05_02.htm#upt3-CHP-5-SECT-2">Section 5.2</a>) defines those keys. For example, to make
ch18_07.htm:<p><a name="IXT-18-1714" /><a name="IXT-18-1715" />Another way to do this is with<b class="emphasis-bold"> @-functions</b> (<a href="ch18_04.htm#upt3-CHP-18-SECT-4">Section 18.4</a>).
ch19_02.htm:completions</b> (<a name="IXT-19-5966" /><a href="ch19_06.htm#upt3-CHP-19-SECT-6">Section 19.6</a>). So if you're creating a
ch19_02.htm:has very good integration with <a name="IXT-19-6005" />XEmacs (ne&#232; Lucent Emacs) and
ch19_09.htm:(<a name="IXT-19-6042" /> <a name="IXT-19-6043" /><a name="IXT-19-6044" /><a href="ch01_16.htm#upt3-CHP-1-SECT-16">Section 1.16</a>), starting
ch20_01.htm:<p><b class="emphasis-bold">sed</b> (<a name="IXT-20-208" /><a name="IXT-20-209" /><a href="ch34_01.htm#upt3-CHP-34-SECT-1">Section 34.1</a>) is an editor that can
ch20_01.htm:<p><b class="emphasis-bold">awk</b> (<a name="IXT-20-210" /><a name="IXT-20-211" /><a href="ch20_10.htm#upt3-CHP-20-SECT-10">Section 20.10</a>) is a great way to pull apart a line of text
ch20_01.htm:<p><b class="emphasis-bold">patch</b> (<a name="IXT-20-212" /><a name="IXT-20-213" /><a href="ch20_09.htm#upt3-CHP-20-SECT-9">Section 20.9</a>) is a specialized editor designed to apply
ch20_05.htm:(<a name="IXT-20-244" /><a href="ch34_01.htm#upt3-CHP-34-SECT-1">Section 34.1</a>) is
ch20_09.htm:(<a name="IXT-20-262" /><a href="ch11_01.htm#upt3-CHP-11-SECT-1">Section 11.1</a>)
ch21_03.htm:<p><b class="emphasis-bold">fmt</b><a name="IXT-21-5653" /><a name="IXT-21-5654" /><a name="IXT-21-5655" /> (<a href="ch21_02.htm#upt3-CHP-21-SECT-2">Section 21.2</a>) is hard to do without once
ch21_08.htm:<p>In <i class="command">vi</i><a name="IXT-21-5692" />, you can use a <b class="emphasis-bold">filter-through</b> (<a href="ch17_18.htm#upt3-CHP-17-SECT-18">Section 17.18</a>)
ch21_10.htm:<a name="upt3-IDXTERM-3013" /> <a name="upt3-IDXTERM-3014" /> <a name="upt3-IDXTERM-3015" />Like <b class="emphasis-bold">split</b> (<a href="ch21_09.htm#upt3-CHP-21-SECT-9">Section 21.9</a>),
ch21_10.htm:<a name="IXT-21-5699" />period is a <b class="emphasis-bold">metacharacter</b> (<a href="ch32_21.htm#upt3-CHP-32-SECT-21">Section 32.21</a>)
ch21_10.htm:<p>breaks the list into 19 segments of 10 <a name="IXTR3-5794" /> <a name="IXTR3-5795" />lines <a name="IXTR3-5796" /> <a name="IXTR3-5797" /> <a name="IXTR3-5798" /> <a name="IXTR3-5799" />each.<a href="#FOOTNOTE-63">[63]</a> <a name="IXTR3-5800" />
ch21_11.htm:<p><a name="IXT-21-5708" /> <a name="IXT-21-5709" />As described in <a href="ch17_18.htm#upt3-CHP-17-SECT-18">Section 17.18</a>, this translation (and the reverse) can be
ch21_12.htm:<a name="IXT-21-5721" />a <b class="emphasis-bold">compressed file</b> (<a href="ch15_06.htm#upt3-CHP-15-SECT-6">Section 15.6</a>)
ch21_12.htm:headers, so you should strip off the header first. The <b class="emphasis-bold">behead</b><a name="IXT-21-5735" /> (<a href="ch21_05.htm#upt3-CHP-21-SECT-5">Section 21.5</a>) script
ch21_15.htm:compare a <a name="IXT-21-5760" />directory with its <b class="emphasis-bold">RCS</b> (<a href="ch39_05.htm#upt3-CHP-39-SECT-5">Section 39.5</a>)
ch22_03.htm:<p><a name="IXT-22-1538" /><a name="IXT-22-1539" /><a href="ch22_02.htm#upt3-CHP-22-SECT-2">Section 22.2</a>
ch22_07.htm:(<a name="IXT-22-1567" /><a href="ch20_10.htm#upt3-CHP-20-SECT-10">Section 20.10</a>) to print
ch23_01.htm:<a name="IXT-23-5493" /><dt><i><b class="emphasis-bold">command &amp;</b> (<a href="ch23_03.htm#upt3-CHP-23-SECT-3">Section 23.3</a>)</i></dt>
ch23_01.htm:<a name="IXT-23-5494" /><dt><i><b class="emphasis-bold">CTRL-c</b> (<a href="ch24_11.htm#upt3-CHP-24-SECT-11">Section 24.11</a>)</i></dt>
ch23_01.htm:<a name="IXT-23-5495" /><a name="IXT-23-5496" /><dt><i><b class="emphasis-bold">CTRL-z</b> (<a href="ch23_03.htm#upt3-CHP-23-SECT-3">Section 23.3</a>, <a href="ch23_06.htm#upt3-CHP-23-SECT-6">Section 23.6</a>)</i></dt>
ch23_01.htm:<a name="IXT-23-5502" /><a name="IXT-23-5503" /><dt><i><b class="emphasis-bold">bg %num</b> (<a href="ch23_03.htm#upt3-CHP-23-SECT-3">Section 23.3</a>)</i></dt>
ch23_01.htm:<a name="IXT-23-5504" /><a name="IXT-23-5505" /><a name="IXT-23-5506" /><dt><i><b class="emphasis-bold">fg %num</b> (<a href="ch23_03.htm#upt3-CHP-23-SECT-3">Section 23.3</a>)</i></dt>
ch23_01.htm:<a name="IXT-23-5507" /><a name="IXT-23-5508" /><dt><i><b class="emphasis-bold">kill %num</b> (<a href="ch23_03.htm#upt3-CHP-23-SECT-3">Section 23.3</a>)</i></dt>
ch23_01.htm:<a name="IXT-23-5509" /><a name="IXT-23-5510" /><a name="IXT-23-5511" /><dt><i><b class="emphasis-bold">kill pid</b> (<a href="ch24_12.htm#upt3-CHP-24-SECT-12">Section 24.12</a>)</i></dt>
ch23_01.htm:<a name="IXT-23-5512" /><a name="IXT-23-5513" /><a name="IXT-23-5514" /><dt><i><b class="emphasis-bold">jobs</b> (<a href="ch23_03.htm#upt3-CHP-23-SECT-3">Section 23.3</a>)</i></dt>
ch23_01.htm:<a name="IXT-23-5515" /><a name="IXT-23-5516" /><dt><i><b class="emphasis-bold">set notify</b> (<a href="ch23_08.htm#upt3-CHP-23-SECT-8">Section 23.8</a>)</i></dt>
ch23_01.htm:<a name="IXT-23-5517" /><a name="IXT-23-5518" /><dt><i><b class="emphasis-bold">stty tostop</b> (<a href="ch23_09.htm#upt3-CHP-23-SECT-9">Section 23.9</a>)</i></dt>
ch23_02.htm:job</b> (<a name="IXT-23-5534" /> <a name="IXT-23-5535" /><a href="ch23_05.htm#upt3-CHP-23-SECT-5">Section 23.5</a>) into the
ch23_04.htm:(<a name="IXT-23-5566" /> <a name="IXT-23-5567" /><a href="ch26_05.htm#upt3-CHP-26-SECT-5">Section 26.5</a>). This is
ch23_07.htm:(<a name="IXT-23-5577" /><a href="ch24_12.htm#upt3-CHP-24-SECT-12">Section 24.12</a>) some processes, but you'll
ch23_07.htm:<b class="emphasis-bold">renice</b> (<a name="IXT-23-5578" /> <a name="IXT-23-5579" /><a href="ch26_07.htm#upt3-CHP-26-SECT-7">Section 26.7</a>) the
ch23_10.htm:(<a name="IXT-23-5604" /> <a name="IXT-23-5605" /><a href="ch24_10.htm#upt3-CHP-24-SECT-10">Section 24.10</a>), though
ch23_11.htm:list, but <b class="emphasis-bold">ps</b> (<a name="IXT-23-5610" /><a href="ch24_05.htm#upt3-CHP-24-SECT-5">Section 24.5</a>) should
ch23_12.htm:<em class="emphasis">tty</em>s, with <b class="emphasis-bold">getty</b> (<a name="IXT-23-5624" /><a href="ch24_02.htm#upt3-CHP-24-SECT-2">Section 24.2</a>) processes
ch24_03.htm:<p><a name="IXT-24-5182" /><a name="IXT-24-5183" /> <a name="IXT-24-5184" />Versions of Unix with <b class="emphasis-bold">job control</b> (<a href="ch23_01.htm#upt3-CHP-23-SECT-1">Section 23.1</a>)
ch24_03.htm:(<a name="IXT-24-5185" /><a href="ch24_10.htm#upt3-CHP-24-SECT-10">Section 24.10</a>, <a href="ch24_11.htm#upt3-CHP-24-SECT-11">Section 24.11</a>, <a href="ch24_14.htm#upt3-CHP-24-SECT-14">Section 24.14</a>). It's also used to control
ch24_03.htm:(<a name="IXT-24-5206" /><a name="IXT-24-5207" /><a name="IXT-24-5208" /><a href="ch23_01.htm#upt3-CHP-23-SECT-1">Section 23.1</a>) features (processes that are running in the
ch24_04.htm:<p><a name="IXT-24-5219" /><a name="IXT-24-5220" /><a name="IXT-24-5221" />If your parent shell has <b class="emphasis-bold">job control</b> (<a href="ch23_03.htm#upt3-CHP-23-SECT-3">Section 23.3</a>),
ch24_06.htm:<p><a name="IXT-24-5242" /><a name="IXT-24-5243" />In <a href="ch24_05.htm#upt3-CHP-24-SECT-5">Section 24.5</a>, we pointed out that the <i class="command">ps</i>
ch24_07.htm:orphans</b> (<a name="IXT-24-5258" /><a name="IXT-24-5259" /><a href="ch24_19.htm#upt3-CHP-24-SECT-19">Section 24.19</a>). If you have a serious runaway process
ch24_09.htm:(<a name="IXT-24-5284" /><a href="ch36_15.htm#upt3-CHP-36-SECT-15">Section 36.15</a>) are currently pointing to. This
ch24_09.htm:(<a name="IXT-24-5289" /><a name="IXT-24-5290" /><a name="IXT-24-5291" /><a href="ch35_03.htm#upt3-CHP-35-SECT-3">Section 35.3</a>) to
ch24_10.htm:<p><a name="IXT-24-5324" /><a name="IXT-24-5325" /><a name="IXT-24-5326" />It can <b class="emphasis-bold">trap</b> (<a href="ch35_17.htm#upt3-CHP-35-SECT-17">Section 35.17</a>) the signal
ch24_11.htm:(<a name="IXT-24-5331" /><a href="ch24_10.htm#upt3-CHP-24-SECT-10">Section 24.10</a>) will
ch24_11.htm:Emacs almost always ignore most signals. The <b class="emphasis-bold">trap</b> (<a name="IXT-24-5339" /> <a name="IXT-24-5340" /><a href="ch35_17.htm#upt3-CHP-35-SECT-17">Section 35.17</a>) command handles signals in the Bourne shell.
ch24_11.htm:group</b> (<a name="IXT-24-5341" /><a href="ch24_03.htm#upt3-CHP-24-SECT-3">Section 24.3</a>). This
ch24_12.htm:<p><a name="IXT-24-5351" /><a name="IXT-24-5352" /><a name="IXT-24-5353" />Zombies. A process in the <b class="emphasis-bold">zombie state</b> (<a href="ch24_19.htm#upt3-CHP-24-SECT-19">Section 24.19</a>) is
ch24_12.htm:displayed as <em class="emphasis">Z</em> status in BSD <b class="emphasis-bold">ps</b> (<a name="IXT-24-5354" /><a href="ch24_05.htm#upt3-CHP-24-SECT-5">Section 24.5</a>) displays
ch24_12.htm:(<a name="IXT-24-5362" /><a href="ch01_18.htm#upt3-CHP-1-SECT-18">Section 1.18</a>) to kill someone else's
ch24_13.htm:(<a name="IXT-24-5363" /><a href="ch35_17.htm#upt3-CHP-35-SECT-17">Section 35.17</a>) command to catch several different signals
ch24_13.htm:runs <b class="emphasis-bold">lpq</b> (<a name="IXT-24-5371" /><a href="ch45_02.htm#upt3-CHP-45-SECT-2">Section 45.2</a>) on all
ch24_14.htm:<p><a name="IXT-24-5374" /><a name="IXT-24-5375" /> <a name="IXT-24-5376" /> <a name="IXT-24-5377" /><a name="IXT-24-5378" />On many Unix systems, <b class="emphasis-bold">kill</b> (<a href="ch24_12.htm#upt3-CHP-24-SECT-12">Section 24.12</a>) interprets
ch24_16.htm:(<a name="IXT-24-5404" /><a href="ch13_04.htm#upt3-CHP-13-SECT-4">Section 13.4</a>) to pick the processes to kill;
ch24_16.htm:<a name="IXT-24-5405" />you can type <b class="emphasis-bold">extended expressions</b> (<a href="ch32_15.htm#upt3-CHP-32-SECT-15">Section 32.15</a>) that match more than one process. The
ch24_17.htm:<a name="IXT-24-5411" />processes <b class="emphasis-bold">forking</b> (<a href="ch24_02.htm#upt3-CHP-24-SECT-2">Section 24.2</a>) out of
ch24_17.htm:(<a name="IXT-24-5412" /><a href="ch23_03.htm#upt3-CHP-23-SECT-3">Section 23.3</a>), there's a good answer: use
ch24_19.htm:<a name="IXT-24-5425" />hold on to its name and <b class="emphasis-bold">exit status</b> (<a href="ch35_12.htm#upt3-CHP-35-SECT-12">Section 35.12</a>).
ch24_20.htm:(<a name="IXT-24-5431" /><a href="ch24_12.htm#upt3-CHP-24-SECT-12">Section 24.12</a>) a hung window or a process in a window.
ch25_01.htm:<b class="emphasis-bold"> cron</b> (<a name="IXT-25-5068" /><a href="ch25_02.htm#upt3-CHP-25-SECT-2">Section 25.2</a>) system
ch25_01.htm:<b class="emphasis-bold">at</b> (<a name="IXT-25-5069" /><a name="IXT-25-5070" /><a name="IXT-25-5071" /><a href="ch25_05.htm#upt3-CHP-25-SECT-5">Section 25.5</a>) command is ideally suited.
ch25_02.htm:(<a name="IXT-25-5078" /><a href="ch43_01.htm#upt3-CHP-43-SECT-1">Section 43.1</a>),
ch25_02.htm:(<a name="IXT-25-5084" /> <a name="IXT-25-5085" /><a href="ch01_10.htm#upt3-CHP-1-SECT-10">Section 1.10</a>). What to
ch26_01.htm:(<a name="IXT-26-4988" /><a href="ch26_04.htm#upt3-CHP-26-SECT-4">Section 26.4</a>) to see how many processes were recently
ch26_01.htm:(<a name="IXT-26-4996" /><a href="ch26_02.htm#upt3-CHP-26-SECT-2">Section 26.2</a>) command exists as part of both C and
ch26_05.htm:(<a name="IXT-26-5016" /><a href="ch26_01.htm#upt3-CHP-26-SECT-1">Section 26.1</a>) process that will monopolize the CPU from
ch26_07.htm:(<a name="IXT-26-5050" /><a href="ch24_03.htm#upt3-CHP-24-SECT-3">Section 24.3</a>), as shown by <em class="emphasis">ps -l</em>; this
ch27_03.htm:<p><a name="IXT-27-4801" />As <a href="ch26_06.htm#upt3-CHP-26-SECT-6">Section 26.6</a> explains, if the shell is trying to run a
ch27_06.htm:<a name="upt3-IDXTERM-3971" /> <a name="upt3-IDXTERM-3972" /><a name="IXT-27-4826" />Your <b class="emphasis-bold">search path</b> (<a href="ch35_06.htm#upt3-CHP-35-SECT-6">Section 35.6</a>,
ch27_06.htm:(<a name="IXT-27-4827" /><a name="IXT-27-4828" /><a href="ch03_03.htm#upt3-CHP-3-SECT-3">Section 3.3</a>).
ch27_06.htm:simply to add the new directory's <b class="emphasis-bold">absolute path</b> (<a name="IXT-27-4829" /><a href="ch31_02.htm#upt3-CHP-31-SECT-2">Section 31.2</a>) to the end of the existing
ch27_06.htm:<p><a name="IXT-27-4835" /><a name="IXT-27-4836" />Searching the <b class="emphasis-bold">path</b> (<a href="ch27_06.htm#upt3-CHP-27-SECT-6">Section 27.6</a>) takes
ch27_08.htm:<a name="IXT-27-4851" />you read the <b class="emphasis-bold">previous article</b> (<a href="ch27_07.htm#upt3-CHP-27-SECT-7">Section 27.7</a>), you saw that, most of the time, the shell
ch27_09.htm:command</b> (<a name="IXT-27-4856" /> <a name="IXT-27-4857" /><a href="ch01_09.htm#upt3-CHP-1-SECT-9">Section 1.9</a>), or an
ch27_11.htm:(<a name="IXT-27-4876" /> <a name="IXT-27-4877" /> <a name="IXT-27-4878" /><a href="ch43_01.htm#upt3-CHP-43-SECT-1">Section 43.1</a>) to a file:
ch27_12.htm:substitution</b> (<a name="IXT-27-4884" /><a href="ch28_14.htm#upt3-CHP-28-SECT-14">Section 28.14</a>).
ch27_12.htm:substitution</b> (<a name="IXT-27-4902" /><a href="ch35_09.htm#upt3-CHP-35-SECT-9">Section 35.9</a>, <a href="ch35_03.htm#upt3-CHP-35-SECT-3">Section 35.3</a>) and <b class="emphasis-bold">command
ch27_12.htm:substitution</b> (<a name="IXT-27-4903" /><a href="ch28_14.htm#upt3-CHP-28-SECT-14">Section 28.14</a>) inside
ch27_12.htm:(<a name="IXT-27-4904" /><a href="ch35_09.htm#upt3-CHP-35-SECT-9">Section 35.9</a>) with a multiline message, the kind that might
ch27_12.htm:Bourne shell <a name="IXT-27-4905" /><a name="IXT-27-4906" />prints <b class="emphasis-bold">secondary prompts</b> (<a href="ch28_12.htm#upt3-CHP-28-SECT-12">Section 28.12</a>) (<tt class="literal">&gt;</tt>) until all quotes
ch27_16.htm:<a name="IXT-27-4941" />anonymous <b class="emphasis-bold">ftp</b> (<a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>)<a href="#FOOTNOTE-84">[84]</a> from a shell script:
ch27_17.htm:<p><a name="upt3-IDXTERM-4129" /> <a name="upt3-IDXTERM-4130" /> <a name="upt3-IDXTERM-4131" /><a href="ch27_17.htm#upt3-CHP-27-TABLE-3">Table 27-3</a>
ch28_01.htm:(<a name="IXT-28-4540" /><a href="ch28_06.htm#upt3-CHP-28-SECT-6">Section 28.6</a>, <a href="ch28_07.htm#upt3-CHP-28-SECT-7">Section 28.7</a>), which allows you to type the beginning of a
ch28_01.htm:(<a name="IXT-28-4541" /><a href="ch28_14.htm#upt3-CHP-28-SECT-14">Section 28.14</a>), which lets you use the output from one
ch28_04.htm:<p><a name="IXT-28-4558" />To send a <b class="emphasis-bold">mail</b> (<a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>) message to
ch28_04.htm:your <b class="emphasis-bold">lpr</b> (<a name="IXT-28-4567" /><a href="ch45_02.htm#upt3-CHP-45-SECT-2">Section 45.2</a>) command
ch28_05.htm:<i class="command">zsh</i>, and <i class="command">bash</i> do <b class="emphasis-bold">history substitutions</b> <a name="upt3-IDXTERM-4200" /> <a name="upt3-IDXTERM-4201" /> <a name="upt3-IDXTERM-4202" />(<a href="ch30_08.htm#upt3-CHP-30-SECT-8">Section 30.8</a>) they can also edit the substitution. The C
ch28_05.htm:(<a name="IXT-28-4570" /><a href="ch35_09.htm#upt3-CHP-35-SECT-9">Section 35.9</a>).
ch28_08.htm:loops</b> <a name="IXT-28-4617" /> <a name="IXT-28-4618" />(<a href="ch28_09.htm#upt3-CHP-28-SECT-9">Section 28.9</a>) can vary the commands they run by picking a
ch28_08.htm:<a name="IXT-28-4619" />(<a href="ch28_11.htm#upt3-CHP-28-SECT-11">Section 28.11</a>). 
ch28_09.htm:(<a name="IXT-28-4627" /><a href="ch30_05.htm#upt3-CHP-30-SECT-5">Section 30.5</a>):
ch28_09.htm:operators</b> (<a name="IXT-28-4640" /><a href="ch28_04.htm#upt3-CHP-28-SECT-4">Section 28.4</a>). For
ch28_09.htm:command</b> (<a name="IXT-28-4641" /><a href="ch35_18.htm#upt3-CHP-35-SECT-18">Section 35.18</a>). It reads
ch28_12.htm:programming constructs for non-programmers, the <b class="emphasis-bold">for and foreach loops</b> <a name="IXT-28-4663" /> <a name="IXT-28-4664" />(<a href="ch28_09.htm#upt3-CHP-28-SECT-9">Section 28.9</a>), work. While
ch28_13.htm:(<a name="IXT-28-4669" /><a name="IXT-28-4670" /><a href="ch28_09.htm#upt3-CHP-28-SECT-9">Section 28.9</a>) that prints
ch28_14.htm:(<a name="IXT-28-4679" /><a href="ch02_08.htm#upt3-CHP-2-SECT-8">Section 2.8</a>). The <i class="command">who</i> output also lists
ch28_14.htm:(<a name="IXT-28-4680" /><a href="ch21_14.htm#upt3-CHP-21-SECT-14">Section 21.14</a>):
ch28_14.htm:<a name="IXT-28-4681" /> <a name="IXT-28-4682" />(<a href="ch36_24.htm#upt3-CHP-36-SECT-24">Section 36.24</a>) the backquotes -- this is where the
ch28_15.htm:(<a name="IXT-28-4689" /><a href="ch28_17.htm#upt3-CHP-28-SECT-17">Section 28.17</a>). If your system doesn't have
ch28_16.htm:<p>It's useful with <b class="emphasis-bold">sleep</b> (<a name="IXT-28-4692" /><a href="ch25_09.htm#upt3-CHP-25-SECT-9">Section 25.9</a>) to run a command after a delay. The next
ch28_17.htm:arguments. The shell's <b class="emphasis-bold">backquotes</b> (<a name="IXT-28-4702" /><a href="ch28_14.htm#upt3-CHP-28-SECT-14">Section 28.14</a>) do the
ch28_18.htm:Expect scripts work great as CGI scripts or from <b class="emphasis-bold">cron</b> (<a name="IXT-28-4739" /><a href="ch25_02.htm#upt3-CHP-25-SECT-2">Section 25.2</a>) or
ch29_02.htm:function</b> (<a name="IXT-29-4362" /><a href="ch29_11.htm#upt3-CHP-29-SECT-11">Section 29.11</a>).
ch29_02.htm:(<a name="IXT-29-4364" /><a href="ch03_03.htm#upt3-CHP-3-SECT-3">Section 3.3</a>), so putting
ch29_04.htm:operator</b> (<a name="IXT-29-4384" /><a href="ch29_03.htm#upt3-CHP-29-SECT-3">Section 29.3</a>) does. To
ch29_04.htm:(<a name="IXT-29-4385" /><a href="ch29_11.htm#upt3-CHP-29-SECT-11">Section 29.11</a>). 
ch29_07.htm:command-line arguments into a variable and then <b class="emphasis-bold">source</b> (<a name="IXT-29-4412" /><a href="ch35_29.htm#upt3-CHP-35-SECT-29">Section 35.29</a>) a script to
ch29_11.htm:(<a name="IXT-29-4437" /><a href="ch29_02.htm#upt3-CHP-29-SECT-2">Section 29.2</a>).
ch29_11.htm:(<a name="IXT-29-4445" /><a href="ch35_20.htm#upt3-CHP-35-SECT-20">Section 35.20</a>) is
ch29_11.htm:<b class="emphasis-bold">$1</b><a name="IXT-29-4459" />, the second in <b class="emphasis-bold">$2</b>, and so on (<a href="ch35_20.htm#upt3-CHP-35-SECT-20">Section 35.20</a>).
ch29_11.htm:(<a name="IXT-29-4461" /><a href="ch35_12.htm#upt3-CHP-35-SECT-12">Section 35.12</a>) to the
ch29_12.htm:<p><a name="IXT-29-4472" /><a href="ch27_11.htm#upt3-CHP-27-SECT-11">Section 27.11</a> introduces shell functions for all Bourne-type
ch29_12.htm:(<a name="IXT-29-4479" /><a href="ch29_11.htm#upt3-CHP-29-SECT-11">Section 29.11</a>): 
ch29_13.htm:(<a name="IXT-29-4487" /><a href="ch35_06.htm#upt3-CHP-35-SECT-6">Section 35.6</a>). So you can
ch30_01.htm:Bourne and C shells -- also have <a name="IXT-30-4203" /><a name="IXT-30-4204" /> <a name="IXT-30-4205" /><b class="emphasis-bold">interactive command-line editing</b> (<a href="ch30_14.htm#upt3-CHP-30-SECT-14">Section 30.14</a>). Interactive editing might seem to be better
ch30_02.htm:your prompt</b> (<a name="IXT-30-4207" /><a name="IXT-30-4208" /><a href="ch04_03.htm#upt3-CHP-4-SECT-3">Section 4.3</a>) makes it easy
ch30_03.htm:<p><a name="IXT-30-4211" />I get a lot of <b class="emphasis-bold">tar archives</b> (<a href="ch39_02.htm#upt3-CHP-39-SECT-2">Section 39.2</a>).
ch30_04.htm:<p><a name="IXT-30-4213" /> <a name="IXT-30-4214" />I use <b class="emphasis-bold">!$</b> (<a href="ch30_03.htm#upt3-CHP-30-SECT-3">Section 30.3</a>) a lot, but
ch30_05.htm:(<a name="IXT-30-4216" /><a href="ch30_11.htm#upt3-CHP-30-SECT-11">Section 30.11</a>) to recall an earlier command so I can change
ch30_07.htm:prompt</b> (<a name="IXT-30-4226" /><a name="IXT-30-4227" /><a href="ch04_03.htm#upt3-CHP-4-SECT-3">Section 4.3</a>). Then you can
ch30_08.htm:<p><tt class="literal">^xy^yx</tt><a name="IXT-30-4248" /> <a name="IXT-30-4249" /> is the <b class="emphasis-bold">shorthand substitution</b> (<a href="ch30_03.htm#upt3-CHP-30-SECT-3">Section 30.3</a>, <a href="ch30_05.htm#upt3-CHP-30-SECT-5">Section 30.5</a>) command. In
ch30_12.htm:</p><blockquote class="footnote"> <a name="FOOTNOTE-95" /><p> [95]<b class="emphasis-bold">xterm -ls</b> (<a href="ch05_10.htm#upt3-CHP-5-SECT-10">Section 5.10</a> runs a
ch30_14.htm:<p><a name="IXT-30-4297" /> <a name="IXT-30-4298" /> <a name="IXT-30-4299" /> <a name="IXT-30-4300" />If you know the <b class="emphasis-bold">Emacs</b> (<a href="ch19_01.htm#upt3-CHP-19-SECT-1">Section 19.1</a>) editor,
ch30_16.htm:(<a name="IXT-30-4334" /><a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>) command), you can type a backslash
ch31_03.htm:(<a name="IXT-31-4094" /><a href="ch01_16.htm#upt3-CHP-1-SECT-16">Section 1.16</a>). Without a current directory and relative
ch31_05.htm:<p><a name="IXT-31-4101" /><a name="IXT-31-4102" /><a name="IXT-31-4103" /><a name="IXT-31-4104" />Some people make a shell <b class="emphasis-bold">alias</b> (<a href="ch29_02.htm#upt3-CHP-29-SECT-2">Section 29.2</a>) for
ch31_05.htm:directories</b><a name="IXT-31-4109" /> (<a href="ch01_16.htm#upt3-CHP-1-SECT-16">Section 1.16</a>). This
ch31_06.htm:<p><a name="IXT-31-4113" /><a name="IXT-31-4114" /><a name="IXT-31-4115" /><a name="IXT-31-4116" /> <a name="IXT-31-4117" /> <a name="IXT-31-4118" /> <a name="IXT-31-4119" />Normally a <b class="emphasis-bold">for loop</b> (<a href="ch35_21.htm#upt3-CHP-35-SECT-21">Section 35.21</a>) iterates
ch31_08.htm:<p><a name="IXT-31-4134" /><a name="IXT-31-4135" />The <b class="emphasis-bold">pushd command</b> (<a href="ch31_07.htm#upt3-CHP-31-SECT-7">Section 31.7</a>)
ch32_03.htm:(<a name="IXT-32-3937" /><a href="ch13_02.htm#upt3-CHP-13-SECT-2">Section 13.2</a>) that accept regular expressions must first
ch32_05.htm:<i class="command">ed</i> and <i class="command">sed</i>. <b class="emphasis-bold">cat -v -e</b> (<a name="IXT-32-3975" /><a href="ch12_05.htm#upt3-CHP-12-SECT-5">Section 12.5</a>, <a href="ch12_04.htm#upt3-CHP-12-SECT-4">Section 12.4</a>) marks ends of lines with a
ch33_01.htm:<a name="upt3-IDXTERM-5107" /> <a name="upt3-IDXTERM-5108" />(<a href="ch01_13.htm#upt3-CHP-1-SECT-13">Section 1.13</a>)
ch33_02.htm:(<a name="IXT-33-3853" /> <a name="IXT-33-3854" /><a href="ch27_12.htm#upt3-CHP-27-SECT-12">Section 27.12</a>,
ch33_06.htm:<a name="IXT-33-3884" /><a name="IXT-33-3885" /> <a name="IXT-33-3886" />when you run <b class="emphasis-bold">grep</b> (<a href="ch13_01.htm#upt3-CHP-13-SECT-1">Section 13.1</a>) on a group
ch33_07.htm:(<a name="IXT-33-3887" /><a name="IXT-33-3888" /><a href="ch13_02.htm#upt3-CHP-13-SECT-2">Section 13.2</a>) option <span class="option">-c</span> to tell you how
ch34_04.htm:loop</b> (<a name="IXT-34-704" /><a href="ch35_21.htm#upt3-CHP-35-SECT-21">Section 35.21</a>) to apply the
ch34_04.htm:(<a name="IXT-34-713" /><a href="ch08_02.htm#upt3-CHP-8-SECT-2">Section 8.2</a>)
ch34_05.htm:expression</b> (<a name="IXT-34-714" /><a href="ch32_04.htm#upt3-CHP-32-SECT-4">Section 32.4</a>) that describes a pattern.
ch34_14.htm:it <a name="IXTR3-817" />works, see <a href="ch34_17.htm#upt3-CHP-34-SECT-17">Section 34.17</a>.<a name="IXTR3-818" /> <a name="IXTR3-819" />
ch34_16.htm:<p><a name="upt3-IDXTERM-5287" /> <a name="upt3-IDXTERM-5288" />Most programs that use <b class="emphasis-bold">regular expressions</b> (<a href="ch32_04.htm#upt3-CHP-32-SECT-4">Section 32.4</a>) are able to match a pattern only on a single
ch34_18.htm:<p><a name="upt3-IDXTERM-5321" /> <a name="upt3-IDXTERM-5322" /> <a name="upt3-IDXTERM-5323" />[<a href="ch13_09.htm#upt3-CHP-13-SECT-9">Section 13.9</a> introduced a script called
ch34_18.htm:(<a name="IXT-34-789" /><a href="ch35_19.htm#upt3-CHP-35-SECT-19">Section 35.19</a>) to
ch34_19.htm:<em class="emphasis">d</em>, deletes the contents of the <b class="emphasis-bold">pattern space</b> (<a name="IXT-34-794" /><a href="ch34_14.htm#upt3-CHP-34-SECT-14">Section 34.14</a>) and
ch34_24.htm:<p><a name="IXT-34-811" /><a name="IXT-34-812" />Feeding <b class="emphasis-bold">sed</b> (<a href="ch34_01.htm#upt3-CHP-34-SECT-1">Section 34.1</a>)
ch34_24.htm:(<a name="IXT-34-815" /><a href="ch27_12.htm#upt3-CHP-27-SECT-12">Section 27.12</a>).
ch35_01.htm:<p><a name="IXT-35-3470" />If your system supports the <b class="emphasis-bold">special #! notation</b> (<a href="ch36_02.htm#upt3-CHP-36-SECT-2">Section 36.2</a>) (and it probably does), the first line of the
ch35_01.htm:be in your <a name="IXT-35-3479" /> <a name="IXT-35-3480" />shell's <b class="emphasis-bold">command search path</b> (<a href="ch35_06.htm#upt3-CHP-35-SECT-6">Section 35.6</a>, <a href="ch35_07.htm#upt3-CHP-35-SECT-7">Section 35.7</a>). In that case,
ch35_03.htm:(<a name="IXT-35-3489" /><a href="ch05_02.htm#upt3-CHP-5-SECT-2">Section 5.2</a>)
ch35_03.htm:<p><a name="IXT-35-3502" /><a name="IXT-35-3503" /><a name="IXT-35-3504" />The <i class="command">set</i> (<a href="ch35_09.htm#upt3-CHP-35-SECT-9">Section 35.9</a>) command provides a similar listing of shell
ch35_05.htm:<a name="IXT-35-3511" /><dt><i><b class="emphasis-bold">PATH</b> (<a href="ch35_06.htm#upt3-CHP-35-SECT-6">Section 35.6</a>) </i></dt>
ch35_05.htm:<a name="IXT-35-3512" /> <a name="IXT-35-3513" />(<a href="ch26_06.htm#upt3-CHP-26-SECT-6">Section 27.6</a>). This is a list of directories in which the
ch35_05.htm:<a name="IXT-35-3521" /><a name="IXT-35-3522" /><dt><i><b class="emphasis-bold">PRINTER</b> (<a href="ch45_04.htm#upt3-CHP-45-SECT-4">Section 45.4</a>) or LPDEST </i></dt>
ch35_05.htm:<a name="IXT-35-3528" /><a name="IXT-35-3529" /><a name="IXT-35-3530" /><dt><i><b class="emphasis-bold">HOME</b> (<a href="ch31_11.htm#upt3-CHP-31-SECT-11">Section 31.11</a>) (called <em class="emphasis">LOGDIR</em></tt> on some systems) </i></dt>
ch35_05.htm:program like<a name="IXT-35-3544" /> <i class="command">less</i> (<a href="ch12_03.htm#upt3-CHP-12-SECT-3">Section 12.3</a>) or
ch35_05.htm:<i class="command">more</i><a name="IXT-35-3545" />. (Programs like <b class="emphasis-bold">man</b> (<a href="ch02_01.htm#upt3-CHP-2-SECT-1">Section 2.1</a>) use
ch35_05.htm:<a name="IXT-35-3550" /><dt><i><b class="emphasis-bold">PS2</b> (<a href="ch28_12.htm#upt3-CHP-28-SECT-12">Section 28.12</a>) </i></dt>
ch35_05.htm:<a name="IXT-35-3551" /><a name="IXT-35-3552" /><dt><i><b class="emphasis-bold">MANPATH</b> (<a href="ch03_21.htm#upt3-CHP-3-SECT-21">Section 3.21</a>) </i></dt>
ch35_10.htm:<p>Here's an example that tests your <b class="emphasis-bold">TERM</b> (<a name="IXT-35-3599" /><a href="ch05_02.htm#upt3-CHP-5-SECT-2">Section 5.2</a>)
ch35_11.htm:<p><a name="IXT-35-3601" /> <a name="IXT-35-3602" /><a name="IXT-35-3603" /><a name="IXT-35-3604" />A <b class="emphasis-bold">case statement</b> (<a name="IXT-35-3605" /><a href="ch35_10.htm#upt3-CHP-35-SECT-10">Section 35.10</a>) is good at
ch35_11.htm:the pattern <tt class="literal">What now?</tt>. The <a name="IXT-35-3612" /><b class="emphasis-bold">quotes</b> (<a href="ch27_12.htm#upt3-CHP-27-SECT-12">Section 27.12</a>) tell the
ch35_13.htm:<a name="IXT-35-3655" />special null command, a <b class="emphasis-bold">colon (:)</b> (<a href="ch36_06.htm#upt3-CHP-36-SECT-6">Section 36.6</a>).
ch35_14.htm:write an <a name="IXT-35-3664" />"inverse <b class="emphasis-bold">if</b> (<a href="ch35_13.htm#upt3-CHP-35-SECT-13">Section 35.13</a>)): 
ch35_16.htm:<a name="IXT-35-3675" /><blockquote><pre class="code">#!/bin/sh
ch35_17.htm:<a name="IXT-35-3677" />your <b class="emphasis-bold">interrupt key</b> (<a href="ch05_08.htm#upt3-CHP-5-SECT-8">Section 5.8</a>)
ch35_20.htm:<a name="IXT-35-3710" /><a name="IXT-35-3711" />reading this <b class="emphasis-bold">series</b> (<a href="ch35_02.htm#upt3-CHP-35-SECT-2">Section 35.2</a>) of
ch35_21.htm:<p><a name="IXT-35-3729" />The <b class="emphasis-bold">getopt and getopts</b> (<a href="ch35_24.htm#upt3-CHP-35-SECT-24">Section 35.24</a>) commands handle command-line arguments in a
ch35_25.htm:(<a name="IXT-35-3761" /><a name="IXT-35-3762" /><a href="ch02_08.htm#upt3-CHP-2-SECT-8">Section 2.8</a>) and <b class="emphasis-bold">cut</b>
ch35_29.htm:<p><a name="IXT-35-3795" /><a name="IXT-35-3796" />As <a href="ch35_04.htm#upt3-CHP-35-SECT-4">Section 35.4</a> explains, Unix programs can <em class="emphasis">never,
ch35_30.htm:<p><a name="upt3-IDXTERM-5742" /> <a name="upt3-IDXTERM-5743" />So far, we have discussed <b class="emphasis-bold">some shell function basics</b> (<a href="ch29_11.htm#upt3-CHP-29-SECT-11">Section 29.11</a>), using examples such as the <tt class="literal">mx(
ch36_01.htm:<a name="IXT-36-3174" />executable with #! on
ch36_03.htm:<p>Let's run both commands and <b class="emphasis-bold">time</b> (<a name="IXT-36-3188" /><a href="ch26_02.htm#upt3-CHP-26-SECT-2">Section 26.2</a>) them.
ch36_04.htm:<p><a name="IXT-36-3195" /> <a name="IXT-36-3196" /> <a name="IXT-36-3197" />As <a href="ch36_03.htm#upt3-CHP-36-SECT-3">Section 36.3</a>
ch36_05.htm:<p><i class="command">exec</i><a name="IXT-36-3204" /> <a name="IXT-36-3205" /> also <b class="emphasis-bold">manipulates file descriptors</b> (<a href="ch36_16.htm#upt3-CHP-36-SECT-16">Section 36.16</a>) in the Bourne shell. When you use
ch36_06.htm:if</b> (<a name="IXT-36-3212" /><a name="IXT-36-3213" /> <a name="IXT-36-3214" /><a href="ch35_13.htm#upt3-CHP-35-SECT-13">Section 35.13</a>) but
ch36_08.htm:<a name="IXT-36-3231" /><b class="emphasis-bold">links</b> (<a href="ch10_04.htm#upt3-CHP-10-SECT-4">Section 10.4</a>, <a href="ch10_03.htm#upt3-CHP-10-SECT-3">Section 10.3</a>) to it instead. The program can find the name
ch36_10.htm:<p><a name="IXT-36-3242" /><a name="IXT-36-3243" />The <b class="emphasis-bold">shift</b> (<a href="ch35_22.htm#upt3-CHP-35-SECT-22">Section 35.22</a>) command
ch36_15.htm:<p><a name="IXT-36-3305" /><a name="IXT-36-3306" />When Unix starts a new <b class="emphasis-bold">subprocess</b> (<a href="ch24_03.htm#upt3-CHP-24-SECT-3">Section 24.3</a>), the
ch36_21.htm:<a name="IXT-36-3362" />Sort of like <b class="emphasis-bold">grep</b> (<a href="ch13_01.htm#upt3-CHP-13-SECT-1">Section 13.1</a>);
ch36_22.htm:<p><a name="IXT-36-3366" /><a name="IXT-36-3367" /> <a name="IXT-36-3368" /><a name="IXT-36-3369" />The <b class="emphasis-bold">expr</b> (<a href="ch36_21.htm#upt3-CHP-36-SECT-21">Section 36.21</a>) command
ch36_22.htm:so on. <i class="command">expr</i> is <a name="IXT-36-3371" />usually run with <b class="emphasis-bold">backquotes</b> (<a href="ch28_14.htm#upt3-CHP-28-SECT-14">Section 28.14</a>) to
ch36_23.htm:<a name="IXT-36-3377" /><a name="IXT-36-3378" />(<a href="ch36_21.htm#upt3-CHP-36-SECT-21">Section 36.21</a>) can grab part of a string with a
ch36_23.htm:(<a name="IXT-36-3383" /><a href="ch21_14.htm#upt3-CHP-21-SECT-14">Section 21.14</a>) command starts more quickly than
ch36_23.htm:<p><a name="IXT-36-3384" /><a name="IXT-36-3385" /><a name="IXT-36-3386" />The Bourne shell <b class="emphasis-bold">set</b> (<a href="ch35_25.htm#upt3-CHP-35-SECT-25">Section 35.25</a>) command can
ch36_23.htm:<a name="IXT-36-3387" />store it in the <b class="emphasis-bold">command-line parameters</b> (<a href="ch35_20.htm#upt3-CHP-35-SECT-20">Section 35.20</a>) <tt class="literal">"$@"</tt>,
ch36_23.htm:<p><a name="IXT-36-3395" /> <a name="IXT-36-3396" /><a name="IXT-36-3397" />The Unix <b class="emphasis-bold">sed</b> (<a href="ch34_01.htm#upt3-CHP-34-SECT-1">Section 34.1</a>) utility is
ch36_23.htm:<a name="IXT-36-3398" />output of the <b class="emphasis-bold">df</b> (<a href="ch15_08.htm#upt3-CHP-15-SECT-8">Section 15.8</a>) command. On
ch36_23.htm:operators</b> (<a name="IXT-36-3400" /><a href="ch34_11.htm#upt3-CHP-34-SECT-11">Section 34.11</a>)
ch36_24.htm:<p><a name="IXT-36-3404" /><a name="IXT-36-3405" /><a name="IXT-36-3406" /><a href="ch28_14.htm#upt3-CHP-28-SECT-14">Section 28.14</a> introduced command substitution with a pair of
ch36_26.htm:(<a name="IXT-36-3424" /><a name="IXT-36-3425" /><a href="ch35_15.htm#upt3-CHP-35-SECT-15">Section 35.15</a>) is endless because
ch36_26.htm:statement</b> (<a name="IXT-36-3427" /><a href="ch35_13.htm#upt3-CHP-35-SECT-13">Section 35.13</a>). On the
ch36_26.htm:statement</b> (<a name="IXT-36-3429" /><a href="ch35_10.htm#upt3-CHP-35-SECT-10">Section 35.10</a>) that tests
ch36_26.htm:(<a name="IXT-36-3430" /><a href="ch21_02.htm#upt3-CHP-21-SECT-2">Section 21.2</a>)
ch36_27.htm:<a name="IXT-36-3434" />and <b class="emphasis-bold">file permissions</b> (<a href="ch50_02.htm#upt3-CHP-50-SECT-2">Section 50.2</a>) are handled.
ch36_27.htm:(<a name="IXT-36-3442" /><a href="ch35_15.htm#upt3-CHP-35-SECT-15">Section 35.15</a>) running.
ch37_03.htm:(<a name="IXT-37-3101" /> <a name="IXT-37-3102" /><a href="ch35_26.htm#upt3-CHP-35-SECT-26">Section 35.26</a>) can
ch37_05.htm:<a name="IXT-37-3126" /><blockquote><pre class="code">foreach arg ($argv:q)      # colon q ?!?</pre></blockquote>
ch37_05.htm:shortcuts"</b> (<a name="IXT-37-3129" /><a href="ch36_07.htm#upt3-CHP-36-SECT-7">Section 36.7</a>). Another more generally useful one is
ch37_08.htm:<p><a name="IXT-37-3150" /> <a name="IXT-37-3151" />As <a href="ch37_07.htm#upt3-CHP-37-SECT-7">Section 37.7</a>
ch37_09.htm:(<a name="IXT-37-3167" /><a href="ch14_05.htm#upt3-CHP-14-SECT-5">Section 14.5</a>) outputs
ch37_09.htm:testing, make it with <i class="command">yes</i> and <b class="emphasis-bold">head</b> (<a name="IXT-37-3168" /><a href="ch12_12.htm#upt3-CHP-12-SECT-12">Section 12.12</a>). For
ch38_02.htm:(<a name="IXT-38-2935" /><a href="ch39_03.htm#upt3-CHP-39-SECT-3">Section 39.3</a>) can
ch38_02.htm:(<a name="IXT-38-2936" /><a href="ch15_07.htm#upt3-CHP-15-SECT-7">Section 15.7</a>) than
ch38_02.htm:<a name="IXT-38-2937" />inode information, it can make a <b class="emphasis-bold">more complete copy</b> (<a href="ch10_13.htm#upt3-CHP-10-SECT-13">Section 10.13</a>) of a file or directory tree than utilities
ch38_04.htm:<p><a name="IXT-38-2940" /><a href="ch38_03.htm#upt3-CHP-38-SECT-3">Section 38.3</a>
ch38_05.htm:(<a name="IXT-38-2975" /><a href="ch38_13.htm#upt3-CHP-38-SECT-13">Section 38.13</a>) is an archiving utility that packs files
ch38_07.htm:<b class="emphasis-bold">NFS</b> (<a name="IXT-38-3000" /><a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>), you can just <b class="emphasis-bold">rlogin</b> (<a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>) to the
ch38_09.htm:(<a name="IXT-38-3016" /><a href="ch09_08.htm#upt3-CHP-9-SECT-8">Section 9.8</a>) to get
ch38_10.htm:files on the tape. The pattern supplied to <b class="emphasis-bold">egrep</b> (<a name="IXT-38-3023" /><a href="ch13_04.htm#upt3-CHP-13-SECT-4">Section 13.4</a>)
ch38_10.htm:have to <a name="IXT-38-3024" /><b class="emphasis-bold">quote</b> (<a href="ch27_12.htm#upt3-CHP-27-SECT-12">Section 27.12</a>) the
ch39_01.htm:aware that you can use the backup program <b class="emphasis-bold">tar</b> (<a name="IXT-39-2835" /><a href="ch38_02.htm#upt3-CHP-38-SECT-2">Section 38.2</a>) to
ch39_04.htm:(<a name="IXT-39-2857" /><a href="ch11_01.htm#upt3-CHP-11-SECT-1">Section 11.1</a>) listings of
ch39_06.htm:(<a name="IXT-39-2882" /><a href="ch13_07.htm#upt3-CHP-13-SECT-7">Section 13.7</a>) uses
ch39_06.htm:Then run <i class="command">rcsdiff</i><a name="IXT-39-2886" /> to do the comparisons and <b class="emphasis-bold">email</b> (<a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>) them to
ch41_01.htm:<p><a name="upt3-IDXTERM-6575" />Perl<a href="#FOOTNOTE-123">[123]</a> is
ch41_03.htm:Network</b><a name="IXT-41-2461" /><a name="IXT-41-2462" /> <b class="emphasis-bold">(CPAN)</b> (<a href="ch41_11.htm#upt3-CHP-41-SECT-11">Section 41.11</a>). You can
ch41_04.htm:(<a name="IXT-41-2482" /><a name="IXT-41-2483" /><a name="IXT-41-2484" /><a href="ch41_10.htm#upt3-CHP-41-SECT-10">Section 41.10</a>), scripts
ch41_04.htm:<a name="IXT-41-2485" /> <a name="IXT-41-2486" /><b class="emphasis-bold">@INC</b> (<a href="ch41_02.htm#upt3-CHP-41-SECT-2">Section 41.2</a>) for these
ch41_04.htm:both to get at values that are pointed to by <b class="emphasis-bold">references</b> (<a name="IXT-41-2509" /><a href="ch41_05.htm#upt3-CHP-41-SECT-5.4">Section 41.5.4</a>) and to make
ch41_05.htm:<p>Like many other languages, Perl supports <a name="IXT-41-2577" /><a name="IXT-41-2578" /><a name="IXT-41-2579" />Boolean operators (see <a href="ch41_05.htm#upt3-CHP-41-TABLE-3">Table 41-3</a>) that return true or false values. Typically,
ch41_05.htm:<p><a name="IXT-41-2586" /><a name="IXT-41-2587" />Looking at <a href="ch41_05.htm#upt3-CHP-41-TABLE-4">Table 41-4</a>,
ch41_05.htm:(<a name="IXT-41-2598" /><a name="IXT-41-2599" /><a href="ch41_07.htm#upt3-CHP-41-SECT-7">Section 41.7</a>). Although
ch42_04.htm:<p><b class="emphasis-bold">urllib</b> (<a name="IXT-42-2412" /><a name="IXT-42-2413" /><a href="ch42_05.htm#upt3-CHP-42-SECT-5">Section 42.5</a>) provides basic functions for opening and
ch42_04.htm:<p><b class="emphasis-bold">urllib2</b> (<a name="IXT-42-2414" /><a name="IXT-42-2415" /><a href="ch42_06.htm#upt3-CHP-42-SECT-6">Section 42.6</a>) provides an extended, extensible interface
ch42_04.htm:<p><b class="emphasis-bold">htmllib</b><a name="IXT-42-2416" /><a name="IXT-42-2417" /> and <b class="emphasis-bold">HTMLParser</b> (<a href="ch42_07.htm#upt3-CHP-42-SECT-7">Section 42.7</a>)
ch42_04.htm:(<a name="IXT-42-2420" /><a name="IXT-42-2421" /><a name="IXT-42-2422" /><a href="ch42_09.htm#upt3-CHP-42-SECT-9">Section 42.9</a>) is an
ch43_01.htm:<a name="IXT-43-2226" /><a name="IXT-43-2227" /><a name="IXT-43-2228" />terminal.<a href="#FOOTNOTE-127">[127]</a> Likewise, if a
ch43_01.htm:(<a name="IXT-43-2233" /><a href="ch01_21.htm#upt3-CHP-1-SECT-21">Section 1.21</a>). To
ch43_01.htm:(<a name="IXT-43-2244" /><a href="ch20_11.htm#upt3-CHP-20-SECT-11">Section 20.11</a>), support
ch43_02.htm:<a name="IXT-43-2254" /><b class="emphasis-bold">&lt; character</b> (<a href="ch43_01.htm#upt3-CHP-43-SECT-1">Section 43.1</a>):
ch43_04.htm:<i class="command">grep</i> writes its errors to the <b class="emphasis-bold">standard error</b> (<a name="IXT-43-2270" /><a href="ch36_15.htm#upt3-CHP-36-SECT-15">Section 36.15</a>)! But both
ch43_05.htm:<b class="emphasis-bold">tail -f</b> (<a name="IXT-43-2279" /><a href="ch12_10.htm#upt3-CHP-12-SECT-10">Section 12.10</a>). If you don't want the
ch43_10.htm:<p><a name="IXT-43-2308" /><a name="IXT-43-2309" />Using process substitution and <b class="emphasis-bold">tee</b> (<a href="ch43_08.htm#upt3-CHP-43-SECT-8">Section 43.8</a>), I can do
ch43_12.htm:<em class="emphasis">/dev/null</em><a name="IXT-43-2322" /> is a Unix device.<a href="#FOOTNOTE-132">[132]</a> It's not a
ch44_02.htm:<a name="IXT-44-2127" /><blockquote><pre class="code"># FreeBSD
ch45_03.htm:<p><a name="IXT-45-1768" /><a name="IXT-45-1769" />The printer <b class="emphasis-bold">daemon</b> (<a href="ch01_10.htm#upt3-CHP-1-SECT-10">Section 1.10</a>) watches
ch45_06.htm:<p><a name="upt3-IDXTERM-7227" /> <a name="upt3-IDXTERM-7228" /> <a name="upt3-IDXTERM-7229" />The <b class="emphasis-bold">line printer spooler</b> (<a href="ch45_02.htm#upt3-CHP-45-SECT-2">Section 45.2</a>) prints what you send it. If you send it a
ch45_09.htm:However, <i class="command">lpd</i><a name="IXT-45-1803" /><a name="IXT-45-1804" /> does know how to <b class="emphasis-bold">run files through a filter</b> (<a href="ch45_17.htm#upt3-CHP-45-SECT-17">Section 45.17</a>). So what we'll do is provide
ch45_13.htm:<p><a name="IXT-45-1817" /> <a name="IXT-45-1818" /><a href="ch45_12.htm#upt3-CHP-45-SECT-12">Section 45.12</a> shows an example of a
ch45_15.htm:<p><a name="IXT-45-1843" /><a name="IXT-45-1844" /><a href="ch45_07.htm#upt3-CHP-45-SECT-7">Section 45.7</a> introduced one tool that can convert plain
ch45_16.htm:<p><a name="IXT-45-1846" /><a name="IXT-45-1847" /><a href="ch45_15.htm#upt3-CHP-45-SECT-15">Section 45.15</a> showed the steps necessary to convert plain text into something
ch45_17.htm:<p><a name="IXT-45-1849" /> <a name="IXT-45-1850" /><a href="ch45_15.htm#upt3-CHP-45-SECT-15">Section 45.15</a>
ch46_01.htm:(<a name="IXT-46-453" /><a name="IXT-46-454" /><a href="ch46_01.htm#upt3-CHP-46-SECT-1">Section 46.1</a>). When you
ch46_03.htm:(<a name="IXT-46-474" /><a name="IXT-46-475" /><a name="IXT-46-476" /><a href="ch44_08.htm#upt3-CHP-44-SECT-8">Section 44.8</a>), but it also can be used to see the current
ch46_08.htm:(<a name="IXT-46-550" /><a href="ch46_09.htm#upt3-CHP-46-SECT-9">Section 46.9</a>) for your
ch46_09.htm:address</b> (<a name="IXT-46-560" /><a name="IXT-46-561" /><a href="ch46_01.htm#upt3-CHP-46-SECT-1">Section 46.1</a>).
ch46_09.htm:(<a name="IXT-46-571" /><a href="ch46_03.htm#upt3-CHP-46-SECT-3">Section 46.3</a>) for anything more complicated than a quick
ch46_11.htm:(<a name="IXT-46-599" /><a href="ch46_12.htm#upt3-CHP-46-SECT-12">Section 46.12</a>);
ch46_11.htm:correct private addresses on the way back in. If you use <b class="emphasis-bold">DHCP</b> (<a name="IXT-46-605" /><a href="ch46_10.htm#upt3-CHP-46-SECT-10">Section 46.10</a>) to configure
ch46_11.htm:(<a name="IXT-46-612" /><a href="ch44_03.htm#upt3-CHP-44-SECT-3">Section 44.3</a>)
ch46_12.htm:(<a name="IXT-46-615" /><a name="IXT-46-616" /><a href="ch46_11.htm#upt3-CHP-46-SECT-11">Section 46.11</a>)
ch46_12.htm:(<a name="IXT-46-618" /><a href="ch46_01.htm#upt3-CHP-46-SECT-1">Section 46.1</a>) it is
ch46_13.htm:(<a name="IXT-46-626" /><a href="ch44_11.htm#upt3-CHP-44-SECT-11">Section 44.11</a>), turn
ch47_02.htm:wish to use the web administration tool <b class="emphasis-bold">SWAT</b> (<a name="IXT-47-1992" /><a href="ch47_04.htm#upt3-CHP-47-SECT-4">Section 47.4</a>) to
ch48_02.htm:(<a name="IXT-48-1887" /><a href="ch50_05.htm#upt3-CHP-50-SECT-5">Section 50.5</a>) on a file:
ch48_02.htm:(<a name="IXT-48-1888" /><a href="ch48_05.htm#upt3-CHP-48-SECT-5">Section 48.5</a>).
ch48_03.htm:(<a name="IXT-48-1893" /><a name="IXT-48-1894" /><a href="ch48_02.htm#upt3-CHP-48-SECT-2">Section 48.2</a>).
ch48_07.htm:<b class="emphasis-bold">find</b> (<a name="IXT-48-1947" /><a href="ch09_01.htm#upt3-CHP-9-SECT-1">Section 9.1</a>) command. For
ch48_12.htm:<p><a name="IXT-48-1965" />The same configuration and <b class="emphasis-bold">TCP wrapper</b> (<a href="ch46_05.htm#upt3-CHP-46-SECT-5">Section 46.5</a>) -- known as the Wietse
ch49_13.htm:<p>You can temporarily disable logins by creating an entry in <b class="emphasis-bold">/etc/nologin</b><a name="IXT-49-432" /><a name="IXT-49-433" /><a name="IXT-49-434" /> (<a href="ch03_01.htm#upt3-CHP-3-SECT-1">Section 3.1</a>) and
ch50_02.htm:-l</em><a name="IXT-50-997" /> listing:<a href="#FOOTNOTE-134">[134]</a>
ch50_02.htm:(<a name="IXT-50-1002" /><a href="ch50_05.htm#upt3-CHP-50-SECT-5">Section 50.5</a>) command
ch50_02.htm:(<a name="IXT-50-1013" /><a href="ch09_01.htm#upt3-CHP-9-SECT-1">Section 9.1</a>) three times a day and search for files owned
ch50_02.htm:(<a name="IXT-50-1014" /><a href="ch25_02.htm#upt3-CHP-25-SECT-2">Section 25.2</a>) to
ch50_05.htm:(<a name="IXT-50-1054" /><a href="ch01_17.htm#upt3-CHP-1-SECT-17">Section 1.17</a>,
ch50_05.htm:(<a name="IXT-50-1061" /><a href="ch09_09.htm#upt3-CHP-9-SECT-9">Section 9.9</a>, <a href="ch50_06.htm#upt3-CHP-50-SECT-6">Section 50.6</a>). You won't need this often,
ch50_09.htm:(<a name="IXT-50-1086" /><a href="ch01_20.htm#upt3-CHP-1-SECT-20">Section 1.20</a>), and one of its nagging problems has always
ch51_01.htm:<p><b class="emphasis-bold">Enabling SSH</b> (<a name="upt3-IDXTERM-7980" /><a href="ch46_06.htm#upt3-CHP-46-SECT-6">Section 46.6</a>) on <a name="IXT-51-636" /><a name="IXT-51-637" />Mac OS X is fairly simple. Access the System
ch51_03.htm:(<a name="IXT-51-648" /><a name="IXT-51-649" /><a href="ch46_06.htm#upt3-CHP-46-SECT-6">Section 46.6</a>) is built-in. In other cases you can use
