Home / Istruzioni / Zsh  Not f'd - you won't find me on Facebook  Identi.ca  Twitter  YouTube  Flickr  Instagram  LinkedIn  Reddit  Social

La Z shell (zsh)

Installazione e configurazione

La Z shell (zsh) e' una shell interattiva potente e flessibile che puo' essere usata al posto della piu' diffusa bash. Per installarla su Debian e' sufficiente il comando da terminale:
apt-get install zsh
Per utilizzarla al meglio si possono scaricare temi e plugin da oh-my-zsh. Per installare il tutto conviene usare git, se non lo avete, installatelo:
apt-get install git
e adesso clonate:
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
creiamo il file di configurazione di zsh usando come base quello di Oh My ZSH:
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
e cambiamo la shell di default impostando Zsh (al posto di USERNAME scrivete l'utente a cui volete modificare la shell di default):
chsh -s $(which zsh) USERNAME

Ora dobbiamo aprire il file di configurazione:
nano ~/.zshrc
possiamo apportare delle modifiche, come ad esempio scegliere il tema:

ZSH_THEME='NOMETEMA'

Possiamo anche crearci un nostro tema.

Creazione di un tema

Per crearci un tema dobbiamo prima di tutto creare la sottodirectory themes in ~/.oh-my-zsh/custom/:
mkdir ~/.oh-my-zsh/custom/themes
e creiamo il file:
touch NOMETEMA.zsh-theme
A questo punto create il vostro tema. Io ho creato questo, partendo dal tema jreese:

# ZSH Theme

# SSH Connection
function ssh_connection() {
  if [[ -n $SSH_CONNECTION ]]; then
    echo "%{$fg_bold[red]%}(ssh) "
  fi
}

# NEW EMAILS
function new_mails() {
  maildirs="$HOME/Mail/"
  find $maildirs -path '*/new/*' -type f | wc -l
}

# Grab the current date (%d-%m-%Y) and time (%H:%M:%S) wrapped in {}
LKV_CURRENT_TIME_="%{$reset_color%}{%{$fg[yellow]%}%D{"%d-%m-%Y"} %D{"%H:%M:%S"}%{$reset_color%}}"

if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"

PROMPT='%{$fg[red]%}┌%{$reset_color%}$LKV_CURRENT_TIME_ [%{$fg[magenta]%}✉($(new_mails))%{$reset_color%}]\
$(ssh_connection)%{$reset_color%}%{$fg[blue]%}「%{$reset_color%}%~%{$fg[blue]%}」%{$reset_color%}
%{$fg[red]%}└%{$reset_color%}%{$fg[$NCOLOR]%}%n%{$fg[green]%}@%m%{$reset_color%} \
$(git_prompt_info)\
%{$fg[red]%}%(!.#.»)%{$reset_color%} '
PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
RPS1='${return_code}'

ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}±%{$fg[yellow]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg_bold[green]%}✔%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg_bold[red]%}✘%{$reset_color%}"

Sono partito dal tema jreese perche' e' un tema che mi piace molto, ma mancavano alcune funzionalita', data e ora, indicazione di connessione a SSH, indicazione di presenza di nuove email. Ho dunque aggiunto queste funzionalita' e apportato qualche modifica minore. Questo e' il risultato.

Zsh con tema lkv
Figura 1. Zsh con tema lkv.
Zsh con tema lkv in connessione SSH
Figura 2. Zsh con tema lkv in connessione SSH.

Commenti su Identi.ca.
Flattr this