Trong bài viết này, Cloud365 sẽ giúp các bạn tìm hiểu làm thế nào bạn có thể sử dụng lệnh history vào quản trị hệ thống một cách hiệu quả.

Trong Bash, lệnh history sử dụng để hiển thị lịch sử câu lệnh đã thực thi tại user hiện hành. Cho phép nhanh chóng xem những gì đã được thực hiện trước đây trên hệ thống.

Làm việc với câu lệnh history.

# history

Dùng để hiện thị các lịch sử lệnh. Cột 1 hiển thị số thứ tự của lệnh. Cột 2 hiển thị câu lệnh đã được thực thi.

Kiểm tra câu lệnh bằng cách xem lịch sử bằng file

Vị trí tệp lịch sử ~/.bash_history

Theo mặc định, lịch sử bash được ghi vào ~/.bash_history, điều này được đặt trong biến $HISTFILE, để kiểm tra:

# Vị trị tệp lịch sử của User root

[root@server1 ~]# echo $HISTFILE
/root/.bash_history

# Vị trị tệp lịch sử của User duonghuy

[root@server1 ~]# su – duonghuy
[duonghuy@server1 ~]$ echo $HISTFILE
/home/duonghuy/.bash_history

Mặc định file sẽ nằm tại /user/.bash_history và Bạn cũng có thể tùy chỉnh như sau.

export HISTFILE=~/.custom_file

  • ~/.custom_file là địa chỉ và tên file mới muốn tùy chỉnh cho file bash_history mới

Tìm kiếm câu lệnh đã sử dụng trong quá khứ

# history | grep [command]

Ví dụ : Muốn tìm kiếm câu lệnh hostnameclt trong quá khứ đã sử dụng:

Lặp lại câu lệnh gần nhất

Lệnh gần nhất có thể thực thi đơn giản bằng cách nhập !!

Ngoài ra, Bạn có thể nhấn mũi tên đi lên để hiển thị lệnh cuối cùng sau đó nhấn Enter để thực hiện nó.

Lặp lại lệnh cụ thể

Command:
![n]

Như ví dụ này , mình chạy câu lệnh số 168.

Ghi vào tệp tin lịch sử

Thông thường tệp lệnh sử được ghi vào khi đã đăng xuất, do đó nếu bạn có phiên SSH đã hết thời gian, bạn sẽ không có lịch sử của mình từ phiên đó khi bạn đăng nhập lại. Bạn có thể buộc lịch sử hiện tại ghi vào tệp tin lịch sử người dùng ~/. bash_history với từ chọn -w

# history -w

Xóa tệp tin lịch sử.

# history -c

Dòng lệnh sẽ xóa toàn bộ lịch sử bộ nhớ, những thay đổi sẽ được ghi khi người dùng đăng xuất tuy nhiên bạn có thể lưu các thay đổi vào tệp .bash_history khi chạy lệnh history -w .

Xoá toàn bộ tệp lịch sử có thể là quá mức cần thiết, thay vào đó bạn có thể xóa một số dòng cụ thể,

# history -d [n_cmd]

Sử dụng lệnh để xóa lệnh số 265 và 268.
Sau khi xóa dòng lệnh thì thứ tự của dòng lệnh bị thay đổi

Thay đổi format của output history

$ HISTTIMEFORMAT="%d/%m/%y %T "

Option:

  • %d – Ngày
  • %m – Tháng
  • %y – Năm
  • %T – Thời gian
  • / : có thể thay đổi bằng ký tự khác, hoặc dấu cách tùy thuộc vào hiện thị của người sử dụng.

Bỏ qua các lệnh cụ thể

Bạn có thể chỉ dịnh một hoặc nhiều lệnh không bao giờ được ghi vào tệp lịch sử với biến $HISTIGNORE.

# export HISTIGNORE="cd"

Với câu lệnh trên lệnh history sẽ không lưu lại lịch sự với câu lệnh cd.

Với nhiều câu lệnh cd lặp lại nhiều lần nhưng với biến $HISTIGNORE thì lệnh sẽ bỏ qua không lưu.

Tăng giảm kích thước lưu trữ history

Mặc định thì lưu trữ được 1000 câu lệnh để tăng khả năng lưu trữ ta làm như sau:

[duonghuy@server1 ~]$ echo $HISTSIZE
1000
[duonghuy@server1 ~]$ HISTSIZE=10000
[duonghuy@server1 ~]$ echo $HISTSIZE
10000

Để tăng khả năng lưu trữ tới 10000 câu lệnh.

Kết luận

Trên đây là một số thao tác  với câu lệnh history trên Linux. Cloud365 chúc các bạn thực hiện thành công.

Tham khảo: https://www.rootusers.com/17-bash-history-command-examples-in-linux/