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
