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で使用するために)シェルアクセスを復元する方法を説明します。
コンピュータを再起動します。 grubプロンプトでLinuxディストリビューションを選択し、「e」(入力した場所に「編集」を意味します)をクリックします。その後、メインエディタに移動します。
「linux /boot/...」で始まる行に移動し、「init=/bin/bash」(引用符なし)を追加します。その後、F10を押します(またはスタートキーと呼ばれますが、どのキーか覚えていません)。
ルートを有効にすると、ディストリビューションは1秒以内にbashで直接起動します。その後、$ PATH変数をbash_profileファイルにエクスポートすることができます(わからない場合は、インターネット上の例を参照してください)。
完了したら、正常に再起動できます(「init」を削除する必要はありません。これはすでに自動的に実行する必要があります)。