Câu hỏi Làm thế nào để xóa hoàn toàn lịch sử bash?


Tôi muốn xóa tất cả các lệnh trước đó khỏi lịch sử máy chủ của tôi. Tôi đã sử dụng history -c và dường như mọi thứ đều bị xóa nhưng khi tôi ssh đến máy chủ, tất cả các lệnh vẫn còn đó.

Làm thế nào tôi có thể xóa chúng vĩnh viễn?


221
2017-09-23 05:44


gốc




Các câu trả lời:


Tập tin ~/.bash_history giữ lịch sử.

Để xóa hoàn toàn lịch sử bash trên máy chủ, mở terminal và gõ

cat /dev/null > ~/.bash_history

Cách thay thế khác là liên kết ~/.bash_history đến /dev/null

Tuy nhiên,

Một tác dụng phụ gây phiền nhiễu là các mục lịch sử có sao chép trong bộ nhớ và nó sẽ quay trở lại tệp khi bạn đăng xuất.

Để giải quyết vấn đề này, hãy sử dụng lệnh sau (đã làm việc cho tôi):

cat /dev/null > ~/.bash_history && history -c && exit

289
2017-09-23 05:51



bạn cũng có thể đặt lệnh ở trên vào .bashrc & .bash_logout. những gì nó có nghĩa là khi bạn đăng nhập u sẽ có lịch sử rõ ràng và khi bạn đăng xuất ra lịch sử của bạn sẽ bị xóa - Qasim
Tại sao bạn cần / dev / null ở đó? Sẽ không > ~/.bash_hstory đủ? - configurator
có nó sẽ là đủ! - fromnaboo
Tôi đã cố gắng để làm điều đó trên một hộp mâm xôi trong khi kết nối thông qua SSH. Tôi đã thêm lệnh trên (cat / dev / null> ~ / .bash_history && history -c && exit) vào cả hai .bashrc & .bash_logout như được gợi ý bởi @Qasim. Bây giờ ngay sau khi tôi kết nối qua SSH, máy chủ từ xa sẽ đóng kết nối (sau khi in motd). Cứu giúp :/ - Advanced
Đi để hiển thị những gì sẽ xảy ra khi bạn làm một cách mù quáng mà không đọc đúng và không hiểu quy trình xử lý và lưu lượng dữ liệu. Nó cũng cho thấy những cạm bẫy của giao tiếp xấu. Những gì devav2 đã làm là chạy nó một lần, và những gì Qasim cần phải viết là để loại bỏ lệnh thoát trước khi thêm nó vào kịch bản đăng nhập. - Sri


Phải làm gì:

Trong mỗi mở bash shell (bạn có thể mở nhiều terminal):

history -c
history -w

Tại sao: Như đã nói ở trên, history -c làm trống tập tin ~/.bash_history. Điều quan trọng cần lưu ý là bash shell không ngay lập tức xóa lịch sử thành tệp bash_history. Vì vậy, điều quan trọng là (1) tuôn ra lịch sử vào tập tin, và (2) xóa lịch sử, trong tất cả các thiết bị đầu cuối. Đó là những gì các lệnh trên làm.

Tài liệu tham khảo: http://www.giannistsakiris.com/index.php/2007/09/13/how-to-clear-bash-history-and-what-to-watch-out-for/


115
2018-04-11 20:55



Trên thực tế, cách khác xung quanh làm việc cho tôi. - kristianp
Trong nhiều trường hợp, bạn có thể kết hợp hai lệnh này với nhau: history -cw - Elliot
Đối với một số lý do này không hoạt động trên Ubuntu 14.04, có lẽ những người khác. Nó nên nhưng nó không. Nếu bạn phát lệnh "history -cw", bạn có thể xác nhận bằng mũi tên lên mà lịch sử không còn nữa, nhưng nếu bạn bắt đầu một cửa sổ dòng lệnh khác (trong Unity desktop) với shift + click vào biểu tượng terminal (tôi có nó được ghim trong trình khởi chạy) lịch sử lệnh quay lại, không có vấn đề bao nhiêu lần bạn làm "history -cw". "cat / dev / null> ~ / .bash_history" là cách duy nhất hiệu quả với tôi. - Hatoru Hansou
Trong khi tôi không Ubantu, hoạt động tốt cho vỏ bash của tôi trong OSX. - Scott Biggs
Đó là lịch sử -c và sau đó là lịch sử -w, trước tiên bạn xóa lịch sử rồi viết các thay đổi. Điều này có thể dễ dàng xác nhận bằng cách đóng terminal và mở lại nó, với -w đầu tiên các lệnh lại xuất hiện, với lịch sử cuối cùng -w được xóa một cách hiệu quả. - Hatoru Hansou


thực thi các lệnh sau để xóa vĩnh viễn lịch sử

history -c && history -w

chúc may mắn!


44
2017-08-12 12:39





Có một cách đơn giản hơn nhiều: chạy history -c trên dấu nhắc đầu cuối và biến mất là tất cả các mục nhập trong bash_history tập tin.


19
2018-03-10 18:10



Không có nó không phải là. Đăng xuất, đăng nhập, mũi tên lên cho tôi mọi thứ. Bạn cũng cần "history -w". - stolsvik
Nếu bạn đọc câu hỏi của OP bạn sẽ biết rằng sử dụng history -c là phương pháp chính xác dẫn đến câu hỏi này. - J.Money


Một cách khác để làm điều này là xóa ~/.bash_history tệp bằng cách sử dụng rm ~/.bash_history chỉ huy. Khi bạn đăng nhập vào một thời điểm khác, .bash_history tệp sẽ được tạo tự động.


10
2017-09-23 06:18



Ít nhất trên một số hệ điều hành ~ / .bash_history được ghi vào đĩa khi bạn đăng xuất - Không chắc chắn về * buntus. - d-_-b


Xóa lịch sử của shell hiện tại:

history -c

Khi bạn đăng xuất, lịch sử trình bao hiện tại của bạn được nối vào ~ / .bash_history, là bộ nhớ cache của các lịch sử của các shell trước đó, tới một số tối đa (xem HISTFILESIZE trong "man bash").

Nếu bạn muốn xóa toàn bộ lịch sử, thì về cơ bản bạn phải dọn sạch ~ / .bash_history mà nhiều mục nhập ở trên đã đề xuất. Nhu la:

history -c && history -w

Điều này xóa lịch sử của shell hiện tại và sau đó ép lịch sử của shell hiện tại (trống) để ghi đè lên ~ / .bash_history .... hoặc chính xác hơn, nó buộc nó ghi đè lên HISTFILE (mặc định là ~ / .bash_history).

Hi vọng điêu nay co ich.


5
2017-07-10 17:05



Bạn trả lời là chính xác, nhưng câu hỏi đã được hai tuổi, đã chấp nhận câu trả lời, và bao gồm cùng một câu trả lời bạn đã đưa ra. - Charles Green


rm ~/.bash_history; history -c; logout

Bây giờ đăng nhập trở lại và chứng kiến ​​rằng mũi tên của bạn không cung cấp cho bạn bất cứ điều gì.


5
2017-10-01 19:16



@KasiyA Đó là về một máy chủ và một phiên ssh, vì vậy không cần phải chỉnh sửa ... - Radu Rădeanu


Hãy thử cái này

chỉnh sửa .profile và thêm dòng bên dưới vào cuối tệp

rm -f .bash_history

theo cách này, mỗi lần bạn đăng nhập, nó sẽ xóa tệp .bash_history của bạn tự động cho bạn. Việc thêm tùy chọn xóa đệ quy -r có vẻ nguy hiểm và không cần thiết.


0
2017-08-30 18:06