Πώς να χρησιμοποιήσετε το tmux σε Linux (και γιατί είναι καλύτερο από την οθόνη)

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

Πίνακας περιεχομένων

tmux εναντίον οθόνης

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

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

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

Τι είναι η εντολή οθόνης;

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

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

Μόνο ένα πράγμα μας ενόχλησε σχετικά με την οθόνη. Θα το καλύψουμε όταν φτάσουμε σε αυτό και θα δούμε αν το tmux πάει καλύτερα.

Εγκατάσταση tmux

Ενώ η οθόνη είναι γενικά εγκατεστημένη από προεπιλογή σε δημοφιλείς διανομές Linux, το tmux δεν είναι. Για να εγκαταστήσετε το tmux στο Ubuntu, πληκτρολογήστε τα εξής:

sudo apt-get install tmux

Στο Manjaro μπορείτε να χρησιμοποιήσετε το pacman:

sudo pacman -Sy tmux

Στο Fedora 31, το tmux είναι ήδη εγκατεστημένο.

Έναρξη μιας συνεδρίας tmux

Για να ξεκινήσετε το tmux, απλώς πληκτρολογήστε το και πατήστε Enter:

tmux

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

  Πώς να αποθηκεύσετε CD μουσικής στον υπολογιστή σας Linux με το Sound Juicer

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

[0]: Αυτό είναι το όνομα της συνεδρίας. Από προεπιλογή, είναι αριθμημένα, ξεκινώντας από το μηδέν. Καλύπτουμε πώς μπορείτε να δώσετε ουσιαστικά ονόματα στις συνεδρίες παρακάτω.
0:bash*: Το 0 υποδηλώνει ότι αυτό είναι το πρώτο παράθυρο σε αυτήν την περίοδο λειτουργίας. Η μόνη διεργασία που εκτελείται σε αυτήν την περίοδο λειτουργίας είναι το bash. Εάν εκτελείτε ένα πρόγραμμα, το όνομά του θα εμφανίζεται εδώ. Ο αστερίσκος

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

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

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

Οι εντολές δίνονται στο tmux χρησιμοποιώντας πατήματα πλήκτρων και υπάρχουν δύο μέρη σε αυτό. Πρώτα, πατάτε Ctrl+B για να τραβήξετε την προσοχή του tmux. Στη συνέχεια, πατάτε γρήγορα το επόμενο πλήκτρο για να στείλετε μια εντολή totmux. Οι εντολές δίνονται πατώντας γράμματα, αριθμούς, σημεία στίξης ή πλήκτρα βέλους.

Είναι το ίδιο στην οθόνη, εκτός από το να πατήσετε Ctrl+A για να τραβήξετε την προσοχή της.

Για να κλείσετε το παράθυρο, πατήστε Ctrl+B και μετά πατήστε γρήγορα X. Η γραμμή κατάστασης γίνεται πορτοκαλί. Στη συνέχεια, θα σας ζητηθεί να επιβεβαιώσετε ότι θέλετε να σκοτώσετε το παράθυρο.

Πατήστε Y για να κλείσετε το παράθυρο ή N εάν αλλάξετε γνώμη. Δεν χρειάζεται να πατήσετε Enter μετά. Το Y ή το N είναι αρκετό για να δηλώσετε την επιλογή σας.

Εάν πατήσετε το Y, το παράθυρο κλείνει. Επειδή αυτό είναι το μόνο παράθυρο σε αυτήν την περίοδο λειτουργίας, η συνεδρία τερματίζεται.[exited]Η περίοδος λειτουργίας tmux έχει κλείσει και επιστρέφετε στη γραμμή εντολών από την οποία ξεκινήσατε το tmux. Θα δείτε “

” στο παράθυρο τερματικού.

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

Έναρξη μιας επώνυμης συνεδρίας tmux

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

tmux new -s geek-1

Για να ξεκινήσετε το tmux με όνομα συνεδρίας, χρησιμοποιήστε την εντολή new (new session) και την επιλογή -s (session name). Η συνεδρία μας θα ονομάζεται “geek-1”, οπότε πληκτρολογούμε τα εξής:

Όταν φορτώνεται η περίοδος σύνδεσης tmux, το

Μια συνεδρία tmux με το όνομα

Προσθήκη περισσότερων Windows Για να δημιουργήσετε ένα νέο παράθυρο στην τρέχουσα περίοδο λειτουργίας, πατήστε Ctrl+B και μετά C. Θα εμφανιστεί ένα κενό παράθυρο τερματικού στην τρέχουσα περίοδο λειτουργίας. Έτσι, θα έχουμε κάτι να τρέχει σε αυτό το νέο παράθυρο, ας ξεκινήσουμε το εντολή dmesg

dmesg -w

με την επιλογή -w (ακολουθώ):

  Πώς να χρησιμοποιήσετε την τελευταία εντολή στο Linux

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

Ρίξτε μια ματιά στην αριστερή πλευρά της γραμμής κατάστασης. Είμαστε ακόμα στη συνεδρία tmux “geek-1”. Στο παράθυρο μηδέν, το επάνω μέρος εκτελείται και στο παράθυρο ένα, το dmesg. Ο αστερίσκος

αφού το dmesg μας λέει ποιο παράθυρο είναι ορατό.
Για μετάβαση μεταξύ των παραθύρων, πατήστε Ctrl+B και, στη συνέχεια, ένα από τα παρακάτω πλήκτρα:
N: Εμφανίστε το επόμενο παράθυρο.

P: Εμφάνιση του προηγούμενου παραθύρου.

0 έως 9: Εμφανίστε ένα παράθυρο με αριθμό 0 έως 9.

Μπορείτε επίσης να επιλέξετε ένα παράθυρο από μια λίστα. Εάν πατήσετε Ctrl+B και μετά W, εμφανίζεται μια λίστα παραθύρων.

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

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

Συνεδρίες αποσύνδεσης και προσάρτησης

Εάν πατήσετε Ctrl+B και μετά D, θα αποσυνδέσετε τη συνεδρία. Θα συνεχίσει να εκτελείται στο παρασκήνιο, αλλά δεν θα μπορείτε να το δείτε ή να αλληλεπιδράσετε μαζί του.

Ξεκινήσαμε στην κορυφή της συνεδρίας, επομένως έχουμε μια τρέχουσα διαδικασία για να δείξουμε. Στη συνέχεια, πατάμε Ctrl+B και μετά D. Η συνεδρία εξαφανίζεται και γίνεται συνεδρία παρασκηνίου.

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

tmux attach-session -t geek-1

Για να επισυνάψουμε μια αποκομμένη συνεδρία, θα χρησιμοποιήσουμε την αυτονόητη εντολή attach-session με την επιλογή -t (target session). Θα δώσουμε επίσης το όνομα της περιόδου σύνδεσης που θέλουμε να ανακαλέσουμε.

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

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

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

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

tmux new -s geek-2

Χειρισμός πολλαπλών συνεδριών

dmesg -w

Ας ανοίξουμε ένα άλλο παράθυρο τερματικού και ας ξεκινήσουμε μια νέα συνεδρία tmux που ονομάζεται “geek-2”:

Σε αυτήν την περίοδο λειτουργίας, θα ξεκινήσουμε το dmesg:

Τώρα, έχουμε την αρχική μας συνεδρία tmux “geek-1” και μια νέα που ονομάζεται “geek-2”.

Η γραμμή κατάστασης μας δείχνει ότι αυτή η συνεδρία ονομάζεται “geek-2” και έχει ένα παράθυρο που εκτελεί το dmesg.

Αν πατήσουμε Ctrl+B και μετά D, αποσυνδέουμε αυτή τη συνεδρία.

Πίσω στη συνεδρία tmux “geek-1”, πατάμε Ctrl+B και μετά S για να δούμε μια λίστα με τις συνεδρίες tmux.

Για να είμαστε σαφείς, αυτή είναι μια λίστα συνεδριών. Η παρόμοια οθόνη που είδαμε νωρίτερα ήταν μια λίστα παραθύρων σε μία μόνο περίοδο λειτουργίας.

  Πώς να ελέγξετε για rootkits στο Linux με το Tiger

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

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

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

Αποσυνδέσαμε τη συνεδρία “geek-2” πριν το κάνουμε αυτό. Ωστόσο, μπορείτε να το κάνετε αυτό με συνεδρίες που εξακολουθούν να είναι συνδεδεμένες στα αρχικά παράθυρα τερματικού τους. Όταν το κάνετε, τυχόν αλλαγές στην οθόνη θα εμφανίζονται ταυτόχρονα και στις δύο περιόδους σύνδεσης tmux.

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

Εργασία με Παράθυρα

Εάν πατήσετε Ctrl+B και μετά διπλά εισαγωγικά (“”), χωρίζετε το παράθυρο οριζόντια σε δύο παράθυρα.

Αυτό επηρεάζει μόνο το τρέχον παράθυρο. τα άλλα στη συνεδρία δεν θα αλλάξουν. Χρησιμοποιήσαμε την εντολή tmux ls στο επάνω τμήμα του παραθύρου για να παραθέσουμε τα παράθυρα σε αυτήν την περίοδο λειτουργίας. Υπάρχουν δύο, και η γραμμή κατάστασης μας λέει ότι βρισκόμαστε στο παράθυρο ένα. Αν μεταβούμε στο παράθυρο μηδέν πατώντας Ctrl+B και μετά 0 (μηδέν), βλέπουμε ότι είναι ακριβώς όπως το αφήσαμε.

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

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

ονόματι -α

ls -hl

Για να μετακινηθείτε από το ένα παράθυρο στο άλλο, πατήστε Ctrl+B και, στη συνέχεια, είτε το επάνω, το κάτω, το αριστερό ή το δεξί βέλος.

Εάν πατήσετε Ctrl+B και στη συνέχεια το σύμβολο ποσοστού (%) χωρίζει το τρέχον παράθυρο κατακόρυφα.

Πατήστε Ctrl+B και μετά Q για να κάνετε το tmux να αναβοσβήνει για λίγο τον αριθμό κάθε παραθύρου.

Αυτοί οι αριθμοί χρησιμοποιούνται σε προτροπές και μηνύματα από το tmux. Πατήστε Ctrl+B και μετά X για να κλείσετε το τρέχον παράθυρο. Η γραμμή κατάστασης αλλάζει σε πορτοκαλί και θα σας ζητηθεί να επιβεβαιώσετε ότι θέλετε να κλείσετε αυτόν τον αριθμό παραθύρου. Πατήστε Y για να αφαιρέσετε το παράθυρο ή N για να αφήσετε τα πράγματα ως έχουν.

Εάν πατήσετε το Y, το παράθυρο αφαιρείται.

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

Ένα φύλλο εξαπάτησης Ctrl+B

Έχουμε συμπεριλάβει ένα φύλλο εξαπάτησης των διαφορετικών εντολών που μπορείτε να χρησιμοποιήσετε στο tmux παρακάτω.
Εντολές συνεδρίας
S: Λίστα συνεδριών.
$: Μετονομάστε την τρέχουσα συνεδρία.

D: Αποσύνδεση της τρέχουσας συνεδρίας.

Ctrl+B και μετά ?: Εμφάνιση της σελίδας Βοήθειας στο tmux.
Εντολές παραθύρου
Γ: Δημιουργία νέου παραθύρου.
,: Μετονομάστε το τρέχον παράθυρο.
W: Καταχωρίστε τα παράθυρα.
Ν: Μεταβείτε στο επόμενο παράθυρο.

P: Μετακίνηση στο προηγούμενο παράθυρο.

0 έως 9: Μετακίνηση στον καθορισμένο αριθμό παραθύρου.
Εντολές παραθύρου
%: Δημιουργήστε μια οριζόντια διαίρεση.
“: Δημιουργήστε μια κατακόρυφη διαίρεση.
H ή Αριστερό βέλος: Μετακίνηση στο παράθυρο στα αριστερά.
I ή Δεξί βέλος: Μετακινηθείτε στο παράθυρο στα δεξιά.
J ή Κάτω Βέλος: Μετακινηθείτε στο παρακάτω παράθυρο.
K ή Πάνω βέλος: Μεταβείτε στο παραπάνω παράθυρο.
Ε: Εμφάνιση συνοπτικά αριθμών παραθύρου.
O: Μετακινηθείτε μέσα από τα παράθυρα με τη σειρά. Κάθε πάτημα σας μεταφέρει στο επόμενο, μέχρι να τα δείτε όλα.
}: Αλλάξτε τη θέση του τρέχοντος παραθύρου με το επόμενο.

{: Αλλάξτε τη θέση του τρέχοντος παραθύρου με το προηγούμενο.

X: Κλείστε το τρέχον παράθυρο.

Πώς συγκρίνονται

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

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

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

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