GNU/Linux >> Belajar Linux >  >> Linux

Riwayat Arsip Tanpa Keluar dari Shell?

Saya baru menyadari bahwa alur kerja yang telah saya gunakan selama bertahun-tahun, tidak melakukan apa yang seharusnya dilakukan. Karena saya belum menyadari bahwa untuk waktu yang lama, Anda mungkin berpikir itu tidak layak untuk dilakukan, tetapi ternyata sekarang, itu menjadi agak penting.

Apa yang saya bicarakan? Oke, saya punya tmux berjalan dengan beberapa sesi dan setiap sesi memiliki jendela yang berbeda dan seterusnya. Bekerja seperti itu luar biasa. Namun, ada satu kelemahannya. Ketika server di-restart, untuk alasan apa pun, itu menutup semua sesi saya. Cukup adil, tidak bisa dihindari dan tidak sering terjadi. Namun, bagian yang mengganggu adalah, bahwa semua zsh saya atau bash history hilang juga. Ini adalah sebuah masalah. Saya mengandalkan sejarah saya, mungkin terlalu banyak.

Saya menghindari masalah ini dengan menekan fc -W (dalam zsh ) sesekali. Saya pikir ini akan menambahkan riwayat yang ada di memori dan saya kemudian hanya akan kehilangan bagian antara doa terakhir saya fc -W dan restart server. Tapi bukan itu yang dilakukannya. Jika saya menggunakan fc -W dalam satu jendela, lalu fc -W di satu lagi, sejarah dari jendela pertama akan ditimpa oleh sejarah dari jendela kedua. Saya perlu menggunakan fc -R pertama, tapi ini akan menduplikasi seluruh sejarah… pada dasarnya saya menyalahgunakan fc perintah sepanjang waktu.

Inilah pertanyaannya:Bagaimana saya bisa memastikan untuk tidak kehilangan riwayat saya ketika saya berada di tmux dan tiba-tiba listrik padam? Catatan:

  • Saya menggunakan riwayat tak terbatas, jika itu penting.
  • Kehilangan sebagian histori tidak masalah, yaitu jika saya harus menjalankan perintah dengan tangan (atau dalam cronjob) dan saya kehilangan sebagian histori sejak perintah terakhir dijalankan, tidak apa-apa.
  • Keluar dari terminal dan membuka yang baru bukanlah solusi.
  • Saya tidak ingin menyimpan perintah saya langsung ke histori, karena ini mencampur histori yang berbeda.
  • Solusi untuk keduanya bash dan zsh dipersilakan. zsh lebih disukai.

Sunting:Sorot bagian yang tampaknya salah paham oleh semua orang.

Jawaban yang Diterima:

Di zsh, gunakan fc -AI untuk menyimpan riwayat Anda, bukan fc -W . Gunakan -A , bukan -W , jika tidak, riwayat dari instance Shell lainnya akan ditimpa. Dan -I hanya menyimpan entri riwayat baru sejak penyimpanan terakhir.

Terkait:Skrip BASH:Bagaimana cara menetapkan setiap baris output perintah ke nilai dalam array?

Mengingat alur kerja Anda, daripada menyimpan secara manual, Anda mungkin harus menyimpan riwayat secara otomatis. Aktifkan inc_append_history opsi untuk menyimpan setiap perintah ke file riwayat segera sebelum dieksekusi.

Meskipun dimungkinkan untuk mencapai efek yang sama di bash, berbagi riwayat dengan benar antara instance bash lebih sulit. Lihat Pertahankan riwayat bash di beberapa jendela terminal


Linux
  1. Diutamakan Operator Logika Shell &&, ||?

  2. Memahami Arti `$_`?

  3. Bagaimana saya bisa membuat daftar file dalam arsip zip tanpa mendekompresinya?

  1. Cara menggunakan perintah history di Linux

  2. Kembali ke direktori sebelumnya di shell

  3. Bagaimana caranya:Riwayat Bash/Shell yang tidak terbatas?

  1. Kekuatan (Shell) untuk orang-orang

  2. Menyesuaikan shell Bash

  3. Bagaimana Cara Menjalankan Perintah di Shell Tanpa Menyimpannya ke Riwayat? [Kiat Linux]