RedHat Enterprise Linux EssentialUnit 11: Configuring the Bash Shell – Shell                   script
ObjectivesUpon completion of this unit, you should be able to: Know how to use local and environment variables Know how ...
Bash Variables Variables are named values    Useful for storing data or command output Set with VARIABLE=VALUE Referen...
Environment Variables Variables are local to a single shell by default Environment variables are inherited by child shel...
Some Common Variables Configuration variables    PS1: Appearance of the bash prompt    PATH: Directories to look for ex...
example PS1syntax:     PS1=[display content]   !                 Display history number   #                 Display numb...
Aliases Aliases let you create shortcuts to commands       $ alias dir=ls -laht Use alias by itself to see all set alias...
How bash Expands a Command Line   Split the line into words   Expand aliases   Expand curly-brace statements ({})   Ex...
Preventing Expansion Backslash (  ) makes the next character literal       $ echo Your cost: $5.00        Your cost: $5.0...
Login vs non-login shells Startup is configured differently for login and non-login shells Login shells are:    Any she...
Bash startup tasks: profile Stored in /etc/profile (global) and ~/.bash_profile (user) Run for login shells only Used f...
Bash startup tasks: bashrc Stored in /etc/bashrc (global) and ~/.bashrc (user) Run for all shells Used for    Setting ...
Bash exit tasks Stored in ~/.bash_logout (user) Run when a login shell exits Used for    Creating automatic backups   ...
Scripting: Taking input                with positional Parameters Positional parameters are special variables that hold t...
Scripting: Taking input with the read command Use read to assign input values to one or more shell variables:    -p desi...
While #!/bin/bash  # SCRIPT: method1.sh  # PURPOSE: Process a file line by line with PIPED while-  read loop.  FILENAME=$...
While with redirect #!/bin/bash  #SCRIPT: method2.sh  #PURPOSE: Process a file line by line with redirected  while-read l...
Unit 11 configuring the bash shell – shell script
Upcoming SlideShare
Loading in …5
×

Unit 11 configuring the bash shell – shell script

1,184
-1

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,184
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Unit 11 configuring the bash shell – shell script

  1. 1. RedHat Enterprise Linux EssentialUnit 11: Configuring the Bash Shell – Shell script
  2. 2. ObjectivesUpon completion of this unit, you should be able to: Know how to use local and environment variables Know how to inhibit variable expansion Know how to create aliases Understand how the shell parses a command line Know how to configure startup files Know how to handle input with the read command and positional parameters
  3. 3. Bash Variables Variables are named values  Useful for storing data or command output Set with VARIABLE=VALUE Referenced with $VARIABLE $ HI="Hello, and welcome to $(hostname)." $ echo $HI Hello, and welcome to stationX.
  4. 4. Environment Variables Variables are local to a single shell by default Environment variables are inherited by child shells  Set with export VARIABLE=VALUE  Accessed by some programs for configuration
  5. 5. Some Common Variables Configuration variables  PS1: Appearance of the bash prompt  PATH: Directories to look for executables in  EDITOR: Default text editor  HISTFILESIZE: Number of commands in bash history Information variables  HOME: Users home directory  EUID: Users effective UID
  6. 6. example PS1syntax: PS1=[display content] ! Display history number # Display number of current command $ Display $ or # Display symbol  d Display current date h Display hostname s Display shell t Display current time u Display user W Display home work current w Display full path home work currentPS1=t u@h s $
  7. 7. Aliases Aliases let you create shortcuts to commands $ alias dir=ls -laht Use alias by itself to see all set aliases Use alias followed by an alias name to see alias value $ alias dir alias dir=ls -laht
  8. 8. How bash Expands a Command Line Split the line into words Expand aliases Expand curly-brace statements ({}) Expand tilde statements (~) Expand variables ($) Command-substituation ($() and ``) Split the line into words again Expand file globs (*, ?, [abc], etc) Prepare I/O redirections (<, >) Run the command!
  9. 9. Preventing Expansion Backslash ( ) makes the next character literal $ echo Your cost: $5.00 Your cost: $5.00 Quoting prevents expansion  Single quotes () inhibit all expansion  Double quotes (") inhibit all expansion, except: • $ (dollar sign) - variable expansion • ` (backquotes) - command substitution • (backslash) - single character inhibition • ! (exclamation point) - history substitution
  10. 10. Login vs non-login shells Startup is configured differently for login and non-login shells Login shells are:  Any shell created at login (includes X login)  su – Non-login shells are:  su  graphical terminals  executed scripts  any other bash instances
  11. 11. Bash startup tasks: profile Stored in /etc/profile (global) and ~/.bash_profile (user) Run for login shells only Used for  Setting environment variables  Running commands (eg mail-checker script)
  12. 12. Bash startup tasks: bashrc Stored in /etc/bashrc (global) and ~/.bashrc (user) Run for all shells Used for  Setting local variables  Defining aliases
  13. 13. Bash exit tasks Stored in ~/.bash_logout (user) Run when a login shell exits Used for  Creating automatic backups  Cleaning out temporary files
  14. 14. Scripting: Taking input with positional Parameters Positional parameters are special variables that hold the command-line arguments to the script. The positional parameters available are $1, $2, $3, etc. . These are normally assigned to more meaningful variable names to improve clarity. $* holds all command-line arguments $# holds the number of command-line arguments
  15. 15. Scripting: Taking input with the read command Use read to assign input values to one or more shell variables:  -p designates prompt to display  read reads from standard input and assigns one word to each variable  Any leftover words are assigned to the last variable  read -p "Enter a filename: " FILE #!/bin/bash read -p "Enter several values:" value1 value2 value3 echo "value1 is $value1" echo "value2 is $value2" echo "value3 is $value3"
  16. 16. While #!/bin/bash # SCRIPT: method1.sh # PURPOSE: Process a file line by line with PIPED while- read loop. FILENAME=$1 count=0 cat $FILENAME | while read LINE do let count++ echo "$count $LINE" done echo -e "nTotal $count Lines read"
  17. 17. While with redirect #!/bin/bash #SCRIPT: method2.sh #PURPOSE: Process a file line by line with redirected while-read loop. FILENAME=$1 count=0 while read LINE do let count++ echo "$count $LINE" done < $FILENAME echo -e "nTotal $count Lines read"
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×