|
|
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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.