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

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


4
パスに依存しないシバン
2台のマシンで実行できるようにするスクリプトがあります。これらの2台のマシンは、同じgitリポジトリからスクリプトのコピーを取得します。スクリプトは、適切なインタープリターで実行する必要があります(例:)zsh。 残念ながら、両方 envとzshローカルおよびリモートのマシンで異なる場所に住んでいます: リモートマシン $ which env /bin/env $ which zsh /some/long/path/to/the/right/zsh ローカルマシン $ which env /usr/bin/env $which zsh /usr/local/bin/zsh /path/to/script.shいつものZshようにスクリプトを実行すると使用可能なものを使用するように、どうすればシバンを設定できますPATHか
20 shell  zsh  cron  path 

4
「これ」、しかしすべて
ほとんどの人がwhichコマンドに精通していると思うので、頻繁に使用しています。私はちょうど、どのコマンドが私のパスの最初であるかだけでなく、すべてのパスのすべてのコマンドがいくつで、どこにあるのか興味があります。which manページを試してみましたが(入力するman whichと笑いました)、何も表示されませんでした。
19 path 

1
ルートにパスに/ usr / localがないのはなぜですか?
私のvmとサーバーのルートのデフォルトパスには/ usr / local / binが含まれていないことに気付きました sudo -s echo $PATH /sbin:/bin:/usr/sbin:/usr/bin 一方、サーバー上の通常のユーザーは/ usr / local / binを持っています /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/sowen/bin rootがパスに/ usr / localを必要としないのはなぜですか? ユーザーのデフォルトパスはどこで定義されていますか?
18 root  path 

2
LinuxのUNIXドメインソケットパスの先頭にある@記号は何を示していますか?
実行したとき、netstat --protocol unixまたはlsof -UいくつかのUNIXソケットパスの前に@記号が付いていることがわかります(例:@ / tmp / dbus-qj8V39Yrpa)。実行するls -l /tmpと、そこにdbus-qj8V39Yrpaという名前のファイルが表示されません。 問題は、先頭に付加された@記号が何を意味するかということです。2番目の関連する質問は、ファイルシステム上のunixソケットファイル(@ / tmp / dbus-qj8V39Yrpa)を実際にどこで見つけることができますか?
17 linux  path  socket 

3
私の `which`コマンドは間違っているかもしれません(時々)?
私のマシンにインストールされているバージョンは(非常に)古い(v21.3)ため、ソースコード(v24.2)から最後のemacsバージョンをコンパイルしました。私はいつもやった: $configure --prefix=$HOME make make install 今、私はemacsをテストしており、以前のバージョンをまだ起動していることに気付きました...私の$HOME/binパスはシステムのものをオーバーライドすることになっています(.bashrcファイルの$ PATHに追加されているため)。 私の最初の考えは、whichコマンドの出力を見ることでした。そして驚いたことに、これは新しいemacsへのパスを提供します。ここで矛盾がどこにあるか理解できません。同じセッションでの出力は次のとおりです。 $ emacs --version GNU Emacs 21.3.1 $ `which emacs` --version GNU Emacs 24.2.1 emacsに関係するエイリアスはありません。まったく。 $ alias | grep emacs $ 何が起こっているのでしょうか?
17 bash  emacs  path  which 

4
crontab PATH変数を設定する方法
crontabからスクリプトを実行する際に問題が発生しました。いくつかの調査の後、PATHパラメーターに/ sbinが含まれていないため、問題がわかった。 / etc / crontabに含まれるものを探しました。 PATH=/sbin:/bin:/usr/sbin:/usr/bin テストとして-PATH変数を出力する単純なcronジョブ: * * * * * echo $PATH &> /root/TMP.log 出力は次のとおりです。 cat /root/TMP.log /usr/bin:/bin 私はこの動作を理解していません... PATH変数を設定するにはどうすればよいですか?またはより良い-それにパスを追加する方法?
17 centos  cron  path 

1
$ PATH環境変数の割合
私の$ PATHは次のようになります。 /home/torbjorr/deployed/vector/x86_64-GNU%2fLinux:/home/torbjorr/deployed/typewriter/x86_64-GNU%2fLinux:/home/torbjorr/deployed/mustudio/x86_64-GNU%2fLinux:/home/torbjorr/deployed/mathext/x86_64-GNU%2fLinux:/home/torbjorr/deployed/doxymax/x86_64-GNU%2fLinux:/home/torbjorr/deployed/c2tex/x86_64-GNU%2fLinux:/home/torbjorr/deployed/x86_64-GNU%2fLinux/wand:/home/torbjorr/deployed/x86_64-GNU%2fLinux/spellesc:/home/torbjorr/deployed/x86_64-GNU%2fLinux/projinit:/home/torbjorr/deployed/x86_64-GNU%2fLinux/herbs:/home/torbjorr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games bashでは、問題なくワンドを呼び出すことができます /home/torbjorr/deployed/x86_64-GNU%2fLinux/wand お気に入り $ wand (i) Mål från "main.cpp" har registrerats (i) Skapar katalog "__wand_targets_dbg" (i) Kör g++ "main.cpp" -fpic -L"/home/torbjorr/deployed" -g -Wall -std=c++11 -I"/home/torbjorr/deployed" -o "__wand_targets_dbg/cb-template ただし、bourneシェル互換モードでは、ワンドが見つかりません。 $ wand sh: 2: wand: not found 問題は、これらのパスの%記号のようです。この符号はURLエンコードによって追加されているため、有効なファイル名ではない場合でも、ディレクトリ名に「GNU / Linux」という名前を使用できます。shで名前を機能させること、またはshコマンドをbashとして機能させることは可能ですか?つまり、/ bashにシンボリックリンクされる/ bin / shコマンドで呼び出された場合でも、bashを同じように動作させます。
16 shell  path  dash  ash 

3
XアプリがアクセスできるようにPATHまたはその他の環境変数を設定するにはどうすればよいですか?
KDEが認識できるようにenv変数を設定するにはどうすればよいですか? 非シェル環境(KDE)でどのようにパスを設定しますか? 上記の2つの質問とは異なり、GNOMEでこれを行う方法を知りたいです。さらに良いことに、ウィンドウマネージャーから独立したメソッドがあります。シェル/ターミナルについては、通常編集します~/.bashrc。使用するウィンドウマネージャーに関係なく、すべてのXアプリケーションで環境変数を使用できるように、どこにexportステートメントを配置できますか?

4
複数行の構文を使用してPATHにパスを追加する
私の知る限り、PATH環境変数にパスを追加する通常の方法は、:文字で区切られたパスを連結することです。 たとえば、3つのパスを追加する場合/my/path/1、/my/path/2および/my/path/3、次のようにする必要があります。 PATH=$PATH:/my/path/1:/my/path/2:/my/path/3 読みにくいです。 複数行の構文を使用して変数にパスを定義または追加する方法はありますか?おそらく配列を使用していますか?私はこのようなものを探しています:PATH PATH = $PATH /my/path/1 /my/path/2 /my/path/3 シェル固有の興味深いソリューションがある場合は、zshのソリューションを探しています。

4
PATH変数がbashで設定されている場所の完全なビュー
PATHが設定されているいくつかの場所、/etc/profileまたは.profileホームディレクトリにあるファイルを読みました。 これらはパスが設定されている唯一の場所ですか?私はそれをより良く理解したいです。 で/etc/profile、ファイル、次のコメントが言うように"system-wide .profile file for the Bourne shell"。それは、プロファイルファイルがbashの主要な構成ファイルであることを意味しますか? そのファイルでは、PATH変数がまったく設定されていません。で.profile、ホームディレクトリ内のファイルの行があります: PATH="$HOME/bin:$PATH" それPATHは既に設定された$PATH文字列を$HOME/bin:右に連結しているので、見た目でリセットしていますか?しかし、もしetc/profileおよび~/.profile設定ファイルだけですPATHされた場合$PATH、それはで定義されていない場合はそのコード行でから来ますか/etc/profile? 誰かがPATH変数の広範かつ詳細な説明をお願いします。ありがとう!

1
rsyncが見つからないのはなぜですか?
rsync -avP /home/user/.profile hpux3:/home/user/.profile bash: rsync: command not found hpux3マシンにsshを実行した場合 rsync version 3.1.1 protocol version 31 Copyright (C) 1996-2014 by Andrew Tridgell, Wayne Davison, and others. Web site: http://rsync.samba.org/ output truncated 私が設定しているPATHに$HOME/.profileして$HOME/.bashrc。/etc/profileファイルに設定する必要がありますか?
16 rsync  path 

3
既存の関数と同じ名前でPATHで実行可能ファイルを実行する
実行可能ファイルをシャドウイングし、その引数または出力を微調整する関数を定義することがあります。したがって、関数は実行可能ファイルと同じ名前を持ち、関数を再帰的に呼び出さずに関数から実行可能ファイルを実行する方法が必要です。たとえば、fossil diffthrough の出力を自動的に実行するにはcolordiff、次less -Rを使用します。 function fossil () { local EX=$(which fossil) if [ -z "$EX" ] ; then echo "Unable to find 'fossil' executable." >&2 return 1 fi if [ -t 1 ] && [ "$1" == "diff" ] ; then "$EX" "$@" | colordiff | less -R return fi …
16 bash  path  function 

2
パスで最初に見つかった実行可能ファイルはどのような状況で使用されませんか
osxでzsh(homebrewでインストールされた5.4.2_1)で、パス内で最初に実行可能ファイルが使用されないという奇妙な動作があります。 シナリオは次のとおりです。 echo $PATH 戻り値: /usr/local/Cellar/zplug/HEAD-9fdb388/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 醸造は両方にあります /usr/local/Cellar/zplug/HEAD-9fdb388/bin そして usr/local/bin/brew これはwhich -a brewを実行することで確認されます: /usr/local/Cellar/zplug/HEAD-9fdb388/bin/brew /usr/local/bin/brew しかし、どの醸造を実行すると、それが返されます: /usr/local/bin/brew そしてbrewでは/usr/local/bin/brewなく/usr/local/Cellar/zplug/HEAD-9fdb388/bin/brew brewがパスの初期にある場合、これはどのように発生しますか? 感謝します。
15 zsh  path 

4
bash:adduser:コマンドがcentOSに見つかりません
最近、CentOS 5.5をVMWare 8にインストールしましたが、システムに新しいユーザーを追加しようとしています。su -オプションを使用しない限り、ユーザーを追加できません。パスが正しく設定されていない状態で何かをする必要があると思います。 パスを更新しましたが、次のようになります /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/uone/bin:/sbin コマンドは既にパスの一部である/ sbin dirにあると思います。誰も私に他に何が欠けているかもしれないかを提案できますか?
15 shell  path 

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