Newsgroup: it.comp.macintosh
Titolo: [Terminale] modifiche a PS1 col file .profile

 
          Vorrei rendere in grassetto il prompt di Terminale che per ora č:
export PS1="\n VAI > "
Questo per raggiungere velocemente l'inizio di un comando il cui output
occupa pagine e pagine. Come posso fare? E per il corsivo? Si puň anche
cambiare il colore solo del prompt?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 cambiare il colore solo del prompt?
Puoi cambiare il colore del prompt usando sequenze speciali di escape.
Ad esempio, il mio PS1 e':
WHITE="\[\033[1;37m\]"
BRIGHTGREEN="\[\033[1;32m\]"
GREEN="\[\033[0;32m\]"
CYAN="\[\033[0;36m\]"
GRAY="\[\033[0;37m\]"
BRIGHTYELLOW="\[\033[1;33m\]"
export PS1old="\n[\h:\w]\n  \u$ "
export
PS1="\n${WHITE}[${GREEN}\h${BRIGHTGREEN}:${BRIGHTYELLOW}\w${WHITE}]\n
${CYAN}\u\\\$${GRAY} " # l'ultimo ${GRAY} mi fa scrivere in grigio, che
e' il colore 'standard'.
Cerca su google una di queste sequenze, probabilmente troverai anche
quelle del grassetto che funziona allo stesso modo dei colori.
 - ∞

 cambiare il colore solo del prompt?
questo è il mio PS1
PS1="\033[36m\033[1m\]\t \d\[\033[34m \033[33m\033[1m\]\u@\h 
\[\033[1m\033[32m\]\w\[\033[1m\]\n\[\033[m\]$ "
tutto su una linea, e attento che dopo \h c'è uno spazio
e ottieni
15:30:15 Lun Gen 30 raf@jack ~
$
-- 
()_() | NN KAPISCO XK' CELLHAVETE T'ANNTO CN ME SL         | +----
(o.o) | XK' SKRIVO 1 P'HO VELLOCE MA HALL'ORA DITTELO      | +---+
'm m' | KE SIETE VOI K CI HAVVETE PROBBLEMI NO PENSATECI   |  O  |
(___) | HE SENZA RANKORI CIAOOOO                           |
                    raffaele punto salmaso at gmail punto com

 cambiare il colore solo del prompt?
Sì, devi consultare le sequenze escape riportate da molti
tutorial sulla bash: esse si aprono con "\e" e si concludono
con la m.
I codici colore di primo e secondo piano sono del tipo 3x e 4x
(1=rosso, 2=verde, 3=giallo, ...) mentre il codice per il
grassetto è 1 (4 per il sottolineato, che per convenzione è
usato al posto del corsivo); lo 0 ripristina i colori di
default; i codici vanno separati da punto e virgola.
Quindi per un prompt in grassetto blu puoi usare:
PS1='\n\e[34;1m VAI > \e[0m'

 quelle del grassetto che funziona allo stesso modo dei colori.
In effetti si trovano on line e c'è anche la faq 297, però non mi è chiaro
se sono obbligato a lavorare su .bashrc o posso farlo su .profile, visto che
l'export che per ora ho è su .profile!
Lo devo cancellare, aprire .bashrc con vi e scrivere
WHITE="\[\033[1;37m\]"
ecc. e poi di seguito
export PS1old="\n[\h:\w]
eccetera???
Perché PS1old?
Dunque il dubbio è che fare dell'export su .profile
Grazie!


 PS1='\n\e[34;1m VAI > \e[0m'
Questo esempio lo posso copiare direttamente in .profile o devo settare i
colori?


 Perché PS1old?
Ops, e' il mio vecchio prompt senza colori.
 - ∞

 (per tutte le shell sh-compatibili magari?).
Una funzione non la metti in .profile, quindi mi sa che taglio il PS1 da
profile e lo incollo con le varianti da te suggerite in .bashrc.
Profile regge bene alias e export, non di più.


 colori?
Si tratta di codici standard ASCII: 30 Black, 31 Red, 32 Green,
33 Yellow, 34 Blue, 35 Magenta, 36 Cyan, 37 White.
Se aggiungi dopo un punto e virgola un "1" hai dei colori
brillanti (in realtà con il Terminale/BASH ciò comporta
l'uso del grassetto), il "2" comporta dei colori attenuati,
il "4" sottolineati, il "5" lampeggianti, il "7" l'inversione
dei colori (quelli per lo sfondo si impostano usando i codici
4x corrispondenti).


Ovvero con un pezzo di prompt "pendente" sulla destra.
-- 
L'idiozia trascende il mezzo con cui viene espressa.

 PS1='\n\e[34;1m VAI > \e[0m'
Funziona, grazie ;-)


 Scritto nero su bianco nel bash prompt how to.
Mah, io ce l'ho nel .profile e va alla grande.
 - ∞





Anche da me funziona in .profile il suggerimento di Guido:
PS1='\n\e[34;1m VAI > \e[0m'
e funge alla grande!
in .bashrc ho messo delle funzioni generiche di sudo find, ma gli alias e
gli export stanno in .profile.


 e funge alla grande!
Ci sono tante cose che funzionano "per caso". Fate poi come credete, ma
quando uno consiglia di metterlo in .profile io devo proprio dire no. 
Le fonti ufficiali così dicono. Se poi funziona lo stesso (se avete
visto quale è il problema tipico ci credo che funziona) buon per voi.


Non č questione di "fare come voglio", ma di cercare di capire; in questo
caso di capire cosa posso mettere in .profile e cosa in .bashrc. Caspita,
per me sarebbe molto piů comodo avere tutto in un unico file - .bashrc -:
funzioni, alias e export! Soprattutto per farmi un backup (che ho chiamato
alias.txt) e che allo stato attuale mi comporta un cat .profile .bashrc >
alias.txt.
Ora ho un PC davanti ma se mi dici che posso mettere tutto in .bashrc a casa
lo faccio. E elimino anche il .profile che rimarrebbe vuoto.


 caso di capire cosa posso mettere in .profile e cosa in .bashrc.
Non basarti troppo sulla documentazione tratta da Linux,
comunque: il Terminale di Mac OS X avvia la bash come
shell di login mentre xterm sotto X11 no.

 lo faccio. E elimino anche il .profile che rimarrebbe vuoto.
Alura.
.bashrc e' il file di configurazione di _BASH_ la Bourne Again Shell,
che da mi pare 10.3 in poi e' il default per OS X.
.profile e' invece un file di configurazione usato da tutte le shell
compatibili con la shell di Bourne originale (ivi incluso ad esempio
zsh, che mi pare NON esegua bashrc apposta).
Dato che io mi alterno con le shell, preferisco tenere tutto in
.profile. Ma se vuoi puoi usare .bashrc. Nulla impedisce.
 - ∞

 zsh, che mi pare NON esegua bashrc apposta).
zsh legge:
1) /etc/zshenv
2) ~/.zshenv
Se di login:
3) /etc/zprofile
4) $ZDOTDIR/.zprofile
se interattiva
5(3)) /etc/zrc
6(4)) $ZDOTDIR/.zshrc
se di login
7(5)(3) /etc/zlogin
8(6)(4) $ZDOTDIR/.zlogin
ZDOTDIR se non specificato defaulta a HOME
In effetti io ho un file .profile, ho usato zsh e non viene eseguito.
Forse se forzi zsh per comportarsi come una shell posix, ma non ho tempo
di cercare nel manuale (e a sboccio non mi pare ne faccia cenno, anzi,
dove elenca i files di configurazione sono chiamati in causa solo quelli
di cui sopra).


 di cui sopra).
Sono pirla >_<
Immaginavo, purtroppo, e ho immaginato male.
 - ∞

 Immaginavo, purtroppo, e ho immaginato male.
Probabilmente ti ha tratto in inganno il fatto che se chiami bash come
sh, allora viene eseguito solo .profile. Stesso discorso per ash (che
praticamente è il clone libero della Bourne Shell -- la cosidettà ashell
-- da leggere senza pensare).
Non solo. Quel file viene letto pure da ksh. Insomma, effettivamente più
o meno tutte le shell di derivazione Bourne in qualche modo lo usano.
Tranne zsh, ma è un'eccezione [ esattamente come è un'eccezione la
raffinatezza di .zshenv ].
