[About] [Copertina] |
Articoli
Ora proverò a configurare anche picasso, seguendo la traccia di quanto fatto per Slackware, così da evidenziarne le differenze.
Intanto notiamo subito la diversa impostazione dei file di startup.
Slackware raccoglieva tutto nel direttorio /etc/rc.d
, mentre
Red Hat aggiunge un livello intermedio /etc/rc.d/rc?
dove
il ?
rappresenta il numero dell'init level. Questi direttori
contengono solo dei link simbolici agli script che invece sono posti
in /etc/rc.d/init.d
. Questo consente di dotare ciascuno
script di un peso diverso a seconda dell'init level,
semplicemente usando nomi diversi per i link simbolici. Questo è
lo standard nel System V, ed è usato anche da Debian. Slackware invece
rimane fedele al BSD.
Questi script sono un bel pò più scaltri di quelli di Slackware,
infatti evitano di usare sleep
dopo aver smontato i filesystem,
e non necessitano di modifiche per l'ora del sistema; interrogano
direttamente il bios.
Creo il solito /etc/fstab
, non senza notare come Red Hat
preferisca concentrare i mount point come sottodirettori di /mnt
piuttosto che direttamente sotto /
. Tutto è più pulito ed ordinato,
ma mi sembra troppo scomodo da usare. E` bello invece il fatto che non
mi sia necessario montare esplicitamente queste nuove partizioni
aggiungendo una riga in rc. Un passo in avanti.
Manca invece il lancio di gpm
che Slackware aggiunge all'installazione,
mentre tutti mancano della solita pulizia di /tmp
rm -rf /tmp
if [ ! -d /tmp ]
then mkdir /tmp
chmod 1777 /tmp
fi
Questa è una cosa molto personale, ma io, sempre in attesa di configurare
un giorno /tmp
come ramdisk, voglio esser certo di non
prendere brutte abitudini, quali quella di mettere (e lasciare) cose
importanti sotto /tmp
.
Vediamo il profilo della shell. Si distingue tra /etc/profile
,
comune a tutte le shell di tipo bourne
e /etc/bashrc
,
usato solo da bash
. La cosa mi suona strana. Un'occhiata alla
pagina del manuale di bash mi conferma il sospetto, che diventa prova
certa dopo una occhiata al contenuto di ~/.bashrc
.
La lettura di /etc/bashrc
avviene grazie ad una apposita
riga inserita in ~/.bashrc
. Sembra una cosa pulita, fatta
per consentire ad un utente di scegliere se eseguire o meno quello
script, ma ... quando si esegue una subshell l'ambiente non è più
quello proprio di bash
, come mi aspetterei, ma quello ristretto
di sh
, che invece mi aspetterei solo invocando /bin/sh
.
La cosa può essere pericolosa, in quanto lo stesso script può comportarsi
diversamente a seconda del livello di nidificazione delle shell, oppure
a seconda se la shell è una shell di login oppure no.
Per ovviare a questo inconveniente ho posto in /etc/bashrc
la
riga
alias sh="/bin/bash"
in modo che ogni chiamata a sh
da una shell di login sia convertita
in una chiamata a bash
, mentre gli script che richiedono la possono
(e debbono) correttamente invocare come #!/bin/sh
.
In questo script poniamo tutte quelle personalizzazioni che ho fatto anche per Slackware, con qualcosina in più:
export TTY=$(tty | xargs basename)
mi fornisce una variabile con la più corta parte identificante il terminale
su cui agisco. E` molto comoda in ambienti a terminali multipli, come
le console virtuali di Linux o le xterm di X. Così posso usare questo prompt:
if [ "$SHELL" = "/bin/bash" ]
then if [ "$TERM" = "xterm" ]
then
xsize()
{
set -- $(stty size)
export SIZE="$2 x $1"
xtitle
}
xtitle()
{
if [ "$TERM" = "xterm" ]
then echo -ne "\033]2;$TTY $SIZE $PWD\007"
fi
}
export -f xsize xtitle
export PROMPT_COMMAND="xtitle" # esegue xtitle ad ogni prompt
trap xsize SIGWINCH # esegue xsize ad ogni resize
xsize # solo per la prima volta
PS1="\u@\h [\d \t]\n$SHLVL\\$ "
else # terminale o console
PS1="$TTY:\u@\h \w [\d \t]\n$SHLVL\\$ "
fi
fi
Questo mostra al prompt le solite informazioni (più il nome del terminale),
che invece, in caso di xterm, suddivide tra prompt vero e proprio e titolo
della finestra, in cui compaiono il nome del terminale, le dimensioni della
finestra ed il direttorio corrente. C'è a chi piace.
Provvediamo ad un alias tra ls
e dircolors
. Mi piacerebbe indagare sui
retroscena di questo divorzio che ha impedito la creazione di un
pacchetto ufficiale GNU per l'ls
colorato di Linux.
[About] [Copertina] |