Pagina 1 di 1

Comando ls e output colorato (con file *.txz) [RISOLTO]

Inviato: ven 16 ott 2009, 9:05
da Burroughs
Il titolo dice tutto, fra l'altro questo è uno di quei problemi che son più facili a mostrarli a video che a spiegarli; farò del mio meglio... :)
Allora, Slackware 13.0, apro da utente il terminale di default...
I binari della slack (sia i *.tgz che i *.txz) li visualizzo come voglio io, cioè in rosso, però, se da utente normale scalo a superutente, riesco a vedere in rosso solo i *.tgz e non i *.txz.
Vi allego il bashrc dell'utente e del superutente:

Codice: Seleziona tutto

alutri@andy:~$ cat .bashrc
export LS_OPTIONS='--color=auto'
eval `dircolors`
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
alias fortune="fortune /usr/share/games/fortunes/*ok"
# This line was appended by KDE
# Make sure our customised gtkrc file is loaded.
# (This is no longer needed from version 0.8 of the theme engine)
# export GTK2_RC_FILES=$HOME/.gtkrc-2.0
e

Codice: Seleziona tutto

root@andy:~# cat .bashrc
export SHELL=$(which bash)
export LS_OPTIONS='--color=auto'
eval `dircolors`
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
Burroughs.

Re: Comando ls e output colorato (con file *.txz)

Inviato: ven 16 ott 2009, 10:26
da targzeta
L'errore è nell'invocazione di dircolors.

Codice: Seleziona tutto

eval `dircolors`
Questo comando vuole anche un file da valutare, altrimenti ti setta le impostazioni di default (in cui non c'è il txz). L'unica cosa è che non capisco come mai con quel .bashrc ti funzioni per l'utente, avrai un .bash_profile diverso dal .bashrc?

Per ovviare all'errore dovresti a mio avviso eliminare completamente quelle righe da entrambi i file (o commentale con un '#' se non ti fidi).
Questo perchè se invochi 'su' allora l'ambiente è passato pari pari e quindi la variabile LS_COLORS rimane quella dell'utente con cui ti sei loggato e da quanto scrivi sembra corretta.
Se invece invochi 'su -' viene eseguita una shell di login e quindi dircolors viene eseguito da '/etc/profile'.

Emanuele

P.S. Inoltre ti suggerisco un LS_OPTIONS più carino '--color -F -T 0', ma è questione di gusti/abitudine.

Re: Comando ls e output colorato (con file *.txz)

Inviato: ven 16 ott 2009, 10:33
da conraid
l'ho notato anche io, però sei fai

Codice: Seleziona tutto

su -
allora li prende correttamente
quindi è qualche inizializzazione

Re: Comando ls e output colorato (con file *.txz)

Inviato: ven 16 ott 2009, 10:36
da conraid
l'alias ls con color è impostato nell'ambiente, con il file /etc/profile.d/coreutils_dircolors.sh, non importa farlo per l'utente
così come eval dircolors

dircolors prende i txz dal file /etc/DIR_COLORS, non inizializzando con su - magari non carica /etc/profile.d/coreutils_dircolors.sh

Re: Comando ls e output colorato (con file *.txz)

Inviato: ven 16 ott 2009, 10:43
da targzeta
conraid ha scritto:...dircolors prende i txz dal file /etc/DIR_COLORS, non inizializzando con su - magari non carica /etc/profile.d/coreutils_dircolors.sh
Forse non mi sono spiegato bene? Se invochi 'su -' allora dircolors viene eseguito correttamente da /etc/profile, se invece si invoca 'su' allora non viene eseguito da /etc/profile perchè la shell non è di login, però l'ambiente viene passato al superutente e quindi la variabile LS_COLORS rimane uguale a quella dell'utente attuale, che per quanto scrive Burroughs è corretta.

dircolors di suo non setta i 'txz'. Fai una prova, esegui solo

Codice: Seleziona tutto

eval `dircolors`
e poi controlla con

Codice: Seleziona tutto

echo $LS_COLORS | grep --color txz
quindi poi ripristina tutto con

Codice: Seleziona tutto

eval `dircolors /etc/DIR_COLORS`
Emanuele

Re: Comando ls e output colorato (con file *.txz) [RISOLTO]

Inviato: ven 16 ott 2009, 10:48
da conraid
no spina, io non ho quelle cose nei miei file di inizializzazione, sia di login sia interattivi, e se faccio su non prende quelli dell'utente, ma non prende niente, ecco perché non mi torna la tua frase
Per ovviare all'errore dovresti a mio avviso eliminare completamente quelle righe da entrambi i file (o commentale con un '#' se non ti fidi).
Questo perché se invochi 'su' allora l'ambiente è passato pari pari e quindi la variabile LS_COLORS rimane quella dell'utente con cui ti sei loggato e da quanto scrivi sembra corretta.

Re: Comando ls e output colorato (con file *.txz)

Inviato: ven 16 ott 2009, 10:49
da Burroughs
spina ha scritto:L'errore è nell'invocazione di dircolors.

Codice: Seleziona tutto

eval `dircolors`
Questo comando vuole anche un file da valutare, altrimenti ti setta le impostazioni di default (in cui non c'è il txz). L'unica cosa è che non capisco come mai con quel .bashrc ti funzioni per l'utente, avrai un .bash_profile diverso dal .bashrc?

Per ovviare all'errore dovresti a mio avviso eliminare completamente quelle righe da entrambi i file (o commentale con un '#' se non ti fidi). [CUT]
Ho risolto commentando le righe in entrambi i file, come suggerivi tu.
Sì, l'utente normale ha un suo .bash_profile, che viene usato solo per impostare alias di comandi impostati in /etc/sudoers.

Burroughs.

Re: Comando ls e output colorato (con file *.txz) [RISOLTO]

Inviato: ven 16 ott 2009, 10:51
da targzeta
@conraid
Dal su(1)
The current environment is passed to the new shell.
Io non ho capito se anche tu hai lo stesso problema o cosa :)

Emanuele

Re: Comando ls e output colorato (con file *.txz) [RISOLTO]

Inviato: ven 16 ott 2009, 10:52
da conraid
boh... a me fa come dicevi tu, senza che abbia quelle righe nei file di inizilizzazione, ne nell'utente ne per root

tra l'altro
da root ad utente tutto ok
da utente a root da il comportamento che hai descritto

@spina
sì, ho lo stesso "problema", se vogliamo chiamarlo problema, non mi metto certo a cercare di risolverlo

Re: Comando ls e output colorato (con file *.txz) [RISOLTO]

Inviato: ven 16 ott 2009, 10:57
da targzeta
conraid ha scritto:...
@spina
sì, ho lo stesso "problema", se vogliamo chiamarlo problema, non mi metto certo a cercare di risolverlo
Che tu abbia lo stesso "problema" lo si intuisce da quello che hai scritto. Il tuo caso dovrebbe essere solo quello in cui invochi 'su', questo perchè, suggerendo a Burroughs di eliminare l'alias di ls commetti un errore. Se invochi 'su' non viene eseguita la shell di login e quindi il file /etc/profile non viene eseguito, di conseguenza non viene settato l'alias per ls.

Emanuele

Re: Comando ls e output colorato (con file *.txz) [RISOLTO]

Inviato: ven 16 ott 2009, 11:03
da conraid
sì hai ragione, ha gli alias in .bashrc

Offtopic: naturalmente anche se il file fosse richiamato da .bash_profile invocare un doppio alias non è peccato, ma non sarebbe stilisticamente perfetto :-)