Τι είναι το σενάριο Shell και γιατί πρέπει να το χρησιμοποιήσετε

Τι είναι το σενάριο Shell και γιατί πρέπει να το χρησιμοποιήσετε

Το κέλυφος είναι ένα πρόγραμμα στο λειτουργικό σύστημα Linux ή Unix που σας επιτρέπει να εισάγετε εντολές για εκτέλεση από το σύστημα. Όταν ανοίξει ένα παράθυρο τερματικού σε έναν υπολογιστή Linux, ξεκινά το πρόγραμμα κελύφους το οποίο παρουσιάζει μια διεπαφή για την εισαγωγή εντολών. Αυτή η διεπαφή είναι γνωστή ως διεπαφή γραμμής εντολών. Όταν εισαχθεί μια εντολή, εκτελείται από το κέλυφος και η έξοδος εμφανίζεται στην οθόνη.





Εκτός από την ικανότητα αποδοχής και εκτέλεσης εντολών διαδραστικά, το κέλυφος μπορεί επίσης να εκτελέσει εντολές αποθηκευμένες σε ένα αρχείο. Αυτός ο τρόπος εκτέλεσης είναι γνωστός ως κέλυφος σεναρίου , και σε αυτό το άρθρο καλύπτουμε τα βασικά της δέσμης ενεργειών κελύφους.





1. Ιστορία του κελύφους

Ξεκινώντας με το Unix τη δεκαετία του 1970, υπήρχε ένα πρόγραμμα κελύφους που ονομάζεται the V6 Shell αναπτύχθηκε από τον Ken Thomson. Ταν ένα διαδραστικό κέλυφος και δεν είχε ικανότητα σεναρίου.





Ακολούθησε η Bourne Shell το 1977 και παραμένει σε χρήση σήμερα ως το προεπιλεγμένο κέλυφος για το ρίζα λογαριασμός. Αυτό το κέλυφος πρόσθεσε ικανότητες σεναρίου, οι οποίες αποδείχθηκαν εξαιρετικά χρήσιμες στην πράξη με τα χρόνια.

Η περαιτέρω ανάπτυξη του κελύφους στη δεκαετία του 1980 δημιούργησε πολλές δημοφιλείς παραλλαγές κελύφους, οι πιο δημοφιλείς από τις οποίες ήταν οι C-Shell και το Korn Shell Το Κάθε ένα από αυτά τα κελύφη έφερε τη δική του σύνταξη η οποία, σε ορισμένες περιπτώσεις, ήταν δραστικά διαφορετική από το αρχικό κέλυφος.



Ένα από τα πιο δημοφιλή κοχύλια σήμερα είναι το Bash Shell Το Το Bash σημαίνει Bourne-Again-Shell και είναι μια πολύ βελτιωμένη παραλλαγή του αρχικού Bourne Shell.

ιστοσελίδες για να αγοράσετε φθηνά πράγματα στο διαδίκτυο

Σε αυτό το άρθρο, περιγράφουμε το σενάριο κελύφους για το Bash Shell Το





2. Εκτέλεση σεναρίου Shell

Πώς εκτελείτε ένα σενάριο κελύφους; Απλός. Απλώς περάστε τη διαδρομή δέσμης ενεργειών ως επιχείρημα στο κέλυφος:

Ένα δείγμα σεναρίου κελύφους:





echo 'hello world'

Εκτελέστε το ως εξής:

$ bash hello.sh
# prints
hello world

Σημείωση: Το κέλυφος απαιτεί να τερματιστούν οι γραμμές από χαρακτήρες LF (Τροφοδοσία γραμμής). Εάν γράψετε το σενάριο κελύφους σας στα Windows και προσπαθήσετε να το εκτελέσετε απευθείας σε σύστημα Linux, ενδέχεται να αντιμετωπίσετε σφάλματα. Τα Windows χρησιμοποιούν συνδυασμό CR-LF (Carriage-Return-Line-Feed) για τερματισμό γραμμής. Αυτό πρέπει να μετατραπεί σε LF μόνο. Ελέγξτε τον επεξεργαστή Windows για τρόπους να το κάνετε αυτό.

Υπάρχει ένας άλλος τρόπος για να εκτελέσετε ένα σενάριο κελύφους απευθείας ως εντολή. Εισαγάγετε την ακόλουθη γραμμή (το hashbang δήλωση) ως την πρώτη γραμμή του σεναρίου κελύφους.

πώς να προσθέσετε καρτέλες στο excel
#!/bin/bash

Με αυτήν την αλλαγή, το απλό σενάριο κελύφους μας είναι τώρα:

#!/bin/bash
echo 'hello world'

Τώρα, πρέπει να κάνετε το αρχείο σεναρίου εκτελέσιμο ως εξής:

$ chmod +x hello.sh

Σε αυτό το σημείο, μπορείτε να εκτελέσετε το αρχείο δέσμης ενεργειών απευθείας χωρίς να χρειάζεται να αναφέρετε ρητά το κέλυφος.

$ hello.sh
# prints
hello world

Ας δούμε τώρα μερικά πλεονεκτήματα της χρήσης σεναρίων κελύφους.

3. Αυτοματοποίηση εργασιών

Το πρώτο πλεονέκτημα της χρήσης σεναρίων κελύφους είναι η αυτοματοποίηση εργασιών που εκτελούνται συχνά. Ας υποθέσουμε ότι έχετε μια εργασία που πρέπει να εκτελείτε καθημερινά. Εάν πρέπει να εκτελείτε πολλές εντολές στο σύστημά σας linux καθημερινά, μπορείτε να αποθηκεύσετε αυτές τις εντολές σε ένα αρχείο και να εκτελέσετε το σενάριο. Τα παραδείγματα περιλαμβάνουν:

  • Αρχειοθετήστε και ανεβάστε ένα αρχείο ή φάκελο καθημερινά στο a εγκατάσταση αποθήκευσης cloud όπως το S3.
  • Συμπίεση αρχείων καταγραφής που τείνουν να αυξάνονται καθημερινά.
  • Ανακτήστε τις τιμές των μετοχών, αναλύστε τα ανακτηθέντα δεδομένα και ενεργοποιήστε ένα email ή SMS όταν πληρούνται ορισμένες προϋποθέσεις (πολύ υψηλές ή πολύ χαμηλές τιμές).

4. Συνδυασμός πολλαπλών εντολών

Εκτός από την αυτοματοποίηση συχνών εργασιών, μπορεί επίσης να σας φανεί συμφέρουσα η δυνατότητα συνδυασμού πολλαπλών ακολουθιών εντολών σε μία μόνο εντολή. Η απομνημόνευση μιας μόνο εντολής είναι πολύ απλούστερη από πολλές εντολές, για να μην αναφέρουμε τη σειρά με την οποία πρέπει να εκτελεστούν.

Ένα παράδειγμα θα ήταν η ακολουθία εκκίνησης του ίδιου του λειτουργικού συστήματος Linux. Ως μέρος της εκκίνησης, το λειτουργικό σύστημα εκτελεί μια σειρά εντολών για να φτάσει το σύστημα σε σωστή κατάσταση. Αυτές οι εντολές είναι στην πραγματικότητα σενάρια κελύφους που ζουν κάτω από το /και τα λοιπά Ευρετήριο. Αν ρίξετε μια ματιά σε ένα από αυτά τα σενάρια κελύφους, θα συνειδητοποιήσετε την πολυπλοκότητα της εκκίνησης ενός συστήματος, το οποίο ίσως έπρεπε να εκτελέσετε με το χέρι, ελλείψει σεναρίων κελύφους.

Το παρακάτω είναι ένα δείγμα σεναρίου κελύφους, /etc/προφίλ , η οποία εκτελείται κάθε φορά που συνδέεται ένας χρήστης. Φανταστείτε να πληκτρολογείτε αυτές τις εντολές με το χέρι!

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. Ευκολότερο να αναπτυχθεί

Είναι δυνατό να εκτελέσετε τις ίδιες ενέργειες με ένα σενάριο κελύφους μέσα σε ένα κανονικό πρόγραμμα γραμμένο σε C/C ++. Ωστόσο, είναι πολύ πιο εύκολο να γράψετε και να διορθώσετε ένα σενάριο κελύφους από ένα πρόγραμμα C/C ++. Ειδικά για εργασίες διαχείρισης συστήματος που περιλαμβάνουν εκτέλεση εξωτερικών εντολών, δημιουργία και αφαίρεση αρχείων και καταλόγων, ανακατεύθυνση εξόδου κ.λπ.

Τα προγράμματα C/C ++ είναι καλύτερα για πολύ χαμηλότερο επίπεδο λειτουργίας, όπως επίκληση κλήσεων συστήματος, χειρισμός δομών δεδομένων κ.λπ.

6. Διαφάνεια

Ένα σενάριο κελύφους, λόγω του ότι είναι αρχείο κειμένου, μπορεί εύκολα να προβληθεί για να ελέγξει ποιες ενέργειες εκτελεί. Αντίθετα, ο μόνος τρόπος για να μάθετε ποτέ τι κάνει ένα πρόγραμμα γραμμένο σε γλώσσα όπως το C/C ++ (και μεταγλωττισμένο σε εκτελέσιμο) είναι εάν επιλέξει να σας το πει ή εάν έχετε πρόσβαση στον πηγαίο κώδικα. Για παράδειγμα, μπορείτε να ελέγξετε εάν ένα σενάριο κελύφους διαγράφει τυχόν αρχεία και εάν τα χρειάζεστε, μπορείτε να τα αντιγράψετε σε διαφορετική τοποθεσία.

Είναι επίσης πολύ πιο εύκολο να διαγνωστούν προβλήματα με σενάρια κελύφους παρά με κανονικά προγράμματα, αφού μπορείτε να δείτε τον πηγαίο κώδικα. Αυτό το σενάριο αποτυγχάνει επειδή δεν υπάρχει κατάλογος; Μπορείτε να αναζητήσετε τον κώδικα δέσμης ενεργειών και να δημιουργήσετε τον κατάλογο (αν και ένα σενάριο κελύφους με καλή συμπεριφορά θα πρέπει να το ελέγξει και να το δημιουργήσει για να αποφευχθούν τέτοια σφάλματα).

7. Φορητό

ΠΡΟΣ ΤΟ κέλυφος σενάριο μπορεί να μεταφερθεί σε άλλα λειτουργικά συστήματα Unix και Unix και να εκτελεστεί (εάν υπάρχει το ίδιο το κέλυφος). Ακόμη και κατά τη μεταφορά ενός σεναρίου κελύφους από διαφορετικές αρχιτεκτονικές, όπως x86, MIPS, Sparc, κλπ., Τα σενάρια κελύφους είναι πολύ πιο φορητά από τα προγράμματα C/C ++.

Ο μόνος τρόπος με τον οποίο ένα πρόγραμμα C/C ++ μπορεί να μεταφερθεί και να χρησιμοποιηθεί σε άλλο σύστημα είναι να αντιγράψετε τον πηγαίο κώδικα, να δημιουργήσετε το πρόγραμμα και να προσπαθήσετε να το εκτελέσετε. Ακόμα και τότε, ενδέχεται να μην λειτουργεί όπως αναμένεται εάν χρησιμοποιεί κώδικα συγκεκριμένης αρχιτεκτονικής.

Τώρα που έχετε μια ιδέα τι είναι τα σενάρια κελύφους και τα πολλά πλεονεκτήματά τους, δεν θα θέλατε να τα χρησιμοποιήσετε για τις εργασίες σας; Ποια προβλήματα αντιμετωπίσατε κατά τη χρήση τους; Ενημερώστε μας στα παρακάτω σχόλια.

τι να κάνετε αν πιστεύετε ότι το τηλέφωνό σας έχει παραβιαστεί
Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ 5 Συμβουλές για την υπερφόρτιση των μηχανών σας VirtualBox Linux

Έχετε κουραστεί από τις κακές επιδόσεις που προσφέρουν οι εικονικές μηχανές; Δείτε τι πρέπει να κάνετε για να αυξήσετε την απόδοση του VirtualBox.

Διαβάστε Επόμενο
Σχετικά θέματα
  • Προγραμματισμός
  • Linux Bash Shell
Σχετικά με τον Συγγραφέα Jay Sridhar(Δημοσιεύθηκαν 17 άρθρα) Περισσότερα από τον Jay Sridhar

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή