Κέλυφος εντολών Linux. Το Bash είναι ένα κέλυφος εντολών Linux. Σχετικά με το Science Reviewer

Οι περισσότερες διανομές Linux έχουν εγκατεστημένο το κέλυφος Bash από προεπιλογή. Σημειώστε ότι υπάρχει μικρή διαφορά μεταξύ όλων των φλοιών που συμμορφώνονται με το πρότυπο λειτουργικού συστήματος τύπου POSIX Unix.

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

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

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

Φανταστείτε ότι συνδέεστε μέσω SSH στον διακομιστή ιστού όπου φιλοξενείτε τα αρχεία του ιστότοπου. Δουλεύοντας στο λειτουργικό σύστημα GNU / Linux και εκτελώντας το πρόγραμμα "Terminal", δίνετε στην Bash μια εντολή να συνδεθεί σε ένα απομακρυσμένο μηχάνημα με ένα συγκεκριμένο όνομα χρήστη. Ο διακομιστής απαντά σε εσάς και σας ζητά να εισαγάγετε τον κωδικό πρόσβασης για αυτόν τον χρήστη. Αυτό συμβαίνει επειδή Αυτός ο υπολογιστής διακομιστή μπορεί να χρησιμοποιηθεί πολύ και όχι ένα άτομο.

Στο τοπικό μηχάνημα σε λειτουργία κειμένου Linux (εάν πατήσετε, για παράδειγμα, Ctrl + Alt + F2) εξομοιώνεται η απομακρυσμένη πρόσβαση στο μηχάνημα μέσω του τερματικού. Εδώ το Bash πρώτα απ 'όλα σας ζητά να εισαγάγετε μια σύνδεση, μετά την οποία - έναν κωδικό πρόσβασης. Κατά την εισαγωγή του κωδικού πρόσβασης, δεν εμφανίζεται τίποτα στην οθόνη. Αυτό έγινε επίτηδες, έτσι ώστε να ήταν αδύνατο να κρυφοκοιταστεί ακόμη και ο αριθμός των χαρακτήρων που εισήχθησαν. Εάν το ζεύγος σύνδεσης/κωδικού πρόσβασης που εισαγάγατε ταιριάζει με οποιονδήποτε χρήστη που ήταν εγγεγραμμένος στο σύστημα, τότε θα δείτε τη γραμμή εντολών Bash για να εισαγάγετε την εντολή. Σε περίπτωση σφάλματος, θα πρέπει να εισαγάγετε ξανά τη σύνδεση/κωδικό πρόσβασης.

Σε γραφική λειτουργία, η εφαρμογή "Terminal" "λαμβάνει" αυτόματα τα δεδομένα του χρήστη που την εκκίνησε και τα μεταφέρει στο Bash.Έτσι, παρουσιάζεστε ήδη στο σύστημα και το πρώτο πράγμα που βλέπετε είναι μια γραμμή εντολών.

Η γραμμή εντολών έχει μια σχετικά τυπική σύνταξη και μοιάζει κάπως έτσι: όνομα χρήστη@όνομα υπολογιστή: σύμβολο τρέχουσας_διεύθυνσης.

Στο στιγμιότυπο οθόνης, pl είναι το όνομα χρήστη, comp είναι το όνομα υπολογιστή. Ο χαρακτήρας tilde ~ στα συστήματα Linux είναι συντομογραφία του αρχικού καταλόγου του χρήστη (/home/user). Αυτός είναι ο κατάλογος που κάνει τρέχουσα η Bash από προεπιλογή. Το σύμβολο του δολαρίου $ υποδηλώνει ότι τρέχουμε ως μη προνομιούχος χρήστης. Εάν έχετε συνδεθεί ως διαχειριστής, το σύμβολο του δολαρίου θα είναι # αντί για το σύμβολο του δολαρίου.

Μετά την προτροπή, τοποθετείται αυτόματα ένα κενό και αναμένεται μια εντολή. Στην παραπάνω εικόνα, αρχικά πατήθηκε απλά το Enter. Στη δεύτερη γραμμή, καταχωρήθηκε η εντολή για μετάβαση σε άλλο κατάλογο. Στην τρίτη γραμμή, βλέπουμε το αποτέλεσμα της εκτέλεσής του - το /opt έγινε ο τρέχων κατάλογος, ο οποίος εμφανίζεται στη γραμμή εντολών.

Υπάρχουν πολλές εντολές που μπορούν να εκδοθούν στο Bash. Βασικά, αυτές είναι εντολές για την εκκίνηση ενός συγκεκριμένου προγράμματος, οι οποίες βρίσκονται στους καταλόγους / bin, / usr / bin και μια σειρά από άλλους. Οι κατάλογοι που θα ελεγχθούν είναι γραμμένοι στη μεταβλητή $PATH του κελύφους:

Εδώ, χρησιμοποιώντας την εντολή echo, ζητάμε από την Bash να μας δώσει την τιμή της μεταβλητής $PATH. Στην έξοδο, οι κατάλογοι διαχωρίζονται μεταξύ τους με άνω και κάτω τελεία.

Μπορείτε να δείτε ποια προγράμματα είναι εγκατεστημένα σε έναν συγκεκριμένο κατάλογο και, στη συνέχεια, να εκτελέσετε ένα από αυτά:

Εάν η εφαρμογή έχει μόνο γραφική διεπαφή, τότε θα ξεκινήσει έτσι (αν είστε σε λειτουργία γραφικών, στην περίπτωση κειμένου, θα προκύψει σφάλμα). Σε αυτήν την περίπτωση, το Bash θα περιμένει να ολοκληρωθεί το πρόγραμμα, δηλαδή δεν θα είναι δυνατή η εισαγωγή άλλων εντολών. Ωστόσο, στο "Terminal" μπορείτε να ανοίξετε μια δεύτερη καρτέλα ή να δημιουργήσετε ένα δεύτερο παράθυρο. Αυτό θα ξεκινήσει μια άλλη διαδικασία για το Bash.

Υπάρχουν προγράμματα με διεπαφή κειμένου. Για παράδειγμα, ο επεξεργαστής Nano:

Σε αυτήν την περίπτωση, στο Bash δόθηκε η εντολή nano και ο επεξεργαστής GNU Nano άνοιξε ακριβώς στο τερματικό. Εισήχθησαν μερικές λέξεις σε αυτό. Για έξοδο από το πρόγραμμα επεξεργασίας, πρέπει να πατήσετε Ctrl + X, να επιβεβαιώσετε ή να αρνηθείτε την αποθήκευση. στη γραμμή εντολών Bash.

Πολλά από τα προγράμματα που εκτελούνται στο Bash δεν περιλαμβάνουν διαδραστική (συνομιλητική) αλληλεπίδραση με τον χρήστη. Ως προς το νόημα, είναι πιο σωστό να τις ονομάζουμε εντολές και όχι προγράμματα. Ο χρήστης εισάγει μια εντολή, εκτελείται και ο έλεγχος επιστρέφει στο Bash. Το τι κάνει μια ομάδα εξαρτάται από την ομάδα.

Το Bash μπορεί να εκτελέσει προγράμματα που δεν βρίσκονται μόνο στους καταλόγους που αναφέρονται στο $PATH. Ωστόσο, σε αυτήν την περίπτωση, η διεύθυνση σε αυτό πρέπει να προσδιορίζεται ρητά. Επιπλέον, δεν πρέπει να ξεχνάτε ότι το αρχείο πρέπει να έχει το δικαίωμα εκτέλεσης.

Εδώ, δημιουργήθηκε ένα αρχείο test.py στον κεντρικό κατάλογο που περιέχει κώδικα στη γλώσσα προγραμματισμού Python που εμφανίζει τον αριθμό 10. Ο κώδικας γράφτηκε σε Nano (δεν φαίνεται στο στιγμιότυπο οθόνης). Στη συνέχεια, προσπαθούμε να εκτελέσουμε το πρόγραμμα προσεγγίζοντας το αρχείο στη διεύθυνσή του. Η τελεία αντιπροσωπεύει τον τρέχοντα κατάλογο.Σε αυτήν την περίπτωση, είναι το σπίτι, επομένως ισοδυναμεί με ~/test.py ή /home/pl/test.py .

Στην πρώτη κλήση, λαμβάνουμε ένα σφάλμα επειδή δεν έχουμε άδεια να εκτελέσουμε το πρόγραμμα. Με τη βοήθεια της εντολής chmod προσθέτουμε ένα τέτοιο δικαίωμα (επιλογή +x).

Υπάρχουν πολλές εντολές. Είναι δύσκολο να τα ξέρεις όλα. Ωστόσο, υπάρχει μια σειρά από τα πιο δημοφιλή. Αυτές είναι εντολές για την εκτέλεση λειτουργιών σε αρχεία, την εγκατάσταση προγραμμάτων, την περιήγηση σε καταλόγους και αρχεία, τη μετακίνηση σε ένα δέντρο καταλόγου κ.λπ., δηλαδή όλα όσα κάνουμε στη γραφική λειτουργία του λειτουργικού συστήματος. Πολλά από αυτά θα καλυφθούν σε αυτό το μάθημα. Έχουμε ήδη γνωρίσει μερικά από αυτά (cd, ls, echo, chmod).

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

Επίσης, ας μην ξεχνάμε ότι το Bash είναι επίσης μια γλώσσα προγραμματισμού σεναρίου. Ένα αρχείο, συνήθως με κατάληξη .sh, μπορεί να περιέχει όχι μόνο μια λίστα εντολών, αλλά και οδηγίες γλώσσας (τελεστής υπό όρους, βρόχους κ.λπ.), «λέγοντας» πώς και σε ποιες περιπτώσεις να εκτελεστούν ορισμένες εντολές. Ο προγραμματισμός στο Bash δεν καλύπτεται σε αυτό το μάθημα.

Το έργο

Εξερευνήστε μόνοι σας τι κάνουν οι ακόλουθες εντολές: date, cal, pwd, who, clear, exit. Χρησιμοποιήστε την εντολή ποια για να μάθετε σε ποιους καταλόγους βρίσκονται τα εκτελέσιμα αρχεία αυτών των προγραμμάτων.

Μάθημα με απαντήσεις σε εργασίες και επιπλέον μαθήματα:

Πρωτότυπο: The Beginner's Guide to Shell Scripting: The Basics
Συγγραφέας: Yatri Trivedi
Ημερομηνία δημοσίευσης: 29 Σεπτεμβρίου 2015
Μετάφραση: Α.Πάνιν
Ημερομηνία μεταφοράς: 4 Οκτωβρίου 2016

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

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

Ο χρήστης του λειτουργικού συστήματος Linux αργά ή γρήγορα θα πρέπει να αντιμετωπίσει τη διεπαφή γραμμής εντολών του συστήματος. Είτε σας αρέσει είτε όχι, ορισμένες εργασίες είναι πολύ πιο εύκολο να επιτευχθούν χρησιμοποιώντας αυτήν τη διεπαφή παρά κάνοντας κλικ σε διάφορα στοιχεία της γραφικής διεπαφής μιας εξειδικευμένης εφαρμογής. Όσο περισσότερο χρησιμοποιείτε τη διεπαφή γραμμής εντολών του συστήματος, τόσο καλύτερα θα συνειδητοποιήσετε τις δυνατότητές του. Στην πραγματικότητα, αυτή η διεπαφή υλοποιείται μέσα σε ένα ξεχωριστό πρόγραμμα, δηλαδή στο κέλυφος εντολών. Η συντριπτική πλειοψηφία των διανομών Linux σήμερα χρησιμοποιεί το κέλυφος Bash, με το οποίο θα εισάγετε εντολές.

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

Τα σενάρια Shell σάς επιτρέπουν να δημιουργείτε αλυσίδες εντολών και να τις εκτελείτε με τον ίδιο τρόπο όπως στην περίπτωση των αρχείων δέσμης. Ωστόσο, σας παρέχουν πολλές ακόμη χρήσιμες λειτουργίες που σας επιτρέπουν να εκτελέσετε ενέργειες όπως η αντικατάσταση εντολών. Για παράδειγμα, μπορείτε να εκτελέσετε μια εντολή όπως ημερομηνία και να χρησιμοποιήσετε την έξοδο της ως μέρος ενός σχήματος ονομασίας αρχείων. Με αυτόν τον τρόπο, μπορείτε να αυτοματοποιήσετε τη διαδικασία δημιουργίας αντιγράφων ασφαλείας δεδομένων προσθέτοντας την τρέχουσα ημερομηνία στο όνομα κάθε αντιγραμμένου αρχείου. Ωστόσο, το περιεχόμενο των σεναρίων κελύφους δεν πρέπει να περιορίζεται σε κλήσεις εντολών. Στον πυρήνα τους, αυτά τα σενάρια είναι πλήρη προγράμματα. Για το λόγο αυτό, θα μπορείτε να χρησιμοποιείτε συντακτικές κατασκευές κλασικής γλώσσας προγραμματισμού, όπως για βρόχους, if/then/else δηλώσεις υπό όρους και ούτω καθεξής, απευθείας στο επίπεδο διεπαφής της γραμμής εντολών του συστήματος στη διαδικασία δέσμης ενεργειών. Και δεν χρειάζεται να μάθετε άλλη γλώσσα προγραμματισμού επειδή χρησιμοποιείτε ήδη τη διεπαφή που γνωρίζετε: τη γραμμή εντολών.

Κατά τη γνώμη μου, αυτή ακριβώς είναι η δύναμη της διεπαφής γραμμής εντολών του συστήματος. Θα πρέπει να δημιουργήσετε προγράμματα βασισμένα σε ήδη γνωστές εντολές, καθώς και συντακτικές κατασκευές που χρησιμοποιούνται σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρειάζεται να κάνετε κάποια επαναλαμβανόμενη και κουραστική δουλειά; Μπορείτε απλώς να δημιουργήσετε ένα σενάριο φλοιού για να το εκτελείτε αυτόματα! Χρειάζεστε συντόμευση για να εκτελέσετε μια σύνθετη εντολή; Σε αυτήν την περίπτωση, μπορείτε επίσης να δημιουργήσετε ένα σενάριο κελύφους! Θέλετε να δημιουργήσετε μια απλή διεπαφή γραμμής εντολών για κάποιο πρόγραμμα; Απλώς δημιουργήστε ένα σενάριο κελύφους!

Πριν ξεκινήσεις

Πριν αρχίσουμε να εξετάζουμε το σενάριο του κελύφους σε μια σειρά άρθρων, υπάρχουν μερικά πράγματα που πρέπει να λάβετε υπόψη. Θα χρησιμοποιήσουμε το κέλυφος Bash, το οποίο είναι το προεπιλεγμένο σε όλες σχεδόν τις διανομές Linux. Ωστόσο, είναι επίσης διαθέσιμο τόσο σε χρήστες Mac OS όσο και σε χρήστες Windows χάρη στην ύπαρξη ενός συνόλου βιβλιοθηκών Cygwin. Χάρη σε αυτήν την ευελιξία, θα μπορείτε να δημιουργήσετε σενάρια κελύφους ανεξάρτητα από την πλατφόρμα λογισμικού που χρησιμοποιείται. Επιπλέον, πρέπει να αναφερθεί ότι τα σενάρια θα εκτελούνται χωρίς τροποποίηση ή με ελάχιστη τροποποίηση σε όλες τις αναφερόμενες πλατφόρμες λογισμικού, με την προϋπόθεση ότι όλα τα βοηθητικά προγράμματα που χρησιμοποιούνται σε αυτά υπάρχουν στο σύστημα.

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

Στον πυρήνα τους, τα σενάρια φλοιού είναι αρχεία απλού κειμένου. Μπορείτε να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου για να τα επεξεργαστείτε: gedit, emacs, vim, nano... Και η λίστα συνεχίζεται. Απλώς πρέπει να βεβαιωθείτε ότι το πρόγραμμα επεξεργασίας κειμένου που επιλέγετε μπορεί να αποθηκεύσει κώδικα σεναρίου σε κανονικά αρχεία κειμένου και όχι αρχεία με ειδική σήμανση ή αρχεία που χρησιμοποιούνται από μια από τις σουίτες γραφείου. Επειδή μου αρέσει η απλότητα του νανο επεξεργαστή κειμένου, θα το χρησιμοποιήσω.

Ονόματα αρχείων σεναρίου και δικαιώματα

Τα σενάρια Shell τρέχουν ακριβώς όπως τα κανονικά προγράμματα, επομένως χρειάζονται τα σωστά δικαιώματα για να μπορέσουν να τα εκτελέσουν. Μπορείτε να κάνετε το σενάριο εκτελέσιμο εκτελώντας την ακόλουθη εντολή:

Chmod +x ~/somecrazyfolder/script1

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

Chmod u+x ~/somecrazyfolder/script1

Για να ξεκινήσετε την εκτέλεση ενός σεναρίου, θα πρέπει να μεταβείτε στον κατάλογό του με την εντολή cd και να το εκτελέσετε:

cd ~/somecrazyfolder ./script1

Για να απλοποιήσετε τη διαδικασία ανάπτυξης σεναρίων κελύφους, μπορείτε απλώς να τοποθετήσετε όλα τα σενάρια στον κατάλογο bin που βρίσκεται στον αρχικό σας κατάλογο:

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

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

Ποιο [script_name]

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

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

  1. Κάθε σενάριο πρέπει να ξεκινά με τη γραμμή "#!/bin/bash"
  2. Κάθε νέα γραμμή σεναρίου πρέπει να περιέχει μια νέα εντολή
  3. Οι γραμμές σχολίων πρέπει να ξεκινούν με #
  4. Οι εντολές αντικατάστασης πρέπει να τοποθετούνται σε παρένθεση ()

hash bang

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

#!/bin/bash

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

Νέα γραμμή = νέα εντολή

Κάθε νέα γραμμή σεναρίου θα πρέπει να αντιμετωπίζεται ως μια νέα εντολή ή ως μέρος μιας πιο περίπλοκης συντακτικής κατασκευής. Οι δηλώσεις If/then/else, για παράδειγμα, μπορούν να εκτείνονται σε πολλές γραμμές, αλλά κάθε στοιχείο τους θα εξακολουθεί να βρίσκεται σε μια νέα γραμμή. Δεν πρέπει να τυλίξετε εντολές σε νέες γραμμές, καθώς αυτό θα συντομεύσει την πρώτη γραμμή και θα εμφανίσει ένα μήνυμα σφάλματος όταν προσπαθείτε να εκτελέσετε τη δεύτερη γραμμή. Εάν το πρόγραμμα επεξεργασίας κειμένου σας το κάνει αυτό από μόνο του, θα πρέπει να απενεργοποιήσετε την αυτόματη αναδίπλωση γραμμής για παν ενδεχόμενο. Στο πρόγραμμα επεξεργασίας κειμένου nano, η δυνατότητα αυτόματης αναδίπλωσης γραμμής είναι απενεργοποιημένη χρησιμοποιώντας το συνδυασμό πλήκτρων Alt+L.

Τα σχόλια συνήθως ξεκινούν με #

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

Οι εντολές αντικατάστασης τοποθετούνται σε παρένθεση

Όχι πολύ καιρό πριν, όλες οι αντικαταστάσεις εντολών γίνονταν χρησιμοποιώντας backticks (` , που βρίσκεται στο πληκτρολόγιο στο ίδιο πλήκτρο με τον χαρακτήρα tilde ~). Δεν θα καλύψουμε αυτό το θέμα προς το παρόν, αλλά επειδή πολλοί άνθρωποι ξαναδιαβάζουν άρθρα με εισαγωγικές πληροφορίες, θα πρέπει να αναφέρουμε ότι θα πρέπει να χρησιμοποιούνται παρενθέσεις αντί για backtick. Αυτό αξίζει να το κάνετε κυρίως γιατί όταν τοποθετείτε εντολές, δηλαδή τοποθετείτε κάποιες εντολές μέσα σε άλλες εντολές, οι παρενθέσεις λειτουργούν καλύτερα.

Το πρώτο σας σενάριο

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

Όπως μπορείτε να δείτε, η εντολή που δεν βγάζει τίποτα, επομένως δεν υπάρχει τίποτα που να μας εμποδίζει να χρησιμοποιήσουμε αυτό το όνομα αρχείου σεναρίου.

Τώρα ας δημιουργήσουμε ένα κενό αρχείο στον κατάλογο ~/bin:

Προτού ξεχάσουμε, πρέπει να αλλάξουμε τα προεπιλεγμένα δικαιώματα στο νέο αρχείο σεναρίου:

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

Nano ~/bin/datecp

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

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

Ποια δεδομένα θα αποθηκεύσουμε στη μεταβλητή μας; Λοιπόν, ας αποθηκεύσουμε την ημερομηνία και την ώρα σε αυτό! Για να γίνει αυτό, θα πρέπει να καλέσουμε την εντολή ημερομηνία.

Ρίξτε μια ματιά στο ακόλουθο στιγμιότυπο οθόνης του παραθύρου του τερματικού που δείχνει την έξοδο της εντολής ημερομηνίας:

Είναι εύκολο να δείτε ότι προσθέτοντας διάφορες επιλογές μορφοποίησης των οποίων τα ονόματα αρχίζουν με τον χαρακτήρα %, μπορείτε να αλλάξετε τη μορφή εξόδου της εντολής όπως θέλετε. Για περισσότερες πληροφορίες, μπορείτε να ανατρέξετε στη σελίδα man για την εντολή ημερομηνίας.

Ας χρησιμοποιήσουμε το τελευταίο σύνολο επιλογών μορφοποίησης εντολών ημερομηνίας, δηλαδή "ημερομηνία +%m_%d_%y-%H.%M.%S", στο σενάριό μας.

Εάν αποθηκεύσουμε αυτήν τη δέσμη ενεργειών τώρα και την εκτελέσουμε, λαμβάνουμε την αναμενόμενη έξοδο από την εντολή ημερομηνία:

Ας το κάνουμε όμως λίγο διαφορετικά. Προτείνω να αποθηκεύσετε την έξοδο αυτής της εντολής σε μια μεταβλητή με δεδομένο όνομα, όπως date_formatted . Η σωστή σύνταξη για αυτή τη λειτουργία είναι η εξής:

Variable=$(ορίσματα εντολής -options)

Στην περίπτωσή μας, αυτή η σύνταξη θα μοιάζει με αυτό:

Date_formatted=$(ημερομηνία +%m_%d_%y-%H.%M.%S)

Αυτό είναι αυτό που ονομάζεται αντικατάσταση εντολών. Λέμε στον bash να εκτελέσει την εντολή που περικλείεται σε παρένθεση όποτε αναφέρεται η μεταβλητή "date_formatted". Μετά από αυτό, όταν η μεταβλητή "date_formatted" αναφέρεται ως έξοδος, αντί για το όνομά της, θα χρησιμοποιηθεί η έξοδος της εντολής σε παρένθεση.

Και αυτό είναι ένα παράδειγμα σεναρίου και η έξοδος του:

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

Ας επιστρέψουμε στο σενάριο μας. Ας προσθέσουμε μια εντολή αντιγραφής αρχείου σε αυτό:

Cp -iv $1 $2.$date_formatted

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

Στη συνέχεια, μπορεί να διαπιστώσετε ότι πρόσθεσα την παράμετρο $1. Στο σενάριο, ένα σύμβολο δολαρίου ($) ακολουθούμενο από μια αριθμητική τιμή αντιστοιχεί σε ένα όρισμα σεναρίου με αριθμό ίσο με αυτήν την αριθμητική τιμή. Για παράδειγμα, στην ακόλουθη εντολή:

Cp -iv Trogdor2.mp3 ήχος κλήσης.mp3

το πρώτο όρισμα είναι "Trogdor2.mp3" και το δεύτερο είναι "ringtone.mp3" .

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

Αυτό σημαίνει ότι κατά την εκτέλεση του σεναρίου, θα πρέπει να του περάσουμε δύο ορίσματα για να λειτουργήσει σωστά. Το πρώτο όρισμα, $1 , είναι το όνομα του αρχείου που θα αντιγραφεί, αντικαθιστώντας ως το πρώτο όρισμα στην εντολή "cp -iv".

Το δεύτερο όρισμα, $2 , είναι το όνομα του αρχείου προορισμού στην ίδια εντολή. Αλλά μπορείτε επίσης να ανακαλύψετε τη σημαντική διαφορά του. Πρόσθεσα μια τελεία σε αυτό και μια αναφορά στη μεταβλητή "date_formatted" που συζητήθηκε παραπάνω. Αναρωτιέστε σε τι χρησιμεύει αυτό το σχέδιο;

Και αυτό είναι το αποτέλεσμα του σεναρίου μετά την εκτέλεση του:

Προφανώς, το όνομα αρχείου προορισμού αποτελείται από το όνομα αρχείου που έχει περάσει από το δεύτερο όρισμα σεναρίου $2, ακολουθούμενο από μια τελεία και την έξοδο της εντολής ημερομηνίας! Όλα έχουν νόημα, έτσι δεν είναι;

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

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

Έχετε ήδη εμπειρία στη δημιουργία των δικών σας σεναρίων κελύφους; Έχετε κάτι να πείτε σε αρχάριους χρήστες; Μοιραστείτε την εμπειρία σας στην ενότητα σχολίων! Θα εξερευνήσουμε άλλες πτυχές της διαδικασίας δημιουργίας σεναρίων του κελύφους σε μελλοντικά άρθρα της σειράς!

Εργασία με τη γραμμή εντολών

Anton Boyarshinov, Kirill Maslinsky

Αποτελεσματική επαγγελματική εργασία σε linuxαδιανόητο χωρίς τη χρήση της γραμμής εντολών. Για τους χρήστες που έχουν συνηθίσει να εργάζονται σε συστήματα με γραφική διεπαφή, η εργασία με τη γραμμή εντολών μπορεί να φαίνεται άβολη: αυτό που μπορεί να γίνει με ένα τράβηγμα και απόθεση στη γραμμή εντολών θα απαιτεί την πληκτρολόγηση πολλών λέξεων από το πληκτρολόγιο: εντολές με ορίσματα. Ωστόσο, σε linuxαυτός ο τύπος διεπαφής ήταν πάντα ο κύριος, και ως εκ τούτου καλά ανεπτυγμένος. Στα κελύφη εντολών που χρησιμοποιούνται σε linux, υπάρχουν πολλοί τρόποι εξοικονόμησης προσπάθειας (πλήκτρα) κατά την εκτέλεση των πιο συνηθισμένων ενεργειών: αυτόματη ολοκλήρωση μεγάλων ονομάτων εντολών ή ονομάτων αρχείων, αναζήτηση και επανεκτέλεση εντολής που έχει ήδη εκτελεστεί στο παρελθόν, αντικατάσταση λιστών ονομάτων αρχείων σύμφωνα με ορισμένες μοτίβο, και πολλά άλλα. Τα πλεονεκτήματα της γραμμής εντολών γίνονται ιδιαίτερα εμφανή όταν χρειάζεται να εκτελέσετε τον ίδιο τύπο λειτουργιών σε πολλά αντικείμενα. Σε ένα σύστημα GUI, τόσα σύρματα ποντικιού όσα αντικείμενα υπάρχουν, αρκεί μια μόνο (αν και μεγάλη και πολύπλοκη) εντολή στη γραμμή εντολών.

Αυτή η ενότητα θα περιγράψει τα κύρια εργαλεία που επιτρέπουν τη χρήση της γραμμής εντολών για την επίλυση οποιωνδήποτε εργασιών χρήστη: από ασήμαντες λειτουργίες με αρχεία και καταλόγους (αντιγραφή, μετονομασία, αναζήτηση) έως πολύπλοκες εργασίες που απαιτούν μαζικές λειτουργίες του ίδιου τύπου που προκύπτουν τόσο στο χρήστη εργασία εφαρμογών, όταν εργάζεστε με μεγάλες ποσότητες δεδομένων ή κειμένου και στη διαχείριση συστήματος. Πρώτα απ 'όλα, θα περιγραφούν τα εργαλεία που παρέχουν τη δυνατότητα εργασίας με τη γραμμή εντολών στο κιτ διανομής ALT Linux 2.4 Master (κελύφη εντολών και εξομοιωτές τερματικού) και, στη συνέχεια, τα βοηθητικά προγράμματα της κύριας γραμμής εντολών που εκτελούν τις πιο σημαντικές λειτουργίες με το σύστημα αρχείων και δεδομένα.

Κοχύλια εντολών

Γενικές πληροφορίες για τα κοχύλια

κέλυφος εντολών(ή διερμηνέας εντολών) είναι ένα πρόγραμμα του οποίου η δουλειά είναι να κοινοποιεί τις εντολές σας στο λειτουργικό σύστημα και τα προγράμματα εφαρμογών και τις απαντήσεις τους σε εσάς. Σύμφωνα με τα καθήκοντά του, αντιστοιχεί στο command.com in MS-DOSή στο cmd.exe Windowsαλλά λειτουργικά κελύφη μέσα linuxασύγκριτα πλουσιότερος. Στη γλώσσα του κελύφους, μπορείτε να γράψετε μικρά προγράμματα για να εκτελέσετε μια σειρά διαδοχικών πράξεων με αρχεία και τα δεδομένα που περιέχουν - scripts (scripts).

Αφού συνδεθείτε στο σύστημα (εισαγωγή ονόματος χρήστη και κωδικού πρόσβασης), θα δείτε μια γραμμή εντολών - μια γραμμή που τελειώνει με το σύμβολο $ (Περαιτέρω, αυτό το σύμβολο θα χρησιμοποιηθεί για να υποδηλώσει τη γραμμή εντολών). Εάν η εγκατάσταση έχει ρυθμιστεί ώστε να εκκινεί το γραφικό περιβάλλον κατά την εκκίνηση του συστήματος, τότε μπορείτε να μεταβείτε στη γραμμή εντολών σε οποιαδήποτε εικονική κονσόλα κειμένου (πατώντας ctrl-alt-F1 - ctrl-alt-F6) ή χρησιμοποιώντας οποιοδήποτε πρόγραμμα εξομοίωσης τερματικού όπως το xterm. Για περισσότερες πληροφορίες σχετικά με τους εξομοιωτές τερματικών, ανατρέξτε στην ενότητα Τερματικά. Τα ακόλουθα κελύφη εντολών είναι διαθέσιμα στη διανομή ALT Linux 2.4 Master:


Το πιο συνηθισμένο κέλυφος linux. Μπορεί να συμπληρώσει τα ονόματα εντολών και αρχείων, διατηρεί το ιστορικό των εντολών και παρέχει τη δυνατότητα επεξεργασίας τους.

Ένας κλώνος του κελύφους κορν, πολύ γνωστός στα συστήματα UNIXκέλυφος εντολών.

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

Μια βελτιωμένη έκδοση του κελύφους C.

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

Το προεπιλεγμένο κέλυφος είναι bash ( Bourne Again Shell). Για να ελέγξετε ποιο κέλυφος χρησιμοποιείτε, πληκτρολογήστε την ακόλουθη εντολή: ηχώ $SHELL.

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

κέλυφος εντολής bash

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

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

Το bash έχει πολλά κόλπα για να διευκολύνει την πληκτρολόγηση και την επεξεργασία της γραμμής εντολών. Για παράδειγμα, χρησιμοποιώντας το πληκτρολόγιο, μπορείτε:

μετακινηθείτε στην αρχή της γραμμής, το ίδιο μπορείτε να κάνετε πατώντας το πλήκτρο Σπίτι;

διαγράψτε την τρέχουσα γραμμή.

Ακύρωση της τρέχουσας εντολής.

Μπορείτε να χρησιμοποιήσετε σύμβολο ; για να εισάγετε πολλές εντολές σε μία γραμμή. Το bash καταγράφει ένα ιστορικό όλων των εντολών που εκτελούνται, επομένως είναι εύκολο να επαναλάβετε ή να επεξεργαστείτε μία από τις προηγούμενες εντολές. Για να το κάνετε αυτό, απλώς επιλέξτε την επιθυμητή εντολή από το κλειδί ιστορικού: πάνωεκτυπώνει την προηγούμενη εντολή, κάτω- το επόμενο. Για να βρείτε μια συγκεκριμένη εντολή μεταξύ αυτών που έχουν ήδη εκτελεστεί χωρίς να κάνετε κύλιση σε ολόκληρο το ιστορικό, πληκτρολογήστε ctrl-Rκαι εισαγάγετε οποιαδήποτε λέξη-κλειδί που χρησιμοποιείται στην εντολή που αναζητάτε.

Οι εντολές που υπάρχουν στο ιστορικό εμφανίζονται αριθμημένες στη λίστα. Για να εκτελέσετε μια συγκεκριμένη εντολή, πληκτρολογήστε:

! αριθμός ομάδας

Αν μπεις !! , θα εκτελεστεί η τελευταία εντολή που πληκτρολογήσατε.

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

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

Για παράδειγμα, το σύστημα έχει προγράμματα buildhash, ενσωματωμένο, bunzip2:

$bu buildhash ενσωματωμένο bunzip2 $bu

Καντράν n > (κουλούριείναι το μόνο όνομα του οποίου το τρίτο γράμμα είναι n) και μετά πατήστε Αυτί. Το κέλυφος θα ολοκληρώσει το όνομα και το μόνο που μένει είναι να πατήσετε Εισαγωγια να εκτελέσετε την εντολή!

Σημειώστε ότι το bash αναζητά ένα πρόγραμμα που καλείται από τη γραμμή εντολών στους καταλόγους που ορίζονται στη μεταβλητή συστήματος ΜΟΝΟΠΑΤΙ. Προεπιλογή σε αυτήν τη λίστα καταλόγων δεν περιλαμβάνει τον τρέχοντα κατάλογο, που υποδηλώνεται με ./ (κάθετο σημείο). Επομένως, για να εκτελέσετε το πρόγραμμα prog από τον τρέχοντα κατάλογο, πρέπει να εκδώσετε την εντολή ./επαιτώ.

Βασικές εντολές

Οι πρώτες εργασίες που πρέπει να επιλυθούν σε οποιοδήποτε σύστημα είναι η εργασία με δεδομένα (συνήθως αποθηκευμένα σε αρχεία) και η διαχείριση προγραμμάτων που εκτελούνται στο σύστημα ( διαδικασίες). Παρακάτω παρατίθενται οι εντολές που σας επιτρέπουν να εκτελέσετε τις πιο σημαντικές λειτουργίες αρχείων και διεργασιών. Μόνο το πρώτο - CD- είναι αναπόσπαστο μέρος του πραγματικού κελύφους εντολών, τα υπόλοιπα διανέμονται χωριστά, αλλά είναι πάντα διαθέσιμα σε οποιοδήποτε σύστημα linux. Όλες οι παρακάτω εντολές μπορούν να εκτελεστούν τόσο σε κονσόλα κειμένου όσο και σε λειτουργία γραφικών (xterm, κονσόλα KDE). Για πιο λεπτομερείς πληροφορίες για καθεμία από τις εντολές, χρησιμοποιήστε την εντολή άνδρας, για παράδειγμα:

Man ls

Σας επιτρέπει να αλλάξετε τον τρέχοντα κατάλογο (μετακίνηση στο σύστημα αρχείων). Λειτουργεί τόσο με απόλυτες όσο και με σχετικές διαδρομές. Ας υποθέσουμε ότι βρίσκεστε στον αρχικό σας κατάλογο και θέλετε να αλλάξετε σε έναν υποκατάλογο του. tmp/. Για να το κάνετε αυτό, εισαγάγετε μια σχετική διαδρομή:

Για να μεταβείτε στον κατάλογο /usr/bin, τύπος (απόλυτη διαδρομή):

cd /usr/bin/

Μερικές επιλογές για τη χρήση της εντολής:

σας επιτρέπει να ορίσετε τον τρέχοντα γονικό κατάλογο (προσέξτε το διάστημα μεταξύ CDΚαι .. ).

σας επιτρέπει να επιστρέψετε στον προηγούμενο κατάλογο. Εντολή CDχωρίς παραμέτρους επιστρέφει το κέλυφος στον αρχικό κατάλογο.

ls (λίστα) παραθέτει τα αρχεία στον τρέχοντα κατάλογο. Δύο βασικές επιλογές: -ένα- προβολή όλων των αρχείων, συμπεριλαμβανομένων των κρυφών, -μεγάλο- Εμφάνιση λεπτομερέστερων πληροφοριών.

Αυτή η εντολή χρησιμοποιείται για τη διαγραφή αρχείων. Προσοχή: μετά τη διαγραφή ενός αρχείου, δεν θα μπορείτε να το επαναφέρετε! . Σύνταξη: rm Ονομα αρχείου .

Αυτό το πρόγραμμα έχει πολλές επιλογές. Περισσότερο χρησιμοποιημένο: -Εγώ- αίτημα διαγραφής αρχείου, -r- αναδρομική διαγραφή (δηλαδή διαγραφή συμπεριλαμβανομένων υποκαταλόγων και κρυφών αρχείων). Παράδειγμα:

Rm -i ~/html/*.html

Διαγράφει όλα τα αρχεία .html, στον κατάλογό σας html .

mkdir, rmdir

Εντολή mkdirσας επιτρέπει να δημιουργήσετε έναν κατάλογο, ενώ rmdirδιαγράφει τον κατάλογο με την προϋπόθεση ότι είναι κενός. Σύνταξη:

mkdir όνομα_καταλόγου rmdir όνομα_καταλόγου

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

πιο λιγοσας επιτρέπει να σελιδοποιήσετε το κείμενο. Σύνταξη:

Πιο λιγο Ονομα αρχείου

Μπορεί να είναι χρήσιμο να κάνετε προεπισκόπηση ενός αρχείου πριν το επεξεργαστείτε. Η κύρια εφαρμογή αυτής της εντολής είναι ο τελικός κρίκος σε μια αλυσίδα προγραμμάτων που εμφανίζει σημαντικό όγκο κειμένου που δεν χωράει σε μία οθόνη και διαφορετικά αναβοσβήνει πολύ γρήγορα. Για έξοδο πιο λιγοΚάντε κλικ q (εγκαταλείπω).

Αυτή η εντολή σάς επιτρέπει να βρείτε μια σειρά χαρακτήρων σε ένα αρχείο. σημειώστε ότι grepαναζητά κοινή έκφραση, δηλαδή παρέχει τη δυνατότητα ρύθμισης ενός προτύπου για αναζήτηση μιας ολόκληρης κατηγορίας λέξεων ταυτόχρονα. Στη γλώσσα των κανονικών εκφράσεων, μπορείτε να δημιουργήσετε μοτίβα που περιγράφουν6, για παράδειγμα, τέτοιες κατηγορίες συμβολοσειρών: "τέσσερα ψηφία στη σειρά, που περιβάλλονται από κενά". Προφανώς, μια τέτοια έκφραση μπορεί να χρησιμοποιηθεί για αναζήτηση στο κείμενο για όλα τα έτη γραμμένα με αριθμούς. Οι δυνατότητες αναζήτησης κανονικών εκφράσεων είναι πολύ μεγάλες, για περισσότερες λεπτομέρειες μπορείτε να ανατρέξετε στην τεκμηρίωση στην οθόνη για grep (άνθρωπος grep). Σύνταξη:

grep search_patternfile

Εμφανίζει μια λίστα με τις τρέχουσες διεργασίες. Η στήλη εντολών υποδεικνύει το όνομα της διεργασίας, PID (αναγνωριστικό διαδικασίας) - τον αριθμό διεργασίας (χρησιμοποιείται για λειτουργίες με τη διαδικασία - για παράδειγμα, αποστολή σημάτων με την εντολή σκοτώνω). Σύνταξη:

ΥΣΤΕΡΟΓΡΑΦΟ επιχειρήματα

Διαφωνία uσας παρέχει περισσότερες πληροφορίες τσεκούρισας επιτρέπει να προβάλετε εκείνες τις διαδικασίες που δεν σας ανήκουν.

Εάν το πρόγραμμα σταματήσει να ανταποκρίνεται ή κολλάει, χρησιμοποιήστε αυτήν την εντολή για να το τερματίσετε. Σύνταξη:

Σκοτώνω PID_αριθμός

PID_αριθμός όπου είναι ο αριθμός αναγνώρισης διεργασίας, μπορείτε να μάθετε τον αριθμό διεργασίας για κάθε πρόγραμμα που εκτελείται με την εντολή ΥΣΤΕΡΟΓΡΑΦΟ. Συνήθως η εντολή σκοτώνωστέλνει ένα κανονικό σήμα εξόδου στη διαδικασία, ωστόσο μερικές φορές αυτό δεν λειτουργεί και θα χρειαστεί να το χρησιμοποιήσετε σκοτώνω -9 PID_αριθμός - σε αυτήν την περίπτωση, η εντολή θα τερματιστεί αμέσως από το σύστημα χωρίς τη δυνατότητα αποθήκευσης δεδομένων (crash). Λίστα σημάτων που η εντολή σκοτώνωμπορεί να στείλει σε μια διαδικασία μπορεί να ληφθεί με την έκδοση της εντολής σκοτώνω -l.

Διοικητής των Μεσονυκτίων

Αν έχεις δουλέψει πολλά χρόνια MS-DOS / Windows, τότε μάλλον νιώθετε λίγο «έξω από το στοιχείο σας». Για να μπείτε στο οικείο περιβάλλον, εκτελέστε το Midnight Commander με την εντολή mc. Το Midnight Commander είναι μια δωρεάν εναλλακτική του Norton Commander και του δημοφιλούς πλέον διαδόχου του, Far. Εάν κάποια στιγμή πιστεύετε ότι το Midnight Commander δεν μπορεί να κάνει κάτι, τότε αυτό είναι πιθανότατα λάθος. Δείτε την περιγραφή του στο /usr/share/doc/mc-version_numberή δώσε εντολή άνθρωπος mc.

πακέτο coreutils

Anton Boyarshinov

Πακέτο coreutilsπεριέχει πολλά μικρά βοηθητικά προγράμματα για εργασία με αρχεία και καταλόγους (δημιουργία, αντιγραφή κ.λπ.) και συμβολοσειρές κειμένου (συνδυασμός, ταξινόμηση κ.λπ.). Η αρχή λειτουργίας αυτών των βοηθητικών προγραμμάτων κληρονομείται από το λειτουργικό σύστημα UNIX: όλα δεν έχουν γραφική διεπαφή και καλούνται από τη γραμμή εντολών με διάφορα ορίσματα, εργάζονται με δεδομένα σε απλή μορφή κειμένου και χρησιμοποιούν τον τυπικό μηχανισμό εισόδου / εξόδου, ο οποίος σας επιτρέπει να μεταφέρετε την έξοδο μιας εντολής απευθείας στο η είσοδος ενός άλλου για περαιτέρω επεξεργασία, χωρίς τη χρήση ενδιάμεσων αρχείων ( λεγόμενο. μετακομιστής).

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

Σχόλιο: Έννοια του κελύφους εντολών. Επισκόπηση κελύφους εντολών. κέλυφος εντολής bash. Χαρακτηριστικά της εργασίας (ιστορικό εντολών, χειριστής "!", ενέργειες κατά το πάτημα ενός πλήκτρου ). Multitasking στην κονσόλα. Καθήκοντα. Διαχείριση εργασιών. Μεταβλητές περιβάλλοντος Midnight Commander

Πρόοδος μαθήματος

1. Στον κόσμο του Linux και του Unix, η εργασία σε έναν υπολογιστή είναι άρρηκτα συνδεδεμένη με την έννοια κέλυφος εντολών- ένα πρόγραμμα που επιτρέπει στον χρήστη να αλληλεπιδρά με το σύστημα εισάγοντας και εκτελώντας εντολές. Παρ 'όλα αυτά, κέλυφος εντολώνείναι ένα κανονικό πρόγραμμα. Μπορείτε να το αποδείξετε αυτό ορίζοντας ως το προεπιλεγμένο κέλυφος στο αρχείο passwdγια τον χρήστη άλλο πρόγραμμα. Αλλά για να το γνωρίζει το σύστημα ως κέλυφος, πρέπει να προσθέσετε το απόλυτο όνομα αρχείου /etc/shells.

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

Bourne Shell (sh) - το παλαιότερο και πιο κοινό κέλυφος εντολώνγια συστήματα Unix. Δεν υπάρχει ούτε ένα σύστημα Unix όπου δεν θα μπορούσε να χρησιμοποιηθεί.

Bourne Again Shell (bash) - εκτεταμένο Bourne Shell. Έχει πολλά ευχάριστα πλεονεκτήματα, γι' αυτό και έχει γίνει τόσο δημοφιλής τελευταία. Είναι το "προεπιλεγμένο" κέλυφος για όλες σχεδόν τις διανομές Linux.

Επίσης δημοφιλή skins είναι:

csh- κέλυφος, το σύστημα εντολών του οποίου είναι κοντά στη γλώσσα προγραμματισμού C

Το tcsh είναι ένα κέλυφος του οποίου το σύστημα εντολών είναι κοντά στη γλώσσα προγραμματισμού Tcl.

Το zsh είναι ίσως το πιο ισχυρό κέλυφος. Είναι προέκταση του sh (bourne shell) .

Εφόσον το Linux χρησιμοποιεί το bash "από προεπιλογή", θα το συζητήσουμε.

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

Πίνακας 1.1.
Δυνατότητα Ενα σχόλιο
1 Επεξεργασία γραμμής Δυνατότητα επεξεργασίας της εισαγόμενης εντολής αντί να την ξαναγράψετε ξανά
2 Οργάνωση καναλιού Δυνατότητα Ανακατευθύνσεις I/O, οργάνωση καναλιών μεταξύ εργασιών
3 Ευκολία στη χρήση Χρήση ψευδωνύμων εντολών, ιστορικό εντολών, αυτόματη συμπλήρωση
4 Διαχείριση εργασιών Δυνατότητα δημιουργίας και διαχείρισης εργασιών στο παρασκήνιο
5 Ευκαμψία Χρήση αρχείων σεναρίου σύνδεσης για κάθε χρήστη ξεχωριστά, μεταβλητές περιβάλλοντος

Η ανακατεύθυνση εισόδου/εξόδου και οι σωλήνες θα καλυφθούν αργότερα στο Μάθημα 8. Επομένως, θα παραλείψουμε αυτό το σημείο. Αλλά ας μιλήσουμε για τα χαρακτηριστικά της εργασίας στο bash, για τα οφέλη που παρέχει.

Το Bash εγγράφει αυτόματα όλες τις εντολές που πληκτρολογεί ο χρήστης σε ένα αρχείο ~/.bash_history. Η εντολή ιστορικού χρησιμοποιείται για τη διαχείριση αυτού του αρχείου. ιστορία είναι ενσωματωμένη εντολήκτυπώ δυνατά. Δηλαδή, δεν υπάρχει εκτελέσιμο αρχείο που να αντιστοιχεί σε αυτήν την εντολή. Εαυτό κέλυφος εντολώνεκτελεί όλες τις ενέργειες. Εισαγάγετε χωρίς επιλογές, απλώς παραθέτει όλες τις εντολές που είναι αποθηκευμένες σε αυτό το αρχείο και είναι πανομοιότυπο με το cat ~/.bash_history .

Το ιστορικό εντολών υπάρχει για να απλοποιήσει το σύνολο των εντολών που χρησιμοποιούνται συχνά. Το ιστορικό των εντολών μπορεί να ταξινομηθεί μέσω της λίστας με τα πλήκτρα <вверх>Και<вниз> .

Ένας άλλος τρόπος είναι να πληκτρολογήσετε! και την εντολή start και πατήστε . Η τελευταία εντολή από το ιστορικό, τα πρώτα γράμματα της οποίας ταιριάζουν με αυτά που πληκτρολογήθηκαν, θα εκτελεστεί. Για παράδειγμα:

$ !/usr /usr/bin/perl ./ptest.pl OK $ !xfonts bash: !xfonts: το συμβάν δεν βρέθηκε $

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

3. Από το πρώτο μάθημα, θα έπρεπε να θυμάστε ότι το Linux είναι ένα περιβάλλον πολλαπλών εργασιών. Ωστόσο, μέχρι τώρα δεν έχετε καταφέρει να εκμεταλλευτείτε το multitasking του. Με την πρώτη ματιά, φαίνεται ότι η κονσόλα δεν σας επιτρέπει να χρησιμοποιήσετε τις δυνατότητες πολλαπλών εργασιών του συστήματος και μόνο σε ένα γραφικό περιβάλλον μπορείτε να εκτελέσετε δύο ή περισσότερα προγράμματα ταυτόχρονα. Αλλά δεν είναι! Η κονσόλα είναι επίσης πολλαπλών εργασιών.

Αρχικά, μπορείτε να ανοίξετε πολλές κονσόλες ανοίγοντας ένα πρόγραμμα σε καθεμία από αυτές. Η εναλλαγή μεταξύ των κονσολών θα γίνει χρησιμοποιώντας τα πλήκτρα ctrl+ , όπου Χείναι ο αριθμός της κονσόλας.

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

- ένας συνδυασμός πλήκτρων που στέλνει ένα μη παγιδευμένο σήμα στη διαδικασία sigstop. Σας επιτρέπει να σταματήσετε την εκτέλεση της διαδικασίας για να μεταφέρετε τον έλεγχο στη γραμμή εντολών.

εντολή & - το σύμβολο & μετά την εντολή σάς επιτρέπει να το εκτελέσετε στο παρασκήνιο.

εργασίες - Εμφανίζει μια λίστα με τις τρέχουσες εργασίες φλοιού.

bg<#j>– βάζει την εργασία #j στο παρασκήνιο. Πριν από αυτό, η εργασία πρέπει να διακοπεί από τον συνδυασμό πλήκτρων . Εάν αυτή τη στιγμή ο διερμηνέας έχει μόνο μία εργασία, τότε ο αριθμός μπορεί να παραλειφθεί.

fg<#j>- βάζει την εργασία #j σε λειτουργία εκτέλεσης στο προσκήνιο. Η εργασία πρέπει να διακοπεί με συνδυασμό πλήκτρων ή να είναι στο παρασκήνιο. Εάν αυτή τη στιγμή ο διερμηνέας έχει μόνο μία εργασία, τότε ο αριθμός μπορεί να παραλειφθεί.

$ man bash ^Z + Stopped man bash $ vim ^Z vim + Stopped vim $ bg 1 + man bash & $ jobs + Stopped man bash + Stopped vim $ fg 2 + vim $ fg + man bash $

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

Οι μεταβλητές που χρησιμοποιούνται συνήθως από τον χρήστη είναι:

PATH - η μεταβλητή περιέχει τις διαδρομές στις οποίες το σύστημα πρέπει να αναζητήσει εκτελέσιμα αρχεία εάν είναι πλήρης ή σχετική διαδρομήσε αυτούς.

PWD - η μεταβλητή περιέχει το πλήρες όνομα του τρέχοντος καταλόγου.

HOME - η μεταβλητή περιέχει την πλήρη διαδρομή αρχικός κατάλογος χρήστη.

HOSTNAME - η μεταβλητή περιέχει το όνομα του υπολογιστή.

LOGNAME - περιέχει Όνομα χρήστη

SHELL - περιέχει το όνομα του κελύφους εντολών που εκτελείται στην τρέχουσα περίοδο λειτουργίας.

ΧΡΗΣΤΗΣ - περιέχει Όνομα χρήστηΗ συνεδρία που είναι ανοιχτή αυτήν τη στιγμή.

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

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

$ export declare -x HOME="/home/gserg" declare -x HOSTNAME="WebMedia" declare -x LANG="en_RU.KOI8-R" declare -x LOGNAME="gserg" declare -x PATH="/bin: /usr/bin:/usr/local/bin:/home/gserg/bin" declare -x PWD="/home/gserg" declare -x SHELL="/bin/bash" declare -x TERM="Eterm" δήλωση -x USER="gserg" $ EDITOR=/bin/vim $ export EDITOR $ export declare -x EDITOR="/bin/vim" declare -x HOME="/home/gserg" declare -x HOSTNAME="WebMedia" δήλωση -x LANG="ru_RU.KOI8-R" declare -x LOGNAME="gserg" declare -x PATH="/bin:/usr/bin:/usr/local/bin:/home/gserg/bin:" δήλωση - x PWD="/home/gserg" declare -x SHELL="/bin/bash" declare -x TERM="Eterm" declare -x USER="gserg" $

Εντολή μη καθορισμένοδιαγράφει μια μεταβλητή συστήματος. Για παράδειγμα:

$ unset EDITOR $ export declare -x HOME="/home/gserg" declare -x HOSTNAME="WebMedia" declare -x LANG="en_RU.KOI8-R" declare -x LOGNAME="gserg" declare -x PATH=" /bin:/usr/bin:/usr/local/bin:/home/gserg/bin:" declare -x PWD="/home/gserg" declare -x SHELL="/bin/bash" declare -x TERM= "Eterm" δηλώνει -x USER="gserg" $

5. Στο σημερινό μάθημα, θα σας παρουσιάσουμε ένα άλλο, ελαφρώς μη τυπικό, κέλυφος εντολών μεσάνυχτα διοικητής. Δεν είναι κέλυφος εντολώνμε τη συνήθη έννοια. Αυτός είναι ένας διαχειριστής αρχείων κειμένου - αναλογικός Διοικητής του Nortonή Μακριά. μεσάνυχτα διοικητήςτρέξτε με την εντολή mc. Θα μιλήσουμε για τις δυνατότητές του.

Οθόνη Διοικητής τα μεσάνυχτα"χωρίζεται σε δύο μέρη. Σχεδόν ολόκληρος ο χώρος της οθόνης καταλαμβάνεται από δύο πίνακες με λίστα καταλόγων και αρχείων. Από προεπιλογή, η δεύτερη γραμμή από το κάτω μέρος της οθόνης είναι η γραμμή εντολών όπου μπορείτε να εκτελέσετε κανονικές εντολές φλοιού και η κάτω γραμμή δείχνει τις υποδείξεις του πλήκτρου λειτουργίας ( F1-F10). Η επάνω γραμμή συμβόλων περιέχει ένα μενού με το οποίο μπορούν να εκτελεστούν πολλές λειτουργίες. Για να χρησιμοποιήσετε το μενού, μπορείτε να κάνετε κλικ στο επιθυμητό στοιχείο ή να πατήσετε το πλήκτρο F9και χρησιμοποιώντας τα πλήκτρα έλεγχος δρομέαεπιλέξτε το επιθυμητό αντικείμενο.

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

Τώρα ας μιλήσουμε για τις βασικές συντομεύσεις πληκτρολογίου που θα σας βοηθήσουν να εργαστείτε Μεσονύκτιος διοικητής «ωμ.

Τα πλήκτρα χρησιμοποιούνται για την αλλαγή του ενεργού πίνακα ή +

για να επισημάνετε ένα αρχείο, πατήστε ή +

Κάντε κλικ για βοήθεια

θα εμφανίσει το πρόγραμμα προβολής αρχείων

μέσω επεξεργάζεστε το αρχείο

θα σας επιτρέψει να αντιγράψετε το αρχείο.

μετακίνηση ή μετονομασία αρχείου

δημιουργία καταλόγου

Κλειδί θα διαγράψει ένα αρχείο και/ή έναν κατάλογο

, όπως ήδη αναφέρθηκε, ανοίγει την πρόσβαση στο μενού.

- σας επιτρέπει να βγείτε μεσάνυχτα διοικητής.

θα μετακινήσει το δείκτη στην αρχή της λίστας των αρχείων,

- αντίθετα - στο τέλος της λίστας.

Και θα αλλάξει τη θέση του δείκτη ανά σελίδα προς τα πάνω και προς τα κάτω, αντίστοιχα.

Κλειδί <*> σε ένα πρόσθετο πληκτρολόγιο θα σας επιτρέψει να αντιστρέψετε την επιλογή των αρχείων (δεν επηρεάζει τους καταλόγους)

Κλειδί <+> στο πρόσθετο πληκτρολόγιο θα σας επιτρέψει να επισημάνετε αρχεία με μάσκα και <-> καταργήστε την επιλογή αρχείων κατά μάσκα.

+ - ενημέρωση των περιεχομένων του καταλόγου (με επανάληψη ανάγνωσης από το δίσκο ή από το δίκτυο)

+ - αλλάξτε δεξιά και αριστερά πάνελ.

+ - αφαίρεση/επιστροφή πάνελ.

Ενώ οι συντομεύσεις πληκτρολογίου είναι το καλύτερο εργαλείο για να ολοκληρώσετε τα πράγματα Μεσονύκτιος διοικητής «ωμόσο το δυνατόν πιο γρήγορα και βολικά, είναι αρκετά δύσκολο για τους αρχάριους να τα μάθουν όλα ταυτόχρονα. Για να καλύψετε αυτό το κενό και να προσθέσετε άλλες δυνατότητες που δεν έχουν συντομεύσεις πληκτρολογίου, μεσάνυχτα διοικητήςέχει ένα μενού (καλείται από F9).

Το μενού αποτελείται από στοιχεία: "Αριστερό πλαίσιο", "Αρχείο", "Εντολή", "Ρυθμίσεις", "Δεξί πίνακα".

"Αριστερό/Δεξί πίνακα"- αυτά τα στοιχεία μενού είναι ακριβώς τα ίδια. Οι διαφορές μεταξύ τους είναι μόνο ότι οι ενέργειες που εκτελούνται θα απευθύνονται στον αριστερό ή τον δεξιό πίνακα.

"Μορφή λίστας"- ανοίγει ένα παράθυρο διαλόγου στο οποίο μπορείτε να επιλέξετε την προβολή στην οποία θα εμφανίζεται η λίστα αρχείων/καταλόγων. Μπορείτε να επιλέξετε από τυπικές, σύντομες και εκτεταμένες μορφές. Ωστόσο, ο χρήστης σε αυτό το παράθυρο μπορεί επίσης να ορίσει την εμφάνιση του πίνακα με τον τρόπο που του ταιριάζει επιλέγοντας το κουμπί επιλογής "Ορισμένο από το χρήστη".

"Γρήγορη ματιά"- αλλάζει τον πίνακα στη λειτουργία αυτόματης προβολής αρχείων που έχουν επιλεγεί στον διπλανό πίνακα. Η εστίαση αλλάζει αυτόματα στον απέναντι πίνακα.

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

"Ξύλο"- μεταφράζει μεσάνυχτα διοικητήςσε μια λειτουργία παρόμοια με τη λειτουργία Explorer από OC Windows. Στον πίνακα στον οποίο εφαρμόζεται η εντολή "Ξύλο", δημιουργείται ένα δέντρο καταλόγου, το οποίο μπορεί να πλοηγηθεί χρησιμοποιώντας τα βέλη έλεγχος δρομέα, κλειδιά PageUp, PageDown, Αρχική σελίδα, Τέλος. Ο επόμενος πίνακας εμφανίζει τα περιεχόμενα του καταλόγου που επισημαίνονται στο δέντρο.

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

"Φίλτρο"- σας επιτρέπει να επιλέξετε τα ονόματα αρχείων που θα εμφανίζονται στον πίνακα χρησιμοποιώντας μια τυπική έκφραση που έχει εισαχθεί στο πλαίσιο διαλόγου.

"Σύνδεση FTP"- χρησιμοποιώντας αυτήν την εντολή μπορείτε να δημιουργήσετε μια σύνδεση με έναν απομακρυσμένο (ή ακόμα και τοπικό) υπολογιστή χρησιμοποιώντας το πρωτόκολλο ftp. Εάν έχει εισαχθεί μόνο η διεύθυνση του απομακρυσμένου διακομιστή, τότε μεσάνυχτα διοικητήςθα προσπαθήσει να δημιουργήσει μια ανώνυμη σύνδεση. Η πλήρης γραμμή με την οποία καθορίζεται ο κόμβος είναι η εξής:

ftp:username:password@server_address:port/directory_on_server

Αφού δημιουργηθεί η σύνδεση, εργαστείτε με απομακρυσμένο σύστημα αρχείωνπροχωρά παρόμοια με την εργασία με ένα τοπικό FS.

"Σύνδεση κελύφους"- σας επιτρέπει να ανοίξετε μια σύνδεση δικτύου μέσω πρωτοκόλλου ΨΑΡΙ (Μεταφορά αρχείων μέσω SHell– μεταφορά αρχείων μέσω κελύφους). ΨΑΡΙχρησιμοποιεί πρωτόκολλα RSH (Remote SHell)– απομακρυσμένο κέλυφος ) ή SSH (Secure Shell)- προστατευμένο κέλυφος, αναλογικό RSH, αλλά με υποστήριξη για κρυπτογράφηση των μεταδιδόμενων δεδομένων). Η πλήρης συμβολοσειρά με την οποία ο χρήστης μπορεί να καθορίσει τον απομακρυσμένο κεντρικό υπολογιστή είναι:

sh:username@server_address:options/server_dir

Παράμετρος Όνομα χρήστη, επιλογές και directory_on_serverδεν απαιτείται. Αν Όνομα χρήστηδεν διευκρινίζεται, λοιπόν μεσάνυχτα διοικητήςθα προσπαθήσει να συνδεθεί στο απομακρυσμένο σύστημα με το όνομα χρήστη που χρησιμοποιείται στον τοπικό υπολογιστή.

"Επισκέπτομαι πάλι"- παρόμοια με τις συντομεύσεις πληκτρολογίου + - προκαλεί την ενημέρωση της λίστας αρχείων και καταλόγων στον τρέχοντα πίνακα, διαβάζοντάς τα ξανά από το δίσκο ή μέσω του δικτύου.

"Αρχείο"- ενότητα μενού, τα στοιχεία της οποίας παρέχουν βασικές λειτουργίες για την επεξεργασία αρχείων και καταλόγων, όπως:

"Μενού χρήστη"- σας επιτρέπει να καλέσετε το μενού, το οποίο ορίζει ο ίδιος ο χρήστης. Επικαλείται επίσης από το κλειδί .

"Προβολή αρχείου"- ανάλογο της λειτουργίας που εκτελείται με το πάτημα . Σας επιτρέπει να προβάλετε το επισημασμένο αρχείο (ή να εισαγάγετε έναν κατάλογο). Υποστηρίζει πολλές μορφές όπως μορφές κειμένου, αρχεία, Winword DOC, εκτελέσιμα Linux κ.λπ.

"Προβολή αρχείου..."- το ίδιο με την προηγούμενη παράγραφο, αλλά δεν επηρεάζει το επισημασμένο αρχείο, αλλά αυτό του οποίου το όνομα και η διαδρομή θα εισαχθούν στο παράθυρο διαλόγου.

"Ομαδική προβολή"- σας επιτρέπει να εκτελέσετε μια εντολή και να την προβάλετε τυπική έξοδοςσε λειτουργία προβολής αρχείου.

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

"Αντίγραφο"- αντιγράφει ένα αρχείο από τον ενεργό πίνακα στον παθητικό. Ένα ανάλογο μιας συνάρτησης που καλείται από . Από προεπιλογή, το αρχείο (ή η ομάδα αρχείων) που επισημαίνεται στον ενεργό πίνακα θεωρείται ότι έχει αντιγραφεί και ο προορισμός είναι ο κατάλογος που ανοίγει στον παθητικό πίνακα. Αυτό μπορεί να αλλάξει διορθώνοντας τις τιμές των πεδίων στο παράθυρο διαλόγου που ανοίγει μετά την κλήση αυτής της εντολής.

"Άδειες"- σας επιτρέπει να αλλάξετε τα δικαιώματα για ένα αρχείο (ή μια ομάδα αρχείων) σε ένα παράθυρο διαλόγου.

"Συμβολικός σύνδεσμος"- δημιουργεί έναν συμβολικό σύνδεσμο. Από προεπιλογή, το αρχείο που επισημαίνεται στον ενεργό πίνακα λαμβάνεται ως διευθυνσιοδοτούμενο και ο σύνδεσμος που δημιουργήθηκε θα έχει το ίδιο όνομα και θα βρίσκεται στον κατάλογο που ανοίγει στον παθητικό πίνακα. Ο χρήστης μπορεί να το αλλάξει στο παράθυρο διαλόγου που ανοίγει.

"Ιδιοκτήτης/Ομάδα"- αλλάζει τον κάτοχο ή/και την ομάδα στην οποία ανήκει ένα αρχείο/κατάλογος.

"Άδειες (Για προχωρημένους)"- σας επιτρέπει να αλλάξετε τα δικαιώματα πρόσβασης στο αρχείο και στον κάτοχο ή/και στην ομάδα του ταυτόχρονα. Τα δικαιώματα αντιπροσωπεύονται ως τρεις ακολουθίες rwx για τον ιδιοκτήτη, την ομάδα και όλους τους χρήστες.

"Μετονομάζω"- σας επιτρέπει να μετονομάσετε/μετακινήσετε το . Ένα ανάλογο μιας συνάρτησης που καλείται από . Από προεπιλογή, το αρχείο (ή ομάδα αρχείων) που επισημαίνεται στον ενεργό πίνακα θεωρείται ότι έχει μετακινηθεί/μετονομαστεί και ο προορισμός είναι ο κατάλογος που ανοίγει στον παθητικό πίνακα. Αυτό μπορεί να αλλάξει διορθώνοντας τις τιμές των πεδίων στο παράθυρο διαλόγου που ανοίγει μετά την κλήση αυτής της εντολής.

"Δημιουργία καταλόγου"- δημιουργεί έναν κατάλογο. Ένα ανάλογο μιας συνάρτησης που καλείται από . Από προεπιλογή, ο κατάλογος δημιουργείται στον κατάλογο που ανοίγει στον ενεργό πίνακα. Αυτό μπορεί να αλλάξει καθορίζοντας την πλήρη διαδρομή προς τον κατάλογο που θα δημιουργηθεί στο παράθυρο διαλόγου που ανοίγει.

"Διαγράφω"- διαγράφει ένα αρχείο/ομάδα αρχείων/καταλόγου. Ένα ανάλογο μιας συνάρτησης που καλείται από .

"Αλλαγή καταλόγου"- αλλάζει τον τρέχοντα κατάλογο. Παρόμοια με την εντολή cd στο κέλυφος Bash. Ο απαιτούμενος κατάλογος εισάγεται στο παράθυρο διαλόγου.

"Σήμανση ομάδας"- Επισημαίνει μια ομάδα αρχείων με μάσκα στον κατάλογο που ανοίγει στον ενεργό πίνακα. Ένα ανάλογο μιας συνάρτησης που καλείται με <+> στο προαιρετικό πληκτρολόγιο.

Φόρτωση...Φόρτωση...