Chapter 7: Advanced Shell Programming - PowerPoint PPT Presentation

1 / 55
About This Presentation
Title:

Chapter 7: Advanced Shell Programming

Description:

set wm=3. Create an abbreviation/shortcut. ab wwr William W. Richards. 11 ... Follow a routine schedule for 'garbage' collection and removal by using the find ... – PowerPoint PPT presentation

Number of Views:96
Avg rating:3.0/5.0
Slides: 56
Provided by: til42
Category:

less

Transcript and Presenter's Notes

Title: Chapter 7: Advanced Shell Programming


1
Chapter 7Advanced Shell Programming
2
Ensuring the Correct Shell Runs the Script
  • Each UNIX/Linux user can choose which shell they
    use by default
  • Ensure the correct shell is used to run a script
  • Not all shells support the same commands and
    programming statements
  • The first line of a script should specify which
    shell to use

3
Setting the Default Shell
  • System administrator establishes the default
    shell for a user account
  • User shell set in /etc/passwd file
  • File can only be edited (carefully!) by system
    administrator
  • Some systems provide management software to
    assist in setting default shells

4
Using Bash Login and Logout Scripts
  • When Bash is your default shell, scripts run
    automatically upon login or re-entry
  • .bash_profile
  • .bashrc (also runs in a subshell)
  • Administrator controls /etc/bashrc and
    /etc/profile
  • .bash_logout runs when user logs out
  • Often used to clear the screen

5
Defining the Shell (Sha-Bang)
  • A shell script is little more than a list of
    commands that are run in sequence.
  • Conventionally, a shellscript should start with
    a line such as the following
  • !/bin/bash
  • This indicates that the script should be run in
    the bash shell regardless of which interactive
    shell the user has chosen.
  • This is important, since the syntax of different
    shells can vary greatly.

6
A Simple Example
  • Here's a very simple example of a shell script
    with comments. It just runs a few simple commands
  • !/bin/bash
  • Tell the user what is happening
  • echo "hello, USER. Here is a directory listing
  • list files
  • echo "listing files in the current directory,
    PWD"
  • ls

7
More on Shell Variables
  • !/bin/bash
  • XABC
  • echo "Xabc"
  • This gives no output. What went wrong ?
  • The answer is that the shell thought that we were
    asking for the variable Xabc, which is
    un-initialized.
  • The way to deal with this is to put braces around
    X to separate it from the other characters.
  • The following gives the desired result
  • !/bin/bash
  • XABC
  • echo "Xabc"

8
Setting Defaults for Using the vi Editor
  • To use the vi editor for code development,
    configure .exrc in your home directory
  • Automatically sets up the vi environment
  • Set the number of tab spaces to use when nesting
    lines of code
  • Display line numbers

9
Some vi tips for .exrc
  • To view the configurations of the parameters in
    your current vi session, go into the command mode
    and issue the command set all .
  • set all
  • or
  • setall

10
Some vi tips for .exrc
  • Setting syntax on/off
  • syntax off
  • Precede each line with a number
  • set number
  • Set word wrap 3 characters from edge of screen
  • set wm3
  • Create an abbreviation/shortcut
  • ab wwr William W. Richards

11
Spell Checking with vi
  • map V wM!ispell Me!MM

12
Reading in the Date
  • ab DATE M.!date '\a \d \h \Y'MkJA

13
Clearing the Screen
  • The clear command is useful for clearing the
    screen, but there is a faster way
  • Store the output of the clear command in a
    variable and then echo the contents of the
    variable on the screen
  • About ten times faster than the actual command
    since the system does not have to locate and
    execute the clear command

14
Clearing the Screen
  • How do you do this?
  • Simple
  • CLEAR/usr/bin/clear
  • export CLEAR
  • echo CLEAR

15
Chapter 8Exploring UNIX/Linux Utilities
16
Objectives
  • Understand many of the UNIX/Linux utilities that
    are available and how they are classified
  • Use the dd utility to copy and convert files
  • Make a bootable removable disk
  • Monitor hard disk usage

17
Objectives (continued)
  • Use system status utilities
  • Monitor and manage processes
  • Check the spelling of text in a document
  • Use the cmp command to compare the contents of
    two files
  • Format text to create and use a man page

18
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

19
Understanding UNIX/Linux Utilities (continued)
  • Classified into eight major areas
  • File processing
  • System status
  • Networking
  • Communications
  • Security
  • Programming
  • Source code management
  • Miscellaneous

20
Classifying UNIX/Linux 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
21
Classifying UNIX/Linux Utilities (continued)
22
Classifying UNIX/Linux Utilities (continued)
23
Classifying UNIX/Linux Utilities (continued)
24
Classifying UNIX/Linux Utilities (continued)
25
Classifying UNIX/Linux Utilities (continued)
26
Classifying UNIX/Linux Utilities (continued)
27
Classifying UNIX/Linux Utilities (continued)
28
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

29
Making a Bootable Removable Disk
  • Make a bootable floppy disk because a computer
    problem may prevent you from starting UNIX/Linux
    from the system
  • Bootable floppy disks or CD-ROMs can be made
    using utilities provided by your version of
    UNIX/Linux
  • Such as the mkbootdisk command
  • mkbootdisk 2.6.17-1.2145_FC5

30
Making a Bootable Removable Disk (continued)
  • Find the kernel version so you can create a
    floppy boot disk try these commands
  • uname r
  • cat /proc/version
  • ls l /lib/modules

31
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

32
Using the df Utility
The df utility reports on the status of1024-byte
blocks that are allocated, used, and available
33
Using the du Utility
The du utility summarizes disk usage, expressed
in 512-byte blocks (default) or by the number of
bytes(-b option)
34
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

35
Removing Garbage Files (continued)
  • Create some files
  • touch core a.out
  • Now use the find command to find and delete
  • find . ( name a.out o name core ) exec
    rm \
  • Note the ( and ) are so the command can be
    used to delete more than one file name

36
Using System Status Utilities
  • System status commands reflect the systems
    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

37
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

38
Using the top Command (continued)
The top utility run without any options specified
39
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
  • Load average for 1, 5, and 15 minutes

40
Using the free Command
The free utility displays the amount of free and
used memory in the system
41
Forwarding top and free Output
  • When problems arise with performance, may need to
    forward top and free output to support person
  • Use redirection (gt) to store outputs in files
  • top n 1 gt top.txt
  • free gt free.txt

42
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

43
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

44
Monitoring Processes
The ps command with the -A option shows a list of
all system processes currently running
45
Killing Processes
  • Administrator with root privileges can kill any
    users processes
  • User can kill owned processes
  • Use kill command with the pid of the process
  • Use kill 9 to stop a process that doesnt
    respond to an initial kill command
  • See man page for descriptions of the signals
    (remember the man trick)

46
Checking the Spellingof a Document
ispell scans a document, displays errors on the
screen and suggests alternative spellings
47
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

48
Formatting Text in UNIX/Linux
  • Text formatting in UNIX/Linux involves preparing
    a text file with embedded typesetting commands
    and then processing the file
  • UNIXs nroff and troff commands were the early
    standard in formatting programs
  • An embedded code is a special sequence of
    characters that is included with the regular text
    of the file

49
Formatting Text in UNIX/Linux (continued)
Linux introduced groff, which implements the
features of both nroff and troff
50
Formatting Text in UNIX/Linux (continued)
Groff can be used to produce a man page that
contains the standard man page sections
51
Formatting Text in UNIX/Linux (continued)
Man pages are made available to others by having
a privileged user copy it to one of the man page
directories
52
Chapter Summary
  • UNIX/Linux utilities are classified into eight
    major functional areas
  • Utility programs are called commands executed by
    entering names on the command line
  • dd command options allow it to handle copies when
    other copying methods fail
  • To make a bootable removable disk, use provided
    utilities such as mkbootdisk

53
Chapter Summary (continued)
  • df checks and reports on free disk space
  • du checks for disk usage
  • Use find to retrieve temporary files and use rm
    to remove them
  • top and free provide detailed views of the
    internals of the system that can be redirected
    to a file for system tune-up

54
Chapter Summary (continued)
  • Run a program in the background by appending to
    the end of a command
  • ps displays all running processes
  • kill terminates a specific process
  • ispell scans for spelling errors
  • Text formatting involves
  • Embedding typesetting commands in a file
  • Processing the file with a program that generates
    commands for the output device

55
Chapter Summary (continued)
  • Linux introduced groff, which implements the
    features of both nroff and troff
  • Text formatted with groff can be used to create
    new man pages
Write a Comment
User Comments (0)
About PowerShow.com