Jawaban:
The history
dibangun pada bash
memungkinkan menentukan nama file bila digunakan dengan -anrw
bendera, dan -a
deskripsi bendera dari help history
negara-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 ksh
tidak memiliki -a
flag seperti bash
halnya, tetapi apa ksh
dan mksh
yang dimiliki adalah HISTFILE
variabel lingkungan (dan juga bash
memiliki itu, karena bash
menyertakan banyak ksh
fitur); omong-omong, variabel ini secara default tidak disetel (setidaknya mksh
di Ubuntu tidak mengaturnya). Jadi, untuk mengeluarkan sesi saat ini ke file lain, kami memanggil HISTFILE
prepended 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 ksh
dan 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 fc
built-in . Namun, pada dasbor Ubuntu dikompilasi tanpa lib-edit , yang merupakan pilihan sadar oleh pengembang Ubuntu untuk alasan kinerja, jadi fc
dan mode lain yang memerlukan pengeditan garis tidak bekerja di luar kotak (kecuali mengkompilasi ulang dash
diri 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.