Download presentation
Presentation is loading. Please wait.
Published byBritney Camilla Bishop Modified over 9 years ago
1
Week 7 Working with the BASH Shell
2
Objectives Redirect the input and output of a command Identify and manipulate common shell environment variables Create and export new shell variables Edit environment files to create variables upon shell startup Linux+ Guide to Linux Certification, 2e2
3
Objectives (continued) Describe the purpose and nature of shell scripts Create and execute basic shell scripts Effectively use common decision constructs in shell scripts Linux+ Guide to Linux Certification, 2e3
4
Command Input and Output BASH shell responsible for: Providing user interface Interpreting commands Manipulating command input and output ○ Provided user specifies certain shell metacharacters with command File descriptors: Numeric labels that define command input and command output Linux+ Guide to Linux Certification, 2e4
5
Command Input and Output (continued) Standard Input (stdin): File descriptor representing command input Standard Output (stdout): File descriptor representing command output Standard Error (stderror): File descriptor representing command error messages Linux+ Guide to Linux Certification, 2e5
6
Command Input and Output (continued) Linux+ Guide to Linux Certification, 2e6 Figure 7-1: The three common file descriptors
7
Redirection Redirect stdout and stderr from terminal screen to a file Use “>” shell metacharacter Can redirect stdout and stderr to separate files Use separate filenames for stdout and stderr Linux+ Guide to Linux Certification, 2e7
8
Redirection (continued) Redirecting stdin to a file: Use “<“ shell metacharacter tr command: Replace characters in a file sent via stdin Linux+ Guide to Linux Certification, 2e8
9
Redirection (continued) Linux+ Guide to Linux Certification, 2e9 Table 7-1: Common redirection examples
10
Pipes Send stdout of one command to another command as stdin Pipe: String of commands connected by “|” metacharacters stdout on left, stdin on right Commonly used to reduce amount of information displayed on terminal screen Linux+ Guide to Linux Certification, 2e10
11
Pipes (continued) 11Linux+ Guide to Linux Certification, 2e Figure 7-2: Piping information from one command to another
12
Pipes (continued) Can use multiple pipes on command line Pass information from one command to another over a series of commands filter commands: Commands that can take from stdin and give to stdout Can be on either side of a pipe tee commands: Filter commands that also send information to a file Linux+ Guide to Linux Certification, 2e12
13
Pipes (continued) 13Linux+ Guide to Linux Certification, 2e Figure 7-3: Piping several commands
14
Pipes (continued) Linux+ Guide to Linux Certification, 2e14
15
Pipes (continued) Can combine redirection and piping Input redirection must occur at beginning of pipe Output redirection must occur at end of pipe sed filter command: Search for and replace text strings awk filter command: Search for text and perform specified action on it Linux+ Guide to Linux Certification, 2e15
16
Shell Variables Variable: A reserved portion of memory containing accessible information BASH shell has several variables in memory Environment variables: Contain information that system and programs access regularly User-defined variables: Custom variables define by users Special variables Useful when executing commands and creating new files and directories Linux+ Guide to Linux Certification, 2e16
17
Environment Variables set command: Lists environment variables and current values echo command: View contents a specified variable Use $ shell metacharacter Changing value of a variable: Specify variable name followed by equal sign (=) and new value Linux+ Guide to Linux Certification, 2e17
18
Environment Variables (continued) Linux+ Guide to Linux Certification, 2e18 Table 8-3: Common BASH environment variables
19
Environment Variables (continued) Linux+ Guide to Linux Certification, 2e19 Table 7-3 (continued): Common BASH environment variables
20
Environment Variables (continued) Linux+ Guide to Linux Certification, 2e20 Table 7-3 (continued): Common BASH environment variables
21
User-Defined Variables Variable identifier: Name of a variable Creating new variables: Specify variable identifier followed by equal sign and the new contents Features of variable identifiers: Can contain alphanumeric characters, dash characters, or underscore characters Must not start with a number Typically capitalized to follow convention Linux+ Guide to Linux Certification, 2e21
22
User-Defined Variables (continued) Subshell: Shell created by current shell Most shell commands run in a subshell Variables created in current shell are not available to subshells export command: Exports user-defined variables to subshells Ensures that programs started by current shell have access to variables env command: Lists all exported environment and user-defined variables in a shell Linux+ Guide to Linux Certification, 2e22
23
Other Variables Not displayed by set or env commands Perform specialized functions in the shell e.g., UMASK variable alias command: Creates shortcuts to commands Use unique alias names Aliases stored in special variables Can create single alias to multiple commands ○ Use ; metacharacter Linux+ Guide to Linux Certification, 2e23
24
Environment Files When exiting BASH shell, all stored variables are destroyed Environment files: Store variables and values Executed each time BASH shell is started Ensures variables are always accessible Linux+ Guide to Linux Certification, 2e24
25
Environment Files (continued) Common BASH shell environment files (in order they are executed): /etc/profile ~/.bash_profile ~/.bash_login ~/.profile Hidden environment files allow users to set customized variables Linux+ Guide to Linux Certification, 2e25
26
Environment Files (continued) To add a variable, add a line to environment file Use command line syntax Any command can be placed inside any environment file e.g., alias creation .bashrc (BASH run-time configuration): First hidden environment file executed at login Linux+ Guide to Linux Certification, 2e26
27
Shell Scripts Shell script: Text file containing a list of commands or constructs for shell to execute May contain any command that can be entered on command line Hashpling: First line in a shell script Defines which shell is used to interpret shell script commands Linux+ Guide to Linux Certification, 2e27
28
Shell Scripts (continued) Executing shell scripts with read permission: Start another BASH shell, specify the shell script as an argument Executing shell scripts with read/write permission: Executed like any executable program Linux+ Guide to Linux Certification, 2e28
29
Escape Sequences Character sequences having special meaning in the echo command Prefixed by \ character Must use –e option in echo command Linux+ Guide to Linux Certification, 2e29
30
Escape Sequences (continued) Linux+ Guide to Linux Certification, 2e30 Table 7-4: Common echo escape sequences
31
Reading Standard Input Shell scripts may need input from user Input may be stored in a variable for later use read command: Takes user input from stdin Places in a variable specified by an argument to read command Linux+ Guide to Linux Certification, 2e31
32
Decision Constructs Most common type of construct used in shell scripts Alter flow of a program: Based on whether a command completed successfully Based on user input Linux+ Guide to Linux Certification, 2e32
33
Decision Constructs (continued) Linux+ Guide to Linux Certification, 2e33 Figure 7-4: A sample decision construct
34
Decision Constructs (continued) Linux+ Guide to Linux Certification, 2e34 Figure 7-5: A sample decision construct
35
The if Construct Control flow of program based on true/false decisions Syntax: Linux+ Guide to Linux Certification, 2e35
36
The if Construct (continued) Common rules governing if constructs: elif (else if) and else statements optional Unlimited number of elif statements do these commands section may consist of multiple commands ○ One per line do these commands section typically indented for readability End of statement must be “if” this is true may be a command or test statement Linux+ Guide to Linux Certification, 2e36
37
The if Construct (continued) test statement: Used to test a condition Generates a true/false value Inside of square brackets ( [ … ] ) ○ Must have spaces after “[” and before “]” Special comparison operators: –o (OR) –a (AND) ! (NOT) Linux+ Guide to Linux Certification, 2e37
38
The if Construct (continued) Linux+ Guide to Linux Certification, 2e38 Table 7-5: Common test statements
39
The if Construct (continued) Linux+ Guide to Linux Certification, 2e39 Table 7-6: Special operators in test statements
40
The case Construct Compares value of a variable with several different patterns of text or numbers Syntax: Linux+ Guide to Linux Certification, 2e40
41
The case Construct (continued) If a match is found, commands to right of pattern are executed Must end with esac Linux+ Guide to Linux Certification, 2e41
42
The && and || Constructs Time-saving shortcut constructs When only one decision needs to be made during execution Syntax: command && command command || command Linux+ Guide to Linux Certification, 2e42
43
The && and || Constructs (continued) &&: Second command executed only if first completes successfully ||: Second command executed only if first fails Linux+ Guide to Linux Certification, 2e43
44
Summary Three components are available to commands: Standard Input, Standard Output, and Standard Error Standard Input is typically user input taken from the keyboard; Standard Output and Standard Error are sent to the terminal screen You can redirect the Standard Output and Standard Error of a command to a file using redirection symbols Linux+ Guide to Linux Certification, 2e44
45
Summary (continued) Use the pipe symbol to redirect the Standard Output from one command to the Standard Input of another Most variables available to the BASH shell are environment variables that are loaded into memory after login from environment files You can create your own variables in the BASH shell and export them so that they are available to programs started by the shell Linux+ Guide to Linux Certification, 2e45
46
Summary (continued) The UMASK variable and command aliases are special variables that must be set using a certain command Shell scripts can be used to execute several Linux commands Decision constructs can be used in shell scripts to execute certain Linux commands based on user input or the results of a certain command Linux+ Guide to Linux Certification, 2e46
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.