fish - フレンドリーな対話型シェル

概要

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

説明

fish は、主に対話的な利用を念頭に置いて作成されたコマンドラインシェルです。このページでは、 fish を起動する際のオプションについて簡潔に説明します。 完全なマニュアル は、fish の内部から help コマンドを使用することで HTML 形式で表示できるほか、 fish-doc(1) マニュアルページでも参照可能です。 チュートリアル は、 help tutorial を実行して HTML 形式で表示するか、 man fish-tutorial で参照できます。

以下のオプションが利用可能です:

-c--command=COMMAND

コマンドラインから入力を読み取る代わりに、指定されたコマンドを評価します。それ以降の追加の引数は位置引数として $argv に渡されます。

-C--init-command=COMMANDS

設定ファイルを読み込んだ後、かつ -c で指定されたコマンドの実行や対話的な入力の読み取りを行う前に、指定されたコマンドを評価します。

-d--debug=DEBUG_CATEGORIES

デバッグ出力を有効にし、デバッグカテゴリに一致するパターンを指定します。詳細は以下の デバッグ セクションを参照してください。

-o--debug-output=DEBUG_FILE

カテゴリや fish_trace を含むデバッグ出力の送信先となるファイルパスを指定します。デフォルトは標準エラー出力です。

-i--interactive

対話型シェルとして動作します。

-l--login

ログインシェルとして起動されたかのように動作します。

-N--no-config

設定ファイルを読みません。

-n--no-execute

コマンドを実行せず、構文チェックのみを行います。スクリプトを実行せずに構文に誤りがないか確認するのに便利です。

-p--profile=PROFILE_FILE

fish が終了した際、実行されたすべてのコマンドのタイミング情報を指定されたファイルに出力します。これには起動や設定の読み込みにかかった時間は含まれません。

--profile-startup=PROFILE_FILE

fish の起動に関するタイミング情報を指定されたファイルに書き込みます。

-P--private

プライベートモード を有効にします。 fish は古い履歴にアクセスせず、新しい履歴を保存もしません。

--print-rusage-self

fish が終了した際、getrusage からの統計情報を出力します。

--print-debug-categories

すべてのデバッグカテゴリを表示して終了します。

-v--version

バージョンを表示して終了します。

-f--features=FEATURES

カンマ区切りで指定された1つ以上の 機能フラグ を有効にします。

fish の終了ステータスは、通常 最後に実行されたフォアグラウンドコマンドの終了ステータス になります。

デバッグ

fish は fishスクリプトのデバッグ を強力にサポートしていますが、内部動作のデバッグや計測を行うことも可能です。デバッグを有効にするには --debug オプションを渡します。例えば、以下のコマンドはデフォルトのカテゴリ(debug, error, warning, warning-path)に加えて、バックグラウンドIOスレッドイベントのデバッグを有効にします

> fish --debug=iothread

利用可能なカテゴリは fish --print-debug-categories で確認できます。--debug オプションはカンマ区切りのカテゴリリストを受け取り、グロブ構文もサポートしています。以下のコマンドはデフォルトのカテゴリに加えて、 complete, history, history-file, profile-history のデバッグを有効にします。

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

デフォルトでは、デバッグメッセージは標準エラー出力(stderr)に出力されます。 fish_trace が設定されている場合、実行トレースもデフォルトで標準エラー出力に出力されることに注意してください。 --debug-output オプションを使用するとファイルに出力できます

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

これらのオプションは FISH_DEBUG および FISH_DEBUG_OUTPUT 変数を介して変更することもできます。 --debug で有効にしたカテゴリは $FISH_DEBUG で有効なものに 追加 されます。そのため、カテゴリの前に - を付けることで無効化できます(例: reader-*,-ast* は reader のデバッグを有効にし、ast のデバッグを無効にします)。

--debug-output で指定されたファイルは、FISH_DEBUG_OUTPUT で指定されたファイルよりも優先されます。

使用例

単に fish を起動する場合:

fish

fish でファイルを実行する場合:

fish /path/to/script.fish

fish でいくつかのコマンドを実行する場合:

fish -c 'echo Hi there!'

それらのコマンドに引数を渡すこともできます:

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

別のファイルを先に読み込んでから、スクリプトを実行する場合:

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

fish の起動を プロファイル し、設定ファイルのどこで最も時間がかかっているかを確認する場合:

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