Programming with the UNIX system shell

The vocabulary of shell command language

The following sections list metacharacters, special characters, input and output redirection, variables, and process control.

Special characters in the shell

* ? [ ]
Metacharacters; used to provide a shortcut to referencing filenames, through pattern matching.

Executes commands in the background mode.

Sequentially executes several commands typed on one line, each pair separated by ;.

Turns off the meaning of the immediately following special character.

Enclosing single quotes turn off the special meaning of all characters except single quotes.

Enclosing double quotes turn off the special meaning of all characters except $, single quotes, and double quotes.

Redirecting input and output

Redirects the contents of a file into a command.

Redirects the output of a command into a new file, or replaces the contents of an existing file with the output.

Redirects the output of a command so that it is appended to the end of a file.

Directs the output of one command so that it becomes the input of the next command.

Substitutes the output of the enclosed command in place of `command`.

Executing and terminating processes

Submits the following commands to be processed at a time when the system load is at an acceptable level. <CTRL-d> ends the batch command.

Submits the following commands to be executed at a specified time. <CTRL-d> ends the at command.

at -l
Reports which jobs are currently in the at or batch queue.

at -r
Removes the at or batch job from the queue.

Reports the status of the shell processes.

kill PID
Terminates the shell process with the specified process ID (PID).

nohup command list &

Continues background processes after logging out.

Making a file accessible to the shell

chmod u+x filename

Gives the user permission to execute the file (useful for shell program files).

mv filename $HOME/bin/filename

Moves your file to the bin directory in your home directory. This bin holds executable shell programs that you want to be accessible. Make sure the PATH variable in your .profile file specifies this bin. If it does, the shell will search in $HOME/bin for your file when you try to execute it. If your PATH variable does not include your bin, the shell will not know where to find your file and your attempt to execute it will fail.

The name of a file that contains a shell program becomes the command that you type to run that shell program.


positional parameter

A numbered variable used within a shell program to reference values automatically assigned by the shell from the arguments of the command line invoking the shell program.

A command used to print the value of a variable on your terminal.

A special parameter that contains the number of arguments with which the shell program has been executed.

A special parameter that contains the values of all arguments with which the shell program has been executed.

named variable

A variable to which the user can give a name and assign values.

Variables used in the system

Denotes your home directory; the default variable for the cd command.

Defines the path your login shell follows to find commands.

Gives the name of the file containing your electronic mail.

PS1, PS2
Defines the primary and secondary prompt strings, respectively.

Defines the type of terminal.

Login name of the user.

Defines the internal field separators (normally the space, the tab, and the carriage return).

Allows you to request that the curses and terminfo subroutines search a specified directory tree before searching the default directory for your terminal type.

Sets and maintains the local time zone.

Next topic: Shell programming constructs
Previous topic: Summary of shell command language

© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 27 April 2004