lpic/101/019_screen_tmux.md

102 lines
4.3 KiB
Markdown
Raw Permalink Normal View History

2024-12-03 21:30:16 +01:00
# 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:
2024-12-15 11:46:57 +01:00
- `CTRL + a + w`: mostra i nomi delle finestre. Il conteggio parte da 0
2024-12-03 21:30:16 +01:00
- `CTRL + a + c`: crea una nuova finestra (il simbolo `*` indica la finestra corrente)
2024-12-15 11:46:57 +01:00
- `CTRL + a + "`: mostra una lista a elenco: delle finestre
2024-12-03 21:30:16 +01:00
```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
2024-12-15 11:46:57 +01:00
- `CTRL + a + :`: per entrare nella modalita' di comando
- `quit`
2024-12-03 21:30:16 +01:00
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`
2024-12-15 11:46:57 +01:00
- `screen -X -S SESSION_NAME quit`: chiude la sessione
2024-12-03 21:30:16 +01:00
### 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
2024-12-10 21:54:06 +01:00
## 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
2024-12-15 11:46:57 +01:00
- `CTRL + b + $`: rinominare una sessione
- `CTRL + b + ,`: rinominare una finestra
- `CTRL + b + n`: per passare alla finestra successiva
- `CTRL + b + p`: precedente
2024-12-10 21:54:06 +01:00
- `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
2024-12-15 11:46:57 +01:00
- `CTRL + b + :`: per entrare nella modalita' di comando
- `split-window`
- `kill-window`
2024-12-10 21:54:06 +01:00
### 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
2024-12-15 11:46:57 +01:00
I suoi file di conf si trovano in `/etc/tmux.conf` o `~/.tmux.conf`****