Bạn có thể chia sẻ sự khôn ngoan khi sử dụng HISTIGNORE trong bash không?


26

Tôi đang đọc các trang hướng dẫn về bash trên máy bay và tôi tình cờ thấy biến HISTIGNORE. Để kiểm tra, tôi ngay lập tức chỉnh sửa .profile của mình để xác định biến này:

xuất HISTIGNORE = ls

Tôi đã thử nó và điều này thật tuyệt! Nó loại trừ các lệnh 'ls' đơn giản khỏi lịch sử của tôi mà không loại trừ các lệnh thú vị hơn với các đường dẫn dài, nhưng gần đây đã thu được rất nhiều sự khôn ngoan từ SU Tôi rất muốn biết những gì các siêu nhân khác có thể đề xuất hoặc các bài học khác đã học.

Bạn có thể chia sẻ gì về việc sử dụng biến HISTIGNORE trong bash?

Câu trả lời:


29

Tôi bỏ qua lsmà không có lệnh, bg, fg, exit, pwd, clear, mountumount:

Nếu bạn bao gồm điều này trong HISTIGNOREchuỗi của bạn, bạn có thể chặn bất cứ điều gì bạn muốn bằng cách thêm một khoảng trắng ở phía trước lệnh:

"[ \t]*" 

Đây là của tôi HISTIGNORE:

HISTIGNORE="&:ls:[bf]g:exit:pwd:clear:mount:umount:[ \t]*"

Tôi đã loại trừ một số thứ khác mà tôi có trong đó là các lệnh lặp đi lặp lại duy nhất cho máy chủ của tôi. Bất cứ điều gì bạn làm đơn giản là một điều tốt để loại trừ.

Tôi có những thứ khác mà tôi đã quên thêm nhưng tôi dặm từ hộp Linux của tôi vì vậy tôi sẽ tắt của bộ nhớ.


6
Nếu giá trị HISTCONTROLbao gồm "khoảng trống" hoặc "ignboth", các lệnh bắt đầu bằng khoảng trắng sẽ bị bỏ qua khỏi lịch sử. Nếu giá trị bao gồm "bỏ qua dups" hoặc "ignboth", thì nó giống như "&" trong HISTIGNORE.
Tạm dừng cho đến khi có thông báo mới.

Đối với tôi nó cũng đã được chứng minh là hữu ích để ghi lại historylệnh đó.
con-f-use

2
sử dụng "[ \t]*"lệnh bỏ qua bắt đầu bằng dấu cách hoặc t. Bạn muốnHISTIGNORE=$'&:ls:[bf]g:exit:pwd:clear:mount:umount:[ \t]*'
Gregory Pakosz

14

Đừng lưu các lệnh một và hai ký tự tầm thường trong danh sách lịch sử:

HISTIGNORE='?:??'

Nếu extglobtùy chọn được bật, bạn cũng có thể sử dụng các mẫu mở rộng, ví dụ:

HISTIGNORE='a*( )'
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.