[MUSIC] Now we can talk about some shell commands that are the same for everyone wants your logged on to a shell. The COS Unix shell is above all a programmer's interface. The shell has many general tools that can help any programmer. In addition, there are several commands designed especially for the C programmer. Shell commands are entered on the command line. Shell command options are usually specified by a minus sign followed by a single character. So for example, ls minus l. Some commands except options that have accompanying arguments, for example, ls minus l slash user slash lib. The argument may be a number, a string, a file name, or something else. A shell command can be interrupted and stopped by typing escape character. And see entering a command with minus question mark, or entering incorrectly results in the command syntax being displayed. Once a shell command begins running, it has access to the following three files. Standard input with a file descriptor or identity of 0, standard output file descriptor of 1, and standard error with the file descriptor of 2. A shell user can redirect the input, output, and error files to redirect an output to a file, enter greater than file name at the end of a command. For example, sought minus you file one greater than out file. If the file does not exist, it will be created. And if it does exist, the output rights over any information in the file unless greater than, greater than far name is specified to upend the output to the existing file. The shell commands are a powerful tool for the shell user, because multiple commands can be combined on a single command line. To run a series of commands one after another, use a semicolon, or use double ampersand, and double vertical bar. When stringing multiple commands together these characters can be used to control whether or not the second command should be run. If the command proceeds ampersand, ampersand then it completes successfully the second command is run. If the command that proceeds double pipe fails, the command following, double pipe is run. You can also run more than one command concurrently by using a pipe between the commands. Now, the idea of a pipeline is that the output from one command is piped in as input to the next command. Many shell commands are well suited to be used in a pipeline. When a command is entered in the shell, another command cannot be entered until the shell prompt appears. The job runs as a foreground job. Shell commands that take a long time to complete can be run in the background. The shell does not wait for a job running in the background to complete before presenting a prompt, because you know, it's running in the background. When a shell command is entered, a new process is started, the shell runs the command in its own process group. It's considered a separate job, and the shell assigns it job identifier. The job identifier is a number known only to the shell. The system assigns the process a process group iidentifier, or PGID, and a process identifier, PID. When only one commanders entered the PGID is the same as the PID. When multiple commands are introducing a pipe, several processes with their own PID will be started. All these processes have the same PGID and shell job number. To check the status of shell commands, the commands jobs or ps can be used. The jobs command displays the status of currently running background jobs. And the ps command displays the status of currently running processes. A foreground job can be cancelled by entering a state character plus C. A background job is cancelled by using the kill or super kill command to stop a foreground job into escape character. And z to stop a background job use the kill command with this stop option. And a job can be delayed from running until another background job has completed by using the wait command. The submit command sends a batch job to the primary job entry subsystem or JES for processing. The filename argument can either be a unix path name, dataset, or input from standard input. If the submit command is successful, the job idea of the submitted job and the filename are displayed as part of the output written to standard output, unless modified by the -j option. The JCL must have a job card, if a job card is not present, then the submit command will fail. Tsocmd allows you to run a TSO/E command from the shell, invoking authorized the TSO/E commands invoke it from a shell, script or prompt. It's best that the TSO/E command and its parameters be enclosed in quotes to avoid shell passing. The COS Unix shell uses environment variables to define characteristics of the shell environment. These variables can be modified to a specific installations or user's needs. Using environment variables provides a flexible method for customizing the shell. The system initiates the shell for the user after the user enters that command to log into the shell. During the initialization, the system sets environment variables for the user log name, home, and shell from information in the rack if user profile. Logname is the user idea remote systems used when diving into your system. Home is a variable for the path name of users working directory. And shell identifies the shell to be invoked. Environment variables can be defined in the rock of piece of profile, the slash etc slash profile. This dollar home slash dot profile file, and the filename named in the a and b environment variable. In a shell command or a shell script, the sea Shell with all its commands and tools, provides a real program interface. It's specifically designed to have a syntax similar to the C programming language. The comparison between the standard and the C shell shows which files are related, and which have to be customized from the system programmers point of view. Okay, that's a wrap on the COS Unix shell and utilities. You can now escape character and Z out of this process. But before you go, let me share a little bit of good news. The next set of modules, I've invited some guest speakers to give you a break from me, so enjoy them. [MUSIC]