6

私は Linux と Unix に比較的慣れていません。インターネットの助けを借りて、私は最終的$PATHに自分の仕事の方法とエイリアスを理解しました.bashrc.

しかし、いつどれを使用するかを説明するものは本当に見つかりませんでした。

Library/Frameworks に Python3.3 をインストールし、実行可能ファイルは です が、ターミナル/Library/Frameworks/Python.framework/Versions/3.3/bin/python3に入力するだけで Python 3.3 を実行したいとします。python3

私が正しく理解している場合、これを達成するための (少なくとも) 3 つの方法があります。

1) .bashrc の $PATH を変更します。

export PATH=/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH}

2) .bashrc にエイリアスを設定しました:

alias python3=/Library/Frameworks/Python.framework/Versions/3.3/bin

3) シンボリック リンク (symlink) の作成:

ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin /usr/local/bin

(あなたの経験から)「推奨される」方法は何だと思いますか?

4

4 に答える 4

7

パスpython3を入れることは、ファイルシステムのどこにいてもそれを呼び出す正しい方法です。シンボリック リンクは、そのコマンドを変更しpythonてスクリプトをバージョンに依存しないようにするための最良の方法です (Python に依存するスクリプトを実行するにはシンボリック リンクを使用し、Python 3.0 を必要とするスクリプトは特に python3 を使用します。は同じものです)。シンボリック リンクはファイル システム内のファイルであるため、パス内に存在する必要があります。

lsサイレントに-aを追加するエイリアスのようなコマンドラインユーティリティのデフォルトの動作とは異なる何らかの動作を作成しようとしている場合にのみ、エイリアスが使用されていることがわかります。

また、シンボリック リンクはファイル システムに保存されるため、一度作成されると、ログインする他のすべてのユーザーに存在しますが、エイリアスはそれらを定義したログイン ユーザーにのみ適用されます。また、ファイル権限を適用することもできます。

これは、いくつかの優れたエイリアスを含めることで端末にできることについての楽しい記事です。.bash_profile

于 2013-02-17T04:26:33.393 に答える
4

/Library/Frameworks/まず、Python をディレクトリにインストールする理由はありません。私の提案は、(少なくとも初心者の場合) のような最上位ディレクトリを追加しないことです/Library。ソース コードからコンパイルする場合は、標準でビルドする必要があります./configure(そして、おそらく ./usr/local/

ソース コードから Python をコンパイルすることについてはよくわかりませんが、ほとんどの Linux ソース コードはデフォルトでプレフィックスに./configure-d を付けます。/usr/local//usr/local/bin/PATH

一部の Linux ディストリビューションには、/etc/profile間接的に、ディレクトリ$HOME/bin/が存在する場合は、ディレクトリ内に追加するPATH;があります。その場合、バイナリとスクリプト (またはシンボリック リンク) を追加するだけの最も簡単な方法があります。

私の一般的なアドバイスは、非常に長いまたは非常に具体的なPATH. 特に、 for each product 内にディレクトリを追加することPATHは、私見では間違いです。たとえば、GNU コーディング標準の directory-variables セクションをPATH参照し、かなり短くしてください。個人的には、プログラムを/usr/local/bin/(システム全体) または にのみ、おそらくシンボリック リンクとして追加します (既にとの両方が含まれているため$HOME/bin/、 my は変更しません)。PATH/usr/local/bin/$HOME/bin

過去の経験によると、非常に長い時間を持つことPATHは悪夢であり、インタラクティブなシェルが遅くなります

于 2013-02-17T07:34:36.423 に答える
0

皆様、ご説明ありがとうございます。

すでに述べたように、私は Unix と Linux の初心者です。他の「初心者」向けのブログ用に、これらのこと (エイリアス、シンボリックリンク $PATH) に関する記事を書きました。私はこれらのことについて書くのが好きです。なぜなら、それらは私にとって本当に興味深いからです。また、私の経験を共有したいので、他の人にも役立つことを願っています。また、説明が必要な場合にも理解が深まり、今後の参考にもなります!

記事をすぐにざっと目を通していただければ幸いです。何か間違っていることがあれば、提案をいただければ幸いです。

http://scientific-ocean.com/2013/02/17/an-introduction-to-linuxunix-executables-path-aliases-and-symlinks/

于 2013-02-18T03:03:58.167 に答える
0

Python のバージョンが異なる場合に競合が発生しやすくなるエイリアスを使用することをお勧めします。シェルは PATH 変数を検索し、それが Python の実行可能ファイルと一致する場所でそれを実行します。エイリアスは、のようにシェル プロファイルに配置する必要があります.bash_profile

于 2013-02-17T04:28:27.857 に答える