man pages section 1: User Commands

Exit Print View

Updated: July 2014

zshroadmap (1)


zshroadmap - informal introduction to the zsh manual The Zsh Manual, like the shell itself, is large and often complicated. This section of the manual provides some pointers to areas of the shell that are likely to be of par- ticular interest to new users, and indicates where in the rest of the manual the documentation is to be found.


Please see following description for synopsis


User Commands                                       ZSHROADMAP(1)

     zshroadmap - informal introduction to the zsh manual

     The  Zsh  Manual,  like the shell itself, is large and often
     complicated.  This  section  of  the  manual  provides  some
     pointers to areas of the shell that are likely to be of par-
     ticular interest to new users, and indicates  where  in  the
     rest of the manual the documentation is to be found.

     When it starts, the shell reads commands from various files.
     These can be created or edited to customize the shell.   See
     the section Startup/Shutdown Files in zsh(1).

     If  no  personal  initialization files exist for the current
     user, a function is run to help you change some of the  most
     common  settings.  It won't appear if your administrator has
     disabled the zsh/newuser module.  The function  is  designed
     to  be  self-explanatory.   You  can  run  it  by  hand with
     `autoload -Uz zsh-newuser-install; zsh-newuser-install  -f'.
     See also the section User Configuration Functions in zshcon-

     Interaction with the shell uses the builtin Zsh Line Editor,
     ZLE.  This is described in detail in zshzle(1).

     The  first  decision  a user must make is whether to use the
     Emacs or Vi editing mode as the keys for  editing  are  sub-
     stantially  different.   Emacs editing mode is probably more
     natural for beginners and can be  selected  explicitly  with
     the command bindkey -e.

     A  history  mechanism  for retrieving previously typed lines
     (most simply with the Up or Down arrow keys)  is  available;
     note  that,  unlike  other  shells,  zsh will not save these
     lines when the shell exits unless you set appropriate  vari-
     ables,  and  the number of history lines retained by default
     is quite small (30 lines).  See the description of the shell
     variables  (referred  to in the documentation as parameters)
     HISTFILE, HISTSIZE and SAVEHIST in zshparam(1).

     The shell now supports the UTF-8  character  set  (and  also
     others  if  supported  by  the  operating  system).  This is
     (mostly) handled transparently by the shell, but the  degree
     of support in terminal emulators is variable.  There is some
     discussion  of  this  in  the  shell  FAQ,  .  Note in particular that for combining char-
     acters to be handled the option COMBINING_CHARS needs to  be
     set.  Because the shell is now more sensitive to the defini-
     tion of the character set, note that if  you  are  upgrading
     from  an  older  version of the shell you should ensure that

zsh 5.0.5          Last change: January 5, 2014                 1

User Commands                                       ZSHROADMAP(1)

     the appropriate variable, either LANG (to affect all aspects
     of  the  shell's  operation) or LC_CTYPE (to affect only the
     handling of character sets) is set to an appropriate  value.
     This  is  true even if you are using a single-byte character
     set including extensions of  ASCII  such  as  ISO-8859-1  or
     ISO-8859-15.   See  the  description  of  LC_CTYPE  in  zsh-

     Completion is a feature present in many  shells.  It  allows
     the  user to type only a part (usually the prefix) of a word
     and have the shell fill in the rest.  The completion  system
     in  zsh  is programmable.  For example, the shell can be set
     to complete email addresses in arguments to the mail command
     from  your  ~/.abook/addressbook;  usernames, hostnames, and
     even remote paths in arguments to scp, and so on.   Anything
     that can be written in or glued together with zsh can be the
     source of what the line editor offers  as  possible  comple-

     Zsh  has  two  completion systems, an old, so called compctl
     completion (named after the builtin command that  serves  as
     its  complete  and  only  user  interface),  and  a new one,
     referred to as compsys, organized as library of builtin  and
     user-defined  functions.   The  two  systems differ in their
     interface for specifying the completion behavior.   The  new
     system is more customizable and is supplied with completions
     for many commonly used commands; it is therefore to be  pre-

     The  completion  system  must be enabled explicitly when the
     shell starts.  For more information see zshcompsys(1).

  Extending the line editor
     Apart from completion, the line editor is highly  extensible
     by means of shell functions.  Some useful functions are pro-
     vided with the shell; they provide facilities such as:

          composing characters not found on the keyboard

          configuring what the line editor considers a word  when
          moving or deleting by word

     history-beginning-search-backward-end, etc.
          alternative ways of searching the shell history

     replace-string, replace-pattern
          functions for replacing strings or patterns globally in
          the command line

zsh 5.0.5          Last change: January 5, 2014                 2

User Commands                                       ZSHROADMAP(1)

          edit the command line with an external editor.

     See  the  section  `ZLE  Functions'  in  zshcontrib(1)   for
     descriptions of these.

     The shell has a large number of options for changing its be-
     haviour.  These cover all aspects of the shell; browsing the
     full documentation is the only good way to become acquainted
     with the many possibilities.  See zshoptions(1).

     The shell has a rich set of patterns which are available for
     file  matching  (described in the documentation as `filename
     generation' and also known for historical reasons as  `glob-
     bing') and for use when programming.  These are described in
     the section `Filename Generation' in zshexpn(1).

     Of particular interest are the following patterns  that  are
     not commonly supported by other systems of pattern matching:

     **   for matching over multiple directories

     ~, ^ the ability to exclude patterns from matching when  the
          EXTENDED_GLOB option is set

          glob  qualifiers, included in parentheses at the end of
          the pattern, which select files by type (such as direc-
          tories) or attribute (such as size).

     Although  the  syntax  of zsh is in ways similar to the Korn
     shell, and therefore more  remotely  to  the  original  UNIX
     shell,  the  Bourne  shell,  its  default behaviour does not
     entirely correspond to those shells.  General  shell  syntax
     is  introduced in the section `Shell Grammar' in zshmisc(1).

     One commonly encountered difference is that  variables  sub-
     stituted  onto  the  command  line are not split into words.
     See the description of the shell option SH_WORD_SPLIT in the
     section  `Parameter  Expansion'  in zshexpn(1).  In zsh, you
     can either explicitly request the splitting  (e.g.  ${=foo})
     or  use  an array when you want a variable to expand to more
     than one word.  See the section `Array Parameters'  in  zsh-

     The  most convenient way of adding enhancements to the shell
     is typically by writing a shell function and  arranging  for
     it to be autoloaded.  Functions are described in the section

zsh 5.0.5          Last change: January 5, 2014                 3

User Commands                                       ZSHROADMAP(1)

     `Functions' in zshmisc(1).  Users changing from the C  shell
     and  its  relatives should notice that aliases are less used
     in zsh as they don't  perform  argument  substitution,  only
     simple text replacement.

     A  few general functions, other than those for the line edi-
     tor described above, are provided with  the  shell  and  are
     described in zshcontrib(1).  Features include:

          a  prompt theme system for changing prompts easily, see
          the section `Prompt Themes'

          a  MIME-handling  system  which   dispatches   commands
          according  to the suffix of a file as done by graphical
          file managers

          a calculator

          a version of xargs that makes the find  command  redun-

     zmv  a  command  for  renaming  files by means of shell pat-

     See  attributes(5)  for  descriptions   of   the   following

     |Availability   | shell/zsh        |
     |Stability      | Volatile         |
     This   software   was   built   from   source  available  at   The   original
     community   source   was   downloaded   from    http://down-

     Further  information about this software can be found on the
     open source community website at

zsh 5.0.5          Last change: January 5, 2014                 4