^^

'shells' section (2/1)


shell extension to jump to frequently used directories

autojump provides a faster way to navigate your filesystem, with a "cd command that learns". . It works by maintaining a database of the directories you use the most from the command line, and allows you to "jump" to frequently used directories by typing only a small pattern. . To use autojump, you need to configure your shell to source /usr/share/autojump/autojump.sh on startup.

/main/bash/bash

GNU Bourne Again SHell

Bash is an sh-compatible command language interpreter that executes commands read from the standard input or from a file. Bash also incorporates useful features from the Korn and C shells (ksh and csh). . Bash is ultimately intended to be a conformant implementation of the IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2). . The Programmable Completion Code, by Ian Macdonald, is now found in the bash-completion package.


GNU Bourne Again SHell (static version)

Bash is an sh-compatible command language interpreter that executes commands read from the standard input or from a file. Bash also incorporates useful features from the Korn and C shells (ksh and csh). . Statically linked.


programmable completion for the bash shell

bash completion extends bash's standard completion behavior to achieve complex command lines with just a few keystrokes. This project was conceived to produce programmable completion routines for the most common Linux/UNIX commands, reducing the amount of typing sysadmins and programmers need to do on a daily basis.

/main/bats/bats

bash automated testing system

Bats is a TAP-compliant testing framework for Bash. It provides a simple way to verify that the UNIX programs you write behave as expected. Bats is most useful when testing software written in Bash, but you can use it to test any UNIX program.


Standalone rescue shell with tons of builtin utilities

BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides minimalist replacements for the most common utilities you would usually find on your desktop system (i.e., ls, cp, mv, mount, tar, etc.). The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. . busybox-static provides you with a statically linked simple stand alone shell that provides all the utilities available in BusyBox. This package is intended to be used as a rescue shell, in the event that you screw up your system. Invoke "busybox sh" and you have a standalone shell ready to save your system from certain destruction. Invoke "busybox", and it will list the available builtin commands.

/main/cleo/cleo

Play back shell commands for live demonstrations

cleo is a utility for playing back pre-recorded shell commands in a live demonstration. cleo displays the commands as if you had actually typed them and then executes them interactively.

/main/csh/csh

Shell with C-like syntax

The C shell was originally written at UCB to overcome limitations in the Bourne shell. Its flexibility and comfort (at that time) quickly made it the shell of choice until more advanced shells like ksh, bash, zsh or tcsh appeared. Most of the latter incorporate features original to csh. . This package is based on current OpenBSD sources.

/main/dash/dash

POSIX-compliant shell

The Debian Almquist Shell (dash) is a POSIX-compliant shell derived from ash. . Since it executes scripts faster than bash, and has fewer library dependencies (making it more robust against software or hardware failures), it is used as the default system shell on Debian systems.

/main/dash/ash

compatibility package for dash

This package allows upgrading ash to its replacement, dash. It includes the /bin/ash symlink. It can be removed as soon as /bin/ash is no longer used.

/main/elvish/elvish

Friendly and expressive shell

Elvish is a cross-platform shell, supporting Linux, BSDs and Windows. It features an expressive programming language, with features like namespacing and anonymous functions, and a fully programmable user interface with friendly defaults. It is suitable for both interactive use and scripting.


console-base lightweight file manager

FD (FD represents "File and Directory") is an easy-to-use file management tool for Un*x newbies. As its name shows, this is a rewrite from scratch - the original version was written by Atsushi Idei for MS-DOS(tm) and once very popular in Japan. Messages are available either in English or in Japanese.

/main/fish/fish

friendly interactive shell

Fish is a shell geared towards interactive use. Its features are focused on user friendliness and discoverability. The language syntax is simple but incompatible with other shell languages.


friendly interactive shell (architecture-independent files)

Fish is a shell geared towards interactive use. Its features are focused on user friendliness and discoverability. The language syntax is simple but incompatible with other shell languages. . This package contains the common fish files shared by all architectures.

/main/fizsh/fizsh

Friendly Interactive ZSHell

Fizsh is a frontend to Zsh. It provides the user with interactive syntax highlighting and a Matlab-like history search facility. At the same time it can handle Bourne syntax.

/main/ksh/ksh

Real, AT&T version of the Korn shell

Ksh is a UNIX command interpreter (shell) that is intended for both interactive and shell script use. Its command language is a superset of the sh(1) shell language. . The 1993 version adds a number of new, mostly scripting related, features over the 1988 version that is typically distributed with commercial UNIX variants. For example, it has lexical scoping, compound variables, associative arrays, named references and floating point math. . The shcomp tool can be used to compile ksh scripts into a binary format.

/main/mksh/mksh

MirBSD Korn Shell

mksh is the successor of the Public Domain Korn shell (pdksh), a Bourne/POSIX compatible shell which is largely similar to the original AT&T Korn Shell (ksh88/ksh93). It includes bug fixes and feature improvements, in order to produce a modern, robust shell good for interactive and especially script use. mksh has UTF-8 support (in string operations and the Emacs editing mode). The code has been cleaned up and simplified, bugs fixed, standards compliance added, and several enhancements (for extended compatibility to other modern shells, as well as a couple of its own) are available. This shell is Debian Policy 10.4 compliant and works as /bin/sh on Debian systems (use the /bin/lksh executable) and is a good rescue and initrd shell (consider the /bin/mksh-static executable). . The mksh binary is a complete, full-featured shell. It provides a “consistent across all platforms” guarantee, using 32-bit integers for arithmetics, possibly deviating from POSIX. . The mksh-static binary is a version of mksh, linked against klibc, musl, or dietlibc (if they exist for that Debian architecture and are usable) and optimised for small code size, for example for use on initrd or initramfs images, installation or rescue systems. Except for omitting some features to be smaller, it is similar to the mksh binary otherwise. Note the exact feature set may differ depending on which C library was used to compile it. . The lksh binary is a script shell based on mksh intended to run old ksh88 and pdksh scripts, but not for interactive use. When used as /bin/sh it follows POSIX most closely, including use of the host’s “long” C data type for arithmetics. It also contains kludges so it can run as /bin/sh on Debian beyond what Policy dictates, to work around bugs in maintainer scripts and LSB init scripts shipped by many packages, such as including a rudimentary printf(1) builtin, permitting a shell function to be named stop overriding the default alias, more loose interpretation of shell extglobs, etc. . A sample ~/.mkshrc is included in /usr/share/doc/mksh/examples and provided as /etc/mkshrc conffile, which is sourced by another file /etc/skel/.mkshrc users are recommended to copy into their home.


interactive C# shell

Mono is a platform for running and developing applications based on the ECMA/ISO Standards. Mono is an open source effort led by Xamarin. Mono provides a complete CLR (Common Language Runtime) including compiler and runtime, which can produce and execute CIL (Common Intermediate Language) bytecode (aka assemblies), and a class library. . This package contains the interactive C# shell named csharp. csharp permits dynamically evaluating C# statements, and can be used for writing scripts or testing code fragments. For examples and a brief overview of the commands see: http://www.mono-project.com/CsharpRepl

/main/pdmenu/pdmenu

simple console menu program

A full screen console menu program, intended to be comfortable login shell for inexperienced users. . Pdmenu interfaces with Debian's menu system, to provide automatically-generated lists of installed programs.

/main/posh/posh

Policy-compliant Ordinary SHell

posh is a stripped-down version of pdksh that aims for compliance with Debian's policy, and few extra features. . WARNING: Since many of Debian's /bin/sh scripts are not actually policy-compliant, using posh as your /bin/sh may reveal breakage.


prompt and statusline utility

Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, IPython, Awesome and Qtile.


Bitfrost isolation shell

Rainbow is a isolation shell which implements portions of the Bitfrost security architecture, as used on the OLPC XO-1 and elsewhere. . At the moment, Rainbow only knows how to provide the same primitive form of filesystem and signal isolation that competent sysadmins provide to users of multi-user Unix shell servers.

/main/rc/rc

implementation of the AT&T Plan 9 shell

rc is a command interpreter and programming language similar to sh(1). It is based on the AT&T Plan 9 shell of the same name. The shell offers a C-like syntax (much more so than the C shell), and a powerful mechanism for manipulating variables. It is reasonably small and reasonably fast, especially when compared to contemporary shells. Its use is intended to be interactive, but the language lends itself well to scripts.

/main/rush/rush

restricted user shell

GNU Rush is a restricted shell designed for sites providing only limited access to resources for remote users. The main binary executable is configurable as a user login shell, intended for users that only are allowed remote login to the system at hand. . A notification service can be implemented individually for each provided client service, using the TCPMUX support found within xinetd, or inetutils-inetd. . The standard use is to create access to a chrooted target directory, typically providing arbitrary combinations of scp, sftp, rsync, cvs, svn, and git. Each service may be further restricted in its capabilities. The administrator configures pattern matching rules for manipulating any incoming request. . The present restricted shell is an alternative to the well known "rssh" package, which provides similar capabilities.

/main/sash/sash

Stand-alone shell

sash serves as an interactive substitute for /bin/sh, for use when /bin/sh is unusable. It's statically linked, and includes many standard utilities as builtins (type "help" at the prompt for a reference list). If you've installed sash before rendering your system unbootable, and you have some knowledge of how your system is supposed to work, you might be able to repair your system using init=/bin/sash at the boot prompt. . Some people also prefer to have sash available as the shell for a root account (perhaps an under an alternate name such as sashroot) Configuration support is included for people who want this. . Note: sash is not intended to serve as /bin/sh, and has few of the interactive features present in bash or ksh. It's designed to be simple and robust, for people who need to do emergency repair work on a system. . Also note: sash doesn't include a built-in fsck -- fsck is too big and complicated. If you need fsck, you'll have to get at least one partition or disk working well enough to run fsck. More generally, sash is but one tool of many (backups, backup recovery tools, emergency boot disks or partitions, spare parts, testing of disaster plans, etc.) to help you recover a damaged system.


Lightweight GNU screen(1) wrapper

Screenie is a small and lightweight screen(1) wrapper designed to simplify management of detached jobs by providing simple interactive menu. . This is an enhanced Perl-reimplementation of 'screenie' by Marc O. Gloor

/main/tcsh/tcsh

TENEX C Shell, an enhanced version of Berkeley csh

The TENEX C Shell is an enhanced version of the Berkeley Unix C shell. It includes all features of 4.4BSD C shell, plus a command-line editor, programmable word completion, spelling correction and more.

/main/xonsh/xonsh

Python-powered, cross-platform, Unix-gazing shell

Xonsh is a Python-ish shell language and command prompt. Unlike other shells, xonsh is based on Python, with additional syntax added that makes calling subprocess commands, manipulating the environment, and dealing with the file system easy. Xonsh supports all normal Python constructs and a subset of those available in bash.

/main/yash/yash

yet another shell

Yash is a command line shell that conforms to the POSIX.1 (IEEE Std 1003.1, 2008 Edition) standard for the most part. Actually, it is much more POSIX-compliant than other shell like bash and zsh. . Yash also has its own features beyond POSIX, such as: * global aliases * random numbers * socket redirections and other special redirections * right prompt * command completion

/main/zgen/zgen

Lightweight plugin manager for ZSH inspired by Antigen

zgen is a lightweight plugin manager for ZSH inspired by Antigen. The goal is to have a minimal overhead when starting up the shell because nobody likes waiting. The script generates a static init.zsh file which does nothing but sources your plugins and appends them to fpath. The downside is that you have to refresh the init script manually with zgen reset whenever you update your ~/.zshrc.