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 package is known to build and work properly using an LFS-7.7 platform.

Package Information

  • Download (HTTP): http://www.zsh.org/pub/zsh-5.0.7.tar.bz2

  • Download MD5 sum: 1cd396ce17952de50b8a89980d617f0a

  • Download size: 3.1 MB

  • Estimated disk space required: 63 MB (includes installing documentation - additional 1 MB for PDF documentation)

  • Estimated build time: 0.9 SBU (additional less than 0.1 SBU for PDF documentation and additional 0.2 SBU for the tests)

Additional Downloads

zsh Dependencies


libcap-2.24 with PAM, PCRE-8.36, and Valgrind-3.10.1,

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-5.0.7-doc.tar.bz2

Install zsh by running the following commands:

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

makeinfo  Doc/zsh.texi --plaintext -o Doc/zsh.txt     &&
makeinfo  Doc/zsh.texi --html      -o Doc/html        &&
makeinfo  Doc/zsh.texi --html --no-split --no-headers -o Doc/zsh.html

If you have texlive-20140525 installed, you can build PDF format of the documentation by issuing the following command:

texi2pdf  Doc/zsh.texi -o Doc/zsh.pdf

To test the results, issue: make check.

Now, as the root user:

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

install -v -m755 -d                 /usr/share/doc/zsh-5.0.7/html &&
install -v -m644 Doc/html/*         /usr/share/doc/zsh-5.0.7/html &&
install -v -m644 Doc/zsh.{html,txt} /usr/share/doc/zsh-5.0.7

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

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

If you built the PDF format of the documentation, install it by issuing the following command as the root user:

install -v -m644 Doc/zsh.pdf /usr/share/doc/zsh-5.0.7

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 option enables POSIX capabilities.

--disable-gdbm: This option disables the use of the GDBM library.

--enable-pcre: This option allows zsh to use the PCRE regular expression library in shell builtins.

Multiple partitions

Linking zsh dynamically against pcre and/or gdbm produces runtime dependencies on libpcre.so and/or libgdbm.so respectively, which both reside in /usr hierarchy. If /usr is a separate mount point and zsh needs to be available in boot time, then its supporting libraries should be in /lib too. You can move the libraries as follows:

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

mv -v /usr/lib/libgdbm.so.* /lib &&
ln -v -sf ../../lib/libgdbm.so.3 /usr/lib/libgdbm.so

Alternatively you can statically link zsh against pcre and gdbm if you modify the config.modules file (you need first to run configure to generate it).

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.

The first time zsh is executed, you will be prompted by messages asking several questions. The answers will be used to create a ~/.zshrc file. If you wish to run these questions again, run zsh /usr/share/zsh/5.0.7/functions/zsh-newuser-install -f.

There are several built-in advanced prompts. In the zsh shell, start advanced prompt support with autoload -U promptinit, then promptinit. Available prompt names are listed with prompt -l. Select a particular one with prompt <prompt-name>. Display all available prompts with prompt -p. Except for the list and display commands above, you can insert the other ones in ~/.zshrc to be automatically executed at shell start, with the prompt you chose.

Configuration Information

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

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


Installed Programs: zsh (hardlink to zsh-5.0.7) and zsh-5.0.7
Installed Libraries: Numerous plugin helper modules under /usr/lib/zsh/5.0.7/
Installed Directories: /etc/zsh, /usr/lib/zsh, /usr/share/doc/zsh-5.0.7 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 2015-02-26 20:16:43 -0800