web-dev-qa-db-ja.com

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

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

-bash: ls: No such file or directory

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

8
Mariaa

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

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=値なし。現在のパスを「消去」して、これらの問題を引き起こします。

whyと同様に、これらの問題が発生した場合、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を実行して、変更(特に PATH設定コマンドを実行している.bashrc、.profileなどへの変更)をテストしてください。変更が機能せず、新しいウィンドウを開いてファイルを編集できない場合に備えて、ウィンドウとエディター(.bash_profileファイルを変更するとき)を開いたままにしておくこともお勧めします。ただし、TextEditまたは別の単純なエディターを使用してファイルを変更することはできます(たとえば、コマンドラインやviは避けてください)。シェルが壊れている場合や、シェルが壊れている場合は、再起動しないように注意してください。そうしないと、ログインできない場合もあります。そしてそれは本当に本当に悪いです(あなたからのsuへの別のアカウントがなければなりません)。私に起こった!私の「追加のアカウント」は、当時のライフセーバーであり、すべての人に強く推奨されています(今すぐ実行してください!)

21
Michael Durrant

PATHに加えた変更は一時的なものである可能性があります。現在のシェルをexitで閉じ、再度開きます。

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

8
Greg Hewgill