過去にはそうではありませんでした。

過去にはそうではありませんでした。

存在する他のスレッドexittest私はという名前のプログラムやシェルなどのオペレーティングシステムのユーザーインターフェイスの一部ではないプログラムは愚かであると自慢して言いたいと思いますhelp。私が意味するのは、これらの一般名をトップレベルのユーザーインターフェイス、通常はコマンドシェル、またはコアオペレーティングシステムユーティリティ用に予約する必要があることを意味します。

ユーザーschilyは、これがhelp1970年代以降、Unixの不可欠な部分であったsccsバージョン管理システムへのコマンドであると述べました。 sccsは実際にSingle Unix仕様に含まれています。

sccsのオンラインドキュメントはあいまいなようです。ほとんどのページは、helpと呼ばれるsccsサブコマンドとしてリストされていますsccs help <topic>。それからそこに/usr/bin/sccshelp注文する。しかし、その他のページ専門化されたものは実際にリストされています/usr/ccs/bin/help

私はsccsユーザーが/usr/ccs/bin/そのパスにあると仮定しています。これはhelp40年間の多くのUnixインストールの一部でした1。この場合、コマンド名の選択が残念ながらsccsは配列を持ち、bashは組み込みのbash-helpなどを呼び出す必要があると思います。

それでは、パスに(sccs)コマンドが頻繁にありますか?help


1変に聞こえますね。

答え1

過去にはそうではありませんでした。

あなたはいくつかの欠陥のある最新モデルを購入していますが、当時はそうではありませんでした。

しかし、私は笑って「頑張らないで、私が訓練させてあげる」と言った。初めて学ぶ命令はHELP「そしてコンソールターミナルに打ち込んでください。だからデータセンターマネージャー、シフトスーパーバイザー、エイトデイ」だ。オペレータLA100がうんざりしているのを見て、普段の紹介文字を送った後、彼らは私を期待する目つきで見て、私は親切に話しました。 「これがあなたの最も重要な命令です!」

交代監督官が先に進み、約1分間本文を研究しました。それから彼は振り返り、不思議な表情で尋ねました。 「それを何に使うの?」ため息。

— Mike O'Brien (航空宇宙) <neat.ai.toronto.edu!pyramid!verdix!ogccse!tektronix!aerospace.aero.org!sequent!aero!obrien> 作成者: <[Eメール保護]>(1989-03-01).VAXen、私の子供たちはどこにも属していません。。ドキュメンタリー、ユーモラスで面白いです。

私たちが知っているように、Unixは初心者のための簡単なヘルプコマンドを提供していません。これは、Bourne Againシェルの作成者が一度ではなく複数回埋めた穴です(オンラインディスカッションフォーラムでよく議論されています)。 Mortice-Kernは、使用するためhelpにdocoで検索できるコマンドを提供します。 AT&T System 5 Release 3.2 には、次のコマンドもあります。helpfilehelpindexhelp

$ヘルプ
ヘルプ:UNIXシステムオンラインヘルプ

        オプションの説明
                nはじめに:一般情報
                sitioate:キーワードを含むコマンドを探す
                u使用法:コマンドに関する情報
                g用語集:用語の定義
                r ファイルまたはコマンドにリダイレクト
                やめる
       選択項目を入力

これはAT&T Unixにあるため、指定されたSCCSコマンドを置き換えることがhelp違法であるか、Bourne Againシェル作成者が連絡を取らなかったという考えを否定します。しかし、もっとたくさんあります。

私達は推定する実際の使用 PATH

#PATH初期シェルPATH変数を設定します。
#
#PATH=/usr/bin:/etc:/bin:/boot/grub:/boot/grup/bin:/boot/solaris/bin:/sbin:\
/usr/openwin/bin:/usr/5bin://usr/X11/bin:/usr/apache/bin:/usr/apache2/bin:\
/usr/appserver/bin:/usr/ccs/bin:/usr/dt/bin:/usr/j2se/bin:usr/local/bin:\
/usr/oasys/bin:/usr/pgadmin3/bin:/usr/proc/bin:/usr/sadm/bin:\
/usr/sadm/admin/bin:/usr/sadm/sysadm/bin:/usr/sbin:/usr/sfw/bin:\
/usr/sfw/i386-sun-solaris2.10/bin:/usr/sfw/sbin:/usr/snadm/bin:\
/usr/sunvts/bin:/usr/ucb:/usr/ucb:/usr/vmsys/bin:/usr/xpg4/bin:\
/usr/xpg6/bin
- login.dflSun Microsystems、Inc。 2004-06-25.

現代のモデルの一部は、すべてが1つの巨大なディレクトリに格納されるということです。ダニエルJ.バーンスタイン/commandまたはArch Linux /usr/bin。これはもちろん、他のコマンドの名前を指定するのが困難です(他のモデルではfastbootinとで区別されます)。しかし、当時はそのようなモデルではありませんでした。bin/sbin/

このモデルの例は次のとおりです。ls私が議論した命令の様々な変形そして「Nexenta bashスクリプトは/usr/bin/sedの代わりに/usr/sun/bin/sedを使用します。「。全負荷コマンドディレクトリの数と、環境変数の値にリストされているサブセットの選択PATHと順序によって決まります。オペレーティングシステムの性格その男はそれを見た。

コマンド検索パスには以下を含めることができ、ある程度まではまだ含めることができます。

  • /bin/usr/bin/- ポストフォーマル標準化の観点から、公式標準化以前の従来の一般的なツールセットです。System V インターフェースの定義そしてX/Open 移植性ガイドバージョン3
  • /sbinおよび/usr/sbin/- システム管理ツール
  • /etc/そして/usr/etc/- より多くのシステム管理ツール(例えば、バージニア、実行可能ファイルが一度入ってきました/etc/。)
  • /5binおよび/usr/5bin/— AT&T Unix System 5 互換性ツールと System V (例: 5) 互換性ディレクトリ
  • /usr/ucb/- BSD互換ツールを含むUCB(BSD)互換性ディレクトリ
  • /usr/mbin/— マルチバイト文字セットをサポートする/usr/binツールバリアント
  • /usr/rbin/— 特定の「制限された」シェルに管理者が提供するツール
  • /usr/lbin/— ローカルにインストールされたツール、例/usr/local/bin/
  • /usr/amdahl/bin/-/usr/sun/bin/より一般的に類似点を導き出すことができる形式のオペレーティングシステムベンダーツール/usr/${OEM}/bin/usr/local/bin
  • /usr/games/- ゲーム
  • /usr/ccs/bin- ご覧のように、さまざまな開発者ツール
  • /usr/xpg4/bin/- 次のように動作するコマンドを含むディレクトリ。X/Open 移植性ガイド問題4
  • /usr/xpg6/bin/- 概念で指定された方法で実行されるコマンドを含むディレクトリ。X/Open 移植性ガイドIssue 6、より正確にはPOSIX.1:2001またはシングル Unix 仕様バージョン3
  • /opt/sfw/bin/- Sunが提供する追加のユーティリティCDをインストールして作成されます。SunFreeware付属CD
  • /opt/csw/bin/オープンCSW爆発波ツール
  • /opt/SUNWspro/bin/SUNW- Sunの(元の)株式取引シンボルであり、spro以前の製品名であるSunProを表すSun Workshop(現在のOracle Developer Studio)ツールバーのコマンド。
  • /usr/local/bin//opt— サブディレクトリやCSWを使用しない第三者が提供するコンテンツ

全盛期のSun / Oracleオペレーティングシステムとそのオープンソース派生製品は、おそらくそのようなマルチパーソナルオペレーティングシステムの最も極端な例です。 (Oracleは以降/usr/ucb、およびを含むいくつかのディレクトリを削除しました/usr/ccs。)しかし、上記のディレクトリのいくつかはAIXおよび他のディレクトリにあります。 /usr/amdahl/binたとえば、UTSで。

指定されたコマンド名で実行されるプログラムは、選択した属性によって異なります。与えられたコマンド名に対して1つのプログラムしか持たなければならないという考えは愚かです。結局、同じ名前の命令を区別することが最もPATH重要です~のため

厳格な優先順位という概念はありません。

多くのコマンドが非常に迅速に来て消えます。たとえば、Bill JoyはiululBSDにもかつてgreek命令がありました。

コマンドが決して変更されず、シェルの組み込み名と他のコマンドの例外があるという考えは、コマンドセットがどのように変更されるかを考慮すると、かなり異質です。

初心者の場合、sh それ自体12年以上にわたり、私たちはThompson、Mashey、Bourne、Kornシェルをリリースしました。 Thompsonシェルの外部ifコマンドがBourneシェルがそれをキーワードとして使用するのを防ぐという考えはif確かに面白いです。

(2005年以降、ksh93q)追加の組み込みコマンドを有効にするAT&T Kornシェルのメカニズムは/opt/ast/bin値に含まれますPATH。どちらも、組み込みコマンドが同じ名前の外部コマンドを置き換えることができるという概念をサポートします。そしてPATH人々が自分の性格を制御するために使用することを期待するアイデアにつながります。 (ast参考としてAT&T Software Technologiesの略です。)

追加読書

  • AT&T。 「UNIXシステムユーザーの基本:helpコマンド。」Unix System V, バージョン 3.2: ユーザーガイド。フレンティスホール。 1989年に。 2〜23ページ以下を参照。
  • デビッド・フェデラー、ブルース・H・ハンター、スティーブン・G・コチャン、パトリック・H・ウッド(1986)。 「/usr――神秘的なカタログ」。UNIXシステム管理。ヘイデンブックス、ISBN 9780810462892。54ページ以下を参照してください。
  • XPG標準、環境、マクロ。 Oracle Solarisのマニュアルページ。信託。 2014年。
  • XPG4標準、環境、マクロ。 SunOS のマニュアルページ。信託。 2004年。
  • Michael R. Alter(1996)。 UNIXシステム管理者の仲間。ウィリー。 ISBN 9780471111443。
  • if手動。エーテッシュプロジェクト。
  • ksh93シェルスクリプトの奇妙な動作( "command -p mkdir t"失敗)
  • https://news.ycombinator.com/item?id=7278408
  • ジョナサンデボインポラード(2017)。拡張マニュアルページul。提案。

答え2

/usr/bin/helpPWB / UNIXおよびSystem IIIには、SCCSエラーメッセージに焦点を当てたSCCS用ヘルパープログラムがあります。拡張可能個々のサイトでは、追加のコマンドまたはエラーメッセージに関するヘルプを追加できます。

ヘルプ(1)システムIIIで:

.SH NAME
help \- ask for help
.SH SYNOPSIS
.B help
[\^args\^]
.SH DESCRIPTION
.I Help\^
finds information to explain a message from a command or explain the use of
a command.
Zero or more arguments may be supplied.
If no arguments are given,
.I help\^
will prompt for one.
.PP
The arguments may be either
message numbers (which normally appear in parentheses following messages)
or command names,
of one of the following types:
.PP
.RE 
.RS 10
.TP 10
type 1
Begins with non-numerics, ends in numerics.
The non-numeric prefix is usually an abbreviation for the program or
set of routines which produced the message
(e.g., \fBge6\fP, for message 6 from the
.I get\^
command).
...
.SH FILES
.PP
.TP 20
/usr/lib/help
directory containing files of message text.

楽しい自己参照で終わる

.SH DIAGNOSTICS
Use
.IR help (1)
for explanations.

/usr/src/cmd/sccs/sccs.mk以下の内容があります。

INSDIR = /usr/bin
#   Directory where executable SCCS commands are stored

help:   help.o $(LIBDIR)/comobj.a
    $(CC) $(LDFLAGS) -o help help.o $(LIBDIR)/comobj.a $(LIBES)
    cp $(TESTDIR)/help $(INSDIR)


HELPDIR = help.d
#   Directory containing SCCS help files.
PUB_HELPLIB = /usr/lib/help
#   Public directory where help files are stored.

helpfiles:
    -mkdir $(PUB_HELPLIB)
    cp $(HELPDIR)/ad $(PUB_HELPLIB)/ad
    cp $(HELPDIR)/bd $(PUB_HELPLIB)/bd
    ...

答え3

SCCSは1972年に作成されましたが(SCCSは現在46年になりました)、1977年2月18日バージョン4.0がリリースされる前のSCCSに関する情報は入手できません。 SCCSバージョン4.0にはこのhelpコマンドが含まれています。以前のSCCSリビジョンは、現在SCCSと互換性がないバイナリ履歴ファイル形式を使用しています。

bashSCCSの詳細を書く前に、以下を紹介します。

bashksh93標準にリストされていない組み込み関数のメソッドを実装するのではなく、愚かなものは組み込み関数の多くを実装するため、ユーザーフレンドリーなシェルです。設定を可能にする組み込みksh93関数を実装します。builtin検索パス組み込み機能の場合。このような愚かなことは、組み込み機能の最大の問題は、最も高い優先順位で発見され、簡単に無効にすることができないことです。ただし、拡張ksh93組み込み機能は、ユーザーがインクルードをPATH設定する必要があるため、デフォルトではまったく見つからないことがよくあります。/usr/ast/bin

SCCSUNIXの動作に戻って:

UNIX開発者なら誰でも一般的に/usr/ccs/bin彼のPATH行為にCCSと同様の意味Cコンパイルシステム。このディレクトリには、次のプログラムが含まれています。cc, as, size, strip, nm, m4, make, SCCS, yacc...

/usr/bin/sccshelpOracle は Solaris を Linux に似たものにするためにこれらの変更を導入しましたが、多くの UNIX ユーザーはこれらの変更を好まなかった。

SCCSの公式オンライン文書を見るには、以下を確認することをお勧めします。

http://sccs.sourceforge.net/

特別:http://sccs.sourceforge.net/man/index.html

過去12年間で大々的な書き換えを経ました。しかし、私はそれ以来ずっと管理者として活動しています。

もともとSCCSサブシステムは、AT&TのMarc J. Rochkind、BSDのEric Allmanによって作成されました。注文する sccs1980年にSCCSは使いやすくなりました。

したがって、AT&Tの世界に住んでいる場合、すべてのコマンドは次の場所にあります。/usr/ccs/binBSDの世界では、以下を呼び出すことができます。sccs <subcommand>

あなたの質問に答えてください:はい、開発者はPATHでsccs helpコマンドを使用するのが一般的です。SCCSフロントエンドコマンドsccsは通常/usr/bin

関連情報