Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCI 330 T HE UNIX S YSTEM Bash shell. B ASH S HELL S PECIFICS Shell login and logout files Shell variables Prompt History IO redirection 2 CSCI 330 -

Similar presentations


Presentation on theme: "CSCI 330 T HE UNIX S YSTEM Bash shell. B ASH S HELL S PECIFICS Shell login and logout files Shell variables Prompt History IO redirection 2 CSCI 330 -"— Presentation transcript:

1 CSCI 330 T HE UNIX S YSTEM Bash shell

2 B ASH S HELL S PECIFICS Shell login and logout files Shell variables Prompt History IO redirection 2 CSCI 330 - The Unix System

3 I NVOKING BASH On the command line: % sh % bash as login shell specified in /etc/passwd with file as argument file is sh-script % sh scriptfile 3 CSCI 330 - The UNIX System

4 S TARTUP & S HUTDOWN F ILES /etc/profile ~/.bash_profile ~/.bash_login ~/.profile /etc/bash.bashrc ~/.bashrc options: --norcdon’t run initialization files -lrun as login shell ~/.bash_logout 4 CSCI 330 - The Unix System executed for login shell executed for non-login shell

5 P REDEFINED S HELL V ARIABLES Shell Variable Description PWDThe most recent current working directory. OLDPWDThe previous working directory. BASHThe full path name used of the bash shell. RANDOMGenerates a random integer between 0 and 32,767 HOSTNAMEThe current hostname of the system. PATHA list of directories to search of commands. HOMEThe home directory of the current user. PS1The primary prompt (also PS2, PS3, PS4). CSCI 330 - The Unix System 5

6 U SER - DEFINED S HELL V ARIABLES Syntax: varname=value Example: rate=7.65 echo “Rate today is: $rate” use double quotes if the value of a variable contains white spaces Example: name=“Thomas William Flowers” 6 CSCI 330 - The Unix System

7 N UMERIC VARIABLES Syntax: let varname=value can be used for simple arithmetic: let count=1 let count=$count+20 let count+=1 7 CSCI 330 - The Unix System

8 A RRAY VARIABLES Syntax: varname=(list of words) accessed via index: ${varname[index]} ${varname[0]} first word in array ${varname[*]} all words in array 8 CSCI 330 - The Unix System

9 U SING ARRAY VARIABLES Examples: % ml=(mary ann bruce linda dara) % echo ${ml[*]} mary ann bruce linda dara % echo ${ml[2]} bruce % echo ${#ml} 4 9 CSCI 330 - The UNIX System

10 E XPORTING V ARIABLES Environment variable is created by exporting shell variable Syntax: export varname(s) declare –x varname(s) 10 CSCI 330 - The Unix System

11 V ARIABLES COMMANDS To delete both local and environment variables unset varname To prohibit change readonly varname list all shell variables (including exported) set 11 CSCI 330 - The Unix System

12 USING “SET” TO CHANGE OPTIONS “set” is a builtin command of bash “set +o” can be used to change an option To keep I/O redirection from overwriting a file set +o noclobber 12 CSCI 330 - The Unix System

13 VARIABLE MANIPULATION use portion of a variable’s value via: ${name:offset:length} name – the name of the variable offset – beginning position of the value length – the number of positions of the value Example: % SSN="123456789" % password=${SSN:5:4} % echo $password % 6789 13 CSCI 330 - The Unix System

14 S PECIAL VARIABLE USES ${#variable} number of characters in variable’s value ${variable:-value} if variable is undefined use “value” instead ${variable:=value} if variable is undefined use “value” instead, and set variable’s value ${varname:?message} if variable is undefined display error “message” 14 CSCI 330 - The Unix System

15 BASH S HELL P ROMPT can be set via “PS1” shell variable Example: % PS1="$USER > " z036473 > Secondary prompts: PS2, PS3, PS4 15 CSCI 330 - The UNIX System

16 BASH S HELL P ROMPT special “PS1” shell variable settings: \wcurrent work directory \hhostname \uusername \!history event number \ddate \ttime \aring the “bell” Example: % PS1= " \u@\h-\!: " ege@turing-22: 16 CSCI 330 - The UNIX System

17 C OMMAND H ISTORY L IST View or re-issue previously executed commands Size of history can be set via shell variables: HISTSIZE=500 HISTFILESIZE=100 Command line editing via keys: UP ARROW: move back one command in history list DOWN ARROW: move forward one command LEFT and RIGHT ARROW: move into command BACKSPACE and DELETE: Remove information TAB: complete current command or file name 17 CSCI 330 - The Unix System

18 I/O R EDIRECTION 18 CSCI 330 - The Unix System Command SyntaxShort Description cmd > fileSend output of cmd to file cmd >> fileAppend output of cmd to file cmd < fileTake input from file cmd << textRead stdin up to a line identical to text a.k.a “here command”

19 F ILE D ESCRIPTOR 19 CSCI 330 - The Unix System positive integer for every open file process tracks its open files with this number 0 – standard input 1 – standard output 2 – standard error output bash uses file descriptor to refer to a file

20 R EDIRECTION SYNTAX Output: > or 1> filename 2> filename Input: < or 0< Combining outputs: 2>&1 Example: % cat hugo > /tmp/one 2>&1 20 CSCI 330 - The Unix System

21 Q UOTING Quoting allows you to distinguish between the literal value of a symbol and the symbols used as code You need a way to distinguish between the literal symbol and the symbol’s use as a metacharacter or wild card characters To do this you must use of the following symbols: Backslash (\) Single quote (‘) Double quote (“) 21 CSCI 330 - The Unix System

22 A B ACKSLASH (\) A backslash is also called the escape character It allows you to preserve only the character immediately following it For example: to create a file named “tools>”, enter: % touch tools\> 22 CSCI 330 - The Unix System

23 T HE S INGLE Q UOTE (‘) A single quote is used to protect the literal meaning of metacharacters. It protects all characters within the single quotes The only character it cannot protect is itself A single quote cannot occur with other single quotes even if preceded by a backslash Examples: % echo 'Joe said 'Have fun'' Joe said Have fun % echo 'Joe said "Have fun"' Joe said "Have fun" 23 CSCI 330 - The Unix System

24 A D OUBLE Q UOTE (“) Double quotes protect all symbols and characters within the double quotes. Double quotes will not protect these literal symbols: $ (dollar sign), ! (history event), and \ (backslash). Examples: % echo "I've gone fishing'" I've gone fishing' % echo 'Jake won $500.00' Jake won $500.00 % echo "You've" earned '$5.00' You've earned $5.00 24 CSCI 330 - The Unix System

25 C OMMAND S UBSTITUTION Used to substitute the output of a command in place of the command itself Two forms of command substitution: $(command) `command` Examples: % echo "User $(whoami) is on $(hostname)" User ege is on lx % echo "Today is" `date` Today is Sun Jul 17 08:06:28 CDT 2007 25 CSCI 330 - The Unix System

26 U SING THE “ EVAL ” C OMMAND Evaluates a command line, performs all shell substitutions, and then executes the command line Used when normal parsing of the command line is not enough Results in a second round of variable substitution Same capability as in C-shell 26 CSCI 330 - The Unix System


Download ppt "CSCI 330 T HE UNIX S YSTEM Bash shell. B ASH S HELL S PECIFICS Shell login and logout files Shell variables Prompt History IO redirection 2 CSCI 330 -"

Similar presentations


Ads by Google