Difference between revisions of "Zsh (Česky)"

From ArchWiki
Jump to: navigation, search
(9 intermediate revisions by 5 users not shown)
Line 1: Line 1:
[[Category:Command shells (English)]]
 
 
[[Category:HOWTOs (Česky)]]
 
[[Category:HOWTOs (Česky)]]
{{i18n_links_start}}
+
[[Category:Česky]]
{{i18n_entry|English|Zsh}}
+
[[en:Zsh]]
{{i18n_entry|Česky|Zsh (Česky)}}
+
[[fr:Zsh]]
{{i18n_links_end}}
+
[[zh-CN:Zsh]]
 
[http://www.zsh.org Zsh] je mocný shell se kterým je možno pracovat jako s interaktivním shellem i jako se interpretrem skriptovacího jazyka. Je sice kompaktibilní se shellem [[Bash]], nabízí však další možnosti jako:
 
[http://www.zsh.org Zsh] je mocný shell se kterým je možno pracovat jako s interaktivním shellem i jako se interpretrem skriptovacího jazyka. Je sice kompaktibilní se shellem [[Bash]], nabízí však další možnosti jako:
  
Line 37: Line 36:
 
=== Nastavení Zsh jako implicitní shell ===
 
=== Nastavení Zsh jako implicitní shell ===
  
Pro změnu uživatelského implicitního shellu bez rootovských oprávnění se používá příkaz chsh. Příkaz chsh lze použít pro změnu implicitního shellu bez rootovských oprvávnění jen pokud je shell uveden v souboru {{Filename|/etc/shells}}. Pokud jsi Zsh instaloval použitím pacmana, Zsh již by měl mít odpovídající záznam v {{Filename|/etc/shells}}.
+
Pro změnu uživatelského implicitního shellu bez rootovských oprávnění se používá příkaz chsh. Příkaz chsh lze použít pro změnu implicitního shellu bez rootovských oprvávnění jen pokud je shell uveden v souboru {{ic|/etc/shells}}. Pokud jsi Zsh instaloval použitím pacmana, Zsh již by měl mít odpovídající záznam v {{ic|/etc/shells}}.
  
 
Pro pokračování potřebuješ znát plnou cestu k Zsh, proto spusť:
 
Pro pokračování potřebuješ znát plnou cestu k Zsh, proto spusť:
Line 47: Line 46:
 
  $ chsh -s /bin/zsh
 
  $ chsh -s /bin/zsh
  
An alternative way to change a user's default shell is with the command usermod. The disadvantage of this method is that you must have root access. But multiple users default shell can be changed quickly as root, using usermod or chsh.  
+
Alternativní cesta ke změně shellu vede přes příkaz usermod. Nevýhodou této metody je potřeba mít k pc rootovský přístup. Více uživatelských účtů může být změněno rychle jako root, použitím příkazu usermod nebo chsh.
  
Change the default shell for multiple users, using usermod:
+
Změna implicitního shellu pro více uživatelů použitím příkazu usermod:
  
  # usermod -s /bin/zsh username
+
  # usermod -s /bin/zsh uzivatel
  
Change the default shell for multiple users, using chsh:
+
Změna implicitního shellu pro více uživatelů použitím příkazu chsh:
  
 
  # chsh -s /bin/zsh username
 
  # chsh -s /bin/zsh username
  
{{Note| The user needs to logout and log back in, to start using Zsh as their default shell.}}
+
{{Note| Je třeba se odhlásit a přihlaásit zpět pokud chceš začít používat Zsh hned.}}
  
After logging back in, the user can verify that Zsh is their default shell by:
+
Po opětovném přihlášení si můžeš ověřit, zda je Zsh opravdu tvým implicitním shellem:
  
 
  $ echo $SHELL
 
  $ echo $SHELL
  
If you do not have root access, and Zsh is not listed in {{Filename|/etc/shells}} but you would still like to use Zsh as your default shell, see [http://zsh.sunsite.dk/FAQ/zshfaq01.html#l8 this entry] in the Zsh FAQ.
+
Pokud nemáš rootovská práva a Zsh není zapsán v souboru {{ic|/etc/shells}} ale i přesto by jsi rád používal Zsh jako implicitní shell, přejdi [http://zsh.sunsite.dk/FAQ/zshfaq01.html#l8 na tento záznam] ve Zsh FAQ.
  
==Configuration==
+
== Konfigurace ==
  
Although Zsh is usable out of the box, it is almost certainly not set up the way you would like to use it, but due to the sheer amount of customisation available in Zsh, creating a Zsh config can be a daunting and time-consuming experience.
+
Prestože je Zsh použitelný 'out of the box', skoro určitě nebude nastavený tak jak by sis přál. Kvůli velkému množství možných nastavení dostupných v Zsh se může vytváření konfiguračního souboru stát časově velice náročnou záležitostí.
  
Included below is a sample configuration file, it provides a decent set of default options as well as giving examples of many ways that Zsh can be customised. In order to use this configuration save it as a file named {{Filename|.zshrc}}. You can then apply the changes without needing to logout and then back in by running:
+
Dále je přiložený ukázkový konfigurační soubor, poskytuje několik základních nastavení. Pokud chceš použít tento konfigurační soubor, ulož jej jako {{ic|.zshrc}} ve svém domovském adresáři. Poté jej již můžeš upravovat bez potřeby odhlašování se tímto příkazem:
 
   
 
   
 
  $ source ~/.zshrc
 
  $ source ~/.zshrc
  
===Simple .zshrc===
+
=== Ukázkový .zshrc===
  
Here is a simple {{Filename|.zshrc}}, that should be sufficient to get you started:
+
Tady je základní {{ic|.zshrc}}, který by měl být pro začátek dostačující:
 
   
 
   
{{File|name=~/.zshrc|content=
+
{{hc|~/.zshrc|
 
autoload -U compinit promptinit
 
autoload -U compinit promptinit
 
compinit
 
compinit
 
promptinit
 
promptinit
 
   
 
   
# This will set the default prompt to the walters theme
+
# Tohle nastaví defaultní prompt na walters theme
 
prompt walters}}
 
prompt walters}}
  
===/etc/zprofile===
+
=== /etc/zprofile ===
  
Much like the {{Filename|/etc/profile}} used for Bash, this file is for global Zsh settings & is a good place from which to run scripts from {{Filename|/etc/profile.d/}} and set up environment variables such as $PATH.  
+
Stejně jako {{ic|/etc/profile}}, který používá Bash, tento soubor je pro globální nastavení Zsh + je to dobré místo pro pouštění skriptů z {{ic|/etc/profile.d/}} a nastavování proměnných prostředí jako např. $PATH.
When setting up $PATH etc. in {{Filename|.zshrc}} and using a login-manager such as kdm, you may find those settings not being taken up by the window-manager, whereas they are when using {{Filename|/etc/zprofile}}.  
+
Při nastavování $PATH atd. v {{ic|.zshrc}} a používání login manažeru jako např. kdm, můžeš zjistit že tyto nastavení nebyly přebrány okením manažerem, zatímco používají {{ic|/etc/zprofile}}.
  
Generally speaking, you can copy {{Filename|/etc/profile}} to {{Filename|/etc/zprofile}}.
+
Obecně řečeno, můžes skopírovat {{ic|/etc/profile}} do {{ic|/etc/zprofile}}.
  
An example configuration:  
+
Ukázková konfigurace:
  
{{File|name=/etc/zprofile|content=
+
{{hc|/etc/zprofile|2=
  
 
###############
 
###############
# Zsh profile #
+
# Zsh profil #
 
###############
 
###############
 
   
 
   
Line 106: Line 105:
 
export LESS="-R"
 
export LESS="-R"
 
   
 
   
# load profiles from /etc/profile.d
+
# nahraje profily z adresáře /etc/profile.d
#  (to disable a profile, just remove execute permission on it)
+
#  (pokud chceš některý z profilů zakázaz, prostě z příslušného souboru odstraň právo pro spouštění)
 
if [ `ls -A1 /etc/profile.d/ | wc -l` -gt 0 ]; then
 
if [ `ls -A1 /etc/profile.d/ | wc -l` -gt 0 ]; then
 
   for profile in /etc/profile.d/*.sh; do
 
   for profile in /etc/profile.d/*.sh; do
Line 118: Line 117:
 
   
 
   
 
   
 
   
# Locale settings (find your locale with 'locale -a')
+
# Nastavení lokalizace (své locale můžeš najít pomocí 'locale -a')
export LANG="en_GB.utf8"
+
export LANG="cs_CZ.utf8"
 
export LC_COLLATE="C"
 
export LC_COLLATE="C"
 
umask 022}}
 
umask 022}}
  
{{Note| Zsh's PKGBUILD defines that profile is in ''/etc/profile'', so reference to ''/etc/zprofile'' is a bit misleading...}}
+
{{Box BLUE|Poznámka:|PKGBUILD Zshellu definuje že profil se nachází v ''/etc/profile'', takže odkazování se na ''/etc/zprofile'' může být poněkud zavádějící...}}
  
=== Command Completion ===
+
=== Doplňování příkazů ===
Perhaps the most compelling feature of Zsh is its advanced autocompletion abilities. At the very least, you will want to enable autocompletion in your {{Filename|.zshrc}}. To enable autocompletion, add the following to:
+
Asi nejpůsobivější funkcí Zshellu jsou jeho rozšířené schopnosti doplňování. Přinejmenším budeš chtít povolit automatické doplňování ve tvém {{ic|.zshrc}}. Pro povolení automatického doplňování, přidej následující:
  
{{File|name=~/.zshrc|content=
+
{{hc|~/.zshrc|
 
autoload -U compinit
 
autoload -U compinit
 
compinit}}
 
compinit}}
  
For autocompletion with an arrow-key driven interface, add the following to:
+
Pro automatické doplňování obohacené o možnost výběru kurzorovými šipkami přidej toto:
{{File|name=~/.zshrc|content=
+
{{hc|~/.zshrc|
 
zstyle ':completion:*' menu select}}
 
zstyle ':completion:*' menu select}}
  
=== Key Bindings ===
+
=== Nastavení kláves ===
Zsh doesn't read {{Filename|/etc/inputrc}}, which tells the shell what commands sent by the terminal emulator mean. To have some standard key bindings working on Zsh, add something like this to:
+
Zsh nečte obsah souboru {{ic|/etc/inputrc}}, který říká co který příkaz zaslaný emulátorem terminálu znamená. Pro povolení standardních kláves, přidej něco jako toto:
  
{{File|name=~/.zshrc|content=
+
{{hc|~/.zshrc|
# key bindings
+
# Nastavení kláves
 
bindkey "\e[1~" beginning-of-line
 
bindkey "\e[1~" beginning-of-line
 
bindkey "\e[4~" end-of-line
 
bindkey "\e[4~" end-of-line
Line 154: Line 153:
 
bindkey "\e\e[D" backward-word
 
bindkey "\e\e[D" backward-word
 
bindkey "^H" backward-delete-word
 
bindkey "^H" backward-delete-word
# for rxvt
+
# pro rxvt
 
bindkey "\e[8~" end-of-line
 
bindkey "\e[8~" end-of-line
 
bindkey "\e[7~" beginning-of-line
 
bindkey "\e[7~" beginning-of-line
# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
+
# pro ne RH/Debian xterm, nemůže ublížit RH/DEbian xtermu
 
bindkey "\eOH" beginning-of-line
 
bindkey "\eOH" beginning-of-line
 
bindkey "\eOF" end-of-line
 
bindkey "\eOF" end-of-line
# for freebsd console
+
# pro freebsd konzoli
 
bindkey "\e[H" beginning-of-line
 
bindkey "\e[H" beginning-of-line
 
bindkey "\e[F" end-of-line
 
bindkey "\e[F" end-of-line
# completion in the middle of a line
+
# doplňování uprostřed řádku
 
bindkey '^i' expand-or-complete-prefix}}
 
bindkey '^i' expand-or-complete-prefix}}
  
===Prompts===
+
=== Výzvy příkazového řádku ===
  
There is a quick and easy way to set up a colored prompt in Zsh. Make sure that prompt is set to autload in your {{Filename|.zshrc}}. This can be done by adding these lines to:
+
Tady je rychlý a jednoduchý způsob jak nastavit barevnou výzvu příkazového řádku. Ujisti se že výzva je nastavena na autoload ve tvém {{ic|.zshrc}}. Toho může být dosáhnuto přídáním:
  
{{File|name=~/.zshrc|content=
+
{{hc|~/.zshrc|
 
autoload -U promptinit
 
autoload -U promptinit
 
promptinit}}
 
promptinit}}
  
You can now see available prompts by running the command:
+
Nyní si můžeš vypsat dostupné výzvy příkazového řádku:
 
   
 
   
 
  $ prompt -l
 
  $ prompt -l
Line 182: Line 181:
 
  $ prompt walters
 
  $ prompt walters
  
===Advanced .zshrc===
+
=== Rozšířený .zshrc ===
  
This is an example of a more advanced {{Filename|.zshrc}}:
+
Tohle je ukázka rozšířeného {{ic|.zshrc}}:
  
{{File|name=~/.zshrc|content=<nowiki>
+
{{hc|~/.zshrc|2=<nowiki>
 
###########################################################         
 
###########################################################         
# Options for Zsh
+
# Vlastnosti Zsh
  
 
export HISTFILE=~/.zsh_history
 
export HISTFILE=~/.zsh_history
Line 208: Line 207:
 
setopt nohup
 
setopt nohup
  
# PS1 and PS2
+
# PS1 a PS2
 
export PS1="$(print '%{\e[1;34m%}%n%{\e[0m%}'):$(print '%{\e[0;34m%}%~%{\e[0m%}')$ "
 
export PS1="$(print '%{\e[1;34m%}%n%{\e[0m%}'):$(print '%{\e[0;34m%}%~%{\e[0m%}')$ "
 
export PS2="$(print '%{\e[0;34m%}>%{\e[0m%}')"
 
export PS2="$(print '%{\e[0;34m%}>%{\e[0m%}')"
  
# Vars used later on by Zsh
+
# Proměnné použité později v Zsh
 
export EDITOR="gvim -geom 82x35"
 
export EDITOR="gvim -geom 82x35"
 
export BROWSER=links
 
export BROWSER=links
Line 218: Line 217:
  
 
##################################################################
 
##################################################################
# Stuff to make my life easier
+
# Pár věcí k usnadnění práce
  
# allow approximate
+
# povol approximate
 
zstyle ':completion:*' completer _complete _match _approximate
 
zstyle ':completion:*' completer _complete _match _approximate
 
zstyle ':completion:*:match:*' original only
 
zstyle ':completion:*:match:*' original only
 
zstyle ':completion:*:approximate:*' max-errors 1 numeric
 
zstyle ':completion:*:approximate:*' max-errors 1 numeric
  
# tab completion for PID :D
+
# doplňování pomocí klávesy TAB pro PID :D
 
zstyle ':completion:*:*:kill:*' menu yes select
 
zstyle ':completion:*:*:kill:*' menu yes select
 
zstyle ':completion:*:kill:*' force-list always
 
zstyle ':completion:*:kill:*' force-list always
  
# cd not select parent dir
+
# příkaz cd nevybere rodičovský adresář
 
zstyle ':completion:*:cd:*' ignore-parents parent pwd
 
zstyle ':completion:*:cd:*' ignore-parents parent pwd
  
 
##################################################################
 
##################################################################
# Key bindings
+
# Nastavení kláves
 
# http://mundy.yazzy.org/unix/zsh.php
 
# http://mundy.yazzy.org/unix/zsh.php
 
# http://www.zsh.org/mla/users/2000/msg00727.html
 
# http://www.zsh.org/mla/users/2000/msg00727.html
Line 250: Line 249:
  
 
##################################################################
 
##################################################################
# My aliases
+
# Aliasy
  
# Set up auto extension stuff
+
# Nastavíme automatické rozpoznání koncovek souborů
 
alias -s html=$BROWSER
 
alias -s html=$BROWSER
 
alias -s org=$BROWSER
 
alias -s org=$BROWSER
Line 269: Line 268:
 
alias -s PKGBUILD=$EDITOR
 
alias -s PKGBUILD=$EDITOR
  
# Normal aliases
+
# Normální aliasy
 
alias ls='ls --color=auto -F'
 
alias ls='ls --color=auto -F'
 
alias lsd='ls -ld *(-/DN)'
 
alias lsd='ls -ld *(-/DN)'
Line 290: Line 289:
 
alias msn="tmsnc -l hutchy@subdimension.com"
 
alias msn="tmsnc -l hutchy@subdimension.com"
  
# command L equivalent to command |less
+
# ekvivalentní příkazu less
 
alias -g L='|less'  
 
alias -g L='|less'  
  
 
# command S equivalent to command &> /dev/null &
 
# command S equivalent to command &> /dev/null &
alias -g S='&> /dev/null &'
+
# ekvivalentní příkazu &> /dev/null &
  
# type a directory's name to cd to it
+
# napiš jméno adresáře pro vstoupení do něj
 
compctl -/ cd
 
compctl -/ cd
 
</nowiki>}}
 
</nowiki>}}
  
There are many more ways that you can customise Zsh, obviously far too many to list here, see the [http://zsh.sunsite.dk/Doc/ Zsh manual] for more information.
+
Je zde mnoho dalších možností jak si upravit chování Zsh, zjevně příliš mnoho pro probírání zde, podívej se na [http://zsh.sunsite.dk/Doc/ Zsh manuál] pro více informací.
  
===Sample .zshrc files===
+
=== Ukázkové .zshrc soubory ===
  
Here is a list of {{Filename|.zshrc}} files. Feel free to add your own:
+
Zde je seznam {{ic|.zshrc}} souborů. Klidně přidej svůj vlastní:
  
* Øyvind 'Mr.Elendig' Heggstad <=> Basic setup, with dynamic prompt and window title/hardinfo <=> http://arch.har-ikkje.net/configs/home/dot.zshrc
+
* Øyvind 'Mr.Elendig' Heggstad <=> Základní nastavení, s dynamickou výzvou příkazového řádku a titulkem okna/hardinfo <=> http://arch.har-ikkje.net/configs/home/dot.zshrc
  
==Enable Unicode (obsolete)==
+
== Povolení Unicode (zastaralé) ==
{{Note| Unicode is enabled by default on the official Arch Linux Zsh package.}}
+
{{Box BLUE|Poznámka:|Unicode je v oficiálním balíku Arch Linuxu standardně povoleno.}}
  
 
The latest versions of Zsh support unicode characters. To enable it, just rebuild the package with the [[Arch Build System]].
 
The latest versions of Zsh support unicode characters. To enable it, just rebuild the package with the [[Arch Build System]].
 +
Poslední verze Zsh podporují unicode znaky. Pro jejich povolení znovu sestvat balík s pomocí [[Arch Build System]].
  
And add the option ''--enable-multibyte'' to:  
+
A přidej volbu ''--enable-multibyte'' do:  
  
{{File|name=PKGBUILD|content=
+
{{hc|PKGBUILD|2=
  
 
  build() {
 
  build() {
Line 332: Line 332:
 
}}
 
}}
  
==Uninstallation==
+
== Odinstalace ==
If you decide that Zsh is not the shell for you and you want to return to Bash. You must first change your default shell back to Bash, before removing the Zsh package.
+
Pro případ že se rozhodneš, že Zsh není shell pro tebe a budeš se chtít vrátit Bashi. Nejprve musíš změnit tvůj implicitní shell na Bash.
  
Follow, [[Zsh#Making Zsh your default shell]] to change the default shell back to Bash, just replace zsh with bash.
+
Následuj, [[Zsh#Nastavení Zsh jako implicitní shell]] pro změnu shellu zpět na Bash, jen nahraď Zsh Bashem.
  
Now you can safely remove the Zsh package.
+
Nyní můžeš bezpečně odstranit balík Zsh.
  
{{Warning| Failure to follow the above will result in all kinds of problems.}}
+
{{Warning| Pokud nedodržíš předchozí instrukce, může se vyrojit spousta problémů.}}
  
If you did not follow the above, you can still change the default shell back to Bash by editing /etc/passwd as root. For example:  
+
Pokud jsi nenásledoval instrukce viz výše, stále ještě můžeš změnt implicitní shell zpět na Bash pomocí editace /etc/passwd jako root. Ukázka:
 
   
 
   
from:
+
z:
  username:x:1000:1000:Full Name,,,:/home/username:/bin/zsh
+
  uzivatel:x:1000:1000:Full Name,,,:/home/username:/bin/zsh
to:
+
na:
  username:x:1000:1000:Full Name,,,:/home/username:/bin/bash
+
  uzivatel:x:1000:1000:Full Name,,,:/home/username:/bin/bash
  
==External Resources==
+
== Zdroje ==
 
*[http://zsh.sunsite.dk/Intro/intro_toc.html Zsh Introduction]  
 
*[http://zsh.sunsite.dk/Intro/intro_toc.html Zsh Introduction]  
 
*[http://zsh.sourceforge.net/Guide/zshguide.html Users Guide]
 
*[http://zsh.sourceforge.net/Guide/zshguide.html Users Guide]
Line 357: Line 357:
 
*[http://www.bash2zsh.com/zsh_refcard/refcard.pdf Bash2Zsh Reference Card]
 
*[http://www.bash2zsh.com/zsh_refcard/refcard.pdf Bash2Zsh Reference Card]
 
<br>
 
<br>
*<b>IRC channel:</b> #zsh at irc.freenode.org
+
*<b>IRC kanál:</b> #zsh at irc.freenode.org

Revision as of 09:20, 13 June 2012

Zsh je mocný shell se kterým je možno pracovat jako s interaktivním shellem i jako se interpretrem skriptovacího jazyka. Je sice kompaktibilní se shellem Bash, nabízí však další možnosti jako:

  • Rychlost
  • Vylepšené doplňování klávesou TAB
  • Vzlepšený globbing
  • Vylepšená práce s poli
  • Plně přizpůsobitelný

Zsh Faq nabízí více důvodů proč používat Zsh.

Instrukce pro instalaci

Než začneš, zjisti který shell právě používáš:

$ echo $SHELL

Instalace

Pro instalaci Zsh balíku, spusť:

# pacman -S zsh

Před nastavením Zsh jako impliticní shell se ujisti jestli byl nainstalován korektně jeho spuštěním např. v okně xtermu nebo tty:

$ zsh

Pokud instalace proběhla hladne, měl by jsi teď vidět neznámý prompt, zatím prostě napiš:

$ exit

Nastavení Zsh jako implicitní shell

Pro změnu uživatelského implicitního shellu bez rootovských oprávnění se používá příkaz chsh. Příkaz chsh lze použít pro změnu implicitního shellu bez rootovských oprvávnění jen pokud je shell uveden v souboru /etc/shells. Pokud jsi Zsh instaloval použitím pacmana, Zsh již by měl mít odpovídající záznam v /etc/shells.

Pro pokračování potřebuješ znát plnou cestu k Zsh, proto spusť:

$ which zsh

Změn implicitní shelll pro práve přihlášeného uživatele:

$ chsh -s /bin/zsh

Alternativní cesta ke změně shellu vede přes příkaz usermod. Nevýhodou této metody je potřeba mít k pc rootovský přístup. Více uživatelských účtů může být změněno rychle jako root, použitím příkazu usermod nebo chsh.

Změna implicitního shellu pro více uživatelů použitím příkazu usermod:

# usermod -s /bin/zsh uzivatel

Změna implicitního shellu pro více uživatelů použitím příkazu chsh:

# chsh -s /bin/zsh username
Note: Je třeba se odhlásit a přihlaásit zpět pokud chceš začít používat Zsh hned.

Po opětovném přihlášení si můžeš ověřit, zda je Zsh opravdu tvým implicitním shellem:

$ echo $SHELL

Pokud nemáš rootovská práva a Zsh není zapsán v souboru /etc/shells ale i přesto by jsi rád používal Zsh jako implicitní shell, přejdi na tento záznam ve Zsh FAQ.

Konfigurace

Prestože je Zsh použitelný 'out of the box', skoro určitě nebude nastavený tak jak by sis přál. Kvůli velkému množství možných nastavení dostupných v Zsh se může vytváření konfiguračního souboru stát časově velice náročnou záležitostí.

Dále je přiložený ukázkový konfigurační soubor, poskytuje několik základních nastavení. Pokud chceš použít tento konfigurační soubor, ulož jej jako .zshrc ve svém domovském adresáři. Poté jej již můžeš upravovat bez potřeby odhlašování se tímto příkazem:

$ source ~/.zshrc

Ukázkový .zshrc

Tady je základní .zshrc, který by měl být pro začátek dostačující:

~/.zshrc
autoload -U compinit promptinit
compinit
promptinit
 
# Tohle nastaví defaultní prompt na walters theme
prompt walters

/etc/zprofile

Stejně jako /etc/profile, který používá Bash, tento soubor je pro globální nastavení Zsh + je to dobré místo pro pouštění skriptů z /etc/profile.d/ a nastavování proměnných prostředí jako např. $PATH. Při nastavování $PATH atd. v .zshrc a používání login manažeru jako např. kdm, můžeš zjistit že tyto nastavení nebyly přebrány okením manažerem, zatímco používají /etc/zprofile.

Obecně řečeno, můžes skopírovat /etc/profile do /etc/zprofile.

Ukázková konfigurace:

/etc/zprofile
###############
# Zsh profil #
###############
 
export PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/opt/bin"
 
export MANPATH="/usr/man:/usr/X11R6/man"
export LESSCHARSET="latin1"
export LESS="-R"
 
# nahraje profily z adresáře /etc/profile.d
#  (pokud chceš některý z profilů zakázaz, prostě z příslušného souboru odstraň právo pro spouštění)
if [ `ls -A1 /etc/profile.d/
Poznámka: PKGBUILD Zshellu definuje že profil se nachází v /etc/profile, takže odkazování se na /etc/zprofile může být poněkud zavádějící...

Doplňování příkazů

Asi nejpůsobivější funkcí Zshellu jsou jeho rozšířené schopnosti doplňování. Přinejmenším budeš chtít povolit automatické doplňování ve tvém .zshrc. Pro povolení automatického doplňování, přidej následující:

~/.zshrc
autoload -U compinit
compinit

Pro automatické doplňování obohacené o možnost výběru kurzorovými šipkami přidej toto:

~/.zshrc
zstyle ':completion:*' menu select

Nastavení kláves

Zsh nečte obsah souboru /etc/inputrc, který říká co který příkaz zaslaný emulátorem terminálu znamená. Pro povolení standardních kláves, přidej něco jako toto:

~/.zshrc
# Nastavení kláves
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
bindkey "\e[5~" beginning-of-history
bindkey "\e[6~" end-of-history
bindkey "\e[3~" delete-char
bindkey "\e[2~" quoted-insert
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 "^H" backward-delete-word
# pro rxvt
bindkey "\e[8~" end-of-line
bindkey "\e[7~" beginning-of-line
# pro ne RH/Debian xterm, nemůže ublížit RH/DEbian xtermu
bindkey "\eOH" beginning-of-line
bindkey "\eOF" end-of-line
# pro freebsd konzoli
bindkey "\e[H" beginning-of-line
bindkey "\e[F" end-of-line
# doplňování uprostřed řádku
bindkey '^i' expand-or-complete-prefix

Výzvy příkazového řádku

Tady je rychlý a jednoduchý způsob jak nastavit barevnou výzvu příkazového řádku. Ujisti se že výzva je nastavena na autoload ve tvém .zshrc. Toho může být dosáhnuto přídáním:

~/.zshrc
autoload -U promptinit
promptinit

Nyní si můžeš vypsat dostupné výzvy příkazového řádku:

$ prompt -l

To try one of the commands that is listed, use the command prompt followed by the name of the prompt you like. For example, to use the "walters" prompt, you would enter:

$ prompt walters

Rozšířený .zshrc

Tohle je ukázka rozšířeného .zshrc:

~/.zshrc
###########################################################        
# Vlastnosti 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 a PS2
export PS1="$(print '%{\e[1;34m%}%n%{\e[0m%}'):$(print '%{\e[0;34m%}%~%{\e[0m%}')$ "
export PS2="$(print '%{\e[0;34m%}>%{\e[0m%}')"

# Proměnné použité později v Zsh
export EDITOR="gvim -geom 82x35"
export BROWSER=links
export XTERM="aterm +sb -geometry 80x29 -fg black -bg lightgoldenrodyellow -fn -xos4-terminus-medium-*-normal-*-14-*-*-*-*-*-iso8859-15"

##################################################################
# Pár věcí k usnadnění práce

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

# doplňování pomocí klávesy TAB pro PID :D
zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:kill:*' force-list always

# příkaz cd nevybere rodičovský adresář
zstyle ':completion:*:cd:*' ignore-parents parent pwd

##################################################################
# Nastavení kláves
# 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 

##################################################################
# Aliasy

# Nastavíme automatické rozpoznání koncovek souborů
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

# Normální aliasy
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"

# ekvivalentní příkazu less
alias -g L='|less' 

# command S equivalent to command &> /dev/null &
# ekvivalentní příkazu &> /dev/null &

# napiš jméno adresáře pro vstoupení do něj
compctl -/ cd

Je zde mnoho dalších možností jak si upravit chování Zsh, zjevně příliš mnoho pro probírání zde, podívej se na Zsh manuál pro více informací.

Ukázkové .zshrc soubory

Zde je seznam .zshrc souborů. Klidně přidej svůj vlastní:

Povolení Unicode (zastaralé)

Poznámka: Unicode je v oficiálním balíku Arch Linuxu standardně povoleno.

The latest versions of Zsh support unicode characters. To enable it, just rebuild the package with the Arch Build System. Poslední verze Zsh podporují unicode znaky. Pro jejich povolení znovu sestvat balík s pomocí Arch Build System.

A přidej volbu --enable-multibyte do:

PKGBUILD
build() {
cd $startdir/src/$pkgname-$pkgver
./configure --prefix=/usr --bindir=/bin \
--enable-etcdir=/etc/zsh \
--enable-zshenv=/etc/zsh/zshenv \
--enable-zlogin=/etc/zsh/zlogin \
--enable-zlogout=/etc/zsh/zlogout \
--enable-zprofile=/etc/profile \
--enable-zshrc=/etc/zsh/zshrc \
--enable-maildir-support \
--with-curses-terminfo \
--enable-zsh-secure-free \
--enable-multibyte

Odinstalace

Pro případ že se rozhodneš, že Zsh není shell pro tebe a budeš se chtít vrátit Bashi. Nejprve musíš změnit tvůj implicitní shell na Bash.

Následuj, Zsh#Nastavení Zsh jako implicitní shell pro změnu shellu zpět na Bash, jen nahraď Zsh Bashem.

Nyní můžeš bezpečně odstranit balík Zsh.

Warning: Pokud nedodržíš předchozí instrukce, může se vyrojit spousta problémů.

Pokud jsi nenásledoval instrukce viz výše, stále ještě můžeš změnt implicitní shell zpět na Bash pomocí editace /etc/passwd jako root. Ukázka:

z:

uzivatel:x:1000:1000:Full Name,,,:/home/username:/bin/zsh

na:

uzivatel:x:1000:1000:Full Name,,,:/home/username:/bin/bash

Zdroje


  • IRC kanál: #zsh at irc.freenode.org