タグ付けされた質問 「path」

PATH(すべて大文字)は、Unixのようなオペレーティングシステム、DOS、OS / 2、およびMicrosoft Windowsの環境変数の名前で、実行可能プログラムが検索される一連のディレクトリを指定します。

1
$ PATHにディレクトリ全体ではなく単一の実行可能ファイルを追加することは可能ですか?
OSXにXAMPPをインストールしました。デフォルトではbin、$PATH変数にさまざまなユーティリティが満載された独自のディレクトリへのパスを追加しています。 # Add path to XAMPP PHP version export XAMPP_PHP=/Applications/XAMPP/xamppfiles/bin export PATH="$XAMPP_PHP:$PATH" 残念ながら、そのユーティリティの1つがと呼ばれますHEAD。これは、OSXの大文字と小文字を区別しないファイルシステムのおかげで、Unix headコマンドと衝突します。XAMPP HEADはまったく関係ありませんhead(HTTP HEADリクエストを発行すると思います)。 もちろん、headとXAMPPの両方を使用したいので、パス変数の順序を変更しました。 export PATH="$PATH:$XAMPP_PHP" これによりを使用できますheadが、XAMPPのバージョンのPHP(たとえば、5.5)と、OSXに付属するプレインストールバージョンのPHP(5.3)との間に衝突が生じています。5.3へのパスが最初に来るので、それが優先されます。 ハックな解決策の私の計画は、完全なファイルパス+名前の前にXAMPPのバージョンのPHPを追加し、その後にパスの残りを追加することでした$PATH。 export PATH="/Applications/XAMPP/xamppfiles/bin/php:$PATH:$XAMPP_PHP" これは機能していないようです。bashを再起動して確認php -vしても、PHP 5.3(組み込みバージョン)のままです。特定のファイルパスを追加することも可能$PATHですか?
9 path 

8
行の最初または途中のパターンのGrep
まず、この問題は思ったよりも無害だと思います。 私が必要なこと:PATH環境変数内のフォルダーを確認します。それは最初か後のどこかにあります。そのフォルダが存在することを確認するだけです。 私の問題の例-使用しましょう/opt/gnome。 シナリオ1:フォルダーがPATHの先頭にない # echo "$PATH" /sbin:/usr/sbin:/opt/gnome:/var/opt/gnome # echo "$PATH" | grep ":/opt/gnome" /sbin:/usr/sbin:/opt/gnome:/var/opt/gnome キャッチしないように、grepは十分に具体的である必要があることに注意してください/var/opt/gnome。したがって、結腸。 シナリオ2:フォルダーがPATHの先頭にあります。 # echo "$PATH" /opt/gnome:/sbin:/usr/sbin:/var/opt/gnome # echo "$PATH" | grep "^/opt/gnome" /opt/gnome:/sbin:/usr/sbin:/var/opt/gnome これは私の問題です-このフォルダーでコロンまたは行頭を検索する必要があります。私がやりたいのは、次の2つのブラケット式の1つです。 # echo $PATH | grep "[^:]/opt/gnome" # echo $PATH | grep "[:^]/opt/gnome" しかし[^と[:、自分の意味を持っています。したがって、上記の2つのコマンドは機能しません。 1つのコマンドでこれらの2つのシナリオをgrepできる方法はありますか?

2
sqlite3 v3.8をインストールしましたが、macターミナルはデフォルトで古いバージョン3.6を実行します
SQLite3 v3.6がプリインストールされたOS X 10.6.8を実行しているMacを持っています。Homebrewを使用してv3.8をインストールしました。しかし、ターミナルで「sqlite3」と入力すると、プレインストールされた古いバージョンが引き続き実行されます。何か助けは? PATH変数がそれと関係があるかどうかはわかりませんが、echo $ PATHを実行すると、次の結果になります。/usr/local/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin:/ usr / X11 / bin また、SQLite3の新しいバージョンは次のディレクトリにあります:/ usr / local / Cellar / sqlite さらに、バイナリ実行可能ファイルをデスクトップにダウンロードしました。デスクトップからクリックしても機能しますが、ターミナルからは機能しません。 何か助けていただければ幸いです?
9 path  sqlite 

2
$ PATHが正しく指定されていても、Bashがコマンドを見つけられないのはなぜですか?
/ etc / profileファイルにコマンドへのパスを指定しています: export PATH=$PATH:/usr/app/cpn/bin 私のコマンドは次の場所にあります: $ which ydisplay /usr/app/cpn/bin/ydisplay したがって、「echo $ PATH」出力を実行すると、次のようになります。 $ echo $PATH ...:/usr/app/cpn/bin そして、すべてが大丈夫ですが、SSH経由でコマンドを起動しようとすると、エラーが発生します。 $ ssh 127.0.0.1 ydisplay $ bash: ydisplay: command not found しかし、私の道はまだ存在しています: $ ssh 127.0.0.1 echo $PATH ...:/usr/app/cpn/bin SSHセッション中にBashがydisplayを見つけられない理由と、この問題を回避するためにSSHを適切に構成する方法を教えてください。 さらに、現在のユーザーのローカルファイル.bashrcで$ PATHを指定すると、すべて正しく動作します。しかし、ユーザーごとに多数のファイルを指定するのではなく、1つのファイルのみを変更したいと思います。これが私が求めている理由です。
9 linux  bash  shell  ssh  path 

1
bash PATHはどこに設定しましたか?
~/binPATH から削除したい。Linux(Ubuntu)が初めてだった数ヶ月前にセットアップしましたが、どうやって追加したのかわかりません... 下記のすべてのファイルを検索しても何も表示されません。 他にどこに設定することができますか?$HOME/.profilePATHのプレフィックスの後にプリペンドされています$HOME/bin 違いがある場合は、コマンドプロンプトと実行中のスクリプトの両方から同じPATHを取得します。 #!/bin/bash { echo "first dir of PATH is: '${PATH%%:*}'" shopt -s nullglob cat \ /etc/profile \ /etc/bash.bashrc \ /etc/profile.d/*.sh \ $HOME/.bashrc \ $HOME/.bash_aliases \ /etc/bash_completion \ $HOME/.bash_completion* \ $HOME/.profile \ $HOME/.profile_zap \ $HOME/.bash_profile* \ $HOME/.bash_login* \ | sed -rne '/~\/bin/p' } 出力は次のとおりです。 first dir of …

2
シェルスクリプトでユーザーを変更し、環境全体を読み込む
ユーザーを変更し、いくつかのrubyデーモンプロセスを起動する、私たちのupstartスクリプトに問題があります。 以前bash -c "do the business" -l someuserは、-lフラグを使用してログインをエミュレートすることを確認するだけでした。 これは今までうまく機能しており、ルビープロセスは次のエラーをスローしていました:require: no such file to load -- rubygems (LoadError)調査の結果、このエラーはスクリプトをrootユーザーとして実行した場合(つまり、私sudo suまたはupstartで実行した場合)にのみ発生することがわかりました。 最初にパスを手動で設定すると問題が解決するため、これはPATHの問題だと思います。 ユーザーを変更して環境全体をロードする方法はありますか? 私も試してみましたsu user -cとsudo。 テストを簡単にするために、私は「ルート化」(sudo su)して実行していますwhich bundle(バンドルはルビーです)。 ここに私が得るものがあります: sudo -i -u webuser which bundle #=>出力なし su -l webuser -c which bundle #=>出力なし sudo su - webuser -c which bundle #=>出力なし しかし、sshはwebuserとして …

5
Makefileを介してPATHにディレクトリを追加する
Makefile内で変更したPATHを現在のターミナルにエクスポートする際に問題が発生します。Makefileディレクトリがどこにあっても、PATH内のbinフォルダーに追加しようとしています。 makefileの関連するストリップは次のとおりです。 PATH := $(shell pwd)/bin:$(PATH) install: mkdir -p ./bin export PATH echo $(PATH) エコーはそれを正しく出力しますが、ターミナルでエコーをやり直しても、PATHは同じままです。

1
$ PATHでの検索は内部ではどのように機能しますか?
そこにいる道の人を教えてウェブ上であまりにも多くの記事/リソースHOW環境変数を設定するためにPATH、彼らは短いの手使用できるように、javaまたはpython代わりに、コマンドラインインタフェースに絶対パスのなど。 私が知りたいのは、コマンドを入力してEnter キーを押すと、背後にあるものです(ブラウザーでURLを入力すると何が起こるかと同様です)。 これが私の推測です: コマンドを読み取ります(正しい引数を取得するために標準入力を解析/前処理します$@) コマンド検索 コマンドの実行(プログラムの開始、メモリの消費、シェルへのstdout / stderr) 関連する環境変数(例えばによってエミュレータを再レンダリングする$PS#、$PROMPTなど) 私が最も理解したいのはコマンド検索です。明らかに、$PATHいくつかのバックグラウンド関数によって消費され、区切り文字として:/ ;で区切られた後、何が起こりましたか?ハッシュテーブル(キー:ファイルのベース名、値:ファイルの絶対ディレクトリ名)を使用して、これらのPATHまたはその他のフックの下にバイナリファイルを保存しますか? 注:[ -z hash [command] ]コマンドが現在の環境で使用できるかどうかを確認するために使用できるので、当初はハッシュテーブルであると思っていましたが、使用するhash | grep pythonとwhich python、期待どおりに動作している間、出力から何も得られません。(メカニズムはシェル固有の可能性があると思いますが、それについてもっと洞察を得たいです。)
8 shell  path 

2
実行時にnixによってインストールされたライブラリを使用する方法
私が使用しているnix私はルートじゃないシステムで「シングルユーザモード」で(私のnixのセットアップの説明については以下を参照)。 システムに存在しないライブラリに動的にリンクされているバイナリの1つをすばやく実行したいと思っていました。 だから、私はライブラリをインストールしましたnix: $ nix-env -qa 'gmp' gmp-4.3.2 gmp-5.1.3 $ nix-env -i gmp-5.1.3 しかし、ライブラリはまだリンカによって見つかりません: $ ldd -r ../valencies ../valencies: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by ../valencies) ../valencies: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ../valencies) linux-vdso.so.1 => (0x00007fffbbf28000) /usr/local/lib/libsnoopy.so (0x00007f4dcfbdc000) libgmp.so.10 => not found libffi.so.5 => /usr/lib64/libffi.so.5 (0x00007f4dcf9cc000) libm.so.6 …

2
基本的なコマンドが機能していません:-bash:ls:そのようなファイルやディレクトリはありません
私はUnixを初めて使用するので、論文のプログラムをインストールする過程で、などの基本的なUnixコマンドのPATHを試してみたはずlsです。lsファイルを一覧表示するディレクトリ名を入力するたびに、次のようになります。 -bash: ls: No such file or directory これを修正するにはどうすればよいですか?どんな助けでも大歓迎です!
8 bash  command-line  ls  path 

3
LXDEを使用したDebian Wheezyの単一ユーザーのPATHに$ HOME / binを追加します
Ubuntuでは、$ HOME / binが存在する場合、自動的にPATHに追加されますが、これはDebianでは発生しません。 特定のユーザーのPATHに永続的にそれを追加するにはどうすればよいですか?端末だけでなく、GUIプログラムにも有効にしたいです。 編集:明確にするために、私はLXDEを使用し、ログインマネージャーから(つまり)は使用しませんstartx。.bashrc端末の外で起動するプログラムでは機能しません。
8 debian  path  lxde 

1
OS Xおよびその他のUnicesの/ etc / paths
される/etc/pathsことにより、読み、すべてのシェル私はOS Xで動作していること?たとえば、zshを使用すると、解析/etc/pathしてデータが読み込まれ$PATHますか? OS Xが入力するシーケンスは正確には何$PATHですか?他のUnicesとは異なる方法ですか?
8 osx  zsh  path  etc 

2
ソースのシェルスクリプトの場所を見つける
ソースシェルスクリプトがその場所を知っている可能性はありますか?私が読んだソースとシェルスクリプトのパスを決定するが、答えはに焦点を当てるbashとtcshPOSIXシェルが使用されている場合は失敗と。$0も解決策ではなく、間違った結果をもたらします。 ソリューションは100%信頼できる必要はありません。パスにハードリンクまたはシンボリックリンクが含まれていることはほとんどありません。 # sourcing the script should yield the absolute path to the script . somedir/thescript # within “thescript” -> /tmp/foo/bar/somedir 背景:このスクリプトはbin、ソースとなるスクリプトに対して既知の場所(アーキテクチャごとに異なります)のディレクトリにある数十のバイナリを含む既存のアプリケーションの一部です。アプリケーションを使用するには、binディレクトリの先頭にを付けるスクリプトをユーザーがに提供するPATHため、アプリケーションのバイナリを現在のシェル(シェルのいずれか)で簡単に呼び出すことができます。
8 shell  path 


5
Ubuntuで$ JAVA_HOMEを設定または取得するシステム全体の方法?
Ubuntu自体がシステム全体で最新情報を見つける方法を提供しているJAVA_HOMEか、設定するための適切な場所があるかどうか、私は疑問に思いますJAVA_HOME。 Mac OS Xはこれでうまくいき/usr/libexec/java_homeますJAVA_HOME。なぜならcommandは現在のを返します。しかし、Ubuntuに対して、私が見つけた資料は常に、$JAVA_PATHポインティングをに保存されている静的パスに設定するように指示しています~/.bash_profile。 ただし、このアプローチにはいくつかの欠点があると思います。 Javaが更新されると、ミニバージョン番号が変更され、静的パスが使用できなくなります。 システムで使用されているJREをで変更した後、で変更update-alternativesする必要$JAVA_HOMEがあり.bash_profileます。その余分な作業は面倒です。 一部の$JAVA_HOME必須プログラムは、まったく認識していません.bash_profile。私は$JAVA_HOME起動スクリプトを設定する必要があるため、標準的で簡単な方法で取得すること$JAVA_HOMEが重要だと思われます。 まあ、どんなアドバイスでも大歓迎です。ありがとう。
8 ubuntu  path  java 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.