Transcript Chapter One

Review
Chapters 5 thru 8
Two Groups of Commands
Select commands
Manipulate and Format commands
2
Using the Select Commands
Select commands:
grep, diff, uniq, comm, wc
Using Pipes – The pipe operator (|)
redirects the output of one command to
the input of another command


An example would be to redirect the output
of the ls command to the less command
The pipe operator can connect several
commands on the same command line
3
Using Pipes
ls /etc | sort –r | less
Using pipe operators
and connecting
commands is useful
when viewing directory
information
4
Using the grep Command
Used to search for a specific pattern in a file,
such as a word or phrase
grep’s options and wildcard support allow for
powerful search operations
You can increase grep’s usefulness by
combining with other commands, such as
head or tail
5
Using the grep Command
grep can take input
from other commands
grep IBM /etc/termcap | head
and also be directed
to provide input for
other commands
6
Using the uniq Command
Removes duplicate lines from a file
It compares only consecutive lines, therefore
uniq requires sorted input
Uniq has an option that allows you to
generate output that contains a copy of each
line that has a duplicate
7
Using the comm Command
Used to identify duplicate lines in sorted files
Unlike uniq, it does not remove duplicates,
and it works with two files rather than one
It compares lines common to file1 and file2,
and produces three column output



Column one contains lines found only in file1
Column two contains lines found only in file2
Column three contains lines found in both files
8
Using the diff Command
Attempts to determine the minimal changes
needed to convert file1 to file2
The output displays the line(s) that differ
The associated codes in the output indicate
that in order for the files to match, specific
lines must be added or deleted
9
Using the wc Command
Used to count the number of lines, words,
and bytes or characters in text files
You may specify all three options in one
issuance of the command
If you don’t specify any options, you see
counts of lines, words, and characters (in that
order)
10
Using the wc Command
wc –l /etc/passwd
The options for the
wc command:
–l for lines
–w for words
–c for characters
11
Using the Manipulate and
Format Commands
These commands are: sed, tr, pr
Used to edit and transform the
appearance of data before it is
displayed or printed
12
Translating Characters
Using the tr command
tr copies data from the standard input to
the standard output, substituting or
deleting characters specified by options
and patterns
The patterns are strings and the strings
are sets of characters
A popular use of tr is converting lowercase
characters to uppercase
13
Using the pr Command to
Format Your Output
pr prints specified files on the standard
output in paginated form
By default, pr formats the specified files
into single-column pages of 66 lines
Each page has a five-line header, its
latest modification date, current page,
and five-line trailer consisting of blank
lines
14
Running a Shell Script
You can run a shell script in virtually any shell
that you have on your system
The Bash shell accepts more variations in
command structures that other shells
Run the script by typing sh followed by the
name of the script, or make the script
executable and type ./ prior to the script
name
15
Using UNIX/Linux Shell Scripts
After creating shell script, the OS is instructed
that the file is an executable shell script via
the chmod command
Script files can be run in several ways:
 Set the path variable and type the script
name at the command prompt
 Type ./filename if script is in current
directory
 Type the script name preceded by the full
path
16
Using Comments
Comments are important!
Provide useful documentation to both the
programmer and to others who need to
understand or debug the code
To use, start comment line with a #
17
Variables
Variables are symbolic names that represent values
stored in memory
Three types of variables:
 Configuration variables store information about
the setup of the OS
 Environment variables hold information about your
login session
 Shell variables are created at the command
prompt or in shell scripts and are used to
temporarily store information
18
Variables
Use the printenv variable to see a list of
environment variables.
You can also use env
Look at the man pages. What is
different between the two commands?
19
Environment and Configuration Variables
20
Environment and Configuration Variables
21
Environment and Configuration Variables
22
Environment and Configuration Variables
23
Shell Variables
Shell Variables are variables that you can
define and manipulate for use with program
commands in a shell
Observe basic guidelines for handling and
naming shell variables

I recommend that you use all UPPERCASE
characters when naming your variables
24
Shell Variables
Variables are handled differently
depending on the syntax
Type:




echo
echo
echo
echo
$USERNAME
“$USERNAME”
’$USERNAME’
`$USERNAME`
25
Shell Operators
Bash shell operators are in four groups:
 Defining operators
 Evaluating operators
 Arithmetic operators
 Redirection operators
26
Defining Operators
Used to assign a value to a variable
Most common is = (equal sign)
Use quotation marks with strings
Backquote says execute the command inside
the backquotes and store the result in the
variable
27
Evaluating Operators
Used for determining the contents of a
variable
echo $variablename will show the value of
variablename
Double quotes can be used, but not single
quotes
28
Arithmetic Operators
29
Arithmetic Operators (continued)
Regular mathematical precedence rules
apply to arithmetic operators
To store arithmetic values in a variable,
use let statement
 let x=6+4*2
 echo $x
30
Redirection Operators
The > redirection operator overwrites an
existing file
-o noclobber option of set command will
prevent overwriting
31
Exporting Shell Variables to the
Environment
Shell scripts cannot automatically access
variables created and assigned
 On the command line
 By other scripts
Make variables global in your environment by
using the export command
32
Modifying the PATH Variable
PATH variable controls where your shell will
look for shell scripts
You can add directories to your PATH
 Special directories for scripts
 Your current working directory
33
Shell Logic Structures
Four basic logic structures needed for
program development are:
 Sequential logic
 Decision logic
 Looping logic
 Case logic
34
Sequential Logic
Commands are executed in the order in which
they appear in the script or program
The only break in this sequence comes when
a branch instruction changes the flow of
execution by redirecting to another location in
the script or program
Used for simple, straightforward command
sequences
35
Decision Logic
Enables your script or program to execute a
statement or series of statements only if a
certain condition exists
In many cases, the condition depends upon
the result of a command or on a comparison
The if statement is the primary decisionmaking control structure in this type of logic
36
Looping Logic
A control structure repeats until some
condition exists or some action occurs
Two common looping mechanisms:
 for loops cycle through a range of values
until the last in a set of values is reached
 The while loop cycles as long as a
particular condition exists
37
Looping Logic (continued)
Program control structures can be entered
from the command line
Wildcard characters can be used in loops
The while loop is set up to test repeatedly for
a matching condition
The while loop is used when code must be
repeatedly executed an undetermined
number of times
38
Case Logic
The case logic structure simplifies the
selection from a list of choices
It allows the script to perform one of many
actions, depending on the value of a variable
Two semicolons (;;) terminate the actions
taken after the case matches what is being
tested
39
Using Shell Scripting to Create a
Menu
Often useful to create a menu that branches
to specific shell scripts
The tput command is useful when creating
menus

Can initialize the terminal display to place text and
prompts in specific locations and respond to the
user
40
Debugging a Shell Script
A shell script will not execute if there is an error
in one or more commands
Running a shell script using sh enables quick
debugging of problems
 sh -v option displays lines of code in the script
as they are read by the interpreter
 sh -x option displays the command and its
arguments line by line as they are run
41
Customizing Your
Personal Environment
When programming and shell scripting,
customizing your environment by modifying the
initial settings in the login scripts provides many
benefits
Login scripts run just after logging in
Setting up personal bin directories and modify
editor defaults are common customizations
42
Customizing Your
Personal Environment
An alias is a name that represents another
command
The .bashrc file in your home directory is used to
establish customizations that take effect at each
login
The .bashrc script is executed each time a shell is
generated, such as when shell scripts are run
43
The trap Command
The trap command causes a shell program to
automatically remove temporary files created when
shell scripts run
Programmers often set up a subdirectory to store
temporary files, and when a script file exits, trap
removes the files
Having files removed from a temporary directory like
this is considered “good housekeeping”
44
Putting It All Together in
an Application
Applications require you to:
 Assign and manage variables
 Use shell operators
 Employ shell logic structures
 Use additional wildcard characters
 Use tput for managing screen initialization
 Use trap to clean up temporary files
Will use these skills to build a shell script
application in Hands-on Project
45
Understanding UNIX/Linux Utilities
UNIX/Linux utilities let you
 Create and manage files
 Run programs
 Produce reports
 Monitor and maintain the system
 Recover from a range of errors
New utilities are continually being added in order
to make UNIX/Linux run more efficiently
46
Understanding UNIX/Linux Utilities
Classified into eight major areas:
 File processing
 System status
 Networking
 Communications
 Security
 Programming
 Source code management
 Miscellaneous
47
File Processing Utilities
cat
Display files
fmt
Formats text
cp
Copy files
grep
Matches patterns in files
cpio
Copy/back files
fgrep
Matches patterns in files
cut
Selects char/fields
gzip
Zip/compress files
dd
Convert/copy a file/image gunzip
Unzip/uncompress files
dump
Backs up files
head
Displays 1st part of files
file
Displays file type
ispell
Spell Checks
find
Finds files
less
Displays files
48
File Processing Utilities
ln
Creates symbolic links
pwd
Displays current
directory
lpr
Sends file to printer
rm
Deletes files/directories
ls
Lists files/directories
rmdir
Removes/directories
man
Displays man pages
sorts
Sorts files/input
mkdir
Makes directories
tail
Displays end of files
mkfs
Builds filesystems
tar
Copies and archives files
mount Mounts filesystems
touch
Changes files dates
mv
whereis
Locates info on files
Renames/moves files/dir’s
49
Classifying UNIX/Linux Utilities
50
Classifying UNIX/Linux Utilities
51
Classifying UNIX/Linux Utilities
52
Classifying UNIX/Linux Utilities
53
Classifying UNIX/Linux Utilities
54
Classifying UNIX/Linux Utilities
55
Using the dd Command
Allows you to copy a file and change the format
of the destination file
Has a rich set of options to handle copies when
other methods are inappropriate
An advantage to using the dd command over cp
is that all users, not just the administrator, can
copy files to and from the floppy drive
56
Checking Hard Disk Usage
To maintain adequate hard disk free space, use
these strategies:
 Be vigilant against running dangerously low on
free space by using the df command
 Watch for conspicuous consumption using the
du command
 Follow a routine schedule for “garbage”
collection and removal by using the find and rm
commands
57
Removing Garbage Files
Garbage files are temporary files that lose their
usefulness after several days
Two examples of garbage files are core files (named
core) and a.out files
Use the find command to assist you in locating these
files and the rm command to remove them
58
Using System Status Utilities
System status commands reflect the system’s
performance
System engineers primarily use the data
related to system status
Good to know how to obtain and store
relevant information to send to system
administrator and tune-up specialists
59
Using the top Command
One of the most effective utilities for auditing
system performance is the top command
The top command displays a listing of the
most CPU-intensive tasks in real time
Updates every five seconds by default
60
Using the uptime Command
uptime tells you how long a system has been running
since the last time it was booted




Displays current time
how long the system has been up
number of users on the system
the load average for 1, 5, and 15 minutes
61
Using the free Command
The free utility
displays the
amount of free
and used memory
in the system
62
Managing Processes
A process is identified through a unique number
called a process id (pid)
Unix/Linux offer utilities to run, monitor, and kill
processes using pids
63
Running Processes in the Background
Can run a process in the background while
working with another program in the foreground
To run a program in the background, append the
& character to end of the startup command,
e.g., top&
Another method is the bg and fg commands
64
Monitoring Processes
The ps command
with the –A or -a
option shows a
list of all system
processes
currently running
ps -ax
65
Killing Processes
Administrator with root privileges can kill any user’s
processes
User can kill owned processes
Use kill command with the pid of the process
Use kill –9 to stop a process that doesn’t respond to
an initial kill command
66
Checking the Spelling
of a Document
ispell scans a
document, displays
errors on the
screen and
suggests
alternative spellings
67
Comparing Files
Use the cmp utility to compare the contents of
two files, and report the first difference between
them
The cmp command displays the position and line
number of this difference
If there are no differences, the cmp command
displays nothing
68
Formatting Text in UNIX/Linux
Text formatting in UNIX/Linux involves preparing
a text file with embedded typesetting commands
and then processing the file
UNIX’s nroff and troff commands were the early
standard in formatting programs
groff is newer version of both nroff and troff
69