Jawaban:
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.