Ubuntu 18.04.4(数週間前の18.04.3からの自動アップグレード)
/bin/bash
Gnomeシェルからログインした後、画面が単純な紫色でデスクトップが表示される前に、次のメッセージが表示されます。
Error found when loading /home/hfinger/.profile:
/home/hfinger/.profile: line 1: #: command not found
/home/hfinger/.bashrc: line 1: syntax error near unexpected token '('
/home/hfinger/.bashrc: line 1: '# ~/.bashrc: executed by bash(1) for non-login shells.'
As a result the session will not be configured correctly.
You should fix the problem as soon as feasible.
問題は、問題は何ですか?私はAskUbuntuを検索しましたが、この正確な問題を経験した人はいません。この問題が発生する前に約1か月間実行されていたため、アップグレードではないと思います。
システムにファイルを作成および構成させてよかったので、これら2つのファイルに触れたことはありません。また、新しいリリースにアップグレードした後で設定を復元する必要がないように、Ubuntuをできるだけバニラに保つようにしています。価値があるのは、これらの各ファイルの最初の行です。
.profile, line 1: # ~/.profile: executed by the command interpreter for login shells.
.bashrc, line 1: # ~/.bashrc: executed by bash(1) for non-login shells.
これらのファイルを修正するにはどうすればよいですか?このドープの問題を解決するために私よりも知識のある人がいるために、どのような追加情報を提供する必要がありますか?
これは、ファイルの先頭に印刷されないバイトシーケンスがある場合に発生する可能性があります(例: バイトオーダーマーク -ワードプロセッサプログラムまたはWindowsテキストエディターで編集した結果)。
たとえば、
$ file profile bashrc
profile: UTF-8 Unicode (with BOM) text
bashrc: UTF-8 Unicode (with BOM) text
(ここで、profile
とbashrc
は、~/.profile
と~/.bashrc
のローカルコピーで、最初にバイトシーケンス0xFE 0xFF
が挿入されています)
$ bash -c 'source profile; source bashrc'
profile: line 1: #: command not found
bashrc: line 1: syntax error near unexpected token `('
bashrc: line 1: `# ~/.bashrc: executed by bash(1) for non-login shells.'
最も簡単な修正は、デフォルトでBOMを削除するdos2unix
を使用することです。
$ dos2unix profile bashrc
dos2unix: converting file profile to Unix format...
dos2unix: converting file bashrc to Unix format...
$ file profile bashrc
profile: ASCII text
bashrc: UTF-8 Unicode text
または、ファイルを/etc/skel
ディレクトリからの新しいコピーで単純に置き換えることができます(もちろん、この方法ではカスタマイズが失われます)。
非印刷バイトをチェックする他の方法は、
cat -A ~/.profile ~/.bashrc
bOMはM-oM-;M-?#
のような制御シーケンスとして表示されるか、xxd
またはod
を使用してバイトシーケンスを直接検査します。
head -1 ~/.profile | od -tx1
xxd -l16 ~/.profile
diff
コマンドは、違いを確認する限り、役に立ちますが、違いを特定するのには役立ちません。
$ diff profile ~/.profile
1c1
< # ~/.profile: executed by the command interpreter for login shells.
---
> # ~/.profile: executed by the command interpreter for login shells.
ユーザーのシェルを確認する簡単な方法...
Users and Groups
アプリケーションがまだインストールされていない場合は、この方法でインストールしてください...
Sudo apt-get update
Sudo apt-get install gnome-system-tools
ヒット Super キーと入力して「ユーザー」と入力し、Users and Groups
アプリケーションを選択して、アカウント名をクリックし、[詳細設定]、[詳細設定]タブをクリックして、/bin/bash
の正しいシェルを確認します。