Apakah ada cara untuk memeriksa riwayat hanya dari sesi saat ini?

10

Saya ingin tahu apakah ada perintah atau cara lain saya bisa memeriksa riwayat perintah saya hanya di sesi saat ini.

Andrew
sumber

Jawaban:

12

The historydibangun pada bashmemungkinkan menentukan nama file bila digunakan dengan -anrwbendera, dan -adeskripsi bendera dari help historynegara-negara:

tambahkan baris riwayat dari sesi ini ke file riwayat

Karena itu, kita dapat melakukan:

~$ history -a this_session.history
~$ cat ./this_session.history 
history mysession.history 
cat mysession.history 
clear
history -a this_session.history

Sebagai catatan, -w(tulis riwayat ke file opion) menulis seluruh riwayat ke file yang ditentukan, jadi -a(tambahkan) di sini adalah pilihan yang lebih disukai.


Ada cara manual lainnya. Secara khusus kshtidak memiliki -aflag seperti bashhalnya, tetapi apa ksh dan mkshyang dimiliki adalah HISTFILEvariabel lingkungan (dan juga bashmemiliki itu, karena bashmenyertakan banyak kshfitur); omong-omong, variabel ini secara default tidak disetel (setidaknya mkshdi Ubuntu tidak mengaturnya). Jadi, untuk mengeluarkan sesi saat ini ke file lain, kami memanggil HISTFILEprepended to command yang dalam sintaksis shell berarti menjalankan perintah dengan variabel lingkungan tambahan yang Anda tentukan. Seperti itu:

bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$ 
bash-4.4$ cat ./mykshfile.hist 
�echo 'Hello'
echo 'World'

Apa yang Anda juga dapat melihat dari ini adalah bahwa kshdan kerang-kerang yang terkait sejarah keluaran dengan karakter khusus, bukan teks biasa seperti apa bash. Jadi, Anda mungkin ingin membuka file itu bersama ksh.

Sejauh POSIX /bin/sh shell di Ubuntu , yang merupakan Debian Almquist Shell atau Dash, ada fcbuilt-in . Namun, pada dasbor Ubuntu dikompilasi tanpa lib-edit , yang merupakan pilihan sadar oleh pengembang Ubuntu untuk alasan kinerja, jadi fcdan mode lain yang memerlukan pengeditan garis tidak bekerja di luar kotak (kecuali mengkompilasi ulang dashdiri sendiri dan menginstal lib-edit).


Shell netral akan merekam sesi Anda dengan alat yang ada atau menulis fungsi Anda sendiri untuk merekam berdasarkan per-perintah.

Sergiy Kolodyazhnyy
sumber