Cách truy cập lịch sử lệnh (command history) trên Linux | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Cách truy cập lịch sử lệnh (command history) trên Linux

Chia sẻ kiến thức 24/02/2022

Tìm hiểu cách tiết kiệm thời gian và tránh tìm kiếm thủ công các lệnh phức tạp bằng cách sử dụng lịch sử lệnh (command history) của shell của bạn.

 

Với một bộ tính năng lớn và hoàn thiện, thật dễ hiểu tại sao Bash là shell mặc định trên nhiều bản phân phối Linux. Tuy nhiên, với những người dùng thành thạo, Bash phải đối mặt với sự cạnh tranh từ các lựa chọn thay thế như Zsh.

Một tính năng đặc biệt hữu ích của cả Bash và Zsh là cơ chế lịch sử của chúng, giúp dễ dàng nhớ lại các lệnh bạn đã nhập trước đây. Tìm hiểu cách tiết kiệm thời gian và tránh tìm kiếm thủ công các lệnh phức tạp bằng cách sử dụng lịch sử lệnh của shell của bạn.

1. Lịch sử Shell là gì?

Lịch sử Shell là danh sách các lệnh bạn đã đưa ra trên dòng lệnh (command line). Bash lưu trữ lịch sử này trong một tệp có tên .bash_history trong thư mục chính (home directory). Trong Zsh, nó được gọi là .zsh_history. Bạn có thể sử dụng lệnh history để hiển thị nội dung hiện tại của lịch sử:

Danh sách lịch sử bash

Bạn có thể thay đổi vị trí của tệp này bằng cách đặt biến môi trường (environment variable) HISTFILE .

Bạn có thể đặt số mục lịch sử tối đa bằng biến môi trường HISTFILESIZE :

HISTFILESIZE=1000

Điều này đặt kích thước file lịch sử thành 1.000.

Lịch sử shell rất hữu ích khi bạn muốn lặp lại lệnh bạn đã nhập trước đó hoặc thay đổi lệnh đó mà không cần phải nhập lại hoàn toàn một dòng. Lệnh !! sẽ lặp lại lệnh đã gõ trước đó. Nếu bạn muốn thay đổi điều gì đó trong lệnh đã đặt tên trước đó, hãy nhập ^old^new. Ở đây, “old” là phần của dòng lệnh bạn muốn thay thế và “new” là phần thay thế của nó.

Nếu bạn muốn liệt kê thư mục /bin sau khi liệt kê / với ls/ , đây là cách bạn thay đổi lệnh:

^/^/bin

Điều này sẽ giống như khi bạn nhập ls /bin .

2. Chỉnh sửa dòng lệnh

Bash tìm kiếm ngược

Bash và Zsh đều hỗ trợ chỉnh sửa dòng lệnh. Đây là một phương pháp linh hoạt hơn để truy cập lịch sử lệnh của bạn hơn là mở rộng lịch sử. Theo mặc định, các lệnh chính giống như các lệnh được sử dụng bởi trình soạn thảo Emacs. Bạn có thể đảo chúng lại để hoạt động giống Vim hơn, nếu muốn. Tuy nhiên, lưu ý rằng các phím tắt vim khó sử dụng hơn để chỉnh sửa dòng lệnh, dù Vim là một trình soạn thảo văn bản thông thường rất tốt. 

Khi bạn muốn gọi lại một lệnh, chỉ cần nhấn vào mũi tên lên trên bàn phím. Bạn có thể nhấn lên để di chuyển qua tất cả các lệnh trước đó của mình, trong khi mũi tên xuống cho phép bạn di chuyển đến các lệnh gần đây hơn. Bạn cũng có thể sử dụng Ctrl + P và Ctrl + N để kéo lên và xuống trong lịch sử của mình.

Để tìm kiếm ngược, nhấn CTRL + R , sau đó bắt đầu nhập để tìm kiếm lịch sử cho đến khi bạn thấy lệnh bạn muốn chỉnh sửa. Nhấn Ctrl + S để tìm kiếm tiếp.

Để thay đổi dòng lệnh, bạn có thể di chuyển qua lại trên dòng bằng các phím mũi tên phải và trái. Alt + F sẽ di chuyển về phía trước một từ và Alt + B sẽ di chuyển về phía sau. Để đi đến đầu dòng, nhấn Ctrl + A. Để đến cuối, nhấn Ctrl + E. Để xóa hoàn toàn một dòng, hãy nhấn Ctrl + K.

3. Bây giờ bạn có thể truy cập lịch sử Shell

Với một vài phương pháp đơn giản, bạn có thể tìm lịch sử Shell của mình và thay đổi lệnh mà không cần gõ lại toàn bộ dòng. Cả Bash và Zsh đều có khả năng chỉnh sửa dòng lệnh rất dễ dàng. 

>>> Nếu bạn đang có nhu cầu học lập trình trực tuyến, tìm hiểu ngay tại đây:

>>> Xem thêm bài viết:

Đại học trực tuyến? Tại sao nên chọn học đại học trực tuyến thay vì đại học offline?

5 điều có thể bạn chưa biết về học lập trình trực tuyến FUNiX

Review khóa học trực tuyến FUNiX FPT đang được nhiều bạn trẻ lựa chọn

FUNiX đào tạo lập trình trực tuyến cung cấp nhân sự tập đoàn FPT

5 Điểm đáng chú ý tại khóa học lập trình trực tuyến FPT – FUNiX

 

Dịch từ: https://www.makeuseof.com/bash-command-history/

Vân Nguyễn

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại