Login Shell SunOS 5.6 login: ikantz Password: Last login: Sat Dec 2 17:26:36 from ppp16.ath.aegean Sun Microsystems Inc. SunOS 5.6 Generic August 1997 $cat.profile /09/15 SMI # PATH=/usr/bin:/usr/ucb:/etc:. # Set path export PATH stty erase ‘^h’ # Set backspace character to erase HOME=/home/$LOGNAME TERM=vt100 # Set the terminal definition export TERM umask 022 # Set the user’s umask value msg –n# Refuse messages from other terminals calendar $exit
Standard Input and Output (I/O) Command Standard Output Standard Input File Screen Command File Keyboard Command Shell Redirection Operators ΣύμβολοΠαράδειγμαΛειτουργία <cmd < file Είσοδος από το file για την cmd >cmd > file Εξοδος από τη cmd στο file >>cmd >> file Προσθήκη εξόδου από τη cmd στο file |cmd1 | cmd2 Εξοδος από τη cmd1 ως είσοδος στη cmd2
Παραδείγματα Ανακατεύθυνσης Εισόδου - Εξόδου Ανακατεύθυνση εξόδου $ls –l > temp $cat conf > meetings $cat conf >> meetings Ανακατεύθυνση Εισόδου $cat < chap1ή$ cat chap1 Ανακατεύθυνση Εισόδου και Εξόδου $sort file2ή $ sort >file2 < file1 $ls –l | lp $ls –l | grep khr | lp
Μεταβλητές Κελύφους (Shell Variables) Τηρούν πληροφορίες για τον καθορισμό χαρακτηριστικών που θα χρησιμοποιηθούν από τα προγράμματα του συστήματος. Οι μεταβλητές που καθορίζουν χαρακτηριστικά του υπολογιστικού περιβάλλοντος του χρήστη καλούνται μεταβλητές περιβάλλοντος. Τα ονόματα τους είναι με κεφαλαία (π.χ. PATH). Η τιμή τους παρέχεται από το $ ακολουθούμενο από το όνομα της μεταβλητής (π.χ. $PATH). Ορίζονται είτε απ’ευθείας στο shell prompt, είτε στο αρχείο.profile, είτε αυτόματα από το σύστημα. Η εμφάνιση της τιμής μιας μεταβλητής γίνεται με χρήση της εντολής echo.
Μεταβλητές Περιβάλλοντος (Environmental Variables) ΜεταβλητήΠεριγραφήΠαράδειγμαΠαρατηρήσεις HOMEΜονοπάτι του login καταλόγου HOME=/users/students/ cs Ορίζεται αυτόματα κατά το login PATHΛίστα καταλόγων που αναζητά το shell τις εντολές PATH=/bin:/home/you/b in: Ορίζεται αυτόματα κατά το login CDPATHΛίστα καταλόγων που αναζητά η cd CDPATH=/home/notes:/ home/you/Exercises Ορίζεται από το χρήστη PS1Πρωτεύον shell prompt PS1=$LOGNAME:Αρχικά είναι $ PS2Δευτερεύον shell prompt PS2=#Αρχικά είναι > LOGNAMEΤο login name του χρήστη LOGNAME=cs201999Ορίζεται αυτόματα κατά το login
Μεταβλητές Περιβάλλοντος (Environmental Variables) ΜεταβλητήΠεριγραφήΠαράδειγμαΠαρατηρήσεις MAILΤο αρχείο που περιέχει το mail MAIL=/var/cs201999/ Mail Χρησιμοποιείται από το shell για ειδοποίηση mail MAILFILEΤο αρχείο που περιέχει το νέο mail για τη mailx MAILFILE=/var/mail/ $LOGNAME Χρησιμοποιείται από τη mailx SHELLΤο μονοπάτι του shell του χρήστη SHELL=/bin/shΟρίζεται αυτόματα. Χρησιμοποιείται από προγράμματα όπως ο editor vi TERMΟρίζεται ο τύπος του τερματικού TERM=vt100Ορίζεται από το χρήστη. Δεν έχει αρχική τιμή TZΠληροφορίες για τη ζώνη χρόνου TZ=EST5EDTΟρίζεται από το σύστημα
Χρήση Μεταβλητών $echo hi there hi there $echo $PATH /bin:/home/you/bin:/var/add-on/bin: $mv notes $HOME/Stuff $set $PS1=“hi there:” $PROJ=“/home/you/eork/new/urgent” $mv file $PROJ $mv file PROJ $env $TERM=vt100 export TERM
Είσοδος-Εξοδος στον Προγραμματισμό στο Shell echo.Η εντολή echo. Εμφανίζει τις παραμέτρους στο standard output, άμεσα ή μέσα από script. $echo This is a test.$ cat > show_args This is a test.echo $0 $echo $PATH.echo $1 /bin:/usr/bin:/usr/lbin:/home/becca/bin:echo $* $echo `date`#Command substitution.^c $echo ‘date’$ sh show_args hi there echo Escape Sequencies \bBackspace\tTab \cNo newline\vVertical tab \fForm feed\\Backslash \nNewline\0nΤο οχταδικό ASCII code οποιουδήποτε χαρακτήρα \rReturn
read.Η εντολή read. Επιτρέπει την είσοδο δεδομένων του χρήστη στο script άμεσα. Διαβάζει μία μόνο γραμμή από τα δεδομένα εισόδου του χρήστη και εκχωρεί τιμές σε μία ή περισσότερες μεταβλητές του shell. Παράδειγμα 1Παράδειγμα 2 $cat > test1$ cat > test2 echo “Terminal type:\c”# test2 – break user input into separate fields read TERMecho “Type some stuff and see what happens:” export TERMread word1 word2 word3 word4 word5 echo $TERMecho $word1 ^cecho $word2 word3 echo $word4 echo $word5 ^c Είσοδος-Εξοδος στον Προγραμματισμό στο Shell
Εντολές του Shell Η εντολή if if command then commands fi Παράδειγμα if$OPTION –eq 1 then cat file fi Η εντολή if…elif…else if command; then command(s) elifcommand; then command(s) else command(s) fi
Εντολές του Shell Η εντολή case case string in pattern-list) command line … ;; pattern list) command line … ;; esac Παράδειγμα # # del # echo “Remove this file? \c readOK case$OK in y*) echo “Removing file.” rm $1 ;; n*) echo “File will not be removed” ;; esac
Εντολές του Shell Το for loop fori in list do commands done Παράδειγμα 1 $ fori in do echo “Hello World” done Παράδειγμα 2 # # telno – takes numbers as # arguments, and looks up each # name in the phone/numbers file # for i do grep $1 $HOME/phone/numbers done $ telno fred jim ken lynne
Εντολές του Shell Η εντολή while while commands1 do commands2 done Η εντολή true while true do commands done Η εντολή until until commands1 do commands2 done Η εντολή false until false do commands done