Talk:Unix shell

message: I couldn't really decide on the proper naming here.  I've tried to use unix shell as the more generic term, and a better one than shell, and use things like bourne shell for the more particular terms.  comments?  --drj
:What's wrong with "command-line shell"? "Unix shell" might be too specific- look at rc, which is from Plan 9. --Maru 02:46, 6 August 2005 (UTC)
thread_title:  Nomenclature 

message: On a lot of linux (and bsd?) systems out there, /bin/sh is still the default, but it is really just a symlink to /bin/bash or similar. Perhaps this could be incorporated?
:Oh those poor linux users.  On the systems _I_ administrate /bin/sh is not a link to /bin/bash.  I'll mention it.  --drj
In Mac OS X v10.4 sh is installed, but bash is the default shell. Dread Lord CyberSkull ✎☠ 10:49, 2005 September 1 (UTC)
:Debian offers a shell called dash , which is designed to be small and sh-compatible, and can be used as the symlink at /bin/sh; searching for that, I also came upon something called shish  . The point being that many shell-scripts use this as their shebang line, so they'll run more efficiently if you symlink it to something more efficient. - IMSoP 12:45, 1 September 2005 (UTC)
replies: text: BTW, shebang is a buzzword which should pbbly be present in this article. --Jerome Potts (talk) 03:52, 15 August 2009 (UTC)
thread_title:  Supercession of ''sh'' 

message: I was searching the wikipedia to know why a unix "shell" is called so. Might be a good idea to put it in... --BilboEd
:Oh, I see, this is an old question which was never explicitly answered. The article now covers this point. - IMSoP 14:31, 1 September 2005 (UTC)
thread_title:  Etymology of term "shell" 

message: I've resorted the list of shells at the bottom of the page by whether they are compatible with Bourne, C shell, or neither.  (And before you ask why rc and es don't get their own category...because Bourne and C-shell are the traditional major Unix shells, while rc doesn't seem to be widely used outside of Plan 9 and es, the only rc-compatible shell, has apparently been abandoned since 1997, that's why.) Beinsane 07:18, 25 December 2005 (UTC)
thread_title:  Shells listed by compatibility 

message: *"A Unix shell is a command-line interpreter (see shell) and script host that provides a traditional user interface for the Unix operating system and for Unix-like  systems."
**Can someone define script host?
*Can someone define POSIX shell?
Thanks, --Abdull (talk) 20:38, 3 March 2010 (UTC)
thread_title:  Questions 

message: A  has been made by  Hm2k that the Unix shell article be merged with the Shell (computing) article and that we should discuss here.
*Keep separate.  Yes, a Unix shell is a type of shell, but all shells are types of software, so where does one stop merging?  I think there are some defining characteristics of a Unix shell (e.g., it's command line oriented not graphical, it's a relatively thin layer meant to expose rather than hide the OS underneath and it includes certain characteristic features such as wildcarding, a vocabulary of filters like grep and sed connected via pipes, etc.) that previous generations of command line interfaces (e.g., IBM's VM/CMS or TSO) had not offered.  It was seminal work.  The reason we use words like pipes and wildcarding and shell to mean things in computer science is because the Unix shells introduced these terms.  The current article could be a lot better at laying out those defining characteristics.  For example, I'm a little skeptical (not being familiar with all of them) whether all of the "exotic" shells listed are actually Unix shells or merely shells that ran on Unix.  But lumping Unix shells into a bucket with all other shells (which, let's face it, could mean anything with a UI) would, I think, do a disservice to the intellectual and historical significance of the Unix shells. Msnicki (talk) 15:45, 14 July 2010 (UTC)
thread_title:  The suggestion to merge with the [[Shell (computing) | Shell]] article 

message: Many users of a Unix system still find a modern command line shell more convenient for many tasks than any GUI application.
Should be removed.  —Preceding unsigned comment added by 92.7.74.215 (talk) 07:00, 5 January 2011 (UTC)
thread_title:  Opinionated Article 

message: What makes one shell different from another?  The article explains what a shell is and goes through a list of them, but what is the difference?  Doesn't one Unix/Linux command on one shell run on another? -Rolypolyman (talk) 05:27, 22 January 2011 (UTC)
thread_title:  Shell differences 

message: Pipeline notation existed in the Unix shell (for example in fifth-edition Unix) before the Bourne shell appeared; an early paragraph here implies that the Bourne shell introduced pipelines. -- Jack Waugh
:Good call.  I agree.  The Mashey and Thompson shells both preceded the Bourne shell and each had some of the various features listed.  More accurate would be something to the effect that the Bourne shell was the first one to get wide distribution and it's the one that defined this basic set of features that people expect of any Unix shell, especially after the release of Kernighan and Pike's book, "Unix Programming Environment".  But you're absolutely right, it wasn't the first to have them all.  We also need to find some actual citations. Msnicki (talk) 22:50, 16 March 2011 (UTC)
thread_title:  Historical Accuracy 

message: The article currently says:
:"In Unix, users who want to use a different syntax for typing commands can specify a different program as their shell, though in practice this usually requires administrator rights."
I could try to guess what this was supposed to really mean.  
What it actually says is patently untrue.  Nothing prevents an ordinary user from using invoking a new shell, and choosing from any of the shells on the system.  
The chsh program, which changes the default shell field of /etc/passwd, has been available for decades to allow ordinary users to change their default shell, so even changing the default shell does not require the user have superuser privileges.
For what it is worth, nothing requires the default shell for a userid to be a command line interpreter.  If a system had some users who insisted they only wanted to use the system for editing, and never wanted to figure out how use any of the system's other confusing programs, their default shell could be changed to an editing program.  Geo Swan (talk) 16:55, 14 October 2011 (UTC)
thread_title: superuser permission required to choose a different shell?

message: The article says:
On Unix systems, the shell is still the implementation language of system startup scripts, including the program that starts the windowing system, the programs that facilitate access to the Internet, and many other essential functions.
I believe that is not completely true. The systemd folk are trying pretty hard to eliminate the shell's role in starting up a system.  — Preceding unsigned comment added by 89.67.52.124 (talk) 15:22, 21 July 2013 (UTC)
thread_title:  Startup process 

message: RJaguar3 has questioned the fair use of the desktop image, :File:TcshAndShScreenCapture.png, that appears at the top of this article arguing,   I created the screenshot about 5 years ago and I've offered my thoughts, explaining why I think it's acceptable.  But I assume anyone is free to weigh in on the issue with their own thoughts.  Msnicki (talk) 21:52, 7 March 2015 (UTC)
replies: text: Hello!  Hm, I'm not sure whether that objection is reasonable if an image isn't uploaded to Wikimedia Commons.  To me, having an OS X desktop screenshot shouldn't hurt, and OS X is formally even closer to representing "true Unix" than Linux. :)  However, please keep in mind that I'm by no means an expert when it comes to various licensing-related issues. — Dsimic (talk | contribs) 14:52, 13 March 2015 (UTC)
replies: text: Thank you, Dsimic.  It's unlikely any admin who reviews the objection will read any comments here so if you would like your opinion considered, it'd probably be helpful to add it to the file page itself.  Msnicki (talk) 14:59, 13 March 2015 (UTC)
replies: text:  You're welcome. :)  Actually, I wanted to do that, but saw no discussions on .  Could you, please, specify the actual page? — Dsimic (talk | contribs) 15:13, 13 March 2015 (UTC)
replies: text: This is the first time I've encountered a fair use objection, so I'm just guessing how to respond.  But I think you have to add a  tag.  It looks like anyone who wants to comment has to do that.  Msnicki (talk) 15:21, 13 March 2015 (UTC)
replies: text:  I'd say that tagging the file with  wouldn't be the right thing to do, as technically there is a possibility for creating a completely free replacement.  I'd say that the best we can do is  there's a related discussion. — Dsimic (talk | contribs) 16:02, 13 March 2015 (UTC)
thread_title:  Fair use of the desktop image questioned 

message: Really, Ken Thompson wrote the original UNIX shell, not Steve Bourne.
Serious use of the shell as scripting language happened in 1975 with [PWB shell], and it describes the history.
Using a Command Language as a High-Level Programming Language  was paper at 1976 IEEE COMPSAC Conference.
Read that to see which features got added to Thompson shell.
At that time, that site was the largest general-use UNIX complex at Bell Labs, so there were a lot of users.
Note that it was not so much that Bourne sh "won out" over competitors, but that I'd already extended PWB SH about as far as made sense to stay upward compatible, and spent a *lot* of time in discussions with Steve about SH features, and with him and Dennis on relevant OS features, like environment variables, which only solidified in early 1978.  Many others were involved in "shell task force" meetings.  People were happy to go to something written from scratch (although ALgol 68 wasn't that popular), but didn't want to lose functionality found to be helpful over years of usage.
Steve spent a lot of time performance-tuning, and adding features in order to get buyin from the large PWB SH user community.
So, real history:
1969- Thompson shell, mostly for terminal use and simple scripts
1975- PWB shell, including variables, more control structures, path search, etc ... stuff needed for widespread use
1977-1978 lots of discussions, I still have some of the memos.  The Environment Variable feature didn't settle until early 1978, and UNIX V7 was later.
1978- - C-shell, especially important for interactive features JohnMashey (talk) 23:34, 25 September 2015 (UTC)
replies: text: Many thanks to JohnMashey for his helpful suggestions.  I've done a pass trying to reorganize the material accordingly.  I invite additional suggestions.  Msnicki (talk) 19:03, 24 October 2015 (UTC)

text: In a recent keynote talk at a BSD conference, Stephen Bourne mentioned that the Bourne Shell development started in 1976. talk video slides, see page 13 ff. Could you confirm this? BTW: I am asking this because I like to have a correct authors section in the man page of the Bourne Shell I maintain (see recent Bourne Shell man page) Schily (talk) 10:32, 27 October 2015 (UTC)

text: Yes, 1976 is correct. As noted, much discussion 1977 (when I'd moved to Murray Hill, in UNIX Support Dept, and Bell was trying to consolidate the numerous UNIX variants, hopefully get a few key things into V7, and then add features beyond that for the different target usages.)JohnMashey (talk) 19:53, 27 June 2017 (UTC)

text: Sorry, I just double-check myself and found I was off by 3 years. Aige02 at gmail (talk) 20:12, 11 February 2021 (UTC)
thread_title:  Totally bogus history in the main discussion, better in the later tables 

message: Is this table really helpful?  I'm inclined to toss the whole thing and reduce the whole section to a couple sentences to explain that the behavior of a Unix shell can typically be customized with configuration scripts executed at startup and exit.  Before I delete a whole table, possibly making people unhappy, can I hear some comments, please?  Msnicki (talk) 19:03, 24 October 2015 (UTC)
replies: text: It of course is helpful. Schily (talk) 10:47, 27 October 2015 (UTC)
replies: text:  I added this section a long time ago as a result of not finding it anywhere. Taxi1729 (talk) 09:07, 13 October 2016 (UTC)

text: I found it helpful too; I occasionally need to hunt down this information as I use ksh and most everyone else on my project uses bash. MeekMark (talk) 14:34, 17 June 2021 (UTC)
thread_title:  Configuration files section 

message: In https://en.wikipedia.org/wiki/Unix_shell#Early_shells there is a sentence:
As shell programming became widespread, these external commands were incorporated into the shell itself for performance. 
Given the context of that section, the phrase "these external commands" doesn't make sense – I don't think the section mentions external commands anywhere else but this phrase.  I know there are some external commands, such as echo, that are external commands, and also built-in shell commands.  
MeekMark (talk) 14:45, 17 June 2021 (UTC)
thread_title:  Confusing sentence in "Early Shells" section