unix commands. why unix commands are noninteractive command may take input from the output of...

11
UNIX Commands

Upload: alexandra-lee

Post on 02-Jan-2016

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific

UNIX Commands

Page 2: UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific

Why UNIX Commands Are Noninteractive

• Command may take input from the output of another command (filters).

• May be scheduled to run at specific times (at and cron).

• User input can also be provided through command line arguments.

• Command arguments need not be known in advance.

• Allows designing of applications that determine their own behavior by reading configuration files.

Page 3: UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific

Structure of a Command

e.g. ls -l -u -t chap01

• Command filenames need no specific extensions.

• A command’s behavior is determined by its arguments and options.

• Command and arguments must be separated by whitespace.

• Generally possible to combine multiple options into a single one (ls -l -u -t same as ls -lut)

• Order of combining usually not important (ls -lut same as ls -utl)

Page 4: UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific

Types of Commands

• External program on disk which could be:

• a binary executable (written in C, C++, …).

• a script file (like a shell or perl script).

•an alias defined by the user that invokes the disk command

• Internal builtin command of the shell (e.g. cd, pwd)

•The commands which, whereis, and type tell you what’s being run.

Page 5: UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific

How the Shell Determines the Command to Run

• If command is invoked with a pathname (like /bin/echo), the shell runs program at the specified location.

• If command is invoked without a pathname, the shell first checks whether it is an alias or builtin:

• If alias or builtin, the shell runs it without looking in disk.

• If not, the shell looks at the PATH variable for directories where the command may reside.

Page 6: UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific

The PATH• PATH is a shell variable (or environment variable) that specifies a list of directories to search. e.g. PATH=/bin:/usr/bin:.

• Shell looks at PATH only when command is not used with a pathname and is also not a shell builtin.

• Command can still be executed if not in PATH by• Using a pathname• Modifying PATH to include the directory containing the command.

• PATH can be modified in an absolute or relative manner: PATH=/usr/bin:. (Absolute) PATH=mybin:/usr/local/bin (Relative)

Page 7: UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific

Flexibility of Command Usage in UNIX• Run multiple commands by specifying them in the same line: date ; echo $PATH

• Split a command into multiple lines: $ echo “Hello > Dolly”

• Save command output in a file: date > foo

• Use output of one command as input of another: date | cut -d” “ -f2

• Run a command in the background with &: ls -lRa / > $HOME/ls-lRa.txt &

Page 8: UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific

Using the man Command

• Displays documentation of commands, configuration files, system calls and library functions.

• Organized into 8 sections. (1=user programs, 2=kernel system calls).

• May need to use section number when entry exists in multiple sections (e.g. man passwd and man -S 5 passwd).

• man documentation not available for most internal commands of the shell.

• Use man man first to know how man should be used.

Page 9: UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific

Understanding a man Page

Example: wc Syntax/Synopsis wc [ -c | -m | -C ] [ -lw ] [ file ... ]

• Most useful information available in SYNOPSIS and DESCRIPTION.

• When options grouped in [ ] without a |, one or more of them can be used. (-l, -w and -lw are valid.)

• The | signifies an OR condition. (Only one of -c, -m or -C can be used.)

• The ... means that multiple occurrences of the preceding item are possible. (wc can be used with multiple files.)

• EXIT STATUS indicates values returned on error.

Page 10: UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific

Useful (File-Related) UNIX Commands

• ls - list content of a directory• mv – move file to another location or name• cp - create a copy of a file• mkdir – create a new directory• rm – remove a file• rmdir – remove a directory

Page 11: UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific

Some Additional Useful UNIX Commands• who - list who is on system• mailx – send/ receive mail• echo, printf – display a message• date – get date and time• man – display documentation with a pager program• uname – display machine name and OS• passwd - change password• script - log all interaction in a file• clear - clear the screen• tty – get terminal id• stty – set terminal options• exit – terminate session