あなたのシェル(おそらくbashは)あなたが入力したときになるように割り当てられている別名があるpython
コマンドの最初に、それはにそれを変更します/usr/bin/python3
。あなたがそのエイリアスを持っている理由を言うのは難しいです。システム管理者が、すべての人にデフォルトでPython 2ではなくPython 3を使用することを望んでいる可能性がありますが、これはそれを達成するための試みでした。
あなた/usr/bin/python
はPython 2バイナリへのシンボリックリンクです。これはかなり普通のようです。python
Python 3はまだ人気がないため、多くのLinuxディストリビューション(Debianなど)でPython 2を参照するのが一般的です。ただし、常にそうとは限りません。Arch Linuxでは、python
Python 3を指します。
したがって、推測する必要がある場合、システムのパッケージマネージャーはシンボリックリンクをからインストールし/usr/bin/python
ました。/usr/bin/python2.7
これは、ポリシーがデフォルトでPython 2を使用するためのものであるためです。しかし、システムを構成する際に何らかの発言権を持っていた誰かが、デフォルトでPython 3を使用することを決定したため、このエイリアスをインストールしました。
ご覧のとおり、エイリアスは常に機能するとは限りません。を入力するnohup python
と、シェルはエイリアスを展開せず、代わりに文字列python
を引数としてnohup
コマンドに渡します。次に、nohup
コマンドは何をpython
意味するのかを理解する必要があり、それはすべてPATHを調べるだけです。シェルのエイリアスについては知りません。/usr/bin/python
Python 2を見つけて実行します。
シェルのマニュアルを読むと、起動時に実行されるファイルを見つけることができます(例:.bashrcなど)。これは、シェルにPython 3のエイリアスがある理由を見つけるのに役立ちます。次のような行を探します。
alias python=python3
システムのパッケージマネージャーについて読んで、どのファイルがどのパッケージに属しているかを調べる方法を理解することができます。これは、Python 2のシンボリックリンクがある理由を理解するのに役立ちます/usr/bin/python
。
which python
およびtype python