Riwayat perintah Bash tidak berfungsi

13

Riwayat perintah antar sesi tidak disimpan. Saya menggunakan guake dan riwayat untuk sesi ini bekerja dengan baik.

Saya perhatikan bahwa .bash_history memiliki beberapa perintah yang saya jalankan dalam sudo -smode dan mencoba yang sama lagi dan semua perintah sementara di sesi itu disimpan jadi saya mencobachmod 777 .bash_history

Sekarang perintah lama muncul di awal sesi tetapi tidak ada perintah baru yang disimpan

Terima kasih sebelumnya

v2r
sumber
2
Jadi ... apa sebenarnya yang ingin kamu capai? Anda tampaknya tidak mengajukan pertanyaan di sini: /
Thomas Ward
4
Mode 777 tidak perlu, terutama tidak ada hubungannya dengan flag 'executable' (mode default adalah 600). Akan ~/.bash_historyditulis ketika Anda logout (untuk mencapai perintah yang lebih baru Anda dapat menggunakan historyperintah). Tapi saya gagal melihat masalahnya juga ..
Onedinkenedi

Jawaban:

16

Perintah tidak terlihat karena Bash menyimpan histori ke file .bash_history hanya setelah shell keluar, dan ini sangat jarang terjadi dengan Guake. Ada solusi sederhana untuk membuat Bash menambahkan riwayat (alih-alih menimpa file) setelah setiap perintah

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
Adam Byrtek
sumber
4
Murni luar biasa. Seandainya saya tahu tentang ini 5 tahun yang lalu.
HDave
8

Terkait, biasanya bagaimana ini bisa rusak adalah jika Anda sudo perintah sebelum Anda memiliki file .bash_history, karena itu akan dibuat dimiliki oleh root, bukan pengguna Anda.

khamer
sumber
2

Bisa juga root itu: root memiliki .bash_history Anda (ROOT TIDAK HARUS MENJADI PEMILIK, PENGGUNA ANDA HARUS MENJADI PEMILIK!), Dalam hal ini Anda perlu:

#chown user:user .bash_history

Ini tampaknya bisa terjadi jika Anda melakukan sudo bashbanyak!

mahatmanich
sumber