From Gentoo Wiki
Jump to:navigation Jump to:search

This article is a stub. Please help out by expanding it - how to get started.
This article has been flagged for not conforming to the wiki guidelines (no lead in sentences, empty sections). Please help Gentoo out by starting fixing things.

psh is a fast and and flexible shell with a Perl 5 syntax. Because it is written in Perl 5, psh has ready access to Perl's regular expression engine and flexible data structures. Additionally psh is very fast at mathematical operations, including floating point arithmetic which Bash lacks entirely.

The Perl Shell is very "old school" in that it is not possible to configure it to use a Perl syntax newer than the interpreter's default. Thus, new features such as say are not available with a Perl 5.x interpreter, consistently psh has an early-90's Perl feel to it. Long standing Perl users may find this design decision "retro" but those coming from the perspective of either the modern Modern Perl movement or the Raku programming language may find the experience to be jarring or limiting.


USE flags

USE flags for app-shells/psh Combines the interactive nature of a Unix shell with the power of Perl

examples Install examples, usually source code
readline Enable support for libreadline, a GNU line-editing library that almost everyone wants
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)


root #emerge --ask app-shells/psh


Environment variables


  • ~/.pshrc - the user's shell profile.



root #emerge --ask --depclean --verbose app-shell/psh

See also

  • Bash — the default shell on Gentoo systems and a popular shell program found on many Linux systems.
  • Busybox — a utility that combines tiny versions of many common UNIX utilities into a single, small executable.
  • Perl — a general purpose interpreted programming language with a powerful regular expression engine.
  • Raku — a high-level, general-purpose, and gradually typed programming language with low boilerplate objects, optionally immutable data structures, and an advanced macro system.