Personalizzazioni

Shell1

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

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 correnti
  • export 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 o nano 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'utility ssh

  • ls -a - listare i file nascosti

  • source .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

results matching ""

    No results matching ""