Nykyinen versio |
Oma tekstisi |
Rivi 1: |
Rivi 1: |
| {{Ohjelma
| | Z shell eli zsh on runsaasti ominaisuuksia sisältävä, kehittynyt [[komentotulkki]] Unix-järjestelmille. Sitä voi käyttää sekä normaalina kirjautumiskomentotulkkina että skriptikielenä. |
| | nimi=Zsh
| |
| | kuva=
| |
| | kuvateksti=
| |
| | lisenssi=[[MIT]]
| |
| | käyttöliittymä=teksti
| |
| | kotisivu=[http://www.zsh.org/ www.zsh.org] [http://zsh.sourceforge.net/ zsh.sourceforge.net]
| |
| }}
| |
|
| |
|
| '''Zsh''' eli '''Z Shell''' on kehittynyt [[komentotulkki]] Unix-järjestelmille. Sitä voi käyttää sekä normaalina kirjautumiskomentotulkkina että skriptikielenä. Zsh:n kehitys aloitettiin 1990, ja se on tällä hetkellä luultavasti eniten ominaisuuksia sisältävä Unix-komentotulkki. Jotta eri 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 == |
| | | *Ohjelmoitava komennontäydennystoiminto, joka auttaa yleisimpien komentojen argumenttien täydentämisessä (sisältää tuon muutamalle sadalle yleisimmälle komennolle) |
| ==Asennus==
| | *Jaettu komentohistoria kaikille samaan aikaan päälläoleville zsh-istunnoille |
| {{Asenna|Zsh|zsh}}
| |
| | |
| ==Ominaisuuksia== | |
| *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 |
| *Prompt-teemat
| | *Oikoluku |
| *Oikoluku, esimerkiksi komento ''pwero'' täydentyy ''poweroff''iksi. | | *Yhteensopivuustila (zsh:n saa tarvittaessa esimerkiksi vaikuttamaan [[sh]]:lta, kun sitä ajetaan /bin/sh:na) |
| *Globbing-tuki eli tiedostonnimien automaattinen täydennys erilaisten wildcardien avulla. Esimerkiksi seuraava lisäisi merkkijonon foo kyseisen hakemiston jokaisen .txt-päätteisen tiedoston loppuun:
| | *Valmiusriviteemat, esimerkiksi mahdollisuus pitää valmiusrivitekstiä ruudun oikealla puolella ja määrittää sen piiloutumaan automaattisesti kirjoitettaessa pitkiä komentoja |
| echo "foo" >>*.txt
| |
| *Yhteensopivuustila (zsh:n saa tarvittaessa toimimaan esimerkiksi kuin [[sh]], [[csh]] tai [[ksh]]. | |
| *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'
| |
|
| |
| # Asetetaan komentohistoriatiedosto
| |
| export HISTFILE=~/.history
| |
|
| |
| # Asetetaan historiatiedoston suurin mahdollinen koko riveinä
| |
| export HISTSIZE=999999999
| |
|
| |
| # Asetetaan kerralla historiatiedostoon tallennettavien rivien maksimimäärä
| |
| export SAVEHIST=999999999
| |
|
| |
| # Lisätään hakemistot /usr/local/bin/ ja $HOME/bin [[PATH]]-muuttujaan
| |
| export PATH="$PATH:/usr/local/bin:$HOME/bin"
| |
|
| |
| # Määritetään oletus[[tekstieditori]]. Tämä asetus vaikuttaa myös käytettävään
| |
| # näppäinyhdistelmäteemaan ([[vi]] tai [[emacs]]) mikäli sitä ei erikseen
| |
| # määritetä bindkey-komennolla.
| |
| export EDITOR="[[vim]]"
| |
| export VISUAL=$EDITOR
| |
|
| |
| # 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:'
| |
|
| |
| # Komentojen täydennyksen asetuksia. Näiden asetusten luontiin voi myös käyttää
| |
| # valmista velhoa, joka käynnistyy komennolla compinstall
| |
|
| |
| # Asetetaan täydennyslistan väreiksi samat, kuin ls:llä
| |
| zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
| |
|
| |
| # Ladataan normaalit täydennysfunktiot sekä oikoluku
| |
| zstyle ':completion:*' completer _expand _complete _correct _approximate
| |
|
| |
| # Mahdollistaa sekä merkkijonon ensimmäisiin että viimeisiin merkkeihin
| |
| # pohjautuvan täydennyksen.
| |
| zstyle ':completion:*' expand prefix suffix
| |
|
| |
| # Täydennyslistan aakkosellinen järjestys. Muita vaihtoehtoja ovat mm. size
| |
| # (koko), date (muutospäivämäärä), time (muutosaika), access (edellinen avausaika)
| |
| # sekä reverse (kääntää tulostuksen)
| |
| zstyle ':completion:*' file-sort name
| |
|
| |
| # Täydennettäessä yläpuolisten hakemistojen nimiä (cd ../) ei oteta huomioon nykyistä työhakemistoa
| |
| zstyle ':completion:*' ignore-parents pwd
| |
|
| |
| # [[ps]]:n tulosteeseen pohjautuva valikkopohjainen täydennys [[kill]]-komennolle.
| |
| zstyle ':completion:*:*:kill:*' menu yes select
| |
| zstyle ':completion:*:kill:*' force-list always
| |
|
| |
| # Valikkopohjainen täydennys joka käynnistyy, kun vaihtoehtoja on yli ruudullinen.
| |
| zstyle ':completion:*' menu select=long
| |
| zstyle ':completion:*' select-prompt %SValikko aktiivinen. Sijainti: %p %s
| |
|
| |
| # Isojen ja pienien kirjainten sekä välimerkkien vastaavuus komentojen
| |
| # oikoluvussa. Toisin sanoen mahdollistaa esimerkiksi komennon 'EMACs'
| |
| # täydentämisen 'emacs'iksi.
| |
| zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z} r:|[._-,]=** r:|=** l:|=*'
| |
|
| |
| # Käynnistetään (uuden tyylin mukaiset) täydennystoiminnot
| |
| autoload -Uz compinit
| |
| compinit
| |
|
| |
| # 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
| |
|
| |
| # Jos annettua komentoa ei voida suorittaa ja se on hakemistonnimi, niin
| |
| # siirrytään automaattisesti tähän hakemistoon (cd).
| |
| setopt AUTO_CD
| |
|
| |
| # Ei ikinä piipata
| |
| unsetopt BEEP
| |
|
| |
| # 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 .*'
| |
|
| |
| # Emacs-tyylinen komentorivin muokkaus (oletus)
| |
| bindkey -e
| |
|
| |
| # Vi-tyylinen komentorivin muokkaus
| |
| #bindkey -v
| |
|
| |
| # 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
| |
| | |
| Asetustiedoston muutokset saa helpoiten käyttöön käynnistämällä zsh uudelleen komennolla
| |
| exec zsh
| |
| | |
| ==Katso myös==
| |
| *[[Oh My Zsh]] - Asetukset, joilla Zsh-shellistä saadaan muun muassa interaktiivisempi
| |
|
| |
|
| ==Aiheesta muualla== | | == Linkkejä == |
| *[http://www.zsh.org/ Zsh:n kotisivu] | | *[http://www.zsh.org/ Zsh:n kotisivu] |
| | *[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:Komentotulkit]] | | [[Luokka:Komentotulkit]] |
| [[Luokka:Asetustiedostot]]
| |
|
| |
| [[pl:zsh]]
| |