今日、ss -tpla
コマンドを実行してネットワーク接続を確認したかったのですが、驚いたことにerror: unknown option -t
を取得しました。次に、ss
コマンドの場所を確認しました。
~$ whereis ss
ss: /bin/ss /usr/local/bin/ss /usr/share/man/man8/ss.8.gz
ご覧のとおり、2つのss
コマンドがあり、1つは/bin/ss
に、もう1つは/usr/local/bin/ss
にあります。
同じ名前の別のアプリケーションをソースコードから/usr/local/bin/ss
にインストールした可能性があります。いつ、どのように使用したかは覚えていませんが、実行したいコマンドではありません。奇妙なことは、実行すると
ss -tpla
コマンドを/usr/local/bin/ss
にリダイレクトします。実際のss
コマンドは次のコマンドで実行できます。
/bin/ss -tpla
/bin
が他のパスよりも優先されると思いました。
私の質問は、システムパスの優先順位を決定するものと、それらをオーバーライドする方法です。
シンボリックリンクを作成して、/bin/ss
に優先順位を付けることができます。
Sudo mkdir /opt/ss
Sudo ln -s /bin/ss /opt/ss/
/opt/ss
をパスに追加しますbefore/usr/local/bin
export PATH=/opt/ss:$PATH
$ echo $PATH
/opt/ss:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
これを永続的にするには、~/.profile
の最後に追加します
PATH=/opt/ss:$PATH
PATHが行います。
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:
/bin:/usr/games:/usr/local/games
パスを変更しないでください(「ss」以外にも変更される可能性があります)。つかいます
/bin/ss -tpla