Trong những tình huống nào người dùng sẽ không để vỏ ghi lại lệnh của mình vào lịch sử?


18

Nếu tôi thêm export HISTCONTROL=ignorespacevào .bashrc, bash sẽ không ghi lại bất kỳ lệnh nào có khoảng trắng trước khi chúng vào lịch sử. Nhưng tôi không hiểu trong những tình huống nào nó sẽ hữu ích. Bất cứ ai có thể đưa ra một số ví dụ?

Câu trả lời:


32

Nếu các lệnh của bạn chứa mật khẩu hoặc thông tin nhạy cảm khác


4
@acgtyrant thì bạn không bao giờ nhập lệnh bằng mật khẩu. Ý tưởng là nếu bạn cung cấp mật khẩu trên dòng lệnh, chỉ cần đặt một khoảng HISTFILE
trắng

3
Các lệnh mysql có thể chấp nhận mật khẩu của người dùng mà bạn kết nối với cơ sở dữ liệu, có quá nhiều thứ để liệt kê ở đây. Điểm @Ulrich Dangel được thực hiện là tại chỗ. Nếu bạn đang gõ lệnh bằng mật khẩu, đừng để chúng trong lịch sử.
slm

5
Tôi cũng sẽ nói thêm rằng khi bạn và quản trị viên, bạn thường không muốn tìm hiểu về lịch sử bởi vì nếu kẻ tấn công xâm nhập vào hệ thống, bạn sẽ để lại cho anh ta một dấu vết của những thứ trên hộp và loại lệnh nào thường được chạy trên hộp.
slm

1
Nếu bạn không có bất kỳ lệnh nào có thông tin nhạy cảm, thì bạn không phải là đối tượng mục tiêu cho tính năng đó. Không phải mọi tính năng trong một chương trình đều được sử dụng bởi mọi người dùng. (Đó là lý do tại sao chương trình có "tính năng creep": tất cả mọi người sử dụng hàng chục các tính năng, nhưng một chục khác nhau, và điều kỳ diệu gì tất cả các cruft vô ích khác là cho.)
Kaz

1
Hãy nhớ rằng các đối số dòng lệnh thường được hiển thị trong pshoặc bằng cách nhìn vào /proc. Một số hệ thống làm cho môi trường hiển thị cho người dùng khác là tốt. Một tệp chế độ 0700 trên một tmpfs, OTOH, không có những vấn đề này.
derobert

26

Một cách sử dụng khác là cho các lệnh mà bạn không muốn vô tình lặp lại, chẳng hạn như rm -rf *. Tôi sử dụng rộng rãi lịch sử và thỉnh thoảng Entervô tình gặp phải khi lệnh tôi lấy từ lịch sử không phải là lệnh tôi đang tìm kiếm. Cấp, giải pháp thực sự là luôn luôn đọc các lệnh cẩn thận trước khi thực hiện chúng. Nhưng là một chút vụng về, tôi thích giữ các lệnh đặc biệt phá hủy ra khỏi lịch sử của tôi như là một biện pháp phòng ngừa thêm.


14
Tôi nói thêm rằng tôi thấy rất thuận tiện khi tiếp tục bỏ qua một số lệnh nguy hiểm ngay cả khi tôi quên bao gồm khoảng trắng : HISTIGNORE=" *:rm -f*:rm -r*:*--force*". Điều này ngăn chặn rm -frm -rkhỏi bị lưu vào lịch sử, cũng như bất cứ điều gì có chứa --force.
Petr Pudlák

Đây là / một giải pháp thực sự. Đừng để dao xung quanh, nói rằng giải pháp thực sự là không chọc mình với chúng. Vì câu tục ngữ cũ có nghĩa là bạn không thể đi lại trong dòng sông - nghĩa là đừng làm sạch dòng sông, thay vào đó hãy ngừng đổ rác vào đó.
ctrl-alt-delor

6

Một đồng nghiệp cũ của tôi đã làm điều này với hầu hết các lệnh cdlslệnh, để chỉ ghi lại các lệnh "hữu ích".


3
Tôi gần như không bao giờ chạy nethack tại nơi làm việc mà không cần làm điều này ... (hoặc đầu, hoặc người đàn ông ...)
lotsoffreetime

Trên thực tế, ai đó có thể thêm export HISTCONTROL=ingoredupsvào .bashrcđể nói bash không lưu trữ các bản sao để làm cho lịch sử rõ ràng hơn. Bạn có thể đọc bài viết này
acgtyrant

2

Quyền riêng tư dữ liệu. Thời điểm thực thi pháp luật phá vỡ cửa của bạn, bạn có thể không muốn họ tìm thấy dư lượng của

  • nơi bạn quên phát âm mới nhất ^ Wwarez từ
  • những bộ phim gần đây bạn đã trích xuất và cung cấp cho một torrent
  • mật khẩu được chuyển qua đối số cho các chương trình mã hóa / giải mã

Nghiêm túc mà nói, nó có thể tương đương với một thiết lập quyền riêng tư nghiêm ngặt trong trình duyệt của bạn, ngăn không cho nó ghi lại lịch sử lướt web.


0

Nếu phiên bản của bạn kiểm soát .bash_history, đó là cách hữu ích để đánh dấu các lệnh nhất định là "đặc biệt". Kết hợp với tìm kiếm lịch sử- * , đó là cách nhấn đơn giản Space+ m+ Up+ Enterđể chạy make --directory ~/dev/tilde cleanSpace+ e+ Up+ Enterđể chạy editor ~/.bash_history, cả hai đều được tôi sử dụng để bảo trì tệp lịch sử Bash.

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.