web-dev-qa-db-ja.com

パスにbashスクリプトを追加します

LinuxのPATHに小さなスクリプトを追加したいので、実際にディスク上の物理的な場所で実行する必要はありません。

スクリプトは非常に単純で、プロキシを介してapt-getアクセスを許可することで、次のように作成しました。

#!/bin/bash
array=( $@ )
len=${#array[@]}
_args=${array[@]:1:$len}
Sudo http_proxy="http://user:password@server:port" apt-get $_args

次に、これをapt-proxy.shとして保存し、+ x(chmod)に設定すると、このファイルが置かれているディレクトリにいるときにすべてが正常に動作しています。

私の質問は:apt-proxy to [〜#〜] path [〜#〜]に追加する方法ですので、実際のaptのように実際に呼び出すことができます-取得する ? [どこからでも]

GUIで行う方法を知っていればコマンドラインのみのソリューションを探していますが、私が探しているものではなくです。

23
Mansueli

これを試して:

  • apt-proxyなどのディレクトリに、.sh(拡張子~/binなし)としてスクリプトを保存します。
  • ~/binPATHに追加し、export PATH=$PATH:~/binと入力します
  • 永続的に必要な場合は、~/.bashrcにその最後の行を追加します。 zshを使用している場合は、代わりに~/.zshrcに追加します。
  • 次に、apt-proxyを引数で実行するだけで、どこでも実行できます。

特定のウィンドウでPATH変数をexportした場合、他のbashインスタンスでは更新されないことに注意してください。

42
jlhonora

ディレクトリを、実際のバイナリではなくパス変数に定義したい.

PATH=$MYDIR:$PATH

ここで、MYDIRは、バイナリを含むディレクトリとして定義されます。

PATH=/Users/username/bin:$PATH

これをスタートアップスクリプトに含める必要があります。シェルプロセスが呼び出されるたびに実行される.bashrc。

順序が重要であり、PATHが評価されるため、名前に一致するスクリプトがパス変数の以前のエントリで見つかった場合、それが実行されます。 couldスクリプトにapt-getそして、パスの前に配置します。わかりにくいので、私はそうしません。代わりに、シェルエイリアスを調査することをお勧めします。

また、現在のディレクトリから正常に機能すると言うことにも注意してください。その場合、パスに現在のディレクトリがあることを意味します(.)それは潜在的なセキュリティリスクです。誰かがディレクトリにトロイの木馬の一般的なユーティリティ(たとえばls)を配置して、cd toそのディレクトリを誤って実行します。

8
Brian Agnew

〜/ .bash_profileファイルに実行可能ファイルのエイリアスを作成し、それをどこからでも使用するか、どこからでも実行する必要のある実行可能ファイルを含むディレクトリを取得することができます。

0
Abhi