2016-04-05 16 views
0

突然grepコマンドが動作を停止しました。私はls -l〜/ grepを実行してホームディレクトリの1つのファイルを表示しました。しかし、このファイルは長年にわたって存在していました。もし私がgrep - >/bin/grepと/ bin/grepを指しているコマンドを与えてもうまくいきます。誰でもお勧めしますか?Grepコマンドが動作を停止しました

おかげで、

よろしく、 シブ

+0

私のホームディレクトリにあるgrepファイルは、ゼロバイトのファイルです。 – Rajus

+0

'PATH'環境変数を確認してください:' echo $ PATH'。これは、実行可能ファイルが見つかるようにするすべてのディレクトリのみを一覧表示する必要があります。あなたのホームディレクトリは、通常、リストに含まれるべきではありません。 – Mars

+0

こんにちは火星、それは戻っています:/ bin:/ usr/bin:/ ...長いリストとなど。どのディレクトリを検索する必要があるのか​​お教えください。このファイルgrepは私のホームディレクトリにもあります。アドバイスをお願いします。ありがとう – Rajus

答えて

0

あなたのホームディレクトリに0バイトのファイルを削除することができます。それは何もしていない。 (私はそれがどのようにそこにあるのかわかりません)問題は、最初のエントリPATHの "。"は、あなたが現在いるディレクトリを指していることです。あなたのホームディレクトリにいるとき、シェル私は)現在のディレクトリでgrepを探し、そこにあるファイルを見つけます。何もできません。

私は「悪い」と思う。あなたの道にあなたがWindowsの世界から来ているなら、それは便利で自然ですが、実行されるものはあなたが現在見ているディレクトリの種類によって変わる可能性があることを意味します。また、マルチユーザシステムを使用している場合、実行可能ファイルをディレクトリの1つに置くことができ、cdをディレクトリに入れると、突然コードが実行されます。ほしい、そして危険なことができます。

代わりに、PATHから「。:」(ドットコロン)を削除してください。現在のディレクトリでスクリプトを実行する必要がある場合は、その名前に "./"を付けて実行します。 "/ bin"と "/ usr/bin"は通常、リストの先頭にあるべきです。リストの先頭に/ usr/local/binを置く方が好きな人もいます。

PATHは、.profileまたは.bash_profileまたは.bashrcを編集することで変更できます。シェルの設定方法によって異なります。 PATHの各ディレクトリパスを1つの ":"文字で区切ってください。

+0

こんにちは火星、あなたは、そのファイルの.profileまたは.bash_profileまたは.bashrcパスの値を変更したことを意味します。はいの場合、誰がこれを変更したのかをどのように知ることができますか助けてください。ありがとう – Rajus

+0

ゼロバイトファイルが新しいかもしれません。おそらく今までにホームディレクトリからgrepを実行しようとしたことはありませんでした。ファイルの所有権と最終アクセス時間(存在する場合)を簡単にチェックできます。どのようなことが起こったのかを知ることはより困難です。おそらく不可能かもしれません。何が起こったのか、誰がそれをしたのかを知りたいと思っている場合は、そのトピックに関する深い研究をする必要があります。私は間違っているかもしれませんが、それはおそらく非常に重要ではありません。何も思いつきません。 – Mars

関連する問題