Πάτησα τα κλασικά sl -la και ll και κοίταξα την οθόνη.
Ήθελα κάτι να κάνω, αλλά δεν ήξερα ακριβώς τι.
Τότε μου ήρθε το μυαλό το screen! Το είχα διαβάσει κάπου, μου είχε φανεί πολύ χρήσιμο αλλά δεν το είχα τρέξει ποτέ.
To Gnu Screen είναι ένα πρόγραμμα που αναπτύχθηκε στα πλαίσια του GNU Project και που δημιουργεί ένα session στο οποίο υπάρχουν διάφορα παράθυρα. Σε κάθε παράθυρο υπάρχει ένα shell prompt, από το οποίο μπορούν να εκτελεστούν εντολες και να τρέξουν προγράμματα.
Με το screen, ένας χρήστης μπορεί να κάνει detach από το session του, να αποσυνδεθεί, να πάει για ένα καφεδάκι και επιστρέφοντας και κάνοντας reattach στο συγκεκριμένο session, να το βρει στην ίδια κατάσταση που το άφησε!
Το εγκατέστησα γρήγορα γρήγορα, έτρεξα βιαστικά screen και τώρα τι;
Βαριόμουν να διαβάσω το man και έψαξα για έναν quick and dirty οδηγό, αντιθέτως όμως, βρήκα αυτό: http://www.sudobash.gr/index.php/2008/08/%CF%80%CE%BF%CE%BB%CE%BB%CE%B1%CF%80%CE%BB%CE%AD%CF%82-%CE%B5%CE%B9%CE%BA%CE%BF%CE%BD%CE%B9%CE%BA%CE%AD%CF%82-%CE%BA%CE%BF%CE%BD%CF%83%CF%8C%CE%BB%CE%B5%CF%82/ .
Παραθέτω τα περιεχόμενα:
Ξεκινώντας το screen
Για να ξεκινήσουμε το screen, γράφουμε στη γραμμή εντολών
screen
Αυτόματα, μεταφερόμαστε σε ένα shell prompt. Είμαστε μέσα στο screen! Μπορούμε να δούμε το τρέχον session γράφοντας
screen -list
Συνδυασμοί πλήκτρων
Υπάρχουν ορισμένοι συνδυασμοί πλήκτρων με τους οποίους μπορούμε να χειριστούμε το session του screen. Οι συνδυασμοί αυτοί είναι της μορφής “Ctrl-A, γράμμα” συνήθως. Αυτό εκτελείται πατώντας το πλήκτρο ctrl και το πλήκτρο ‘a’ ταυτόχρονα και αφήνοντας τα, πατάμε το γράμμα που θέλουμε ανάλογα την λειτουργία που θέλουμε να εκτελέσουμε.
Detaching
Για να κάνουμε detach από το session του screen, πατάμε ctrl-a και μετά τα αφήνουμε και πατάμε το πλήκτρο d. Όταν αφήσουμε και το d, τυπώνεται στην οθόνη το μήνυμα ότι έγινε detach το session, το οποίο σημαίνει ότι δεν είμαστε πλέον στο screen, αλλά το session του (και όλα τα προγράμματα που αφήσαμε να τρέχουν σε αυτό) εξακολουθεί να “τρέχει” στο παρασκήνιο.
Σημείωση: για μούρη, μπορείτε, πριν προχωρήσετε στο επόμενο βήμα, να αποσυνδεθείτε και να κλείσετε εντελώς το shell και μετά να επανασυνδεθείτε σε αυτό για να συνεχίσετε!
Τρέχοντα sessions
Λογικά τώρα θα πρέπει να βρισκόμαστε στο shell prompt, εκτός screen. Προηγουμένως, εκτελέσαμε το screen, γράφοντας απλά την εντολή “screen”. Εκτελώντας το screen χωρίς ορίσματα, δημιουργεί ένα νέο session του screen. Με αυτόν τον τρόπο, μπορούμε να έχουμε όσα διαφορετικά sessions θέλουμε. Για να δούμε τα διαφορετικά sessions που τρέχουν ανά πάσα στιγμή στον υπολογιστή μας εκτελούμε την εντολή
screen -ls
Έτσι, μας τυπώνει τη λίστα με τα sessions (αν υπάρχουν) που τρέχουν αυτή τη στιγμή.
Reattaching
Για να επανέλθουμε σε κάποιο από τα sessions, από το οποίο κάναμε detach, εκτελούμε το screen με όρισμα r το όνομα του session. Πχ:
screen -r 31596.pts-0.hostname
Έτσι, έχουμε μεταφερθεί πάλι μέσα στο session του screen και μπορούμε να δούμε τα προγράμματα που είχαμε αφήσει να τρέχουν.
Δημιουργία νέου παραθύρου σε ένα session
Ενώ έχουμε συνδεθεί σε κάποιο session του screen, για να δημιουργήσουμε ένα νέο παράθυρο στο session αυτό, ώστε να τρέξουμε και κάτι άλλο παράλληλα, πατάμε το ctrl-a και μετά c.
Εναλλαγή μεταξύ των παραθύρων ενός session
Αν έχουμε δημιουργήσει περισσότερα του ενός παράθυρα μέσα σε ένα session, μπορούμε να πλοηγηθούμε σε αυτά πατώντας ctrl-a και μετά τον αριθμό του παραθύρου. Για παράδειγμα ctrl-a και μετά 2 για να πάμε στο παράθυρο νούμερο 2 (το παράθυρο 2 είναι το κατά σειρά τρίτο παράθυρο, αφού η αρίθμηση αρχίζει από το 0).