Apakah mungkin membuka sesi penyamaran bash?
Misalnya, ketika kita perlu memasukkan kata sandi dalam perintah dan tidak ingin bashmenambahkannya ke riwayat.
secrectcommandtidak akan berada dalam bash history.
Apakah mungkin membuka sesi penyamaran bash?
Misalnya, ketika kita perlu memasukkan kata sandi dalam perintah dan tidak ingin bashmenambahkannya ke riwayat.
secrectcommandtidak akan berada dalam bash history.
Jawaban:
Saat Anda ingin bashberhenti mencatat perintah Anda, hapus saja HISTFILEvariabelnya:
HISTFILE=
Semua perintah selanjutnya seharusnya tidak lagi dicatat .bash_history.
Di sisi lain, jika Anda benar-benar memasok kata sandi sebagai argumen untuk perintah, Anda sudah melakukan sesuatu yang salah. .bash_historytidak dapat dibaca dunia dan karenanya bukan ancaman terbesar dalam situasi ini:
psdan /procmerupakan masalah besar. Semua pengguna di sistem dapat melihat perintah yang sedang Anda jalankan dengan semua argumen mereka . Melewati kata sandi sebagai argumen baris perintah karenanya tidak aman . Gunakan variabel lingkungan atau file konfigurasi (yang telah Anda buat 600) untuk memasok kata sandi dengan aman.
unset HISTFILEmemiliki efek yang serupa. Saya memiliki fungsi untuk ini: n() { HISTFILE=; PS1="~${PS1#\~}"; }. Dengan begitu saya bisa melihat dengan jelas apakah saya dalam "mode penyamaran" atau tidak.
HISTCONTROL=ignorespace
Jika opsi ini belum ditetapkan bash, mungkin hanya itu yang Anda butuhkan. Ini kurang melemahkan daripada menonaktifkan semua riwayat. Dengan set itu, perintah apa pun yang dimulai dengan karakter spasi tidak akan disimpan ke daftar riwayat.
Dari tautan terkait ini:
Mengapa bash memiliki opsi HISTCONTROL = ignorespace?
Mengapa bash tidak menyimpan perintah yang dimulai dengan spasi?
Anda dapat menonaktifkan sementara riwayat: set +o history
set +o history
...
set -o history
Ada perbedaan antara penonaktifan histori dan unsetting HISTFILE:
HISTFILE=
date
ls
HISTFILE=~/.bash_history
history
menampilkan sesuatu seperti ini:
84 HISTFILE=
85 date
87 ls
88 HISTFILE=~/.bash_history
89 history
yaitu semua perintah disimpan dalam daftar riwayat. Ketik exituntuk menyimpannya.
Tapi
set +o history
date
ls
set -o history
history
menampilkan sesuatu seperti ini:
115 set +o history
116 history
Ringkasan :
set +o historyuntuk sesi panjang.
HISTCONTROLdan <space>commanddi waktu lain.
cat | bashakan menjalankan non-interaktifbashtanpa pengeditan baris perintah yang cepat (hanya editor internal disiplin baris) atau riwayat.