Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FISH(1)				  fish-shell			       FISH(1)

NAME
       fish - the friendly interactive shell

SYNOPSIS
       fish [OPTIONS] [FILE [ARG ...]]
       fish [OPTIONS] [-c COMMAND [ARG ...]]

DESCRIPTION
       fish  is	 a  command-line  shell	written	mainly with interactive	use in
       mind.  This page	briefly	describes the options for invoking fish.   The
       full  manual is available in HTML by using the help command from	inside
       fish, and in the	fish-doc(1) man	page.  The tutorial  is	 available  as
       HTML via	help tutorial or in man	fish-tutorial.

       The following options are available:

       -c or --command=COMMAND
	      Evaluate the specified commands instead of reading from the com-
	      mandline,	passing	additional positional arguments	through	$argv.

       -C or --init-command=COMMANDS
	      Evaluate	specified commands after reading the configuration but
	      before executing command specified by -c or reading  interactive
	      input.

       -d or --debug=DEBUG_CATEGORIES
	      Enables  debug  output  and specify a pattern for	matching debug
	      categories.  See Debugging below for details.

       -o or --debug-output=DEBUG_FILE
	      Specifies	a file path to receive	the  debug  output,  including
	      categories and fish_trace.  The default is standard error.

       -i or --interactive
	      The shell	is interactive.

       --install[=PATH]
	      When  built  as  self-installable	 (via cargo), this will	unpack
	      fish's data files	 and  place  them  in  ~/.local/share/fish/in-
	      stall/.	fish  will  also ask to	do this	automatically when run
	      interactively.  If PATH is given,	fish will install itself  into
	      a	relocatable directory tree rooted at that path.	 That means it
	      will  install  the data files to PATH/share/fish and copy	itself
	      to PATH/bin/fish.

       -l or --login
	      Act as if	invoked	as a login shell.

       -N or --no-config
	      Do not read configuration	files.

       -n or --no-execute
	      Do not execute any commands, only	perform	syntax checking.

       -p or --profile=PROFILE_FILE
	      when fish	exits, output timing information on all	executed  com-
	      mands  to	the specified file.  This excludes time	spent starting
	      up and reading the configuration.

       --profile-startup=PROFILE_FILE
	      Will write timing	for fish startup to specified file.

       -P or --private
	      Enables private mode: fish will not access old or	store new his-
	      tory.

       --print-rusage-self
	      When fish	exits, output stats from getrusage.

       --print-debug-categories
	      Print all	debug categories, and then exit.

       -v or --version
	      Print version and	exit.

       -f or --features=FEATURES
	      Enables one or more comma-separated feature flags.

       The fish	exit status is generally the exit status  of  the  last	 fore-
       ground command.

DEBUGGING
       While fish provides extensive support for debugging fish	scripts, it is
       also  possible to debug and instrument its internals.  Debugging	can be
       enabled by passing the --debug option.  For example, the	following com-
       mand turns on debugging for background IO thread	events,	in addition to
       the default categories, i.e. debug, error, warning, and warning-path:

	  > fish --debug=iothread

       Available categories are	listed by fish	--print-debug-categories.  The
       --debug	option	accepts	a comma-separated list of categories, and sup-
       ports glob syntax.  The following command turns on debugging  for  com-
       plete,  history,	 history-file, and profile-history, as well as the de-
       fault categories:

	  > fish --debug='complete,*history*'

       Debug messages output to	stderr by default. Note	that if	fish_trace  is
       set,  execution tracing also outputs to stderr by default. You can out-
       put to a	file using the --debug-output option:

	  > fish --debug='complete,*history*' --debug-output=/tmp/fish.log --init-command='set fish_trace on'

       These  options  can  also   be	changed	  via	the   FISH_DEBUG   and
       FISH_DEBUG_OUTPUT  variables.   The  categories enabled via --debug are
       added to	the ones enabled by $FISH_DEBUG, so they can  be  disabled  by
       prefixing them with - (reader-*,-ast* enables reader debugging and dis-
       ables ast debugging).

       The  file  given	 in  --debug-output  takes precedence over the file in
       FISH_DEBUG_OUTPUT.

COPYRIGHT
       fish-shell developers

4.0				 Nov 01, 2025			       FISH(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=fish&sektion=1&manpath=FreeBSD+15.0-RELEASE+and+Ports>

home | help