Man Linux: Main Page and Category List

NAME

       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  particular  interest  to  new users, and
       indicates where in the rest of the manual the documentation  is  to  be
       found.

WHEN THE SHELL STARTS

       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
       zshcontrib(1).

INTERACTIVE USE

       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 substantially 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 variables, 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,   http://zsh.dotsrc.org/FAQ/   .   Note  in  particular  that  for
       combining characters to be handled the option COMBINING_CHARS needs  to
       be  set.   Because the shell is now more sensitive to the definition of
       the character set, note that if you are upgrading from an older version
       of  the  shell  you should ensure that 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 zshparam(1).

   Completion
       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 completions.

       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 preferred.

       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 provided with the shell;
       they provide facilities such as:

       insert-composed-char
              composing characters not found on the keyboard

       match-words-by-style
              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

       edit-command-line
              edit the command line with an external editor.

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

OPTIONS

       The  shell  has  a  large number of options for changing its behaviour.
       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).

PATTERN MATCHING

       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  `globbing')  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 directories) or
              attribute (such as size).

GENERAL COMMENTS ON SYNTAX

       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 substituted  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 zshparam(1).

PROGRAMMING

       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  `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 editor described
       above, are provided with the shell and are described in  zshcontrib(1).
       Features include:

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

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

       zcalc  a calculator

       zargs  a version of xargs that makes the find command redundant

       zmv    a command for renaming files by means of shell patterns.