Câu trả lời:
Bạn có thể đảo ngược các cài đặt Ubuntu mặc định bằng cách đặt hai biến (HISTIGNORE một HISTCONTROL), sử dụng các lệnh như dưới đây:
HISTIGNORE='!( *)'
HISTCONTROL=ignoredups
HISTCONTROL=ignoredups
thay đổi hành vi lịch sử để chỉ bỏ qua các dòng trùng lặp và không bỏ qua các dòng bắt đầu bằng một khoảng trắng. (Bạn cũng có thể đặt HISTCONTROL thành chuỗi trống (với HISTCONTROL=
) nếu bạn muốn giữ các bản sao, nhưng điều đó thường không muốn.)
HISTIGNORE='!( *)'
làm cho lịch sử bỏ qua mọi dòng không bắt đầu bằng khoảng trắng: ( *)
sẽ khớp với mọi dòng bắt đầu bằng khoảng trắng, nhưng hàng đầu !
phủ định kết quả khớp, vì vậy nó khớp với mọi thứ không bắt đầu bằng khoảng trắng. Và mọi thứ phù hợp với mẫu HISTIGNORE sẽ bị lịch sử bỏ qua. (Tùy chọn thứ hai này yêu cầu bash được chạy khi extglob
bật shopt -s extglob
, nhưng đó là cài đặt mặc định trên Ubuntu.)
Nếu bạn muốn làm điều này vĩnh viễn, đừng quên đặt hai lệnh trên vào ~/.bashrc
.
HISTIGNORE='ls*:cd*'
, điều đó sẽ làm cho lịch sử bỏ qua mọi dòng bắt đầu bằng ls
hoặc cd
, bạn có thể mở rộng danh sách đó bằng các lệnh khác, chỉ cần đặt một :
giữa các lệnh . Nhưng đừng quên rằng tính năng gọi lại lệnh mà bạn có thể truy cập bằng "phím mũi tên lên" cũng sử dụng lịch sử này, vì vậy nếu bạn đặt thứ gì đó bị bỏ qua, bạn sẽ không thể nhớ lại các lệnh bị bỏ qua đó bằng " mũi tên lên".
ssh-copy-id
hoặc ssh-keygen
. Trong HISTIGNORE
, tôi đã bao gồm " ssh\ *
" với các lệnh bị bỏ qua khác của tôi. Thoát khỏi không gian char dường như là bắt buộc.
" Các lệnh được thực thi trong thiết bị đầu cuối có tiền tố trống (s) không được ghi lại trong tệp lịch sử lệnh "
Vâng, đúng vậy.
.bashrc
.. Tôi cần điều đó để ngăn bash ghi lại mọi lệnhcd
,ls
s và các lệnh hàng ngày khác mà tôi sử dụng; và đối với một vài lệnh mà tôi cần trong lịch sử, giờ đây tôi có thể sử dụng tiền tố ..