Shell Features CSCI N321 – System and Network Administration Copyright © 2000, 2005 by Scott Orr and the Trustees of Indiana University
Section Overview I/O Substitution Pathname Substitution Parameter/Variable Substitution Command Substitution
References CQU 85321 System Administration Course Textbook Lectures Chapter 7 Lectures 2002 #6
UNIX Shell Enables users to enter commands Text based Similar to MSDOS Command Prompt (but are much more powerful) Common Shells Bourne: sh, ksh, bash C: csh, tcsh
Shell Features Environment variables and aliases History of commands used Programming constructs Added features in newer shells Command line editing Command line completion Shell configuration files
Command History/Editing Most shells maintain a history of previously entered commands history: View list of commands !#: Rerun command number # Command line editing Up/down arrow keys to cycle through list Left/right arrow keys to move within listed command <ctrl><a>: move to start of command line <ctrl><e>: move to end of command line
Command Aliases Shortcut for command line Set/view using the alias command Examples: alias ls='ls --color=tty' alias rm='rm –i'
Shell Variables Customize environment Shared settings for programs Assigning Variables: var=“value” Referencing Variables: $var Viewing variables: set, printenv Variables are case sensitive
Special Shell Variables HOME – User’s home directory path SHELL – Current shell UID – User’s UID number PATH – Program search path PS1/PS2 – Format for command prompt (prompt for csh/tcsh) Must use “export” to set variables in shell
bash Shell Logins /bin/bash /etc/profile.d/ /etc/bashrc /etc/profile ~/.bash_profile ~/.bashrc or ~/.bash_login ~/.profile or
Parsing the Command Line Breaks the command line into components Special Characters modify operation How command runs Filename Expansion I/O redirection Quotes
Command Run Modifiers Write Space – Separate arguments Newline (<cr>) – End of line Special Characters Character Meaning ; Separate multiple command on same line & Run command in the background \ At end of line, continue on next line || && Logical operators based on exit status
Filename Expansion Special characters representing multiple filenames Also referred to as globbing Character Matches * 0 or more characters ? 1 character [ ] Matches any 1 character in [ ] (including ranges) [^ ] Matches any 1 character not in [ ]
command << label I/O Redirection Modifies how input and output is used Chain command to solve bigger tasks Characters Result command < file Use file as input for command command > file Store command output in file command >> file Append command output to file command << label Input from standard input until label `command` Execute command then replace command name with its output cmd1 | cmd2 Use output from cmd1 as input to cmd2
Standard File Descriptors Special file pointers for input and output Extension from C language Name Descriptor Default Device Standard input (stdin) Keyboard Standard output (stdout) 1 Screen Standard error (stderr) 2
Using File Descriptors Finer control over input/output redirection stdout and stderr can be redirected to same file Characters Result command 2> file stderr output stored in file cmd >& <file-descriptor> Output redirected to <file-descriptor> Cmd > file 2>&1 Stderr & stdout redirected to file
Quote Characters Prevent special characters from being interpreted by the shell Character Name Action ‘ Single Quote Shell ignores all special characters enclosed ‘ ’ “ Double Quote Shell ignores all special characters enclosed “ ” except for $ ‘ \ \ Backslash Shell ignores character immediately following \