Annotation of 43BSDReno/share/doc/usd/04.csh/csh.g, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.