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)
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 par-
ticular 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 zshcon-
trib(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 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, http://zsh.dot-
src.org/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-
param(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 comple-
tions.
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-
ferred.
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:
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
zsh 5.0.5 Last change: January 5, 2014 2
User Commands ZSHROADMAP(1)
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 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).
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 `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).
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 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-
param(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
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:
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 redun-
dant
zmv a command for renaming files by means of shell pat-
terns.
ATTRIBUTES
See attributes(5) for descriptions of the following
attributes:
+---------------+------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+------------------+
|Availability | shell/zsh |
+---------------+------------------+
|Stability | Volatile |
+---------------+------------------+
NOTES
This software was built from source available at
https://java.net/projects/solaris-userland. The original
community source was downloaded from http://down-
loads.source-
forge.net/project/zsh/zsh/5.0.5/zsh-5.0.5.tar.bz2
Further information about this software can be found on the
open source community website at http://www.zsh.org/.
zsh 5.0.5 Last change: January 5, 2014 4