* nixでポイントコマンド `.`のヘルプを見つけるにはどうすればよいですか?


21

(最初のポイントを意味します).などのポイントコマンドのヘルプを見つける必要があります. ./my_script.sh

とを使用してmanページを見つけようman .としましたman \.。コマンドの使用方法を説明したマニュアルページを表示するにはどうすればよい.ですか?


14
@ C0deDaedalus:「。」の正規名 フルストップです。人々がそれを呼ぶことは、彼らが育った場所に依存します。
RedGrittyBrick

5
ただ、実行しますhelp .
kenorb

2
ただし、ドキュメントでは、と呼ばれていdotます。正式な仕様を参照してくださいpubs.opengroup.org/onlinepubs/009696699/utilities/dot.html
チャールズ・ダフィー

11
@jamesqf .はコマンド、特にシェル組み込みコマンドです。Bashでは、と同等sourceです。
wjandrea

4
@jamesqf:.POSIXであり、bashだけではありません。たとえば、zshとkshにもあります。
-MSalters

回答:


79

最初に呼び出すtype .必要があるのは、おそらく次のようなものです。

. is a shell builtin

ビルトインはシェルの一部であり、独自のマニュアルページはありません。それらのいくつかはそれらを持っているように見えるかもしれません、例えばechoBashに組み込まれていますが、おそらく/bin/echoあなたのシステムのような別個の実行可能ファイルがあり、この場合後者をman echo指します。これらの2つはおそらく厳密に同等ではありません。echo

シェルは、ビルトインを介してhelpビルトインに関する情報を提供する場合があります。試してhelp helphelp type最後に:

help .

ビルトインは、シェルのマニュアルページにもリストされている場合があります。(私のDebianでは)Bashビルトインは直接カバーされてman bashいますが、Zshビルトインでman zshはを実行するように指示されていますman zshbuiltins。一般に、シェルは組み込みを説明する場合としない場合があります。


7
.シェル組み込みであるポインティングに対して+1。OPが要求するため、これは回答としてマークされる必要がありますhow to find help for . in *nix ?
C0deDaedalus

7
+1は、type .一部のコマンドがシェル組み込みコマンドであることを示すために使用します。
ロジャーリップスコム

1
ほとんどのDebianでは、Bashビルトインはbash-builtins(1)、より便利なサイズのマニュアルページにも抽出されます。
トビースパイト

また、「type」の呼び出しは、「type」が組み込まれたシェルを使用している場合にのみ機能します。tcshを使用している場合は、「タイプ」。「タイプ:コマンドが見つかりません。」
ジェームズクフ

1
でも. --help動作します
デジタル外傷

25

使用しているシェルに合わせてman shまたはman bashまたはmanページを使用してみてください。(たぶんman $SHELL。)

これは正式には「ポイント」コマンドではなく、sourceコマンドと呼ばれます。単語を検索sourceすると役立つ場合があります。

たとえば、bashのマニュアルページ(「各組み込みコマンド」を検索)を使用すると、ドキュメントがすぐに見つかります。

使用方法の説明については、ここでできます。私はこれをsourceコマンドと呼んでいますが、シェルを使用している期間に短縮できることを認識しており、一部のシェルではコマンドが必要になる場合があります(ドットが認識されるsourceかもしれないが、単語全体が)。

sourceコマンドを使用すると、シェルはスクリプトファイルから各行を読み取り、実行しようとします。ファイルの「読み取り」権限が必要です。(「実行」権限があるかどうかは関係ありません。)変数を変更すると、現在のシェルに影響を与える傾向があります。

一方、ファイルを実行しようとすると、シェルはオペレーティングシステムにこの要求を処理するように要求します。これには「実行」権限が必要です。(OpenBSDのような一部のシステムでは、このための「読み取り」許可は必要ありません。多くのUnixバリエーションを含む他のシステムでは、必要になります。)ファイルは適切なヘッダー(例えば)で始まる必要があります。 )、スクリプトに対して呼び出されたサブシェルのみに影響し、スクリプトファイルを呼び出した親シェルの環境を変更することはできません。#!/bin/sh)オペレーティングので、システムはこれをスクリプトファイルとして認識します。オペレーティングシステムは、要求されたシェルのコピーを実行し、そのシェルにスクリプトの内容を実行するように指示します。シェル環境が変更された場合(たとえば、変数が新しい値を取得した場合、作業ディレクトリが変更された(で  cd)、ファイル記述子がリダイレクトされた(で exec


15
それsourceはbash のみです。POSIX仕様では、「ドットコマンド」と呼ばれます(sourceエイリアスはサポートされていません)。
チャールズダフィー

1
スクリプトには読み取り権限が必要です。そうでない場合、インタープリターはスクリプトにアクセスできません。スクリプトを実行可能にする
wjandrea

1
スクリプトを実行してもサブシェルは開きませんが、コンパイルされたプログラムを実行するのと同じように、通常の子プロセスだけが開きます。「サブシェルは子シェルと同じものですか?」に関するこの回答を
wjandrea

1
だから、私はタイプしてman bashから、何を/.?あまり役に立たない。/source有用であろうが、それのためにあなたはそれを知っている必要があるだろう.source同じことです。
Joker_vD

1
それはそれがあることを意味するので、私は、少し誤解を招く「...使用を説明するためのように、」あなたの段落を見つけたかもしれないこと.、それは可能性があることsourceが、@CharlesDuffyは、すでに述べたように、それはだ常に .任意のPOSIX準拠のシェルでのみ別名を持っているsource中で1つのシェル。
トム・フェネシュ

6

それはしばしば忘れられているので、他の誰もそれについて言及していません。

あなたの最大の手がかりは、役に立つコマンドから来るでしょうwhatis

tim@musha ~ $ whatis .
builtins (1)         - bash built-in commands, see bash(1)
tim@musha ~ $ whatis source
builtins (1)         - bash built-in commands, see bash(1)
tim@musha ~ $ whatis bash
bash (1)             - GNU Bourne-Again SHell
tim@musha ~ $ whatis lynx
lynx (1)             - a general purpose distributed information browser for the World Wide Web
tim@musha ~ $ whatis linux
linux: nothing appropriate.
tim@musha ~ $ whatis whatis
whatis (1)           - display one-line manual page descriptions

編集:

一部の人々は、これがいくつかのディストリビューションではないことをコメントで指摘しました-多分それはインストール可能なパッケージであるか、何らかの方法を有効にします-私はgentooでデフォルトでそれを持っていました;)

素晴らしいwhich-どの実行可能ファイルが呼び出されるかを教えてくれ、whereisはあなたが指定した実行可能ファイルへのすべてのパスを提供し、manページ(複数のパスに存在する場合)を含みます。


1
良いヒントですが、どこでも動作しないようです。例えば、AIXでのksh、とwhatis .リターンman: 0703-307 . is not found.
aturegano

4
whatis .Ubuntu 16.04で何も返さない
Vadim Kotov

そして、「.:適切なものはありません。」tcshを使用したOpenSuSEで。
ジェームズクフ

2
ああ、それ自身のマニュアルページから:「whatis-1行のマニュアルページの説明を表示する」だから、それは人間の非常に短いバージョンのようです。
Xen2050

より互換性のあるオプションは次のとおりです:apropos( "man -k"を実行するのと同じである必要があります)。ために "。" または「ソース」(「リソース」という単語の一部です)これは誤検出が多すぎるためうまく機能しませんが、他の例(bash、lynx、whatis)で機能する可能性があります。Debian Linuxの場合:「whatis .」は.: nothing appropriate.OpenBSDの「」を与え、47行の出力をもたらしました。この特定の例(whatis .Gentooで" " を使用)の場合、結果はめったに良くないことがあります(この手法は他の多くのシナリオ例では一般的に有用ではないことを意味します)。
TOOGAM

4

man source 必要な説明が表示されます。

ドットはsourceコマンドと同じです。

source サブシェルではなく現在のシェルでスクリプトを実行します(通常の方法です)。

sourceスクリプト内で設定された変数の使用は、スクリプトが終了した後も保持されます。


2
どのディストリビューションでman source機能しますか?私のDebianにはないので、質問です。
カミルマシオロウスキ

1
CentOS 6.5で動作します。私はbashのバージョンにより関連していると思います。私の場合は4.1.2(1)
jcbermu

@ jcbermu、bashのどのバージョンも、sourceアップストリーム用の個別のマニュアルページを出荷していません-それはCentOSが行った可能性が高いものです。
チャールズダフィー

私のシステムでman sourceは、を提供しますがman bash_builtins、これは何も説明しませんが、あなたを参照しますbash(1)
スコット

1
私のシステム(Ubuntu LTS)では、... man sourceが与えられますsource(3tcl)type commandコマンドが組み込みコマンドである場合は、help commandおそらく適切な方法です...
Hastur

0

.シェルの同義語であるsourceコマンドとそうではbash、その構文はで表示されます...

help source

ターゲットファイルを読み取り、現在のスクリプトの一部であるかのように解釈するという点で、他の言語のincludeand importコマンドとまったく同じように機能します。したがって、そのファイルは、現在のスクリプトの残りのコマンドの前に完全に実行されます。

通常、現在のスクリプトの先頭にある必要があり、変数や関数定義を読み込むために最もよく使用されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.