私のbash端末がシェルのコマンドを認識しないのはなぜですか? [閉鎖]

私のbash端末がシェルのコマンドを認識しないのはなぜですか? [閉鎖]

一部のユーザーの要求に応じて、ユーザーがソリューションをよりよく案内できるように、すべての中間ステップと結果を初期投稿に追加することにしました。タイトルの下に追加されました。追加する質問の下に。次のような再充填する、という部分がありますが、「解決する」この問題を解決するためにとった追加の手順を追加しました。

質問:

今日、コマンドラインシェルでコードを実行しようとしたときに、Fedora 21のシェルが実際にどのコマンドも認識しないことがわかりました(i686のカーネル4.1.13-100.fc21.i686(tty2))。システムを再起動して再起動すると、問題を解決する必要があると思います。ところで、驚くべきことに、ログイン後にシステムが起動しないことがわかりました。実際に動作が停止した位置を確認するために画面が黒く変化している間に CTRL+ALT+F2 を押して診断を試みました。最後の行が完全に停止しました。

Plymouthのようこそ画面が終了するのを待ちます。

シェルの診断モードが実際にどのコマンドも受け入れない場合は、次の方法でこの問題を解決する方法を教えてください。

-bash: <...>: コマンドが見つかりません。

私が考えることができる唯一のことは、私が認識していないか、私の.bashrcを台無しにした自動更新の可能性です(次のものを使用するともう表示されません)。

sudo gedit ~/.bashrc


再充填する:

診断モードの開始をクリックした後にのみシステムにログインできます。Ctrl+Alt+F2 直後再起動してデフォルトの起動にログインすると、通常の状況では失敗します。


i686(tty2) の Fedora バージョン 21(21) カーネル 4.1.13-100.fc21.i686+PAEdebug

このモードではログインプロンプトが表示されます

ローカルホストログイン:

私のユーザー名を入力すると、次のように表示されます。

パスワード:

パスワードを入力すると、次のように表示されます。

最後のログイン:tty2で3月30日水曜日15:33:54

[bbenjamin@localhost〜]$

いずれにせよ、ここにあるコマンドはシェルでは認識されません。エラーメッセージは通常次のとおりです。

-bash: <...>: コマンドが見つかりません。

ここで<...>は基本的にどの注文する。シェルでほとんどのコマンドを実装するのに成功した唯一のケースは、次のコードを実行するときです(答えで述べたように)。

PATH=/usr/bin:/usr/sbin

これにより、少なくとも私のファイル、フォルダ、プログラムを探して見ることができます(ほとんどのコマンドが実装されているため)。

ただし、診断モードでは、不可能なFedoraのすべてのグラフィックやその他の機能を使用するには、まだ正常にログインする必要があります。これを達成するには、特に.bashrcファイルを開き、問題を永久に修正する必要があります(どういうわけか元のバージョンにアクセスできるとします)。これを行うには、次のコマンドを実行する必要があります。

(sudo) gedit ~/.bashrc

ただし、次のエラー メッセージが表示されます。

サーバーを初期化できません。接続できません。接続が拒否されました。

(gedit:1397): Gtk - 警告**: ディスプレイを開けません:

または、次のコマンドを実行します。

~/.bash_profile

これによりエラーメッセージが生成されます。

bash: /home/bbenjamin/.bash_profile: 権限が拒否されました。

今回の答えでは、後者のコマンドは実行可能ではないので、実行しないでください。代わりに、次の形式で実行する必要があります。

source ~/.bashrc

それ以来、どうやって続けるべきかわかりません。

(sudo) gedit ~/.bashrcしかし、以前のコマンドが機能しない理由もわかりません。私は必要に応じて常に.bashrcファイルを少し変更したことを覚えています。今回はどのように変更したのかわからず、ここで説明されているすべての問題が発生しました。私の質問は、.bashrcを開いて見て、必要な変更を加えるためのコマンドラインベースの方法があることです。永久的なしたがって、私のシステムログインは、すべてのFedora機能を表示して使用できる一般的なグラフィックモードに適切に案内します。


解決する

入るとすぐに知った事実診断ログインに失敗した直後に、コマンドモードで混乱したCtrl+Alt+F2ファイルを一時的に変更できました。.bashrcコマンドを実行してPATH=/usr/bin:/usr/sbin。それから私の心の中を覗くことができます。.bahsrcコマンドラインを実行してファイルを作成しますcat .bashrc。その後、ファイルの内容を見ることができ、ファイルに複数のパスを追加しました。前のパスの一番下に追加されたファイルを時間順に記録しておいたので、そのパスが最後のパスであることがわかります。この問題を解決するには、実際にファイルを変更する必要があります。これはコマンドラインを介して達成され、nano .bashrcその後、以下を追加して問題のある行をコメントアウトできる新しいページが表示されました。#その前に。最後に、変更を保存して終了しました。最後にすべきことは、新しく変更されたシステムで再起動することでした。.bashrcコマンドラインからファイルを入力した後、ログ記録が成功したことが確認されtelinit 6ました。

ベストアンサー1

ほとんどのプログラムが実際に存在するものを含まないように設定されるように、~/.bashrcファイルに何かを置いたようです。これを実行すると:PATH/usr/bin

PATH=/usr/bin:/usr/sbin

~/.bashrcほとんどのコマンドが機能し始めます。その後、リセットされた項目を編集して変更できますPATH。 (実際にはPATH代わりに設定したいです。参照)~/.bash_profile~/.bashrcPATHにパスを正しく追加するには?)

(ただし、アップデートがホームディレクトリのファイルを変更しないため、Fedoraアップデートはそれを妨げないことに注意してください。時々、アップデートされたソフトウェアを実行すると、ソフトウェアは独自の設定ファイルを更新できますが、これはそうではありません。) bashrcで作業してください。)


編集内容:geditテキストエディタはグラフィックモードでのみ機能します。テキストモードでは、テキストベースのエディタが必要です。その中で最も簡単なのはおそらくnanoインストールです。

dnfインストールナノ

nano次に、代わりにifを使用してくださいgedit。実際の編集機能は少し異なりますが、非常に簡単です。

おすすめ記事