Ero sivun ”Zsh” versioiden välillä
Siirry navigaatioon
Siirry hakuun
asetuksista ym. yleistä laajennusta
Pb (keskustelu | muokkaukset) (→Linkkejä: lisää linkkejä) |
Pb (keskustelu | muokkaukset) (asetuksista ym. yleistä laajennusta) |
||
Rivi 1: | Rivi 1: | ||
Z shell eli zsh on | Z shell eli zsh on kehittynyt [[komentotulkki]] Unix-järjestelmille. Sitä voi käyttää sekä normaalina kirjautumiskomentotulkkina että skriptikielenä. Sen kehitys aloitettiin 1990, ja se on tällä hetkellä luultavasti eniten ominaisuuksia sisältävä Unix-komentotulkki. Jotta ominaisuudet eivät veisi liikaa muistitilaa, on valtaosa niistä sijoitettu erikseen ladattaviin funktioihin. Zsh huolehtii itse komentorivin editoinnista (ZLE), kun se esimerkiksi [[Bash]]issa on ulkoistettu jokseenkin rajoittuneelle [[Readline]]-kirjastolle. Zsh:ssa on ollut [[Unicode]]-tuki helmikuussa 2006 julkaistusta 4.3.1-versiosta lähtien. | ||
== Ominaisuuksia == | == Ominaisuuksia == | ||
*Ohjelmoitava komennontäydennystoiminto, joka auttaa yleisimpien komentojen argumenttien täydentämisessä (sisältää tuon muutamalle sadalle yleisimmälle komennolle) | *Ohjelmoitava komennontäydennystoiminto, joka auttaa yleisimpien komentojen argumenttien täydentämisessä (sisältää tuon muutamalle sadalle yleisimmälle komennolle). Myös esimerkiksi man-sivujen nimien täydennys toimii. Esimerkki: | ||
* | [matti@masiina] ~ % yum c | ||
check-update -- Check if any updates are available | |||
clean -- Clean local yum cache | |||
*Mahdollisuus jakaa komentohistoria kaikille samaan aikaan päälläoleville zsh-istunnoille | |||
*Muuttujien ja taulukoiden edistynyt hallinta | *Muuttujien ja taulukoiden edistynyt hallinta | ||
*Oikoluku | *Prompt-teemat | ||
*Oikoluku, esimerkiksi komento ''pwero'' täydentyy ''poweroff''iksi. | |||
*Yhteensopivuustila (zsh:n saa tarvittaessa esimerkiksi vaikuttamaan [[sh]]:lta, kun sitä ajetaan /bin/sh:na) | *Yhteensopivuustila (zsh:n saa tarvittaessa esimerkiksi vaikuttamaan [[sh]]:lta, kun sitä ajetaan /bin/sh:na) | ||
* | *Itsekirjoitetut funktiot (laajennukset) | ||
==Asetukset== | |||
Kuten useimpien muidenkin ohjelmien [[Asetustiedostojen perusteet|asetustiedostoja]], on zsh:n asetustiedostoja kahdenlaisia, koko järjestelmän laajuisia, jotka ovat muotoa /etc/foo ja käyttäjäkohtaisia, jotka ovat muotoa ~/.foo (~ tarkoittaa käyttäjän kotihakemistoa ja piste on piilotiedoston merkki). Järjestelmänlaajuinen tiedosto ajetaan yleensä ennen käyttäjäkohtaista. Zsh:n käynnistämisen ja sulkemisen yhteydessä ajattavat asetustiedostot ovat seuraavat: | |||
*'''/etc/zshenv ja ~/.zshenv ''' | |||
/etc/zshenv ajetaan ensimmäisenä aina zsh:n käynnistyessä siitäkin huolimatta, vaikka zsh olisi käynnistetty käynnistystiedostojen ajon estävällä -f-valitsimella (setopt NO_RSC). ~/.zshrc tottelee -f-valitsinta. | |||
*/'''etc/zprofile ja ~/.zprofile ''' | |||
ajetaan zshenv:n jälkeen mikäli käyttäjä kirjautuu sisään kyseisellä zsh-istunnolla, eli kyseessä on ''kirjautumiskomentotulkki''. | |||
*'''/etc/zshrc ja ~/.zshrc ''' | |||
Luetaan zshenvin (ja zprofilen) jälkeen, mikäli zsh käynnistetään ''interaktiivisena komentotulkkina''. Komentotulkki on interaktiivinen, kun sitä ei käytetä skriptin ajamiseen, vaan komennot syötetään itse reaaliajassa. | |||
*'''/etc/zlogin ja ~/.zlogin ''' | |||
ajetaan zshrc:n jälkeen, mikäli kyseessä on kirjautumiskomentotulkki. | |||
*'''~/.zlogout ja /etc/zlogout''' | |||
ajetaan kirjautumiskomentotulkista poistuttaessa. Käyttäjäkohtainen tiedosto ajetaan muista poiketen ennen järjestelmänlaajuista tiedostoa. | |||
Seuraavassa on esimerkki zshrc-tiedostosta. '''Lue ennen käyttöönottoa.''' | |||
# Määritetään promptin (komentorivillä aina näkyvät merkit) ulkoasu. Muuttuja | |||
# PROMPT on sama kuin PS1. %n tarkoittaa koneen ja %m käyttäjän nimeä. %~ on | |||
# nykyinen työhakemisto ja %# on valmiusmerkki (tavallisilla käyttäjillä % ja | |||
# rootilla #). Tulos näyttää tältä: [kayttaja@kone] /usr/bin/ % | |||
# %~:n voi korvata %d:llä jolloin esim. kotihakemiston nimeä ei lyhenetä ~:nä. | |||
# zsh:ssa on myös mahdollista käyttää valmiita prompt-teemoja. | |||
PROMPT='[%n@%m] %~ %# ' | |||
# Määritellään komentorivin oikeassa laidassa näkyvä teksti (valinnainen). | |||
# %t tarkoittaa kellonaikaa. | |||
#RPROMPT='%t' | |||
# Käynnistetään (uuden tyylin mukaiset) täydennystoiminnot | |||
autoload -U compinit | |||
# Emacs-tyylinen koventorivin muokkaus | |||
#bindkey -e | |||
# Vi-tyylinen komentorivin muokkaus | |||
#bindkey -v | |||
# Sallii tab-täydennyksen myös sanan keskellä | |||
setopt COMPLETE_IN_WORD | |||
# Pidetään taustaprosessit täydellä nopeudella | |||
#setopt NOBGNICE | |||
# Liitetään zsh-istunnon päättyessä syötetyt komennot historiatiedoston loppuun | |||
# sen nollamisen sijaan | |||
setopt APPEND_HISTORY | |||
# Liitetään syötetyt komennot historiatiedostoon välittömästi niiden syöttämisen | |||
# jälkeen | |||
setopt INC_APPEND_HISTORY | |||
# Jaettu komentohistoria samanaikaisesti päälläolevien zsh-istuntojen kesken | |||
#setopt SHARE_HISTORY | |||
# Älä näytä montaa identtistä riviä haettaessa komentohistoriasta (CTRL+R) | |||
setopt HIST_FIND_NO_DUPS | |||
# Älä lisää identtisiä peräkkäisiä komentoja komentohistoriaan. | |||
# Jos esim. kirjoitat 30 kertaa peräkkäin "ls", lisätään näistä vain yksi. | |||
#setopt HIST_IGNORE_DUPS | |||
# Poistaa kaikki edeltävät identtidet rivit komentohistoriasta, vaikka näiden | |||
# komentojen välillä olisi annettu muita komentoja. | |||
#setopt HIST_IGNORE_ALL_DUPS | |||
# Ei ikinä piipata | |||
setopt NO_BEEP | |||
#Ladataan väritoiminnot | |||
autoload -U colors | |||
compinit ZLS_COLORS | |||
# Asetetaan ls-komennon käyttämät värit ('''muunna kaikki yhdelle riville''') | |||
export LS_COLORS='no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35: | |||
bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32: | |||
*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32: | |||
*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31: | |||
*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31: | |||
*.rpm=00;31:*.deb=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35: | |||
*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:' | |||
# Asetetaan zsh-täydennystoiminto käyttämään samoja värejä kuin ls | |||
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} | |||
# Asetetaan muutamia [[alias|aliaksia]] | |||
alias stx="startx >& /dev/null &" | |||
alias top="top -d1" | |||
alias ls="ls --color=auto" | |||
alias ..="cd .." | |||
alias ...="cd ../.." | |||
alias ....="cd ../../.." | |||
alias mnt="mount" | |||
# Listaa vain hakemistot ja hakemistoihin viittaavat symboliset linkit | |||
alias lsd='ls -ld *(-/DN)' | |||
# Listaa vain pisteellä alkavat tiedostot | |||
alias lsa='ls -ld .*' | |||
# Asetetaan komentohistoriatiedosto | |||
export HISTFILE=~/.history | |||
# Asetetaan historiatiedoston suurin mahdollinen koko riveinä | |||
export HISTSIZE=999999999999 | |||
# Asetetaan kerralla historiatiedostoon tallennettavien rivien maksimimäärä | |||
export SAVEHIST=999999999999 | |||
# Lisätään hakemistot /usr/local/bin/ ja $HOME/bin [[PATH]]-muuttujaan | |||
export PATH="$PATH:/usr/local/bin:$HOME/bin" | |||
# Korjataan Home- End- ja backspace-näppäinten toiminta | |||
bindkey '\e[1~' beginning-of-line | |||
bindkey '\e[4~' end-of-line | |||
bindkey '^[[3~' delete-char | |||
# Korjataan backspace-näppäimen toiminta [[xterm]]issä | |||
case $TERM in (xterm*) | |||
bindkey '\e[H' beginning-of-line | |||
bindkey '\e[F' end-of-line ;; | |||
esac | |||
_force_rehash() { | |||
(( CURRENT == 1 )) && rehash | |||
return 1 | |||
} | |||
zstyle ':completion:::::' completer _force_rehash _complete _approximate | |||
== Linkkejä == | == Linkkejä == | ||
Rivi 13: | Rivi 144: | ||
*[http://zsh.sunsite.dk/Guide/ Zsh-opas] | *[http://zsh.sunsite.dk/Guide/ Zsh-opas] | ||
*[http://www.zshwiki.org/ Zsh-wiki] | *[http://www.zshwiki.org/ Zsh-wiki] | ||
*[http://grml.org/zsh/zsh-lovers.html Zsh-lovers] | |||
[[Luokka:Komentorivi]] | [[Luokka:Komentorivi]] | ||
[[Luokka:Komentotulkit]] | [[Luokka:Komentotulkit]] | ||
[[Luokka:Asetustiedostot]] | |||
[[Luokka:Ohjeet]] |