Guida alla configurazione e installazione di zsh
1.
Installazione
Installare zsh
Per installare zsh in Gentoo, si devono installare i pacchetti
app-shells/zsh (zsh stesso) and app-shells/zsh-completion (script
di completamento per zsh) tramite emerge.
Codice 1.1: Emergere zsh |
# emerge zsh zsh-completion
|
Entrare in zsh
Al primo avvio di zsh, verrà visualizzato il seguente messaggio. Si può
saltare questo menù poichè verrà creato un file di inizializzazione nella parte
successiva delle guida.
Codice 1.2: Saltare la configurazione iniziale |
$ zsh
This is the Z Shell configuration function for new users, zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~). This function can help you with a few settings that should
make your use of the shell easier.
You can:
(q) Quit and do nothing. The function will be run again next time.
(0) Exit, creating the file ~/.zshrc containing just a comment.
That will prevent this function being run again.
(1) Continue to the main menu.
--- Type one of the keys in parentheses --- q
|
2.
Configurazione
Introduzione
Per avviare zsh per una singola sessione, eseguire zsh. Per una soluzione
più permanente si deve fare riferimento al capitolo Salvare le impostazioni. Dopo l'installazione,
zsh apparirà molto semplicistico e alquanto limitato nell'ambito delle
funzionalità. Per modificare questa situazione, si dovranno apportare diversi
cambiamenti alla configurazione.
Completamento Avanzato tramite Tabulazione
Per abilitare il famoso sistema di completamento tramite tabulazione di
zsh, si devono eseguire i seguenti comandi:
Codice 2.1: Abilitare il completamento |
% autoload -U compinit
% compinit
|
Lo stile predefinito dell'autocompletamento è alquanto grezzo e non molto bello
esteticamente. Se si vuole migliorare il suo aspetto, eseguire i seguenti
comandi:
Codice 2.2: Miglioramenti dello stile del completamento |
% zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
% zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'
|
Correzione dei comandi
Un'altra buona idea è di abilitare l'auto-correzione per i comandi digitati:
Codice 2.3: Abilitare la correzione |
% setopt correctall
|
Prompt
Il prompt predefinito potrà apparire abbastanza banale, lo si potrà comunque
sistemare facilmente tramite alcuni passaggi. Per prima cosa si dovrà
inizializzare il supporto per i prompt avanzati:
Codice 2.4: Abilitare i prompt avanzati |
% autoload -U promptinit
% promptinit
|
Esempi di prompt disponibili possono essere visualizzati tramite il comando
prompt -p. A questo punto si può attivare quello che si preferisce:
Codice 2.5: Scegliere un prompt di esempio |
% prompt gentoo
|
Nota:
Se si stanno sperimentando diversi prompt, ma non si vuole vedere un esempio
per ognuno di essi, si può eseguire prompt -l per elencare i prompt
disponibili.
|
Un'altra opzione è quella di creare il proprio prompt personale, tramite
l'impostazione della variabile d'ambiente PS1.
Codice 2.6: Un semplice prompt personalizzato |
% export PS1="[Test Prompt] > "
[Test Prompt] >
|
Oltre ad essere adatto per creare un prompt di testo personalizzato, zsh
fornisce inoltre molte sequenze escape che permettono di inserire le
informazioni di sistema nel prompt. Queste sono alcune delle sequenze di escape
disponibili:
| Sequenza |
Stampato |
| %T |
Orario di sistema (HH:MM) |
| %* |
Orario di sistema (HH:MM:SS) |
| %D |
Data di sistema (YY-MM-DD) |
| %n |
Proprio nome utente |
| %B - %b |
Inizio - fine stampa in grassetto |
| %U - %u |
Inizio - fine sottolineato |
| %d |
La directory di lavoro corrente |
| %~ |
La directory di lavoro corrente, relativa a ~ |
| %M |
L'hostname del computer |
| %m |
L'hostname del computer (troncato prima del primo punto) |
| %l |
Il tty corrente |
Queste sequenze d'escape possono essere semplicemente inserite nella variabile
d'ambiente PS1, e zsh ne effettuerà il parsing automaticamente.
Codice 2.7: Un prompt più complesso |
% export PS1="[%* - %D] %d %% "
[08:44:23 - 06-02-18] /home/username %
|
Cronologia
Sfortunatamente, la configurazione predefinita di zsh in Gentoo non include il
supporto alla cronologia dei comandi. Lavorare con una shell senza cronologia
può essere molto frustrante, per ovviare a questa mancanza si dovranno eseguire
i seguenti comandi:
Codice 2.8: Configurazione di base per la cronologia |
% export HISTSIZE=2000
% export HISTFILE="$HOME/.history"
% export SAVEHIST=$HISTSIZE
|
Per prevenire che la cronologia memorizzi delle voci duplicate (tipo ls
-l digitato molte volte di seguito in una singola sessione di shell), si
può impostare l'opzione hist_ignore_all_dups:
Codice 2.9: Impostare la cronologia per prevenire la memorizzazione delle voci duplicate |
% setopt hist_ignore_all_dups
|
Un trucco molto utile è prevenire la registrazione nella cronologia di
particolari voci facendo precedere al comando almeno uno spazio.
Codice 2.10: Prevenire la registrazione di voci particolari |
% setopt hist_ignore_space
% cat /proc/cpuinfo
|
Opzioni varie
Si può impostare l'opzione autocd se si vuole evitare la fastidiosa
digitazione del comando cd mentre si vuole cambiare la directory di
lavoro corrente (per esempio /etc invece di cd /etc).
Codice 2.11: Impostare l'opzione autocd |
% setopt autocd
|
Se il globbing standard in stile bash non dà soddisfazione, si può attivare
l'opzione extendedglob per abilitare il globbing esteso (simile alle
espressioni regolari).
Codice 2.12: Impostare il globbing esteso |
% setopt extendedglob
|
Dopo aver impostato questa opzione, si potranno eseguire interrogazioni globbing
estese tipo cp ^*.(tar|bz2|gz).
3.
Salvare le impostazioni
Salvare le impostazioni di zsh
Dopo aver adattato zsh alle proprie necessità, è una buona idea salvare
queste opzioni come le predefinite di zsh per tutto il sistema. Un modo
per farlo è di scrivere le impostazioni personalizzate nello script
/etc/zsh/zshrc. In alternativa, si potranno rendere predefinite le
impostazioni solamente per il proprio utente modificando ~/.zshrc.
Codice 3.1: Esempio per zshrc |
#!/bin/zsh
# autocompletamento
autoload -U compinit
compinit
# autocorrezione
setopt correctall
# prompt
autoload -U promptinit
promptinit
prompt gentoo
|
4.
Impostare zsh come shell predefinita
Opzione per gli utenti con privilegi di root
Si potrà cambiare shell per un dato utente tramite il comando usermod.
Codice 4.1: Migrare permanentemente a zsh tramite usermod |
# usermod -s /bin/zsh userlogin
|
Alternativa per gli utenti non-root
Se il proprio amministratore di sistema (malgrado gentile richiesta) si rifiuta
di impostare la shell del vostro utente a zsh, si può far eseguire zsh a
bash durante l'avvio, l'unica operazione da fare sarà una leggera
modifica al proprio ~/.bashrc.
Codice 4.2: Esempio per ~/.bashrc |
exec zsh
|
Un'altro metodo per cambiare le shell è usare il comando chsh (uno
strumento usato per cambiare la shell di login di un utente). Un normale utente
potrà solamente cambiare la propria shell di login. Come utente root, invece, si
potrà cambiare la shell di login per qualsiasi utente.
Codice 4.3: Migrare permanentemente a zsh tramite chsh |
$ chsh -s /bin/zsh nomeutente
|
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|