Bash + Shell

Είναι δωρεάν, είναι σταθερό, είναι γρήγορο.. ας το γνωρίσουμε και λίγο καλύτερα..

Συντονιστές: Super-Moderators, Software & Hardware Moderators

Απάντηση
id12586
στις καρδιές μας
Δημοσιεύσεις: 8387
Εγγραφή: 23 Ιουν 2003 23:28
Τοποθεσία: Far away
Επικοινωνία:

Bash + Shell

Δημοσίευση από id12586 » 08 Νοέμ 2008 00:12

Και με αποδείξεις απο τους linux guru :D :victory:
Chris at your Services
ΕικόναSacame de Aqui

Άβαταρ μέλους
cristusflo
Δημοσιεύσεις: 307
Εγγραφή: 07 Οκτ 2007 00:36
Τοποθεσία: Salonica city
Επικοινωνία:

Bash + Shell

Δημοσίευση από cristusflo » 08 Νοέμ 2008 00:21

νομιζω δεν εχω τπτ αλλο να προσθεσω... :D

Eυχαριστώ πολυ ολους που βοηθησαν να ξεκαθαρισω καποια θεωρητικα πραγματα!! :)

Άβαταρ μέλους
CyberCr33p
Honorary Member
Δημοσιεύσεις: 3194
Εγγραφή: 06 Νοέμ 1999 01:00
Τοποθεσία: Αθήνα
Επικοινωνία:

Bash + Shell

Δημοσίευση από CyberCr33p » 08 Νοέμ 2008 10:06

Επίσης τα περισσότερα εργαλεία που θα χρησιμοποιήσεις σε κάποιο shell script υπάρχουν εδώ και πολλά χρόνια (με αναβαθμίσεις από τότε) και είναι δοκιμασμένα και αξιόπιστα.

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Bash + Shell

Δημοσίευση από soteres2002 » 09 Νοέμ 2008 16:40

Επίσης, εγώ να συμπληρώσω σε όλα όσα σου είπαν τα άλλα μέλη ότι ένα shell είναι σαν όλα τα άλλα προγράμματα. Συγκεκριμένα, το shell είναι ένα command line interface και όχι command line που το είπες εσύ. Command line λέγεται πχ το "ls -R" που είναι μια τυχαία είσοδος σε ένα οποιοδήποτε command line interface. Επίσης, ένα shell το μόνο που κάνει είναι να διαβάζει 1 string τη φορά και να το περνάει στο λειτουργικό μέσω μιας ειδικής κλησης συστήματος που την παρέχει το λειτουργικό και όχι το shell (για αυτό είναι απλά ένα πρόγραμμα). Οτιδήποτε άλλο σου παρέχει ένα shell είναι δυνατότητες που έχουν υλοποιηθεί μέσα στο shell (πχ ενσωματωμένοι τύποι, command editing, μεταβλητές, δική του scripting γλώσσα). Επειδή πριν 2 δεκαετίες ένα τέτοιο πρόγραμμα ήταν πολύ βασικό, όλες αυτές οι δυνατότητες είχαν σοβαρό λόγο να ενσωματωθούν μέσα στο κέλυφος (φυσικά και σήμερα εξακολουθεί να υπάρχει τέτοια ανάγκη). Οτιδήποτε "σάλτσα" προστίθεται μέσα στο shell για χάρην ευχριστίας προς τον user (αναφέρομαι σε μερικές από τις δυνατότητες που είπα πριν) όλα καταλήγουν σε μια κλήση συστήματος που παρέχει το λειτουργικό. Το μόνο στοιχειώδες πράγμα που απαιτείται από ένα τέτοιο πρόγραμμα να κάνει είναι να παίρνει μια συμβολοσειρά και να την αναλύει σε tokens (κάποια από αυτά ειτε έχουν ειδική σημασία είτε αναφέρονται σε κάποιο πρόγραμμα προς εκτέλεση). πχ στο bash shell το

Κώδικας: Επιλογή όλων

while [ 1 ]; do
    echo "hello world!"
done
αναλύεται συνατικά (δυνατότητα του shell) και εν τέλει καταλαβαίνει ότι του περιέγραψες έναν ατέρμονα βρόχο που εκτέλεί ένα πρόγραμμα με όνομα echo που παίρνει ένα όρισμα ""hello world!"". Αυτή την εντολή την περνά με μια κλήση συστήματος στον πυρήνα ο οποίος φροντίζει να την εκτελέσει όπως ένας απλός interpreter και να ενημερώσει σχετικά το shell. Δεν μιλάμε για επιτακτικές γλώσσες όπως C που μεσολαβεί compiler που δίνει ώς έξοδο περιγραφή σε 0 1 της λογικής του προγράμματος.

To ίδιο συμβαίνει και με τα windows, ο σχεδιασμός είναι ίδιος, οι κλήσεις συστήματος προφανώς διαφέρουν καθώς και η σύνταξη των command lines η οποία περιγράφεται στα manuals του shell. Το γνωστό σε όλους cmd.exe απλά διαβάζει συμβολοσειρές σαν είσοδο και φροντίζει να το αντιστοιχίσει σε κάποιο πρόγραμμα (το "ls" πχ είναι είτε κάποιο πρόγραμμα είτε να είναι μια εντολή που είναι υλοποιημένη μέσα στο shell). Αν δώσεις ώς είσοδο μια λογική πρόταση, φροντίζει να την αναλύσει συντακτικά και μετά να την εκτελέσει => εκτελεί προγράμματα με βάση τη λογική που του περιγράφεις με την είσοδο που έδωσες.

spbal
Δημοσιεύσεις: 1
Εγγραφή: 28 Φεβ 2010 10:17

Bash + Shell

Δημοσίευση από spbal » 28 Φεβ 2010 10:29

γεια σας,

ψάχνω για κάποιο καλό tutorial ή βιβλίο(ακόμη καλύτερα) για προγραμματισμό . για παράδειγμα στο νετ είδα http://www.gnu.org/software/bash/manual/bashref.html αλλα ηθελα να ρωτησω αν υπαρχει καποιο καλο βιβλιο. εσεις απο που μαθατε ?

ευχαριστώ.


Άβαταρ μέλους
Hermeia
Honorary Member
Δημοσιεύσεις: 987
Εγγραφή: 02 Αύγ 2004 00:14
Τοποθεσία: Αθήνα
Επικοινωνία:

Bash + Shell

Δημοσίευση από Hermeia » 09 Μαρ 2010 19:02

εγώ διαβάζω μόνο κείμενα που υπάρχουν online - σχεδόν άπειρα για το Linux

άρχισα με το Bash Guide for Beginers (θα το βρεις σε .pdf, txt, html .. μόνο κεφι να έχεις να ψαχνεις..)
& το Advanced Bash Scripting Guide (κυκλοφορεί σε αρχείο με τιτλο abs.pdf / abs.txt]
Linux Shell Script Beginer's Handbook
...

.. αν ψάξεις λίγο πιο ζόρικα, θα βρεις αντίστοιχα κείμενα και στα ελληνικά - συχνά σημειώσεις απο σχολες.. ενα απο αυτά είναι μια υπέροχη καλογραμμένη εισαγωγή στο λινουξ γενικά και στο bash .. κι όχι μόνο.. :

Χρήση του λειτουργικού συστήματος Unix/Linux,
Μανόλης Παπαστεφανάκης

Κώδικας: Επιλογή όλων

http://dsphinx.plug.gr/linux_el/Unix-Linux usage - ver. 1.18.pdf
(προσοχή στα κενά εντός του συνδέσμου..)

Απο την άποψη του πρακτικού χρήστη που απλά θέλει να κάνει τη δουλειά του και δεν ενδιαφέρεται για θεωρίες.. πριν μερικά χρόνια θα έλεγα ότι ένα bash script είναι κάπως παράλληλο με ένα .bat αρχείο... με τη ένοια ότι βάζει στη σειρά και εκτελεί μια σειρά απο εντολές του συστήματος.. Αυτή είναι η πρώτη χρήση του για τον αρχάριο..
Αλλα θα ήταν ιεροσυλία μια ένας τέτοιος παραλληλισμός, αν σκεφτεί κανείς πόσο πολλές και δυνατές εντολές έχει το linux, αλλα και εναλλακτικούς ελέγχους, και μεταβλητές κλπ..
Μια ματιά στα σχετικά κείμενα θα σε πείσει..
Με λιγώτερα λόγια .. ένα τέτοια script αυτοματοποιεί δυναμικά εν είδη προγραμματισμού συνδυασμούς από όλες τις εργασίες που μπορείς τα κάνεις με εντολές του Linux .. Ο μόνος περιορισμός είναι η φαντασία σου.

Απάντηση

Επιστροφή στο “Linux Guide”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης