LinuxCommandLibrary

elvish

Interact with Elvish shell and script

TLDR

Start an interactive shell session

$ elvish
copy

Execute specific [c]ommands
$ elvish -c "[echo 'elvish is executed']"
copy

Execute a specific script
$ elvish [path/to/script.elv]
copy

SYNOPSIS

elvish [global-options] [script-args]

PARAMETERS

-c, --command string
    Execute the specified command and exit

-h, --help
    Show context-sensitive help

--help-long
    Show long version of context-sensitive help

--help-man
    Show manual page for elvish

--interactive
    Force interactive mode

--json
    Print structured information in JSON format

--no-rc
    Don't run rc.elv

--profile file
    Dump execution profile to file

--startup file
    Path to startup script (default: ~/.config/elvish/rc.elv)

-V, --version
    Show version information

DESCRIPTION

Elvish is a modern, interactive shell designed for Unix-like systems. It combines the usability of contemporary shells like fish and zsh with a powerful, expressive scripting language inspired by Lisp. Unlike traditional POSIX shells, Elvish uses a uniform value system where everything—strings, lists, maps—is first-class, enabling seamless handling of structured data.

Key features include:
• Powerful exception handling and control flow.
• Native support for structured data without parsing hacks.
• Modular design with easy extensibility via plugins.
• Fast startup and interactive experience with syntax highlighting, auto-suggestions, and vi/emacs keybindings.

Elvish is written in Go, making it portable across platforms. It's suitable for both interactive use and scripting, though its non-POSIX syntax means scripts may not be portable to Bourne-compatible shells. Ideal for users seeking a more programmer-friendly shell.

CAVEATS

Elvish scripts are not POSIX-compatible; use for interactive use or dedicated scripting. Still evolving, so check compatibility.

CONFIGURATION

Custom rc.elv at ~/.config/elvish/rc.elv for aliases, functions, and themes.
Edit-prompt and edit: styles customizable.

WEBSITE

elv.sh for docs, downloads, and modules.

HISTORY

Created by Xiaq (mrxia) in 2016, Elvish's first release was v0.1. Development focuses on expressiveness and usability. Reached v1.0 in 2024, marking stability. Actively maintained with community plugins.

SEE ALSO

bash(1), zsh(1), fish(1), nu(1)

Copied to clipboard