PATHを変更しました。現在、すべてのコマンドが「コマンドが見つかりません」になっています。


26

SSHで接続されたAmazon Linuxサーバー:

/ etc / environment(PATH=$PATH:/opt/openoffice4/program)および/ etc / sysconfig / httpd(export PATH = ${PATH:$PATH:}/opt/openoffice4/program)にいくつかの変更を加えて、ApacheユーザーのPATHを変更しようとしました。

その後、再起動しました。

今、私は何もできない、さらにls -l-bash: ls: command not found

コントロールを取り戻すにはどうすればよいですか?


4
コマンドを直接実行できますか?例えば/bin/ls
DavidPostill

はい、/ bin / lsを実行できます
フェレンジット

13
その後/bin/vi、パスを壊したファイルを実行および修正できるはずです。
DavidPostill

回答:


49

コントロールを取り戻すにはどうすればよいですか?

ファイル名を指定して実行/bin/viし、あなたが行った変更を元に戻す/etc/environment/etc/sysconfig/httpd


32

PATHエディターなしで設定できます。これをシェルに入力するだけです:

export PATH=/usr/local/bin:/usr/bin:/bin:$HOME/bin

1
そしてスペースを削除してください!PATH=somethingPATH = something
NOT-ワルチネーター

4
それは引用されるべきであり、さもなければ$HOMEグロビングと単語分割の対象となります。IOW、$HOMEスペースが含まれている(妥当な)場合、またはグロブ文字(可能性が低い場合)がある場合は破損します。
ケビン

@Kevin私はそれを試してみましたが、スペースとグロブがちょうどコピーされました。(export PATH=/path to home/binもちろん、書き込みは機能しません。)
ニール

2
@Kevinこれは、厳密に準拠した実装での動作ですが、少なくともbashはexportその問題のないカスタム構文規則を提供します。(カスタム構文規則は、他の理由、たとえば許可するために既に必要でしたexport array=(1 2 3)。)
hvd

-1

たぶんこれは助けになるでしょう:

export PATH=/usr/local/bin:/usr/bin:/bin:$HOME/bin

「export」コマンドは/ usr / binから使用されないため、それでも機能します。


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