お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-08-23 17:58:02

butt
メンバ
登録日: 2010-08-16

端末でコマンドすべてが実行できなくしてしまいました。

端末でsudoもdirもすべて実行できなくなってしまいました。実行すると以下のようなエラーメッセージが出ます。

Command 'sudo' is available in '/usr/bin/sudo'
The command could not be located because '/usr/bin' is not included in the PATH environment variable.

こうなるまえに、WideStudioを導入しようと、WEBを参考に作業をおこなっていました。
その途中で環境変数の設定というところが紹介されており、よく分からないまま紹介されているコードを端末から実行したところ、こうなってしまいました。

完全に理解できないままやってしまった自分のミスです。

下に、そのときの設定で打ち込んだコマンドが、下のソースの頭から三行目までです。その直後ディレクトリの中身を見ようとdirをしたらエラーになってしまいました。

root@butt:/opt/widestudio-3.20-1.orig/src# export WSDIR=/usr/local/ws/bin
root@butt:/opt/widestudio-3.20-1.orig/src# export PATH=$LD_LIBRARY_PATH:/usr/local/ws/lib
root@butt:/opt/widestudio-3.20-1.orig/src# export LD_LIBRARY_PATH:/usr/local/ws/lib
bash: export: `LD_LIBRARY_PATH:/usr/local/ws/lib': not a valid identifier
root@butt:/opt/widestudio-3.20-1.orig/src# dir
Command 'dir' is available in '/bin/dir'
The command could not be located because '/bin' is not included in the PATH environment variable.
dir: command not found

ご迷惑をお掛け致しますが、よろしくお願いします。

オフライン

 

#2 2010-08-23 18:58:20

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 端末でコマンドすべてが実行できなくしてしまいました。

butt による投稿:

Command 'sudo' is available in '/usr/bin/sudo'
The command could not be located because '/usr/bin' is not included in the PATH environment variable.

親切に(?)エラーメッセージがでるようになっているのですね。知りませんでした。。
意訳すると、sudoコマンドは/usr/bin/sudoとして存在するはずだけど、PATHに入っていないので実行できません、のような意味になります。

butt による投稿:

下に、そのときの設定で打ち込んだコマンドが、下のソースの頭から三行目までです。その直後ディレクトリの中身を見ようとdirをしたらエラーになってしまいました。

root@butt:/opt/widestudio-3.20-1.orig/src# export WSDIR=/usr/local/ws/bin
root@butt:/opt/widestudio-3.20-1.orig/src# export PATH=$LD_LIBRARY_PATH:/usr/local/ws/lib
root@butt:/opt/widestudio-3.20-1.orig/src# export LD_LIBRARY_PATH:/usr/local/ws/lib
bash: export: `LD_LIBRARY_PATH:/usr/local/ws/lib': not a valid identifier
root@butt:/opt/widestudio-3.20-1.orig/src# dir
Command 'dir' is available in '/bin/dir'
The command could not be located because '/bin' is not included in the PATH environment variable.
dir: command not found

export PATH=$LD_LIBRARY_PATH:/usr/local/ws/lib
とやってしまうとデフォルトのPATHが上書きされてしまい、/bin, /sbin, /usr/bin, /usr/sbinなどへPATHが通らなくなります。
やるなら、
export PATH=$PATH:$LD_LIBRARY_PATH:/usr/local/ws/lib
では無いかと。
PATHにLD_LIBRARY_PATHを含めるというのがなんとも不思議な感じがするので、参考にした情報元を再確認していただいた方がよいかも知れません。
(実は
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ws/lib
だったりしないでしょうか)

また、rootになって作業しているように見えますが、rootになって作業していると本来root権限が要らない作業までroot権限でやってしまったり、/var/log/auth.logに作業履歴が残らなかったりしますので、sudoを使ってroot権限での作業を必要最低限に押さえる習慣を身につけられるとよいのではないかと思います。

オフライン

 

#3 2010-08-23 19:20:56

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 端末でコマンドすべてが実行できなくしてしまいました。

対策を書き忘れていました。
設定ファイルを書き換えていなければログインしなおせば、元の状態に戻るかと思います。
設定ファイルを書き換えていれば、元に戻してください。
とりあえずは

コード:

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

などとすればPATHで設定したディレクトリにあるコマンドへのPATHが通ります。

オフライン

 

#4 2010-08-23 19:33:35

butt
メンバ
登録日: 2010-08-16

Re: 端末でコマンドすべてが実行できなくしてしまいました。

hmatsue様、お返事ありがとうございます。

hmatsue による投稿:

export PATH=$LD_LIBRARY_PATH:/usr/local/ws/lib
とやってしまうとデフォルトのPATHが上書きされてしまい、/bin, /sbin, /usr/bin, /usr/sbinなどへPATHが通らなくなります。
やるなら、
export PATH=$PATH:$LD_LIBRARY_PATH:/usr/local/ws/lib
では無いかと。
PATHにLD_LIBRARY_PATHを含めるというのがなんとも不思議な感じがするので、参考にした情報元を再確認していただいた方がよいかも知れません。
(実はexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ws/lib
だったりしないでしょうか)

パスという概念がよく分かっていなかったので、どうして/binにちゃんとsudoやapt-getが存在してるのに動かないのか分からなかったのですが、よくわかりました。

また、参考にしているWEBページをもう一度確認したところ確かに、export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ws/libとなっていました。

hmatsue による投稿:

また、rootになって作業しているように見えますが、rootになって作業していると本来root権限が要らない作業までroot権限でやってしまったり、/var/log/auth.logに作業履歴が残らなかったりしますので、sudoを使ってroot権限での作業を必要最低限に押さえる習慣を身につけられるとよいのではないかと思います。

アドバイスありがとうございます。sudo su とやってしまえば、その後のパスワードの入力が必要ないので楽だなぁ程度にしか考えていませんでした。
確かに、rootで作業していると、編集したデータ等がrootディレクトリのもとに保存されるので、アレ?とおもっていました。

Windowsだとブラックボックス化されているところでも、Linuxだと自分で触ることができるという楽しい反面、理解して作業しないと大変なことに簡単になってしまうということがよくわかりました。気をつけます。

ほんとうにたすかりました。早速、教えていただいた方法でもう一度環境変数を設定してみます。

オフライン

 

#5 2010-08-23 19:44:10

butt
メンバ
登録日: 2010-08-16

Re: 端末でコマンドすべてが実行できなくしてしまいました。

対策もふくめて、教えていただいた方法で設定し直したところ、無事、コマンドも、新しくインストールしたソフトも無事にパスが通るようになり、実行できるようになりました。

自分でパスがとおるように設定するなんて、Windowsの時はやったことがなかったので、勉強になりました。
また、親切に教えてくださってありがとうございます。おかげで、なんとか直すことができました。

オフライン

 

#6 2010-08-23 21:28:02

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 端末でコマンドすべてが実行できなくしてしまいました。

解決されたようでよかったです。
最終的な設定内容が固まったら、
gedit ~/.xprofile
などとしてユーザの設定ファイルを開いて、そこに追記するとよいかもです。

# 余談ですが、Windowsではコマンドプロンプトを開いて
# echo %PATH%
# などとすればPATHの内容が確認できます。
# 最近はあまり手動で設定する機会はないかもですが。

オフライン

 

Board footer

Powered by FluxBB