102 lines
4.3 KiB
Markdown
102 lines
4.3 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
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`:
|
|
|
|
```bash
|
|
[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`**** |