basic unix - drexel cciumpeysak/classes/cs451/pdf/introunix.pdf · unix history and motivation the...

20
1 Lecture 1: Introduction, Basic UNIX Advanced Programming Techniques Summer 2003 Instructor Vera Zaychik Office hours: by appointment. Generally, within an hour before and after class. [email protected] - preferred method of communication Course Overview Grab-bag of tools and techniques to succeed in higher level classes: Basic Unix C++ development in Unix: gcc, make, gdb, cvs, prof, etc. Shell scripting Java Perl and regular expressions Books Arnold Robbins, UNIX in a Nutshell, O’Reilly, 1999, ISBN 1565924274. Brian W. Kernighan and Rob Pike, The Practice of Programming, Addison-Welsey, 1999, ISBN 020161586X. Patrick Niemeyer and Jonathan Knudsen, Learning Java, O'Reilly, 2002, ISBN 0596002858. Randal L. Schwartz and Tom Phoenix, Learning Perl, OReilly, 2001, ISBN 0596001320. Course Layout Week 1-4: Unix, tools for development, shell scripting Week 5-7: Java Week 8-10: Perl Midterm week 5 6 homework assignments 8 labs Grading Assignments 30% Midterm exam 15% Final exam 20% Labs, quizzes, class participation 20% Final project 15%

Upload: others

Post on 05-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

1

Lecture 1: Introduction,Basic UNIX

Advanced Programming TechniquesSummer 2003

Instructor

Vera ZaychikOffice hours: by appointment.

Generally, within an hour before and after [email protected] - preferred

method of communication

Course Overview

Grab-bag of tools and techniques to succeed in higher level classes:

Basic Unix

C++ development in Unix: gcc, make, gdb, cvs, prof, etc.Shell scripting

JavaPerl and regular expressions

Books

Arnold Robbins, UNIX in a Nutshell, O’Reilly, 1999, ISBN 1565924274.Brian W. Kernighan and Rob Pike, The Practice of Programming, Addison-Welsey, 1999, ISBN 020161586X.Patrick Niemeyer and Jonathan Knudsen, Learning Java, O'Reilly, 2002, ISBN 0596002858.Randal L. Schwartz and Tom Phoenix, Learning Perl, O’Reilly, 2001, ISBN 0596001320.

Course Layout

Week 1-4: Unix, tools for development, shell scripting

Week 5-7: JavaWeek 8-10: Perl

Midterm – week 56 homework assignments8 labs

Grading

Assignments – 30%Midterm exam – 15%Final exam – 20%Labs, quizzes, class participation –

20%Final project – 15%

Page 2: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

2

Attendance

Not requiredLabs due by 10pm on the day of the

classSeveral pop quizzesIf you come to class to sleep, talk, or

chat, don’t come at all

Class website

All information about the course is located on WebCTaccess through http://one.drexel.edu

or http://webct.drexel.eduContains syllabus, calendar,

announcements, homework assignments, labs, grades, etc.

Cell phones

Turn cell phones off or switch to silent mode during classIf a cell phone rings during class, one

optional/extra credit assignment becomes required

Academic Integrity

All the programming assignments and homeworks that are handed in for grading should be done individuallyYou are free to discuss assignments

with me or your fellow classmatesViolations of Drexel academic integrity

policy will be penalized

Operating Systems

An Operating System controls (manages) hardware and software.

provides support for peripherals such as keyboard, mouse, screen, disk drives, …software applications use the OS to communicate with peripherals.The OS typically manages (starts, stops, pauses, etc) applications.

Single vs. Multitasking

Some old operating systems could only do one thing at a time (DOS).

Most modern systems can support multiple applications (tasks) and some can support multiple users (at the same time).Supporting multiple tasks/users means the OS must manage memory, CPU time, network interfaces, ...

Page 3: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

3

User Interfaces

The User Interface is the software that supports interactions with a human.

Some operating systems directly provide a user interface and some don't.Windows is an example of an Operating System that includes a user interface.

Unix (the OS) does not directly provide a user interface.

Unix and Users

Most flavors of Unix (there are many) provide the same set of applications to support humans (commands and shells).

Although these user interface programs are not part of the OS directly, they are standardized enough that learning your way around one flavor of Unix is enough.

Flavors of Unix

There are many versions of Unix that are used by lots of people:

SysV (from AT&T)BSD (from Berkeley)Solaris (Sun)IRIX (SGI)AIX (IBM)LINUX (free software)

Unix History and Motivation

The first version of Unix came from AT&T in the early 1970s (Unix is old!).Unix was developed by programmers and for programmers.Unix is designed so that users can extend the functionality - to build new tools easily and efficiently (this is important for programmers).

Some Basic Concepts

Unix provides a simple interface to peripherals (it's pretty easy to add support for a new peripheral).Unix includes a basic set of commands that allow the user to view/change the system resources (filesystem, processes, peripherals, etc.).

The power of Unix

Open source, portabilityYou can extend the basic functionality

of Unix:customize the shell and user interface. string together a series of Unix commands to create new functionality.create custom commands that do exactly what we want.

Page 4: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

4

Structure of the UNIX system

Applications

Shell

\Kernel (OS)

Hardware

There are many standard applications:

• file system commands

• text editors

• compilers

• text processing

Kernel

Interacts directly with the hardware through device driversProvides sets of services to programs,

insulating these programs from the underlying hardwareManages memory, controls access, maintains

file system, handles interrupts, allocates resources of the computerPrograms interact with the kernel through

system calls

Shell as a user interface

A shell is a command interpreter that turns text that you type (at the command line) into actions:

runs a program, perhaps the ls program.

allows you to edit a command line.can establish alternative sources of input and destinations for output for programs.

Logging In

To log in to a Unix machine you can either:sit at the console (the computer itself)access via the net (using telnet, rsh, ssh, kermit, or some other remote access client).

The system prompts you for your username and password.Usernames and passwords are case sensitive!

Username

(typically) a sequence of alphanumeric characters of length no more than 8.the primary identifying attribute of your account.(usually) used as an email addressthe name of your home directory is usually related to your username.

Password

a password is a secret string that only the user knows (not even the system knows!)

When you enter your password the system encrypts it and compares to a stored string.passwords are (usually) no more than 8 characters long.

It's a good idea to include numbers and/or special characters (don't use an English word!)

Page 5: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

5

Unix Groups and groupid

Unix includes the notion of a "group" of users.A Unix group can share files and active processes.

Each account is assigned a "primary" group.The groupid is a number that corresponds to this primary group.A single account can belong to many groups (but has only one primary group).

Home Directory

A home directory is a place in the file system where the account files are stored.Many unix commands and applications

make use of the account home directory (as a place to look for customization files).

Session Startup

Once you log in, your shell will be started and it will display a prompt.When the shell is started it looks in your home directory for some customization files.

You can change the shell prompt, your PATH, and a bunch of other things by creating customization files.

Changing your password

passwd commandPrompts for old (current) password

Then new passwordVerify new password

Incorrect login

You will receive the “Password:” prompt even if you type an incorrect or nonexistent login nameCan you guess why?

System prompt

Usually $

Indicates that the system is ready for another commandCan change appearance by setting an

environment variable PS1 (stands for prompt string)

Page 6: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

6

Interacting with the Shell

The shell prints a prompt and waits for you to type in a command.The shell can deal with a couple of types of commands:

shell internals - commands that the shell handles directly.External programs - the shell runs a program for you.

Command Options and Arguments

standardized command syntax (applies to most commands):

command option(s) arguments

options modify the way in which a command works, often single letters prefixed with a dash (can be sometimes combined after a single dash

Getting help

You can get more information about commands by using man command:

$ man <topic name>

If you don’t quite remember the name of the command, you can use apropos command:

$ apropos <topic name>

Some simple commands

date – print current datewho – print who is currently logged infinger – more information about

userstalk – terminal-to-terminal

communication

mail

You get notified when new email arrivesTo read mail use mail command:

? as promptd deletes the message, s saves, p displays again, ? prints all available commands

To send mail use mail email_address:Type body of the messageFinish by entering a line that contains only a single period (or CTRL-D)

Mail

Pine is easier to use

available on queencustomizable

Page 7: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

7

Logging off

exit command

Files and File Names

A file is a basic unit of storage (usually storage on a disk).Every file has a name.Unix file names can contain any characters (although some make it difficult to access the file) except the null character and the slash (/).Unix file names can be long!

how long depends on your specific flavor of Unix

File Contents

Each file can hold some raw data.Unix does not impose any structure on files

files can hold any sequence of bytes.

Many programs interpret the contents of a file as having some special structure

text file, sequence of integers, database records, etc.

Directories

A directory is a special kind of file - Unix uses a directory to hold information about other files.We often think of a directory as a container that holds other files (or directories).A directory is the same idea as a folder on Windows.

More about File Names

Review: every file has a name.

Each file in the same directory must have a unique name.

Files that are in different directories can have the same name.

The Filesystem

/

bin etc users tmp usr

hollid2 scully bin etc

netprog unix X ls who

Page 8: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

8

Unix Filesystem

The filesystem is a hierarchical system of organizing files and directories.

The top level in the hierarchy is called the "root" and holds all files and directories.

The name of the root directory is /

Pathnames

The pathname of a file includes the file name and the name of the directory that holds the file, and the name of the directory that holds the directory that holds the file, and the name of the … up to the rootThe pathname of every file in a Unix filesystem is unique.

Pathnames (cont.)

To create a pathname you start at the root (so you start with "/"), then follow the path down the hierarchy (including each directory name) and you end with the filename.In between every directory name you put a "/".

Pathname Examples

/

bin etc users tmp usr

hollid2 scully bin etc

netprog unix X ls who

/usr/bin/lsSyllabus

/users/hollid2/unix/Syllabus

Absolute Pathnames

The pathnames described in the previous slides start at the root.These pathnames are called "absolute pathnames".We can also talk about the pathname of a file relative to a directory.

Relative Pathnames

If we are in the directory /users/hollid2, the relative pathname of the file Syllabus is:

unix/Syllabus

Most unix commands deal with pathnames!

We will usually use relative pathnames when specifying files.

Page 9: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

9

Disk vs. FilesystemThe entire hierarchy can actually include many disk drives.

some directories can be on other computers

/

bin etc users tmp usr

hollid2 scully

The current directory and parent directory

There is a special relative pathname for the current directory:

.There is a special relative pathname for the parent directory:

..

The ls command

The ls command displays the names of some files.

If you give it the name of a directory as a command line parameter it will list all the files in the named directory.

Some things to try

ls list files in current directory

ls / list files in the root directory

ls . list files in the current directory

ls .. list files in the parent directory

ls /usr list files in the directory /usr

Command Line Options

We can modify the output format of the lsprogram with a command line option.The ls command support a bunch of options:

l long format (include file times, owner and permissions)a all (shows hidden* files as well as regular files)F include special char to indicate file types.

*hidden files have names that start with "."

ls command line options

To use a command line option precede the option letter with a minus:

ls -a or ls -l

You can use 2 or more options at the same time like this:

ls -al

Page 10: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

10

General ls command line

The general form for the ls command is:ls [options] [names]

The options must come first!You can mix any options with any names.

An example:ls -al /usr/bin

ls [options] [names]

The brackets around options and names in the general form of the ls command means that something is optional.We will see the general form of many commands described in this manner.Some commands have required parameters.

Many names

You can give the ls command many names:

ls /usr /etc

ls -l /usr/bin /tmp /etc

Moving Around in the Filesystem

The cd command can change the current working directory:

cd change directory

The general form is:cd [directoryname]

cd

With no parameter, the cd command changes the current directory to your home directory.You can also give cd a relative or absolute pathname:

cd /usr

cd ..

Some more commands and command line options

ls -R will list everything in a directory and in all the subdirectories recursively (the entire hierarchy).

you might want to know that Ctrl-C will cancel a command (stop the command)!

pwd: print working directorydf: shows what disk holds a directory.

Page 11: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

11

Copying Files

The cp command copies files:cp [options] source dest

The source is the name of the file you want to copy.dest is the name of the new file.source and dest can be relative or absolute.

Another form of cp

If you specify a dest that is a directory, cp will put a copy of the source in the directory.The filename will be the same as the filename of the source file. cp [options] source destdir

Yet another form of cp

If you specify more than two names, cp assumes you are using this form:.cp [options] source... destdir

In this case cp will copy multiple files to destdir.source... means at least one name (could be more than one)

Moving Files

The mv command moves files:mv [options] source dest

The source is the name of the file you want to move.dest is the name of the new file.source and dest can be relative or absolute.

Another form of mv

If you specify a dest that is a directory, mv will put the source in the directory.The filename will be the same as the filename of the source file. mv [options] source destdir

Yet another form of cp

If you specify more than two names, cp assumes you are using this form:.mv [options] source... destdir

In this case mv will move multiple files to destdir.

Page 12: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

12

Deleting (removing) FilesThe rm command deletes files:

rm [options] names...

rm stands for "remove".

You can remove many files at once:

rm foo /tmp/blah /home/vzaychik/trash

File attributes

Every file has some attributes:Access Times:

when the file was createdwhen the file was last changedwhen the file was last read

SizeOwners (user and group)Permissions

File Time Attributes

Time Attributes:when the file was last changed ls -l

when the file was created* ls -lc

when the file was last read (accessed) ls -ul

* actually it’s the time the file status last changed.

File Owners

Each file is owned by a user.You can find out the username of the file's owner with the "-l" option to ls,

Each file is also owned by a Unix group.ls -l also shows the group that owns the file.

File Permissions

Each file has a set of permissions that control who can mess with the file.There are three kinds of permissions:

read abbreviated rwrite abbreviated w

execute abbreviated x

There are separate permissions for the file owner, group owner and everyone else.

ls -l

$ ls -l foo

-rw-rw---- 1 hollingd grads 13 Jan 10 23:05 foo

permissionsowner group

size

time

name

Page 13: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

13

ls -l and permissions

-rwxrwxrwxOwner Group Others

Type of file:- means plain filed means directory

rwx

Files:r - allowed to read.w - allowed to write.x - allowed to execute

Directories:r - allowed to see the names of the file.w - allowed to add and remove files.x - allowed to enter the directory

Changing Permissions

The chmod command changes the permissions associated with a file or directory.There are a number of forms of chmod, this is the simplest:

chmod mode file

chmod mode file

Mode has the following form:[ugoa][+-=][rwx]

u=user g=group o=other a=all

+ add permission - remove permission = set permission

chmod examples

$ ls -al foo

-rwxrwx--x 1 hollingd grads foo

$ chmod g-wx foo

$ ls -al foo

-rwxr----x 1 hollingd grads foo

$chmod u-r .

$ls -al foo

ls: .: Permission denied

Other filesystem and file commands

mkdir make directory

rmdir remove directory

touch change file timestamp (can also create a blank file)

cat concatenate files and print out to terminal.

Page 14: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

14

Pagers

more – allows to move through a file by lines, half screens, or full screens, move backward and forward and search for patterns:

more filename

Spacebar to move ahead by a screenReturn to move ahead by one lineb to move backward by a screen

Pagers continued

less is an enhanced version of more

Read in portions of a file, rather than an entire fileHas many more options

Pagers continued

head shows the beginning of a file (first ten lines)tail shows the end of a file (last ten lines)Use -n to display some other number of lines

Shell as a user interface

A shell is a command interpreter turns text that you type (at the command line) in to actions:

runs a program, perhaps the ls program.

allows you to edit a command line.can establish alternative sources of input and destinations for output for programs.

Running a ProgramYou type in the name of a program and some command line options:The shell reads this line, finds the program and runs it, feeding it the options you specified.The shell establishes 3 I/O channels:

Standard InputStandard OutputStandard Error

Programs and Standard I/O

ProgramProgramStandard Input

(STDIN)Standard Output

(STDOUT)

Standard Error(STDERR)

Page 15: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

15

Unix Commands

Most Unix commands (programs):

read something from standard input.

send something to standard output (typically depends on what the input is!).

send error messages to standard error.

Defaults for I/O

When a shell runs a program for you:standard input is your keyboard.

standard output is your screen/window.standard error is your screen/window.

Terminating Standard Input

If standard input is your keyboard, you can type stuff in that goes to a program.

To end the input you press Ctrl-D (^D) on a line by itself, this ends the input stream.The shell is a program that reads from standard input.

What happens when you give the shell ^D?

Popular Shells

sh Bourne Shell ksh Korn Shell csh C Shellbash Bourne-Again Shell

Customization

Each shell supports some customization.

User promptWhere to find mailShortcuts

The customization takes place in startupfiles – files that are read by the shell when it starts up

Startup filessh,ksh:

/etc/profile (system defaults) ~/.profile

bash:

~/.bash_profile

~/.bashrc

~/.bash_logout

csh:

~/.cshrc

~/.login

~/.logout

Page 16: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

16

Wildcards (metacharacters) for filename abbreviation

When you type in a command line the shell treats some characters as special.These special characters make it easy to specify filenames.The shell processes what you give it, using the special characters to replace your command line with one that includes a bunch of file names.

The special character *

* matches anything.If you give the shell * by itself (as a command line argument) the shell will remove the * and replace it with all the filenames in the current directory.“a*b” matches all files in the current directory that start with a and end with b.

Understanding *

The echo command prints out whatever you give it:> echo hi

hi

Try this:> echo *

* and ls

Things to try:ls *

ls –al *

ls a*

ls *b

Other metacharacters? Matches any single character

ls Test?.doc

[abc…] matches any of the enclosed characters

ls T[eE][sS][tT].doc

[a-z] matches any character in a rangels [a-zA-Z]*

[!abc…] matches any character except those listed.

ls [!0-9]*

Input Redirection

The shell can attach things other than your keyboard to standard input.

A file (the contents of the file are fed to a program as if you typed it).A pipe (the output of another program is fed as input as if you typed it).

Page 17: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

17

Output Redirection

The shell can attach things other than your screen to standard output (or stderr).

A file (the output of a program is stored in file).A pipe (the output of a program is fed as input to another program).

How to tell the shell to redirect things

To tell the shell to store the output of your program in a file, follow the command line for the program with the “>” character followed by the filename:

ls > lsout

the command above will create a file named lsout and put the output of the ls command in the file.

Input redirection

To tell the shell to get standard input from a file, use the “<“ character:

sort < nums

The command above would sort the lines in the file nums and send the result to stdout.

You can do both!

sort < nums > sortednums

tr a-z A-Z < letter > rudeletter

Output and Output Append

The command ls > foo will create a new file named foo (deleting any existing file named foo).

If you use >> the output will be appended to foo:

ls /etc >> foo

ls /usr >> foo

Pipes

A pipe is a holder for a stream of data.A pipe can be used to hold the output of one program and feed it to the input of another.

prog1prog1 prog2prog2STDOUT STDIN

Page 18: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

18

Asking for a pipe

Separate 2 commands with the “|” character.The shell does all the work!

ls | sort

ls | sort > sortedls

Stderr

Many commands send error messages to standard error.

This is a different stream than stdout.

The “>” output redirection only applies to Stdout (not to Stderr).

Capturing stderr

To redirect stderr to a file you need to know what shell you are using.

When using sh, ksh or bash it’s easy:

ls foo blah gork 2> erroroutput

It’s not so easy with csh...

File Descriptors

Unix progams write to file descriptors, small integers that are somehow attached to a stream.

STDIN is 0

STDOUT is 1STDERR is 2

“2>” means redirect stream #2 (sh, ksh and bash)

Csh and Stderr

>& merges STDOUT and STDERR and sends to a file:

ls foo blah >& saveboth

>>& merges STDOUT and STDERR and appends to a file:

ls foo blah >>& saveboth

Shell VariablesThe shell keeps track of a set of parameter names and values.Some of these parameters determine the behavior of the shell.We can access these variables:

set new values for some to customize the shell.

find out the value of some to help accomplish a task.

Page 19: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

19

Example Shell Variablessh / ksh / bash

PWD current working directoryPATH list of places to look for

commandsHOME home directory of userMAIL where your email is storedTERM what kind of terminal you haveHISTFILE where your command

history is saved

Displaying Shell Variables

Prefix the name of a shell variable with "$".The echo command will do:

echo $HOMEecho $PATH

You can use these variables on any command line:

ls -al $HOME

Setting Shell Variables

You can change the value of a shell variable with an assignment command (this is a shell builtin command):

HOME=/etc

PATH=/usr/bin:/usr/etc:/sbin

NEWVAR="blah blah blah"

set command (shell builtin)

The set command with no parameters will print out a list of all the shell varibles.

You'll probably get a pretty long list…

Depending on your shell, you might get other stuff as well...

Job Control

The shell allows you to manage jobsplace jobs in the background

move a job to the foregroundsuspend a jobkill a job

Background jobs

If you follow a command line with "&", the shell will run the job in the background.

you don't need to wait for the job to complete, you can type in a new command right away.you can have a bunch of jobs running at once.you can do all this with a single terminal (window).

ls -lR > saved_ls &

Page 20: Basic UNIX - Drexel CCIumpeysak/Classes/cs451/pdf/introUnix.pdf · Unix History and Motivation The first version of Unix came from AT&T in the early 1970s (Unix is old!). Unix was

20

Listing jobs

The command jobs will list all background jobs:

> jobs

[1] Running ls -lR > saved_ls &

>

The shell assigns a number to each job (this one is job number 1).

Suspending and Killing the Foreground Job

You can suspend the foreground job by pressing ^Z (Ctrl-Z).

Suspend means the job is stopped, but not dead.The job will show up in the jobs output.

You can kill the foreground job by pressing ^C (Ctrl-C).

It's gone...

Moving a job back to the foreground

The fg command will move a job to the foreground.

You give fg a job number (as reported by the jobs command) preceeded by a %.

> jobs

[1] Stopped ls -lR > saved_ls &

> fg %1

ls -lR > saved_ls

Further information

http://www.geek-girl.com/unix.html

Many tutorials and references available online!