コマンド履歴はありますか?シェン、アクセス方法と明確性を確保する方法など?
ここでシェルを明確にするために:GUIではなくLinuxシステムにログインしたとします。$シェルBashに設定する代わりに、DashやBourneに似たシェルに設定します。
マニュアルページには一部のBSDシステムで見た「history」コマンドが記載されていますが、これは実際には私のシェルにはありません。
記述子の説明この投稿おそらく、これはキーバインディングを理解する必要があるものとより関連性があるかもしれないと思いました。シェン実際、殻の違いと同じではありません。
答え1
すべてのシェルが履歴をサポートしているわけではありません。 libeditサポートにコンパイルされた場合、コマンドはdash
制限された履歴サポートを提供しますが、fc
そうでない場合は提供されません。dash
履歴ファイルを保存できません。
通常、シェルが上矢印キーをサポートしていない場合、履歴ファイルも保存されないと想定できます。これは厳格で迅速なルールではありませんが、私が遭遇するすべての場合に当てはまります。
他のいくつかのシェル(bash
特に他のシェル)は通常、履歴をホームディレクトリにファイルとして保存し、プログラム名に置き換えるreadlineを使用し~/.*_history
ます*
。たとえば、Python 3はreadlineを使用し、その履歴を~/.python_history
。
シェルによっては、保存場所を設定したり設定したりしない場合があります。bash
そして(すべて大文字)変数をzsh
使用してください。HISTFILE
シェルが正しく設定されている場合してはいけないは環境変数なので、 で見ると間違いをしたことになります(ただしenv
or の出力には引き続き表示する必要があります)。set
printf %s\\n "$HISTFILE"
プログラムが履歴をサポートしていない場合(ed
シェルスクリプトread
や以前のバージョンを使用するなど)、bashなどのタブを完了し、readlineを使用した矢印キーの処理と履歴の記録を提供するmysql
クロスプラットフォームアプリケーションが呼び出されます。rlwrap
答え2
明示的に設定しない限り、デフォルトのシェル履歴はありません。あることを確認するには、env|grep -i hist
コマンドを実行できます。 etc(大文字で表示)などの変数が表示されると、histfile
シェル履歴が有効になり、履歴ファイルがどこにあるかを確認する必要があります。クリーンアップするには、ファイルを削除する以外に適切な方法を使用できます
答え3
見苦しいがshしか使用できない古いシステム(ESXiホストなど)でこれを使用します。
cat `printf %s $HISTFILE`
答え4
履歴コマンドを入力せずに履歴ファイルを消去するソリューションを見つけました。 .(シェル/パッケージ名)_historyファイルパス(通常はホームディレクトリにあります)を見つけて、どこかに空のファイルを作成し、cat path / to / historyファイルを使用します。 < Path / to / empty以降のファイルを削除すると、履歴が消去されます。このスクリプトを使用して name.sh ファイルを作成できます。