home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / share / doc / usd / 04.csh / csh.g < prev    next >
Encoding:
Text File  |  1991-04-17  |  42.5 KB  |  1,722 lines

  1. .\" Copyright (c) 1980 The Regents of the University of California.
  2. .\" All rights reserved.
  3. .\"
  4. .\" Redistribution and use in source and binary forms, with or without
  5. .\" modification, are permitted provided that the following conditions
  6. .\" are met:
  7. .\" 1. Redistributions of source code must retain the above copyright
  8. .\"    notice, this list of conditions and the following disclaimer.
  9. .\" 2. Redistributions in binary form must reproduce the above copyright
  10. .\"    notice, this list of conditions and the following disclaimer in the
  11. .\"    documentation and/or other materials provided with the distribution.
  12. .\" 3. All advertising materials mentioning features or use of this software
  13. .\"    must display the following acknowledgement:
  14. .\"    This product includes software developed by the University of
  15. .\"    California, Berkeley and its contributors.
  16. .\" 4. Neither the name of the University nor the names of its contributors
  17. .\"    may be used to endorse or promote products derived from this software
  18. .\"    without specific prior written permission.
  19. .\"
  20. .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  21. .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22. .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23. .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  24. .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25. .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  26. .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  27. .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  28. .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  29. .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  30. .\" SUCH DAMAGE.
  31. .\"
  32. .\"    @(#)csh.g    6.2 (Berkeley) 4/17/91
  33. .\"
  34. .SH
  35. Glossary
  36. .PP
  37. This glossary lists the most important terms introduced in the
  38. introduction to the
  39. shell and gives references to sections of the shell
  40. document for further information about them.
  41. References of the form
  42. `pr (1)'
  43. indicate that the command
  44. .I pr
  45. is in the \s-2UNIX\s0 User Reference manual in section 1.
  46. You can look at an online copy of its manual page by doing
  47. .DS
  48. man 1 pr
  49. .DE
  50. References of the form (2.5)
  51. indicate that more information can be found in section 2.5 of this
  52. manual.
  53. .IP \&\fB.\fR 15n
  54. Your current directory has the name `.' as well as the name printed
  55. by the command
  56. .I pwd;
  57. see also
  58. .I dirs.
  59. The current directory `.' is usually the first 
  60. .I component 
  61. of the search path contained in the variable
  62. .I path ,
  63. thus commands which are in `.' are found first (2.2).
  64. The character `.' is also used in separating 
  65. .I components 
  66. of filenames
  67. (1.6).
  68. The character `.' at the beginning of a 
  69. .I component 
  70. of a 
  71. .I pathname 
  72. is treated specially and not matched by the 
  73. .I "filename expansion"
  74. metacharacters `?', `*', and `[' `]' pairs (1.6).
  75. .IP \&\fB..\fR
  76. Each directory has a file `..' in it which is a reference to its
  77. parent directory.
  78. After changing into the directory with
  79. .I chdir ,
  80. i.e.
  81. .DS
  82. chdir paper
  83. .DE
  84. you can return to the parent directory by doing
  85. .DS
  86. chdir ..
  87. .DE
  88. The current directory is printed by
  89. .I pwd
  90. (2.7).
  91. .IP a.out
  92. Compilers which create executable images create them, by default, in the
  93. file 
  94. .I a.out.
  95. for historical reasons (2.3).
  96. .IP "absolute pathname"
  97. .br
  98. .I pathname 
  99. which begins with a `/' is
  100. .I absolute
  101. since it specifies the 
  102. .I path 
  103. of directories from the beginning
  104. of the entire directory system \- called the
  105. .I root
  106. directory.  
  107. .I Pathname s 
  108. which are not
  109. .I absolute
  110. are called
  111. .I relative
  112. (see definition of
  113. .I "relative pathname" )
  114. (1.6).
  115. .IP alias
  116. An
  117. .I alias
  118. specifies a shorter or different name for a \s-2UNIX\s0
  119. command, or a transformation on a command to be performed in
  120. the shell.
  121. The shell has a command
  122. .I alias
  123. which establishes 
  124. .I aliases 
  125. and can print their current values.
  126. The command
  127. .I unalias
  128. is used to remove 
  129. .I aliases 
  130. (2.4).
  131. .IP argument
  132. Commands in \s-2UNIX\s0 receive a list of 
  133. .I argument 
  134. words.
  135. Thus the command
  136. .DS
  137. echo a b c
  138. .DE
  139. consists of the
  140. .I "command name"
  141. `echo' and three 
  142. .I argument 
  143. words `a', `b' and `c'.
  144. The set of 
  145. .I arguments 
  146. after the
  147. .I "command name"
  148. is said to be the
  149. .I "argument list"
  150. of the command (1.1).
  151. .IP argv
  152. The list of arguments to a command written in the shell language
  153. (a shell script or shell procedure) is stored in a variable called
  154. .I argv
  155. within the shell.
  156. This name is taken from the conventional name in the
  157. C programming language (3.4).
  158. .IP background
  159. Commands started without waiting for them to complete are called
  160. .I background
  161. commands (2.6).
  162. .IP base
  163. A filename is sometimes thought of as consisting of a
  164. .I base
  165. part, before any `.' character, and an 
  166. .I extension 
  167. \- the part after
  168. the `.'.  See
  169. .I filename
  170. and
  171. .I extension
  172. (1.6) and basename (1).
  173. .IP bg
  174. The
  175. .I bg
  176. command causes a
  177. .I suspended 
  178. job to continue execution in the
  179. .I background
  180. (2.6).
  181. .IP bin
  182. A directory containing binaries of programs and shell scripts to be
  183. executed is typically called a 
  184. .I bin 
  185. directory.
  186. The standard system 
  187. .I bin 
  188. directories are `/bin' containing the most
  189. heavily used commands and `/usr/bin' which contains most other user
  190. programs.
  191. Programs developed at UC Berkeley live in `/usr/ucb', while locally
  192. written programs live in `/usr/local'.  Games are kept in the directory
  193. `/usr/games'.
  194. You can place binaries in any directory.
  195. If you wish to execute them often, the name of the directories
  196. should be a 
  197. .I component 
  198. of the variable
  199. .I path .
  200. .IP break
  201. .I Break
  202. is a builtin command used to exit from loops within the control
  203. structure of the shell (3.7).
  204. .IP breaksw
  205. The
  206. .I breaksw
  207. builtin command is used to exit from a
  208. .I switch
  209. control structure, like a
  210. .I break
  211. exits from loops (3.7).
  212. .IP builtin
  213. A command executed directly by the shell is called a
  214. .I builtin
  215. command.
  216. Most commands in \s-2UNIX\s0 are not built into the shell,
  217. but rather exist as files in 
  218. .I bin 
  219. directories.
  220. These commands are accessible because the directories in which
  221. they reside are named in the
  222. .I path
  223. variable.
  224. .IP case
  225. A
  226. .I case
  227. command is used as a label in a
  228. .I switch
  229. statement in the shell's control structure, similar to that of the
  230. language C.
  231. Details are given in the shell documentation `csh (1)' (3.7).
  232. .IP cat
  233. The
  234. .I cat
  235. program catenates a list of specified files on the 
  236. .I "standard output" .
  237. It is usually used to look at the contents of a single file on the terminal,
  238. to `cat a file' (1.8, 2.3).
  239. .IP cd
  240. The
  241. .I cd
  242. command is used to change the 
  243. .I "working directory" .
  244. With no arguments,
  245. .I cd
  246. changes your 
  247. .I "working directory" 
  248. to be your
  249. .I home
  250. directory (2.4, 2.7).
  251. .IP chdir
  252. The
  253. .I chdir
  254. command is a synonym for
  255. .I cd .
  256. .I Cd
  257. is usually used because it is easier to type.
  258. .IP chsh
  259. The
  260. .I chsh
  261. command is used to change the shell which you use on \s-2UNIX\s0.
  262. By default, you use an different version of the shell
  263. which resides in `/bin/sh'.
  264. You can change your shell to `/bin/csh' by doing
  265. .DS
  266. chsh your-login-name /bin/csh
  267. .DE
  268. Thus I would do
  269. .DS
  270. chsh bill /bin/csh
  271. .DE
  272. It is only necessary to do this once.
  273. The next time you log in to \s-2UNIX\s0 after doing this command,
  274. you will be using
  275. .I csh
  276. rather than the shell in `/bin/sh' (1.9).
  277. .IP cmp
  278. .I Cmp
  279. is a program which compares files.
  280. It is usually used on binary files, or to see if two files are identical (3.6).
  281. For comparing text files the program
  282. .I diff ,
  283. described in `diff (1)' is used.
  284. .IP command
  285. A function performed by the system, either by the shell
  286. (a builtin 
  287. .I command )
  288. or by a program residing in a file in
  289. a directory within the \s-2UNIX\s0 system, is called a
  290. .I command
  291. (1.1).
  292. .IP "command name"
  293. .br
  294. When a command is issued, it consists of a
  295. .I "command name" ,
  296. which is the first word of the command,
  297. followed by arguments.
  298. The convention on \s-2UNIX\s0 is that the first word of a
  299. command names the function to be performed (1.1).
  300. .IP "command substitution"
  301. .br
  302. The replacement of a command enclosed in `\`' characters
  303. by the text output by that command 
  304. is called
  305. .I "command substitution"
  306. (4.3).
  307. .IP component
  308. A part of a
  309. .I pathname
  310. between `/' characters is called a
  311. .I component
  312. of that 
  313. .I pathname .
  314. A variable
  315. which has multiple strings as value is said to have
  316. several
  317. .I component s;
  318. each string is a
  319. .I component
  320. of the variable.
  321. .IP continue
  322. A builtin command which causes execution of the enclosing
  323. .I foreach
  324. or
  325. .I while
  326. loop to cycle prematurely.
  327. Similar to the
  328. .I continue
  329. command in the programming language C (3.6).
  330. .IP control-
  331. Certain special characters, called
  332. .I control
  333. characters, are produced by holding down the \s-2CONTROL\s0 key
  334. on your terminal and simultaneously pressing another character, much like
  335. the \s-2SHIFT\s0 key is used to produce upper case characters. Thus
  336. .I control- c
  337. is produced by holding down the \s-2CONTROL\s0 key while pressing the
  338. `c' key.  Usually \s-2UNIX\s0 prints an caret (^) followed by the
  339. corresponding letter when you type a
  340. .I control
  341. character (e.g. `^C' for
  342. .I control- c
  343. (1.8).
  344. .IP "core\ dump"
  345. When a program terminates abnormally, the system places an image
  346. of its current state in a file named `core'.
  347. This 
  348. .I "core dump"
  349. can be examined with the system debugger `adb (1)'
  350. or `sdb (1)' in order to determine what went wrong with the program (1.8).
  351. If the shell produces a message of the form
  352. .DS
  353. Illegal instruction (core dumped)
  354. .DE
  355. (where `Illegal instruction' is only one of several possible
  356. messages), you should report this to the author of the program
  357. or a system administrator, 
  358. saving the `core' file.
  359. .IP cp
  360. The
  361. .I cp
  362. (copy) program is used to copy the contents of one file into another
  363. file.
  364. It is one of the most commonly used \s-2UNIX\s0 commands (1.6).
  365. .IP csh
  366. The name of the shell
  367. program that this document describes.
  368. .IP \&.cshrc
  369. The file
  370. .I \&.cshrc
  371. in your
  372. .I home
  373. directory is read by each shell as it begins execution.
  374. It is usually used to change the setting of the variable
  375. .I path
  376. and to set
  377. .I alias
  378. parameters which are to take effect globally (2.1).
  379. .IP cwd
  380. The
  381. .I cwd
  382. variable in the shell holds the
  383. .I "absolute pathname"
  384. of the current
  385. .I "working directory" \&.
  386. It is changed by the shell whenever your current
  387. .I "working directory"
  388. changes and should not be changed otherwise (2.2).
  389. .IP date
  390. The
  391. .I date
  392. command prints the current date and time (1.3).
  393. .IP debugging
  394. .I Debugging
  395. is the process of correcting mistakes in programs and shell scripts.
  396. The shell has several options and variables which may be used
  397. to aid in shell 
  398. .I debugging 
  399. (4.4).
  400. .IP default:
  401. The label
  402. .I default:
  403. is used within shell
  404. .I switch
  405. statements, as it is in the C language
  406. to label the code to be executed if none of the
  407. .I case
  408. labels matches the value switched on (3.7).
  409. .IP \s-2DELETE\s0
  410. The
  411. \s-2DELETE\s0
  412. or
  413. \s-2RUBOUT\s0
  414. key on the terminal normally causes an interrupt to be sent to the current job.
  415. Many users change the interrupt character to be ^C.
  416. .IP detached
  417. A command that continues running in the 
  418. .I background 
  419. after you logout is said to be 
  420. .I detached .
  421. .IP diagnostic
  422. An error message produced by a program is often referred to as a
  423. .I diagnostic .
  424. Most error messages are not written to the 
  425. .I "standard output" ,
  426. since that is often directed away from the terminal (1.3, 1.5).
  427. Error messsages are instead written to the
  428. .I "diagnostic output"
  429. which may be directed away from the terminal, but usually is not.
  430. Thus 
  431. .I diagnostics 
  432. will usually appear on the terminal (2.5).
  433. .IP directory
  434. A structure which contains files.
  435. At any time you are in one particular 
  436. .I directory 
  437. whose names can be printed by the command 
  438. .I pwd .
  439. The
  440. .I chdir
  441. command will change you to another 
  442. .I directory , 
  443. and make the files
  444. in that 
  445. .I directory 
  446. visible. The 
  447. .I directory 
  448. in which you are when you first login is your
  449. .I home
  450. directory (1.1, 2.7).
  451. .IP "directory\ stack"
  452. The shell saves the names of previous
  453. .I "working directories"
  454. in the
  455. .I "directory stack"
  456. when you change your current
  457. .I "working directory"
  458. via the
  459. .I pushd
  460. command.  The
  461. .I "directory stack"
  462. can be printed by using the
  463. .I dirs
  464. command, which includes your current
  465. .I "working directory"
  466. as the first directory name on the left (2.7).
  467. .IP dirs
  468. The
  469. .I dirs
  470. command prints the shell's
  471. .I "directory stack" 
  472. (2.7).
  473. .IP du
  474. The
  475. .I du
  476. command is a program (described in `du (1)') which
  477. prints the number of disk blocks is all directories below
  478. and including your current
  479. .I "working directory"
  480. (2.6).
  481. .IP echo
  482. The
  483. .I echo
  484. command prints its arguments (1.6, 3.6).
  485. .IP else
  486. The
  487. .I else
  488. command is part of the `if-then-else-endif' control
  489. command construct (3.6).
  490. .IP endif
  491. If an
  492. .I if
  493. statement is ended with the word
  494. .I then ,
  495. all lines following the
  496. .I if
  497. up to a line starting with the word
  498. .I endif
  499. or
  500. .I else
  501. are executed if the condition between parentheses after the
  502. .I if
  503. is true (3.6).
  504. .IP \s-2EOF\s0
  505. An
  506. .I "end\f1-\fPof\f1-\fPfile"
  507. is generated by the terminal by a control-d,
  508. and whenever a command reads to the end of a file which
  509. it has been given as input.
  510. Commands receiving input from a
  511. .I pipe
  512. receive an 
  513. .I "end\f1-\fPof\f1-\fPfile" 
  514. when the command sending them input completes.
  515. Most commands terminate when they receive an 
  516. .I "end\f1-\fPof\f1-\fPfile" .
  517. The shell has an option to ignore 
  518. .I "end\f1-\fPof\f1-\fPfile" 
  519. from a terminal
  520. input which may help you keep from logging out accidentally
  521. by typing too many control-d's (1.1, 1.8, 3.8).
  522. .IP escape
  523. A character `\e' used to prevent the special meaning of a metacharacter
  524. is said to
  525. .I escape
  526. the character from its special meaning.
  527. Thus
  528. .DS
  529. echo \e*
  530. .DE
  531. will echo the character `*' while just
  532. .DS
  533. echo *
  534. .DE
  535. will echo the names of the file in the current directory.
  536. In this example, \e
  537. .I escape s
  538. `*' (1.7).
  539. There is also a non-printing character called
  540. .I escape , 
  541. usually labelled
  542. \s-2ESC\s0
  543. or
  544. \s-2ALTMODE\s0
  545. on terminal keyboards.
  546. Some older \s-2UNIX\s0 systems use this character to indicate that
  547. output is to be 
  548. .I suspended . 
  549. Most systems use control-s to stop the output and control-q to start it.
  550. .IP /etc/passwd
  551. This file contains information about the accounts currently on the
  552. system.
  553. It consists of a line for each account with fields separated by
  554. `:' characters (1.8).
  555. You can look at this file by saying
  556. .DS
  557. cat /etc/passwd
  558. .DE
  559. The commands
  560. .I finger
  561. and
  562. .I grep
  563. are often used to search for information in this file.
  564. See `finger (1)', `passwd(5)', and `grep (1)' for more details.
  565. .IP exit
  566. The
  567. .I exit
  568. command is used to force termination of a shell script,
  569. and is built into the shell (3.9).
  570. .IP "exit\ status"
  571. A command which discovers a problem may reflect this back to the command
  572. (such as a shell) which invoked (executed) it.
  573. It does this by returning a non-zero number as its
  574. .I "exit status" ,
  575. a status of zero being considered
  576. `normal termination'.
  577. The
  578. .I exit
  579. command can be used to force a shell command script to give a non-zero
  580. .I "exit status" 
  581. (3.6).
  582. .IP expansion
  583. The replacement of strings in the shell input which contain metacharacters
  584. by other strings is referred to as the process of
  585. .I expansion .
  586. Thus the replacement of the word `*' by a sorted list of files
  587. in the current directory is a `filename expansion'.
  588. Similarly the replacement of the characters `!!' by the text of
  589. the last command is a `history expansion'.
  590. .I Expansions 
  591. are also referred to as
  592. .I substitutions
  593. (1.6, 3.4, 4.2).
  594. .IP expressions
  595. .I Expressions 
  596. are used in the shell
  597. to control the conditional structures used in the writing of shell
  598. scripts and in calculating values for these scripts.
  599. The operators available in shell 
  600. .I expressions 
  601. are those of the language
  602. C (3.5).
  603. .IP extension
  604. Filenames often consist of a
  605. .I base
  606. name and an
  607. .I extension
  608. separated by the character `.'.
  609. By convention, groups of related files often share the same 
  610. .I root 
  611. name.
  612. Thus if `prog.c' were a C program, then the object file for this
  613. program would be stored in `prog.o'.
  614. Similarly a paper written with the
  615. `\-me'
  616. nroff macro package might be stored in
  617. `paper.me'
  618. while a formatted version of this paper might be kept in
  619. `paper.out' and a list of spelling errors in
  620. `paper.errs' (1.6).
  621. .IP fg
  622. The
  623. .I "job control"
  624. command
  625. .I fg
  626. is used to run a
  627. .I background
  628. or
  629. .I suspended
  630. job in the
  631. .I foreground
  632. (1.8, 2.6).
  633. .IP filename
  634. Each file in \s-2UNIX\s0 has a name consisting of up to 14 characters
  635. and not including the character `/' which is used in
  636. .I pathname
  637. building.  Most 
  638. .I filenames
  639. do not begin with the character `.', and contain 
  640. only letters and digits with perhaps a `.' separating the
  641. .I base
  642. portion of the 
  643. .I filename 
  644. from an 
  645. .I extension 
  646. (1.6).
  647. .IP "filename expansion"
  648. .br
  649. .I "Filename expansion" 
  650. uses the metacharacters `*', `?' and `[' and `]'
  651. to provide a convenient mechanism for naming files.
  652. Using 
  653. .I "filename expansion" 
  654. it is easy to name all the files in
  655. the current directory, or all files which have a common 
  656. .I root 
  657. name. Other 
  658. .I "filename expansion" 
  659. mechanisms use the metacharacter `~' and allow
  660. files in other users' directories to be named easily (1.6, 4.2).
  661. .IP flag
  662. Many \s-2UNIX\s0 commands accept arguments which are not the names
  663. of files or other users but are used to modify the action of the commands.
  664. These are referred to as
  665. .I flag
  666. options, and by convention consist of one or more letters preceded by
  667. the character `\-' (1.2).
  668. Thus the
  669. .I ls
  670. (list files) command has an option
  671. `\-s' to list the sizes of files.
  672. This is specified
  673. .DS
  674. ls \-s
  675. .DE
  676. .IP foreach
  677. The
  678. .I foreach
  679. command is used in shell scripts and at the terminal to specify
  680. repetition of a sequence of commands while the value of a certain
  681. shell variable ranges through a specified list (3.6, 4.1).
  682. .IP foreground
  683. When commands are executing in the normal way such that the
  684. shell is waiting for them to finish before prompting for another
  685. command they are said to be
  686. .I "foreground jobs"
  687. or
  688. .I "running in the foreground" \&.  
  689. This is as opposed to
  690. .I background .
  691. .I Foreground
  692. jobs can be stopped by signals
  693. from the terminal caused by typing different
  694. control characters at the keyboard (1.8, 2.6).
  695. .IP goto
  696. The shell has a command
  697. .I goto
  698. used in shell scripts to transfer control to a given label (3.7).
  699. .IP grep
  700. The
  701. .I grep
  702. command searches through a list of argument files for a specified string.
  703. Thus
  704. .DS
  705. grep bill /etc/passwd
  706. .DE
  707. will print each line in the file
  708. .I "/etc/passwd"
  709. which contains the string `bill'.
  710. Actually,
  711. .I grep
  712. scans for 
  713. .I "regular expressions"
  714. in the sense of the editors
  715. `ed (1)' and `ex (1)'.
  716. .I Grep
  717. stands for
  718. `globally find 
  719. .I "regular expression" 
  720. and print' (2.4).
  721. .IP head
  722. The
  723. .I head
  724. command prints the first few lines of one or more files.
  725. If you have a bunch of files containing text which you are wondering
  726. about it is sometimes useful to run
  727. .I head
  728. with these files as arguments.
  729. This will usually show enough of what is in these files to let you decide
  730. which you are interested in (1.5).
  731. .br
  732. .I Head
  733. is also used to describe the part of a
  734. .I pathname
  735. before and including the last `/' character.  The
  736. .I tail
  737. of a
  738. .I pathname
  739. is the part after the last `/'.  The `:h' and `:t' modifiers allow the
  740. .I head
  741. or
  742. .I tail
  743. of a 
  744. .I pathname 
  745. stored in a shell variable to be used (3.6).
  746. .IP history
  747. The
  748. .I history
  749. mechanism of the shell allows previous commands to be repeated,
  750. possibly after modification to correct typing mistakes or to change
  751. the meaning of the command.
  752. The shell has a
  753. .I "history list"
  754. where these commands are kept, and a
  755. .I history
  756. variable which controls how large this list is (2.3).
  757. .IP "home\ directory"
  758. .br
  759. Each user has a 
  760. .I "home directory" ,
  761. which is given in your entry
  762. in the password file,
  763. .I /etc/passwd .
  764. This is the directory which you are placed in when you first login.
  765. The
  766. .I cd
  767. or
  768. .I chdir
  769. command with no arguments takes you back to this directory, whose
  770. name is recorded in the shell variable
  771. .I home .
  772. You can also access the 
  773. .I "home directories" 
  774. of other users in forming
  775. filenames using a 
  776. .I "filename expansion" 
  777. notation and the character `~' (1.6).
  778. .IP if
  779. A conditional command within the shell, the
  780. .I if
  781. command is used in shell command scripts to make decisions
  782. about what course of action to take next (3.6).
  783. .IP ignoreeof
  784. Normally, your shell will exit, printing
  785. `logout'
  786. if you type a control-d at a prompt of `% '.
  787. This is the way you usually log off the system.
  788. You can
  789. .I set
  790. the
  791. .I ignoreeof
  792. variable if you wish in your
  793. .I \&.login
  794. file and then use the command
  795. .I logout
  796. to logout.
  797. This is useful if you sometimes accidentally type too many control-d
  798. characters, logging yourself off
  799. (2.2).
  800. .IP input
  801. Many commands on \s-2UNIX\s0 take information from the terminal or from
  802. files which they then act on.
  803. This information is called
  804. .I input .
  805. Commands normally read for 
  806. .I input 
  807. from their
  808. .I "standard input"
  809. which is, by default, the terminal.
  810. This 
  811. .I "standard input" 
  812. can be redirected from a file using a shell metanotation
  813. with the character `<'.
  814. Many commands will also read from a file specified as argument.
  815. Commands placed in 
  816. .I pipelines
  817. will read from the output of the previous
  818. command in the 
  819. .I pipeline .
  820. The leftmost command in a 
  821. .I pipeline 
  822. reads from the terminal if
  823. you neither redirect its 
  824. .I input 
  825. nor give it a filename to use as
  826. .I "standard input" .
  827. Special mechanisms exist for supplying input to commands in shell
  828. scripts (1.5, 3.8).
  829. .IP interrupt
  830. An
  831. .I interrupt
  832. is a signal to a program that is generated by typing ^C. (On older versions
  833. of UNIX the \s-2RUBOUT\s0 or \s-2DELETE\s0 key were used for this purpose.)
  834. It causes most programs to stop execution.
  835. Certain programs, such as the shell and the editors,
  836. handle an 
  837. .I interrupt 
  838. in special ways, usually by stopping what they
  839. are doing and prompting for another command.
  840. While the shell is executing another command and waiting for it
  841. to finish, the shell does not listen to 
  842. .I interrupts.
  843. The shell often wakes up when you hit 
  844. .I interrupt 
  845. because many commands
  846. die when they receive an 
  847. .I interrupt 
  848. (1.8, 3.9).
  849. .IP job
  850. One or more commands
  851. typed on the same input line separated by `|' or `;' characters
  852. are run together and are called a
  853. .I job \&.
  854. Simple commands run by themselves without any `|' or `;' characters
  855. are the simplest 
  856. .I jobs.
  857. .I Jobs
  858. are classified as
  859. .I foreground ,
  860. .I background ,
  861. or
  862. .I suspended
  863. (2.6).
  864. .IP "job\ control"
  865. The builtin functions that control the execution of
  866. jobs are called
  867. .I "job control"
  868. commands.  These are
  869. .I "bg, fg, stop, kill"
  870. (2.6).
  871. .IP "job\ number"
  872. When each job
  873. is started it is assigned a small number called a
  874. .I "job number"
  875. which is printed next to the job in the output of the
  876. .I jobs
  877. command.  This number, preceded by a `%' character, can be used as an argument
  878. to
  879. .I "job control"
  880. commands to indicate
  881. a specific job (2.6).
  882. .IP jobs
  883. The
  884. .I jobs
  885. command prints a table showing
  886. jobs that are either running in the
  887. .I background
  888. or are
  889. .I suspended
  890. (2.6).
  891. .IP kill
  892. A command which sends a
  893. signal
  894. to a job causing it to terminate (2.6).
  895. .IP \&.login
  896. The file
  897. .I \&.login
  898. in your
  899. .I home
  900. directory is read by the shell each time you login to \s-2UNIX\s0
  901. and the commands there are executed.
  902. There are a number of commands which are usefully placed here,
  903. especially
  904. .I set
  905. commands to the shell itself (2.1).
  906. .IP "login\ shell"
  907. The shell that is started on your terminal when you login is called
  908. your
  909. .I "login shell" .
  910. It is different from other shells which you may run (e.g. on
  911. shell scripts)
  912. in that it reads the
  913. .I \&.login
  914. file before reading commands from the terminal and it reads the
  915. .I \&.logout
  916. file after you logout
  917. (2.1).
  918. .IP logout
  919. The
  920. .I logout
  921. command causes a login shell to exit.
  922. Normally, a login shell will exit when you hit control-d
  923. generating an 
  924. .I end\f1-\fPof\f1-\fPfile, 
  925. but if you have set
  926. .I ignoreeof
  927. in you
  928. .I \&.login
  929. file then this will not work and you must use
  930. .I logout
  931. to log off the \s-2UNIX\s0 system (2.8).
  932. .IP \&.logout
  933. When you log off of \s-2UNIX\s0 the shell will execute commands from
  934. the file
  935. .I \&.logout
  936. in your
  937. .I home
  938. directory after it prints `logout'.
  939. .IP lpr
  940. The command
  941. .I lpr
  942. is the line printer daemon.
  943. The standard input of
  944. .I lpr
  945. spooled and printed on the \s-2UNIX\s0 line printer.
  946. You can also give
  947. .I lpr
  948. a list of filenames as arguments to be printed.
  949. It is most common to use
  950. .I lpr
  951. as the last component of a
  952. .I pipeline
  953. (2.3).
  954. .IP ls
  955. The
  956. .I ls
  957. (list files) command is one of the most commonly used \s-2UNIX\s0
  958. commands.
  959. With no argument filenames it prints the names of the files in the
  960. current directory.
  961. It has a number of useful
  962. .I flag
  963. arguments, and can also be given the names of directories
  964. as arguments, in which case it lists the names of the files in these
  965. directories (1.2).
  966. .IP mail
  967. The
  968. .I mail
  969. program is used to send and receive messages from other \s-2UNIX\s0
  970. users (1.1, 2.1), whether they are logged on or not.
  971. .IP make
  972. The
  973. .I make
  974. command is used to maintain one or more related files and to
  975. organize functions to be performed on these files. 
  976. In many ways
  977. .I make
  978. is easier to use, and more helpful than
  979. shell command scripts (3.2).
  980. .IP makefile
  981. The file containing commands for
  982. .I make
  983. is called
  984. .I makefile 
  985. or 
  986. .I Makefile
  987. (3.2).
  988. .IP manual
  989. The 
  990. .I manual 
  991. often referred to is the
  992. `\s-2UNIX\s0 manual'.
  993. It contains 8 numbered sections with a description of each \s-2UNIX\s0
  994. program (section 1), system call (section 2), subroutine (section 3),
  995. device (section 4), special data structure (section 5), game (section 6),
  996. miscellaneous item (section 7) and system administration program (section 8).
  997. There are also supplementary documents (tutorials and reference guides)
  998. for individual programs which require explanation in more detail.
  999. An online version of the 
  1000. .I manual 
  1001. is accessible through the
  1002. .I man
  1003. command.
  1004. Its documentation can be obtained online via
  1005. .DS
  1006. man man
  1007. .DE
  1008. If you can't decide what manual page to look in, try the 
  1009. .I apropos (1)
  1010. command.
  1011. The supplementary documents are in subdirectories of /usr/doc.
  1012. .IP metacharacter
  1013. .br
  1014. Many characters which are neither letters nor digits have special meaning
  1015. either to the shell or to \s-2UNIX\s0.
  1016. These characters are called
  1017. .I metacharacters .
  1018. If it is necessary to place these characters in arguments to commands
  1019. without them having their special meaning then they must be
  1020. .I quoted .
  1021. An example of a 
  1022. .I metacharacter 
  1023. is the character `>' which is used
  1024. to indicate placement of output into a file.
  1025. For the purposes of the
  1026. .I history
  1027. mechanism,
  1028. most unquoted 
  1029. .I metacharacters
  1030. form separate words (1.4).
  1031. The appendix to this user's manual lists the 
  1032. .I metacharacters
  1033. in groups by their function.
  1034. .IP mkdir
  1035. The
  1036. .I mkdir
  1037. command is used to create a new directory.
  1038. .IP modifier
  1039. Substitutions with the 
  1040. .I history 
  1041. mechanism, keyed by the character `!'
  1042. or of variables using the metacharacter `$', are often subjected
  1043. to modifications, indicated by placing the character `:' after the
  1044. substitution and following this with the 
  1045. .I modifier 
  1046. itself.
  1047. The
  1048. .I "command substitution"
  1049. mechanism can also be used to perform modification in a similar way,
  1050. but this notation is less clear (3.6).
  1051. .IP more
  1052. The program
  1053. .I more
  1054. writes a file on your terminal allowing you to control how much text
  1055. is displayed at a time.
  1056. .I More
  1057. can move through the file screenful by screenful, line by line,
  1058. search forward for a string, or start again at the beginning of the file.
  1059. It is generally the easiest way of viewing a file (1.8).
  1060. .IP noclobber
  1061. The shell has a variable
  1062. .I noclobber
  1063. which may be set in the file
  1064. .I \&.login
  1065. to prevent accidental destruction of files by the `>' output redirection
  1066. metasyntax of the shell (2.2, 2.5).
  1067. .IP noglob
  1068. The shell variable
  1069. .I noglob
  1070. is set to suppress the
  1071. .I "filename expansion"
  1072. of arguments containing the metacharacters `~', `*', `?', `[' and `]' (3.6).
  1073. .IP notify
  1074. The
  1075. .I notify
  1076. command tells the shell to report on the termination of a specific
  1077. .I "background job"
  1078. at the exact time it occurs as opposed to waiting
  1079. until just before the next prompt to report the termination.
  1080. The
  1081. .I notify
  1082. variable, if set, causes the shell to always report the termination
  1083. of
  1084. .I background 
  1085. jobs exactly when they occur (2.6).
  1086. .IP onintr
  1087. The
  1088. .I onintr
  1089. command is built into the shell and is used to control the action
  1090. of a shell command script when an 
  1091. .I interrupt 
  1092. signal is received (3.9).
  1093. .IP output
  1094. Many commands in \s-2UNIX\s0 result in some lines of text which are
  1095. called their
  1096. .I output.
  1097. This 
  1098. .I output 
  1099. is usually placed on what is known as the
  1100. .I "standard output"
  1101. which is normally connected to the user's terminal.
  1102. The shell has a syntax using the metacharacter `>' for redirecting
  1103. the 
  1104. .I "standard output" 
  1105. of a command to a file (1.3).
  1106. Using the
  1107. .I pipe
  1108. mechanism and the metacharacter `|' it is also possible for
  1109. the 
  1110. .I "standard output" 
  1111. of one command to become the 
  1112. .I "standard input" 
  1113. of another command (1.5).
  1114. Certain commands such as the line printer daemon
  1115. .I p
  1116. do not place their results on the 
  1117. .I "standard output" 
  1118. but rather in more
  1119. useful places such as on the line printer (2.3).
  1120. Similarly the
  1121. .I write
  1122. command places its output on another user's terminal rather than its
  1123. .I "standard output" 
  1124. (2.3).
  1125. Commands also have a
  1126. .I "diagnostic output"
  1127. where they write their error messages.
  1128. Normally these go to the terminal even if the 
  1129. .I "standard output" 
  1130. has been sent to a file or another command, but it is possible
  1131. to direct error diagnostics along with 
  1132. .I "standard output" 
  1133. using a special metanotation (2.5).
  1134. .IP path
  1135. The shell has a variable
  1136. .I path
  1137. which gives the names of the directories in which it searches for
  1138. the commands which it is given.
  1139. It always checks first to see if the command it is given is
  1140. built into the shell.
  1141. If it is, then it need not search for the command as it can do it internally.
  1142. If the command is not builtin, then the shell searches for a file
  1143. with the name given in each of the directories in the
  1144. .I path
  1145. variable, left to right.
  1146. Since the normal definition of the
  1147. .I path
  1148. variable is
  1149. .DS
  1150. path    (. /usr/ucb /bin /usr/bin)
  1151. .DE
  1152. the shell normally looks in the current directory, and then in
  1153. the standard system directories `/usr/ucb', `/bin' and `/usr/bin' for the named
  1154. command (2.2).
  1155. If the command cannot be found the shell will print an error diagnostic.
  1156. Scripts of shell commands will be executed using another shell to interpret
  1157. them if they have `execute' permission set.
  1158. This is normally true because a command of the form
  1159. .DS
  1160. chmod 755 script
  1161. .DE
  1162. was executed to turn this execute permission on (3.3).
  1163. If you add new commands to a directory in the 
  1164. .I path , 
  1165. you should issue
  1166. the command 
  1167. .I rehash 
  1168. (2.2).
  1169. .IP pathname
  1170. A list of names, separated by `/' characters, forms a
  1171. .I pathname.
  1172. Each
  1173. .I component,
  1174. between successive `/' characters, names a directory
  1175. in which the next 
  1176. .I component 
  1177. file resides.
  1178. .I Pathnames 
  1179. which begin with the character `/' are interpreted relative
  1180. to the
  1181. .I root
  1182. directory in the filesystem.
  1183. Other 
  1184. .I pathnames 
  1185. are interpreted relative to the current directory
  1186. as reported by
  1187. .I pwd.
  1188. The last component of a 
  1189. .I pathname 
  1190. may name a directory, but
  1191. usually names a file.
  1192. .IP pipeline
  1193. A group of commands which are connected together, the 
  1194. .I "standard output"
  1195. of each connected to the 
  1196. .I "standard input" 
  1197. of the next,
  1198. is called a
  1199. .I pipeline.
  1200. The
  1201. .I pipe
  1202. mechanism used to connect these commands is indicated by
  1203. the shell metacharacter `|' (1.5, 2.3).
  1204. .IP popd
  1205. The
  1206. .I popd
  1207. command changes the shell's
  1208. .I "working directory"
  1209. to the directory you most recently left using the
  1210. .I pushd
  1211. command.  It returns to the directory without having to type its name,
  1212. forgetting the name of the current
  1213. .I "working directory"
  1214. before doing so (2.7).
  1215. .IP port
  1216. The part of a computer system to which each terminal is
  1217. connected is called a
  1218. .I port .
  1219. Usually the system has a fixed number of
  1220. .I ports ,
  1221. some of which are connected to telephone lines
  1222. for dial-up access, and some of which are permanently
  1223. wired directly to specific terminals.
  1224. .IP pr
  1225. The
  1226. .I pr
  1227. command is used to prepare listings of the contents of files
  1228. with headers giving the name of the file and the date and
  1229. time at which the file was last modified (2.3).
  1230. .IP printenv
  1231. The
  1232. .I printenv
  1233. command is used
  1234. to print the current setting of variables in the environment
  1235. (2.8).
  1236. .IP process
  1237. An instance of a running program is called a 
  1238. .I process 
  1239. (2.6).
  1240. \s-2UNIX\s0 assigns each 
  1241. .I process 
  1242. a unique number when it is 
  1243. started \- called the
  1244. .I "process number" .
  1245. .I "Process numbers" 
  1246. can be used to stop individual 
  1247. .I processes
  1248. using the 
  1249. .I kill
  1250. or
  1251. .I stop
  1252. commands when the
  1253. .I processes
  1254. are part of a detached
  1255. .I background
  1256. job.
  1257. .IP program
  1258. Usually synonymous with
  1259. .I command ;
  1260. a binary file or shell command script
  1261. which performs a useful function is often
  1262. called a 
  1263. .I program .
  1264. .IP prompt
  1265. Many programs will print a 
  1266. .I prompt 
  1267. on the terminal when they expect input.
  1268. Thus the editor
  1269. `ex (1)' will print a `:' when it expects input.
  1270. The shell 
  1271. .I prompts
  1272. for input with `% ' and occasionally with `? ' when
  1273. reading commands from the terminal (1.1).
  1274. The shell has a variable
  1275. .I prompt
  1276. which may be set to a different value to change the shell's main 
  1277. .I prompt .
  1278. This is mostly used when debugging the shell (2.8).
  1279. .IP pushd
  1280. The
  1281. .I pushd
  1282. command, which means `push directory', changes the shell's
  1283. .I "working directory"
  1284. and also remembers the current
  1285. .I "working directory"
  1286. before the change is made, allowing you to return to the same
  1287. directory via the
  1288. .I popd
  1289. command later without retyping its name (2.7).
  1290. .IP ps
  1291. The
  1292. .I ps
  1293. command is used to show the processes you are currently running.
  1294. Each process is shown with its unique process number,
  1295. an indication of the terminal name it is attached to,
  1296. an indication of the state of the process (whether it is running,
  1297. stopped, awaiting some event (sleeping), and whether it is swapped out),
  1298. and the amount of \s-2CPU\s0 time it has used so far.
  1299. The command is identified by printing some of the words used
  1300. when it was invoked (2.6).
  1301. Shells, such as the
  1302. .I csh
  1303. you use to run the 
  1304. .I ps 
  1305. command, are not normally shown in the output.
  1306. .IP pwd
  1307. The
  1308. .I pwd
  1309. command prints the full 
  1310. .I pathname 
  1311. of the current
  1312. .I "working directory" \&.
  1313. The
  1314. .I dirs
  1315. builtin command is usually a better and faster choice.
  1316. .IP quit
  1317. The
  1318. .I quit
  1319. signal, generated by a control-\e,
  1320. is used to terminate programs which are behaving unreasonably.
  1321. It normally produces a core image file (1.8).
  1322. .IP quotation
  1323. The process by which metacharacters are prevented their special
  1324. meaning, usually by using the character `\' in pairs, or by
  1325. using the character `\e', is referred to as
  1326. .I quotation
  1327. (1.7).
  1328. .IP redirection
  1329. The routing of input or output from or to a file is known
  1330. as
  1331. .I redirection
  1332. of input or output (1.3).
  1333. .IP rehash
  1334. The
  1335. .I rehash
  1336. command tells the shell to rebuild its internal table of which commands
  1337. are found in which directories in your
  1338. .I path .
  1339. This is necessary when a new program is installed in one of these
  1340. directories (2.8).
  1341. .IP "relative pathname"
  1342. .br
  1343. A
  1344. .I pathname
  1345. which does not begin with a `/' is called a
  1346. .I "relative pathname"
  1347. since it is interpreted
  1348. .I relative
  1349. to the current 
  1350. .I "working directory" .
  1351. The first
  1352. .I component
  1353. of such a
  1354. .I pathname
  1355. refers to some file or directory in the
  1356. .I "working directory" ,
  1357. and subsequent
  1358. .I components
  1359. between `/' characters refer to directories below the
  1360. .I "working directory" .
  1361. .I Pathnames
  1362. that are not
  1363. .I relative
  1364. are called
  1365. .I "absolute pathnames"
  1366. (1.6).
  1367. .IP repeat
  1368. The
  1369. .I repeat
  1370. command iterates another command a specified number of times.
  1371. .IP root
  1372. The directory
  1373. that is at the top of the entire directory structure is called the
  1374. .I root
  1375. directory since it is the `root' of the entire tree structure of
  1376. directories.  The name used in
  1377. .I pathnames
  1378. to indicate the
  1379. .I root
  1380. is `/'.  
  1381. .I Pathnames 
  1382. starting with `/' are said to be
  1383. .I absolute
  1384. since they start at the
  1385. .I root
  1386. directory.
  1387. .I Root
  1388. is also used as the part of a 
  1389. .I pathname 
  1390. that is left after removing
  1391. the 
  1392. .I extension .
  1393. See
  1394. .I filename
  1395. for a further explanation (1.6).
  1396. .IP \s-2RUBOUT\s0
  1397. The \s-2RUBOUT\s0 or \s-2DELETE\s0
  1398. key is often used to erase the previously typed character; some users
  1399. prefer the \s-2BACKSPACE\s0 for this purpose.  On older versions of \s-2UNIX\s0
  1400. this key served as the \s-2INTR\s0 character.
  1401. .IP "scratch file"
  1402. Files whose names begin with a `#' are referred to as 
  1403. .I "scratch files" ,
  1404. since they are automatically removed by the system after a couple of
  1405. days of non-use, or more frequently if disk space becomes tight (1.3).
  1406. .IP script
  1407. Sequences of shell commands placed in a file are called shell command 
  1408. .I scripts .
  1409. It is often possible to perform simple tasks using these 
  1410. .I scripts 
  1411. without writing a program in a language such as C, by
  1412. using the shell to selectively run other programs (3.3, 3.10).
  1413. .IP set
  1414. The builtin
  1415. .I set
  1416. command is used to assign new values to shell variables
  1417. and to show the values of the current variables.
  1418. Many shell variables have special meaning to the shell itself.
  1419. Thus by using the 
  1420. .I set 
  1421. command the behavior of the shell can be affected (2.1).
  1422. .IP setenv
  1423. Variables in the environment `environ (5)'
  1424. can be changed by using the
  1425. .I setenv
  1426. builtin command (2.8).
  1427. The
  1428. .I printenv
  1429. command can be used to print the value of the variables in the environment.
  1430. .IP shell
  1431. .I shell 
  1432. is a command language interpreter.
  1433. It is possible to write and run your own 
  1434. .I shell ,
  1435. as 
  1436. .I shells 
  1437. are no different than any other programs as far as the
  1438. system is concerned.
  1439. This manual deals with the details of one particular 
  1440. .I shell ,
  1441. called
  1442. .I csh.
  1443. .IP "shell script"
  1444. See
  1445. .I script
  1446. (3.3, 3.10).
  1447. .IP signal
  1448. A
  1449. .I signal
  1450. in \s-2UNIX\s0 is a short message that is sent to a running program
  1451. which causes something to happen to that process.
  1452. .I Signals
  1453. are sent either by typing special
  1454. .I control
  1455. characters on the keyboard or by using the
  1456. .I kill
  1457. or
  1458. .I stop
  1459. commands (1.8, 2.6).
  1460. .IP sort
  1461. The
  1462. .I sort
  1463. program sorts a sequence of lines in ways that can be controlled
  1464. by argument 
  1465. .I flags 
  1466. (1.5).
  1467. .IP source
  1468. The
  1469. .I source
  1470. command causes the shell to read commands from a specified file.
  1471. It is most useful for reading files such as
  1472. .I \&.cshrc
  1473. after changing them (2.8).
  1474. .IP "special character"
  1475. .br
  1476. See
  1477. .I metacharacters
  1478. and the
  1479. appendix to this manual.
  1480. .IP standard
  1481. We refer often to the
  1482. .I "standard input"
  1483. and
  1484. .I "standard output"
  1485. of commands.
  1486. See
  1487. .I input
  1488. and
  1489. .I output
  1490. (1.3, 3.8).
  1491. .IP status
  1492. A command normally returns a
  1493. .I status
  1494. when it finishes.
  1495. By convention a
  1496. .I status
  1497. of zero indicates that the command succeeded.
  1498. Commands may return non-zero 
  1499. .I status 
  1500. to indicate that some abnormal event has occurred.
  1501. The shell variable
  1502. .I status
  1503. is set to the 
  1504. .I status 
  1505. returned by the last command.
  1506. It is most useful in shell commmand scripts (3.6).
  1507. .IP stop
  1508. The
  1509. .I stop
  1510. command causes a
  1511. .I background 
  1512. job to become 
  1513. .I suspended 
  1514. (2.6).
  1515. .IP string
  1516. A sequential group of characters taken together is called a
  1517. .I string \&.
  1518. .I Strings
  1519. can contain any printable characters (2.2).
  1520. .IP stty
  1521. The
  1522. .I stty
  1523. program changes certain parameters inside \s-2UNIX\s0 which determine
  1524. how your terminal is handled.  See `stty (1)' for a complete description (2.6).
  1525. .IP substitution
  1526. The shell implements a number of
  1527. .I substitutions
  1528. where sequences indicated by metacharacters are replaced by other sequences.
  1529. Notable examples of this are history 
  1530. .I substitution 
  1531. keyed by the
  1532. metacharacter `!' and variable 
  1533. .I substitution 
  1534. indicated by `$'.
  1535. We also refer to 
  1536. .I substitutions 
  1537. as
  1538. .I expansions
  1539. (3.4).
  1540. .IP suspended
  1541. A job becomes
  1542. .I suspended
  1543. after a \s-2STOP\s0 signal is sent to it, either by typing a
  1544. .I control -z
  1545. at the terminal (for
  1546. .I foreground
  1547. jobs) or by using the
  1548. .I stop
  1549. command (for
  1550. .I background
  1551. jobs).  When
  1552. .I suspended ,
  1553. a job temporarily stops running until it is restarted by either the
  1554. .I fg
  1555. or
  1556. .I bg
  1557. command (2.6).
  1558. .IP switch
  1559. The
  1560. .I switch
  1561. command of the shell allows the shell
  1562. to select one of a number of sequences of commands based on an
  1563. argument string.
  1564. It is similar to the
  1565. .I switch
  1566. statement in the language C (3.7).
  1567. .IP termination
  1568. When a command which is being executed finishes we say it undergoes
  1569. .I termination
  1570. or
  1571. .I terminates.
  1572. Commands normally terminate when they read an 
  1573. .I end\f1-\fPof\f1-\fPfile
  1574. from their 
  1575. .I "standard input" .
  1576. It is also possible to terminate commands by sending them
  1577. an
  1578. .I interrupt
  1579. or
  1580. .I quit
  1581. signal (1.8).
  1582. The
  1583. .I kill
  1584. program terminates specified jobs (2.6).
  1585. .IP then
  1586. The
  1587. .I then
  1588. command is part of the shell's
  1589. `if-then-else-endif' control construct used in command scripts (3.6).
  1590. .IP time
  1591. The
  1592. .I time
  1593. command can be used to measure the amount of \s-2CPU\s0
  1594. and real time consumed by a specified command as well
  1595. as the amount of disk i/o, memory utilized, and number
  1596. of page faults and swaps taken by the command (2.1, 2.8).
  1597. .IP tset
  1598. The
  1599. .I tset
  1600. program is used to set standard erase and kill characters
  1601. and to tell the system what kind of terminal you are using.
  1602. It is often invoked in a
  1603. .I \&.login
  1604. file (2.1).
  1605. .IP tty
  1606. The word
  1607. .I tty
  1608. is a historical abbreviation for `teletype' which is frequently used
  1609. in \s-2UNIX\s0 to indicate the
  1610. .I port
  1611. to which a given terminal is connected.  The
  1612. .I tty
  1613. command will print the name of the
  1614. .I tty
  1615. or
  1616. .I port
  1617. to which your terminal is presently connected.
  1618. .IP unalias
  1619. The
  1620. .I unalias
  1621. command removes aliases (2.8).
  1622. .IP \s-2UNIX\s0
  1623. \s-2UNIX\s0 is an operating system on which
  1624. .I csh
  1625. runs.
  1626. \s-2UNIX\s0 provides facilities which allow
  1627. .I csh
  1628. to invoke other programs such as editors and text formatters which
  1629. you may wish to use.
  1630. .IP unset
  1631. The
  1632. .I unset
  1633. command removes the definitions of shell variables (2.2, 2.8).
  1634. .IP "variable expansion"
  1635. .br
  1636. See
  1637. .I variables
  1638. and
  1639. .I expansion
  1640. (2.2, 3.4).
  1641. .IP variables
  1642. .I Variables 
  1643. in
  1644. .I csh
  1645. hold one or more strings as value.
  1646. The most common use of 
  1647. .I variables 
  1648. is in controlling the behavior
  1649. of the shell.
  1650. See
  1651. .I path ,
  1652. .I noclobber ,
  1653. and
  1654. .I ignoreeof
  1655. for examples.
  1656. .I Variables 
  1657. such as
  1658. .I argv
  1659. are also used in writing shell programs (shell command scripts)
  1660. (2.2).
  1661. .IP verbose
  1662. The
  1663. .I verbose
  1664. shell variable can be set to cause commands to be echoed
  1665. after they are history expanded.
  1666. This is often useful in debugging shell scripts.
  1667. The
  1668. .I verbose
  1669. variable is set by the shell's
  1670. .I \-v
  1671. command line option (3.10).
  1672. .IP wc
  1673. The
  1674. .I wc
  1675. program calculates the number of characters, words, and lines in the
  1676. files whose names are given as arguments (2.6).
  1677. .IP while
  1678. The
  1679. .I while
  1680. builtin control construct is used in shell command scripts (3.7).
  1681. .IP word
  1682. A sequence of characters which forms an argument to a command is called
  1683. a
  1684. .I word .
  1685. Many characters which are neither letters, digits, `\-', `.' nor `/'
  1686. form 
  1687. .I words 
  1688. all by themselves even if they are not surrounded
  1689. by blanks.
  1690. Any sequence of characters may be made into a 
  1691. .I word 
  1692. by surrounding it
  1693. with `\'' characters
  1694. except for the characters `\'' and `!' which require special treatment
  1695. (1.1).
  1696. This process of placing special characters in 
  1697. .I words 
  1698. without their special meaning is called
  1699. .I quoting .
  1700. .IP "working directory"
  1701. .br
  1702. At any given time you are in one particular directory, called
  1703. your 
  1704. .I "working directory" .
  1705. This directory's name is printed by the
  1706. .I pwd
  1707. command and the files listed by
  1708. .I ls
  1709. are the ones in this directory.
  1710. You can change 
  1711. .I "working directories" 
  1712. using
  1713. .I chdir .
  1714. .IP write
  1715. The
  1716. .I write
  1717. command is an obsolete way of communicating with other users who are logged in to
  1718. \s-2UNIX\s0 (you have to take turns typing).  If you are both using display 
  1719. terminals, use \fItalk\fP(1), which is much more pleasant.
  1720.