This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Tmux
Warning: Display title "tmux/it" overrides earlier display title "Tmux".
tmux (terminal multiplexer) è un programma che abilita diversi terminali (o finestre), su ognuno dei quali giri un programma separato, ad essere creatim acceduti e controllati da un singolo schermo o finestra di terminale. tmux può essere staccato (detached) da uno schermo e continuare a girare in background, ed essere ricollegato nuovamente in seguito.[1] Gli utenti familiari con GNU Screen possono trovare in tmux una valida alternativa.
Installazione
Flags USE
USE flags for app-misc/tmux Terminal multiplexer
debug
|
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces |
jemalloc
|
Use dev-libs/jemalloc for memory management |
selinux
|
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur |
systemd
|
Enable use of systemd-specific libraries and features like socket activation or session tracking |
utempter
|
Include libutempter support |
vim-syntax
|
Pulls in related vim syntax scripts |
Emerge
Installare app-misc/tmux:
root #
emerge --ask app-misc/tmux
Configurazione
L'installazione standard di tmux non installerà i file di configurazione globale (/etc/tmux.conf) o specifici per ciascun utente (~/.tmux.conf). Sono disponibili degli esempi nella directory /usr/share/doc/tmux-2.0/examples e possono essere copiati nella location globale o utente ed editati a piacere utilizzando un text editor.
Esempi dal package
Per vedere una lista dei file di configurazione, lanciare il seguente comando:
user $
ls /usr/share/doc/tmux-2.0/examples
h-boetes.conf.bz2 n-marriott.conf.bz2 screen-keys.conf.bz2 t-williams.conf.bz2 vim-keys.conf.bz2
Usare poi cp per copiare uno dei file alla location globale (che impatterà tutti gli utenti) o nella home dell'utente.
Esempio wiki
Il seguente è un esempio del file ~/.tmux.conf:
set -g default-terminal "screen-256color" # Usa 256 colori set -g status-utf8 on # Abilita utf-8 set -g history-limit 100000 # Numero di righe nel buffer di scroll # L'indice iniziale delle finestre parte da 1 invece che da 0 set -g base-index 1 # Setta la combinazione di prefix ed alcuni key bindings per corrispondere a GNU Screen set -g prefix C-a bind-key C-a last-window # Key bindings per pannelli orizzontali e verticali unbind % bind | split-window -h bind - split-window -v # Abilita i titoli delle finestre #set -g set-titles on # Stringa per titolo della finestra (usa variabili della barra di stato) set -g set-titles-string '#T' # Barra di stato con carico ed ora set -g status-bg '#4e4e4e' set -g status-fg '#ffffff' set -g status-left ' ' set -g status-right '#[bg=#bbbbbb]#[fg=#000000]#(cut -d " " -f -3 /proc/loadavg) #[bg=#4e4e4e]#[fg=#ffffff]#( date +" %H:%M ")' set -g window-status-format '#I #W' set -g window-status-current-format ' #I #W ' setw -g window-status-current-bg '#55ff55' setw -g window-status-current-fg '#000000' # Colore del bordo pannello set -g pane-active-border-fg '#bbbbbb' set -g pane-border-fg '#555555' # Scorciatoia per ricaricare la configurazione bind r source-file ~/.tmux.conf
Plugins
Alcuni plugins sono disponibili per tmux. Vedere la sezione seguente per le opzioni disponibili.
tmux-mem-cpu-load
tmux-mem-cpu-load è un piccolo programma disegnato per monitorare l'attività di sistema nella barra di stato di tmux. Vedere l'articolo tmux-mem-cpu-load per maggiori dettagli riguardo il processo di installazione.
Tmux Resurrect
tmux-resurrect rende l'ambiente di tmux persistente tra i riavvii di sistema. Vedere l'articolo resurrect per maggiori dettagli riguardo il processo di installazione.
Utilizzo
Assegnazione dei tasti (key bindings)
tmux può essere controllato da un client collegato utilizzando delle combinazioni di tasti, composte da una "pressione della combinazione di prefisso" (di default Ctrl+b) seguita da una combinazione di "comando".
Dopo aver premuto Ctrl+B è possibile utilizzare le seguenti combinazioni:
Generale
- ? = Lista delle combinazioni/tasti assegnati.
- d = Stacca il client corrente.
- : = Entra nel prompt dei comandi di tmux.
Creare ed amministrare finestre
- c = Crea una nuova finestra
- n = Passa alla finestra seguente.
- p = Passa alla finestra precedente.
- l = Passa all'ultima finestra selezionata.
- 0-9 = Sceglie una finestra da 0 a 9.
- ' = Presenta un indice di finestre da scegliere. Inserire un numero o un titolo per passare a quella finestra.
- , = Rinomina la finestra corrente.
- w = Sceglie la finestra corrente in modo interattivo.
- :, poi digitare
list-windows
enter = Mostra la lista delle finestre.
Creare ed amministrare pannelli
- " = Divide il pannello corrente in due, alto e basso.
- % = Divide il pannello corrente in due, sinistra e destra.
- o = Passa al pannello seguente nella finestra corrente.
- ; = Passa al pannello precedentemente attivo.
- { = Scambia il pannello corrente con il precedente.
- } = Scambia il pannello corrente con il successivo.
- Ctrl+o = Ruota i pannelli nella finestra corrente in avanti.
- da Alt+1 a Alt+5 = Dispone i pannelli in uno dei cinque layout predefiniti: orizzontale, verticale, principale + orizzontale, principale + verticale o giustificato
- x = Distrugge il pannello corrente.
- ! = Getta il pannello corrente fuori dalla finestra.
Copia, incolla ed operazioni di scroll
Le chiavi disponibili dipendono se è selezionata la modalità emasc (default) o vi. L'opzione mode-keys può essere settata nel file .tmux.conf per la modalità vi.
- [ = Entra in modalità copia per copiare il testo o vedere lo storico.
- ] = Incolla il buffer di testo più recente.
- # = Lista tutti i buffer.
- - = Cancella il buffer di testo più recente copiato.
Controllo di sessione
Iniziare una sessione
Una volta avviato tmux crea un socket per la sessione in /tmp/S-<UID>/<Nome della sessione>
tmux può essere avviato con il seguente comando:
user $
tmux
Oppure, per dare alla sessione un nome all'avvio, lanciare:
user $
tmux new-session -s portage
Elencare le sessioni
Fare una lista delle sessioni di tmux per vedere le informazioni su quelle attualmente in corso:
user $
tmux ls
0: 1 windows (created Thu Apr 9 09:09:03 2015) [180x65] (attached)
Quando viene fatto l'elenco delle sessioni il nome di ciascuna dovrebbe apparire come primo oggetto nella riga delle informazioni relative. E'possibile vedere dall'output seguente che la sessione è stata creata senza un nome, e che di conseguenza è stata referenziata come 0
.
Un altro modo di fare la lista le sessioni è passare l'argomento list-sessions
al comando.
user $
tmux list-sessions
0: 1 windows (created Thu Apr 9 09:09:03 2015) [180x65] (attached)
L'output mostrato è analogo a quello del comando precedente.
Rinominare una sessione
Utilizzare semplicemente tmux per iniziare una sessione non le darà un nome comprensibile o "parlante".
Se il nome di default non fosse abbastanza descrittivo (e 0
non tende a descrivere molto), è possibile rinominare la sessione. Supponete che Larry the cow abbia avviato tmux senza un nome di sessione specifico. Inizia poi a lavorare sulla compilazione di una nuova versione di Portage, e vorrebbe cambiare il nome di sessione in modo che rifletta il suo compito attuale. Per cambiare il nome di sessione assumerà prima il controllo di tmux premendo la combinazione di tasti magica: Ctrl+b, poi : che lo passerà alla barra di controllo di tmux. Per default, la riga dovrebbe diventare gialla. Una volta atterrato qui lancerà:
:
rename-session -t 0 portage
Dove 0
è il nome di sessione attuale (default) e portage
è il nuovo nome desiderato per la sessione. Per rinominare una sessione disconnessa da tmux digitare:
user $
tmux rename-session -t 0 portage
Riprendere una sessione
Dopo che la sessione è stata staccata, tutti i terminali rimarranno attivi assieme ai comandi non ancora terminati. Per riprendere una sessione usare attach -t <nome_sessione>
.
user $
tmux a -t portage
In alternativa, usare il comando con l'argomento per attaccarsi ad una sessione esistente:
user $
tmux attach -t portage
Operazioni di tipo demone
Per lanciare un comando in una sessione tmux senza attaccarsi alla sessione (come un demone) usare new-session -d
seguita dal comando da lanciare tra virgolette:
user $
tmux new-session -d 'emerge -uDNvp @world'
Ulteriori informazioni
- Screen - Un'alternativa a tmux.
Risorse esterne
- Un'eccellente introduzione a tmux.
- The Tao of tmux, ebook di Tony Narlock, creatore di libtmux e tmuxp.