ターミナルで実行されたコマンドの履歴を表示する


75

入力したすべての端末コマンドを保存し、ログブックの履歴のように表示する方法はありますか?

回答:


92

これは自動的に行われます。Bashはコマンドをに保存します~/.bash_history。履歴を見たい場合は、次のいずれかを使用してこのファイルの出力を印刷します。

cat ~/.bash_history
less ~/.bash_history
...any other pager or output command...

または、bashの組み込みコマンドを使用できます。

history

履歴を消去するには、ファイルを削除して一時履歴を消去します。

rm ~/.bash_history && history -c

履歴サイズのデフォルトは500コマンドです。ただし、~/.bashrcファイルに行を追加してHISTSIZE変数を設定することにより、これを増やすことができます。

HISTSIZE=<number of entries, -1 for unlimited>

これはすぐには有効になりませんが、新しく開始されたセッションにのみ有効です。これを適用するには、.bashrcファイルを再ソースします。

. ~/.bashrc

またはHISTSIZE=...現在のセッションで実行します。


1
デフォルトでは、最新の500個のコマンドのみが保持されます。保持する番号を変更できますが、誤ってデフォルト設定で1回起動するだけで、古い履歴はすべて失われます。
カスペルド

Ubuntu 16でこれが機能しない
Nam G VU

31

history端末で入力して、以前に実行したすべてのコマンドを表示できます。


出力をいくつかの行に切り捨てることができます(5は行数です)。

history 5

文字列を含むコマンドのみを表示したい場合(つまりmv)、これを行うことができます:

history | grep mv

コマンドの!後にエントリ番号を入力すると、コマンドを呼び出すことができます。

次のような歴史があるとしましょう。

1 ls -la
2 mkdir foo
3 mv bar.txt foo
  • 実行するにはmkdir foo、と入力できます!2
  • 最後のコマンドを実行するには、!-1またはを使用できます!!
  • 最後から2番目を実行するには、次を使用できます。 !-2

ルート権限が必要なために失敗するコマンドを実行する場合(つまり、touch /etc/foo)、sudo !!最後のコマンドをルートとして実行するために使用できます。


  • 入力!manすると、次で始まる最後のコマンドが実行されますman
  • 入力!?man?すると、最後に含まれるコマンドが実行されますman(必ずしもbegin行ではありません)

コマンドにタイプミスがある場合は、この方法で修正できます。私が入力cat .bash_hiするだけで.bash_hi.bash_history私が入力するだけで置き換えるとしましょう^hi^history^


ソース: https : //www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps


2
また、Ctrlキーを押しながらRキーを押すと、入力中にホストで検索を実行できます。
Mhmd

historyUbuntu 16で私のために働いています。ありがとう、そして受け入れられるべきです!
ナムG VU

9

入力するだけ:

history > print.txt

現在の作業ディレクトリにprint.txtという新しいファイルが作成されます。


3
1000年の後にコマンドをカット
アントワーヌ

3

最近のコマンドも必要なことがよくあります。私の開発ノートや、これらのようなstackexchangeサイトに投稿するには...これは非常に有用であることが証明されており、無関係な行番号を削除します。

history | cut -c 8- | tail

または、エイリアスとして気に入った場合は、行番号を削除し、すぐにインデントします(コード引用マークダウンの必要に応じて)

alias lastones="history | tail | sed -e 's/^ [0-9]\{1,5\}  /    /gi'"

1
使いやすいfcaskubuntu.com/a/839642/158442
muru

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.