Hướng dẫn này sẽ chỉ cho bạn cách sử dụng lệnh history để xem lại toàn bộ các lệnh bạn đã thực thi trên máy tính Linux.
Nếu bạn sử dụng hoặc quản trị máy chủ Linux, việc xem lại lịch sử lệnh đã chạy thường rất hữu ích – đặc biệt khi gỡ lỗi (debug) sự cố. Tôi thường dùng lệnh history cho mục đích này.
# history
...
946 rpm -R mutt-1.4.1-11.rhel4.i386.rpm
947 rpm -qR mutt-1.4.1-11.rhel4.i386.rpm
948 sudp rpm -qa | mail
949 sudo rpm -qa | mail
950 sudo rpm -qa | grep mail
951 rpm -qR sendmail-8.13.1-3.2.el4
952 cd scripts/log_parse/
...
Lệnh này đưa ra danh sách đơn giản các lệnh đã chạy bởi người dùng hiện tại. Tuy nhiên, đôi khi bạn cần nhiều thông tin hơn – ví dụ: lệnh nào chạy vào lúc mấy giờ. Để hiển thị ngày giờ, hãy thiết lập biến môi trường HISTTIMEFORMAT:
# export HISTTIMEFORMAT="%F %T "
Chạy lại history và quan sát sự khác biệt:
# history
...
946 2009-07-20 08:12:33 rpm -R mutt-1.4.1-11.rhel4.i386.rpm
947 2009-07-20 08:09:33 rpm -qR mutt-1.4.1-11.rhel4.i386.rpm
948 2009-07-20 09:49:44 sudp rpm -qa | mail
949 2009-07-20 10:37:33 sudo rpm -qa | mail
950 2009-07-20 10:17:13 sudo rpm -qa | grep mail
951 2009-07-20 10:12:23 rpm -qR sendmail-8.13.1-3.2.el4
952 2009-07-20 10:22:43 cd scripts/log_parse/
...
Làm cho thay đổi vĩnh viễn
Để cấu hình này áp dụng cho mọi phiên làm việc sau này, hãy thêm dòng sau vào tệp ~/.bashrc của người dùng:
export HISTTIMEFORMAT="%F %T "
Sau đó nạp lại cấu hình:
source ~/.bashrc
Các tùy chọn định dạng thời gian phổ biến
| Mã định dạng | Ý nghĩa | Ví dụ |
|---|---|---|
%F | Ngày (YYYY-MM-DD) | 2024-12-15 |
%T | Giờ (HH:MM:SS) | 14:30:45 |
%d/%m/%Y %H:%M:%S | Ngày/tháng/năm giờ:phút:giây | 15/12/2024 14:30:45 |
Mẹo bổ sung
- Tăng kích thước lịch sử: Thêm
HISTSIZE=10000vàHISTFILESIZE=20000vào.bashrcđể lưu nhiều lệnh hơn. - Loại bỏ lệnh trùng lặp: Thêm
export HISTCONTROL=ignoredups:erasedups. - Ghi lịch sử ngay lập tức: Thêm
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"để đồng bộ giữa các terminal. - Tìm kiếm nhanh: Nhấn Ctrl+R để tìm kiếm ngược (reverse search) trong lịch sử.