Προγραμματισμός

10 Εντολές Unix που πρέπει να γνωρίζουν όλοι οι χρήστες Mac και Linux

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

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

Μην ανησυχείτε αν οι εντολές του Unix μοιάζουν με μαγικές πινελιές ή τα μυστηριώδη εσωτερικά του συστήματος φαίνονται πέρα ​​από την αντίληψή σας. Δεν είναι τόσο δύσκολο να μάθουν και αυτό το άρθρο θα σας δώσει τις 10 βασικές εντολές που χρειάζεστε για να ξεκινήσετε. Πριν από πολύ καιρό αυτές οι κρυπτικές χορδές θα είναι δεύτερης φύσης.

Βασικά στοιχεία για το κέλυφος

Το κέλυφος της γραμμής εντολών Unix είναι περίπου ισοδύναμο με το παράθυρο εντολών στα Microsoft Windows (cmd ή PowerShell). Οι εντολές που ακολουθούμε παρακάτω θα λειτουργήσουν σε οποιοδήποτε σύστημα τύπου Unix, όπως Linux, Darwin (το ίδρυμα MacOS), FreeBSD, ακόμη και Windows με κάτι όπως το Git Bash ή το νέο κέλυφος Bash στα Windows 10. Οι επιλογές και η έξοδος ποικίλλουν ελαφρώς, αλλά δεν πρέπει να έχετε κανένα πρόβλημα να τα κατανοήσετε.

Πρώτα, πρέπει να ανοίξετε ένα κέλυφος, που μερικές φορές ονομάζεται παράθυρο τερματικού. Συχνά οι διανομές Unix το θέτουν κάτω από τα μενού Διαχείριση ή Σύστημα. Στο MacOS, θα βρείτε το τερματικό στο Applications> Utilities> Terminal. Όταν το ξεκινήσετε, θα δείτε κάτι σαν αυτό:

Αυτή η οθόνη, από το MacOS 10.11, είναι χαρακτηριστική των περισσότερων κελυφών σε ένα GUI. Στο πάνω μέρος του παραθύρου βλέπουμε τον τύπο κελύφους, στην περίπτωση αυτή Bash (Bourne Again Shell, το οποίο είναι το προεπιλεγμένο κέλυφος σε MacOS και τις περισσότερες διανομές Linux), και το μέγεθος του παραθύρου. Μέσα στο παράθυρο υπάρχει η προτροπή, σε αυτήν την περίπτωση διαμορφωμένη ώστε να εμφανίζει το όνομα του μηχανήματος (Ερμής), το όνομα του τρέχοντος καταλόγου εργασίας (εδώ το tilde, ~, που είναι συντομογραφία για τον αρχικό κατάλογο του χρήστη), το όνομα του χρήστη και, τέλος, το σύμβολο προτροπής (το $). Σημειώστε ότι η προτροπή σας θα αλλάξει καθώς μετακινείστε στο σύστημα αρχείων ή εάν γίνετε διαφορετικός χρήστης στο μηχάνημά σας (όπως ο root ή ο υπερχρήστης για την εκτέλεση εντολών διαχείρισης). Το μήνυμα εμφανίζει αυτές τις πληροφορίες, ώστε να μπορείτε εύκολα να πείτε πού και ποιος βρίσκεστε σε οποιοδήποτε μηχάνημα.

Αξίζει να γνωρίζουμε ότι υπάρχουν δύο βασικές γεύσεις του Unix shell: Bourne και C shell. Ο Bourne και η εταιρεία προήλθαν από το αρχικό AT&T Unix, ενώ το κέλυφος C προέρχεται από το Πανεπιστήμιο της Καλιφόρνια στο Μπέρκλεϋ και το BSD Unix. Γενικά τα παράγωγα Bourne και C είναι καλά για διαδραστική εργασία στο τερματικό. Το τυπικό κέλυφος POSIX, το κέλυφος Korn, είναι αυτό που θα θέλατε να χρησιμοποιήσετε για τη σύνταξη των δικών σας προγραμμάτων στο κέλυφος, που ονομάζονται σενάρια. Χρησιμοποιούμε το κέλυφος Bash για τα παραδείγματα σε αυτό το σεμινάριο.

Το περιβάλλον κελύφους

Ένα από τα πρώτα γεγονότα που πρέπει να κατανοήσετε σχετικά με την εργασία στη γραμμή εντολών Unix είναι ότι το κέλυφος λειτουργεί στο δικό του περιβάλλον. Η κατανόηση του τρόπου ελέγχου του περιβάλλοντος κελύφους είναι ένα σημαντικό μέρος της αποτελεσματικότητας στη γραμμή εντολών. Ας ρίξουμε μια ματιά στο περιβάλλον χρησιμοποιώντας το env εντολή:

Μην ανησυχείτε για την κατανόηση όλων των μεταβλητών περιβάλλοντος, αλλά ξέρετε ότι είναι εκεί. Πρέπει να αναγνωρίσετε ήδη μερικές μεταβλητές. Για παράδειγμα, SHELL = / bin / bash μας λέει ότι χρησιμοποιούμε το κέλυφος Bash. ΑΡΧΙΚΗ = / Χρήστες / nunez καθορίζει τη θέση του αρχικού καταλόγου του χρήστη. Μπορείτε να αλλάξετε ή να δημιουργήσετε μεταβλητές περιβάλλοντος και θα το κάνετε συχνά. Ακολουθεί ένα παράδειγμα ρύθμισης μιας μεταβλητής περιβάλλοντος που ονομάζεται ΦΟΟ και εμφανίζοντας την αξία του:

Όπως βλέπετε, κατά κανόνα βάζουμε τις μεταβλητές με κεφαλαία γράμματα. Προσέξτε ιδιαίτερα πώς αναφέρουμε μεταβλητές περιβάλλοντος όταν τις χρησιμοποιούμε σε εντολές, με τις προηγούμενες $. ο $ λέει στον διερμηνέα εντολών να χρησιμοποιήσει την τιμή της μεταβλητής. Χωρίς το $, ο ηχώ Η παραπάνω εντολή θα τυπώσει απλά το όνομα της μεταβλητής, ΦΟΟ.

Εντολές Unix

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

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

Το δεύτερο πράγμα που πρέπει να προσέξετε είναι οι επιλογές που δίνονται σε κάθε εντολή. Στο Unix, οι επιλογές παραδοσιακά προτίθενται με έναν χαρακτήρα παύλας, -. Αυτές οι επιλογές γραμμής εντολών αλλάζουν τη συμπεριφορά της εντολής. Σε αυτό το παράδειγμα, το -μεγάλο επιλογή για είναι σημαίνει να εξάγετε τα περιεχόμενα του καταλόγου σε "μακρά" μορφή, ενώ το -μεγάλο επιλογή για τουαλέτα σημαίνει να μετράμε τις «γραμμές» αντί για τις λέξεις. Στα Αγγλικά αυτή η εντολή μπορεί να διαβαστεί:

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

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

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

Το εγχειρίδιο

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

Μία από τις ωραίες πτυχές του Unix είναι η υψηλή ποιότητα της τεκμηρίωσης. Υπάρχει τεκμηρίωση για χρήστες, διαχειριστές συστήματος και προγραμματιστές λογισμικού. Έχετε πρόσβαση στην τεκμηρίωση με το άνδρας εντολή. Ας ξεκινήσουμε διαβάζοντας το εγχειρίδιο για το εγχειρίδιο (enter άντρας άντρα στη γραμμή εντολών):

Τα εγχειρίδια χωρίζονται σε οκτώ ενότητες, οι οποίες διαφέρουν ελαφρώς ανάλογα με το αν βρίσκεστε σε τύπο BSD / Linux / Mac ή System V του Unix. Είναι χρήσιμο να ξεκινήσετε διαβάζοντας την εισαγωγή σε κάθε ενότητα και μπορείτε να το κάνετε αυτό με μια πινελιά σαν εισαγωγή -s 1, που σημαίνει να κοιτάξετε στην ενότητα 1 για να βρείτε μια μη αυτόματη σελίδα που ονομάζεται "εισαγωγή":

Εάν δεν είστε σίγουροι για την εντολή που αναζητάτε, μπορείτε να δοκιμάσετε το -φά και επιλογές. άντρας - στ εντολή θα σας πει τη λειτουργία μιας εντολής εάν γνωρίζετε το όνομά της, ενώ άντρας - κ ίχνος θα απαριθμήσει τα ονόματα των σχετικών εντολών με βάση μία ή περισσότερες λέξεις-κλειδιά. Και οι δύο επιλογές θα αναζητήσουν μια ενσωματωμένη βάση δεδομένων (εάν έχει ρυθμιστεί, συνήθως έχει) και θα επιστρέψουν όλες τις αντιστοιχίες. Για παράδειγμα, άντρας - k bzer θα εμφανίσει τις μη αυτόματες σελίδες που ξεκινούν με τη συμβολοσειρά Β Ζ:

Το σύστημα αρχείων

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

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

Η άλλη εντολή που θα χρειαστείτε αμέσως είναι η CD εντολή, την οποία χρησιμοποιείτε για να αλλάξετε καταλόγους. Αυτό μοιάζει με την ίδια εντολή στα Windows, αλλά με μια σημαντική διαφορά. Στο Unix, όλες οι μονάδες (συσκευές) εμφανίζονται ως μία μονάδα. Ενώ στα Windows μπορεί να έχετε τις εικόνες σας σε έναν εξωτερικό σκληρό δίσκο που εμφανίζεται ως E :, στο Unix η μονάδα δίσκου μπορεί να είναι / home / user / pictures. Όλα τα αρχεία σε ένα σύστημα Unix έχουν πρόσβαση μέσω μιας διαδρομής που ξεκινά με / (τον ριζικό κατάλογο) και μπορείτε να προσαρτήσετε διαφορετικούς σκληρούς δίσκους σε διαφορετικά σημεία του συστήματος αρχείων ανάλογα με τις ανάγκες σας.

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

Σημειώστε ότι μπορείτε να χρησιμοποιήσετε το CD εντολή χωρίς ορίσματα για γρήγορη επιστροφή στον αρχικό σας κατάλογο. Μια άλλη συμβουλή: Το ~ μπορεί να χρησιμοποιηθεί ως συντόμευση για αναφορά στον αρχικό σας κατάλογο και στο κέλυφος Bash και C.

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

Ας δούμε τι υπάρχει στο αρχείο μας / etc / passwd εισάγοντας λιγότερα / etc / passwd:

Το αρχείο passwd παραθέτει τους λογαριασμούς χρηστών σε ένα σύστημα Unix, μαζί με τους αριθμούς ταυτότητας χρήστη και ομάδας, τον αρχικό κατάλογό τους και τη διαδρομή προς την αντίστοιχη εντολή ή κέλυφος. Σε MacOS, ωστόσο, θα βρείτε μόνο λογαριασμούς υπηρεσιών συστήματος στο passwd. Αυτό συμβαίνει επειδή οι ανθρώπινοι χρήστες διαμορφώνονται στην ενότητα Χρήστες και ομάδες στις Προτιμήσεις συστήματος MacOS.

Χώρος στο δισκο

Η εξάντληση του χώρου στο δίσκο είναι μια σταδιακή διαδικασία που μπορεί να διαρκέσει χρόνια, αλλά μπορεί ακόμη να σας πιάσει. Υπάρχουν δύο εντολές που μπορείτε να χρησιμοποιήσετε για να ελέγξετε τον ελεύθερο χώρο σας και να προσδιορίσετε ποια αρχεία αγκαλιάζουν το δίσκο σας: du (χρήση δίσκου) και df (χωρίς δίσκο). Και οι δύο παίρνουν ένα επιλογή (αναγνώσιμο από τον άνθρωπο). Για να κατανοήσετε πόσο γεμάτος είναι ο δίσκος σας, χρησιμοποιήστε το df εντολή:

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

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

Επειδή η έκδοση του MacOS για είδος δεν μπορώ να το χειριστώ duΗ ανθρώπινη αναγνώσιμη έξοδος, χρησιμοποίησα το επιλογή για du για να εμφανίσετε τη χρήση δίσκου σε megabyte (χρησιμοποιήστε το -σολ ή επιλογή για εμφάνιση σε gigabytes ή kilobytes). ο και επιλογές για είδος ταξινομήστε την έξοδο αριθμητικά και με αντίστροφη σειρά, ώστε οι μεγαλύτεροι κατάλογοι να εμφανίζονται στην κορυφή της λίστας.

Superusers, su και sudo

Ένας αριθμός εντολών σχετίζονται με τη διαχείριση του συστήματος. Δοκιμάστε να πληκτρολογήσετε εισαγωγή του man -s 8 για μια εισαγωγή σε αυτούς. Θα σας δώσω μια βασική εντολή για τη διαχείριση του συστήματος εδώ: σου. Αυτό σημαίνει "σούπερ χρήστης" και αναφέρεται στον διαχειριστικό χρήστη ή τον ριζικό λογαριασμό. Όλα τα αρχεία που ανήκουν στο σύστημα ανήκουν σε αυτόν τον χρήστη και θα πρέπει να γίνετε αυτός ο χρήστης για να εκτελέσετε τη διαχείριση.

Μια σχετική εντολή, sudo, σας επιτρέπει να γίνετε ο σούπερ χρήστης για μία εντολή. Γιατί να το χρησιμοποιήσετε sudo αντί σου; Επειδή η βέλτιστη πρακτική υπαγορεύει ότι δεν τρέχετε ως βασικός χρήστης, με τη δύναμη να κάνετε ανεπανόρθωτη ζημιά κατά λάθος. Θα θέλετε πάντα να κάνετε ό, τι μπορείτε ως κανονικός χρήστης και να γίνετε σούπερ χρήστης μόνο όταν το χρειάζεστε. Ο ακριβής τρόπος με τον οποίο αποκτάτε προνόμια υπέρ των χρηστών θα εξαρτηθεί από τη διανομή Unix. Ας δούμε πώς σου λειτουργεί σε MacOS:

Ε; Είμαι βέβαιος ότι πληκτρολόγησα σωστά τον κωδικό πρόσβασης. Αυτό που συνέβη εδώ είναι ότι ο τρέχων χρήστης μου, Νούνιζ, δεν έχει άδεια να σου. Σε ορισμένα Unixes αυτό σημαίνει ότι ο χρήστης πρέπει να βρίσκεται στο ρόδα ομάδα, και σε άλλα συστήματα (συμπεριλαμβανομένου του MacOS) ο χρήστης πρέπει να βρίσκεται στο sudoers αρχείο.

Ας τελειώσουμε προσθέτοντας Νούνιζ προς την sudoers, το οποίο θα σας δώσει μια γεύση επεξεργασίας αρχείων στη γραμμή εντολών. Οι χρήστες ισχύος τραγουδούν τους επαίνους των εκδοτών Emacs και Vi και σας ενθαρρύνω να τα δοκιμάσετε, αλλά θα χρησιμοποιήσουμε το Nano εδώ. Το Nano είναι εύκολο να μάθει και να χρησιμοποιήσει και το MacOS και πολλές διανομές Linux έρχονται με ήδη εγκατεστημένο.