lpic/101/019_screen_tmux.md
2024-12-15 11:47:26 +01:00

4.3 KiB

Multiplexer

Un multiplexer, o mux, e' un dispositivo che consente ci collegare piu' ingressi a una singola uscita. Un multiplexer da terminale permette di passare tra diversi ingressi o sessioni. Due esempi sono screen e tmux.

Le sessioni possono essere scollegate dal terminale corrente, coi programmi che continuano ad essere eseguiti in background.

screen

Invocato semplicemente digitando screen sul terminale. Il file di configurazione e' ~/.screenrc

Ogni comando e' preceduto dalla combinazione CTRL + a.

Un elenco dei comandi principali:

  • CTRL + a + w: mostra i nomi delle finestre. Il conteggio parte da 0
  • CTRL + a + c: crea una nuova finestra (il simbolo * indica la finestra corrente)
  • CTRL + a + ": mostra una lista a elenco: delle finestre
0-$ bash 1*$ bash
  • CTRL + a + A: rinominare la finestra corrente
  • screen -t anotherwindow: crea una finestra con un nome stabilito
  • CTRL + a + n: spostarsi alla finestra successiva
  • CTRL + a + p: precedente
  • CTRL + a + number: alla finestra number
  • CTRL + a + k: chiude la finestra attualmente in uso
  • CTRL + a + S: divide il terminale in due regioni orizzontali
  • CTRL + a + |: verticalmente
  • CTRL + a + Tab: muoversi tra le regioni
  • CTRL + a + Q: termina tutte le regioni
  • CTRL + a + X: termina la regione corrente
  • CTRL + a + D: distacco dalla sessione
  • CTRL + a + :: per entrare nella modalita' di comando
    • quit

Alcune opzioni di screen:

  • screen -ls: mostra un elenco di tutte le sessioni
  • screen -S new-session: creare una nuova sessione con nome new-session
  • screen -R SESSION-PID o screen -R SESSION-NAME: collegarsi alla medesima sessione
  • screen -t SESSION-NAME COMMAND: crea una sessione SESSION-NAME, nella quale sara' eseguito il comando COMMAND. Ad esempio: screen -t top top
  • screen -X -S SESSION_NAME quit: chiude la sessione

Copia e incolla: scrollback-mode

  • CTRL + a + [: accedere alla scrollback-mode
  • Spostarsi all'inizio del testo da copiare coi tasti freccia
  • Premere Space, per segnale l'inizio della selezione del testo
  • Spostarsi coi tasti freccia fino al termine del testo da copiare
  • Premere Space, per segnale il termine della selezione del testo
  • CTRL + a + ]: permette di incollare il testo

tmux

  • Implementa un modello client-server: il server fornisce una serie di sessioni, ciascuna delle quali puo' avere un numero di finestre ad esse collegate, che possono a loro volta essere condivise tra diversi client
  • Progetto piu' recente
  • Consente di gestire più sessioni contemporaneamente
  • tmux ha un sistema di plugin più avanzato, con possibilità di estendere le funzionalità del programma

Puo' essere invocato digitando tmux:

[0] 0:bash*                                      "pc" 21:36 10-dic-24

La barra di stato fornisce le seguenti informazioni:

  • data e ora
  • Nome della sessione: [0]
  • Numero della finestra: 0
  • Window name: bash*. Nome di default del programma, che tmux aggiorna in modo da riflettere il programma in esecuzione. L'asterisco indica la finestra corrente

Un elenco dei comandi principali:

  • tmux new -s "NAME_SESSION" -n "WINDOW_NAME": assegnare un nome alla sessione e alla finestra
  • CTRL + b: prefisso dei comandi
  • CTRL + b + c: per creare una nuova finestra
  • CTRL + b + w: per visualizzare tutte le finestre
  • CTRL + b + &: per chiudere una finestra
  • CTRL + b + $: rinominare una sessione
  • CTRL + b + ,: rinominare una finestra
  • CTRL + b + n: per passare alla finestra successiva
  • CTRL + b + p: precedente
  • CTRL + b + s o tmux ls: elencare le varie sessioni
  • tmux kill-session -t SESSION_NAME: terminare la sessione SESSION_NAME
  • tmux attach -t SESSION_NAME: collegarsi alla sessione SESSION_NAME
  • CTRL + b + d: detach dalla sessione
  • CTRL + b + :: per entrare nella modalita' di comando
    • split-window
    • kill-window

Riquadri

tmux permette di suddividere la finestra in riquadri. Si tratta di pseudo-terminali: terminare un riquadro terminera' anche il suo pseudo terminale e tutti i programmi ad esso associati.

  • CTRL + b + ": per dividere la finestra orizzontalmente
  • CTRL + b + %: per dividere la finestra verticalmente
  • CTRL + b + x: per eliminare il riquadro corrente

I suoi file di conf si trovano in /etc/tmux.conf o ~/.tmux.conf****