Personalizzazioni
Pronto della Shell
Due variabili d'ambiente principali:
PS1
- pronto primario- Diverso in diverse versioni di Unix, si può settare
PS2
- pronto di continuazione, quando il comando non è terminato o vi sono stringhe aperte- Default "
>
", meglio non cambiarlo
- Default "
La Bash ha altri due pronti molto meno usati:
- PS3 - pronto di select
- PS4 - pronto di shell debugging
Settare il pronto primario:
PS1='stringa'
Valido nella shell corrente (eventualmente: .bashrc
)
La stringa può contenere valori di variabili d'ambiente o segnalini
Pronto: esempi
PS1='comanda padrone '
- Massaggio dell'ego
PS1='c:$PWD> '
- Emulazione di Windows - la directory corrente completa può diventare molto lunga
PS1='\u@\h:\w $ '
- Chi sono, in che computer sono, in che directory di base sono e sono un utente normale
PS1='\u@\h [$(date +%H:%M:%S)]> '
- Chi sono, dove sono e che ore sono
PS1='\e[42m \e[47m \e[41m \e[0m > '
- Patriottico
PS1="\n\e[42m \e[47m \e[41m \e[0m \u@\h:\w $([ $UID -eq 0 ] && echo \# || echo \$) "
- Due linee, patria, id, host, dir e se sono root o no
Alias
Sostituzione di una stringa con un'altra.
alias dir='ls -l'
Lo alias ha precedenza sui comandi, anche interni:
alias cd..='cd ..'
alias date='date +%d/%m/%y'
Ma attenzione ai riferimenti circolari o di comandi preesistenti:
alias time='date +%H:%M:%S'
- Quali alias sono definiti:
alias
- Definizione di un particolare alias:
alias date
- Cancellazione di un alias:
unalias date
Gli alias vanno configurati in:
~/.bash_profile
in RHEL~/.bash_aliases
in Debian/Ubuntu
NB: ~
identifica la directory di login
Storia dei Comandi
- Richiamare il comando precedente: freccia su
- Si può quindi editare e lanciare
- Premere INVIO ovunque, non serve andare alla fine
- Rilanciare il comando precedente senza editare:
!-1
oppure!!
- Rilanciare l'ultimo comando che iniziava con ls:
!ls
- Rilanciare l'ultimo comando che conteneva la stringa 192:
!?192
- Visualizzare la storia dei comandi:
history
- Rilanciare il comando 42:
!42
Lanciare il comando stat con l'argomento dell'ultimo comando:stat !$
- Verificare senza lanciare:
!!:p !42:p !?192:p
ecc. - Cancellare la storia:
history -c
La storia dei comandi viene conservata in memoria in un buffer
- La dimensione è data dalla variabile d'ambiente
HISTSIZE
Alla chiusura del terminale il buffer è salvato in append in un file della directory di login
- Nome dato dalla variabile d'ambiente
HISTFILE
- Default:
.bash_history
- Dimensione massima del file data dalla variabile d'ambiente
HISTFILESIZE
Variabili d' Ambiente
Personalizzano il comportamento di comandi ed utilities
printenv
- lista tutte le variabili d'ambiente correntiexport VAR=valore
- crea una variabile di nome VAR e dato valore e la esporta all'ambiente- per convenzione le variabili d'ambiente hanno nome maiuscolo
- tutti i comandi successivi la conoscono
unset VAR
- cancellare una variabile
Non tutte le variabili d'ambiente potenzialmente utili sono già settate
Se una variabile d'ambiente non è settata, il programma che eventualmente la usa ha un comportamento di default
Esempi di Variabili d'Ambiente
less file
Si può entrare in editazione con il comando less v
che invoca:
- l'editor definito nella variabile d'ambiente
EDITOR
se esiste vi
onano
di default in Red Hat
man comando
man
visualizza schermate usando il paginatore definito nella variabile d'ambiente PAGER
se esiste oless
di default
Configurazioni
Files o directories che si trovano nella directory di login dell'utente
Tipicamente sono nascosti: iniziano con .
(punto)
.bash_profile
- comandi eseguiti al login con la Bash shell.bashrc
- comandi eseguiti al lancio della Bash shell (p.es. nuova finestra di terminale).ssh
- directory con i settaggi dell'utilityssh
ls -a
- listare i file nascostisource .bash_profile
- rieseguire la procedura.bash_profile
dopo un cambiamento per non compiere relogin- Ma le utilities non shell (grafiche, ecc.) non hanno sentito i cambiamenti