Introduction to ZSH

The ZSH package contains a command interpreter (shell) usable as an interactive login shell and as a shell script command processor. Of the standard shells, ZSH most closely resembles KSH but includes many enhancements.



This version of ZSH is a development release. The BLFS staff has determined that it provides a stable program which works properly with multibyte locales (e.g., UTF-8). To find the current stable release, refer to the ZSH home page and compile ZSH with the same instructions.

Package Information

Additional Downloads

ZSH Dependencies


PCRE-7.6 and libcap

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/zsh

Installation of ZSH

If you downloaded the optional documentation, unpack it with the following command:

tar --strip-components=1 -xvf ../zsh-4.3.6-doc.tar.bz2

Install ZSH by running the following commands:

./configure --prefix=/usr \
            --bindir=/bin \
            --sysconfdir=/etc/zsh \
            --enable-etcdir=/etc/zsh &&

If you have teTeX-3.0 installed, you can build additional formats of the documentation by issuing any or all of the following commands:

texi2pdf  Doc/zsh.texi -o Doc/zsh.pdf &&
texi2html Doc/zsh.texi --output=Doc/zsh_1file_t.html &&
makeinfo  Doc/zsh.texi --html --no-split --no-headers \
                       -o Doc/zsh_1file_m.html &&
makeinfo  Doc/zsh.texi --plaintext -o Doc/zsh.txt

To test the results, issue: make check.

Now, as the root user:

make install &&
make infodir=/usr/share/info install.info

If you downloaded the optional documentation, install it by issuing the following commands as the root user:

make htmldir=/usr/share/doc/zsh-4.3.6/html install.html &&
install -v -m644 Doc/zsh.dvi /usr/share/doc/zsh-4.3.6

If you built any additional formats of the documentation, install them by issuing the following command as the root user:

install -v -m644 Doc/{zsh_1file*,*.{pdf,txt}} \

Command Explanations

--sysconfdir=/etc/zsh and --enable-etcdir=/etc/zsh: These parameters are used so that all the ZSH configuration files are consolidated into the /etc/zsh directory. Omit these parameters if you wish to retain historical compatibility by having all the files located in the /etc directory.

--bindir=/bin: This parameter places the zsh binaries into the root filesystem.

--enable-cap: This parameter enables POSIX capabilities.

--enable-pcre: This parameter allows to use the PCRE regular expression library in shell builtins. Note: Linking ZSH dynamically against PCRE, produces a runtime dependency on libpcre.so. If /usr is a separate mount point and zsh needs to be available at boot time, either you have to statically link ZSH against PCRE (you can examine the config.modules file on how to link statically the module), or move the library to /lib as follows:

mv -v /usr/lib/libpcre.so.* /lib/ &&
ln -v -sf ../../lib/libpcre.so.0 /usr/lib/libpcre.so

Configuring ZSH

Config Files

There are a whole host of configuration files for ZSH including /etc/zsh/zshenv, /etc/zsh/zprofile, /etc/zsh/zshrc, /etc/zsh/zlogin and /etc/zsh/zlogout. You can find more information on these in the zsh(1) and related manual pages.

Configuration Information

Update /etc/shells to include the ZSH shell program names (as the root user):

cat >> /etc/shells << "EOF"


Installed Programs: zsh and zsh-4.3.6
Installed Libraries: Numerous plugin helper modules
Installed Directories: /etc/zsh, /usr/lib/zsh, /usr/share/doc/zsh-4.3.6 and /usr/share/zsh

Short Description


is a shell which has command-line editing, built-in spelling correction, programmable command completion, shell functions (with autoloading), a history mechanism, and a host of other features.

Last updated on 2008-05-09 08:00:42 -0500