Xóa nhật ký lịch sử hệ thống Linux là điều quan trọng để duy trì một máy tính khỏe mạnh. Nó cho phép tiết kiệm dung lượng ổ đĩa quý giá và bảo vệ các hoạt động kỹ thuật số của người dùng khỏi những con mắt tò mò. Bài viết hôm nay sẽ chỉ cho bạn cách xóa dữ liệu lịch sử trên shell Bash, trình quản lý file và trình soạn thảo văn bản trên Ubuntu Linux.
Xóa lịch sử lệnh trong Bash
Linux là một hệ điều hành dựa trên dòng lệnh. Từ quản lý file đến cấu hình chương trình, hầu hết mọi hành động trong Linux đều thực hiện dưới dạng lệnh terminal. Theo thời gian, các lệnh này sẽ chồng chất lên shell hệ thống Bash, có thể chiếm nhiều dung lượng ổ đĩa.
Cách dễ nhất để xóa lịch sử lệnh Bash trong Ubuntu là sử dụng UNIX pipe để chuyển hướng một chuỗi trống đến file “.bash_history”:
echo "" > ~/.bash_history
Điều đó có nghĩa là thao tác này sẽ không xóa buffer lịch sử cho phiên Bash hiện tại. Để làm điều đó, hãy chạy lệnh sau:
history -cw
Lưu ý: Bạn cần chạy lại lệnh này cho mọi shell Bash đang hoạt động trên phiên desktop hiện tại của mình.
Xác nhận rằng lịch sử Bash hiện tại của bạn bị xóa bằng cách chạy lệnh history mà không có bất kỳ đối số nào.
Vô hiệu hóa nhật ký lịch sử trong Bash
Có thể buộc Bash không lưu mọi lịch sử lệnh từ bất kỳ phiên nào trong tương lai. Điều này có thể hữu ích nếu bạn đang thiết lập một máy tính dùng chung và không muốn những người dùng khác biết các lệnh bạn đang chạy trên tài khoản của mình.
Bắt đầu bằng cách đảm bảo rằng buffer lịch sử hiện tại trong Ubuntu hoàn toàn bị xóa:
history -cw
Mở file .bashrc bằng trình soạn thảo yêu thích của bạn:
nano ~/.bashrc
Dán các dòng code sau vào cuối file .bashrc:
export HISTSIZE=0
export HISTFILESIZE=0
Lưu ý: Biến HISTSIZE xác định số lượng dòng mà Bash sẽ giữ trong một phiên hoạt động. Trong khi đó, HISTFILESIZE đặt số lượng dòng mà file nhật ký lịch sử sẽ duy trì theo thời gian.
Lưu file .bashrc, sau đó chạy lệnh sau để áp dụng cài đặt mới cho phiên shell hiện tại:
source ~/.bashrc
Kiểm tra cài đặt mới bằng cách chạy lệnh ls trên thư mục hiện tại, sau đó chạy lại lệnh history:
ls && history
Xóa các mục nhập lịch sử Bash cụ thể
Lệnh history cũng có thể xóa các mục cụ thể khỏi cache và nhật ký lịch sử của nó. Điều này có thể hữu ích nếu bạn chỉ muốn bỏ qua một số lệnh thay vì xóa toàn bộ lịch sử của shell.
Sử dụng lệnh history để tìm số chỉ mục của lệnh muốn xóa. Trường hợp ví dụ muốn xóa lệnh thứ 7 trong lịch sử shell của mình.
Lưu ý: Bạn có thể tìm kiếm lệnh cụ thể muốn xóa bằng cách chuyển lệnh history tới grep:
history | grep my-history-command
Chạy lệnh sau cùng với số chỉ mục của mục bạn muốn loại bỏ:
history -d 7
Xác nhận rằng mục nhập lịch sử đã biến mất bằng cách chạy lại lệnh history.
Xóa lịch sử file gần đây trong Nautilus
Ngoài việc xóa lịch sử các lệnh trong terminal, bạn có thể xóa lịch sử gần đây trong trình quản lý file mặc định của hệ thống. Để thực hiện việc này, hãy mở trình quản lý file từ trình khởi chạy ứng dụng của hệ thống.
Nhấp vào danh mục Recent trên thanh bên trái của trình quản lý.
Nhấn Ctrl + A để chọn tất cả các file đã mở gần đây trong Nautilus.
Nhấn Right Click, sau đó chọn Remove from Recent để xóa lịch sử hiện tại của trình quản lý file.
Mở System Menu ở góc trên bên trái của màn hình, sau đó nhấp vào biểu tượng bánh răng trên cửa sổ pop-up.
Chọn Privacy and Security dưới thanh bên trái của cửa sổ.
Thao tác này sẽ hiển thị một danh mục con mới trên bảng bên phải của cửa sổ. Nhấp vào danh mục File History & Trash.
Tắt tùy chọn chuyển đổi File History, sau đó nhấp vào nút Clear History.
Tự động xóa lịch sử file trong Nautilus
Một cách khác để xóa lịch sử file trong Ubuntu là xóa các file chứa dữ liệu cho danh mục “Recent” bằng Bash.
Bắt đầu bằng cách tạo một thư mục nhị phân cục bộ trong thư mục home của bạn:
mkdir -p ~/.local/bin/ && cd ~/.local/bin/
Tạo một script Bash mới trong thư mục mới bằng trình soạn thảo văn bản yêu thích:
nano ./user-clear-history.sh
Dán block code sau vào file script:
#!/bin/bash
rm -f ~/.recently-used.xbel
rm -f ~/.recently-used.xbel.*
rm -f ~/.local/share/recently-used.xbel
rm -f ~/.local/share/recently-used.xbel.*
Lưu file script, sau đó chạy lệnh sau để cập nhật các bit quyền của file:
chmod +x ./user-clear-history.sh
Mở trình app launcher của hệ thống, sau đó chọn Startup Applications.
Nhấp vào nút Add ở góc trên bên trái của cửa sổ.
Cung cấp tên cho script mà bạn muốn chạy. Trong trường hợp này, ví dụ sẽ dán nhãn là: "User File History Autoclear".
Nhấp vào nút Browse… bên dưới hộp văn bản Name.
Nhấn Ctrl + H trên menu chọn file, sau đó điều hướng đến thư mục "~/.local/bin/" của bạn.
Chọn script shell của bạn, sau đó nhấp vào Open để thêm vào mục khởi động mới.
Nhấp vào Add để cam kết vào phiên người dùng hiện tại của bạn.
Xóa lịch sử file cho tất cả người dùng
Một trong những nhược điểm của việc xóa lịch sử file thông qua GUI là nó chỉ xóa lịch sử file cho người dùng hiện tại. Điều này có thể là vấn đề nếu bạn đang bảo trì một máy được chia sẻ giữa nhiều người.
Để khắc phục điều này, hãy mở một phiên terminal mới rồi chạy lệnh sau để chuyển sang người dùng root:
sudo -s
Đi đến thư mục home của người dùng root, sau đó tạo một thư mục bin cục bộ bên trong thư mục đó:
cd ~ && mkdir -p ~/.local/bin/ && cd ~/.local/bin/
Tạo một file script mới bằng trình soạn thảo văn bản yêu thích của bạn:
nano ./system-clear-history.sh
Dán block code sau vào file script của bạn:
#!/bin/bash
rm -f /home/*/.recently-used.xbel
rm -f /home/*/.recently-used.xbel.*
rm -f /home/*/.local/share/recently-used.xbel
rm -f /home/*/.local/share/recently-used.xbel.*
Lưu file script mới của bạn, sau đó đặt các bit quyền của file để thực thi:
chmod +x ./system-clear-history.sh
Tạo một file service systemd mới trong “/etc/systemd/system” cho script mới của bạn:
sudo nano /etc/systemd/system/system-clear-history.service
Dán block code sau vào file service mới của bạn:
[Unit]
Description=Clear File History Before Shutdown
DefaultDependencies=no
Before=shutdown.target
[Service]
Type=oneshot
ExecStart=/root/.local/bin/system-clear-history.sh
[Install]
WantedBy=halt.target reboot.target shutdown.target
Lưu file service mới của bạn, sau đó chạy các lệnh sau để load file đó vào daemon systemd của bạn:
sudo systemctl daemon-reload
sudo systemctl enable --now system-clear-history.service
Xác nhận rằng service đang chạy đúng cách bằng cách xem trạng thái hiện tại của service:
systemctl status system-clear-history.service