Xóa lịch sử thiết bị đầu cuối trong Linux [đã đóng]


170

Khi bạn sử dụng phím up trong thiết bị đầu cuối Linux, bạn có thể sử dụng lại các lệnh trước đó. Tính năng tuyệt vời. Tuy nhiên, tôi bắt đầu đăng nhập mysql vào mysql với các chi tiết nhạy cảm trong lệnh.

Làm thế nào tôi có thể xóa lịch sử đó?


Xin lỗi, tôi hoàn toàn quên đề cập rằng tôi đang sử dụng bash.
Frank Vilea

16
Vì câu hỏi này đã đóng nên tôi không thể thêm câu hỏi này làm câu trả lời. Bạn có thể nói bash không lưu bất kỳ lịch sử nào cho một phiên cụ thể bằng lệnh này:export HISTFILE=/dev/null
Chris Eberle

1
Tôi cũng có thể thêm điều này: không nhập thông tin nhạy cảm vào dòng lệnh - chờ lời nhắc: D
hummingBird

Câu trả lời:


343

Bạn có thể xóa lịch sử bash của bạn như thế này:

history -cw


4
Thực sự thích câu trả lời này - điều này có hiệu lực ngay lập tức, thay vì xóa .bash_historyyêu cầu khởi động lại vỏ để có hiệu lực.
mikemaccana

1
Không hoạt động trên máy Ubuntu 14.04 của tôi. Lịch sử chỉ xuất hiện với thiết bị đầu cuối mới. Tất cả những gì đã làm việc là >~/bash_history. Phải khởi động lại thiết bị đầu cuối cho việc này mặc dù.
Aniket Thakur

Cũng hoạt động trên Mac OS X El Capitan (đã thử nghiệm trên phiên bản 10.11.2), nhưng bạn phải thêm dòng sau vào ~/.bash_profile: export SHELL_SESSION_HISTORY=0, sau đó thực hiện source ~/.bash_profilevà hoàn thành thoát và khởi động lại ứng dụng Terminal của bạn. Nếu bạn muốn hiểu lệnh xuất khẩu này làm gì, thì bạn chắc chắn nên kiểm tra liên kết sau: superuser.com/questions/950403/ợi
Vua-Wizard

1
không đủ -c? Hướng dẫn sử dụng nói -c xóa danh sách lịch sử bằng cách xóa tất cả các mục. -w sẽ xóa lịch sử hiện tại vào tập tin lịch sử và nối chúng vào danh sách lịch sử. Chỉ cần -c hoạt động tốt.
Kahn

24

Nếu bạn sử dụng bash, thì lịch sử thiết bị đầu cuối được lưu trong một tệp có tên .bash_history. Xóa nó, và lịch sử sẽ biến mất.

Tuy nhiên, đối với MySQL, cách tiếp cận tốt hơn là không nhập mật khẩu vào dòng lệnh. Nếu bạn chỉ định tùy chọn -p, không có giá trị, thì bạn sẽ được nhắc nhập mật khẩu và nó sẽ không được ghi lại.

Một tùy chọn khác, nếu bạn không muốn nhập mật khẩu của mình mỗi lần, là lưu nó trong tệp my.cnf. Tạo một tệp có tên ~ / .my.cnf với một cái gì đó như:

[client]
user = <username>
password = <password>

Đảm bảo thay đổi quyền của tệp để chỉ bạn mới có thể đọc tệp.

Tất nhiên, theo cách này, mật khẩu của bạn vẫn được lưu trong một tệp văn bản gốc trong thư mục chính của bạn, giống như trước đây nó đã được lưu trong .bash_history.


4
+1 để chỉ định -p. Đây hoàn toàn là cách tiếp cận chính xác cho vấn đề này
andyb

2
Trên thực tế, trên hệ thống Linux của tôi, bash ghi nhớ lịch sử và tạo lại tệp khi đăng xuất. Bạn sẽ phải đăng nhập, xóa tệp, đăng nhập lại, đăng xuất shell đầu tiên, xóa tệp và sau đó đăng xuất shell thứ hai.
cHao

Cảm ơn đã chỉ ra rằng. Tôi nghĩ rằng tôi đã thông minh bằng cách sử dụng tùy chọn -p + mật khẩu trực tiếp trong lệnh bởi vì nó nhanh hơn rất nhiều khi chỉ cần nhấn mũi tên lên vì tôi có mật khẩu rất dài. Thời gian để xem xét lại ..
Frank Vilea

5
Đừng quên để unset HISTFILElịch sử hiện tại không được lưu.
Ignacio Vazquez-Abrams

Tôi đã chỉnh sửa câu trả lời của mình và thêm một giải pháp ngăn chặn việc nhập mật khẩu mỗi lần.
sagi
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.