Magaz, The Greek Linux Magazine
Magaz Logo

Προηγούμενο  Περιεχόμενα

4. Screen

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

Τρέχουμε τη screen και φαίνεται να μας ανοίγει ένα νέο shell. Πατώντας 'Ctrl-A w' (Control και A μαζί και στη συνέχεια τα αφήνουμε και πατάμε w) φαίνονται οι οθόνες που έχουμε. Στην προκειμένη είναι μόνο μία: η νούμερο 0 με τίτλο 'bash'. Μπορούμε να διορθώσουμε τον τίτλο πατώντας 'Ctrl-A A'.

Πατώντας 'Ctrl-A c' φτιάχνουμε μια καινούρια οθόνη. Άλλος τρόπος έιναι δίνοντας screen (όταν βρισκόμαστε ήδη μέσα στη screen, φτιάχνει μια καινούρια οθόνη, δεν τρέχει νέο στιγμιότυπο της screen). Μπορούμε με 'screen -t title' να της δώσουμε και τίτλο.

Ο πιο απλός τρόπος να τερματίσουμε μια οθόνη είναι να κάνουμε logout από το shell της.

Με 'Ctrl-A n' μεταφερόμαστε στην οθόνη με αριθμό n. Με 'Ctrl-A Ctrl-A' εναλλασόμαστε μεταξύ της τρέχουσας και της προηγούμενης οθόνης.

Φτιάχνοντας ένα αρχείο ~/.screenrc και προσθέτοντας την παρακάτω γραμμή

caption always "[%n %t]%? (%W)%? (%D %d %M,%c) (%l)"

λέμε στη screen να μας δείχνει στο κάτω μέρος της οθόνης μας τις εξής πληροφορίες:

[0 main] (1 kernel-build) (Sun 03 Aug,13:44) (1.17 1.11 1.04)
  • Τον αριθμό και τον τίτλο της τρέχουσας οθόνης σε αγκύλες.
  • Τους αριθμούς και τους τίτλους των άλλων οθονών (αν υπάρχουν) σε παρενθέσεις.
  • Την ημερομηνία και ώρα.
  • Το system load

Με τη screen μπορούμε να το παίζουμε ... σε πολλά ταμπλώ έχοντας μόνο ένα τερματικό ανοιχτό.

Επίσης, άλλη πολύ ενδιαφέρουσα δυνατότητα της screen είναι ότι μπορεί να χωρίσει την οθόνη σε πολλά οριζόντια τμήματα. Σε κάθε ένα από αυτά θα αντιστοιχεί μια οθόνη, με δυνατότητα ρύθμισης φυσικά του ύψους του καθενός.

  • Ctrl-A S για χωρισμό της οθόνης
  • Ctrl-A X για καταστροφή τρέχοντος τμήματος
  • Ctrl-A Tab για μετάβαση στο επόμενο τμήμα
  • Ctrl-A :resize n για αλλαγή του ύψους του τρέχοντος τμήματος σε n γραμμές, (παίρνει και +n,-n για αύξηση ή μείωση κατα n αντιστοίχως).

Τέλος, με τη screen έχουμε τη δυνατότητα να κάνουμε detach και reattach ένα session.

Με (Ctrl-A d) γίνεται το detach, οπότε κλείνει η screen. Το session μας όμως δεν χάθηκε. Δίνοντας screen -ls θα πάρουμε μια έξοδο της μορφής:

There are screens on:
        781.pts-0.linux (Attached)
        893.pts-3.linux (Attached)
        2002.pts-7.linux        (Detached)
3 Sockets in /tmp/uscreens/S-manolis.

Με 'screen -r 2002' (το pid δεν χρειάζεται όταν υπάρχει μόνο ένα detached session) ξανακάνουμε attach το session στο τρέχον τερματικό συνεχίζοντας τη δουλειά μας ακριβως απο εκεί που την αφήσαμε)

Αν το session δεν είναι detached και δεν έχουμε, για κάποιο λόγο, πρόσβαση σ' αυτό μπορούμε να χρησιμοποιήσουμε την εντολή 'screen -d -r pid' η οποία κάνει πρώτα detach κι ύστερα attach στο τρέχον τερματικό.

Μια περίπτωση στην οποία αυτή η ιδιότητα είναι πολύ χρήσιμη είναι σε remote shells. Ας υποθέσουμε ότι συνδέόμαι με telnet σε ένα απομακρυσμένο unix box και αρχίζω να κάνω μια δουλειά. Μπορώ ανά πάσα στιγμή να κάνώ detach και να τερματίσώ τη σύνδεση. Όταν αργότερα ξανασυνδεθώ, κάνω attach το προηγούμενο session και συνεχίζω τη δουλειά μου από εκεί που την άφησα!

Προηγούμενο  Περιεχόμενα


Valid HTML 4.01!   Valid CSS!