Download presentation
Presentation is loading. Please wait.
Published byDomenic Hutchinson Modified over 9 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.