Gentoo Logo

Guida alla configurazione e installazione di zsh

Indice:

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

(Sostituire gentoo con il prompt che si è scelto)
% 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"

(La cronologia non verrà salvata senza il seguente comando)
% 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

(Questo comando non verrà registrato. Notare lo spazio in più prima di esso.)
%  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

(Aggiungere la seguente riga al proprio ~/.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

(Sostituire "nomeutente" con il proprio nome utente)
$ chsh -s /bin/zsh nomeutente


Stampa

Aggiornato il 18 ottobre 2006

La versione originale di questo documento non è più mantenuta

Oggetto: Questa guida mostra come installare e configurare velocemente zsh. Dopo aver letto questo documento si avranno le conoscenze per usare molte delle caratteristiche di zsh, come l'avanzato completamento tramite tabulazione, la correzione automatica dei comandi e la gestione avanzata del prompt.

Henryk Konsek
Autore

Andrew Morritt
Autore

Chris White
Redazione

Peter Weller
Redazione

Davide Cendron
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.