Presentation is loading. Please wait.

Presentation is loading. Please wait.

Week 7 Working with the BASH Shell. Objectives  Redirect the input and output of a command  Identify and manipulate common shell environment variables.

Similar presentations


Presentation on theme: "Week 7 Working with the BASH Shell. Objectives  Redirect the input and output of a command  Identify and manipulate common shell environment variables."— Presentation transcript:

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


Download ppt "Week 7 Working with the BASH Shell. Objectives  Redirect the input and output of a command  Identify and manipulate common shell environment variables."

Similar presentations


Ads by Google