Muokataan sivua Zsh

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

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.
*Yhteensopivuusmoodi (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://www.zshwiki.org/ Zsh-wiki]
*[http://grml.org/zsh/zsh-lovers.html Zsh-lovers]


[[Luokka:Komentotulkit]]
[[Luokka:Asetustiedostot]]


[[pl:zsh]]
[[Luokka:Komentorivi]]
[[Luokka:Ohjelmat]]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)

Tällä sivulla käytetyt mallineet:

Tämä sivu kuuluu seuraavaan piilotettuun luokkaan:

Noudettu kohteesta ”https://www.linux.fi/wiki/Zsh