Οι μεταχαρακτήρες του Linux και οι έννοιές τους
Μεταχαρακτήρας είναι κάθε χαρακτήρας που έχει ειδική σημασία, όπως καράτι (^), σύμβολο δολαρίου ($) ή αστερίσκος (*). Το Linux έχει αρκετό αριθμό από αυτούς τους μεταχαρακτήρες και η σημασία τους διαφέρει ανάλογα με το ποιον Εντολή Linux ή το πρόγραμμα που χρησιμοποιείτε.
Η πλήρης στάση ως μεταχαρακτήρας (.)
Η πλήρης στάση (.) υποδεικνύει την τρέχουσα θέση όταν εκτελούνται εντολές όπως π.χ CD, εύρημα, ή sh. Σε εφαρμογές όπως οκ, grep, και sed, είναι ένας χαρακτήρας μπαλαντέρ που υποδηλώνει έναν συγκεκριμένο αριθμό οποιουδήποτε χαρακτήρα.
Για παράδειγμα, η ακόλουθη εντολή βρίσκει όλα Αρχεία MP3 στον τρέχοντα φάκελο και στους υποφακέλους του.
εύρημα. -type f -name '*.mp3'
Εάν εκτελέσετε αυτήν την εντολή στον παρόντα κατάλογο εργασίας (pwd), θα δείτε αποτελέσματα που επιστρέφονται, με την προϋπόθεση ότι διατηρείτε αρχεία MP3 σε έναν φάκελο μουσικής στον αρχικό σας φάκελο.
Τώρα κοιτάξτε αυτήν την εντολή:
ps -ef | grep f..efox
Η εντολή ps παραθέτει όλες τις διεργασίες που εκτελούνται στον υπολογιστή σας. Η εντολή grep λαμβάνει γραμμές εισόδου και αναζητά ένα μοτίβο.

Η εντολή ps -ef ανακτά μια λίστα διεργασιών που εκτελούνται. Ο σωλήνας (|) ο metacharacter στέλνει αυτήν τη λίστα στην εντολή grep, η οποία αναζητά οποιαδήποτε γραμμή στη λίστα που περιέχει φ..εφοξ, όπου οι περίοδοι αναφέρονται σε δύο οποιουδήποτε χαρακτήρα.
Εάν ο Firefox εκτελείται, θα λάβετε ένα ταίριασμα. Ομοίως, εάν εκτελείται ένα πρόγραμμα που ονομάζεται fonefox ή freefox, επιστρέφονται επίσης.
Εάν χρειάζεται να αναζητήσετε μόνο έναν χαρακτήρα, αντί να χρησιμοποιήσετε τον μεταχαρακτήρα τελεία (.), χρησιμοποιήστε το; μεταχαρακτήρας. Χρησιμοποιώντας το? Ο μεταχαρακτήρας αναφέρεται σε οποιονδήποτε μεμονωμένο χαρακτήρα είτε στην αρχή είτε στο τέλος του μοτίβου.
Ο αστερίσκος ως μεταχαρακτήρας (*)
ο αστερίσκος (*) είναι ένας παγκοσμίως γνωστός μεταχαρακτήρας. Σημαίνει μηδέν ή περισσότερους χαρακτήρες κατά την αναζήτηση ενός μοτίβου. Για παράδειγμα:
ls *.flac

ο *.flac τμήμα της εντολής επιστρέφει μια αντιστοίχιση για οποιοδήποτε όνομα αρχείου που τελειώνει σε .flac. Ομοίως, μπορείτε να χρησιμοποιήσετε τον αστερίσκο με την εντολή grep στην τελευταία ενότητα ως εξής:
ps -ef | grep f*efox
Αυτό διαφέρει ελαφρώς επειδή ο αστερίσκος σημαίνει μηδέν ή περισσότερο, επομένως, εκτός από την εύρεση των firefox, facefox και fonefox, βρίσκει επίσης flutefox, ferretfox και fefox.

Το καράτι ως μεταχαρακτήρας (^)
το καράτι (^) χρησιμοποιείται για να δηλώσει την αρχή μιας γραμμής ή μιας συμβολοσειράς. Πώς χρησιμοποιείται λοιπόν;
Η εντολή ls παραθέτει τα αρχεία σε έναν φάκελο, ως εξής:
ls -a
Εάν θέλετε να καταχωρίσετε τα αρχεία σε έναν φάκελο που ξεκινούν με μια συγκεκριμένη συμβολοσειρά, για παράδειγμα, gnome, το καράτι μπορεί να χρησιμοποιηθεί για να καθορίσετε αυτήν τη συμβολοσειρά. Για παράδειγμα:
ls -a | grep ^gnome
Αυτό παραθέτει τα αρχεία που ξεκινούν με gnome. Εάν θέλετε αρχεία που έχουν gnome οπουδήποτε στο όνομα αρχείου, χρησιμοποιήστε τον αστερίσκο.

Στο παραπάνω παράδειγμα, η εντολή ls επιστρέφει μια λίστα ονομάτων αρχείων και μεταβιβάζει αυτήν τη λίστα στην εντολή grep, η οποία χρησιμοποιείται για την αντιστοίχιση προτύπων. Ο Γκρεπ γνωρίζει ότι το σύμβολο καρατίων σημαίνει να βρείτε οτιδήποτε ξεκινά με τους χαρακτήρες που ακολουθούν, και σε αυτήν την περίπτωση, αυτό είναι το gnome.
Το σύμβολο του δολαρίου ως μεταχαρακτήρας ($)
Το σύμβολο του δολαρίου ($) έχει πολλαπλές σημασίες ως μεταχαρακτήρας στο Linux. Όταν χρησιμοποιείται για να ταιριάζει με μοτίβα, σημαίνει το αντίθετο από το καράτι και υποδηλώνει οποιοδήποτε σχέδιο που τελειώνει με μια συγκεκριμένη συμβολοσειρά. Για παράδειγμα:
ls | grep png$
Αυτό παραθέτει όλα τα αρχεία που τελειώνουν με png.
Το σύμβολο του δολαρίου χρησιμοποιείται επίσης για την πρόσβαση σε μεταβλητές περιβάλλοντος εντός του κελύφους bash. Για παράδειγμα:
#! /bin/bash
σκύλος εξαγωγής=μόλυ
ηχώ $σκύλος

Η γραμμή σκύλος εξαγωγής=μόλυ δημιουργεί μια μεταβλητή περιβάλλοντος που ονομάζεται σκύλος και ορίζει την αξία του υποκοριστικό της Mary. Για πρόσβαση στη μεταβλητή περιβάλλοντος, χρησιμοποιήστε το σύμβολο $. Με το σύμβολο $, το ηχώ $σκύλος δήλωση εμφανίζει molly. Χωρίς αυτό, το σκύλος ηχώ δήλωση εμφανίζει τη λέξη σκύλος.
Διαφυγής μεταχαρακτήρες (\\)
Μερικές φορές δεν θέλετε ο μεταχαρακτήρας να έχει ιδιαίτερη σημασία. Για παράδειγμα, εάν καλείται ένα αρχείο f.refox και καλείται ένα άλλο αρχείο firefox.
Τώρα κοιτάξτε την ακόλουθη εντολή:
ls | grep f.refox
Τι πιστεύετε ότι επιστρέφεται; Τόσο το f.refox όσο και το firefox επιστρέφονται επειδή και τα δύο ταιριάζουν με το μοτίβο.

Για να επιστρέψετε μόνο το f.refox, διαφυγή από την τελεία σημαίνει στην πραγματικότητα τελεία, ως εξής:
ls | grep f\\.refox
Αγκύλες ως μεταχαρακτήρας ([])
Μπορείτε να χρησιμοποιήσετε αγκύλες ([ ]) κατά την αναζήτηση μοτίβων. Οι αγκύλες καθορίζουν συγκεκριμένα γράμματα που ταιριάζουν σε οποιοδήποτε σημείο του μοτίβου. Για παράδειγμα:
ls | grep [abc]
Αυτό παραθέτει όλα τα αρχεία που περιέχουν τα γράμματα a, b ή c.

Μπορείτε να χρησιμοποιήσετε αγκύλες στην αρχή, στο τέλος ή στη μέση ενός μοτίβου αναζήτησης.
Για να αναζητήσετε μια σειρά από γράμματα, χρησιμοποιήστε τον χαρακτήρα παύλα (-). Για παράδειγμα, ls [a-h]* επιστρέφει αρχεία που ξεκινούν με οποιοδήποτε γράμμα από το a έως το h.
Ο μεταχαρακτήρας Accent Grave
Στα παραπάνω παραδείγματα, ο μεταχαρακτήρας σωλήνα στέλνει τα αποτελέσματα μιας εντολής (όπως η εντολή ls) σε μια άλλη εντολή (όπως η εντολή grep).
Ένας εναλλακτικός τρόπος για να το κάνετε αυτό είναι να χρησιμοποιήσετε το πίσω απόσπασμα, επίσης γνωστό ως τον τάφο (`), για να εισαγάγετε τα αποτελέσματα μιας εντολής σε μια άλλη εντολή. Για να το κάνετε αυτό, αποθηκεύστε το αποτέλεσμα μιας εντολής σε μια μεταβλητή. Για παράδειγμα:
εντολή=`ls -lah`
ηχώ $εντολή

Το παράδειγμα είναι εξαιρετικά επινοημένο και πιθανότατα δεν θα κάνετε ποτέ κάτι τέτοιο, αλλά μπορείτε να δείτε πώς λειτουργεί. Ο χαρακτήρας backtick εκτελεί μια εντολή και αποθηκεύει το αποτέλεσμα. Αυτό μπορεί να είναι χρήσιμο στο σενάριο, αλλά είναι λιγότερο ευέλικτο από τη χρήση του σωλήνα για απλές εντολές.
Κοινοί μεταχαρακτήρες και οι έννοιές τους
Χαρακτήρας | Εννοια |
. | Οποιοσδήποτε χαρακτήρας. |
* | Μηδέν ή περισσότεροι χαρακτήρες. |
^ | Αντιστοιχίστε οποιαδήποτε γραμμή ή συμβολοσειρά που ξεκινά με ένα μοτίβο (για παράδειγμα, ^gnome). |
$ | Αντιστοιχίστε οποιαδήποτε γραμμή ή συμβολοσειρά που τελειώνει με ένα μοτίβο (για παράδειγμα, gnome$). |
\ | Ξεφεύγει από τον επόμενο χαρακτήρα για να αφαιρέσει την ιδιαίτερη σημασία του. |
[] | Αντιστοιχίστε ένα από μια λίστα ή ένα εύρος (για παράδειγμα, ["abc", "def"] ή [1..9]). |
+ | Αντιστοιχίστε ένα ή περισσότερα από τα προηγούμενα (για παράδειγμα, grep a+). |
? | Αντιστοιχίστε το μηδέν ή το ένα προηγούμενο. |