Mini παρουσίαση και ιστορικά στοιχεία
From Chania-LUG Wiki
Τί ΔΕΝ είναι αυτή η παρουσίαση
- ΔΕΝ είναι Παρουσίαση.
- Δεν θα μάθουμε εντολές και how to linux administration.
- Δεν θα παρουσιάσουμε "κάτι" ιδιαίτερο και ΜΗ γνωστό.
- Δεν θα γράψουμε (εσείς τουλάχιστον) το επόμενο killer system administration script.
Τί κάνουμε λοιπόν εδώ;
- Ακούσουμε λίγα από αυτά που ξέρω για το bash.
- Ταλαιπωρία επειδή σας μιλάω εγώ.
- Εισαγωγή στο Bash scripting.
- Αρκετό workshop (κοινός, θα λερώσουμε τα χέρια μας).
Κύριε - κύριε... Τί είναι το bash?
Bourne Again SHell
- Free Software, γραμμένο σε C.
- Είναι παντού γύρω μας.
- Είναι το μόνο UI στο linux που δουλεύει out of the box.
- Interface μεταξύ του OS και του χρήστη.
Ιστορία
- 1978 Stephen Bourne έγραψε το sh για το Unix ver 7
- 1979 γεννήθηκα εγώ.
- 1987 Brian Fox γράφει το Bash για το FSF.
- 1990 ο Chet Ramey είναι ο κύριος maintainer.
- Τελευταία stable version 4.0.17 / 06-04-2009
- Υπάρχει για UNIX-like/ Mac OS X. Ακόμα και για windows μέσω Cygwin ή MSYS
Γιατί Bash?
- Όπως είπαμε είναι το μόνο UI που "απλά παίζει".
- To συντακτικό του είναι ανώτερο από το sh.
- Έχει build in commands.
- Ιδέες από τα csh και ksh όπως command line editing, command history, directory stack κ.α.
- Υλοποιεί arithmetic expansion $[], $(()), Brace expansion ${}, κ.α.
- Ι/Ο redirection
- Here docs
- Shell syntax, Shell functions, Shell parameters, Shell expansions, Redirections, Exec commands, Shell scrips
- Τέλος προσφέρει αϋπνίες
Και όλα αυτά μόνο με 12 άτοκες δόσεις.
Και πως το κάνει αυτό;
- Περιμένει από τον ανυποψίαστο χρήστη εντολές σε μορφή κειμένου
- Διαβάζει τις εντολές (μία αράδα τη φορά).
- Χωρίζει την κάθε εντολή σε λέξεις.
- Βλέπει τι μέρος του λόγου είναι η κάθε λέξη.
- Ρυθμίζει το I/O
- Βρίσκει τις εντολές και τις "τρέχει"
πχ: sort -n phonelist > phonelist.sorted
1) sort, -n, phonelist, >, phonelist.sorted
2) sort --> εντολή
-n και phonelist --> παράμετροι
phonelist.sorted --> οδηγίες για I/O
3) stdout --> phonelist.sorted
4) Βρίσκει την sort και την "τρέχει" με -n και phonelist
Είναι ακόμα ρηχά
- Interactive - Non interactive
- Login - Non login
Startup scripts system-wide: /etc/profile dot files: ~/.bash_profile ή ~/.bash_login ή ~/.profile, ~/.bashrc
A) Interactive login
- /etc/profile
- ~/.bash_profile ή ~/.bash_login ή ~/.profile
|_____________________________|__________> καλούν και το ~/.bashrc
- ~/.bash_logout (bye bye)
B) Interactive Non logins ή Remote logins (ssh, rlogin, telnet κ.α.)
- ~/.bashrc
Γ) Non Interactive
- Ότι πει η BASH_ENV
Δ) Σαν sh
- /etc/profile - ~/.profile
E) restricted shell
- πλάκα με κάνεις; Είπαμε είναι εισαγωγή!!
tip: echo $- i--> interactive m--> monitor mode B-->Brace expand
Γιατί bash scripting
- Είπαμε η κονσόλα είναι το μόνο UI στο linux που "απλά παίζει"
- Διεκπεραιώνει δύσκολες δουλειές πολύ εύκολα.
- Αυτοματοποίηση εργασιών.
- Απλά γιατί μπορούμε.