端末アクセスなしで$ PATHをリセットする方法は?

端末アクセスなしで$ PATHをリセットする方法は?

CentOS 6.6 VMにcpanmをインストールして実行できるように$ PATHを変更しようとしています。

しかし、入力する代わりに

echo 'export PATH="$HOME/perl5/bin:$PATH"' >> ~/.bash_profile

私は入った

echo 'export PATH="$HOME/perl5/bin:%PATH"' >> ~/.bash_profile

cpanmを実行できますが、他のものは実行できないため、$ PATHを上書きしたようです。猫もなく、vimもなく、組み込まれていない命令もありません。

再起動すると $PATH がリセットされることを読んだので、試してみました。 GNOMEログインページにログインしようとすると、OSはすぐに再起動し、ログインページに戻ります。したがって、設定を変更するために端末にアクセスすることもできません。

何が起こり、この状況を解決するには?

答え1

ご存知のように、この$PATH変数は、ユーザーが入力した(組み込みの)コマンドを検索する必要があるディレクトリをシェルに伝えます。これにより、毎回入力する必要がなく(→利便性)、特定のLinux / UNIXディストリビューションがそのスクリプトをそこに配置するのか、それとも別の場所に配置するのかを知らずにサードパーティのスクリプトを/usr/bin/vim直接実行できます(→相互運用性)。bash/bin/bash/usr/bin/bash

シェルにないものを実行するには、$PATHシェルにプログラムのフルパスを指定します(例:)/usr/bin/vim


GNOMEが起動を拒否する場合:テキストベースのコンソール(たとえば++ Ctrl)に切り替えて、通常のユーザー名とパスワードでログインし、そこからログインします。AltF2/usr/bin/vim ~/.bash_profile

ああ、そこに戻る方法について言及する必要があるようです...
グラフィカルログインマネージャは一般的に実行され、++を使用して切り替えるtty7ことができます。CtrlAltF7

答え2

n.stが$ PATH変数を変更する方法をすでに説明したように、(grubで使用するために)シェルアクセスを復元する方法を説明します。

  1. コンピュータを再起動します。 grubプロンプトでLinuxディストリビューションを選択し、「e」(入力した場所に「編集」を意味します)をクリックします。その後、メインエディタに移動します。

  2. 「linux /boot/...」で始まる行に移動し、「init=/bin/bash」(引用符なし)を追加します。その後、F10を押します(またはスタートキーと呼ばれますが、どのキーか覚えていません)。

  3. ルートを有効にすると、ディストリビューションは1秒以内にbashで直接起動します。その後、$ PATH変数をbash_profileファイルにエクスポートすることができます(わからない場合は、インターネット上の例を参照してください)。

完了したら、正常に再起動できます(「init」を削除する必要はありません。これはすでに自動的に実行する必要があります)。

関連情報