Friendly interactive shellとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Friendly interactive shellの意味・解説 

Fish (Unixシェル)

(Friendly interactive shell から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/03/06 05:29 UTC 版)

fish
The friendly interactive shell
作者 Axel Liljencrantz
開発元 fish-shell developers
最新版
4.0.0[1]  - 2025年2月27日 (7日前) [±]
リポジトリ
プログラミング
言語
Rust
対応OS Unix-like
種別 Unix shell
ライセンス GPL-2.0-only[2]
公式サイト fishshell.com
テンプレートを表示

fishfriendly interactive shell)とはUNIXにおけるシェルの一つである。

概要

fishは対話的利用・判り易さ・ユーザフレンドリさに重きを置いている。fishの最終目標は、簡単に発見でき、覚えられ、利用できるようなかたちで強力な機能を提供することである。fishの提供するタブ補完機能はユーザフレンドリかつ強力であり、全ての補完に対する簡易な説明や、ワイルドカードを含む文字列での補完や、たくさんのコマンドについて固有の補完を含む。また、fishは拡張可能かつ判り易いヘルプを備えている。特別なヘルプコマンドでは、ユーザの設定したウェブブラウザにて全てのfishドキュメントにアクセスが可能である。

文法

fishの文法は他のシェルスクリプト言語と少し異なる。これらの変更は言語を容易に学習できるように、そして言語を強力にしている。fishとBashに代表する他のシェルスクリプト言語との明確な違いは、変数はトークンを必要としない。これはすなわち、引用符を用いて文字列を囲むということを滅多にしないのである。

 # 変数代入: 変数fooに対しbarという値をセットする。
 # ここで=演算子を使ってはならない。これは空白文字によって判別される。
 # 加えてsetコマンドは配列やスコープなどと拡張して使うことが出来る。
 > set foo bar
 > echo $foo
 bar
 
 # コマンド代入: 変数wdに対してpwdコマンドの出力を代入する。
 # ここで `` を使ってはならない。これはネストが出来ない上、'' と非常に紛らわしいからである。
 # それから$()も使ってはならない。fishに於いて$は変数を展開するときのみ利用される。
 > set wd (pwd)
 > echo $wd
 ~
 
 # 配列変数: 変数Aに対して、3, 5, 7, 9, 12という値を配列として代入する。
 > set A 3 5 7 9 12     
 > echo $A[(seq 3)] 
 3 5 7
 # 配列分割: 変数Bは、変数Aの1つ目と2つ目の値である。
 > set B $A[1 2]          
 > echo $b
 3 5
 # 変数Aの3つ目と5つ目の要素を削除する。
 > set -e A[$B]; echo $A  
 3 5 9
 
 # forループ: JPEGからPNGへ変換する。
 > for i in *.jpg; convert $i (basename $i .jpeg).png; end
 
 # whileループ: /etc/passwdを読み込み、コロンで区切られた5番目のフィールドを出力する。
 # これはユーザの説明のフィールドである。
 > cat /etc/passwd|while read line; set arr (echo $line|tr : \n); echo $arr[5]; end

fishと他のシェルスクリプト言語との重要な違いの一つに、サブシェルの有無がある。他の言語に於いてパイプラインや関数、ループのような沢山のタスクはサブシェルを呼ぶことで実装している。サブシェルは親プログラムのために1-2個のコマンドを実行し終了する、シンプルな子プログラムである。しかしこの変更は、サブシェルの如何なる変化もメインシェルへ与えない。これはすなわち、変数の代入や多くのビルトイン関数が期待通りに動作しないのである。fishはサブシェルを決して呼ばず、それゆえ多くのビルトイン関数が完全に動作するのである。

 # これは多くの他のシェルでは動作しない。
 # これはreadコマンドがビルトイン関数だからである。
 # サブシェルをforkしないため、fishとzshで期待通り動く。
 > cat *.txt | read line

親切なヘルプメッセージ

fishに於けるエラーメッセージは、何が間違っていたのか、どうすればいいのかを実際にユーザへ伝えるように設計されている。

> foo=bar
fish: foo=bar というコマンドはありません。もしかしたら“set 変数 値”と
いう意味ですか? 変数値を設定する情報を見るためには、“help set”と入力
し、ヘルプセクションを見て下さい。

> echo ${foo}bar
fish: {$変数名}という意味ですか? 文字$は変数の初めに用います。$に続く
ブラケットは変数名の一部としては許可されておらず、変数名が0文字になって
しまいます。fishに於ける変数展開についての情報は“help expand-variable”
を入力して下さい。

> echo $(pwd)
fish: (コマンド)という意味ですか? fishに於いて文字$は変数値を利用する
ときのみ利用します。fishに於けるコマンド代用に関する情報は、“help
expand-command-substitution”を見て下さい。

ユニバーサル変数

fishは、ユーザが複数のfishシェルに対して横断的で永久に変数値を設定できる、ユニバーサル変数として知られる機能を持っている。この変数はログアウトか再起動するまで有効で、反映は全ての動作しているシェルに対して即座に行われる。

# デフォルトのテキストエディタをemacsに設定する。
# -Uオプションによってユニバーサル変数として扱う。
> set -U EDITOR emacs

# このコマンドは、全てのfishシェルに対してプロンプトを青色に設定するもの
# である。
> set -U fish_color_cwd blue

他の機能

  • 拡張タブ補完(Advanced tab completion
  • 拡張エラーチェックとシンタックスハイライトSyntax highlighting with extensive error checking
  • Xクリップボードのサポート(Support for X clipboard
  • terminfoに基づくターミナルハンドリング(Smart terminal handling based on terminfo
  • 検索可能なコマンド履歴(Searchable command history

脚注

  1. ^ "Release 4.0.0"; 閲覧日: 2025年2月27日; 出版日: 2025年2月27日.
  2. ^ fishshell.com License for fish

外部リンク


「Friendly interactive shell」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Friendly interactive shell」の関連用語

Friendly interactive shellのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Friendly interactive shellのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのFish (Unixシェル) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS