.bashrc - cosa sbaglio??

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

.bashrc - cosa sbaglio??

Messaggio da danix »

Salve a tutti, mi è venuto in mente di modificare la variabile PS1 della mia shell e di salvarla nel file .bashrc in modo che rimanga sempre come l'ho impostata, ma quando provo ad avviare un emulatore di terminale (konsole) mi appare il prompt normale in bianco:

Codice: Seleziona tutto

danix@darkstar:~$ 
Adesso vi posto il mio .bashrc, ditemi se trovate qualche errore...

Codice: Seleziona tutto

user_color=32m
if [ ${UID} -eq 0 ]
then
        user_color=31m
fi

PS1="[\[\e[$user_color\]\u\[\e[37m\]@\[\e[34m\]\h \[\e[37m\]- \w] \d \t\n\#\$ "

in teoria (ammesso che io non abbia sbagliato nulla) il prompt che dovrebbe apparire dovrebbe essere qualcosa di simile a questo:

Codice: Seleziona tutto

[(in verde)danix(in bianco)@(in blu)darkstar (in bianco)- ~] Sun Mar 15 15:20:12
$ 
Secondo voi dov'è l'errore??
Grazie mille a tutti
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: .bashrc - cosa sbaglio??

Messaggio da targzeta »

danix85 ha scritto:...Secondo voi dov'è l'errore??...
Dal man di bash (italiano e vecchio):

Codice: Seleziona tutto

~/.bash_profile        Il file di inizializzazione personale, eseguito per le shell di login
~/.bashrc              Il file di inizializzazione individuale per shell interattiva
Quindi prova a creare un link simbolico in questo modo:

Codice: Seleziona tutto

ln -s ~/.bashrc ~/.bash_profile
Spina

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

Grande Spina...

Adesso funziona a meraviglia... l'unico dubbio che mi è rimasto è il fatto che il prompt conti il numero dei comandi... mi spiego meglio:

Codice: Seleziona tutto

[danix@darkstar - ~] dom apr 15 21:07:46
1$ pwd
/home/danix
[danix@darkstar - ~] dom apr 15 21:07:53
2$ cd /var
[danix@darkstar - /var] dom apr 15 21:07:58
3$ ls -l ~/pictures
totale 1917
-rw-r--r-- 1 danix users 325015 2007-04-15 13:37 test.png
-rw-r--r-- 1 danix users 163411 2007-04-15 13:39 test1.png
-rw-r--r-- 1 danix users 161081 2007-04-15 13:40 test2.png
-rw-r--r-- 1 danix users 527267 2007-04-15 13:43 test3.png
-rw-r--r-- 1 danix users 775158 2007-04-15 13:44 test4.png
[danix@darkstar - /var] dom apr 15 21:08:24
4$ cd
[danix@darkstar - ~] dom apr 15 21:08:47
5$
Ho immesso un pò di comandi a casaccio per rendere l'idea...
Si nota il numerino prima del simbolo $, ma il codice che ho inserito io nella variabile ps1 non dovrebbe effettuare il conteggio... come si spiega??

Grazie delle risposte (eventuali)...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio da targzeta »

danix85 ha scritto:Grande Spina...
Ma che dici, sono nel fior fiore degli anni :).
Si nota il numerino prima del simbolo $, ma il codice che ho inserito io nella variabile ps1 non dovrebbe effettuare il conteggio... come si spiega??
Eppure giurerei di aver visto un \# nel tuo comando ;).

Sempre dal man di bash:

Codice: Seleziona tutto

\#     il numero di comando del comando
Spina

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

spina ha scritto:
danix85 ha scritto:Grande Spina...
Ma che dici, sono nel fior fiore degli anni :).
...
Eppure giurerei di aver visto un \# nel tuo comando ;).
E lo ripeto... Grande, mi ha confuso il fatto che nel man sono vicini \# e \$ e ho letto il tutto un pò superficialmente "interpretando" un pò a modo mio, infatti credevo che bisognasse metterli entrambi perchè cambiassero a seconda dell'utente che usa la shell, invece quello è solo \$...
Chiedo venia, dovrei essere meno superficiale e frettoloso a volte (sempre...)

Ancora Grazie mille...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio da targzeta »

danix85 ha scritto:...dovrei essere meno superficiale e frettoloso...
Oh, non ci crederai ma è quello che mi dice sempre la mia ragazza. Ma io le rispondo che madre natura crea. Per la fretta qualcosa posso ancora fare, tipo contare e non pensare troppo, ma oltre i miei pochi centimetri più in profondità non posso andare (non siamo mica tutti Rocco Siffredi) :D :D

Spina

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

ImmagineImmagineImmagineImmagineImmagineImmagineImmagineImmagineImmagineImmagineImmagineImmagineImmagineImmagine
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

bloodlust
Linux 3.x
Linux 3.x
Messaggi: 523
Iscritto il: mar 14 feb 2006, 12:02
Slackware: -1
Località: it_IT

Re: .bashrc - cosa sbaglio??

Messaggio da bloodlust »

Codice: Seleziona tutto

ln -s ~/.bashrc ~/.bash_profile
è più corretto in .bash_profile:

Codice: Seleziona tutto

source ~/.bashrc

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: .bashrc - cosa sbaglio??

Messaggio da targzeta »

bloodlust ha scritto:...è più corretto in .bash_profile:

Codice: Seleziona tutto

source ~/.bashrc
...
Perché è più corretto?

Spina

bloodlust
Linux 3.x
Linux 3.x
Messaggi: 523
Iscritto il: mar 14 feb 2006, 12:02
Slackware: -1
Località: it_IT

Messaggio da bloodlust »

.bash_profile è usato solo nelle shell di login (-> man bash).
normalmente alias e funzioni vengono definiti in .bashrc (io ad es. uso .bash_aliases per gli alias ma questo è un di più).
facendo così mantieni due script separati e puoi modificare .bash_profile senza modificare .bashrc, cosa che non potresti fare usando i link.

volendo

Codice: Seleziona tutto

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio da targzeta »

Mi faresti un esempio? Ho capito cosa vuoi dire, ma non ho chiaro le potenzialità.

Spina

bloodlust
Linux 3.x
Linux 3.x
Messaggi: 523
Iscritto il: mar 14 feb 2006, 12:02
Slackware: -1
Località: it_IT

Messaggio da bloodlust »

spina ha scritto:Mi faresti un esempio?
semplice semplice: modifica della variabile PATH

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

bloodlust ha scritto:volendo

Codice: Seleziona tutto

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi
A me con questa soluzione non legge più i colori, mentre linkando bashrc lo faceva...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

bloodlust
Linux 3.x
Linux 3.x
Messaggi: 523
Iscritto il: mar 14 feb 2006, 12:02
Slackware: -1
Località: it_IT

Messaggio da bloodlust »

strano... a me con il .bashrc che hai postato sopra ed il mio .bash_profile funziona (shell colorata). hai modificato qualcosa nel frattempo?

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

bloodlust ha scritto:strano... a me con il .bashrc che hai postato sopra ed il mio .bash_profile funziona (shell colorata). hai modificato qualcosa nel frattempo?
No, ti posto il bashrc e il bash_profile...

~/.bashrc

Codice: Seleziona tutto

#! /bin/bash
user_color=32m
if [ ${UID} -eq 0 ]
then
        user_color=31m
fi

PS1="[\[\e[$user_color\]\u\[\e[37m\]@\[\e[34m\]\h \[\e[37m\]- \w] \d \t\n\$ "

~/.bash_profile

Codice: Seleziona tutto

if [ -f ~/.bashrc ]
then
        source=~/.bashrc
fi

Inoltre ho un dubbio... c'è bisogno di mettere #! /bin/bash all'inizio dei 2 files??

Grazie per le risposte...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Rispondi