Τετάρτη 24 Σεπτεμβρίου 2008

Screen - a simple tutorial

Σήμερα άνοιξα το terminal. Για ακόμα μια φορά. Το linux μου αρέσει ιδιαίτερα γιατί κάθε μέρα μπορώ να κάνω και να μάθω κάτι καινούργιο.

Πάτησα τα κλασικά 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).

1 σχόλιο:

Christos Vasilakis είπε...

Ευχαριστούμε για τον οδηγό, ήθελα από καιρό να κοιτάξω το screen και ήταν καλή ευκαιρία!

Keep up!