Pagina 1 di 1

Screen e "vi" da root

Inviato: gio giu 28, 2012 18:47
da joe
Una curiosità.
Provate la seguente serie di comandi:
1- aprite un terminale, per esempio xterm
2- avviate una sessione screen
3- fate il logni di root come segue: "su -" (non dimenticate il trattino)
4- lanciate "vi" liscio oppure aprite un file di testo a scelta"vi ${percorso}/${nomefile}".

Rilevo uno strano comportamento di "vi" che poi sarebbe elvis se non sbaglio.
Lo fa anche a voi o l'editor si comporta normalmente?
Grazie in anticipo!

Re: Screen e "vi" da root

Inviato: gio giu 28, 2012 21:01
da RedSkull92
A te cosa succede di preciso ?

Re: Screen e "vi" da root

Inviato: ven giu 29, 2012 1:00
da ZeroUno
non riesce a rilevare correttamente il terminale:
echo $TERMCAP
su -
echo $TERMCAP

soluzione:
export TERM=xterm
vi test
oppure usa vim

Re: Screen e "vi" da root

Inviato: ven giu 29, 2012 12:42
da joe
Il comportamento che rilevo èe strano a terminale vedo quanto segue:

Codice: Seleziona tutto

root@darkstar:~# vi
skipping 14 old session files


Cioè nonsi apre l'editor come dovrebbe.
Vero, il problema sembra avere a che fare col terminale: la varabile TERMCAP dell'utente semplice è piena di roba. Invece dopo aver fatto il login di root "su -" (trattino compreso, altrimenti non cambia nulla) TERMCAP è vuota.
Esportando la variabile TERM assegnando il valore "xterm" vi funziona comeci si aspetta solitamente. Tuttavia TERMCAP continua ad essere vuota.... boo.
Inoltre se uso un xterm senza avviare screen e faccio "su -", ecco che in quel modo funziona, quindi il problema sembra essere causato dalla concomitanza di più fattori.
Per rendere la cosa "persistente", si può mettere in baschrc nella home di root? Vi pare una soluzione con qualche rischio che ignoro oppure va bene?

Re: Screen e "vi" da root

Inviato: ven giu 29, 2012 14:35
da ZeroUno
Alla sempliciotta:

quando carichi screen, questo setta la variabile di ambiente TERM a "screen" e visto che non tutti gli editor interpretano il terminale "screen" (prova a dare export TERM=pippo) allora screen decide bene di settare anche la variabile TERMCAP con l'esplicitazione di "screen". elvis non riesce ad interpretare TERM così prova ad interpretare TERMCAP.
Quando si fa su - ci sono alcune variabili che possiamo chiamare "ereditarie", cioè si propagano alla shell di root, altre no. TERM si propaga, TERMCAP no.
Prova a dare "env" prima e dopo il su / su -

La soluzione definitiva più pulita è dire cosa è "screen" al sistema.
edita (come root) il file /etc/termcap copiandoci in fondo al file paroparo il contenuto di $TERMCAP.

Re: Screen e "vi" da root

Inviato: ven giu 29, 2012 17:24
da joe
Fatto: ho copiato $TERMCAP dell'utente semplice (solo quello conteneva qualcosa) in /etc/termcap.
Poi ho fatto il logout da root e sono rientrato sempre con "su -".
Ora vi si comportata allo stesso modo tanto per root come per l'utente semplice.
Alla prossima. E grazie. :D