Μερικές φορές μπορεί να αντιμετωπίσετε το πρόβλημα των εντολών Linux να μην ανταποκρίνονται όταν εκτελούνται, κάτι που μπορεί να είναι απογοητευτικό για τους χρήστες, είτε είναι αρχάριοι είτε έμπειροι. Αυτό το πρόβλημα μπορεί να προκληθεί από διάφορους λόγους, από απλά σφάλματα κατά την πληκτρολόγηση εντολών έως βαθύτερα ζητήματα συστήματος ή περιβάλλοντος. Κατανοώντας τους παράγοντες που επηρεάζουν την εκτέλεση εντολών, οι χρήστες μπορούν να βελτιώσουν την εμπειρία τους στο Linux και να επιτύχουν καλύτερη απόδοση του συστήματος. Σε αυτό το άρθρο, θα διερευνήσουμε τους πιθανούς λόγους πίσω από τις εντολές που δεν ανταποκρίνονται και πώς να τις αντιμετωπίσουμε αποτελεσματικά.
τα κύρια σημεία
- Λόγω έλλειψης εξόδου τερματικού Για μερικές επιτυχημένες εντολές Linux Για να επιλέξετε ένα ιστορικό σχέδιο.
- Το αθόρυβο λογισμικό επιτρέπει στους αγωγούς να ενσωματώνονται εύκολα κέλυφος Και να συνεχίσει να επηρεάζει την ανάπτυξη Linux, Χρονολογείται από τη φιλοσοφία του Unix.
- Βεβαιωθείτε ότι η εντολή πέτυχε εξετάζοντας την κατάσταση εξόδου, όπου το 0 υποδηλώνει επιτυχία και άλλοι αριθμοί υποδηλώνουν σφάλματα.
Όταν ξεκινάτε για πρώτη φορά να χρησιμοποιείτε το Linux, συχνά θα βρείτε τον εαυτό σας να χρησιμοποιεί τη γραμμή εντολών. Πληκτρολογείτε μια εντολή, περιμένετε την έξοδο και μετά τίποτα. Απλώς μια ένδειξη που αναβοσβήνει περιμένει την εισαγωγή σας. Τι συμβαίνει; Να γιατί πολλές εντολές Linux δεν λένε τίποτα όταν εκτελούνται με επιτυχία.
Γιατί δεν υπάρχει έξοδος τερματικού;
Για παράδειγμα, μπορείτε να εκτελέσετε την εντολή ls σε έναν κατάλογο χωρίς αρχεία. Απλώς θα επαναφέρετε τη γραμμή εντολών σας χωρίς να εκτυπώσετε τίποτα στο Terminal.
Ο κύριος λόγος για τον οποίο πολλές εντολές τερματικού δεν εκτυπώνουν τίποτα όταν πετύχουν είναι ότι πρόκειται για μια ιστορική κληρονομιά από τις ημέρες του Unix.
Πολλά συστήματα Unix λειτουργούσαν σε απομακρυσμένους εγγραφείς, οι οποίοι έτρεχαν πολύ αργά. Όταν μια διαδικασία ήταν επιτυχής, η εκτύπωση σπαταλούσε χρόνο και χαρτί.
Ακολουθεί ένα βίντεο όπου μπορείτε να δείτε — και να ακούσετε — μία από αυτές τις συσκευές σε δράση.
Οι προγραμματιστές προτιμούν το αθόρυβο λογισμικό για την κατασκευή λειτουργικών συστημάτων σε Linux
Η ύπαρξη προγραμμάτων χωρίς έξοδο από προεπιλογή καθιστά επίσης δυνατή τη δημιουργία προγραμμάτων σε αγωγούς. Αυτό ήταν ένα βασικό στοιχείο της «φιλοσοφίας του Unix» που εξακολουθεί να επηρεάζει μεγάλο μέρος της ανάπτυξης του Linux σήμερα.
Ο παραδοσιακός τρόπος σχεδίασης προγραμμάτων γραμμής εντολών σε συστήματα που μοιάζουν με Unix είναι να συνδέσετε την έξοδο με την είσοδο ενός άλλου προγράμματος, μερικές φορές πολλών προγραμμάτων, γνωστών ως pipeline, από τον χειριστή | Σύμφωνα με αυτή τη γραμμή σκέψης, εάν η εντολή ls βγάζει κάτι σαν "0 αρχεία βρέθηκαν", άλλα προγράμματα θα πρέπει να εργαστούν σε αυτήν. Η απουσία αρχείων είναι άχρηστη πληροφορία για τις εντολές κάτω από τη γραμμή.
Για παράδειγμα, μπορείτε να κατευθύνετε την εντολή ls στο wc:
ls| αποχωρητήριο
Χωρίς αρχεία ls, το wc θα επιστρέψει 0 χαρακτήρες.
Όπως έγραψε ο Eric S.: Ο Ρέιμοντ στο βιβλίο του "Η τέχνη του προγραμματισμού Unix", "Τα προγράμματα που φλυαρούν τείνουν να μην λειτουργούν καλά με άλλα προγράμματα."
Πώς να ελέγξετε την κατάσταση εξόδου για να δείτε εάν η λειτουργία ήταν επιτυχής
Τα προγράμματα Linux συνήθως εκτυπώνουν ένα μήνυμα στο τυπικό σφάλμα εάν κάτι πάει στραβά. Κανονικά, το τυπικό σφάλμα πηγαίνει στο τερματικό, αν και μπορεί να ανακατευθυνθεί σε άλλο αρχείο.
Το πρόγραμμα γραμμής εντολών ορίζει μια μεταβλητή που ονομάζεται κατάσταση εξόδου όταν τελειώσει η εκτέλεση. Η κατάσταση εξόδου 0 υποδηλώνει επιτυχία, ενώ οποιοσδήποτε άλλος αριθμός υποδεικνύει σφάλμα. Μπορείτε να ελέγξετε την κατάσταση εξόδου της τελευταίας εντολής που εκτελέστηκε χρησιμοποιώντας τη μεταβλητή $?:
ηχώ $;
Πολλά κελύφη μπορούν να ρυθμιστούν ώστε να εμφανίζουν ένα σφάλμα όταν σας ζητηθεί εάν η τελευταία εντολή τελειώνει σε κατάσταση εξόδου μη μηδενικού. Ακολουθεί ένα παράδειγμα με την επέκταση Oh My Zsh για zsh, όπου η προτροπή γίνεται κόκκινη για να υποδείξει ένα σφάλμα:
Οι εντολές που μπορεί να διαρκέσουν πολύ, όπως η ενημέρωση πακέτων, συνήθως παράγουν περισσότερα αποτελέσματα.
Τα προγράμματα Linux έχουν κληρονομήσει την προσέγγιση του Unix για την απλότητα, και αυτό περιλαμβάνει τα αποτελέσματά του. Τώρα ξέρετε γιατί μερικές φορές μπορεί να λαμβάνετε ένα κενό μήνυμα μόνο όταν εκτελείτε ορισμένες εντολές Linux στο τερματικό. Στο Linux, μερικές φορές το καλύτερο αποτέλεσμα μπορεί να είναι καθόλου αποτέλεσμα.
Η κατανόηση των αιτιών των εντολών Linux που δεν ανταποκρίνονται μπορεί να είναι ένα ζωτικό βήμα για τη βελτίωση της εμπειρίας σας με το σύστημα. Αντιμετωπίζοντας αποτελεσματικά αυτά τα ζητήματα, μπορείτε να μειώσετε το χρόνο διακοπής λειτουργίας και να αυξήσετε την παραγωγικότητά σας. Να θυμάστε ότι η ενημέρωση σχετικά με τις ενημερώσεις συστήματος και τις βέλτιστες πρακτικές στη χρήση του Linux μπορεί να σας βοηθήσει να αποφύγετε πολλά από αυτά τα μελλοντικά προβλήματα. Εάν αντιμετωπίζετε επίμονα προβλήματα, μη διστάσετε να αναζητήσετε βοήθεια από την κοινότητα του Linux ή από φόρουμ για πρόσθετη υποστήριξη.






