Bash

gnu.org/software/bash

Unix shell and command language for scripting, automation, and system administration.

Overview

Bash (Bourne Again SHell) is the GNU Project's shell implementation, designed as a POSIX-compatible replacement for the original Bourne shell. It incorporates useful features from the Korn shell (ksh) and C shell (csh), making it suitable for both interactive use and shell scripting.

The shell offers significant improvements over traditional sh, including command-line editing, unlimited command history, job control, shell functions and aliases, indexed arrays, and integer arithmetic in bases from two to sixty-four. Most existing sh scripts run on Bash without modification, making it a practical upgrade path for existing shell users.

Key features

  • Command-line editing
  • Unlimited command history
  • Job control
  • Shell functions and aliases
  • Indexed arrays
  • Integer arithmetic (base 2-64)
  • POSIX P1003.2/ISO 9945.2 compliance
  • sh script compatibility
Pros
  • Free and open source
  • POSIX-compliant
  • Widely available and standard on Unix/Linux systems
  • Backward compatible with sh scripts
  • Rich feature set for scripting and interactive use
  • Active maintenance and community support
Cons
  • Steep learning curve for beginners
  • Complex syntax for advanced features
  • Performance slower than compiled languages for intensive tasks
Use this if
You need a POSIX-compliant shell for system administration, scripting, or interactive command-line work on Unix/Linux systems.
Skip this if
You require a graphical user interface or prefer higher-level programming languages for application development.

Best for

System administrationShell scriptingInteractive command-line usePOSIX-compliant shell environments

Alternatives

ZshFish shellKsh (Korn shell)Tcsh

Compare Bash alternatives

More Devtool

Compare all
View Deno
Deno

Secure TypeScript/JavaScript runtime with built-in tooling, permissions, and npm compat.

View Nuxt Studio
Nuxt Studio

Visual content editor for Nuxt Content with live preview and team workflows.

View matlab
matlab

Matrix-based language and environment for engineering, signal processing, and simulation.

View Emacs
Emacs

Powerful, extensible text editor that supports various programming languages and file types.