Mini παρουσίαση και ιστορικά στοιχεία

From Chania-LUG Wiki

Jump to: navigation, search

Επιστροφή

Τί ΔΕΝ είναι αυτή η παρουσίαση

  • ΔΕΝ είναι Παρουσίαση.
  • Δεν θα μάθουμε εντολές και 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 που "απλά παίζει"
  • Διεκπεραιώνει δύσκολες δουλειές πολύ εύκολα.
  • Αυτοματοποίηση εργασιών.
  • Απλά γιατί μπορούμε.

Επιστροφή

Personal tools