1 / 17

Unix Shell Environments

Unix Shell Environments. September 27, 2004 Class Meeting 6, Part I. * Notes adapted by Lenwood Heath from previous work by other members of the CS faculty at Virginia Tech. Shell Characteristics. Command-line interface between the user and the operating system

brooke
Télécharger la présentation

Unix Shell Environments

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Unix Shell Environments September 27, 2004 Class Meeting 6, Part I * Notes adapted by Lenwood Heath from previous work by other members of the CS faculty at Virginia Tech

  2. Shell Characteristics • Command-line interface between the user and the operating system • Automatically starts on login, waits for user to type in commands • Both a command interpreter and a programming language • Shell script is a text file containing logic for shell interpretation Lenwood Heath, Virginia Tech, Fall, 2004

  3. Shell Interactivity • Command line parsing • Environment • Textual completion • Aliases • Command line editing • Command history • Configuration Lenwood Heath, Virginia Tech, Fall, 2004

  4. Shell Programming • Variables • Control structures • Loops and conditionals • Function definition and invocation • Shell scripts • Next lecture Lenwood Heath, Virginia Tech, Fall, 2004

  5. Various Unix Shells • sh (Bourne shell, original Unix shell) • ksh (Korn shell) • csh (C shell, developed at Berkeley) • tcsh • bash (Bourne again SHell) • Default user shell in Linux • http://www.faqs.org/faqs/unix-faq/shell/shell-differences/ Lenwood Heath, Virginia Tech, Fall, 2004

  6. Bourne Again SHell • bash is the standard shell for this class • Superset of the Bourne shell (sh) • Borrows features from sh, csh, tcsh, and ksh • Part of the GNU project Lenwood Heath, Virginia Tech, Fall, 2004

  7. Environment Variables • A set of variables the shell uses for certain operations • Variables have a name and a value • Current list can be displayed with the env command • Send value of varname to standard output with echo $varname Lenwood Heath, Virginia Tech, Fall, 2004

  8. Environment Variable Examples • [cs2204@acorn bin]$ echo $PS1 [\u@\h \W]\$ • [cs2204@acorn bin]$ echo $PATH /usr/local/bin:/bin:/usr/X11R6 bin:/usr/games:/home/courses/ cs2204/bin Lenwood Heath, Virginia Tech, Fall, 2004

  9. Setting Environment Variables • Set variable with varname=value • PS1=$USER@$HOSTNAME: • Change default shell prompt • PS1="bash rules> " • PATH=$PATH:$HOME/bin • Append :$HOME/bin to PATH • PATH=$PATH:~:. • Append :~:. to PATH • DATE=`date` or DATE=$(date) • Capture output from date command Lenwood Heath, Virginia Tech, Fall, 2004

  10. Textual Completion • <tab> attempts to complete the current command or filename • pus<tab> expands to pushd<space> • pu<tab> gives the alternatives pu pup pushd • In /etc, entering ll modu<tab> gives modules modules.conf modules.devfs [cs2204@blackberry etc]$ ll modules Lenwood Heath, Virginia Tech, Fall, 2004

  11. Aliases • alias shortcut=command • Examples • alias pu=pushd • alias po=popd • alias l="ls –F –C" • alias ll="ls –L –l –F" • alias d=dirs • alias hide="chmod og-rwx" • alias unhide="chmod og+r" Lenwood Heath, Virginia Tech, Fall, 2004

  12. Command History • Use history command to list previously entered commands • Use fc –l <m> <n> to list previously typed commands from m through n • Use up and down cursor keys to scroll through history list Lenwood Heath, Virginia Tech, Fall, 2004

  13. Editing on the Command Line • bash provides a number of line editing commands • Default emacs-mode commands • Esc-b Move back one word • Esc-f Move forward one word • Ctrl-a Move to beginning of line • Ctrl-e Move to end of line • Ctrl-k Kill text from cursor to end of line Lenwood Heath, Virginia Tech, Fall, 2004

  14. Login Scripts • Startup scripts executed at login • /etc/profile • ~/.bash_profile • ~/.bash_login (if no .bash_profile) • ~/.profile (if neither are present) • ~/.bashrc • Script executed upon logout • ~/.bash_logout Lenwood Heath, Virginia Tech, Fall, 2004

  15. Example .bash_profile (partial) # .bash_profile # include .bashrc if it exists if [ -f ~/.bashrc ]; then . ~/.bashrc fi # Set variables for a warm fuzzy environment export CVSROOT=~/.cvsroot export EDITOR=/bin/vi export PAGER=/usr/bin/less Lenwood Heath, Virginia Tech, Fall, 2004

  16. Example .bashrc (partial) # .bashrc # abbreviations for some common commands alias bye=logout alias h=history alias l='ls -F -C' alias ll='ls -L -l -F' alias po=popd alias pu=pushd Lenwood Heath, Virginia Tech, Fall, 2004

  17. interactive shell interactive shell interactive shell Login and Other Shells login shell /etc/profile~/.bash_profile~/.bashrc ~/.bashrc ~/.bashrc ~/.bashrc Lenwood Heath, Virginia Tech, Fall, 2004

More Related