MANPATHを復元する簡単な方法

MANPATHを復元する簡単な方法

今日私のtexliveディストリビューションにマニュアルページを追加しようとしている間、私は誤って次のことをしました。

$ MANPATH=MANPATH:/usr/local/texlive/2011/texmf/doc/man
$ export MANPATH

...私の言葉は:

$ MANPATH=$MANPATH:/usr/local/texlive/2011/texmf/doc/man
$ export MANPATH

その結果、次のような非常に役に立たない `$ MANPATHが発生しました。

$ echo $MANPATH
$ MANPATH:/usr/local/texlive/2011/texmf/doc/man

すべてのマニュアルページを再度追加する簡単な方法はありますか$MANPATH

答え1

このようにエクスポートされた変数は、現在のシェルとすべての子プロセス内でのみ有効です。設定ファイルまたはshell-rcファイルにこれらのコマンドを保存しない場合は、起動されたすべての新しいシェルに元の値を戻す必要があります。

現在のシェルを閉じて新しいシェルを起動することが意味のある一連の変数を取得するenv最も簡単な方法です。

答え2

現在シェルセッションに興味がある場合は、次のコマンドを使用できます。

MANPATH=$(source /etc/profile; echo $MANPATH)

しかし、現在のシェル環境と変数に興味がない場合は、最も簡単な方法はおそらく新しいセッションを開始することです。

メモ:上記のコマンドは、システム範囲/etc/profile(環境変数のすべてのデフォルト定義を提供)を読み取り、「reset」値を印刷する新しいプロセスを開始しますMANPATH。この$()構成は、このプロセスの出力をシェルに配置しますMANPATH。他のオーバーライドはsource /etc/profile現在のシェルに影響を与えず、子プロセスにのみ影響します。

答え3

一部のman実装では、このコマンドはデフォルトのmanpath -gシステムマンパスを表示します。実装にmanpathコマンドがない場合は、man manデフォルト値が何であるかを確認してください。ただし、変数を定義するとMANPATHデフォルトと異なる場合があります。

環境変数の以前の値を取得する魔法のような方法はありません。このシェルセッションで設定した場合、以前の設定はまだシェル履歴に残っている可能性があります。以前の割り当て(例:Ctrlbashまたはzshの+)を検索してみてください。R MANPATH=ログイン時に読み取る一部の設定ファイルに環境変数が設定されている場合は、他の端末でシェルを起動してそこから値をコピーして貼り付けます。

関連情報