基本的なコマンドが機能していません:-bash:ls:そのようなファイルやディレクトリはありません


8

私はUnixを初めて使用するので、論文のプログラムをインストールする過程で、などの基本的なUnixコマンドのPATHを試してみたはずlsです。lsファイルを一覧表示するディレクトリ名を入力するたびに、次のようになります。

-bash: ls: No such file or directory

これを修正するにはどうすればよいですか?どんな助けでも大歓迎です!


lsが機能しない理由はcdが私の回答に文書化されている理由
Michael Durrant

回答:


23

今すぐパスをリセットします(つまり、ログアウトの前に)。

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

完全なPATHは復元されませんが、基本的なユーティリティが再び利用可能になります。

これが起こる一種の事柄の例です:

あなたはPATH変数を持っています(それを読むとき$ PATHと呼ばれます)

何かのようなもの:

$ echo $PATH
/home/durrantm/.rvm/gems/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/gems/ruby-2.0.0-p247@global/bin:/home/durrantm/.rvm/rubies/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/bin:/h
ome/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:
/home/durrantm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/durrantm/.rvm/bin:/home/durrantm/.rvm/bin:/home/durrantm
/.rvm/bin

追加しようとしましたが、誤って使用しました

PATH=PATH:other_dir

の代わりに

PATH=$PATH:other_dir

その結果、あなたの道は

PATH:other_dir

そして、lsやsedなどのユーティリティはすべて機能しません

最小限のセットを修正するには、

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

これは、ログインドットファイルがPATHをめちゃくちゃにしている場合に特に役立ち
ます。PATHの変更がないか、.bashrcファイルや.bash_profileファイルを確認してください。

Gregが言うように、ログアウトして(またはより安全なオプションとして、新しいウィンドウを開くのが失敗した場合に備えて新しいウィンドウを開きます!)、新しいウィンドウから$ PATHをエコーすることもできます。

path=値を指定しない場合も同じことが起こります。現在のパスを「消去」して、これらの問題を引き起こします。

理由として、これらの問題が発生した場合、cdは機能し、lsは機能しません。

  • cd プログラムを見つけるためにPATHを必要としない「組み込み」コマンドです
  • ls プログラムであり、PATHを使用してその場所を見つける必要があります。

あなたはこれを見ることができます:

$ builtin ls
-bash: builtin: ls: not a shell builtin
14:47:29 mdurrant C02MH2DQFD58 /Users/mdurrant
$ builtin cd
14:47:31 mdurrant C02MH2DQFD58 /Users/mdurrant
$

エラーがないことは、コマンドが組み込みであることを意味します

「次に進む」(またはログアウトする)前に...

新しいウィンドウを開くか、ソース〜/ .bash_profileを実行して、変更(特に .bashrc、.profileなどへの変更)をテストしてください。また、変更が機能せず、新しいウィンドウを開いてファイルを編集できない場合に備えて、ウィンドウとエディター(.bash_profileファイルを変更するとき)を開いたままにしておくこともお勧めします。ただし、TextEditまたは別の単純なエディターを使用してファイルを変更することはできます(コマンドラインやviなどは避けてください)。シェルが壊れている場合や、シェルが壊れている場合は、再起動しないように注意してください。そうしないと、ログインできない場合もあります。そしてそれは本当に本当に悪いです(suあなたからの別のアカウントがなければ、うんざりしています)。私に起こった!

私の「追加のアカウント」の修正は当時のライフセーバーでもあり、すべての人に強く推奨されています(今すぐ実行してください!)


おい!どうもありがとう!パスをリセットするだけですが、新しいターミナルウィンドウを開くと同じことが起こります。次に、変更を確認するためにさらに〜/ .bash_profileを実行しましたが、次のように表示されます
。export

それは正常ですか?
Mariaa 2014年

また、$ PATHをエコーすると、結果が表示されません。正常かどうかは不明です
Mariaa

@Mariaaパスをリセットするには、ファイルまたはコマンドにどのように伝えますか。
jgr208 14

1
新しいウィンドウを開くかsource ~/.bash_profile、実行することにより、変更をテストしてください。変更が機能せず、新しいウィンドウを開いてファイルを編集できない場合に備えて、ウィンドウとエディター(.bash_profileファイルを変更する場所)を開いたままにしておくこともお勧めします。ただし、ファイルの変更には、TextEditまたは別の簡単なエディターを使用できます。
Michael Durrant 2014年

8

行った変更PATHは一時的なものである可能性があります。使用しているシェルを閉じてexit、再度開きます。

PATH新しく開いたシェル用にを設定するファイルを編集した場合は、コマンドへのフルパスを指定して、変更したものをすべて修正します(例:)/usr/bin/vim


こんにちは!おかげで(:私はこれを試してみましたが、うまくいきません。私は本当に変なことをしたのではないかと思います。vimを使用してPATHを使用して何かを実行し、その後すべてがめちゃくちゃになったことを覚えています。これを並べ替えるには!
マリアア2014年

である/usr/binか、任意のbinパス内のディレクトリ?@Mariaa
jgr208

jgr208:これは私のパスです:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin
Mariaa

@Mariaaビンなどを削除せず、ファイルへの読み取りアクセス権は正しいですか?
jgr208 14年

ただし、新しい端末でPATH = / usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin thisと入力した場合にのみ、これを表示するか、コマンドを使用できますそれ以外の場合は、どのコマンドも使用できません。それはそれらを認識していません:S
マリア19年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.