<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.tachyony.co.uk/w/index.php?action=history&amp;feed=atom&amp;title=Unix_shell</id>
	<title>Unix shell - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tachyony.co.uk/w/index.php?action=history&amp;feed=atom&amp;title=Unix_shell"/>
	<link rel="alternate" type="text/html" href="https://wiki.tachyony.co.uk/w/index.php?title=Unix_shell&amp;action=history"/>
	<updated>2026-06-16T19:51:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.tachyony.co.uk/w/index.php?title=Unix_shell&amp;diff=36978&amp;oldid=prev</id>
		<title>imported&gt;Guy Harris: /* Bourne shell */ Put all the stuff about what the Korn shell is in the list entry for it. No need to link it a second time. Just call it the &quot;Korn shell&quot; - to what extent is it really call &quot;KornShell&quot; rather than &quot;the Korn shell&quot;? (Maybe KornShell is an official name, but, well, Google Ngram reports it&#039;s not as popular ss the original name - https://books.google.com/ngrams/graph?content=Korn+shell%2CKornShell&amp;year_start=1980&amp;year_end=2022&amp;corpus=en&amp;smoothing=3&amp;case_insensitive=false)</title>
		<link rel="alternate" type="text/html" href="https://wiki.tachyony.co.uk/w/index.php?title=Unix_shell&amp;diff=36978&amp;oldid=prev"/>
		<updated>2026-01-12T23:19:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Bourne shell: &lt;/span&gt; Put all the stuff about what the Korn shell is in the list entry for it. No need to link it a second time. Just call it the &amp;quot;Korn shell&amp;quot; - to what extent is it really call &amp;quot;KornShell&amp;quot; rather than &amp;quot;the Korn shell&amp;quot;? (Maybe KornShell is an official name, but, well, Google Ngram reports it&amp;#039;s not as popular ss the original name - https://books.google.com/ngrams/graph?content=Korn+shell%2CKornShell&amp;amp;year_start=1980&amp;amp;year_end=2022&amp;amp;corpus=en&amp;amp;smoothing=3&amp;amp;case_insensitive=false)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{short description|Command-line interpreter for Unix operating system}}&lt;br /&gt;
[[File:Tcsh ejecutándose en escritorio Mac OSX.png|thumb|300px|right|tcsh and sh shell windows on a [[Mac OS X Leopard]]&amp;lt;ref name=&amp;quot;Vleck&amp;quot; /&amp;gt; desktop]]&lt;br /&gt;
&lt;br /&gt;
A &amp;#039;&amp;#039;&amp;#039;Unix shell&amp;#039;&amp;#039;&amp;#039; is a [[shell (computing)|shell]] that provides a [[Command-line_interface#Command-line_interpreter|command-line]] [[user interface]] for a [[Unix-like]] [[operating system]]. A Unix shell provides a [[command language]] that can be used either [[interactively]] or for writing a [[shell script]].&amp;lt;ref&amp;gt;{{cite news | url=https://archive.org/stream/byte-magazine-1983-10/1983_10_BYTE_08-10_UNIX#page/n187/mode/2up | title=The Unix Shell | work=BYTE | date=October 1983 | access-date=30 January 2015 | author=Bourne, Stephen R. | pages=187}}&amp;lt;/ref&amp;gt; A user typically works within a Unix shell via a [[terminal emulator]]; however, direct access via serial hardware connections or a [[Secure Shell]] are common for server systems. Although use of a Unix shell is popular with some users, others prefer to use a [[graphical shell]] in a [[windowing system]], such as those provided in desktop [[Linux distribution]]s or [[macOS]], instead of a command-line interface (CLI).&lt;br /&gt;
&lt;br /&gt;
A user may have access to multiple Unix shells with one configured to run by default when the user [[Log in|logs in]] interactively. The [[Default (computer science)|default]] selection is typically stored in a user&amp;#039;s profile (for example, in the local {{mono|[[Passwd (file)|passwd]]}} file or in a distributed configuration system such as [[Network Information Service|NIS]] or [[Lightweight Directory Access Protocol|LDAP]]). A user may use other shells [[Nesting (computing)|nested]] inside the default shell.&lt;br /&gt;
&lt;br /&gt;
A Unix shell may provide many features including: [[variable (computer science)|variable]] definition and substitution, [[command substitution]], [[Wildcard character|filename wildcarding]], [[Pipeline (Unix)|stream piping]], [[control flow|control flow structures]] ([[Conditional (programming)|condition-testing]] and [[iteration]]), [[working directory|working directory context]], and [[here document]].&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
===Early shells===&lt;br /&gt;
&lt;br /&gt;
The first Unix shell was the [[Thompson shell]], &amp;#039;&amp;#039;sh&amp;#039;&amp;#039;, written by [[Ken Thompson (computer programmer)|Ken Thompson]] at [[Bell Labs]] and distributed with Versions 1 through 6 of Unix, from 1971 to 1975.&amp;lt;ref name=&amp;quot;v6hist&amp;quot;&amp;gt;{{ cite web|url=http://v6shell.org/history/ |title=V6 Thompson Shell Port - History |publisher=V6shell.org |access-date=2012-08-14 }}&amp;lt;/ref&amp;gt; Though rudimentary by modern standards, it introduced many of the basic features common to all later Unix shells, including piping, simple control structures using &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;goto&amp;lt;/code&amp;gt;, and filename [[Glob (programming)|GLOB]]&amp;lt;nowiki/&amp;gt;bing.  Though not in current use, it is still available as part of some [[Ancient UNIX]] systems, such as [[Version 6 Unix]].&lt;br /&gt;
&lt;br /&gt;
It was modeled after the [[Multics]] shell, developed in 1965 by American software engineer [[Glenda Schroeder]]. Schroeder&amp;#039;s Multics shell was itself modeled after the [[RUNCOM]] program [[Louis Pouzin]] showed to the Multics Team. The &amp;quot;rc&amp;quot; suffix on some Unix configuration files (e.g.  &amp;quot;.bashrc&amp;quot; or &amp;quot;.vimrc&amp;quot;), is a remnant of the RUNCOM ancestry of Unix shells.&amp;lt;ref name=&amp;quot;Vleck&amp;quot;&amp;gt;{{ cite web|author=Tom Van Vleck |url=http://www.multicians.org/unix.html |title=Unix and Multics |publisher=Multicians.org |date=1995-02-05 |access-date=2012-08-14 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;Pouzin&amp;quot;&amp;gt;{{ cite web|author=Louis Pouzin |url=http://www.multicians.org/shell.html |title=The Origin of the Shell |publisher=Multicians.org |date=2000-11-25 |access-date=2012-08-14 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [[PWB shell]] or Mashey shell, &amp;#039;&amp;#039;sh&amp;#039;&amp;#039;, was an upward-compatible version of the Thompson shell, augmented by [[John Mashey]] and others and distributed with the [[PWB/UNIX|Programmer&amp;#039;s Workbench UNIX]], circa 1975–1977. It focused on making shell programming practical, especially in large shared computing centers. It added shell variables (precursors of [[environment variable]]s, including the search path mechanism that evolved into $PATH), user-executable shell scripts, and interrupt-handling.  Control structures were extended from if/goto to if/then/else/endif, switch/breaksw/endsw, and while/end/break/continue.  As shell programming became widespread, these external commands were incorporated into the shell itself for performance.&lt;br /&gt;
&lt;br /&gt;
But the most widely distributed and influential of the early Unix shells were the [[Bourne shell]] and the [[C shell]]. Both shells have been used as the coding base and model for many derivative and work-alike shells with extended feature sets.&amp;lt;ref&amp;gt;{{cite web|url=http://www.softpanorama.org/People/Shell_giants/introduction.shtml|title=Introduction to the Unix shell history|author=Nikolai Bezroukov|author-link=Nikolai Bezroukov|publisher=Softpanorama|date=2015-08-13|access-date=2016-08-21|archive-url=https://web.archive.org/web/20220608181527/http://www.softpanorama.org/People/Shell_giants/introduction.shtml|archive-date=2022-06-08|url-status=dead}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bourne shell===&lt;br /&gt;
The [[Bourne shell]], &amp;#039;&amp;#039;sh&amp;#039;&amp;#039;, was a new Unix shell by [[Stephen R. Bourne|Stephen Bourne]] at Bell Labs.&amp;lt;ref&amp;gt;{{cite interview|url=https://www2.computerworld.com.au/article/279011/a-z_programming_languages_bourne_shell_sh/|title=The A-Z of Programming Languages: Bourne shell, or sh|first=Stephen|last=Bourne|subject-link=Stephen R. Bourne|interviewer=Howard Dahdah|date=2009-03-05|publisher=[[Computerworld]]|access-date=2022-08-16|archive-date=2022-08-16|archive-url=https://web.archive.org/web/20220816190150/https://www2.computerworld.com.au/article/279011/a-z_programming_languages_bourne_shell_sh/|url-status=dead}}&amp;lt;/ref&amp;gt; Distributed as the shell for UNIX Version 7 in 1979, it introduced the rest of the basic features considered common to all the later Unix shells, including [[here document]]s, [[command substitution]], more generic [[Variable (programming)|variables]] and more extensive builtin [[control flow|control structures]].  The language, including the use of a reversed keyword to mark the end of a block, was influenced by [[ALGOL 68]].&amp;lt;ref&amp;gt;{{cite web|url=http://groups.google.com/group/comp.lang.misc/msg/d58db4799c33e093?hl=en&amp;amp;dmode=source|title=&amp;#039;&amp;#039;Re: Late Bloomers Revisited&amp;#039;&amp;#039;|access-date=20 September 2014}}&amp;lt;/ref&amp;gt;  Traditionally, the Bourne shell program name is {{mono|sh}} and its path in the Unix file system hierarchy is {{mono|/bin/sh}}.  But a number of compatible work-alikes are also available with various improvements and additional features.  On many systems, sh may be a [[symbolic link]] or [[hard link]] to one of these alternatives:&lt;br /&gt;
&lt;br /&gt;
* [[Almquist shell]] (ash): written as a BSD-licensed replacement for the Bourne Shell; often used in resource-constrained environments. The sh of [[FreeBSD]], [[NetBSD]] (and their derivatives) are based on ash that has been enhanced to be [[POSIX]] conformant.&lt;br /&gt;
** [[Busybox]]: a set of Unix utilities for small and embedded systems, which includes 2 shells: ash, a derivative of the Almquist shell; and hush, an independent implementation of a Bourne shell.&lt;br /&gt;
** [[Debian Almquist shell]] (dash): a modern replacement for ash in [[Debian]] and [[Ubuntu (operating system)|Ubuntu]]&lt;br /&gt;
* [[Bash (Unix shell)|Bourne-Again shell]] (bash): written as part of the [[GNU Project]] to provide a superset of Bourne Shell functionality. This shell can be found installed and is the default interactive shell for users on most [[Linux]] systems; it provides both interactive mode (implemented by GNU Readline) or script-mode.&lt;br /&gt;
* [[KornShell|Korn shell]] (ksh): an enhanced version of the Bourne shell, written by [[David Korn (computer scientist)|David Korn]] based on the Bourne shell sources&amp;lt;ref&amp;gt;&lt;br /&gt;
{{citation&lt;br /&gt;
| title = ksh - An Extensible High Level Language&lt;br /&gt;
| last = Korn&lt;br /&gt;
| first = David G.&lt;br /&gt;
| publisher = USENIX Association&lt;br /&gt;
| journal = Proceedings of the USENIX 1994 Very High Level Languages Symposium&lt;br /&gt;
| date = October 26, 1994&lt;br /&gt;
| url = https://www.usenix.org/legacy/publications/library/proceedings/vhll/full_papers/korn.ksh.a&lt;br /&gt;
| quote = Instead of inventing a new script language, we built a form entry system by modifying the Bourne shell, adding built-in commands as necessary.&lt;br /&gt;
| access-date = February 5, 2015&lt;br /&gt;
}}&amp;lt;/ref&amp;gt; while working at [[Bell Labs]]&lt;br /&gt;
* [[pdksh|Public domain Korn shell]] (pdksh)&lt;br /&gt;
** [[mksh|MirBSD Korn shell]] (mksh): a descendant of the [[OpenBSD]] /bin/ksh and pdksh, developed as part of [[MirOS BSD]]&lt;br /&gt;
* [[Z shell]] (zsh): a relatively modern shell that is partially [[backward compatible]] with [[bash (Unix shell)|bash]]. It&amp;#039;s the default shell in [[Kali Linux]] since 2020.4 and [[macOS]] since 10.15 [[macOS Catalina|Catalina]].&lt;br /&gt;
&lt;br /&gt;
The [[POSIX]] standard specifies its standard shell as a strict subset of the Korn shell. From a user&amp;#039;s perspective the Bourne shell was immediately recognized when active by its characteristic default command line prompt character, the dollar sign ({{mono|$}}).&lt;br /&gt;
&lt;br /&gt;
===C shell===&lt;br /&gt;
The [[C shell]], &amp;#039;&amp;#039;csh&amp;#039;&amp;#039;, was modeled on the [[C programming language]], including the control structures and the expression grammar. It was written by [[Bill Joy]] as a graduate student at [[University of California, Berkeley]], and was widely distributed with [[Berkeley Software Distribution|BSD Unix]].&amp;lt;ref&amp;gt;{{cite book |author=Harley Hahn |chapter-url=https://www.harley.com/unix-book/book/chapters/h.html |title=Harley Hahn&amp;#039;s Guide to Unix and Linux |chapter=Unix/Linux Timeline}}&amp;lt;/ref&amp;gt;{{better source|date=September 2023}}&lt;br /&gt;
&lt;br /&gt;
The C shell also introduced many features for interactive work, including the [[C shell#History|history]] and [[C shell#Editing operators|editing]] mechanisms, [[C shell#Aliases|aliases]], [[C shell#Directory stack|directory stacks]], [[C shell#Tilde notation|tilde notation]], [[C shell#Cdpath|cdpath]], [[C shell#Job control|job control]] and [[C shell#Path hashing|path hashing]].  On many systems, csh may be a [[symbolic link]] or [[hard link]] to [[TENEX C shell]] (tcsh), an improved version of Joy&amp;#039;s original version.  Although the interactive features of csh have been copied to most other shells, the language structure has not been widely copied.  The only work-alike is [[Hamilton C shell]], written by Nicole Hamilton, first distributed on [[OS/2]] in 1988 and on [[Windows]] since 1992.&amp;lt;ref&amp;gt;{{cite web|url=http://hamiltonlabs.com/ReleaseNotes.htm|title=Hamilton C shell for Windows Release Notes 4.0|access-date=20 September 2014}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration files==&lt;br /&gt;
Shells read configuration files in various circumstances. These files usually contain commands for the shell and are executed when loaded; they are usually used to set important variables used to find executables, like [[$PATH]], and others that control the behavior and appearance of the shell. The table in this section shows the configuration files for popular shells.&amp;lt;ref&amp;gt;{{cite web|url=http://www.unixnote.com/2010/05/different-unix-shell.html|title=Different UNIX Shells|publisher=unixnote.com|date=2010|access-date=2016-08-21|archive-url=https://web.archive.org/web/20160403120601/http://www.unixnote.com/2010/05/different-unix-shell.html|archive-date=2016-04-03|url-status=dead}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable floatleft sortable&amp;quot; style=&amp;quot;text-align: center; margin-right: 2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Configuration file&lt;br /&gt;
![[Bourne shell|sh]]&lt;br /&gt;
![[KornShell|ksh]]&lt;br /&gt;
![[C shell|csh]]&lt;br /&gt;
![[tcsh]]&lt;br /&gt;
![[Bash (Unix shell)|bash]]&lt;br /&gt;
![[Z shell|zsh]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|/etc/.login}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login&lt;br /&gt;
|login&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|/etc/csh.cshrc}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|yes&lt;br /&gt;
|yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|/etc/csh.login}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login&lt;br /&gt;
|login&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.tcshrc}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.cshrc}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|yes&lt;br /&gt;
|yes{{Efn|only if {{mono|~/.tcshrc}} not found}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|/etc/ksh.kshrc}}&lt;br /&gt;
|&lt;br /&gt;
|int.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|/etc/sh.shrc}}&lt;br /&gt;
|int.{{Efn|Newer versions of the Bourne Shell only}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|$ENV}} (typically {{mono|~/.kshrc}})&amp;lt;ref&amp;gt;{{cite book |author=Harley Hahn |chapter-url=https://www.harley.com/unix-book/instructors/exercises/14-exercises.html |title=Harley Hahn&amp;#039;s Guide to Unix and Linux |chapter=Exercises and Answers for Chapter 14... Using The Shell: Initialization Files}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|int.{{Efn|Available on systems that support the &amp;quot;User Portability Utilities option&amp;quot;; value of the variable must be an &amp;#039;&amp;#039;absolute&amp;#039;&amp;#039; path, and it is ignored &amp;quot;if the user&amp;#039;s real and effective user IDs or real and effective group IDs are different.&amp;quot;&amp;lt;ref&amp;gt;{{cite web|url=http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_05_03|title=Shell Command Language|work=opengroup.org|access-date=15 June 2015}}&amp;lt;/ref&amp;gt;}}{{Efn|{{mono|$ENV}} is {{mono|$HOME/.shrc}} in newer versions of the Bourne Shell}}&lt;br /&gt;
|int.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|int.{{Efn|Same behavior as {{mono|sh}}, but only if invoked as {{mono|sh}} (bash 2+) or, since bash 4.2, also if invoked &amp;#039;&amp;#039;explicitly&amp;#039;&amp;#039; in POSIX compatibility mode (with options {{mono|--posix}} or {{mono|-o posix}}).&amp;lt;ref&amp;gt;{{cite web|url=https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html|title=Bash Reference Manual: Bash Startup Files|work=gnu.org|access-date=15 June 2015}}&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.login}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login&lt;br /&gt;
|login&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.logout}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login&lt;br /&gt;
|login&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|/etc/profile}}&lt;br /&gt;
|login&lt;br /&gt;
|login&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login&lt;br /&gt;
|login{{Efn|name=&amp;quot;zsh profiles&amp;quot;|Only in sh/ksh compatibility mode (when invoked as bash, sh, ksh)}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.profile}}&lt;br /&gt;
|login&lt;br /&gt;
|login&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login{{Efn|name=&amp;quot;bash profiles&amp;quot;|The first readable file in order of {{mono|~/.bash_profile}}, {{mono|~/.bash_login}} and {{mono|~/.profile}}; and only {{mono|~/.profile}} if invoked as {{mono|sh}} or, as of at least Bash 4.2, if invoked &amp;#039;&amp;#039;explicitly&amp;#039;&amp;#039; in POSIX compatibility mode (with options {{mono|--posix}} or {{mono|-o posix}})}}&lt;br /&gt;
|login{{Efn|name=&amp;quot;zsh profiles&amp;quot;}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.bash_profile}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login{{Efn|name=&amp;quot;bash profiles&amp;quot;}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.bash_login}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login{{Efn|name=&amp;quot;bash profiles&amp;quot;}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.bash_logout}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.bashrc}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|int.+n/login&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|/etc/zshenv}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|/etc/zprofile}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|/etc/zshrc}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|int.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|/etc/zlogin}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|/etc/zlogout}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.zshenv}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.zprofile}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.zshrc}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|int.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.zlogin}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left;&amp;quot;|{{mono|~/.zlogout}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|login&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Explanation:&lt;br /&gt;
* blank means a file is not read by a shell at all.&lt;br /&gt;
* &amp;quot;yes&amp;quot; means a file is always read by a shell upon startup.&lt;br /&gt;
* &amp;quot;login&amp;quot; means a file is read if the shell is a login shell.&lt;br /&gt;
* &amp;quot;n/login&amp;quot; means a file is read if the shell is not a login shell.&lt;br /&gt;
* &amp;quot;int.&amp;quot; means a file is read if the shell is interactive.&lt;br /&gt;
{{Clear}}{{Notelist}}&lt;br /&gt;
&lt;br /&gt;
==Other shells==&lt;br /&gt;
Variations on the Unix shell concept that don&amp;#039;t derive from Bourne shell or C shell include the following:&amp;lt;ref&amp;gt;{{cite web|url=http://www.freebsd.org/ports/shells.html |title=FreeBSD Ports: Shells |publisher=Freebsd.org |date=2014-03-30 |access-date=2014-04-05|archive-url=https://web.archive.org/web/20210112142623/http://www.freebsd.org/ports/shells.html|archive-date=2021-01-12|url-status=dead}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[es (Unix shell)|es]] – A [[functional programming]] rc-compatible shell written in the mid-1990s.&lt;br /&gt;
* [[Friendly interactive shell]] (fish) – First released in 2005.&lt;br /&gt;
* [[PowerShell]] – An [[Object-oriented programming|object-oriented]] shell developed originally for Windows OS and now available to macOS and Linux.&lt;br /&gt;
* [[Qshell]] – A shell on the [[IBM i]] operating system based on [[POSIX]] and [[X/Open]] standards.&lt;br /&gt;
* [[rc shell|rc]] – The default shell on [[Plan 9 from Bell Labs]] and [[Version 10 Unix]] written by [[Tom Duff]]. Ports have been made to various [[Unix-like]] operating systems.&lt;br /&gt;
* [[scsh]] – A [[Scheme (programming language)|Scheme]] Shell.&lt;br /&gt;
* [[wish (Unix shell)|wish]] – A windowing shell for [[Tcl/Tk]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Columns-list|&lt;br /&gt;
* {{Annotated link|Comparison of command shells}}&lt;br /&gt;
* {{Annotated link|List of POSIX commands}}&lt;br /&gt;
* {{Annotated link|Read–eval–print loop}}&lt;br /&gt;
* {{Annotated link|Restricted shell}}&lt;br /&gt;
* {{Annotated link|Shell account}}&lt;br /&gt;
* {{Annotated link|Shell script}}&lt;br /&gt;
* {{Annotated link|Shell shoveling}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
{{Unix shells}}&lt;br /&gt;
{{Unix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:System administration]]&lt;br /&gt;
[[Category:Unix shells| ]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Guy Harris</name></author>
	</entry>
</feed>