Questo documento proviene da , sito da tempo dismesso. La sua documentazione è qui pubblicata in modo tale che non vada persa e che possa quindi continuare a essere utile come lo era un tempo su FreeBDI.org.
Non basta installare dai ports o dai binari una “bash”, la shell su cui molti di voi son abituati da tempo ma bisogna creare alcuni files nelle nostre home-dir per configurare a dovere la bourne shell. Se invece decidessimo di tenere la shell proposta da FreeBSD , ossia la csh (linkata fra l’altro a tcsh, quindi son la stessa shell), dovremo solo preoccuparci di modificare .cshrc e .profile ad esempio.
Inizialmente su FreeBSD la bash non è neppure installata, ma dato che a me (ed a molti piace), la installeremo al volo dai ports con il comando:
#cd /usr/ports/shells/bash2 && make install clean"
A questo punto la prima cosa da fare è verificare se il file /etc/shells è aggiornato con il path dell’eseguibile della nostra nuova bash:
#less /etc/shells
e se fra le varie
/bin/sh /bin/csh /bin/tcsh /usr/local/bin/ksh /usr/local/bin/bash /sbin/nologin
ci fosse il path della bash (/usr/local/bin/bash) sarebbe tutto ok, altrimenti lo aggiungeremo noi esattamente come indicato sopra. Ora proviamo dal prompt della nostra esistente csh (% = utente , oppure # = root) a lanciare una bash con il comando “#bash”. Ci dovrebbe apparire un prompt:
bash-2.05$
il che vuol dire che è installata in modo corretto.
Ora facciamo in modo che i nostri utenti al boot della macchina usino la bash con il comando “chsh“. Da root eseguiamo (ad es. con un utente pippo e root):
#chsh -s bash pippo #chsh -s bash root
A questo punto non resta che configurarla a dovere anche se è una cosa abbastanza personale io vi do in pasto questi files da creare e/o modificare nella vostra home utente (ed anche root), tanto per aver un’idea di cosa possiamo fare. Con questi files ho settato il prompt differente, in modo che in ogni momento sai in che dir sei, cioè un prompt del tipo:
(bash) k7 10:16:59 /usr/local/bin #
ed anche i colori in shell pura ad ogni “ls” ecc.. Vi ricordo che questi son file di configurazione, ossia generalmente nascosti (questi lo sono), infatti cominciano tutti con un . (punto) e sono: .bash_profile, .bashrc, .cshrc e .profile.
---------------.bash_profile (nuovo da creare)---------------- # Bourne Again SHell configuration file for login shells. PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/bin:/usr/local/sbin:/usr/X11R6/ bin:/usr/local/lib/php ; export PATH # file permissions: rwxr-xr-x umask 022 BLOCKSIZE=K; export BLOCKSIZE EDITOR=aee; export EDITOR PAGER=/usr/bin/less; export PAGER LANG=it_IT.ISO_8859-1; export LANG #TERM=xterm-color; export TERM # set ENV to a file invoked each time bash is started for interactive use. ENV=$HOME/.shrc; export ENV # some useful aliases alias h='fc -l' alias j=jobs alias l=$PAGER alias ll='ls -la -FG' alias l='ls -l -FG' alias ls='ls -FG' alias g='egrep -i' alias df='df -H' alias du='du -s -h' alias mc='mc -c' alias xterm='xterm -bg black -fg white' alias licq='licq -- -noxim' alias aterm='aterm -tr -trsb -tint cyan -sh 25 -fg lightgrey -txttype Invert -cr grey' # set prompt #PS1="[u@h] w $ " #PS1="u@h w !$ " PS1="h (bash) [$(tput md)] w[$(tput me)] $" PS2=">" # search path for cd(1) # CDPATH=.:$HOME [ -x /usr/games/fortune ] && /usr/games/fortune italia && /usr/games/fortune freebsd-ti ps -------------------------------------------------------------------------- -----------------.bashrc (nuovo da creare)-------------------------------- # .bashrc - Bourne Again SHell configuration file for interactive shells. # file permissions: rwxr-xr-x umask 022 #PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/bin:/usr/local/sbin:/usr/X11R6 /bin:/usr/local/lib/php:/usr/local/linux-sun-jdk1.3.1/bin; #export PATH BLOCKSIZE=K; export BLOCKSIZE EDITOR=aee; export EDITOR PAGER=/usr/bin/less; export PAGER LANG=it_IT.ISO_8859-1; export LANG TERM=xterm-color; export TERM # some useful aliases alias h='fc -l' alias j=jobs alias l=$PAGER alias ll='ls -la -FG' alias l='ls -l -FG' alias ls='ls -FG' alias g='egrep -i' alias df='df -H' alias du='du -s -h' alias mc='mc -c' alias xterm='xterm -bg black -fg white' alias licq='licq -- -noxim' alias aterm='aterm -tr' # set prompt #PS1="[u@h] w $ " #PS1='([$(tput md)] [$(tput me)]) $(echo $?) $ ' PS1='h [$(tput md)] w[$(tput me)] $' PS2=">" # search path for cd(1) # CDPATH=.:$HOME --------------------------------------------------------------
ATTENZIONE: la variabile di sistema LANG ci permette di settare l’internazionalizzazione (in questo caso in italiano) dell’intero sistema visto dall’utente in questione.
Mentre la variabile TERM=xterm-color, nel caso della bash va settata SOLO ED ESCLUSIVAMENTE nei files ~/.bashrc e ~/.xinitrc, in quanto verrà “presa” solo dalla sessione X. In shell pura la variabile di sistema TERM dovrà SEMPRE risultare in questo caso cons25.
I valori delle variabili impostate vengono visualizzati dal prompt di shell col comando:
$echo $TERM (per la variabile TERM in questo caso e cosi’ via ).
-------------.cshrc (esistente da modificare se si decide di usare questa al posto di bash)----- # $FreeBSD: src/etc/root/dot.cshrc,v 1.25.2.2 2001/03/05 13:36:53 asmodai Exp $ # # .cshrc - csh resource script, read at beginning of execution by each shell # # see also csh(1), environ(7). # alias h history 25 alias j jobs -l alias la ls -a alias lf ls -FA alias ll ls -lA alias licq licq -- -noxim # A righteous umask umask 22 set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr /local/linux-sun-jdk1.3.1/bin /usr/X11R6/bin /usr/local/lib/php ) setenv EDITOR aee setenv PAGER less setenv BLOCKSIZE K #setenv TERM xterm-color setenv LANG it_IT.ISO8859-1 if ($?prompt) then # An interactive shell -- set some stuff up set prompt = "csh-k7 %w $ " set filec set history = 500 set savehist = 500 set mail = (/var/mail/$USER) if ( $?tcsh ) then bindkey "^W" backward-delete-word bindkey -k up history-search-backward bindkey -k down history-search-forward endif endif [ -x /usr/games/fortune ] && /usr/games/fortune -s ------------------------------------------------------------------------------------
ATTENZIONE: Poco tempo fa, quando si installava la bash-2.05 dai ports, (da FreeBSD naturalmente), veniva automaticamente aggiunta una opzione ai vari ~/.cshrc di tutti gli utenti… a dir poco “perversa” (!). La stringa in questione veniva aggiunte sul fondo di .cshrc ed era esattamente:
[ -x /usr/local/bin/bash ] && exec /usr/local/bin/bash
Controllate nei vostri .cshrc se avete questa opzione e commentatela oppure (meglio) toglietela, in quanto è causa di problemi al boot del sistema, nel caso un giorno sceglieste di ritornare ad usare la csh, modificando semplicemente i settaggi di user (soprattutto root) con il comando “chsh -s csh root”, oppure modificando /etc/master.passwd con “vipw”. Attualmente infatti con le nuove versioni (4.7 al momento in cui scrivo), questa stringa NON viene piu’ applicata (e ti credo!!!). Questa cosa da problemi (verificato personalmente) se avete settato l’avvio di PPP (o PPPoE – è lo stesso) in automatico all’interno di /etc/rc.conf.
--------------------------.profile (esistente da modificare)------------------ # $FreeBSD: src/etc/root/dot.profile,v 1.20 1999/08/27 23:24:09 peter Exp $ # PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/lo cal/lib/php:/usr/local/linux-sun-jdk1.3.1/bin export PATH #HOME=/root #export HOME TERM=${TERM:-cons25} export TERM PAGER=less export PAGER LANG=it_IT.ISO_8859-1 export LANG ------------------------------------------------------------------
Questa è una variante di “anathx” : Per far funzionare, (credo che funzioni solo per la bash) le lettere accentate della tastiera italiana sia in “shell pura” che in X e xterm vari, si deve creare nelle home_dir degli utenti (/root compresa quindi come di norma) il file “.inputrc“:
------------------------------------ set meta-flag on set convert-meta off set output-meta on ------------------------------------
Non vi resta che fare un sano COPIA/INCOLLA di tutto, uscire dalla shell e da X e riloggarvi da capo per vedere i cambiamenti. Non è necessario riavviare il sistema.
P.S. Un accorgimento utilissimo per fare lo “scrolling” della bash è quello di usare il tasto “Bloc Scorr” (quello in mezzo ai tasti “stamp” e “Pausa” in alto a destra, fra il tastierino numerico e le lettere). Naturalmente dopo aver premuto suddetto tasto, bisogna usare le freccette su e giù oppure pag-up e pag-down ma per sfortuna, non risale di molte righe…quindi dovremo usare il comando:
"#kbdcontrol -h 1000
se vogliamo farlo “risalire” di 1000 righe
Per far sì che ad ogni avvio sia settatto di default questo comando, dobbiamo inserire in “/etc/rc.conf” la riga:
allscreens_kbdflags="-h 1500"
Per quanto riguarda la configurazione shell in /etc/rc.conf vi butto questo esempio usato da me; (naturalmente per vedere il significato delle varie stringhe fate riferimento all’importantissimo “/etc/defaults/rc.conf“:
------------parte di /etc/rc.conf----------- keymap="it.iso" keyrate="fast" keybell="visual" saver="logo" #vedi man moused moused_enable="YES" moused_port="/dev/psm0" moused_type="auto" #vedi man vidcontrol allscreens_flags="-g 100x37 VESA_800x600 green" allscreens_kbdflags="-h 1600 -r fast" font8x16="iso-8x8" font8x14="iso-8x14" font8x8="iso-8x16" clear_tmp_enable="YES" -------------------------fine-----------------
Riferimenti docs:
- man shells (riferito ad /etc/shells)
- man bash (molto lungo e molto criptico…un vero manuale)
- man csh