*για να είμαστε απόλυτα ακριβείς, η openSSH υλοποίηση του ssh client έχει escape sequences, δεν έψαξα για άλλες!
Ίσως αυτό που ανακάλυψα να είναι ευρέως γνωστό, αλλά αμφιβάλλω κάπως, μιας και 15 χρόνια στο χώρο ούτε μου το έχει αναφέρει ποτέ κανείς, ούτε το είχα πετύχει πουθενά στο internet κατά λάθος.
Αν δεν σας αρέσουν οι φλυαρίες, προσπεράστε την εισαγωγή, είναι άσχετη με το θέμα μας!
Εισαγωγή
Στην καθημερινότητα μου χρειάζεται να έχω ανοιχτές αρκετές ssh συνδέσεις σε ένα ή περισσότερα μηχανήματα. Για να μην μπλέκω λοιπόν με ξεχωριστά παράθυρα στην taskbar, αλλά και για να μην ταλαιπωρούμαι να τα τακτοποιώ δεξιά κι αριστερά στην οθόνη, η λύση που προτιμώ είναι ένας terminal multiplexer.
Τον τελευταίο καιρό λοιπόν έχω συμπαθήσει αρκετά και χρησιμοποιώ αποκλειστικά τον byobu. Όταν ξεκινώ τη μέρα μου, ανοίγω ένα τερματικό μεγιστοποιημένο στον οθόνη, τρέχω τον byobu, και από εκεί κάνω ότι συνδέσεις είναι να κάνω, καταλήγοντας με κάτι τέτοιο.
Τι γίνεται όμως αν κάποια από τις συνδέσεις κολλήσει, όπως συμβαίνει αρκετά συχνά όταν βάζω το pc για ύπνο χωρίς να αποσυνδεθώ πρώτα; Μένουμε με ένα νεκρό χώρο στο παράθυρο, που αν το κλείσουμε, ανάλογα με το σημείο που βρίσκεται, μπορεί να χαλάσει την ωραία μας διάταξη.
Τότε λοιπόν, ή θα πρέπει να υποστούμε την αλλαγή, ή, Θεός φυλάξοι, να κάτσουμε να διαβάσουμε το manual και να βρούμε πως αναδιατάσσονται τα παράθυρα στον multiplexer μας!
Δεν θα ήταν ωραία να μπορούσαμε να κλείσουμε ένα κολλημένο ssh όπως ένα κολλημένο telnet, με ένα απλό
ctrl + ], q, <enter>
Ρε λες;;;
SSH command mode
Προκύπτει λοιπόν, ότι πράγματι, το (open)ssh έχει escape sequences!
Μετά από newline, αν δώσεις tilde (~), μπαίνει σε command mode. Έπειτα, δίνεις το command που θέλεις. Αν δώσεις ?, θα τυπώσει τα διαθέσιμα commands. Για παράδειγμα
Αν θες λοιπόν να κλείσεις ένα κολλημένο connection, χωρίς να κλείσεις και το τερματικό σου, αρκεί ένα
<enter>~.
Μια παρατήρηση μόνο. Αν έχεις nested ssh sessions, χρειάζεται ένα tilde επιπλέον για κάθε nesting level που θες να προσπεράσεις.
Πολύ απλό, ναι; Αυτά για σήμερα!