用語:どのディレクトリから端末コマンドを呼び出すのですか?

用語:どのディレクトリから端末コマンドを呼び出すのですか?

コンテキスト:macOS Catalina zSh。究極の目標は、CLIを介してすべてのデータ位置から呼び出すことができるようにユーザースクリプトを設定できることです。

質問:この単語(用語)とは何ですか?任意のディレクトリから呼び出される端末コマンドですか?正しい単語/フレーズを使用すると、Googleがそのトピックを検索し、以下に定義されている目標に向かって進むことができます。

例: このコマンドはls任意のディレクトリで実行でき、出力を返します。同様に、いつlsusbホームブリッジソフトウェアを使用してインストールしました。:lsusb はすべてのディレクトリで動作します。 lsusbがインストールされると、システムはどこを見るかを知るように設定されますlsusb

パス変数:$PATH 変数にパス情報が含まれていることがわかります。

非常に大きい:~user$echo $PATH

返品

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

私は疑う/etc/パス起動時に$ PATHを設定します。

非常に大きい:~user$cat /etc/paths

/usr/local/bin /usr/bin /bin /usr/sbin /sbin

出力パスは次のとおりです。ファイルシステム階層、私の目標と同様の問題が発生しますが、用語の問題は発生しません。

ターゲット:トピックの単語/用語をGoogleで検索してベストプラクティスを学びたいです。すべてのディレクトリでスクリプトを実行できるようにする方法。別のパスを追加するか、$ PATH変数で設定された上記の既存のパスのいずれかを選択するかどうかを決定する必要があります。

どのディレクトリからでも私のスクリプトを呼び出すことができます。重要な実用性を持っています。このスクリプトは、ファイルシステムの任意の場所に配置できるPDFファイルを処理します。私のスクリプトは実行可能ファイルを呼び出します。PDF文書シール

言う: トピックは、提起された「サブフォルダ」の質問ではありません。https://apple.stackexchange.com/q/366127/187540 これはディレクトリ管理とある程度関連しているので、よく読んでください。

答え1

私が知る限り、アプリケーション/ユーティリティ/スクリプトをデプロイまたはデプロイする必要がある以外に、あなたが要求しているように見える特定のよく知られている用語はありません。パスへ、略語で「実行可能検索パスに含まれるディレクトリに」。残念ながら、短い形式はGoogleで簡単に検索できず、長い形式はほとんど使用されません。

すべてのユーザーがスクリプトを使用できるようにするには、「標準」の方法はスクリプトをに追加(またはリンク)する/usr/local/binことです。ローカルシステム管理者が管理し、システム内のすべてのユーザーが使用できるスクリプトとツールの予想位置。このディレクトリは通常、システムのデフォルトの$PATHユーザーディレクトリに含まれています。

/usr/local/binあなたの例では$PATH 今後システム標準ツールディレクトリ/usr/bin/binこれにより、システム管理者は書く/usr/local/binたとえば、対応する標準システムツールとまったく同じ名前の特定のツールの最新バージョンを配置して標準ツールを設定します。

スクリプトの目的が次のような場合すべてのシステム管理者のみ、それは/usr/local/sbinそれぞれ予想される位置です。ただし、これが常に$PATHシステム管理者のデフォルトに自動的に追加されるわけではありません。

ただし、自分で設定したい場合は、最も簡単な方法はスクリプト用のディレクトリを設定し($HOME/binたとえば、必要に応じて名前を付けることができます)、スクリプトをプライベート$PATHログインシステムのデフォルトに追加することです。

デフォルト値を変更する場合は、$PATH既存の値を完全に置き換える(何をしているのかわからない場合はお勧めできません)、カスタムスクリプトディレクトリを$PATH

$HOME/bin現在のアイテムに追加$PATH:

export PATH="$PATH:$HOME/bin"

カスタムディレクトリを追加すると、その中のスクリプトが検索順序の最後に配置されるため、一部の標準システムツールと同じスクリプト名を指定して、誤って問題が発生しないようにすることができます。

逆に、考える標準ツールを独自のツールとしてオーバーライドするには、次の場所にscripts / toolsディレクトリを追加します$PATH

export PATH="$HOME/bin:$PATH"

この変更を永続的に適用してすべてのシェルセッションに影響を与え、再起動後も永続化するには、上記の行をファイルに追加するだけです~/.profile(まだ存在しない場合は作成できます)。

関連情報