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.	  Any  additional  positional  arguments  are  used as
	      $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.

       -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.

EXAMPLES
       To just start fish:

	  fish

       To run a	file with fish:

	  fish /path/to/script.fish

       To run some commands with fish:

	  fish -c 'echo	Hi there!'

       You can also pass arguments to those commands:

	  > fish -c 'printf %s\n $argv'	"first line" "second line"
	  first	line
	  second line

       To run a	script,	except read this other file first:

	  fish --init-cmd "source otherfile" script.fish

       To profile fish's startup and find what takes the  most	time  in  your
       configuration:

	  fish --profile-startup /tmp/start.prof -ic exit
	  sort -nk2 /tmp/start.prof

COPYRIGHT
       fish-shell developers

4.3				 Feb 27, 2026			       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+Ports+15.0.quarterly>

home | help