Làm cách nào để chỉnh sửa lịch sử thiết bị đầu cuối Mac OS X?


12

Làm cách nào để chỉnh sửa lịch sử bash của tôi trong Mac OS X? Tôi đã nhập nhầm mật khẩu trong cửa sổ đó và không muốn xóa toàn bộ lịch sử của mình.

Câu trả lời:


14

Chỉnh sửa .bash_historychỉ là vấn đề mở tệp bằng trình chỉnh sửa. Có một vài cách bạn có thể đạt được điều này.

  1. Trong Terminal chỉ cần gõ vi ~/.bash_history, sau đó chỉnh sửa tệp theo ý muốn và lưu. Tất nhiên, tùy chọn này có thể khó, nếu bạn không quen sử dụng vi .
  2. Làm cho tệp hiển thị bằng cách làm theo các hướng dẫn này , ví dụ, mở tệp đó như bất kỳ tệp nào khác, sửa đổi tệp và lưu.
  3. Trong Terminal chỉ cần gõ open ~/.bash_history -a /Applications/TextEdit.app. Lệnh này sẽ mở tệp bằng TextEdit , tất nhiên bạn có thể chọn bất kỳ trình soạn thảo văn bản nào khác. Sửa đổi tập tin và lưu.

Để thay đổi được chú ý, chỉ cần khởi động lại bash.


Tôi đang nhận được "sự cho phép từ chối". Khi tôi thực hiện một sudo, tôi không thể thấy tất cả các lệnh được nhập.
Karthick S

1
@KarthickS Bạn đang làm điều đó chính xác?
Thecafremo

Nếu tôi nhìn vào nội dung của .bash_history thì nội dung sẽ khác với đầu ra của lệnh lịch sử. Tôi nhận ra cả hai, nội dung của tập tin cũ hơn. Điều gì xảy ra nếu nhiều cửa sổ lệnh được mở? Họ dường như không chia sẻ cùng một lịch sử chỉ huy. PS tôi đã xác minh tôi đang sử dụng bash.
Victor Engel

1
Tôi nghĩ rằng tôi đã tìm thấy câu trả lời của tôi. ECHO $ ​​HISTFILE hiển thị cái cần chỉnh sửa.
Victor Engel

10

Trong loại thiết bị đầu cuối historyvà lưu ý số dòng. Cuộc gọi tiếp theo history -d noted-line-number. Bạn có thể kiểm tra xem dòng có bị xóa bằng cách sử dụng historylại không.


2
Điều này không hoạt động trên Yosemite với ZSH.
Paulo Oliveira

Câu hỏi là về bash, không phải zsh. Đọc cẩn thận!
Chưa được đặt tên_1

1
@DmitryDupelov bạn nói đúng, xin lỗi đã làm phiền. Dù sao, đó là một lời nhắc nhở cho độc giả tương lai (cũng có thể bỏ lỡ chi tiết đó). Cảm ơn bạn đã sửa bình luận của tôi.
Paulo Oliveira

2
nano ~/.bash_history

khi bạn làm xong, ctrl+x và quay lại để chấp nhận một câu trả lời đúng


0

Tôi nghĩ rằng câu trả lời của Dmitry là lý tưởng nếu được thực hiện trước khi lưu lịch sử - theo mặc định, việc lưu xảy ra khi thoát khỏi shell / terminal.

Nếu bạn có thể đã lưu lịch sử vào ~ / .bash_history, thì tôi thích câu trả lời của Thecafremo, nhưng tôi khuyên bạn nên thêm một bước thoát khỏi Terminal để đảm bảo rằng không có trường hợp bash nào đã tải lịch sử và sẽ lưu lại. Điều này đặc biệt khó khăn nếu bạn có nhiều thiết bị đầu cuối và đã kích hoạt bất kỳ loại cập nhật lịch sử lệnh nào.

Lý lịch:

  • bash lưu lịch sử trong một thể hiện của trình bao
  • bash có thể ghi lịch sử này vào một tệp, điều này thường xảy ra khi bạn thoát khỏi shell / Terminal
  • bash có thể đọc từ một tệp vào lịch sử, điều này thường xảy ra khi bạn mở shell / Terminal
  • có thể thay đổi hành vi mặc định để lịch sử lan truyền sớm hơn, có thể di chuyển BAD_TEXT của bạn sang tệp và sang các cửa sổ khác

Bất kể bạn sử dụng phương pháp nào, tôi sẽ thêm một bước: xác minh thành công!

  1. Thoát Terminal.app
  2. Mở lại Terminal.app
  3. Xác nhận văn bản vi phạm không có trong lịch sử - tốt nhất là theo cách không tạo thêm lịch sử. Đó là, đừng grep BAD_TEXT .bash_history! Lệnh mới này sẽ đi vào lịch sử. Tôi chỉ cần mở .bash_history trong trình chỉnh sửa yêu thích của bạn và tìm kiếm trong đó cho BAD_TEXT.

Điều này sẽ giúp bạn yên tâm rằng bạn đã loại bỏ BAD_TEXT cho dù bạn có gặp phải loại thiết lập bash điên nào.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.