ログインしようとすると、このメッセージが表示されます。
/etc/mdm/Xsession: Beginning session setup...
/etc/mdm/Xsession: 1: /etc/profile: id: not found
/etc/mdm/Xsession: 12: [: Illegal number:
/etc/mdm/Xsession: Executing default failed, will try to run x-terminal-emulator
/etc/mdm/Xsession: 205: exec: x-terminal-emulator: not found
私はここで非常に似た問題を見つけました: ログインできません。xsession-errorsファイルは、理解していると便利なようです を押してターミナルにアクセスしようとすると Ctrl+Alt+F1 コマンドを入力すると、次のエラーが表示されます。
me@me-ThinkPad-E520 / $ cat /etc/profile
Traceback (most recent call last):
file "/usr/lib/command-not-found", line 21, in <module>
os.execvp("python3", [sys.argv[0]+sys.argv)
File "/usr/lib/python2,7/os.py, line 344, in execvp
_execvpe (file,args)
File "/usr/lib/python2.7/os.py line 380, in _execvpe
func (fullname, *argtest)
OSError: [Errno 2] No such file or directory
これが起こる前に、私はMavenをインストールしていました。
PATHが正しくないため、いくつかの実行可能ファイルがシステムにないか、見つかりません。
-python3
は、/usr/lib/command-not-found
が実行できない理由です。 -cat
(/bin/cat
)、これがcommand-not-found
が実行される理由です-id
(/usr/bin/id
)、標準で使用される/etc/profile
1つ目はリンクであり、その可用性はやや必要性が低くなります。 ls
を使用して、後者の2つのコマンドが使用できるかどうかを確認する必要があります(ls -l /bin/cat /usr/bin/id
)。これらのファイルがない場合は、再インストールを試みることができますが、それらは非常に基本的なため、システムがそれを実行できない場合があります。両方をインストールするコマンドはapt-get install coreutils
ですが、繰り返すと、システムでそれを実行できなくなる可能性があります。
それらのファイルが存在する場合は、PATHとその値が設定されている可能性がある場所を確認して、/usr/bin
や/bin
が含まれないようにします。
それらのファイルがそこにない場合は、それらをrootとして削除した可能性があります。core-utilsのアンインストールは、依存関係が多いため困難です。
この問題には多くの理由があると思いますが、私の解決策を共有したいと思いました。私の場合、それは単に~/.profile
ファイルの構文エラーが原因でした。基本的に、どこかに "="が欠落していたものです。私はそれをリカバリーモードにしてルートプロンプトに行くことで修正しました。次に、ファイルを更新して再起動しました。
そのため、このエラーがあるかどうかを確認する必要があります。最近.profileファイルを変更した場合は、それを確認してください。
私は同じ問題を抱えていましたが、この問題にはさまざまな理由があるようですが、私にとっては、以下に説明するようにPATHが壊れていました。
Oracle JDKをインストールし、Java_HOMEとPATHをJDKがインストールされたディレクトリに設定しました。その後、それらをアンインストールした後、/ etc/environmentファイルからこれらの環境変数の変更を削除するのを忘れました。
Alt + ctrl + f2でログインした後、PATHを次のように修正しました:
export PATH="/bin:/usr/bin"
次に、etc/environmentに移動し、次のようにしました。
Sudo nano environment
変更を削除することができました。
私はubuntu-7.10でも同じ問題に直面しました。私のVMでは、 "/ tmp"のパーミッションがどういうわけか変更されました。この問題を解決するために、「/ tmp」の権限を777に変更しました。
この後、通常のユーザーとして正常にログインできました。これはあなたの問題が私の問題と同じであると仮定するのに役立ちます。
同じ問題があり、私が解決策を見つけました。
私が呼ぶものには他にも多くの変種があります
私の状況はまさにchlebaのものでした。 lsやapt-getはできませんでした。 <ctrl>+<alt>+<F1>
を押してtty1に入り、rootとしてログインしました。しかし、それでもecho $PATH
は可能でした。これにより、昨日変更(めちゃくちゃ)したことがありました。それから私は走った
export PATH=$PATH:/home/[HomeDirectory]/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
。
(^くだらないフォーマットでごめんなさい。出典:wikihow.com/Change-the-Path-Variable-in-Linux)
これで、ls
、cat
などすべてを実行できます。ちょっと待って! <ctrl>+<alt>+<F7>
を押して終了しないでください!システムが直接アクセスできるようにするディレクトリを一時的に宣言するには、最初に~/.bashrc
ファイルと~/.profile
ファイルを変更する必要があります。私のような人なら、ディレクトリに~/.bashrc
がまだないかもしれません。また、ルートとしてログインしている場合、別名「ユーザー名」または「ルート」として何でも入力した場合、そこにアクセスするにはcd /home/[HomeDirName]
を実行する必要があります。通常の認証情報でログインしている場合は、cd ~
を使用するだけで、希望どおりの場所にアクセスできます。ここからnano .profile
またはSudo nano .profile
を実行し、一番下にexport PATH=$PATH:
...を追加します。上記と同じです。次に、[Sudo] nano .bashrc
を実行します。これにより、.bashrc
ファイルがまだ存在しない場合は作成され(これが私の場合でした)、同じol 'export PATH=$PATH:
...に貼り付けます。
今、あなたは良いはずです。
誰もが追加のグッズが好きです。
私の賭けでは、ls
やapt-get
などを実行することもできます。それらを実行するには、/etc/bin
に移動するか、./etc/bin/ls.sh
などを実行する必要があります。 coreutilsがどこにあるのか本当にわかりませんが、上記のようになります。
Linux Mint 17では、私の父と this によると、$PATH
変数は/etc/environment
にあります。したがって、これを変更するだけで、mightは一時的な修正ではありません。それを調べる時間がある場合は、それが一時的な修正であるかどうかについてコメントをドロップしてください。ダウンロードディレクトリにシェルスクリプトを作成し、環境ファイルの$ PATH宣言の最後に:~/[homeDirName]/Downloads
を貼り付けて、次のようにシェルスクリプトを実行できるかどうかを確認してください:cd ~
./[shellscriptname]
。
ちなみに、私は system に散らばったスクリプトとアプリケーションへのショートカットを追加しようとして、この混乱に陥りました。