Commands

This is a list of all the commands fish ships with.

Broadly speaking, these fall into a few categories:

Keywords

Core language keywords that make up the syntax, like

  • if and else for conditions.

  • for and while for loops.

  • break and continue to control loops.

  • function to define functions.

  • return to return a status from a function.

  • begin to begin a block and end to end any block (including ifs and loops).

  • and, or and not to combine commands logically.

  • switch and case to make multiple blocks depending on the value of a variable.

  • command or builtin to tell fish what sort of thing to execute

  • time to time execution

  • exec tells fish to replace itself with a command.

  • end to end a block

Tools

Builtins to do a task, like

  • cd to change the current directory.

  • echo or printf to produce output.

  • set_color to colorize output.

  • set to set, query or erase variables.

  • read to read input.

  • string for string manipulation.

  • path for filtering paths and handling their components.

  • math does arithmetic.

  • argparse to make arguments easier to handle.

  • count to count arguments.

  • type to find out what sort of thing (command, builtin or function) fish would call, or if it exists at all.

  • test checks conditions like if a file exists or a string is empty.

  • contains to see if a list contains an entry.

  • eval and source to run fish code from a string or file.

  • status to get shell information, like whether it’s interactive or a login shell, or which file it is currently running.

  • abbr manages Abbreviations.

  • bind to change bindings.

  • complete manages completions.

  • commandline to get or change the commandline contents.

  • fish_config to easily change fish’s configuration, like the prompt or colorscheme.

  • random to generate random numbers or pick from a list.

Known functions

Known functions are a customization point. You can change them to change how your fish behaves. This includes:

Helper functions

Some helper functions, often to give you information for use in your prompt:

  • fish_git_prompt and fish_hg_prompt to print information about the current git or mercurial repository.

  • fish_vcs_prompt to print information for either.

  • fish_svn_prompt to print information about the current svn repository.

  • fish_status_to_signal to give a signal name from a return status.

  • prompt_pwd to give the current directory in a nicely formatted and shortened way.

  • prompt_login to describe the current login, with user and hostname, and to explain if you are in a chroot or connected via ssh.

  • prompt_hostname to give the hostname, shortened for use in the prompt.

  • fish_is_root_user to check if the current user is an administrator user like root.

  • fish_add_path to easily add a path to $PATH.

  • alias to quickly define wrapper functions (“aliases”).

  • fish_delta to show what you have changed from the default configuration.

  • export as a compatibility function for other shells.

Helper commands

fish also ships some things as external commands so they can be easily called from elsewhere.

This includes fish_indent to format fish code and fish_key_reader to show you what escape sequence a keypress produces.

The full list

And here is the full list: