zsh kao default shell

A 3 minute read, Posted by Milovan Misho Petković on Tue, Nov 14, 2017
In Development
Tags debian, linux

Zsh po meni najbolja konzola, nezaobilazna u linux svijetu i svakom ko podešava servere.

Sav sadržaj preuzet je od kolege Janoša resenje.org, zagubio mu se na sajtu, a meni često zatreba.

Korišćenje GNU/Linux ili *BSD sistema je nezamislivo bez komandne linije. Dok kucanje komandi odbija nove korisnike, oni koji uspeju da probiju barijeru zauvek ostaju vezani za terminal.

Program koji će interpretirati komande koje kucate je Shell. Postoje razne varijante Shell-a. Onaj koji dolazi u osnovnoj instalaciji je bash, međutim zsh je alternativa u kojoj se mnogo konfornije radi. Dovoljno je videti kako taster Tab ide u korist lenjosti i spašava vas pamćenja gomile opcija za svaku od komandi. Opcije koje nudi pri podešavanju mogu da zadovolje i najzahtevnije korisnike, ukoliko naravno razumete šta znače. Zato ovde dajem konfiguracioni fajl ~/.zshrc u celosti kojim možete početi sa radom bez prethodnog podešavanja kroz interaktivni zsh meni. Pogledajte dokumentaciju za detaljnija objašnjenja.

Probna vožnja instaliranje zsh:

aptitude install zsh

Možete odmah otovoriti terminal i ukucati:

zsh

Ukoliko ne postoji fajl ~/.zshrc prikazaće vam se interaktivni meni za podešavanje opcija koji će vam napraviti spomenuti fajl. Možete se lišiti muka time što ćete iskopirati sledeći tekst u .zshrc fajl unutar vašeg home direktorijuma:

autoload -U zmv
autoload colors
colors

autoload -U promptinit
promptinit

setopt share_history
setopt appendhistory
setopt autocd
setopt automenu
setopt autopushd
setopt autoresume
setopt complete_in_word
setopt extended_glob
setopt hist_ignoredups
setopt hist_ignorespace
setopt list_types
setopt mailwarning
setopt no_flowcontrol
setopt no_hup
setopt no_notify
setopt printexitvalue
setopt pushd_ignoredups
setopt pushd_silent

zmodload -a colors
zmodload -a autocomplete
zmodload -a complist

"# Prompt"
PS1="%{$fg[red]%}%n%{$fg[white]%}@%{$fg[red]%}%m%{$fg[white]%}:%{$fg[white]%}%~%{$fg[red]%}%# %{$reset_color%}"

# ls colors
export LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jpg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.png=01;35:*.mpg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:"

# Zsh settings for history
export HISTIGNORE="&:ls:[bf]g:exit:reset:clear💿cd ..:cd.."
export HISTSIZE=25000
export HISTFILE=~/.zsh_history
export SAVEHIST=25000
setopt APPEND_HISTORY
setopt INC_APPEND_HISTORY
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_IGNORE_SPACE
setopt HIST_REDUCE_BLANKS
setopt HIST_SAVE_NO_DUPS
setopt HIST_VERIFY

# Zsh spelling correction options
setopt CORRECT

# Prompts for confirmation after 'rm *' etc
# Helps avoid mistakes like 'rm * o' when 'rm *.o' was intended
setopt RM_STAR_WAIT

# Background processes aren't killed on exit of shell
setopt AUTO_CONTINUE

# Don’t nice background processes
setopt NO_BG_NICE

# Watch other user login/out
watch=notme
export LOGCHECK=60

# Editor
export EDITOR="vi"
export USE_EDITOR=$EDITOR
export VISUAL=$EDITOR

# General short aliases
alias ls='ls --color=auto'
alias la='ls -la'
alias rm-empty='find -depth -type d -empty -exec rmdir {} \;'

# Push History from previous sessions
fc -R $HISTFILE

# Forcing the rehash
_force_rehash() {
  (( CURRENT == 1 )) && rehash
  return 1
}

# set PATH so it includes user's private bin if it exists
if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi

# set PATH so it includes /sbin and /usr/sbin
if [ -d /usr/sbin ] ; then
    PATH=/usr/sbin:"${PATH}"
fi
if [ -d /sbin ] ; then
    PATH=/sbin:"${PATH}"
fi

zstyle ':completion:*' completer _expand _complete _match
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-prompt '%SAt %p: Hit TAB for more, or the character to insert%s'
zstyle ':completion:*' max-errors 1 numeric
zstyle ':completion:*' menu select=2
zstyle ':completion:*' original true
zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s'
zstyle ':completion:*' substitute 0
zstyle ':completion:*' verbose true
zstyle :compinstall filename '/home/janos/.zshrc'

autoload -Uz compinit
compinit

U ovom glomaznom fajlu, između ostalog, se podešava i „prompt“, boje pri ispisivanju fajlova, istorija, osnovni aliasi i automatsko završavanje komandi. Kada završite probnu vožnju, vratite se u bash sa Ctrl+D ili:

exit

Default Login Shell

Ako ste zadovoljni, namestite zsh kao osnovni Shell:

chsh -s /bin/zsh

👍 ✨ 🐫 🎉

comments powered by Disqus