Τέφρα - εντολή Linux - εντολή Unix

ΟΝΟΜΑ

sh - διερμηνέας εντολών ( shell )

ΣΥΝΟΨΗ

sh [- / + aCefnuvxIimqsVEbc ] [- o όνομα_χρήστη ] -words [ στόχος ... ]

ΠΕΡΙΓΡΑΦΗ

Ο Sh είναι ο συνήθης ερμηνευτής εντολών για το σύστημα. Η τρέχουσα έκδοση του sh βρίσκεται στη διαδικασία αλλαγής ώστε να συμμορφώνεται με τις προδιαγραφές POSIX 1003.2 και 1003.2a για το κέλυφος. Αυτή η έκδοση έχει πολλά χαρακτηριστικά τα οποία την κάνουν να φαίνεται παρόμοια σε ορισμένες απόψεις με το κέλυφος Korn, αλλά δεν είναι κλώνος κέρινου Korn (βλ. Ksh (1)). Μόνο χαρακτηριστικά γνωρίσματα που χαρακτηρίζονται από το POSIX και μερικές επεκτάσεις του Berkeley ενσωματώνονται σε αυτό το κέλυφος. Αναμένουμε ότι η POSIX συμμορφώνεται με το χρόνο που θα απελευθερωθεί το BSD 4.4. Αυτή η σελίδα δεν προορίζεται να είναι ένα σεμινάριο ή μια πλήρης περιγραφή του κελύφους.

ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ

Το κέλυφος είναι μια εντολή που διαβάζει γραμμές από ένα αρχείο ή το τερματικό, τις ερμηνεύει και γενικά εκτελεί άλλες εντολές. Πρόκειται για το πρόγραμμα που εκτελείται όταν ένας χρήστης συνδεθεί στο σύστημα (αν και ένας χρήστης μπορεί να επιλέξει ένα διαφορετικό κέλυφος με την εντολή chsh (1)). Το κέλυφος εφαρμόζει μια γλώσσα που έχει δομές ελέγχου ροής, μια μακροεντολή που παρέχει μια ποικιλία χαρακτηριστικών εκτός από την αποθήκευση δεδομένων, μαζί με ενσωματωμένες δυνατότητες επεξεργασίας ιστορικού και γραμμής. Ενσωματώνει πολλά χαρακτηριστικά που βοηθούν τη διαδραστική χρήση και έχει το πλεονέκτημα ότι η ερμηνευτική γλώσσα είναι κοινή τόσο σε διαδραστική όσο και σε μη διαδραστική χρήση (script scripts). Δηλαδή, οι εντολές μπορούν να δακτυλογραφούν απευθείας στο τρέχον κέλυφος ή μπορούν να τεθούν σε ένα αρχείο και το αρχείο μπορεί να εκτελεστεί απευθείας από το κέλυφος.

Επίκληση

Αν δεν υπάρχει παύλα και εάν η τυποποιημένη είσοδος του κελύφους είναι συνδεδεμένη με ένα τερματικό (ή εάν έχει οριστεί η σημαία - i ) και η επιλογή - c δεν υπάρχει, το κέλυφος θεωρείται ένα διαλογικό κέλυφος . Ένα διαδραστικό κέλυφος προτρέπει γενικά κάθε εντολή και χειρίζεται διαφορετικά τα σφάλματα προγραμματισμού και εντολής (όπως περιγράφεται παρακάτω). Κατά την πρώτη εκκίνηση, το κέλυφος επιθεωρεί το όρισμα 0 και αν αρχίζει με ένα παύλα `- ', το κέλυφος θεωρείται επίσης ένα κέλυφος σύνδεσης. Αυτό γίνεται συνήθως αυτόματα από το σύστημα όταν ο χρήστης συνδεθεί πρώτα. Ένα κέλυφος σύνδεσης διαβάζει πρώτα τις εντολές από τα αρχεία / etc / profile και .profile, αν υπάρχουν. Εάν η μεταβλητή περιβάλλοντος ENV έχει οριστεί για την είσοδο σε ένα κέλυφος ή έχει οριστεί στο .profile ενός κελύφους σύνδεσης, τότε το κέλυφος διαβάζει τις εντολές από το αρχείο που ονομάζεται στο ENV Επομένως, ένας χρήστης πρέπει να τοποθετήσει εντολές που πρόκειται να εκτελεστούν μόνο σε ώρα σύνδεσης στο αρχείο .profile και εντολές που εκτελούνται για κάθε κέλυφος μέσα στο αρχείο ENV . Για να ορίσετε τη μεταβλητή ENV σε κάποιο αρχείο, τοποθετήστε την ακόλουθη γραμμή στο προφίλ σας του οικείου καταλόγου σας

ENV = $ HOME / .shinit; εξαγωγή ENV

αντικαθιστώντας με το `` .shinit '' οποιοδήποτε όνομα αρχείου θέλετε. Δεδομένου ότι το αρχείο ENV διαβάζεται για κάθε επίκληση του κελύφους, συμπεριλαμβανομένων των χειρογράφων κελύφους και των μη διαδραστικών κελυφών, το ακόλουθο παράδειγμα είναι χρήσιμο για τον περιορισμό των εντολών στο αρχείο ENV σε διαλογικές επικλήσεις. Τοποθετήστε τις εντολές στο `` case '' και `` esac '' παρακάτω (αυτές οι εντολές περιγράφονται παρακάτω):

περίπτωση $ - σε * i *)

# εντολές μόνο για διαδραστική χρήση

...

esac

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

Επεξεργασία λίστας παραμέτρων

Όλες οι επιλογές ενός γράμματος έχουν ένα αντίστοιχο όνομα που μπορεί να χρησιμοποιηθεί ως όρισμα στην επιλογή - o . Το όνομα set- o παρέχεται δίπλα στην επιλογή μεμονωμένων γραμμάτων στην παρακάτω περιγραφή. Ο καθορισμός μιας παύλας `` - '' ενεργοποιεί την επιλογή, ενώ χρησιμοποιώντας ένα συν `` + '' απενεργοποιεί την επιλογή. Οι ακόλουθες επιλογές μπορούν να ρυθμιστούν από τη γραμμή εντολών ή με το σύνολο (1) που είναι ενσωματωμένο (περιγράφεται παρακάτω).

-αλληροφορια

Εξαγωγή όλων των μεταβλητών που έχουν εκχωρηθεί. (ΧΩΡΙΣ ΕΦΑΡΜΟΓΗ για 4.4αλφα)

-ντο

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

-Cnightlobber

Μην αντικαταστήσετε υπάρχοντα αρχεία με ``> '' (UNIMPLEMENTED για 4.4alpha)

errexit

Εάν δεν είναι αλληλεπιδραστική, βγείτε αμέσως εάν αποτύχει οποιαδήποτε μη δοκιμασμένη εντολή. Η κατάσταση εξόδου μιας εντολής θεωρείται ότι εξετάζεται ρητά αν η εντολή χρησιμοποιείται για τον έλεγχο ενός if elif ενώ ή μέχρι ή αν η εντολή είναι ο αριστερός χειρός ενός operand `` & `` ή `` || '.

-f noglob

Απενεργοποίηση επέκτασης ονόματος διαδρομής .

-n noexec

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

-u nounset

Γράψτε ένα μήνυμα στο τυπικό σφάλμα όταν προσπαθείτε να αναπτύξετε μια μεταβλητή που δεν έχει οριστεί και αν το κέλυφος δεν είναι διαδραστικό, βγείτε αμέσως. (ΧΩΡΙΣ ΕΦΑΡΜΟΓΗ για 4.4αλφα)

-v verbose

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

-x xtrace

Γράψτε κάθε εντολή σε τυποποιημένο σφάλμα (που προηγείται από ένα `+ 'πριν εκτελεστεί.) Χρήσιμο για σφάλμα.

-q quietprofile

Εάν έχουν επιλεχθεί οι επιλογές - v ή - x , μην τις εφαρμόζετε όταν διαβάζετε τα αρχεία αρχικοποίησης, αυτά είναι το / etc / profile .profile και το αρχείο που καθορίζεται από τη μεταβλητή περιβάλλοντος ENV .

-Με αγνοώ

Αγνοήστε τα EOF από την είσοδο όταν είναι διαδραστικά.

-i διαδραστικό

Αναγκάστε το κέλυφος να συμπεριφέρεται διαδραστικά.

-m οθόνη

Ενεργοποιήστε τον έλεγχο εργασιών (ρυθμίζεται αυτόματα όταν διαδραματίζεται).

-όχι

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

-V vi

Ενεργοποιήστε τον ενσωματωμένο επεξεργαστή γραμμής εντολών vi (1) (απενεργοποιεί - εάν έχει ρυθμιστεί).

-Ενάκς

Ενεργοποιήστε τον ενσωματωμένο επεξεργαστή γραμμής εντολών emacs (1) (απενεργοποιεί - εάν έχει ρυθμιστεί).

ειδοποίηση

Ενεργοποίηση ασύγχρονης ειδοποίησης της ολοκλήρωσης εργασιών φόντου. (ΧΩΡΙΣ ΕΦΑΡΜΟΓΗ για 4.4αλφα)

Λεξική δομή

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

"Διαχειριστές ελέγχου:"

& && (); · · | ||

"Διαχειριστής ανακατεύθυνσης:"

<>> | << >> <&> & << - <>

Αναφορά

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

Αντίστροφη κάθετο

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

Ενιαία αποσπάσματα

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

Διπλά αποσπάσματα

Ο συσχετισμός χαρακτήρων μέσα σε διπλά εισαγωγικά διατηρεί το κυριολεκτικό νόημα όλων των χαρακτήρων εκτός από το dollarsign ($) backquote (`) και την ανάστροφη κάθετο (\) Η αντίστροφη κάθετη μέσα στα διπλά εισαγωγικά είναι ιστορικά περίεργη και χρησιμεύει για να παραθέσει μόνο τους ακόλουθους χαρακτήρες:

$ `\

Αλλιώς παραμένει κυριολεκτικά.

Δεσμευμένες λέξεις

Οι δεσμευμένες λέξεις είναι λέξεις που έχουν ιδιαίτερη σημασία στο κέλυφος και αναγνωρίζονται στην αρχή μιας γραμμής και μετά από έναν χειριστή ελέγχου. Τα παρακάτω είναι αποκλειστικές λέξεις:

! Ta elif Ta Ta Ta ενώ η υπόθεση Ta

αλλι Τα για Ta και Ta {Ta}

Κάνετε Ta το Ta μέχρι το Ta αν Ta esac

Η σημασία τους συζητείται αργότερα.

Ψευδώνυμα

Ένα ψευδώνυμο είναι ένα όνομα και η αντίστοιχη τιμή που έχει οριστεί χρησιμοποιώντας την εντολή ενσωματωμένης ψευδωνύμου (1). Κάθε φορά που μπορεί να εμφανιστεί μια δεσμευμένη λέξη (βλ. Παραπάνω) και αφού ελέγξει για επιφυλασσόμενες λέξεις, το κέλυφος ελέγχει τη λέξη για να δει αν αντιστοιχεί σε ένα ψευδώνυμο. Εάν το κάνει, το αντικαθιστά στο ρεύμα εισόδου με την τιμή του. Για παράδειγμα, εάν υπάρχει ένα ψευδώνυμο που ονομάζεται `` lf '' με την τιμή `` ls-F '' τότε η είσοδος:

Αν η foobar επιστρέψει

θα γινόταν

ls -F foobar <επιστροφή>

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

Εντολές

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

Απλές εντολές

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

  1. Οι κορυφαίες λέξεις της φόρμας `` name = value '' απογυμνώνουν και εκχωρούνται στο περιβάλλον της απλής εντολής. Οι χειριστές ανακατεύθυνσης και τα επιχειρήματά τους (όπως περιγράφεται παρακάτω) αφαιρούνται και αποθηκεύονται για επεξεργασία.
  2. Οι υπόλοιπες λέξεις επεκτείνονται όπως περιγράφεται στην ενότητα που ονομάζεται `` Expansions '' και η πρώτη λέξη που απομένει θεωρείται το όνομα της εντολής και εντοπίζεται η εντολή. Οι υπόλοιπες λέξεις θεωρούνται τα επιχειρήματα της εντολής. Εάν δεν προέκυψε κανένα όνομα εντολής, τότε οι μεταβλητές αντιστοιχίσεων `` name = value '' που αναγνωρίζονται στο στοιχείο 1 επηρεάζουν το τρέχον κέλυφος.
  3. Οι ανακατευθύνσεις πραγματοποιούνται όπως περιγράφεται στην επόμενη ενότητα.

Ανακατευθύνσεις

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

[n] αρχείο redir-op

όπου redir-op είναι ένας από τους χειριστές ανακατεύθυνσης που αναφέρθηκαν προηγουμένως. Ακολουθεί μια λίστα με τις πιθανές ανακατευθύνσεις. Το Bq n είναι ένας προαιρετικός αριθμός, όπως στο '3' (όχι `Bq 3 'που αναφέρεται σε έναν περιγραφέα αρχείου.

[n]> αρχείο

Επαναφορά τυπικής εξόδου (ή n) στο αρχείο.

[n]> | αρχείο

Ίδια, αλλά αντικαταστήστε την επιλογή - C.

[n] >> αρχείο

Προσθέστε τυπική έξοδο (ή n) στο αρχείο.

[n] <αρχείο

Ανακατεύθυνση τυπικής εισόδου (ή n) από αρχείο.

[n1] <& n2

Διπλή τυπική είσοδος (ή n1) από τον περιγραφέα αρχείου n2.

[n] <& -

Κλείστε τυποποιημένη είσοδο (ή n).

[n1]> & n2

Διπλή τυπική έξοδος (ή n1) από n2.

[n]> & -

Κλείστε την τυπική έξοδο (ή n).

[n] <> αρχείο

Άνοιγμα αρχείου για ανάγνωση και εγγραφή σε τυπική είσοδο (ή n).

Η ακόλουθη ανακατεύθυνση καλείται συχνά "εδώ-έγγραφο"

[n] << οριοθέτης

εδώ-doc-κείμενο ...

οριοθέτη

Το όλο κείμενο σε διαδοχικές γραμμές έως τον αποδιαμορφωτή αποθηκεύεται μακριά και τίθεται στη διάθεση της εντολής στην τυποποιημένη είσοδο ή στον περιγραφέα αρχείων n, εάν έχει καθοριστεί. Εάν αναφέρεται ο οριοθέτης όπως καθορίζεται στην αρχική γραμμή, τότε το here-doc-κείμενο αντιμετωπίζεται κυριολεκτικά, αλλιώς το κείμενο υπόκειται σε επέκταση παραμέτρων, υποκατάσταση εντολών και αριθμητική επέκταση (όπως περιγράφεται στην ενότητα "Επεκτάσεις") 'Αν ο χειριστής είναι `` << -' 'αντί για `` <<' 'τότε οι κορυφαίες καρτέλες στο here-doc-text είναι απογυμνωμένες.

Αναζήτηση και Εκτέλεση

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

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

Οι ενσωματωμένες Shell εκτελούνται εσωτερικά στο κέλυφος, χωρίς να δημιουργείται νέα διαδικασία.

Διαφορετικά, εάν το όνομα της εντολής δεν ταιριάζει με κάποια λειτουργία ή ενσωματωμένη, η εντολή αναζητείται ως κανονικό πρόγραμμα στο σύστημα αρχείων (όπως περιγράφεται στην επόμενη ενότητα). Όταν εκτελείται ένα κανονικό πρόγραμμα, το κέλυφος τρέχει το πρόγραμμα, μεταβιβάζοντας τα επιχειρήματα και το περιβάλλον στο πρόγραμμα. Αν το πρόγραμμα δεν είναι κανονικό εκτελέσιμο αρχείο (δηλαδή, εάν δεν ξεκινάει με τον "μαγικό αριθμό" του οποίου η παράσταση ASCII είναι "#!", Έτσι execve (2) επιστρέφει Er ENOEXEC τότε) το κέλυφος θα ερμηνεύσει το πρόγραμμα σε ένα subshell. Το κέλυφος του παιδιού θα ξεκινήσει εκ νέου σε αυτήν την περίπτωση, έτσι ώστε το αποτέλεσμα θα είναι σαν να είχε χρησιμοποιηθεί ένα νέο κέλυφος για να χειριστεί το σενάριο ad-hoc shell, εκτός από το ότι η θέση των χαστούμενων εντολών που βρίσκονται στο γονικό κέλυφος θα θυμόμαστε παιδί.

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

Αναζήτηση διαδρομής

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

  1. Τα ονόματα εντολών που περιέχουν μια κάθετο γραμμή εκτελούνται απλά χωρίς να πραγματοποιούνται αναζητήσεις.
  2. Το κέλυφος αναζητά κάθε είσοδο στο PATH με τη σειρά του για την εντολή. Η τιμή της μεταβλητής PATH θα πρέπει να είναι μια σειρά εγγραφών που χωρίζονται από διπλανούς. Κάθε καταχώρηση αποτελείται από ένα όνομα καταλόγου. Ο τρέχων κατάλογος μπορεί να υποδηλώνεται σιωπηρά από ένα κενό όνομα καταλόγου ή ρητά από μία μόνο περίοδο.

Κατάσταση εξόδου εντολών

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

Σύνθετες εντολές

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

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

Αγωγούς

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

Η μορφή ενός αγωγού είναι:

[!] εντολή1 [ command2 ...]

Η τυπική έξοδος της εντολής1 συνδέεται με την τυπική είσοδο της εντολής2. Η τυποποιημένη είσοδος, η τυπική έξοδος ή και οι δύο εντολές θεωρείται ότι εκχωρούνται από τον αγωγό πριν από οποιαδήποτε ανακατεύθυνση που καθορίζεται από τους χειριστές ανακατεύθυνσης που είναι μέρος της εντολής.

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

Εάν η δεσμευμένη λέξη! δεν προηγείται του αγωγού, η κατάσταση εξόδου είναι η κατάσταση εξόδου της τελευταίας εντολής που καθορίζεται στην αγωγό. Διαφορετικά, η κατάσταση εξόδου είναι το λογικό NOT της κατάστασης εξόδου της τελευταίας εντολής. Δηλαδή, αν η τελευταία εντολή επιστρέψει μηδέν, η κατάσταση εξόδου είναι 1. αν η τελευταία εντολή επιστρέφει μεγαλύτερη από μηδέν, η κατάσταση εξόδου είναι μηδέν.

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

$ command1 2> & 1 | command2

στέλνει τόσο την τυπική έξοδο όσο και το τυπικό σφάλμα της εντολής1 στην τυπική είσοδο της εντολής2.

ΕΝΑ ; ή προκαλεί την εκτέλεση της προηγούμενης λίστας AND-OR (που περιγράφεται στη συνέχεια) διαδοχικά. το & a προκαλεί ασύγχρονη εκτέλεση της προηγούμενης λίστας AND-OR.

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

Εντολές φόντου -

Αν μια εντολή τερματιστεί από τον χειριστή ελέγχου ampersand (&), το κέλυφος εκτελεί την εντολή ασύγχρονα - δηλαδή, το κέλυφος δεν περιμένει την ολοκλήρωση της εντολής πριν εκτελέσει την επόμενη εντολή.

Η μορφή εκτέλεσης εντολής στο παρασκήνιο είναι:

εντολή1 & [εντολή2 & ...]

Εάν το κέλυφος δεν είναι αλληλεπιδραστικό, η τυπική είσοδος μιας ασύγχρονης εντολής έχει οριστεί σε / dev / null

Λίστες - Γενικά Μιλώντας

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

Λειτουργοί λίστας μικρών κυκλωμάτων

`` && '' και `` || '' είναι τελεστές OR-OR. Το `` && '' εκτελεί την πρώτη εντολή και στη συνέχεια εκτελεί τη δεύτερη εντολή εάν η κατάσταση εξόδου της πρώτης εντολής είναι μηδέν. Το `` || '' είναι παρόμοιο, αλλά εκτελεί τη δεύτερη εντολή iff η κατάσταση εξόδου της πρώτης εντολής είναι μηδενική. `` && '' και `` || 'και οι δύο έχουν την ίδια προτεραιότητα.

Κατασκευές Ελέγχου Ροής - εάν, αν και, για περίπτωση

Η σύνταξη της εντολής if είναι

αν υπάρχει λίστα
στη συνέχεια, στη λίστα
[λίστα ελλείμματος
στη συνέχεια] ...
[άλλος κατάλογος]
fi

Η σύνταξη της εντολής while είναι

ενώ λίστα
κάντε μια λίστα
Έγινε

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

Η σύνταξη της εντολής για είναι

για μεταβλητή στη λέξη ...
κάντε μια λίστα
Έγινε

Οι λέξεις έχουν επεκταθεί και, στη συνέχεια, η λίστα εκτελείται επανειλημμένα με τη μεταβλητή που έχει οριστεί σε κάθε λέξη με τη σειρά της. να κάνετε και να κάνετε μπορεί να αντικατασταθεί με `` {'' και ``} ''

Η σύνταξη της εντολής διάλειμμα και συνέχιση είναι

σπάσει [num]
συνέχεια [num]

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

Η σύνταξη της εντολής είναι

λέξη περίπτωση στην
μοτίβο) ?;
...
esac

Το μοτίβο μπορεί να είναι ένα ή περισσότερα μοτίβα (δείτε τα μοτίβα Shell που περιγράφονται παρακάτω), χωρισμένα με χαρακτήρες `` ''.

Ομαδοποίηση εντολών μαζί

Οι εντολές μπορούν να ομαδοποιηθούν γράφοντας είτε

(λίστα)

ή

{list;

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

{printf hello; printf world \ n ";}> χαιρετισμός

Λειτουργίες

Η σύνταξη ενός ορισμού λειτουργίας είναι

όνομα ()

Ο ορισμός συνάρτησης είναι μια εκτελέσιμη δήλωση. όταν εκτελείται, εγκαθιστά μια συνάρτηση που ονομάζεται όνομα και επιστρέφει μηδενική κατάσταση εξόδου. Η εντολή είναι κατά κανόνα μια λίστα που συνοδεύει το `` {'' και ``} ''

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

τοπική [μεταβλητή | -] ...

Τοπική υλοποιείται ως ενσωματωμένη εντολή.

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

Η μόνη ειδική παράμετρος που μπορεί να γίνει τοπικά είναι `` - '' Κάνοντας `` - '' τοπικές οποιεσδήποτε επιλογές κελύφους που αλλάζουν μέσω της εντολής set μέσα στη λειτουργία που θα αποκατασταθεί στις αρχικές τους τιμές όταν επιστρέψει η συνάρτηση.

Η σύνταξη της εντολής επιστροφής είναι

επιστροφή [exitstatus

Τερματίζει την τρέχουσα λειτουργία εκτέλεσης. Η επιστροφή υλοποιείται ως ενσωματωμένη εντολή.

Μεταβλητές και παράμετροι

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

όνομα = τιμή

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

Παράμετροι θέσης

Μια παράμετρος θέσης είναι μια παράμετρος που δηλώνεται με έναν αριθμό (n> 0). Το κέλυφος τα θέτει αρχικά στις τιμές των γραμμών εντολών που ακολουθούν το όνομα του σεναρίου κελύφους. Το ενσωματωμένο σύνολο (1) μπορεί επίσης να χρησιμοποιηθεί για τη ρύθμιση ή την επαναφορά του.

Ειδικές παράμετροι

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

*

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

@

Επέκταση στις παραμέτρους θέσης, ξεκινώντας από μία. Όταν η επέκταση εμφανίζεται μέσα σε διπλά εισαγωγικά, κάθε παράμετρος θέσης επεκτείνεται ως ξεχωριστό όρισμα. Εάν δεν υπάρχουν παράμετροι θέσης, η επέκταση του @ δημιουργεί μηδενικά επιχειρήματα, ακόμα και όταν το @ είναι διπλός. Για παράδειγμα, αυτό σημαίνει ότι αν το $ 1 είναι `` abc '' και το $ 2 είναι `` def ghi '' τότε το Qq $ @ επεκτείνεται στα δύο επιχειρήματα:

abc def ghi

# #

Επέκταση στον αριθμό των παραμέτρων θέσης.

;

Επέκταση στην κατάσταση εξόδου του πιο πρόσφατου αγωγού.

- (Hyphen.)

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

$

Επεκτείνεται στο αναγνωριστικό διαδικασίας του κληθέντος κελύφους. Ένας υποσέλιδος διατηρεί την ίδια τιμή του $ με τον γονέα του.

!

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

0 (μηδέν.)

Επέκταση στο όνομα του σεναρίου κελύφους ή shell.

Word Expansions

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

Οι επεκτάσεις Tilde, οι επεκτάσεις παραμέτρων, οι υποκαταστάσεις εντολών, οι αριθμητικές επεκτάσεις και οι μετακινήσεις προσφορών που εμφανίζονται μέσα σε μια μόνο λέξη, επεκτείνονται σε ένα μόνο πεδίο. Είναι μόνο επέκταση πεδίων ή επέκταση διαδρομής που μπορεί να δημιουργήσει πολλαπλά πεδία από μία μόνο λέξη. Η μόνη εξαίρεση σε αυτόν τον κανόνα είναι η επέκταση της ειδικής παραμέτρου @ μέσα σε διπλά εισαγωγικά, όπως περιγράφηκε παραπάνω.

Η σειρά επέκτασης λέξεων είναι:

  1. Επέκταση Tilde, επέκταση παραμέτρων, αντικατάσταση εντολών, αριθμητική επέκταση (όλα αυτά συμβαίνουν ταυτόχρονα).
  2. Ο χωρισμός πεδίου πραγματοποιείται σε πεδία που παράγονται από το βήμα (1) εκτός αν η μεταβλητή IFS είναι μηδενική.
  3. Εξέλιξη ονομάτων διαδρομής (εκτός εάν έχει τεθεί σε ισχύ η ρύθμιση).
  4. Απόσπασμα από παράθεση.

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

Tilde Expansion (αντικαθιστώντας τον οικείο κατάλογο του χρήστη)

Μια λέξη που αρχίζει με ένα μη τιμαριθμημένο χαρακτήρα tilde (~) υπόκειται σε επέκταση tilda. Όλοι οι χαρακτήρες μέχρι την κάθετο (/) ή το τέλος της λέξης αντιμετωπίζονται ως όνομα χρήστη και αντικαθίστανται από τον οικείο κατάλογο του χρήστη. Εάν το όνομα χρήστη λείπει (όπως στο ~ / foobar), η tilde αντικαθίσταται με την τιμή της μεταβλητής HOME (ο αρχικός κατάλογος του τρέχοντος χρήστη).

Επέκταση παραμέτρων

Η μορφή επέκτασης παραμέτρων έχει ως εξής:

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

Η απλούστερη μορφή επέκτασης παραμέτρων είναι:

Η τιμή, εάν υπάρχει, της παράμετρος αντικαθίσταται.

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

  1. Η επέκταση της οδού δεν εκτελείται στα αποτελέσματα της επέκτασης.
  2. Ο διαχωρισμός πεδίου δεν εκτελείται στα αποτελέσματα της επέκτασης, με την εξαίρεση της @.

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

Χρησιμοποιήστε τις προεπιλεγμένες τιμές. Εάν η παράμετρος είναι απενεργοποιημένη ή μηδενική, η επέκταση της λέξης αντικαθίσταται. διαφορετικά, η τιμή της παραμέτρου αντικαθίσταται.

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

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

Χρήση εναλλακτικής τιμής. Εάν η παράμετρος είναι απενεργοποιημένη ή μηδενική, η τιμή null αντικαθίσταται. διαφορετικά, η επέκταση της λέξης αντικαθίσταται.

Στις επεκτάσεις παραμέτρων που εμφανίστηκαν προηγουμένως, η χρήση του παχέως εντέρου στη μορφή οδηγεί σε δοκιμή για μια παράμετρο που είναι απενεργοποιημένη ή μηδενική. η παράλειψη του παχέος εντέρου έχει ως αποτέλεσμα μια δοκιμή για μια παράμετρο που είναι απενεργοποιημένη.

Μήκος στοιχειοσειράς. Το μήκος των χαρακτήρων της τιμής της παραμέτρου.

Οι ακόλουθες τέσσερις ποικιλίες επέκτασης παραμέτρων προβλέπουν την επεξεργασία υποσέλιδου. Σε κάθε περίπτωση, χρησιμοποιείται για την αξιολόγηση των μοτίβων η συμβολική αντιστοίχιση (βλέπε Shell Patterns) αντί για κανονική σημείωση έκφρασης. Εάν η παράμετρος είναι * ή @, το αποτέλεσμα της επέκτασης είναι απροσδιόριστο. Η συμπλήρωση της πλήρους συμβολοσειράς επέκτασης σε διπλά εισαγωγικά δεν προκαλεί την παραπομπή των ακόλουθων τεσσάρων ειδών χαρακτήρων μοτίβων, ενώ η αναφορά των χαρακτήρων μέσα στα τιράντες έχει αυτό το αποτέλεσμα.

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

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

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

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

Αντικατάσταση εντολών

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

$ (εντολή)

ή Po `` backquoted '' έκδοση Pc:

«εντολή»

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

Αριθμητική επέκταση

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

$ ((έκφραση))

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

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

Διαχωρισμός λευκού χώρου (χωρισμός πεδίου)

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

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

Διόρθωση ονόματος αρχείου (δημιουργία ονόματος αρχείου)

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

Shell Patterns

Ένα μοτίβο αποτελείται από κανονικούς χαρακτήρες, οι οποίοι ταιριάζουν με τους ίδιους και μετα-χαρακτήρες. Οι μετα-χαρακτήρες είναι ``! `` `` `` `` `` Και `` ['' Αυτοί οι χαρακτήρες χάνουν τις ιδιαίτερες έννοιές τους, αν αναφέρονται. Όταν εκτελείται εντολή ή μεταβλητή υποκατάσταση και το δολάριο ή το απόσπασμα δεν αναφέρονται σε διπλό, η τιμή της μεταβλητής ή της εξόδου της εντολής σαρώνεται για αυτούς τους χαρακτήρες και μετατρέπονται σε μετα-χαρακτήρες.

Ένας αστερίσκος (`` * '') αντιστοιχεί σε οποιαδήποτε σειρά χαρακτήρων. Ένα ερωτηματικό αντιστοιχεί σε κάθε έναν χαρακτήρα. Ένα αριστερό βραχίονα (`` ['') εισάγει μια κλάση χαρακτήρων. Το τέλος της κλάσης χαρακτήρων υποδεικνύεται από ένα (``] '') αν λείπει το ``] '' τότε το `` ['' ταιριάζει με `` ['' αντί να εισαγάγει μια τάξη χαρακτήρων. Μια κλάση χαρακτήρων αντιστοιχεί σε οποιονδήποτε από τους χαρακτήρες μεταξύ των αγκυλών. Μπορεί να οριστεί ένας αριθμός χαρακτήρων χρησιμοποιώντας ένα σύμβολο μείον. Η κατηγορία χαρακτήρων μπορεί να συμπληρωθεί κάνοντας ένα θαυμαστικό τον πρώτο χαρακτήρα της τάξης χαρακτήρων.

Για να συμπεριλάβετε ένα ``] '' σε μια τάξη χαρακτήρων, κάντε τον πρώτο χαρακτήρα που αναγράφεται (μετά το `` if ''). Για να συμπεριλάβετε ένα σημάδι μείον, κάντε το πρώτο ή τελευταίο χαρακτήρα που αναγράφεται

Builtins

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

:

Μια εντολή null που επιστρέφει μια τιμή 0 (true) εξόδου.

. αρχείο

Οι εντολές στο καθορισμένο αρχείο διαβάζονται και εκτελούνται από το κέλυφος.

αλλιώς [ όνομα [ = συμβολοσειρά ... ]]

Εάν το όνομα = συμβολοσειρά έχει καθοριστεί, το κέλυφος ορίζει το ψευδώνυμο με την τιμή συμβολοσειράς Εάν έχει οριστεί μόνο το όνομα , εκτυπώνεται η τιμή του ονόματος ψευδωνύμου. Χωρίς επιχειρήματα, το ψευδώνυμο που είναι ενσωματωμένο εκτυπώνει τα ονόματα και τις τιμές όλων των καθορισμένων ψευδώνυμων (δείτε unalias)

bg [ εργασία] ...

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

εντολή εντολή arg ...

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

cd [ κατάλογος ]

Μεταβείτε στον καθορισμένο κατάλογο (προεπιλογή $ HOME) Εάν εμφανιστεί μια καταχώρηση για το CDPATH στο περιβάλλον της εντολής cd ή της μεταβλητής κελύφους CDPATH και το όνομα του καταλόγου δεν ξεκινάει με μια κάθετο, τότε οι κατάλογοι που αναφέρονται στο CDPATH θα αναζητηθούν για τον καθορισμένο κατάλογο. Η μορφή του CDPATH είναι ίδια με αυτή του PATH Σε ένα διαδραστικό κέλυφος, η εντολή cd θα εκτυπώσει το όνομα του καταλόγου στον οποίο έχει πραγματικά μεταβεί, αν αυτό διαφέρει από το όνομα που έδωσε ο χρήστης. Αυτά μπορεί να είναι διαφορετικά είτε επειδή χρησιμοποιήθηκε ο μηχανισμός CDPATH είτε επειδή διαγράφηκε ένας συμβολικός σύνδεσμος.

eval συμβολοσειρά ...

Συνδυάστε όλα τα επιχειρήματα με κενά. Στη συνέχεια επανεξετάστε και εκτελέστε την εντολή.

exec [ εντολή arg ... ]

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

έξοδος [ exitstatus ]

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

όνομα εξαγωγής ...

εξαγωγή -p

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

όνομα εξαγωγής = τιμή

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

fc [- e συντάκτης ] [ πρώτο [ τελευταίο ]]

fc-l [- nr ] [ πρώτο [ τελευταίο ]]

fc -s [ παλαιά = νέα ] [ πρώτα ]

Οι fc ενσωματωμένες λίστες, ή επεξεργασίες και εκ νέου εκτέλεση, εντολές που έχουν εισαχθεί προηγουμένως σε ένα διαδραστικό κέλυφος.

-ε συντάκτης

Χρησιμοποιήστε τον επεξεργαστή που ονομάζεται από τον επεξεργαστή για να επεξεργαστείτε τις εντολές. Η συμβολοσειρά επεξεργαστή είναι ένα όνομα εντολής, το οποίο υπόκειται σε αναζήτηση μέσω της μεταβλητής PATH . Η τιμή στη μεταβλητή FCEDIT χρησιμοποιείται ως προεπιλογή όταν το - e δεν έχει οριστεί. Αν το FCEDIT είναι μηδέν ή ανενεργό, χρησιμοποιείται η τιμή της μεταβλητής EDITOR . Αν ο EDITOR είναι μηδενικός ή απενεργοποιημένος, ο ed (1) χρησιμοποιείται ως editor.

-l (ell)

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

Καταργήστε τους αριθμούς εντολών κατά την καταχώριση με το -l.

-r

Αντίστροφη σειρά των εντολών που αναγράφονται (με - l ή επεξεργασμένες (χωρίς ούτε - l ούτε - s)

-μικρό

Επαναλάβετε την εκτέλεση της εντολής χωρίς να ζητήσετε έναν επεξεργαστή.

πρώτα

τελευταίος

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

[+] αριθμός

Ένας θετικός αριθμός που αντιπροσωπεύει έναν αριθμό εντολής. οι αριθμοί εντολών μπορούν να εμφανιστούν με την επιλογή - l .

-αριθμός

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

σειρά

Μια συμβολοσειρά που υποδεικνύει την πιο πρόσφατα εισαχθείσα εντολή που ξεκινάει με τη συμβολοσειρά Εάν ο παλαιός = νέος τελεστής δεν καθορίζεται επίσης με - s η μορφή συμβολοσειράς του πρώτου τελεστή δεν μπορεί να περιέχει ενσωματωμένο ίσο σημείο.

Οι ακόλουθες μεταβλητές περιβάλλοντος επηρεάζουν την εκτέλεση του fc:

FCEDIT

Όνομα του επεξεργαστή που θα χρησιμοποιήσει.

HISTSIZE

Ο αριθμός των προηγούμενων εντολών που είναι προσβάσιμες.

fg [ εργασία ]

Μετακινήστε την προκαθορισμένη εργασία ή την τρέχουσα εργασία στο προσκήνιο.

getopts optstring var

Η εντολή POSIX getopts , που δεν πρέπει να συγχέεται με το getopt που παράγεται από το Lab Labs (1).

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

Η εντολή getopts καταργεί την παλαιότερη εντολή getopt (1) λόγω του χειρισμού των παραδειγμάτων που περιέχουν κενά.

Οι εντολές getopts μπορούν να χρησιμοποιηθούν για να αποκτήσουν επιλογές και τα επιχειρήματά τους από μια λίστα παραμέτρων. Όταν ενεργοποιείται, το getopts τοποθετεί την τιμή της επόμενης επιλογής από τη συμβολοσειρά επιλογών στη λίστα στη μεταβλητή κελύφους που καθορίζεται από το var και είναι ευρετήριο της μεταβλητής κελύφους OPTIND Όταν το κέλυφος χρησιμοποιηθεί, το OPTIND αρχικοποιείται στο 1. Για κάθε επιλογή που απαιτεί ένα όρισμα, το getopts builtin θα το τοποθετήσει στη μεταβλητή κελύφους OPTARG Εάν δεν επιτρέπεται μια επιλογή στο optstring τότε το OPTARG θα απενεργοποιηθεί.

Το optstring είναι μια σειρά από αναγνωρισμένα γράμματα επιλογής. Αν ένα γράμμα ακολουθείται από ένα παχύ έντερο, η επιλογή αναμένεται να έχει ένα επιχείρημα το οποίο μπορεί ή δεν μπορεί να διαχωριστεί από αυτό από λευκό κενό. Εάν ένας χαρακτήρας επιλογής δεν βρεθεί όπου αναμένεται, το getopts θα θέσει τη μεταβλητή var σε ένα ``? '' Thenopt θα ακυρώσει το OPTARG και θα γράψει την έξοδο στο τυπικό σφάλμα. Με τον προσδιορισμό ενός παχέως εντέρου ως του πρώτου χαρακτήρα του optstring όλα τα σφάλματα θα αγνοηθούν.

Μια μη μηδενική τιμή επιστρέφεται όταν φτάνει η τελευταία επιλογή. Αν δεν υπάρχουν υπόλοιπα επιχειρήματα, το getopts θα θέσει var στην ειδική επιλογή `` - '' διαφορετικά, θα θέσει var σε ``? ''

Το παρακάτω κομμάτι κώδικα δείχνει πώς κάποιος μπορεί να επεξεργαστεί τα επιχειρήματα για μια εντολή που μπορεί να πάρει τις επιλογές [a] και [b] και την επιλογή [c] που απαιτεί ένα όρισμα.

ενώ getopts abc: f
κάνω
περίπτωση $ f in
α | β) σημαία = $ f ;;
γ) carg = $ OPTARG ;;
\?) echo $ USAGE; έξοδος 1;
esac
Έγινε
μετατόπιση `expr $ OPTIND - 1`

Αυτός ο κωδικός θα δεχθεί ως ισοδύναμο οποιοδήποτε από τα ακόλουθα:

cmd -acarg αρχείο αρχείου
cmd -a -c αρχείο αρχείου arg
cmd -carg -ένα αρχείο
cmd -a -carg - αρχείο αρχείου

εντολή hash -rv ...

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

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

jobid [ εργασία ]

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

θέσεις εργασίας

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

pwd

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

διαβάσετε τη [- p prompt ] [- r ] μεταβλητή ...

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

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

readonly όνομα ...

readonly -p

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

readonly name = value

Χωρίς επιχειρήματα, η εντολή readonly απαριθμεί τα ονόματα όλων των μεταβλητών μόνο για ανάγνωση. Με την επιλογή - p , η έξοδος θα διαμορφωθεί κατάλληλα για μη διαδραστική χρήση.

ορίστε [{- επιλογές | + επιλογές | - arg ... ]

Η εντολή set εκτελεί τρεις διαφορετικές λειτουργίες.

Χωρίς όρια, παραθέτει τις τιμές όλων των μεταβλητών κελύφους.

Αν δίνονται επιλογές, ορίζει τις επιλεγμένες σημαίες επιλογών ή τις καθαρίζει όπως περιγράφεται στην ενότητα που ονομάζεται επεξεργασία Sx Argument List.

Η τρίτη χρήση της εντολής set είναι να ορίσετε τις τιμές των παραμέτρων θέσης του κελύφους στα καθορισμένα args. Για να αλλάξετε τις παραμέτρους θέσης χωρίς να αλλάξετε τις επιλογές, χρησιμοποιήστε το `` - '' ως το πρώτο όρισμα που θέλετε να ορίσετε. Αν δεν υπάρχουν args, η εντολή set θα διαγράψει όλες τις παραμέτρους θέσης (ισοδύναμες με την εκτέλεση `` shift $ #. ''

μεταβλητή τιμή

Αναθέτει την τιμή στη μεταβλητή. (Γενικά, είναι καλύτερο να γράφετε μεταβλητή = αξία αντί να χρησιμοποιούμε setvar setvar προορίζεται να χρησιμοποιηθεί σε λειτουργίες που εκχωρούν τιμές σε μεταβλητές των οποίων τα ονόματα περνούν ως παράμετροι).

μετατόπιση [ n ]

Μετακινήστε τις παραμέτρους θέσης n φορές. Μια μετατόπιση ορίζει την τιμή του $ 1 στην τιμή του $ 2 την τιμή $ 2 στην τιμή των $ 3 και ούτω καθεξής, μειώνοντας την τιμή $ # κατά μία. Αν το n είναι μεγαλύτερο από τον αριθμό των παραμέτρων θέσης, η στροφή θα εκδώσει ένα μήνυμα σφάλματος και θα βγει με κατάσταση επιστροφής 2.

φορές

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

σήμα δράσης παγίδευσης ...

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

πληκτρολογήστε [ όνομα ... ]

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

ulimit [- H-S ] [- α-tfdscmlpn [ τιμή ]]

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

να θέσετε ή να ρωτήσετε σχετικά με τα σκληρά όρια

-ΜΙΚΡΟ

να θέσετε ή να ρωτήσετε για τα μαλακά όρια. Εάν δεν έχει καθοριστεί ούτε το - H ούτε - S, εμφανίζεται το μαλακό όριο ή έχουν οριστεί και τα δύο όρια. Αν και οι δύο καθορίζονται, το τελευταίο κερδίζει.

Το όριο που πρέπει να ερωτηθεί ή να οριστεί, τότε, επιλέγεται με τον προσδιορισμό οποιασδήποτε από αυτές τις σημαίες:

-ένα

δείχνουν όλα τα τρέχοντα όρια

-t

εμφάνιση ή ρύθμιση του ορίου στο χρόνο CPU (σε δευτερόλεπτα)

-φά

να εμφανίσετε ή να ορίσετε το όριο στο μεγαλύτερο αρχείο που μπορεί να δημιουργηθεί (σε μπλοκ των 512 byte)

-ρε

να εμφανίσετε ή να ορίσετε το όριο στο μέγεθος του τμήματος δεδομένων μιας διαδικασίας (σε kilobytes)

-μικρό

να εμφανίσετε ή να ορίσετε το όριο στο μέγεθος της στοίβας μιας διαδικασίας (σε kilobytes)

-ντο

να εμφανίσετε ή να ορίσετε το όριο στο μεγαλύτερο μέγεθος χωματερής που μπορεί να παραχθεί (σε μπλοκ των 512 bytes)

-m

να εμφανίσετε ή να ορίσετε το όριο της συνολικής φυσικής μνήμης που μπορεί να χρησιμοποιηθεί από μια διαδικασία (σε kilobytes)

-μεγάλο

να εμφανίσετε ή να ορίσετε το όριο για το πόση μνήμη μπορεί να κλειδώσει μια διαδικασία με το mlock (2) (σε kilobytes )

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

να εμφανίσετε ή να ορίσετε το όριο στα αρχεία αριθμού που μπορεί να έχει μια ανοιχτή διαδικασία ταυτόχρονα

Εάν δεν καθορίζεται κανένα από αυτά, είναι το όριο στο μέγεθος του αρχείου που εμφανίζεται ή έχει οριστεί. Εάν έχει καθοριστεί τιμή, το όριο έχει οριστεί σε αυτόν τον αριθμό. διαφορετικά εμφανίζεται το τρέχον όριο.

Τα όρια μιας αυθαίρετης διαδικασίας μπορούν να εμφανιστούν ή να ρυθμιστούν χρησιμοποιώντας το βοηθητικό πρόγραμμα sysctl (8).

umask [ μάσκα ]

Ρυθμίστε την τιμή του umask (βλ. Umask (2)) στην καθορισμένη οκταδική τιμή. Εάν παραλείπεται το όρισμα, εκτυπώνεται η τιμή umask.

unalias [ ] [ όνομα ]

Εάν έχει οριστεί όνομα , το κέλυφος καταργεί αυτό το ψευδώνυμο. Αν καθορίζεται - a , όλα τα ψευδώνυμα καταργούνται.

ανενεργό όνομα ...

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

περιμένετε [ εργασία ]

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

Επεξεργασία γραμμής εντολών

Όταν το sh χρησιμοποιείται διαδραστικά από ένα τερματικό, η τρέχουσα εντολή και το ιστορικό εντολών (βλ. Fc στο Sx Builtins) μπορούν να επεξεργαστούν χρησιμοποιώντας την επεξεργασία γραμμής εντολών vi-mode. Αυτή η λειτουργία χρησιμοποιεί εντολές, που περιγράφονται παρακάτω, παρόμοιες με ένα υποσύνολο αυτών που περιγράφονται στη σελίδα vi man. Η εντολή `set '-o vi ενεργοποιεί τη λειτουργία vi-mode και τοποθετεί το sh σε λειτουργία εισαγωγής vi. Με τη λειτουργία vi-mode ενεργοποιημένη, sh μπορεί να αλλάξει μεταξύ της λειτουργίας εισαγωγής και της λειτουργίας εντολών. Ο επεξεργαστής δεν περιγράφεται πλήρως εδώ, αλλά θα είναι σε ένα μεταγενέστερο έγγραφο. Είναι παρόμοιο με το vi: πληκτρολόγηση Aq Το ESC θα σας ρίξει στη λειτουργία εντολών VI. Το χτύπημα της επιστροφής Aq ενώ βρίσκεστε σε λειτουργία εντολών θα περάσει τη γραμμή στο κέλυφος.

Σημαντικό: Χρησιμοποιήστε την εντολή man ( % man ) για να δείτε πώς χρησιμοποιείται μια εντολή στον υπολογιστή σας.