Cách quản lý lịch sử lệnh trên Linux
Trên Linux, mọi lệnh bạn nhập sẽ được lưu trong tệp lịch sử. Lệnh lịch sử cho phép bạn xem và sử dụng lại các lệnh đó mà không cần phải nhập lại chúng. Bạn có thể điều hướng qua danh sách lịch sử bằng cách sử dụng Hướng lên Và Xuống phím. Tuy nhiên, có thể đôi khi bạn muốn xóa một số lệnh khỏi lịch sử hoặc tắt vĩnh viễn tính năng lưu lịch sử.
May mắn thay, Linux cho phép bạn kiểm soát các tính năng ghi nhật ký lệnh, chẳng hạn như vô hiệu hóa tạm thời hoặc vĩnh viễn, xóa toàn bộ lịch sử hoặc ngăn một số lệnh nhất định được lưu trong danh sách lịch sử. Hãy xem làm thế nào.
Mục Lục
Xóa toàn bộ lịch sử lệnh trên Linux
Để xóa toàn bộ lịch sử lệnh trên Linux từ đầu, hãy sử dụng lệnh history với -c lựa chọn:
history -c
Thao tác này sẽ xóa toàn bộ lịch sử của các lệnh bạn đã chạy trước đó.
Xóa các lệnh cụ thể khỏi lịch sử
Đôi khi thay vì xóa toàn bộ lịch sử, bạn có thể muốn xóa các lệnh cụ thể. Trong trường hợp này, bạn cần xác định số được liên kết với lệnh cụ thể đó trong danh sách lịch sử. Bạn có thể làm điều này bằng cách gõ đơn giản:
history
Hoặc bạn cũng có thể chuyển đầu ra lịch sử sang grep để tìm thông tin mong muốn dễ dàng hơn:
history | grep ifconfig
Khi bạn đã tìm thấy số lệnh, bạn có thể xóa nó bằng lệnh lịch sử với -d tùy chọn theo sau là số lệnh:
history -d <command_number>
Thực hiện một lệnh mà không bao gồm nó trong lịch sử
Để thực hiện một lệnh mà nó không được ghi lại trong lịch sử, chỉ cần thêm một Không gian trước lệnh. Tuy nhiên, để tính năng này hoạt động, bạn sẽ cần đặt KIỂM SOÁT LỊCH SỬ biến môi trường thành bỏ qua không gian sử dụng lệnh sau:
export HISTCONTROL=ignorespace
Thay đổi này không tồn tại sau khi khởi động lại. Để làm cho nó vĩnh viễn, hãy thêm nó vào của bạn .bashrc tệp bằng lệnh sau:
echo 'HISTCONTROL=ignorespace' >> ~/.bashrc
Bằng cách bật tính năng này, Bash sẽ không ghi lại các lệnh bắt đầu bằng ký tự khoảng trắng trong tệp lịch sử.
Chẳng hạn, lệnh sau sẽ không được trình bao ghi lại:
[space] echo 'hello, this is the first line'
Nếu bạn chạy cùng một lệnh mà không có dấu cách, Bash sẽ ghi nó vào lịch sử:
echo 'hello, this is the first line'
Tương tự, bạn cũng có thể để Bash xóa các lệnh trùng lặp liên tiếp khỏi lịch sử bằng:
echo 'HISTCONTROL=ignoredups' >> ~/.bashrc
Tính năng này sẽ lưu trữ các bản sao liên tiếp chỉ một lần trong danh sách lịch sử.
Cách bật/tắt lịch sử lệnh trên Linux
Mặc dù phương pháp trước đó có thể ngăn trình bao ghi lại các lệnh trong lịch sử, nhưng nó có thể không thực tế khi xử lý một số lượng lớn các lệnh.
Chèn khoảng trắng trước mỗi lệnh có thể trở nên đơn điệu và nặng nề. Trong trường hợp như vậy, bạn có thể tạm thời tắt lịch sử trình bao bằng cách thực hiện lệnh sau:
set +o history
Để bật lại, hãy sử dụng lệnh sau:
set -o history
Để tắt vĩnh viễn lịch sử lệnh Linux, hãy sử dụng:
echo 'set +o history' >> ~/.bashrc
Bỏ qua một số lệnh nhất định được ghi lại trong lịch sử
Có thể có một số lệnh nhất định mà bạn muốn loại trừ vì chúng có thể làm lộn xộn danh sách lịch sử và gây khó khăn cho việc điều hướng. Một số ví dụ phổ biến là lệnh pwd, ls, man, cat và cd vì nó có thể lặp đi lặp lại và thừa.
Sử dụng LỊCH SỬ biến môi trường, bạn có thể kiểm soát những lệnh nào không được thêm vào danh sách lịch sử. Chẳng hạn, để loại trừ một số lệnh như history, pwd và cat khỏi lưu trong danh sách lịch sử, hãy tách chúng bằng dấu hai chấm và đặt chúng trong dấu ngoặc kép như sau:
export HISTIGNORE="history:pwd:cat"
Để thực hiện thay đổi vĩnh viễn, hãy thêm lệnh vào .bashrc tập tin sử dụng:
echo 'HISTIGNORE="history:pwd:cat"' >> .bashrc
Kiểm soát lịch sử lệnh Bash của bạn trên Linux
Linux cung cấp khả năng kiểm soát rộng rãi đối với việc quản lý lịch sử dòng lệnh, cho phép người dùng chỉ định lệnh nào sẽ lưu trong lịch sử, xóa các lệnh cụ thể khỏi lịch sử, bật hoặc tắt lịch sử tạm thời hoặc thậm chí xóa toàn bộ lịch sử.
Điều này không chỉ giúp bảo vệ quyền riêng tư của người dùng mà còn ngăn các lệnh không liên quan hoặc lặp đi lặp lại làm lộn xộn lịch sử Bash.
Một cách thậm chí còn tốt hơn để truy cập lịch sử dòng lệnh là sử dụng McFly, một sự thay thế dựa trên mạng thần kinh cho công cụ tìm kiếm ngược mặc định trên Linux.