1 / 51

Chapter 7: Advanced Shell Programming

Chapter 7: Advanced Shell Programming. 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

melosa
Download Presentation

Chapter 7: Advanced Shell Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 7:Advanced 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 X=ABC 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 X=ABC echo "${X}abc"

  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 wm=3 • Create an abbreviation/shortcut • ab wwr William W. Richards

  11. Spell Checking with vi :map V :w^M:!ispell % ^M:e!^M^M

  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 8:Exploring 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

  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. 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

  30. Using the df Utility The df utility reports on the status of1024-byte blocks that are allocated, used, and available

  31. Using the du Utility The du utility summarizes disk usage, expressed in 512-byte blocks (default) or by the number of bytes(-b option)

  32. 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

  33. 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

  34. 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

  35. Using the top Command (continued) The top utility run without any options specified

  36. 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

  37. Using the free Command The free utility displays the amount of free and used memory in the system

  38. 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

  39. Monitoring Processes The ps command with the -A option shows a list of all system processes currently running

  40. 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 • See man page for descriptions of the signals (remember the man trick)

  41. 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&

  42. Checking the Spellingof a Document ispell scans a document, displays errors on the screen and suggests alternative spellings

  43. 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

  44. 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 • An embedded code is a special sequence of characters that is included with the regular text of the file

  45. Formatting Text in UNIX/Linux (continued) Linux introduced groff, which implements the features of both nroff and troff

  46. Formatting Text in UNIX/Linux (continued) Groff can be used to produce a man page that contains the standard man page sections

  47. 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

  48. 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

  49. 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

  50. 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

More Related