Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ZSHROADMAP(1)		    General Commands Manual		 ZSHROADMAP(1)

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 func-
       tion 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).  Note that	 it's  currently  only
       possible	 to  read and write files saving history when the shell	is in-
       teractive, i.e. it does not work	from scripts.

       The shell now supports the UTF-8	character set (and also	others if sup-
       ported by the operating system).	 This is  (mostly)  handled  transpar-
       ently  by the shell, but	the degree of support in terminal emulators is
       variable.   There  is  some  discussion	of  this  in  the  shell  FAQ,
       https://www.zsh.org/FAQ/.   Note	in particular that for combining char-
       acters to be handled the	option COMBINING_CHARS needs to	be  set.   Be-
       cause  the shell	is now more sensitive to the definition	of the charac-
       ter 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  includ-
       ing extensions of ASCII such as ISO-8859-1 or ISO-8859-15.  See the de-
       scription 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	 exam-
       ple,  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 com-
	      mand 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  pro-
       gramming.   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

       |      for matching either of two alternatives

       ~, ^   the ability to exclude  patterns	from  matching	when  the  EX-
	      TENDED_GLOB option is set

       (...)  glob  qualifiers,	included in parentheses	at the end of the pat-
	      tern, which select files by type (such as	 directories)  or  at-
	      tribute (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 zsh-
       expn(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	 typi-
       cally  by  writing  a  shell  function  and  arranging for it to	be au-
       toloaded.  Functions are	described in the section `Functions'  in  zsh-
       misc(1).	  Users	changing from the C shell and its relatives should no-
       tice 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  sec-
	      tion `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.

zsh 5.9				 May 14, 2022			 ZSHROADMAP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zshroadmap&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help