Bagaimana saya bisa menghapus perintah yang disimpan dari Terminal?

16

Seperti yang Anda ketahui, Mac OS X menyimpan semua perintah yang dijalankan dari Terminal di Terminal itu sendiri, namun, saya ingin menghapus (misalnya) 3 perintah terakhir dari terminal. Bagaimana saya bisa melakukan ini?

JAHelia
sumber

Jawaban:

12

Mac OS tidak menyimpan apa pun di mana pun.

bash, yang merupakan shell yang dijalankan di terminal, tidak menyimpan sejarah perintah.

Sejarah perintah terminal disimpan dalam file tersembunyi di direktori pengguna Anda yang disebut .bash_history

Ini berarti file tersebut adalah: /Users/{username}/.bash_history

Anda harus mengaktifkan "Tampilkan File Sistem" untuk melihatnya (dari menu "Lihat" di finder).

File ini hanyalah daftar tekstual dari semua yang Anda ketik di shell. Anda dapat membukanya di TextEdit, atau editor pilihan Anda.


Anda mungkin harus menutup Terminal.appuntuk menyiram setiap perubahan terbaru ke dalam file sebelum membuat perubahan, atau mungkin ditimpa dari versi yang Terminal.appada dalam memori.

Nama palsu
sumber
2
Perintah tidak disimpan dengan cepat tetapi hanya ketika shell keluar atau ketika diminta untuk melakukannya (misalnya, history -aatau history -w). Biasanya perintah terakhir belum ada dalam file.
Matteo
Ups, saya bermaksud menambahkan Anda mungkin harus menutup semua instance terminal.app sebelum mengedit file ini. Tetap.
Nama Palsu
19

Ini bukan fitur Mac OS tetapi fitur shell. Dengan asumsi bahwa Anda menggunakan bash (default):

  • sejarah perintah disimpan dalam memori dan bertahan dalam file (biasanya ~/.bash_history)
  • Anda dapat membuat daftar dan mengedit riwayat dengan historyperintah

Dengan man bash(di SHELL BUILTIN COMMANDSbagian) Anda akan menemukan deskripsi berbagai opsi.

Kamu bisa:

  • daftar entri sejarah

    $ history
  • hapus seluruh riwayat

    $ history -c
  • hapus entri yang diberikan

    $ history -d offset
Matteo
sumber
kedua jawaban itu benar, saya memilih yang paling awal .. terima kasih
sobat
melakukan sejarah -c, katanya fc: event not found: -c. Lalu saya membuka file secara manual, menghapus isinya. Closed and reopened the terminaldan sejarah tidak ada sekarang.
ingin tahu
2

Untuk pengguna Terminal Mac

hapus histori perintah bash dengan perintah berikut $ echo '' > ~/.bash_history

Untuk pengguna Mac zsh

hapus riwayat perintah zsh dengan perintah berikut $ echo ''> ~/.zsh_hostory

Vikbert
sumber
Perhatikan bahwa ini akan menghapus seluruh riwayat, dan bukan hanya tiga baris terakhir.
John N
0

Selain Edit Teks, Juga, jika Anda sudah jadul, gunakan 'vi' untuk mengedit file dan menghapus perintah ofensif. Editor baris perintah serupa emacs (yang berbagi pintasan pengeditan dengan OS X) atau nano (yang memiliki navigasi yang disederhanakan dan bantuan visual tentang cara menyimpan dan keluar dari editor tanpa memerlukan lembar referensi) .

gpdeveloper
sumber
1
Itu akan dibahas oleh "Anda dapat membukanya di TextEdit, atau editor pilihan Anda ", yang ada di jawaban yang diterima.
John N
Kami lebih suka jawaban berdiri sendiri. Saat ini lebih merupakan komentar daripada jawaban, dapatkah Anda menambahkan setidaknya nama file yang akan diedit?
nohillside