Τρόπος χρήσης pushd και popd στο Linux

Ένα παράθυρο τερματικού σε μια επιφάνεια εργασίας Linux τύπου Ubuntu.

Fatmawati Achmad Zaenuri/Shutterstock



Πολλοί χρήστες του Linux δεν έχουν ακούσει ποτέ για |_+_| και |_+_|, αλλά υπάρχουν για πάντα. Μπορούν επίσης να επιταχύνουν δραματικά τη διαδικασία πλοήγησης καταλόγων στη γραμμή εντολών. Θα σας καθοδηγήσουμε στον τρόπο χρήσης τους.

Τι είναι τα push και popd;

Μία από τις καινοτομίες Μπιλ Τζόι ενσωματώθηκε στο 1978 του C Shell ήταν η έννοια μιας στοίβας καταλόγου και τα μέσα χειρισμού της: |_+_| και |_+_|. Η μίμηση είναι η πιο ειλικρινής μορφή κολακείας, η στοίβα καταλόγου, |_+_| και |_+_| σύντομα ενσωματώθηκαν σε άλλα κελύφη (όπως το Bash) ακόμα και σε άλλα λειτουργικά συστήματα.





Η ιδέα της στοίβας είναι απλή. Τα στοιχεία τοποθετούνται στη στοίβα ένα κάθε φορά, με το πιο πρόσφατα προστιθέμενο στοιχείο να καταλαμβάνει πάντα την πρώτη θέση. Όταν τα στοιχεία ανακτώνται από τη στοίβα, αφαιρούνται, με τη σειρά, από την κορυφή προς τα κάτω. Οι στοίβες αυτής της φύσης αναφέρονται συχνά ως Last In, First Out (LIFO) ουρές.

Στην πραγματικότητα, |_+_| και |_+_| είναι λίγο πιο ευέλικτοι από αυτό, αλλά αυτό είναι ένα καλό μοντέλο που πρέπει να θυμάστε προς το παρόν.



Καθώς αναφερόμαστε σε μια στοίβα καταλόγου, μάλλον δεν αποτελεί έκπληξη το γεγονός ότι το d στο |_+_| και |_+_| σημαίνει κατάλογος. Αυτές οι εντολές σας επιτρέπουν να ωθήσετε τους καταλόγους στη στοίβα καταλόγου ή να τους αφαιρέσετε από αυτήν.

Πώς μας ωφελεί όμως αυτό;

Πώς ωθήθηκε Συμπληρώνει τη Στοίβα

Όταν χρησιμοποιείτε |_+_|, συμβαίνουν τα ακόλουθα τρία πράγματα:



  • Αλλάζετε τον κατάλογο όπως θα χρησιμοποιούσατε το |_+_|.
  • Το όνομα και η διαδρομή του καταλόγου προστίθενται στη στοίβα.
  • Η στοίβα εμφανίζεται ως λίστα καταλόγων διαχωρισμένη με διάστημα.

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

Διαφήμιση

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

Για το παράδειγμά μας, πληκτρολογούμε τα εξής:

pushd popd pushd popd pushd

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

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

Η Διεύθυνση Διευθυντών

Μπορείτε να χρησιμοποιήσετε το |_+_| εντολή, όπως φαίνεται παρακάτω, για την εμφάνιση της στοίβας καταλόγου:

popd

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

Διαφήμιση

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

dirs -v

Εάν προτιμάτε να δείτε τη γραμμένη διαδρομή προς τον αρχικό σας κατάλογο αντί για την περισπωμένη (|_+_|), προσθέστε το |_+_| επιλογή (μεγάλη μορφή), όπως:

pushd

Προσθήκη καταλόγου στη στοίβα

Όπως είδαμε, όταν χρησιμοποιείτε το |_+_| εντολή, κάνει τρία πράγματα: αλλάζει τον κατάλογό σας, προσθέτει τον νέο κατάλογο στη στοίβα και εμφανίζει τη στοίβα για εσάς. Μπορείτε να χρησιμοποιήσετε το |_+_| (χωρίς περιστροφή) επιλογή για να προσθέσετε έναν κατάλογο στη στοίβα χωρίς να αλλάξετε τον τρέχοντα κατάλογο.

Εδώ είναι η στοίβα του καταλόγου μας:

popd

Τώρα, θα χρησιμοποιήσουμε το |_+_| εντολή με την επιλογή -n και pas στο |_+_| κατάλογο ως παράμετρος. Στη συνέχεια, θα ελέγξουμε ξανά τη στοίβα καταλόγου.

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

pushd popd

Το |_+_| κατάλογος προστέθηκε στη στοίβα στην υποδοχή 1, η οποία είναι η δεύτερη θέση στη στοίβα. Δεν μπορεί να καταλάβει την κορυφαία θέση επειδή η υποδοχή μηδέν είναι πάντα ο τρέχων κατάλογος.

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

Αλλαγή καταλόγου περιστρέφοντας τη στοίβα

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

Διαφήμιση

Αναφέρετε τους καταλόγους στη στοίβα με τον αριθμό της θέσης τους. Μπορείτε να μετρήσετε από το πάνω ή το κάτω μέρος της στοίβας. Για θετικούς αριθμούς, όπως +3, μετρήστε από την κορυφή. για αρνητικούς αριθμούς, όπως -2, μετρήστε από κάτω.

Ο κατάλογος /home/dave/Documents βρίσκεται στη θέση τρία. Μπορούμε να χρησιμοποιήσουμε την ακόλουθη εντολή για να μετακινήσουμε αυτόν τον κατάλογο:

pushd

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

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

cd

Ο τελευταίος κατάλογος μετακινείται στην πρώτη υποδοχή και όλοι οι άλλοι μετακινούνται προς τα κάτω στη στοίβα. Έχουμε αλλάξει σε |_+_| Ευρετήριο.

Η εντολή popd

Μπορείτε να χρησιμοποιήσετε το |_+_| εντολή για την αφαίρεση καταλόγων από τη στοίβα.

Διαφήμιση

Αν κοιτάξουμε τη στοίβα καταλόγου, μπορούμε να δούμε ότι ο κατάλογος στη θέση 1 είναι |_+_|. Για να το αφαιρέσουμε από τη στοίβα, πληκτρολογούμε τα εξής για να περάσουμε τον αριθμό στο |_+_|:

pushd pushd

Το |_+_| Ο κατάλογος αφαιρέθηκε και αυτά που βρίσκονταν κάτω από αυτόν στη στοίβα έχουν μετακινηθεί κατά μία θέση επάνω.

Όπως μπορούμε με |_+_|, μπορούμε να μετρήσουμε από το κάτω μέρος της στοίβας με |_+_|. Για να αφαιρέσουμε τον τελευταίο κατάλογο από τη στοίβα, πληκτρολογούμε:

pushd

Το |_+_| Ο κατάλογος αφαιρείται από την τελευταία θέση στη στοίβα.

Για να αλλάξετε τον κατάλογο, να κάνετε κάτι και μετά να επιστρέψετε στον προηγούμενο κατάλογο, μπορείτε να χρησιμοποιήσετε |_+_| και |_+_| μαζί.

Διαφήμιση

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

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

~ pushd

Ξεκινήσαμε στο |_+_| κατάλογος, |_+_| στον αρχικό κατάλογο και μετά |_+_| πίσω στο |_+_| Ευρετήριο.

Περιστροφή μέσω ολόκληρης της στοίβας

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

Το βαθύτερο επίπεδο φωλιάς μας είναι:

dirs

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

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

pushd -v ~ -l

Όταν εκδίδεις επανειλημμένα |_+_| εντολές, μπορείτε να κάνετε κύκλους γύρω-γύρω στη στοίβα των καταλόγων. Εάν το κάνετε συχνά, |_+_| θα ήταν καλός υποψήφιος για ένα ψευδώνυμο .

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

pushd

ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Πώς να δημιουργήσετε ψευδώνυμα και συναρτήσεις κελύφους στο Linux

Σφράγιση πάνω από τη στοίβα

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

Για να το κάνετε αυτό, πληκτρολογήστε τα εξής:

-n pushd /home/dave


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

Αυτός είναι ο λόγος που τριγυρνάμε τη γραμμή εντολών . Η αποδοτικότητα, σωστά;

ΣΧΕΤΙΖΕΤΑΙ ΜΕ: 37 Σημαντικές εντολές Linux που πρέπει να γνωρίζετε

Εντολές Linux
Αρχεία πίσσα · pv · Γάτα · tac · chmod · λαβή · διαφ · sed · Με · άνδρας · έσπρωξε · popd · fsck · δοκιμαστικό δίσκο · επ · fd · παντοκ · CD · $PATH · οκ · Συμμετοχή · jq · πτυχή · uniq · journalctl · ουρά · κατάσταση · ls · fstab · πέταξε έξω · πιο λιγο · chgrp · τσόουν · στροφή μηχανής · Κοίτα · χορδές · τύπος · μετονομάζω · φερμουάρ · ανοίγω φερμουάρ · βουνό · ποσό · εγκαθιστώ · fdisk · mkfs · rm · rmdir · rsync · df · gpg · εμείς · νανο · mkdir · από · ln · κηλίδα · μετατρέπω · rclone · κομματάκι · SRM
Διαδικασίες ψευδώνυμο · οθόνη · μπλουζα · όμορφη · renice · πρόοδος · στρας · Σύστημα · tmux · chsh · ιστορία · στο · σύνολο παραγωγής · Ελεύθερος · οι οποίες · dmesg · usermod · ΥΣΤΕΡΟΓΡΑΦΟ · chroot · xargs · tty · ροζ · lsof · vmstat · τέλος χρόνου · τείχος · Ναί · σκοτώνω · ύπνος · sudo · του · χρόνος · ομαδική προσθήκη · usermod · ομάδες · lshw · ΤΕΡΜΑΤΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ · επανεκκίνηση · να σταματήσει · απενεργοποίηση · passwd · lscpu · crontab · ημερομηνία · bg · fg
Δικτύωση netstat · ping · traceroute · ip · σσ · ποιος είναι · fail2ban · bmon · εσύ · δάχτυλο · nmap · ftp · μπούκλα · wget · που · ποιός είμαι · Σε · iptables · ssh-keygen · ufw

ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Καλύτεροι φορητοί υπολογιστές Linux για προγραμματιστές και λάτρεις

ΔΙΑΒΑΣΤΕ ΤΗ ΣΥΝΕΧΕΙΑ Φωτογραφία προφίλ για τον Dave McKay Dave McKay
Ο Dave McKay χρησιμοποίησε για πρώτη φορά υπολογιστές όταν η διάτρητη χαρτοταινία ήταν στη μόδα και από τότε ασχολείται με τον προγραμματισμό. Μετά από περισσότερα από 30 χρόνια στη βιομηχανία της πληροφορικής, είναι πλέον δημοσιογράφος τεχνολογίας πλήρους απασχόλησης. Κατά τη διάρκεια της καριέρας του, έχει εργαστεί ως ελεύθερος επαγγελματίας προγραμματιστής, διευθυντής διεθνούς ομάδας ανάπτυξης λογισμικού, διευθυντής έργου υπηρεσιών πληροφορικής και, πιο πρόσφατα, ως Υπεύθυνος Προστασίας Δεδομένων. Η γραφή του έχει δημοσιευτεί από τα howtogeek.com, cloudsavvyit.com, itenterpriser.com και opensource.com. Ο Dave είναι ευαγγελιστής Linux και υπέρμαχος ανοιχτού κώδικα.
Διαβάστε το πλήρες βιογραφικό

Ενδιαφέροντα Άρθρα