Ο οδηγός για αρχάριους για scripting σε Linux
Έχετε ποτέ θελήσει να μάθετε "scripting" στο Linux; Κάνοντας τους είναι πιο εύκολο από ό, τι νομίζετε. Μερικές φορές σενάρια (που συχνά αναφέρονται ως κέλυφος ή scripts bash) είναι πραγματικά προγράμματα με περίπλοκο κώδικα μέσα. Άλλες φορές είναι απλώς ένας μεγάλος κατάλογος καθηκόντων που οι χρήστες έβαλαν μαζί για να κάνουν τα πράγματα γίνονται πιο γρήγορα και ευκολότερα στο Linux.
Σε αυτό το άρθρο αποφασίσαμε να κάνουμε έναν γρήγορο οδηγό που εξηγεί πώς να δημιουργήσετε ένα βασικό σενάριο κελύφους κάτω από το Linux. Αυτό το σεμινάριο δεν θα σας μετατρέψει σε εμπειρογνώμονα Bash ή scripting. Αντ 'αυτού, θα σας δείξει πόσο εύκολο είναι να ξεκινήσετε (και τις βέλτιστες πρακτικές) scripting στο Linux.
Γιατί θα κάνατε σενάριο;
Η δημιουργία σεναρίων στο Linux είναι μια πολύ χρήσιμη ικανότητα. Ακόμα κι αν δεν καταλαβαίνετε πλήρως τον Bash, μπορείτε να χρησιμοποιήσετε τις περιορισμένες γνώσεις σας για το τερματικό για να αυτοματοποιήσετε και να "ολοκληρώσετε μαζικά" μερικές εργασίες ή απλά να ανοίξετε πολλές εφαρμογές ταυτόχρονα.
Για παράδειγμα: Ίσως μόλις χτίσατε το Arch Linux από το μηδέν. Το λειτουργικό σύστημα είναι εγκατεστημένο μαζί με όλα τα βασικά πακέτα και μπορεί να εκκινηθεί στο τερματικό όταν ξεκινήσει το λειτουργικό σύστημα. Το Arch Linux χρειάζεται χρόνο για να εγκατασταθεί, οπότε η διαδικασία δεν έχει ολοκληρωθεί.
Είναι σε αυτό το σημείο όπου ο χρήστης θα μπορούσε να γράψει ένα σενάριο Bash και να ολοκληρώσει τα πάντα με τη μία. Κανένα από αυτά δεν είναι προγραμματισμός, ή προχωρημένο για αυτό το θέμα. Ωστόσο, δεδομένου ότι ο χρήστης κατανοεί αρκετά τον τρόπο λειτουργίας του Arch Linux, θα είναι σε θέση να αυτοματοποιήσει σχεδόν ολόκληρη τη διαδικασία μετά την εγκατάσταση (επιφάνεια εργασίας, προγράμματα οδήγησης, ρυθμίσεις χρήστη κ.λπ.).
Το μόνο όριο για το σενάριο bash σας είναι η δική σας γνώση Linux και Bash! Κάνοντας τους είναι πιο εύκολο από ό, τι νομίζετε.
Ξεκινώντας - Shebangs
Κατά τη σύνταξη κώδικα, τα πράγματα πρέπει να καθοριστούν και οι πόροι να φορτωθούν. Όταν scripting με το κέλυφος, ορισμένα πράγματα πρέπει να καθοριστεί επίσης. Σε scripting bash αυτό είναι γνωστό ως "shebang". Οι shebangs που χρησιμοποιούνται σε σενάρια λένε στο σενάριο τι διερμηνέα πρέπει να εκτελέσει κάτω. Αυτό θα μπορούσε να είναι Bash ή οποιαδήποτε άλλα σενάρια διαθέσιμα στο σύστημά σας. Σημειώστε ότι διαφορετικές γλώσσες έχουν τα δικά τους shebangs.
Για παράδειγμα: Όταν γράφετε ένα σενάριο Python, το shebang θα είναι #!/usr/bin/python
, κλπ.
Το Bash έχει πολλά διαφορετικά shebangs που μπορούν να χρησιμοποιηθούν, αλλά οι περισσότεροι χρήστες έχουν δει μόνο το #!/bin/bash
one. Κατά γενικό κανόνα, χρησιμοποιήστε #!/bin/bash
όταν γράφετε ένα απλό σενάριο και μην σχεδιάζετε να το αφαιρέσετε από το Linux. Όλες οι σύγχρονες διανομές Linux είναι στην ίδια έκδοση του bash, και το κέλυφος bash βρίσκεται συνήθως στην ίδια θέση.
Ένα άλλο shebang που αποδεικνύεται χρήσιμο είναι το #!/usr/bin/env bash
shebang. Αυτός είναι σχεδιασμένος για φορητότητα και πρέπει να χρησιμοποιηθεί αν το σενάριο έχει σχεδιαστεί για να τρέχει σε άλλα λειτουργικά συστήματα που μοιάζουν με Unix (BSD, macOS, κλπ.).
Βέλτιστες πρακτικές
Η γραφή σεναρίων στο Bash μπορεί να είναι μια περίπλοκη διαδικασία αν ο συγγραφέας το κάνει αυτό. Τις περισσότερες φορές, τα σενάρια είναι απλώς μια συλλογή διαφορετικών λειτουργιών. Μετακίνηση ενός αρχείου, λήψη κάτι, εγκατάσταση προγραμμάτων και κάτι τέτοιο.
- Λάβετε υπόψη ότι το Bash είναι μια γλώσσα που έχει σχεδιαστεί για να χειρίζεται αρχεία και διαδικασίες στο σύστημα. Αν το Bash ικανοποιεί τις ανάγκες σας, αυτό είναι καλό. Ωστόσο, καταλαβαίνω ότι για τον προχωρημένο προγραμματισμό, ο Bash δεν είναι πραγματικά η σωστή επιλογή και θα ήταν καλύτερο να προχωρήσουμε σε κάτι σαν την Python.
- Κάνετε τα σενάρια σας "SH" συμβατά και στη μορφή ".sh" εάν το σχέδιο είναι να χρησιμοποιήσετε σενάρια σε κάτι περισσότερο από μια πλατφόρμα Linux. Αν και άλλα λειτουργικά συστήματα που μοιάζουν με UNIX μπορεί να έχουν κοχύλια τύπου "bash", μερικά δεν έχουν καθόλου bash και είναι καλό να είσαι έτοιμος για αυτό.
- Μάθετε το κέλυφος Bash και πώς λειτουργεί. Θα σας βοηθήσει να γράψετε καλύτερα τα σενάρια σας.
- Χρησιμοποιείτε πάντα ένα shebang και το πιο σημαντικό: χρησιμοποιήστε το σωστό . Μπορεί να σημαίνει τη διαφορά μεταξύ ενός καλού σεναρίου και ενός τρομερού που δεν λειτουργεί σωστά.
- Πάντα σχολιάζετε κάθε ενέργεια. Σε έξι μήνες μπορεί να επιστρέψετε στο σενάριό σας και να αναρωτηθείτε τι σημαίνει τα πάντα, οπότε είναι πολύ σημαντικό το σενάριο σας να είναι καλά τεκμηριωμένο και εύκολο να κατανοηθεί (για εσάς και για οποιονδήποτε μπορεί να το δει).
- Κάντε τον κωδικό σας αναγνώσιμο. Ακόμα κι αν το σενάριό σας δεν είναι καθόλου περίπλοκο, θα πρέπει να έχει νόημα και να είναι πιο εύκολο από ό, τι νομίζετε.
- Δοκιμάστε το σενάριο σας για σφάλματα πριν το δώσετε σε άλλους. Μην κάνετε άλλες δοκιμές σφαλμάτων για σας. Στην ιδανική περίπτωση, τα σενάρια θα πρέπει να λειτουργούν πριν τα στείλετε έξω για να χρησιμοποιήσουν οι άνθρωποι.
Δημιουργία σεναρίου
Για να ξεκινήσετε τη δημιουργία σεναρίων, το μόνο που χρειάζεστε είναι ένας επεξεργαστής κειμένου. Οποιοσδήποτε απλός επεξεργαστής κειμένου θα κάνει - δεν χρειάζεται να είναι περίπλοκος ή πλήρης. Για αυτό το παράδειγμα θα κάνουμε ένα απλό σενάριο ενημέρωσης του Ubuntu χρησιμοποιώντας το Gedit.
#! / bin / bash
Αυτό το πρώτο μέρος του σεναρίου είναι το shebang, όπως προαναφέρθηκε. Αυτό επιτρέπει στο σενάριο να πει στον διερμηνέα τι πρέπει να χρησιμοποιήσει για να κατανοήσει τον κώδικα.
Στη συνέχεια, ας γράψουμε ένα σχόλιο. Αυτό θα επιτρέψει σε οποιονδήποτε χρησιμοποιεί το σενάριο να κατανοήσει τι σημαίνει να κάνει ο κώδικας. Τα σχόλια μπορούν να προστεθούν σε ένα σενάριο τοποθετώντας ένα σύμβολο "#". Οτιδήποτε μετά από αυτό δεν θα ληφθεί από το σενάριο.
# Σφάλμα ενημέρωσης του απλού Ubuntu μου
Τώρα είναι καιρός να προσθέσετε τον κώδικα στο σενάριο. Σε αυτή την περίπτωση δουλεύουμε για να κάνουμε μια δέσμη ενεργειών bash που θα τρέξει διαδοχικά τις δύο εντολές ενημέρωσης του Ubuntu. Ξεκινήστε με την εντολή πηγών λογισμικού ενημέρωσης.
sudo apt update
Το δεύτερο μέρος του σεναρίου είναι η apt upgrade
εντολή apt upgrade
. Αυτή η εντολή επιτρέπει την εγκατάσταση των ενημερώσεων που ελέγχθηκαν προηγουμένως. Προσθέστε ένα -y
στο τέλος, ώστε το σενάριο να μην χρειάζεται αλληλεπίδραση χρήστη. Αυτό θα επιτρέψει την ενημέρωση της εντολής από μόνη της.
sudo apt upgrade -y
Αποθηκεύστε τη δέσμη ενεργειών με επέκταση ".sh". Για παράδειγμα, "myscript.sh".
Για να εκτελέσετε το σενάριο, ανοίξτε ένα τερματικό και πληκτρολογήστε:
sudo chmod + x myscript.sh
Αυτό θα σηματοδοτήσει το νεοδημιουργημένο σενάριο ως εκτελέσιμο. Κάνοντας αυτό σε σενάρια δεν είναι πάντα απαραίτητη, όπως για το μεγαλύτερο μέρος Bash θα το τρέξει ούτως ή άλλως. Ανεξάρτητα, αυτή είναι μια καλή πρακτική όταν scripting.
Για να εκτελέσετε το νεοδημιουργημένο σενάριο, εκτελέστε την ακόλουθη εντολή:
sudo bash myscript.sh.
Επεκτάσεις αρχείων
Δεν υπάρχει διαφορά στις επεκτάσεις αρχείων για τα σενάρια. Το όνομα ενός αρχείου με την επέκταση αρχείου ".sh" δεν επηρεάζει ελάχιστα τον τρόπο εκτέλεσης του "προγράμματος". Μια δέσμη ενεργειών Bash θα συνεχίσει να τρέχει χωρίς επέκταση αρχείου - κενά αρχεία κειμένου και όλα τα ενδιάμεσα αρκεί να υπάρχουν οι σωστές εντολές και τα επιχειρήματα.
Παρόλο που το κέλυφος Bash αγνοεί τις επεκτάσεις αρχείων, αυτό δεν σημαίνει ότι ο συγγραφέας script θα πρέπει. Ορισμένα περιβάλλοντα επιφάνειας εργασίας που επιτρέπουν τη ρύθμιση των σεναρίων κελυφών για εκτέλεση κατά την εκκίνηση εξαρτώνται από το σενάριο ώστε να έχουν τη σωστή επέκταση αρχείου ".sh". Αυτό βοηθά και για λόγους οργάνωσης.
Όταν συμβαίνει αυτό, τα περισσότερα σενάρια κελύφους αποθηκεύονται ως αρχεία ".sh" για φορητότητα. Το "sh" δεν έχει καμία σχέση με το ίδιο το Bash και το σενάριο μπορεί να τρέξει με οποιοδήποτε συμβατό κέλυφος.
Εναλλακτικά, τα σενάρια μπορούν να αποθηκευτούν ως .bash, .ksh (κέλυφος Unix korn) κλπ. Αυτές οι επεκτάσεις αρχείων είναι κατώτερες και περιορίζουν πραγματικά τη χρησιμότητα ενός σεναρίου. Αυτό οφείλεται στο γεγονός ότι έχουν σχεδιαστεί μόνο για τα κοχύλια που χρησιμοποιούν αυτές τις επεκτάσεις.
Κωδικοποιήστε τους πόρους
Για όσους αναζητούν χρήσιμα σενάρια Bash, ελέγξτε το Bash User Repository στο Reddit. Πρόκειται για μια συλλογή από χρήσιμα και χρήσιμα σενάρια που είναι ελεύθερα να χρησιμοποιηθούν και να τροποποιηθούν!
Επιπλέον, όσοι αναζητούν να μάθουν την προηγμένη φύση του Bash και προγραμματίζουν με το κέλυφος θα πρέπει να ελέγξουν το Freecode. Ο ιστότοπος έχει έναν ολόκληρο οδηγό μαθήματος που διδάσκει όλα όσα πρέπει να ξέρετε για το Advanced Bash scripting.
συμπέρασμα
Παρόλο που η δημιουργία σεναρίων με το Bash στο Linux δεν είναι ένα μοναδικό χαρακτηριστικό (Macs έχουν επίσης bash πάρα πολύ), τείνει να βοηθήσει τους χρήστες του Linux έξω συνολικά. Λαμβάνοντας υπόψη ότι τόσο μεγάλο μέρος του Linux μπορεί να επιτευχθεί κάτω από το τερματικό, μαθαίνοντας πώς να χειριστεί το κέλυφος είναι πολύ χρήσιμο.
Τι scripts Bash χρησιμοποιείτε κάτω από το Linux για να διευκολύνετε τη ζωή σας; Πείτε μας παρακάτω!
Εικόνα χαρακτηριστικού: Jm3