La shell C, csh(1), usa i file di inizializzazione
.cshrc
e .login
. Alcune
versioni usano un file di inizializzazione globale del sistema, ad
esempio /etc/csh.login
. Il proprio file
.login
è eseguito solamente quando si effettua
il login. Il proprio file .cshrc
è eseguito
ogni volta in cui si avvia una shell csh(1), incluso quando si
effettua il login. Questo file ha molte caratteristiche simili al file
.profile
, ma un differente modo di composizione.
Qui si usano i comandi set
o setenv
per inizializzare una variabile, dove set
viene usato
per definire una variabile solo per la shell corrente, mentre
setenv
definisce una variabile per la shell corrente e
per le altre sotto-shell. Le variabili di ambiente
USER
, TERM
e PATH
sono automaticamente importate ed esportate dalle variabili
user
, term
e path
della shell csh(1). Quindi setenv
non è
necessario per queste variabili. La shell C usa il simbolo ~ per indicare
la directory home dell'utente in un path, come in
~/.cshrc
o per specificare una directory di login di
un altro utente, come in
~username/.cshrc
.
Alcune variabili predefinite usate dalla shell C sono:
argv | La lista degli argomenti della shell corrente |
cwd | La directory di lavoro corrente |
history | Imposta la dimensione della lista di history (storia) da memorizzare |
home | La directory home dell'utente, visualizzabile con
$HOME |
ignoreeof | Quando viene settata, EOF (Ctrl+D) viene ignorato dal terminale |
noclobber | Quando viene settata si impedisce di redirigere l'output per sovrascrivere file esistenti |
noglob | Quando viene settata si impedisce l'espansione dei nomi di file all'interno di un confronto con uno schema wild card |
path | I path di ricerca dei comandi, visualizzabile con
$PATH |
prompt | Setta il prompt della linea di comando (% di
default) |
savehist | Numero di volte (di login) che bisogna mantenere memorizzata
la lista di history nel file .history |
shell | Il path name completo della shell corrente, visualizzabile
con $SHELL |
status | Il codice di stato di uscita dell'ultimo comando (0=uscita normale, 1=comando fallito) |
term | Il proprio tipo di terminale, visualizzabile con
$TERM |
user | Il proprio nome utente, username, visualizzabile con
$USER |
Un semplice file .cshrc
potrebbe essere come il
seguente:
set path=(/usr/bin /usr/ucb /usr/local/bin ~/bin . ) # setta il path set prompt = "{`hostname` `whoami` !} " # setta il promt primario ; # % di default set noclobber # non redirige l'output su file esistenti set ignoreeof #ignora EOF (Ctrl+D) in questa shell set history=100 savehist=50 # mantiene una lista history di comandi e la # memorizza tra vari (50) login # alias alias h history # alias h per history alias ls "/usr/bin/ls -sbF" # alias ls per ls -sbF alias ll ls -al # alias ll per ls -sbFal (combina queste # opzioni con quelle di ls sopra citate) alias cd 'cd \!*;pwd' # alias cd per stampare la directory di lavoro # corrente dopo aver cambiato directory umask 077
Alcune nuove caratteristiche che non sono state viste nel
file .profile
(shell sh(1)) sono
noclobber
, ignoreeof
e
history
. Noclobber
indica che
l'output non può essere rediretto su un file esistente, mentre
ignoreeof
specifica che EOF (
Ctrl+D) non causa l'uscita dalla shell di login o l'uscita dal
sistema.
Con la caratteristica di history si possono richiamare comandi eseguiti precedentemente e rieseguirli, eventualmente con dei cambiamenti.
Un alias permette di usare uno specifico nome
alias al posto del comando completo. Nell'esempio
precedente, il risultato di digitare ls
sarà
quello di eseguire /usr/bin/ls -sbF
. Si può
verificare quale comando ls
è nel proprio path
con il comando which(1), ad esempio:
%
which ls
ls: alias di /usr/bin/ls -sbF
Un semplice file .login
potrebbe essere come il
seguente:
# .login stty erase ^H # setta Control+H come tasto di eliminazione set noglob # impedisce un confronto con uno schema wild card eval `tset -Q -s -m ':?xterm'` # chiede il tipo di terminale presupponendo # xterm unset noglob # riabilita un confronto con uno schema wild card
Abilitando e disabilitando noglob
intorno a
tset(1) si impedisce di confondere il tipo di terminale con
qualche espansione dei nomi di file in un confronto con uno schema
(pattern) wild card.
Se si effettuano cambiamenti al proprio file di inizializzazione,
questi possono essere attivati eseguendo il file modificato. Per la shell
csh(1) questo è possibile attraverso il comando
built-in source
, esempio:
source .cshrc
Per altre informazioni circa la shell csh(1) digitare
man csh
al prompt di shell.
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Per domande su FreeBSD, leggi la
documentazione prima di contattare
<questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a
<doc@FreeBSD.org>.