Da quando ho cominciato a lavorare a distanza sulle mie macchine usando SSH ho trovato una piccola mancanza.
Non parlo del server grafico X, ma della possibilità di avere a disposizione più terminali per poter lavorare.
Da questa mia necessità di poter avere un multiplatore di terminale per poter lavorare è partita una ricerca che ha subito trovato in screen un valido aiuto.
Con il tempo ho poi scoperto tmux che mi offriva le stesse funzioni, a suo vantaggio c’è il fatto che viene mantenuto più aggiornato mentre per screen lo sviluppo pare fermo da diverso tempo.
Per le mie esigenze anche screen andava bene, il mio uso è molto semplice e non ho riscontrato bug che in alcui casi hanno portato molti utenti a passare a tmux.
I programmi di cui sopra accennato offrono molte possibilità in più di quello che mi serve , ma vediamo ora come ho configurato entrambe.
Le mie semplici richieste mi hanno portato a provare subito screen, avevo bisogno di alcuni terminali dover poter lavorare con diversi user, un scheda con MC a cui ho successivmanete aggiunto rtorrent e weechat ma niente di particolare.
-
Screen
Riguardo a screen ho trovato un’ottima guida su debianizzzati a questo link , dopo aver ripulito il file di configurazione nella guida ho potuto da subito cominciare a operare.
Un piccolo periodo per adeguarmi al binding delle funzioni necessarie et voilà in poco tempo ho acquisito l’abilità per muovermi comodamente.
Installare screen:
# aptitude install screen
Ecco il mio file di configurazione ~/.screenrc :
# MC screenrc (copied) altscreen on # imposto la variabile d'ambiente TERM, necessario se si usa un terminale con 256 colori term screen-256color # disabilito il flow control defflow off # gestisce i login degli utenti in ogni pseudo terminale attraverso il file /run/utmp deflogin on # abilito il monitoraggio di attività delle finestre defmonitor on # la quantità di righe salvate nel buffer defscrollback 7777 # UTF-8 everywhere! defutf8 on # evita il blocco del terminale da parte di applicazioni bloccate defnonblock on # il tempo di visualizzazione dei messaggi di attività è impostato a un secondo msgwait 1 # disabilito il noioso messaggio di benvenuto in apertura startup_message off # disabilito quegli orribili flash in reverse color della visual bell vbell off # quando si usa "Ctrl-a h" appende nuovo testo al file hardcopy.n anziché sovrascriverlo hardcopy_append on # salvo la disposizione degli split per la sessione layout save fugu # blocco l'accesso a screen dopo 15 minuti di inattività, equivale a "Ctrl-a x" idle 900 lockscreen # messaggio di attività personalizzato activity "someone is squeaking in #%n %t" # i colori del testo nel prompt sorendition Bk # l'aspetto delle barre che appaiono con uno o più split caption splitonly "%{= kw}%47=%?%F%{= kB}%?%t" # l'aspetto della statusbar: nera con testo blu per la finestra in focus, racchiuso tra parentesi quadre verdi, hardstatus alwayslastline "%{= kB}%{= 9}%?%-w%?%{G}[%{B}%n %t%?(%u)%?%{G}]%{d}%+w%?%?%= %{g}%c %D %d-%m-%y" # le scorciatoie che non hanno un argomento vengono eliminate bind \\ bind d bind k bind K bind ^k bind z bind ^z # oltre ad appendere al file, come specificato prima "hardcopy_append on", voglio salvare in un file diverso bind h hardcopy -h $HOME/Desktop/screenbuffa # i programmi che uso più spesso sono associati a comode scorciatoie bind E screen 4 mutt bind H screen htop bind I screen 3 weechat bind T screen -t rTorr 7 rtorrent bind W screen w3m https://www.google.com # automatizzo certe operazioni all'apertura di screen screen 0 bash screen 1 mc -x screen 2 bash
A questo punto basta eseguire da terminale :
$ screen
Per operare da subito le funzioni principali :
- Ctrl+a [numero] per spostarsi tra le varie finestre
- Ctrl+a c per aprire una nuova finestra
- Ctrl+a shift+[lettera] attivo la scorciatoia
- Ctrl+a x blocco la sessione
- Ctrl+a :quit termino screen
Solitamente sul raspberryPI non termino screen ma chiudo la sessione SSH, allla succesiva apertura della sessione:
$screen -r
e riprendo la sessione precedente con tutte le finestre aperte in precedenza.
-
tmux
Riguardo tmux non ho trovato nulla sulle guide debianizzati, però il web è ricco di esempi di cofigurazione che possono venire in nostro aiuto.
Il problema è stato adattare tutto il materiale trovato in rete alle mie esigenze, che in questo caso per mia praticità ho fatto diventare simile nelle funzioni a quello che facevo già con screen.
Devo a priori ringraziare skizzhg per avermi fornito un utile file di partenza da cui poi elaborare la mia configurazione.
L’installazione prevede
#aptitude install tmux vlock
il file di configurazione ~/.tmux.conf :
### first run with `tmux attach-session' ### reattach with the same or `tmux attach-session -t MC_Kim' ############## # unbind key # ############## unbind-key '"' unbind-key '%' unbind-key & unbind-key d unbind-key Space unbind-key x unbind-key C-b unbind-key C-z unbind-key C-Up unbind-key C-Down unbind-key C-Left unbind-key C-Right unbind-key M-Up unbind-key M-Down unbind-key M-Left unbind-key M-Right unbind-key M-1 unbind-key M-2 unbind-key M-3 unbind-key M-4 unbind-key M-5 ################# # bind for kill # ################# bind k confirm kill-window bind K confirm kill-server ########## # option # ########## set-option -g default-command "exec bash" set-option -g prefix C-a set-option -g utf8 on set-option -g history-limit 7777 set-option -g escape-time 0 set-option -g repeat-time 300 set-option -g display-time 1000 set-option -g pane-active-border-fg blue set-option -g status-justify centre set-option -g status-utf8 on set-option -g status-keys vi set-option -g status-bg black set-option -g status-fg white set-option -g status-right "#[fg=green] %H:%M %a %d-%m-%y" set-option -g default-terminal "screen-256color" ################# #scroll by mouse# ################# set-window-option -g mode-mouse on set -g history-limit 30000 ############### # Screen lock # ############### bind-key x lock-server set-option -g lock-after-time 1800 set-option -g lock-server on set-option -g lock-command "vlock" ############### # more option # ############### set-window-option -g aggressive-resize on set-window-option -g mode-keys vi set-window-option -g xterm-keys on set-window-option -g window-status-current-fg blue bind-key a send-prefix bind-key C-a last-window bind-key Space next-window bind-key BSpace previous-window bind-key C-d detach-client bind-key C-s source-file ~/.tmux.conf ################################################################################### # usare crtl+a come bind-key (prefix) e poi Alt+numero, 0 per 10, 1 per 11, etc...# ################################################################################### bind-key M-0 select-window -t 10 bind-key M-1 select-window -t 11 bind-key M-2 select-window -t 12 bind-key M-3 select-window -t 13 bind-key M-4 select-window -t 14 bind-key M-5 select-window -t 15 bind-key M-6 select-window -t 16 bind-key M-7 select-window -t 17 bind-key M-8 select-window -t 18 bind-key M-9 select-window -t 19 ############## # Short bind # ############## bind-key M new-window -n mutt -t 8 "exec mutt -F $HOME/.muttrc" bind-key F new-window -n mc -t 1 "exec mc -x" bind-key H new-window -n htop "exec htop" bind-key R new-window -n "#root" -t 13 "su -l" bind-key T new-window -n rTorr -t 4 "exec rtorrent" bind-key V new-window -n vim -t 6 "stty -ixon -ixoff; exec vim.tiny" bind-key W new-window -n w3m "exec w3m http://www.google.com" ####### # tty # ####### new-session -ds tty set-option -t tty default-terminal "screen" send-keys -t 0 " export TERM=screen; unset DISPLAY" C-j ################## # MC_Kim session # ################## new-session -s MC_Kim new-window -dn mc "exec mc -x" new-window -d new-window -d new-window -d -t 5
con questo file di configurazione sono in parte riuscito a clonare il mio modo d’uso,ho dovuto aggiungere vlock per bloccare la sessione dopo x secondi e un bind diverso per terminare tmux.
un link utile : Extreme Multitasking with tmux and PuTTY
Un consiglio appassionato (che spesso neppure io seguo) è di non copiare ad minchiam , ma cercare prima di documentarsi un pò e poi modificare a seconda delle propire esigenze, i programmi di cui si è parlato offrono molte più possibilità di quanto illustrato fino ad ora.
Now you can start with a terminal multiplexer , and no more suka 🙂
Edit :
How do I reload ~/.tmux.conf?
After editing ~/.tmux.conf, execute this from a shell:
tmux source-file ~/.tmux.conf
und puppamelo