Razlika između inačica stranice Zsh

Izvor: HrOpenWiki
Skoči na: orijentacija, traži
(Instalacija)
 
Redak 25: Redak 25:
 
vidjet će te zsh-newuser-install koj će vas voditi kroz neke osnovne konfiguracije.Ukoliko neželite pritisnite q.
 
vidjet će te zsh-newuser-install koj će vas voditi kroz neke osnovne konfiguracije.Ukoliko neželite pritisnite q.
  
=Postaljanje ZSH kao nativne ljuske=
+
=Postavljanje ZSH kao nativne ljuske=
  
 
Ako je ljuska unešena u /etc/shells promjenu nativne ljuske vršite sa chsha. Ako ste Zsh povukli sa repozitorija onda već je unešen u /etc/shells .
 
Ako je ljuska unešena u /etc/shells promjenu nativne ljuske vršite sa chsha. Ako ste Zsh povukli sa repozitorija onda već je unešen u /etc/shells .

Trenutačna izmjena od 08:28, 29. ožujka 2012.

Zsh je vrlo močna ljuska (shell) koja radi i kao interaktivna ljuska i kao skriptni interpreter. Nativno nije kompitabilan sa Bash-em ( treba koristiti "emulate sh" ) no jednom kad se uspostavi kompitabilnost pruža mnoge prednosti kao :


  • brzina
  • poboljšana tab dopuna
  • bolji globbing
  • poboljšano rukovanje nizevima
  • kranje prilagodljiv korisniku i njegovim potrebama

Zsh FAQ nudi više razloga zašto koristiti Zsh kao shell.

Instalacija

Prije nego započnete instalaciju bilo bi zgodno da provjerite koj shell uopće koristite

echo $SHELL

Zsh se nalzi unutar repozitorija svih distribucija te ga je potrebno povući. Slackware pak sa druge strane dolazi sa Zsh shellom pa ga je potrebno odabrati kao user shell prilikom prvog boota nakon instalacije te konfiguriranja sustava i kreiranja korisnika( u protivnom Slackware će koristiti bash).

Inicijalna konfiguracija

Provjerite da je zsh uspješno instaliran

% zsh

vidjet će te zsh-newuser-install koj će vas voditi kroz neke osnovne konfiguracije.Ukoliko neželite pritisnite q.

Postavljanje ZSH kao nativne ljuske

Ako je ljuska unešena u /etc/shells promjenu nativne ljuske vršite sa chsha. Ako ste Zsh povukli sa repozitorija onda već je unešen u /etc/shells .

chsh -s $(which zsh)

Kako bi mogli koristiti Zs potrebno se odlogirati i ponovno logirati (na nekim distribicijama je potrebno napraviti reboot). Kad se ponovno ulogirate i pokrenete terminal vidjet će te da Zsh izgleda drugačije nego Bash.Da ne bi pomislili kako je neka zla magija napala vaše računalo unesite u terminal echo $SHELL i uvjerite se da zaista koristite Zsh.

Opaska|ukoliko vršite zamjenu bash bilo bi pametno da nešto koda iz ~/bashrc prenesete u ~/zshrc te  sa ~/.bash_profile u ~/.zprofile .

Konfiguracijske datoteke

  • /etc/profile
  • ~/.zshenv
  • ~/.zprofile
  • ~/.zshrc
  • ~/.zlogin
  • ~/.zlogout

Postavke ~/.zshrc datoteke

Iako je Zsh kao i Bash iskoristiv out of the box odmah nakon instalacije, potrebno ga je podrediti svojim potrebama i zahtjevima. Zsh je iznimno bogat mogučnostima uređenja te može postati prava zaraza kao i igranje sa Conky skriptama ili uređivanje desktopa. Ovdje ćemo prikazati jednu osnovnu i jednostavnu ~/.zshrc konfiguraciju. Jedna od prednosti koje pruža Zsh je da nakon odrađenih izmjena u samoj ~/.zshrc skripti nemorate ponosno pokretati terminal kako bi promjene bile vidljive već u terminal unesete

source ~/.zshrc

Jednostavna ~/.zshrc datoteka

autoload -U compinit promptinit
compinit
promptinit
 
# This will set the default prompt to the walters theme
prompt walters

Automatsko završavanje naredba

ovo je možda najzanimljivija i najkorisnija značajka Zsh.Prije ili kasnije željet će te omogućiti automatsko završavanje naredba u svom ~/.zshrc a to će te ućiniti unosom ovih linija u vaš ~/.zshrc

autoload -U compinit
compinit

Gornja konfiguracija uključuje automatsko ssh/scp/sftp hostove no potrebno da bi radila normalno potrebno je spriječiti ssh od hashinga imena hostova u ~/.ssh/known_hosts ( Upozorenje !! Imajet na umu da ta radnja čini vaše računalo osjetljivim na "Island-hopping" napade ). Sa tom mišlju potrebno je unutar /etc/ssh/ssh_config zakomentirati sljedeću liniju

#HashKnownHosts yes

te vrijednost postaviti na no. Također premjestite ~/.ssh/known_hosts negdje drugdje kako bi ssh mogao napraviti novu listu.

Završavanje strelicama

Ukoliko elite završavanje naredba strelicama u ~/.zshrc treba dodati

zstyle ':completion:*' menu select

Dok za završavanje naredba putem aliasa treba unjeti

setopt completealiases

Tipkovnične kratice

Zsh ne koristi readline. Umjesto toga ima svoj daleko moćniji zle. Ne čita /etc/inputrc ni ~/.inputrc, zle ima Emacs i VI modove. Nativno nema nijedna već naspram $EDITOR environment varijable pokušava odrediti koj editor koristite te se prilagoditi njemu.Ako je varijabla prazna postavlja Emacs.Kako bi dobili dodatne tipke u vaš ~/.zshrc

bindkey "\e[1~" beginning-of-line # Home
bindkey "\e[4~" end-of-line # End
bindkey "\e[5~" beginning-of-history # PageUp
bindkey "\e[6~" end-of-history # PageDown
bindkey "\e[2~" quoted-insert # Ins
bindkey "\e[3~" delete-char # Del
bindkey "\e[5C" forward-word
bindkey "\eOc" emacs-forward-word
bindkey "\e[5D" backward-word
bindkey "\eOd" emacs-backward-word
bindkey "\e\e[C" forward-word
bindkey "\e\e[D" backward-word
bindkey "\e[Z" reverse-menu-complete # Shift+Tab
# for rxvt
bindkey "\e[7~" beginning-of-line # Home
bindkey "\e[8~" end-of-line # End
# for non RH/Debian xterm, can't hurt for RH/Debian xterm
bindkey "\eOH" beginning-of-line
bindkey "\eOF" end-of-line
# for freebsd console
bindkey "\e[H" beginning-of-line
bindkey "\e[F" end-of-line

Pretraživanje povijesti

Dodajte ove dvije linije u vaš ~/.zshrc

bindkey "^[[A" history-search-backward
bindkey "^[[B" history-search-forward

Promptovi

U Zsh je vrlo jednostavno i brzo konfigurirati propmpt u boji. Provjerite da u ~/.zshrc imate

autoload -U promptinit
promptinit

ako nemate ubacite. Dostupne promptove vidjet će te ukoliko pokrenete naredbu

prompt -l

Isprobajte ih i odlučite se za onaj koj vam odgovara.

Napredna ~/.zshrc datoteka

Za kraj evo jedne napredne ~/.zshrc datoteke.Riječ je o datoteci Archevog developera Robby Russela koja je forkana nešto više od 900 puta.

###########################################################        
# Options for Zsh

export HISTFILE=~/.zsh_history
export HISTSIZE=50000
export SAVEHIST=50000
eval `dircolors -b`

autoload -U compinit compinit
setopt autopushd pushdminus pushdsilent pushdtohome
setopt autocd
setopt cdablevars
setopt ignoreeof
setopt interactivecomments
setopt nobanghist
setopt noclobber
setopt HIST_REDUCE_BLANKS
setopt HIST_IGNORE_SPACE
setopt SH_WORD_SPLIT
setopt nohup

# PS1 and PS2
export PS1="$(print '%{\e[1;34m%}%n%{\e[0m%}'):$(print '%{\e[0;34m%}%~%{\e[0m%}')$ "
export PS2="$(print '%{\e[0;34m%}>%{\e[0m%}')"

# Vars used later on by Zsh
export EDITOR="nano"
export BROWSER=links
export XTERM="aterm +sb -geometry 80x29 -fg black -bg lightgoldenrodyellow -fn -xos4-terminus-medium-*-normal-*-14-*-*-*-*-*-iso8859-15"

##################################################################
# Stuff to make my life easier

# allow approximate
zstyle ':completion:*' completer _complete _match _approximate
zstyle ':completion:*:match:*' original only
zstyle ':completion:*:approximate:*' max-errors 1 numeric

# tab completion for PID :D
zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:kill:*' force-list always

# cd not select parent dir
zstyle ':completion:*:cd:*' ignore-parents parent pwd

##################################################################
# Key bindings
# http://mundy.yazzy.org/unix/zsh.php
# http://www.zsh.org/mla/users/2000/msg00727.html

typeset -g -A key
bindkey '^?' backward-delete-char
bindkey '^[[1~' beginning-of-line
bindkey '^[[5~' up-line-or-history
bindkey '^[[3~' delete-char
bindkey '^[[4~' end-of-line
bindkey '^[[6~' down-line-or-history
bindkey '^[[A' up-line-or-search
bindkey '^[[D' backward-char
bindkey '^[[B' down-line-or-search
bindkey '^[[C' forward-char 
# completion in the middle of a line
bindkey '^i' expand-or-complete-prefix

##################################################################
# My aliases

# Set up auto extension stuff
alias -s html=$BROWSER
alias -s org=$BROWSER
alias -s php=$BROWSER
alias -s com=$BROWSER
alias -s net=$BROWSER
alias -s png=feh
alias -s jpg=feh
alias -s gif=feg
alias -s sxw=soffice
alias -s doc=soffice
alias -s gz='tar -xzvf'
alias -s bz2='tar -xjvf'
alias -s java=$EDITOR
alias -s txt=$EDITOR
alias -s PKGBUILD=$EDITOR

# Normal aliases
alias ls='ls --color=auto -F'
alias lsd='ls -ld *(-/DN)'
alias lsa='ls -ld .*'
alias f='find |grep'
alias c="clear"
alias dir='ls -1'
alias gvim='gvim -geom 82x35'
alias ..='cd ..'
alias nicotine='/home/paul/downloads/nicotine-1.0.8rc1/nicotine'
alias ppp-on='sudo /usr/sbin/ppp-on'
alias ppp-off='sudo /usr/sbin/ppp-off'
alias firestarter='sudo su -c firestarter'
alias mpg123='mpg123 -o oss'
alias mpg321='mpg123 -o oss'
alias vba='/home/paul/downloads/VisualBoyAdvance -f 4'
alias hist="grep '$1' /home/paul/.zsh_history"
alias irssi="irssi -c irc.freenode.net -n yyz"
alias mem="free -m"
alias msn="tmsnc -l hutchy@subdimension.com"

# command L equivalent to command |less
alias -g L='|less' 

# command S equivalent to command &> /dev/null &
alias -g S='&> /dev/null &'