|Wikimedia Commons has media related to Unix shells.|
Pages in category "Unix shells"
The following 18 pages are in this category, out of 18 total. This list may not reflect recent changes (learn more).
|Wikimedia Commons has media related to Unix shells.|
The following 18 pages are in this category, out of 18 total. This list may not reflect recent changes (learn more).
1. Unix shell – A Unix shell is a command-line interpreter or shell that provides a traditional Unix-like command line user interface. Users direct the operation of the computer by entering commands as text for a command line interpreter to execute, users typically interact with a Unix shell using a terminal emulator, however, direct operation via serial hardware connections, or networking session, are common for server systems. All Unix shells provide filename wildcarding, piping, here documents, command substitution, variables and control structures for condition-testing, the most generic sense of the term shell means any program that users employ to type commands. In Unix-like operating systems, users typically have many choices of command-line interpreters for interactive sessions, when a user logs in to the system interactively, a shell program is automatically executed for the duration of the session. The Unix shell is both a command language as well as a scripting programming language, and is used by the operating system as the facility to control the execution of the system. Shells created for operating systems often provide similar functionality. On hosts with a system, like macOS, some users may never use the shell directly. However, some vendors have replaced the traditional shell-based startup system with different approaches. The first Unix shell was the Thompson shell, sh, written by Ken Thompson at Bell Labs and distributed with Versions 1 through 6 of Unix, though not in current use, it is still available as part of some Ancient UNIX Systems. It was modeled after the Multics shell, itself modeled after the RUNCOM program Louis Pouzin showed to the Multics Team, the rc suffix on some Unix configuration files, is a remnant of the RUNCOM ancestry of Unix shells. The PWB shell or Mashey shell, sh, was a version of the Thompson shell, augmented by John Mashey and others and distributed with the Programmers Workbench UNIX. It focused on making shell programming practical, especially in large shared computing centers and it added shell variables, user-executable shell scripts, and interrupt-handling. Control structures were extended from if/goto to if/then/else/endif, switch/breaksw/endsw, as shell programming became widespread, these external commands were incorporated into the shell itself for performance. But the most widely distributed and influential of the early Unix shells were the Bourne shell, both shells have been used as the coding base and model for many derivative and work-alike shells with extended feature sets. The Bourne shell, sh, was a rewrite by Stephen Bourne at Bell Labs. The language, including the use of a keyword to mark the end of a block, was influenced by ALGOL68. Traditionally, the Bourne shell program name is sh and its path in the Unix file system hierarchy is /bin/sh, but a number of compatible work-alikes are also available with various improvements and additional features. The sh of FreeBSD, NetBSD are based on ash that has enhanced to be POSIX conformant for the occasion
2. Unix-like – A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-like application is one that behaves like the corresponding Unix command or shell, there is no standard for defining the term, and some difference of opinion is possible as to the degree to which a given operating system or application is Unix-like. The Open Group owns the UNIX trademark and administers the Single UNIX Specification and they do not approve of the construction Unix-like, and consider it a misuse of their trademark. Other parties frequently treat Unix as a genericized trademark, in 2007, Wayne R. Gray sued to dispute the status of UNIX as a trademark, but lost his case, and lost again on appeal, with the court upholding the trademark and its ownership. Unix-like systems started to appear in the late 1970s and early 1980s, many proprietary versions, such as Idris, UNOS, Coherent, and UniFlex, aimed to provide businesses with the functionality available to academic users of UNIX. These largely displaced the proprietary clones, growing incompatibility among these systems led to the creation of interoperability standards, including POSIX and the Single UNIX Specification. Various free, low-cost, and unrestricted substitutes for UNIX emerged in the 1980s and 1990s, including 4. 4BSD, Linux, some of these have in turn been the basis for commercial Unix-like systems, such as BSD/OS and OS X. The various BSD variants are notable in that they are in fact descendants of UNIX, however, the BSD code base has evolved since then, replacing all of the AT&T code. Since the BSD variants are not certified as compliant with the Single UNIX Specification, dennis Ritchie, one of the original creators of Unix, expressed his opinion that Unix-like systems such as Linux are de facto Unix systems. Eric S. Raymond and Rob Landley have suggested there are three kinds of Unix-like systems, Genetic UNIX Those systems with a historical connection to the AT&T codebase. Most commercial UNIX systems fall into this category, so do the BSD systems, which are descendants of work done at the University of California, Berkeley in the late 1970s and early 1980s. Some of these systems have no original AT&T code but can trace their ancestry to AT&T designs. Trademark or branded UNIX These systems—largely commercial in nature—have been determined by the Open Group to meet the Single UNIX Specification and are allowed to carry the UNIX name, many ancient UNIX systems no longer meet this definition. Around 2001, Linux was given the opportunity to get a certification including free help from the POSIX chair Andrew Josey for the price of one dollar. Some non-Unix-like operating systems provide a Unix-like compatibility layer, with degrees of Unix-like functionality. IBM z/OSs UNIX System Services is sufficiently complete to be certified as trademark UNIX, cygwin and MSYS both provide a GNU environment on top of the Microsoft Windows user API, sufficient for most common open source software to be compiled and run. Subsystem for Unix-based Applications provides Unix-like functionality as a Windows NT subsystem, Windows Subsystem for Linux provides a Linux-compatible kernel interface developed by Microsoft and containing no Linux code, with Ubuntu user-mode binaries running on top of it
3. Bash (Unix shell) – Bash is a Unix shell and command language written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell. First released in 1989, it has been distributed widely as the shell for Linux distributions. A version is available for Windows 10, Bash is a command processor that typically runs in a text window, where the user types commands that cause actions. Bash can also read commands from a file, called a script, like all Unix shells, it supports filename globbing, piping, here documents, command substitution, variables and control structures for condition-testing and iteration. The keywords, syntax and other features of the language are all copied from sh. Other features, e. g. history, are copied from csh and ksh, Bash is a POSIX shell, but with a number of extensions. A security hole in Bash dating from version 1.03, dubbed Shellshock, was discovered in early September 2014, patches to fix the bugs were made available soon after the bugs were identified, but not all computers have yet been updated. Brian Fox began coding Bash on January 10,1988 after Richard Stallman became dissatisfied with the lack of progress being made by a prior developer, Fox released Bash as a beta, version. Since then, Bash has become by far the most popular shell among users of Linux, becoming the default shell on that operating systems various distributions. Bash has also ported to Microsoft Windows and distributed with Cygwin and MinGW, to DOS by the DJGPP project, to Novell NetWare. In September 2014, Stéphane Chazelas, a Unix/Linux, network and telecom specialist working in the UK, the bug, first disclosed on September 24, was named Shellshock and assigned the numbers CVE-2014-6271, CVE-2014-6277 and CVE-2014-7169. The bug was regarded as severe, since CGI scripts using Bash could be vulnerable, the bug was related to how Bash passes function definitions to subshells through environment variables. The Bash command syntax is a superset of the Bourne shell command syntax, when a user presses the tab key within an interactive command-shell, Bash automatically uses command line completion to match partly typed program names, filenames and variable names. The Bash command-line completion system is flexible and customizable, and is often packaged with functions that complete arguments and filenames for specific programs. Bashs syntax has many extensions lacking in the Bourne shell, Bash can perform integer calculations without spawning external processes. It uses the command and the $ variable syntax for this purpose, for example, it can redirect standard output and standard error at the same time using the &> operator. This is simpler to type than the Bourne shell equivalent command > file 2>&1, Bash supports process substitution using the < and >syntax, which substitutes the output of a command where a filename is normally used. But in POSIX mode, Bash conforms with POSIX more closely, since version 2. 05b Bash can redirect standard input from a here string using the <<< operator
4. Bourne shell – The Bourne shell is a shell, or command-line interpreter, for computer operating systems. The Bourne shell was the shell for Version 7 Unix. Most Unix-like systems continue to have /bin/sh—which will be the Bourne shell, developed by Stephen Bourne at Bell Labs, it was a replacement for the Thompson shell, whose executable file had the same name—sh. It was released in 1977 in the Version 7 Unix release distributed to colleges and universities, although it is used as an interactive command interpreter, it was also intended as a scripting language and contains most of the features that are commonly considered to produce structured programs. Work on the Bourne shell initially started in 1976, first appearing in Version 7 Unix, the Bourne shell superseded the Mashey shell. Some of the goals of the shell were, To allow shell scripts to be used as filters. To provide programmability including control flow and variables, control over all input/output file descriptors. Control over signal handling within scripts, no limits on string lengths when interpreting shell scripts. Rationalize and generalize string quoting mechanism and this allowed context to be established at startup and provided a way for shell scripts to pass context to sub scripts without having to use explicit positional parameters. Here documents using << to embed a block of text within a script. For ~ do ~ done loops, in particular the use of $* to loop over arguments, case ~ in ~ esac selection mechanism, primarily intended to assist argument parsing. Sh provided support for environment variables using keyword parameters and exportable variables and it contains strong provisions for controlling input and output and in its expression matching facilities. Stephen Bournes coding style was influenced by his experience with the ALGOL 68C compiler that he had working on at Cambridge University. Moreover, – although the v7 shell is written in C – Bourne took advantage of some macros to give the C source code an ALGOL68 flavor and these macros inspired the IOCCC – International Obfuscated C Code Contest. Over the years, the Bourne shell was enhanced at AT&T, the various variants are thus called like the respective AT&T Unix version it was released with. As the shell was never versioned, the way to identify it was testing its features. The DMERT shell runs on 3B21D computers still in use in the telecommunications industry, the Korn shell written by David Korn based on the original Bourne Shell source code, was a middle road between the Bourne shell and the C shell. Its syntax was chiefly drawn from the Bourne shell, while its job control features resembled those of the C shell, the functionality of the original Korn Shell was used as a basis for the POSIX shell standard
5. C shell – The C shell is a Unix shell created by Bill Joy while he was a graduate student at University of California, Berkeley in the late 1970s. It has been distributed, beginning with the 2BSD release of the Berkeley Software Distribution that Joy began distributing in 1978. Other early contributors to the ideas or the code were Michael Ubell, Eric Allman, Mike OBrien, the C shell is a command processor typically run in a text window, allowing the user to type commands. The C shell can also read commands from a file, called a script, like all Unix shells, it supports filename wildcarding, piping, here documents, command substitution, variables and control structures for condition-testing and iteration. What differentiated the C shell from others, especially in the 1980s, were its interactive features and its new features made it easier and faster to use. The overall style of the language looked more like C and was seen as more readable, on many systems, such as Mac OS X and Red Hat Linux, csh is actually tcsh, an improved version of csh. Often one of the two files is either a hard link or a link to the other, so that either name refers to the same improved version of the C shell. On Debian and some derivatives, there are two different packages, csh and tcsh, because it only added functionality and did not change what was there, tcsh remained backward compatible with the original C shell. Though it started as a branch from the original source tree Joy had created. Tcsh is very stable but new releases continue to appear once a year. The main design objectives for the C shell were that it should look more like the C programming language and that it should be better for interactive use. The Unix system had been written almost exclusively in C, so the C shells first objective was a language that was more stylistically consistent with the rest of the system. The keywords, the use of parentheses and the C shells built-in expression grammar, by todays standards, csh may not seem particularly more C-like than many other popular scripting languages. But through the 80s and 90s, the difference was seen as striking, particularly compared to Bourne shell. This example illustrates the C shells more conventional expression operators and syntax, the square bracketed condition had to be evaluated by the slower means of running the external test program. Shs if command took its argument words as a new command to be run as a child process, If the child exited with a zero return code, sh would look for a then clause and run that nested block. Otherwise it would run the else, hard-linking the test program as both test and [ gave the notational advantage of the square brackets and the appearance that the functionality of test was part of the sh language. Shs use of a keyword to mark the end of a control block was a style borrowed from ALGOL68
6. Friendly interactive shell – The design goal of fish is to give the user a rich set of powerful features in a way that is easy to discover, remember, and use. Fish is considered a shell, in that its syntax derives from neither the Bourne shell nor the C shell. Also unlike previous shells, which certain features by default to save system resources. Fish has search as you type automatic suggestions based on history, tab-completion is feature-rich, expanding file paths, variables, and many command specific completions. Command-specific completions, including options with descriptions, can to some extent be generated from the commands manpages, Fish has few syntactic rules, preferring features as commands rather than syntax. This makes features discoverable in terms of commands with options and help texts, functions can also carry a human readable description. A special help command gives access to all the documentation in the users web browser. The syntax resembles a POSIX compatible shell, but deviates in important ways where the creators believe the POSIX shell was badly designed, some language constructs, like pipelines, functions and loops, have been implemented using so called subshells in other shell languages. Subshells are simply child programs that run a few commands for the shell, Fish never forks off so-called subshells, all builtins are always fully functional. This bash example does not do what it looks like, because the body is a subshell. Workaround, Fish needs no workaround, Error messages in fish are designed to tell the user what went wrong. Fish has a known as universal variables, which allow a user to permanently assign a value to a variable across all the users running fish shells. The variable value is remembered across logouts and reboots, and updates are immediately propagated to all running shells, syntax highlighting with extensive error checking. Smart terminal handling based on terminfo, version 2 adds, Autosuggestions 256 terminal colors Web-based configuration Improved performance
7. Hamilton C shell – Hamilton C shell is a clone of the Unix C shell and utilities for Microsoft Windows created by Nicole Hamilton at Hamilton Laboratories as a completely original work, not based on any prior code. It was first released on OS/2 on December 12,1988, the OS/2 version was discontinued in 2003 but the Windows version continues to be actively supported. Hamilton C shell differs from the Unix C shell in several respects, its architecture, its use of threads. The original C shell uses an ad hoc parser and this has led to complaints about its limitations. It works well enough for the kinds of things users typed interactively and it is not possible, for example, to pipe the output of a foreach statement into grep. There was a limit to how complex a command it could handle, by contrast, Hamilton uses a top-down recursive descent parser that allows it to compile commands and procedures to an internal form before running them. As a result, statements can be nested arbitrarily, lacking fork or a high performance way to recreate that functionality, Hamilton uses the Windows threads facilities instead. When a new thread is created, it runs within the same process space, if one thread changes the current directory or the contents of memory, its changed for all the threads. Its much cheaper to create a thread than a process but theres no isolation between them, to recreate the missing isolation of separate processes, the threads cooperate to share resources using locks. Hamilton differs from other Unix shells in that it follows Windows conventions instead of Unix conventions for filename slashes, escape characters, official website Hamilton C shell user guide
8. KornShell – KornShell is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14,1983. The initial development was based on Bourne shell source code, other early contributors were Bell Labs developers Mike Veach and Pat Sullivan, who wrote the Emacs- and vi-style line editing modes code, respectively. KornShell is backward-compatible with the Bourne shell and includes features of the C shell. Job control was added to the Bourne Shell in 1989, a choice of three command line editing styles based on vi, Emacs, and XEmacs. Associative arrays and built-in floating point arithmetic operations, in 2000 the source code was released under a license particular to AT&T, but since the 93q release in early 2005 it has been licensed under the Eclipse Public License. KornShell is available as part of the AT&T Software Technology Open Source Software Collection, as KornShell was initially only available through a proprietary license from AT&T, a number of free and open source alternatives were created. These include pdksh, mksh, GNU bash, and zsh, ksh93 is still maintained by its author. This version also provides shell-level mappings for Motif widgets and it was intended as competitor to Tcl/Tk. The original KornShell, ksh88, became the default shell on AIX in version 4, unixWare 7 includes both ksh88 and ksh93. The default Korn shell is ksh93, which is supplied as /usr/bin/ksh, unixWare also includes dtksh when CDE is installed. There are several software products related to KornShell, dtksh – a fork of ksh93 included as part of CDE. tksh – a fork of ksh93 that provides access to the Tk widget toolkit, oksh – a Linux-based fork of OpenBSDs flavour of KornShell. It is used as the shell in DeLi Linux. Mksh – a free implementation of the KornShell language, forked from pdksh and it was originally developed for MirOS BSD and is licensed under permissive terms, specifically, the MirOS Licence. In addition to its usage on BSD, this variant has replaced pdksh on Debian, sKsh – an AmigaOS flavour that provides several Amiga-specific features, such as ARexx interoperability. KornShell is included in UWIN, a Unix compatibility package by David Korn, comparison of computer shells List of Unix utilities The test program Morris I. The new KornShell command and programming language, David G. Korn, Charles J. Northrup and Jeffery Korn The New KornShell—ksh93, Linux Journal, Issue 27, July 1996 Korn shell home page github for AT&T Software Technology, including ksh source code. Official KSH mailing lists, ast-developers and ast-users, ksh93 man page at the Wayback Machine ksh88 man page Public Domain Korn shell MirBSD Korn Shell mksh – MirOS BSD i386 General Commands Manual