15 ειδικοί χαρακτήρες που πρέπει να γνωρίζετε για το Bash

Εάν θέλετε να κυριαρχήσετε στο κέλυφος του Bash σε Linux, macOS ή άλλο σύστημα που μοιάζει με UNIX, οι ειδικοί χαρακτήρες (όπως ~, *, | και >) είναι κρίσιμοι. Θα σας βοηθήσουμε να ξετυλίξετε αυτές τις κρυπτικές ακολουθίες εντολών Linux και να γίνετε ήρωας των ιερογλυφικών.

Τι είναι οι ειδικοί χαρακτήρες;

Υπάρχει ένα σύνολο χαρακτήρων το Κέλυφος Bash αντιμετωπίζει με δύο διαφορετικούς τρόπους. Όταν τα πληκτρολογείτε στο κέλυφος, λειτουργούν ως οδηγίες ή εντολές και λένε στο κέλυφος να εκτελέσει μια συγκεκριμένη λειτουργία. Σκεφτείτε τις ως εντολές ενός χαρακτήρα.

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

Θα σας δείξουμε ποιοι χαρακτήρες είναι «ειδικοί» ή «μετα-» χαρακτήρες, καθώς και πώς μπορείτε να τους χρησιμοποιήσετε λειτουργικά και κυριολεκτικά.

~ Αρχική Κατάλογος

Η περισπωμένη (~) είναι συντομογραφία για τον αρχικό σας κατάλογο. Σημαίνει ότι δεν χρειάζεται να πληκτρολογήσετε την πλήρη διαδρομή προς τον αρχικό σας κατάλογο σε εντολές. Όπου κι αν βρίσκεστε στο σύστημα αρχείων, μπορείτε να χρησιμοποιήσετε αυτήν την εντολή για να μεταβείτε στον αρχικό σας κατάλογο:

cd ~

ο

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

cd ~/work/archive

ο

. Τρέχων κατάλογος

Μια τελεία (.) αντιπροσωπεύει τον τρέχοντα κατάλογο. Το βλέπετε σε λίστες καταλόγου εάν χρησιμοποιήσετε την επιλογή -a (όλα) με ls.

ls -a

ο

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

./script.sh

Αυτό λέει στον Bash να ψάξει στον τρέχοντα κατάλογο για το αρχείο script.sh. Με αυτόν τον τρόπο, δεν θα πραγματοποιήσει αναζήτηση στους καταλόγους στη διαδρομή σας για αντιστοίχιση εκτελέσιμου αρχείου ή σεναρίου.

ο

.. Κατάλογος Γονέων

Η διπλή περίοδος ή “διπλή τελεία” (..) αντιπροσωπεύει τον γονικό κατάλογο του τρέχοντος καταλόγου σας. Μπορείτε να το χρησιμοποιήσετε για να ανεβείτε ένα επίπεδο στο δέντρο καταλόγου.

cd ..

ο

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

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

cd ../gc_help

ο

/ Διαχωριστής καταλόγου διαδρομής

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

ls ~/work/archive

ο

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

cd /

ο

# Σχόλιο ή Περικοπή χορδών

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

# This will be ignored by the Bash shell

ο

Ωστόσο, δεν αγνοείται πραγματικά, επειδή έχει προστεθεί στο ιστορικό εντολών σας.

  Μπορείτε να αναιρέσετε την αποστολή στο Outlook, όπως το Gmail

Μπορείτε επίσης να χρησιμοποιήσετε τον κατακερματισμό για να περικόψετε μια μεταβλητή συμβολοσειράς και να αφαιρέσετε κάποιο κείμενο από την αρχή. Αυτή η εντολή δημιουργεί μια μεταβλητή συμβολοσειράς που ονομάζεται this_string.

Σε αυτό το παράδειγμα, εκχωρούμε το κείμενο “Dave Geek!” στη μεταβλητή.

this_string="Dave Geek!"

Αυτή η εντολή χρησιμοποιεί echo για να εκτυπώσει τις λέξεις “How-To” στο παράθυρο του τερματικού. Ανακτά την τιμή που είναι αποθηκευμένη στη μεταβλητή συμβολοσειράς μέσω του a επέκταση παραμέτρων. Επειδή προσθέτουμε τον κατακερματισμό και το κείμενο “Dave”, κόβει αυτό το τμήμα της συμβολοσειράς πριν περάσει σε ηχώ.

echo How-To ${this_string#Dave}

Ενα

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

echo $this_string

ο

? Μπαλαντέρ μονού χαρακτήρα

Το κέλυφος Bash υποστηρίζει τρεις χαρακτήρες μπαλαντέρ, ένας από τους οποίους είναι το ερωτηματικό (?). Χρησιμοποιείτε χαρακτήρες μπαλαντέρ για να αντικαταστήσετε χαρακτήρες σε πρότυπα ονομάτων αρχείων. Ένα όνομα αρχείου που περιέχει έναν χαρακτήρα μπαλαντέρ σχηματίζει ένα πρότυπο που ταιριάζει με μια σειρά ονομάτων αρχείων και όχι μόνο με ένα.

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

ls badge?.txt

Αυτό μεταφράζεται ως “καταχώριση οποιουδήποτε αρχείου με όνομα που ξεκινά με “σήμα” και ακολουθείται από οποιονδήποτε χαρακτήρα πριν από την επέκταση ονόματος αρχείου.”

Ταιριάζει με τα παρακάτω αρχεία. Σημειώστε ότι ορισμένα έχουν αριθμούς και μερικά έχουν γράμματα μετά το τμήμα “σήμα” του ονόματος αρχείου. Ο μπαλαντέρ ερωτηματικού θα ταιριάζει και με γράμματα και αριθμούς.

ο

Ωστόσο, αυτό το πρότυπο ονόματος αρχείου δεν ταιριάζει με το “badge.txt”, επειδή το όνομα αρχείου δεν έχει ούτε έναν χαρακτήρα μεταξύ του “σήμα” και της επέκτασης αρχείου. Ο μπαλαντέρ ερωτηματικού πρέπει να ταιριάζει με έναν αντίστοιχο χαρακτήρα στο όνομα αρχείου.

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

ls ?????.txt

ΕΝΑ

* Χαρακτήρας μπαλαντέρ ακολουθίας χαρακτήρων

Μπορείτε να χρησιμοποιήσετε τον αστερίσκο

ls badge*

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

Αυτό ταιριάζει με όλα τα παρακάτω:

Ενα

Ταιριάζει με το “badge.txt” επειδή ο μπαλαντέρ αντιπροσωπεύει οποιαδήποτε ακολουθία χαρακτήρων ή καθόλου χαρακτήρες.

ls source.*

Αυτή η εντολή ταιριάζει με όλα τα αρχεία που ονομάζονται

[] Ενα

Σετ μπαλαντέρ χαρακτήρων

  Πώς να ελέγξετε εάν είναι διαθέσιμη η ενημέρωση Fall Creators

Όπως καλύφθηκε παραπάνω, χρησιμοποιείτε το ερωτηματικό για να αναπαραστήσετε οποιονδήποτε μεμονωμένο χαρακτήρα και τον αστερίσκο για να αναπαραστήσετε οποιαδήποτε ακολουθία χαρακτήρων (συμπεριλαμβανομένων των χαρακτήρων). [] Μπορείτε να σχηματίσετε έναν χαρακτήρα μπαλαντέρ με τις αγκύλες (

) και τους χαρακτήρες που περιέχουν. Ο σχετικός χαρακτήρας στο όνομα αρχείου πρέπει στη συνέχεια να ταιριάζει με τουλάχιστον έναν από τους χαρακτήρες στο σύνολο χαρακτήρων μπαλαντέρ.

ls badge_0[246].txt

Σε αυτό το παράδειγμα, η εντολή μεταφράζεται σε:

Ενα

ls badge_[01][789].txt

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

Ενα

ls badge_[23][1-5].txt

Μπορείτε επίσης να συμπεριλάβετε εύρη στο σύνολο χαρακτήρων.  Η ακόλουθη εντολή επιλέγει αρχεία με τους αριθμούς 21 έως 25 και 31 έως 35 στο όνομα αρχείου.

Ενα

; Διαχωριστής εντολών Shell

ls > count.txt; wc -l count.txt; rm count.txt

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

count.txt; wc -l count.txt; εντολή rm count.txt” σε παράθυρο τερματικού’ width=”646″ height=”122″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

Σημειώστε ότι η δεύτερη εντολή εκτελείται ακόμη και αν αποτύχει η πρώτη, η τρίτη εκτελείται ακόμη και αν αποτύχει η δεύτερη και ούτω καθεξής.

cd ./doesntexist && cp ~/Documents/reports/* .

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

ΕΝΑ

Διαδικασία & Παρασκήνιο

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

gedit command_address.page &

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

ΕΝΑ

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

sort 

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

When a command has input redirected into it, it might behave differently than when it reads from a named file.

If we use wc to count the words, lines, and characters in a file, it prints the values, and then the filename. If we redirect the contents of the file to wc, it prints the same numeric values but doesn’t know the name of the file from which the data came. It cannot print a filename.

Here are some examples of how you can use wc:

wc words.txt
wc 

ΕΝΑ

> Output Redirection

You can use the right-angle bracket ( > ) to redirect the output from a command (typically, into a file); here’s an example:

ls > files.txt
cat files.txt

ΕΝΑ Ενα

εντολή files.txt" σε ένα παράθυρο τερματικού." width="646" height="382" >

wc doesntexist.txt 2> errors.txt
cat errors.txt

Η ανακατεύθυνση εξόδου μπορεί επίσης να ανακατευθύνει μηνύματα σφάλματος εάν χρησιμοποιείτε ένα ψηφίο (2, στο παράδειγμά μας) με >.  Δείτε πώς να το κάνετε: ΕΝΑ

εντολή errors.txt" σε ένα παράθυρο τερματικού." width="646" height="122" >

| Σωλήνας

Μια "σωλήνα" αλυσίδες εντολές μαζί. Παίρνει την έξοδο από μια εντολή και την τροφοδοτεί στην επόμενη ως είσοδο. Ο αριθμός των εντολών (το μήκος της αλυσίδας) είναι αυθαίρετος.

Εδώ, θα χρησιμοποιήσουμε το cat για να τροφοδοτήσουμε τα περιεχόμενα του αρχείου words.txt στο grep, το οποίο εξάγει κάθε γραμμή που περιέχει είτε πεζό είτε κεφαλαίο "C". Το grep θα περάσει στη συνέχεια αυτές τις γραμμές για ταξινόμηση. Η ταξινόμηση χρησιμοποιεί την επιλογή -r (αντίστροφη), επομένως τα ταξινομημένα αποτελέσματα θα εμφανίζονται με αντίστροφη σειρά.

cat words.txt | grep [cC] | sort -r

Πληκτρολογήσαμε τα εξής:

ΕΝΑ

! Pipeline λογικό NOT και History Operator

Το θαυμαστικό (!) είναι ένας λογικός τελεστής που σημαίνει ΟΧΙ.

[ ! -d ./backup ] && mkdir ./backup

Υπάρχουν δύο εντολές σε αυτή τη γραμμή εντολών:
Η πρώτη εντολή είναι το κείμενο μέσα στις αγκύλες.

Η δεύτερη εντολή είναι το κείμενο που ακολουθεί τα διπλά σύμβολα &&.

Η πρώτη εντολή χρησιμοποιεί ! ως λογικός τελεστής. Οι αγκύλες υποδεικνύουν ότι πρόκειται να γίνει δοκιμή. Η επιλογή -d (κατάλογος) ελέγχει την παρουσία ενός καταλόγου που ονομάζεται backup. Η δεύτερη εντολή δημιουργεί τον κατάλογο.

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

Εδώ είναι ο λογικός τελεστής! Λειτουργεί ως λογικό ΟΧΙ. Έτσι, εάν η δοκιμή πετύχει (δηλαδή, ο κατάλογος υπάρχει), το ! το μετατρέπει σε "ΟΧΙ επιτυχία", που είναι αποτυχία. Άρα, η δεύτερη εντολή δεν είναι ενεργοποιημένη.

Εάν η δοκιμή καταλόγου αποτύχει (δηλαδή, ο κατάλογος δεν υπάρχει), το ! αλλάζει την απόκριση στο «ΟΧΙ αποτυχία», που είναι επιτυχία. Έτσι, εκτελείται η εντολή για τη δημιουργία του καταλόγου που λείπει.

Αυτό το λίγο! έχει πολλή γροθιά όταν τη χρειάζεστε!

ls -l -d backup

Για να ελέγξετε την κατάσταση του φακέλου αντιγράφων ασφαλείας, χρησιμοποιείτε την εντολή ls και τις επιλογές -l (μεγάλη λίστα) και -d (κατάλογος), όπως φαίνεται παρακάτω:

ΕΝΑ

!24

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

ΕΝΑ

!!

Το παρακάτω εκτελεί ξανά την προηγούμενη εντολή:

$ Μεταβλητές εκφράσεις Στο κέλυφος του Bash, δημιουργείτε μεταβλητές για να κρατάτε τιμές. Κάποιοι σαν μεταβλητές περιβάλλοντος,

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

echo $USER
echo $HOME
echo $PATH

Μπορείτε να χρησιμοποιήσετε την ηχώ για να δείτε την τιμή που διατηρεί μια μεταβλητή—απλώς προηγηθείτε του ονόματος της μεταβλητής με το σύμβολο του δολαρίου ($), όπως φαίνεται παρακάτω:

Ενα

ThisDistro=Ubuntu
MyNumber=2001
echo $ThisDistro
echo $MyNumber

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

Ενα

Προσθέστε άγκιστρα ( {} ) γύρω από το σύμβολο του δολαρίου και εκτελέστε μια επέκταση παραμέτρου για να λάβετε την τιμή της μεταβλητής και να επιτρέψετε περαιτέρω μετασχηματισμούς της τιμής.

MyString=123456qwerty

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

echo ${MyString}

Χρησιμοποιήστε την ακόλουθη εντολή για να επαναλάβετε τη συμβολοσειρά στο παράθυρο του τερματικού:

echo ${myString:6}

Για να επιστρέψετε τη δευτερεύουσα συμβολοσειρά ξεκινώντας από τη θέση 6 ολόκληρης της συμβολοσειράς, χρησιμοποιήστε την ακόλουθη εντολή (υπάρχει μηδενική μετατόπιση, επομένως η πρώτη θέση είναι μηδέν):

echo ${myString:0:6}

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

echo ${myString:4:4}

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

ΕΝΑ

Παράθεση ειδικών χαρακτήρων

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

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

echo "Today is $(date)"

Για παράδειγμα, αυτή η εντολή εκτυπώνει την ημερομηνία και την ώρα:

echo 'Today is $(date)'

Εάν περικλείσετε το κείμενο σε μονά εισαγωγικά ('…') όπως φαίνεται παρακάτω, διακόπτεται η λειτουργία όλων των ειδικών χαρακτήρων:

echo "Today is $(date)"

Μπορείτε να χρησιμοποιήσετε μια ανάστροφη κάθετο ( ) για να αποτρέψετε τη λειτουργία του παρακάτω χαρακτήρα ως ειδικού χαρακτήρα. Αυτό ονομάζεται «διαφυγή» του χαρακτήρα. δείτε το παρακάτω παράδειγμα:

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