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?

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.


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

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


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) .


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.