1FISH(1) fish-shell FISH(1)
2
3
4
6 fish - the friendly interactive shell
7
9 fish [OPTIONS] [-c command] [FILE] [ARGUMENTS...]
10
12 fish is a command-line shell written mainly with interactive use in
13 mind. This page briefly describes the options for invoking fish. The
14 full manual is available in HTML by using the help command from inside
15 fish, and in the fish-doc(1) man page. The tutorial is available as
16 HTML via help tutorial or in fish-tutorial(1).
17
18 The following options are available:
19
20 • -c or --command=COMMANDS evaluate the specified commands instead of
21 reading from the commandline, passing any additional positional argu‐
22 ments via $argv. Note that, unlike other shells, the first argument
23 is not the name of the program ($0), but simply the first normal ar‐
24 gument.
25
26 • -C or --init-command=COMMANDS evaluate the specified commands after
27 reading the configuration, before running the command specified by -c
28 or reading interactive input
29
30 • -d or --debug=DEBUG_CATEGORIES enable debug output and specify a pat‐
31 tern for matching debug categories. See Debugging below for details.
32
33 • -o or --debug-output=DEBUG_FILE specify a file path to receive the
34 debug output, including categories and fish_trace. The default is
35 stderr.
36
37 • -i or --interactive specify that fish is to run in interactive mode
38
39 • -l or --login specify that fish is to run as a login shell
40
41 • -n or --no-execute do not execute any commands, only perform syntax
42 checking
43
44 • -p or --profile=PROFILE_FILE when fish exits, output timing informa‐
45 tion on all executed commands to the specified file. This excludes
46 time spent starting up and reading the configuration.
47
48 • --profile-startup=PROFILE_FILE will write timing information for
49 fish's startup to the specified file. This is useful to profile your
50 configuration.
51
52 • -P or --private enables private mode, so fish will not access old or
53 store new history.
54
55 • --print-rusage-self when fish exits, output stats from getrusage
56
57 • --print-debug-categories outputs the list of debug categories, and
58 then exits.
59
60 • -v or --version display version and exit
61
62 • -f or --features=FEATURES enables one or more feature flags (sepa‐
63 rated by a comma). These are how fish stages changes that might break
64 scripts.
65
66 The fish exit status is generally the exit status of the last fore‐
67 ground command.
68
70 While fish provides extensive support for debugging fish scripts, it is
71 also possible to debug and instrument its internals. Debugging can be
72 enabled by passing the --debug option. For example, the following com‐
73 mand turns on debugging for background IO thread events, in addition to
74 the default categories, i.e. debug, error, warning, and warning-path:
75
76 > fish --debug=iothread
77
78 Available categories are listed by fish --print-debug-categories. The
79 --debug option accepts a comma-separated list of categories, and sup‐
80 ports glob syntax. The following command turns on debugging for com‐
81 plete, history, history-file, and profile-history, as well as the de‐
82 fault categories:
83
84 > fish --debug='complete,*history*'
85
86 Debug messages output to stderr by default. Note that if fish_trace is
87 set, execution tracing also outputs to stderr by default. You can out‐
88 put to a file using the --debug-output option:
89
90 > fish --debug='complete,*history*' --debug-output=/tmp/fish.log --init-command='set fish_trace on'
91
92 These options can also be changed via the $FISH_DEBUG and $FISH_DE‐
93 BUG_OUTPUT variables. The categories enabled via --debug are added to
94 the ones enabled by $FISH_DEBUG, so they can be disabled by prefixing
95 them with - (reader-*,-ast* enables reader debugging and disables ast
96 debugging).
97
98 The file given in --debug-output takes precedence over the file in
99 $FISH_DEBUG_OUTPUT.
100
102 2021, fish-shell developers
103
104
105
106
1073.3 Jul 06, 2021 FISH(1)