8.9 KiB
title | subtitle | author | data | urlcolor |
---|---|---|---|---|
Cybersecurity con sistemi GNU/Linux | Dispensa del corso | Andrea Fazzi | 13.03.2024 | blue |
Utilizzo avanzato del terminale
In questa sezione verranno discussi gli utilizzi più avanzati del terminale. In particolare, ci si soffermerà sui cosidetti terminal multiplexer.
I terminal multiplexer
I terminal multiplexer in Linux sono strumenti potenti che consentono agli utenti di creare più sessioni di terminale all'interno di una singola finestra del terminale. Questi strumenti sono particolarmente utili per gestire più processi contemporaneamente, mantenendo aperte le sessioni anche dopo la disconnessione, e per organizzare le finestre del terminale in modo efficiente.
Uno dei terminal multiplexer più popolari e ampiamente utilizzati è
tmux
. tmux
permette agli utenti di creare, gestire e navigare tra
più sessioni di terminale, facilitando l'organizzazione dei processi e
la gestione delle finestre. Con tmux
, è possibile dividere la
finestra del terminale in più riquadri, ciascuno dei quali può
eseguire un processo separato, e passare facilmente da una sessione
all'altra.
Un altro esempio di terminal multiplexer è screen
, che offre
funzionalità simili a tmux
ma con una sintassi leggermente
diversa. Entrambi gli strumenti sono disponibili per la maggior parte
delle distribuzioni Linux e possono essere installati tramite il
gestore di pacchetti della distribuzione.
Utilizzare un terminal multiplexer può migliorare notevolmente l'efficienza e la produttività degli sviluppatori e degli amministratori di sistema, consentendo di lavorare con più processi contemporaneamente senza dover aprire molteplici finestre del terminale.
Riferimenti
Introduzione a tmux
tmux
è un potente strumento di gestione delle sessioni di terminale
in Linux. Permette agli utenti di creare, gestire e navigare tra più
sessioni di terminale all'interno di una singola finestra del
terminale. Questa funzionalità è particolarmente utile per
l'esecuzione di più programmi con una singola connessione, come quando
si effettua una connessione remota a una macchina utilizzando Secure
Shell (SSH) [1].
Per iniziare ad utilizzare tmux
, basta digitare tmux
nel
terminale. Questo comando avvia un server tmux
, crea una sessione
predefinita (numero 0) con una singola finestra e si collega ad
essa. Una volta connessi a tmux
, è possibile eseguire qualsiasi
comando o programma come si farebbe normalmente.
Installazione di tmux
tmux
è un'applicazione disponibile nel repository di Arch Linux
. Per installarla basterà utilizzare il comando pacman
.
sudo pacman -S tmux
Per verificare che l'installazione sia andata a buon fine:
tmux -V
Il comando restituirà la versione installata.
Riferimenti
- https://www.redhat.com/sysadmin/introduction-tmux-linux
- https://linuxhandbook.com/tmux/
- https://hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/
- https://linuxize.com/post/getting-started-with-tmux/
- https://linuxconfig.org/introduction-to-terminal-multiplexer-tmux
- https://github.com/tmux/tmux/wiki/Getting-Started
- https://www.howtogeek.com/671422/how-to-use-tmux-on-linux-and-why-its-better-than-screen/
- https://opensource.com/article/17/2/quick-introduction-tmux
- https://wiki.archlinux.org/title/Tmux
- https://github.com/tmux/tmux/wiki
Primi passi con tmux
Per eseguire tmux
si dovrà semplicemente invocare il comando
all'interno di una sessione di terminale.
tmux
È possibile staccare la sessione tmux
premendo Ctrl+B
seguito da
D
. tmux
opera utilizzando una serie di scorciatoie da tastiera
(keybindings) attivate premendo la combinazione "prefisso". Di
default, il prefisso è Ctrl+B
. Dopo di che, premere D
per staccare
dalla sessione corrente. La sessione continua ad eseguire in
background anche dopo la disconnessione, permettendo di riprendere
dove si è lasciati quando si è pronti a riconnettersi al server e
riattaccarsi alla sessione esistente.
tmux
fornisce una serie di scorciatoie da tastiera per eseguire
comandi rapidamente all'interno di una sessione tmux
. Alcune delle
più utili includono:
Ctrl+B D
— Stacca dalla sessione corrente.Ctrl+B %
— Suddividi la finestra in due pannelli orizzontalmente.Ctrl+B "
— Suddividi la finestra in due pannelli verticalmente.Ctrl+B
seguito da una freccia (sinistra, destra, su, giù) — Sposta tra i pannelli.Ctrl+B X
— Chiudi il pannello.Ctrl+B C
— Crea una nuova finestra.Ctrl+B N
oP
— Sposta alla finestra successiva o precedente.Ctrl+B 0
(1,2...) — Sposta a una finestra specifica per numero.Ctrl+B :
— Entra nella riga di comando per digitare comandi. L'auto-completamento tramite tab è disponibile.Ctrl+B ?
— Visualizza tutte le scorciatoie da tastiera. PremereQ
per uscire.Ctrl+B W
— Apre un pannello per navigare tra le finestre in più sessioni.
Esercizio
Utilizza tmux
per suddividere il terminale in due pannelli
verticali. Nel pannello di sinistra apri uno script in Python
utilizzando l'editor nano
. Nel pannello di destra esegui il comando
htop
. Se htop
non è presente nel sistema, procedi con la sua
installazione attraverso il package manager pacman
.
Configurazione di tmux
Il file di configurazione di tmux
, noto come tmux.conf
, è un file
di testo che permette agli utenti di personalizzare l'ambiente di
lavoro di tmux
secondo le proprie preferenze. Questo file può essere
posizionato in due luoghi principali:
~/.tmux.conf
per una configurazione specifica dell'utente corrente./etc/tmux.conf
per una configurazione globale, applicabile a tutti gli utenti del sistema.
Se il file ~/.tmux.conf
non esiste, può essere creato semplicemente
eseguendo il comando touch ~/.tmux.conf
nel terminale. Questo creerà
un file di configurazione vuoto che può essere modificato per
aggiungere le impostazioni desiderate.
La configurazione di tmux
può includere una vasta gamma di opzioni, tra cui:
- Cambio del prefisso di comando predefinito.
- Abilitazione della modalità mouse.
- Impostazione di due prefissi.
- Cambio del comportamento predefinito del server.
- Inizio del conteggio dei numeri delle finestre e dei pannelli (Base-Index) a 1.
- Modifica dello sfondo del pannello corrente.
- ...
Per esempio, per cambiare il prefisso di comando predefinito da
Ctrl+B
a Ctrl+A
, si potrebbe aggiungere la seguente riga al file
tmux.conf
:
set-option -g prefix C-a
Dopo aver apportato modifiche al file di configurazione, è necessario
ricaricarlo per applicare le nuove impostazioni. Questo può essere
fatto eseguendo il comando tmux source-file ~/.tmux.conf
dal
terminale o utilizzando il comando source-file ~/.tmux.conf
dalla
modalità di comando di tmux
. Per facilitare il processo, è possibile
aggiungere un collegamento rapido nel file tmux.conf
per ricaricare
facilmente la configurazione:
bind r source-file ~/.tmux.conf \; display "Reloaded!"
Questo permette di ricaricare la configurazione premendo il prefisso
seguito da r
, visualizzando un messaggio di conferma.
Riferimenti
- https://hamvocke.com/blog/a-guide-to-customizing-your-tmux-conf/
- https://www.hostinger.com/tutorials/tmux-config
- https://dev.to/iggredible/useful-tmux-configuration-examples-k3g
- https://github.com/gpakosz/.tmux
- https://arcolinux.com/everthing-you-need-to-know-about-tmux-configuration/
- https://thevaluable.dev/tmux-config-mouseless/
- https://github.com/samoshkin/tmux-config
- https://wiki.archlinux.org/title/tmux
- https://medium.com/@bhavik.n/customize-tmux-to-use-it-effectively-28b262c8b692
Creazione di layout personalizzati
Si supponga di voler creare un file di configurazione specifico per un
progetto in cui il terminale viene diviso in tre parti: due colonne
verticali di cui una a sua volta suddivisa orizzontalmente. In questo
caso è possibile utilizzare uno script di configurazione
personalizzato per tmux
. Questo script può essere salvato in un file
separato, ad esempio in ~/.config/tmux/split.conf
.
new -s splitted_session # crea una nuova sessione
selectp -t 0 # seleziona il primo pannello
splitw -h -p 50 # divide il pannello corrente orizzontalmente in due parti
selectp -t 1 # seleziona il nuovo secondo pannello
splitw -v -p 50 # divide il pannello corrente verticalmente in due parti
selectp -t 0 # torna al primo pannello
Una volta creato il file di configurazione, occorrerà "eseguirlo" con
tmux source-file ~/.config/tmux/split.conf
Esercizio
Crea un file di configurazione tmux
per produrre un layout con due
righe di cui la prima suddivisa in due colonne secondo uno schema
simile a quello riportato sotto.
-----------
| | |
| | |
-----------
| |
-----------