La shell sh(1) usa il file di inizializzazione .profile posto nella home directory dell'utente. Inoltre può esserci un file di inizializzazione globale del sistema, esempio /etc/profile. In tal caso, il file globale del sistema sarà eseguito prima di quello locale.
Un semplice file .profile potrebbe essere come il seguente:
PATH=/usr/bin:/usr/ucb:/usr/local/bin:. # setta il PATH export PATH # rende disponibile PATH per le sotto-shell # setta il prompt PS1="{`hostname` `whoami`} " # setta il prompt, $ di default # funzioni ls() { /bin/ls -sbF "$@";} ll() { ls -al "$@";} # setta il tipo di terminale stty erase ^H # setta Control-H come tasto di cancellazione eval `tset -Q -s -m ':?xterm'` # richiede il tipo di terminale, presupponendo # xterm # umask 077
Ogni volta che si incontra il simbolo #, il resto di quella linea viene trattato come un commento. Nella variabile PATH ogni directory è separata da due punti (:) e il punto (.) specifica che la directory corrente è nel proprio path. Se il punto non è nel proprio path, lo stesso diventa un semplice elemento per eseguire un programma nella directory corrente:
./programma
Non è una buona idea avere il punto (.) nel proprio PATH, in modo tale da non eseguire inavvertitamente un programma senza averne l'intenzione quando si usa il comando cd per spostarsi in differenti directory.
Una variabile settata in .profile rimane valida solo nel contesto della shell di login, a meno che la si esporti con export o si esegua .profile in un'altra shell. Nell'esempio precedente PATH viene esportato per le sotto-shell. Si può eseguire un file con il comando built-int . di sh(1), esempio:
. ./.profile
Si possono creare proprie funzioni. Nell'esempio precedente la funzione ll, risultato di ls -al, lavora su un specifico file o directory.
Con stty(1) il carattere di cancellazione viene settato a Control+H, che è usualmente il tasto di Backspace.
Il comando tset(1) richiede il
tipo di terminale e assume questo a xterm se si conferma con
invio <CR>. Questo comando è eseguito con un comando
built-in di shell, eval, che prende il risultato del comando tset(1) e lo usa come
argomento per la shell. In questo caso l'opzione -s
di tset(1) setta le
variabili TERM e TERMCAP e le
esporta.
L'ultima linea nell'esempio richiama il comando umask, facendo in modo che i file e le directory create non abbiano i permessi di lettura-scrittura-esecuzione per l'utenza gruppo e altri.
Per altre informazioni su sh(1), digitare man sh 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>.