This subsection describes the many symbols peculiar to the C shell. The topics are arranged as follows:
Special files
Filename metacharacters
Quoting
Command forms
Redirection forms
| ~/.cshrc | Executed at each instance of shell. | 
| ~/.history | History list saved from previous login. | 
| ~/.login | Executed by login shell after .cshrc at login. | 
| ~/.logout | Executed by login shell at logout. | 
| /etc/passwd | Source of home directories for ~ nameabbreviations. | 
| * | Match any string of zero or more characters. | 
| ? | Match any single character. | 
| [ abc...] | Match any one of the enclosed characters; a hyphen can be used to specify a range (e.g., a-z, A-Z, 0-9). | 
| { abc,xxx,...} | Expand each comma-separated string inside braces. | 
| ~ | Home directory for the current user. | 
| ~ name | Home directory of user name. | 
%ls new*Match new and new.1. %cat ch?Match ch9 but not ch10. %vi [D-R]*Match files that begin with uppercase D through R. %ls {ch,app}?Expand, then match ch1, ch2, app1, app2. %cd ~tomChange totom's home directory.
Quoting disables a character's special meaning and allows it to be used literally, as itself. The following characters have special meaning to the C shell:
| ; | Command separator. | 
| & | Background execution. | 
| ( ) | Command grouping. | 
| | | Pipe. | 
| * ? [ ] ~ | Filename metacharacters. | 
| { } | String expansion characters. Usually don't require quoting. | 
| > < & ! | Redirection symbols. | 
| ! ^ | History substitution, quick substitution. | 
| " ' \ | Used in quoting other characters. | 
| ` | Command substitution. | 
| $ | Variable substitution. | 
| newline space tab | Word separators. | 
The characters below can be used for quoting:
| " " | Everything between  | 
$Variable substitution will occur.
`Command substitution will occur.
"This marks the end of the double quote.
\Escape next character.
!The history character.
| ' ' | Everything between  | 
| \ | The character following a \ is taken literally. Use within " " to escape ", $, and `. Often used to escape itself, spaces, or newlines. Always needed to escape a history character (usually !). | 
%echo 'Single quotes "protect" double quotes'Single quotes "protect" double quotes %echo "Well, isn't that \"special\"?"Well, isn't that "special"? %echo "You have `ls|wc -l` files in `pwd`"You have 43 files in /home/bob %echo "The value of \$x is $x"The value of $x is 100
| cmd& | Execute cmdin background. | 
| cmd1;cmd2 | Command sequence; execute multiple cmds on the same line. | 
| ( cmd1;cmd2) | Subshell; treat cmd1andcmd2as a command group. | 
| cmd1|cmd2 | Pipe; use output from cmd1as input tocmd2. | 
| cmd1`cmd2` | Command substitution; use cmd2output as arguments tocmd1. | 
| cmd1&&cmd2 | AND; execute cmd1and then (ifcmd1succeeds)cmd2. | 
| cmd1||cmd2 | OR; execute either cmd1or (ifcmd1fails)cmd2. | 
%nroff file &Format in the background. %cd; lsExecute sequentially. %(date; who; pwd) > logfileAll output is redirected. %sort file | pr -3 | lpSort file, page output, then print. %vi `grep -l ifdef *.c`Edit files found by grep. %egrep '(yes|no)' `cat list`Specify a list of files to search. %grep XX file && lp filePrint file if it contains the pattern, %grep XX file || echo XX not foundotherwise, echo an error message.
| File | Common | Typical | |
|---|---|---|---|
| Descriptor | Name | Abbreviation | Default | 
| 0 | Standard Input | stdin | Keyboard | 
| 1 | Standard Output | stdout | Terminal | 
| 2 | Standard Error | stderr | Terminal | 
The usual input source or output destination can be changed as follows:
| cmd>file | Send output of cmdtofile(overwrite). | 
| cmd>!file | Same as above, even if noclobber is set. | 
| cmd>>file | Send output of cmdtofile(append). | 
| cmd>>!file | Same as above, but create fileeven if noclobber is set. | 
| cmd<file | Take input for cmdfromfile. | 
| cmd<<text | Read standard input up to a line identical to
 | 
| cmd>&file | Send both standard output and standard error to file. | 
| cmd>&!file | Same as above, even if noclobber is set. | 
| cmd>>&file | Append standard output and standard error to end of file. | 
| cmd>>&!file | Same as above, but create fileeven if noclobber is set. | 
| cmd1|&cmd2 | Pipe standard error together with standard output. | 
| ( cmd>f1) >&f2 | Send standard output to file f1; standard error to filef2. | 
| cmd| teefiles | Send output of  | 
%cat part1 > book%cat part2 part3 >> book%mail tim < report%cc calc.c >& error_out%cc newcalc.c >&! error_out%grep UNIX ch* |& pr%(find / -print > filelist) >& no_access%sed 's/^/XX /g' << "END_ARCHIVE"This is often how a shell archive is "wrapped",bundling text for distribution. You would normallyrun sed from a shell program, not from the command line."END_ARCHIVE"XX This is often how a shell archive is "wrapped", XX bundling text for distribution. You would normally XX run sed from a shell program, not from the command line.
| This HTML Help has been published using the chm2web software. |