.. _intro_zsh_introduction:

Introduction
============

:literal:`zsh` is a shell designed for interactive use, although it is also a powerful scripting language.  Many of the useful features of bash, ksh, and tcsh were incorporated into :literal:`zsh`; many original features were added.  This document details some of the unique features of :literal:`zsh`.  It assumes basic knowledge of the standard UNIX shells; the intent is to show a reader already familiar with one of the other major shells what makes :literal:`zsh` more useful or more powerful.  This document is not at all comprehensive; read the manual entry for a description of the shell that is complete and concise, although somewhat overwhelming and devoid of examples.

The text will frequently mention options that you can set to change the behaviour of :literal:`zsh`.  You can set these options with the command

.. code-block:: text
   :caption: Set option with setopt
   :name: introduction_setopt

   % setopt optionname

and unset them again with

.. code-block:: text
   :caption: Unset option with unsetopt
   :name: introduction_unsetopt

   % unsetopt optionname

Case is ignored in option names, as are embedded underscores.
