Giao diện dòng lệnh (CLI) là công cụ rất quen thuộc và quan trọng đối với lập trình viên và quản trị hệ thống. Dù bạn đang viết các đoạn code tự động (script), cấu hình máy chủ hay tự động hóa các tác vụ, nắm vững các lệnh Linux có thể giúp tiết kiệm rất nhiều thời gian.
Với nhiều người, Linux có thể hơi khó sử dụng, nhưng khi bạn hiểu rõ sức mạnh của giao diện dòng lệnh, bạn sẽ thấy nó là “người bạn đồng hành” tuyệt vời. Từ việc di chuyển trong thư mục, chỉnh sửa tệp, cho đến việc debug, các lệnh Linux đơn giản nhưng mạnh mẽ này sẽ giúp bạn làm việc hiệu quả hơn rất nhiều.
Trong bài viết này, VietnamWorks inTECH sẽ chia sẻ 5 mẹo dùng dòng lệnh giúp các bạn làm việc dễ dàng hơn. Đây không chỉ là những mẹo hay mà còn là các công cụ tiết kiệm thời gian, giúp bạn làm việc với terminal hiệu quả hơn.
1. Tạo nhiều tổ hợp thư mục với mkdir và dấu ngoặc nhọn {}
Việc tổ chức tệp và thư mục là một nhiệm vụ quen thuộc đối với các lập trình viên, đặc biệt là khi quản lý các dự án hoặc thiết lập các cấu trúc thư mục phức tạp. Thông thường, việc tạo nhiều thư mục đòi hỏi phải gõ lặp đi lặp lại khá nhiều. Tuy nhiên, có một thủ thuật hữu ích với mkdir cho phép bạn tạo nhiều thư mục chỉ trong một lệnh nhờ vào dấu ngoặc nhọn {}.
Giả sử bạn muốn tạo một cấu trúc thư mục cho các môi trường khác nhau (phát triển, kiểm thử và sản xuất) của một số dịch vụ trong dự án của mình. Theo cách truyền thống, bạn sẽ phải tạo từng thư mục thủ công, chúng sẽ giống như sau:
mkdir dev
mkdir test
mkdir prod
Điều này trở nên rắc rối khi cấu trúc của bạn phức tạp hơn. Chẳng hạn, nếu bạn cần tạo thư mục cho cả dịch vụ backend và frontend trong cả ba môi trường, quá trình này sẽ rất tốn công sức.
Giải pháp
Thay vì tạo từng thư mục một, bạn có thể kết hợp tất cả vào một lệnh duy nhất bằng cách sử dụng mkdir
và dấu ngoặc nhọn {}. Cách này cho phép bạn tạo các tổ hợp thư mục một cách hiệu quả.
Ví dụ:
mkdir -p {dev,test,prod}/{backend,frontend}
Giải thích từng phần của lệnh:
-
Tham số
-p
yêu cầumkdir
-
Dấu ngoặc nhọn {} cho phép bạn liệt kê nhiều tùy chọn để
mkdir
-
Tập đầu tiên
{dev,test,prod}
-
Tập thứ hai
{backend,frontend}
tạo các thư mục cho các dịch vụ khác nhau.
Kết Quả Khi Chạy Lệnh
Khi lệnh này chạy, cấu trúc thư mục sau sẽ được tạo ra:
dev/
backend/
frontend/
test/
backend/
frontend/
prod/
backend/
frontend/
Phương pháp này giúp tiết kiệm đáng kể thời gian và giảm thiểu sai sót, đặc biệt khi bạn cần thiết lập các dự án lớn với cấu trúc thư mục phức tạp. Thay vì phải gõ từng tổ hợp thư mục một cách thủ công, bạn có thể định nghĩa tất cả trong một lệnh ngắn gọn.
2. Quay lại thư mục trước với cd - Thay vì sử dụng cd .. nhiều lần
Khi lập trình, bạn thường xuyên làm việc trong các thư mục lồng nhau sâu. Ví dụ, bạn có thể di chuyển từ thư mục gốc của dự án vào các thư mục con chứa mã nguồn, tệp cấu hình, hoặc nhật ký. Nhưng khi muốn quay lại thư mục ban đầu, việc gõ lệnh cd .. nhiều lần có thể rất phiền phức và dễ nhầm lẫn.
Vấn Đề
Hãy tưởng tượng bạn đang làm việc trong một thư mục lồng nhau như thế này:
/home/user/projects/webapp/src/frontend/components
Để quay lại thư mục gốc của dự án, bạn thường phải gõ lệnh cd .. nhiều lần, như sau:
cd ..
cd ..
cd ..
cd ..
Để quay lại thư mục
/home/user/projects/
, bạn sẽ phải gõ lệnh cd ..
bốn lần liên tiếp. Điều này không chỉ tốn thời gian mà còn dễ khiến bạn quên mất vị trí ban đầu.
Giải Pháp: Sử Dụng cd -
Có một cách đơn giản và nhanh hơn: dùng lệnh
cd -
để quay lại thư mục trước đó ngay lập tức, bất kể bạn đã đi sâu vào cấu trúc thư mục đến mức nào.
Cách Hoạt Động
Lệnh cd -
không di chuyển lên trên từng cấp thư mục như cd ..
.
Thay vào đó, nó đưa bạn trở lại thư mục gần nhất mà bạn vừa ở, giống như nút "quay lại" trong trình duyệt web.
Ví dụ, giả sử bạn bắt đầu ở thư mục gốc của dự án /home/user/projects/webapp/
, sau đó di chuyển vào thư mục lồng nhau /home/user/projects/webapp/src/frontend/components
. Thay vì phải gõ cd ..
nhiều lần để quay lại, bạn chỉ cần gõ:
cd -
Và bạn sẽ ngay lập tức quay lại thư mục /home/user/projects/webapp/
.
Cơ Chế Hoạt Động
Lệnh
cd -
lưu trữ thư mục trước đó trong bộ nhớ, vì vậy khi bạn sử dụng nó, lệnh sẽ hoán đổi thư mục hiện tại với thư mục trước. Đây là cách rất hiệu quả để di chuyển qua lại giữa hai thư mục, đặc biệt hữu ích khi bạn cần nhảy từ một thư mục làm việc đến một thư mục lồng nhau sâu.
Thủ thuật này còn hỗ trợ khi bạn đang gỡ lỗi hoặc làm việc ở nhiều phần khác nhau của dự án. Nếu bạn cần thường xuyên chuyển đổi giữa thư mục gốc của dự án và một thư mục con sâu, cd -
giúp bạn tiết kiệm thời gian khỏi phải gõ các đường dẫn dài hoặc di chuyển từng cấp một.
3. Tạo nhiều tệp nhanh chóng với touch
và Một dãy số
Việc tạo nhiều tệp là một tác vụ phổ biến đối với lập trình viên, dù bạn đang tạo tệp kiểm thử, placeholders, hay logs. Thông thường, bạn có thể tạo từng tệp một, nhưng nếu số lượng tệp lớn thì làm thủ công sẽ rất phiền phức. May mắn thay, Linux cung cấp cách để tạo nhiều tệp chỉ với một lệnh bằng cách sử dụng touch và một dãy số trong dấu ngoặc nhọn {}.
Vấn Đề
Hãy tưởng tượng bạn cần tạo 100 tệp đánh số cho các trường hợp kiểm thử, như test1.txt, test2.txt
, cho đến test100.txt
. Nếu làm thủ công bằng lệnh touch cho từng tệp thì sẽ trông giống như sau:
touch test1.txt
touch test2.txt
touch test3.txt
...
touch test100.txt
Như bạn có thể thấy, cách làm này rất tốn công và mất thời gian. Nhưng có một cách tốt hơn!
Giải Pháp: Dùng touch với Dãy Số và Dấu Ngoặc Nhọn {}
Bạn có thể sử dụng lệnh touch với một dãy số trong dấu ngoặc nhọn {} để tạo nhiều tệp cùng lúc một cách nhanh chóng. Cách làm như sau:
touch test{1..100}.txt
- Lệnh
touch
touch filename.txt
. - Bằng cách thêm một dãy số trong dấu ngoặc nhọn {1..100}, bạn báo cho shell tạo các tệp được đánh số từ 1 đến 100.
- Kết quả là tạo ra
test1.txt, test2.txt, test3.txt
, và tiếp tục đếntest100.txt
—
chỉ với một lệnh duy nhất.
Ví Dụ
Hãy phân tích chi tiết. Khi chạy lệnh:
touch test{1..10}.txt
Tạo các tập tin sau trong thư mục của bạn:
test1.txt
test2.txt
test3.txt
...
test10.txt
Bạn có thể sử dụng thủ thuật này để nhanh chóng tạo các tệp nhật ký khi kiểm thử một ứng dụng xử lý số lượng lớn tệp. Thay vì tạo từng tệp bằng tay, bạn có thể tạo tất cả chỉ với một lệnh duy nhất và tập trung thời gian vào việc viết và kiểm thử mã.
4. Cập Nhật Tệp Thực Thời với tail -f
Là một lập trình viên, đặc biệt khi làm việc với các hệ thống backend, bạn thường cần theo dõi các tệp log để phát hiện lỗi, theo dõi hành vi của hệ thống hoặc debug. Trong những trường hợp này, việc kiểm tra thủ công một tệp log liên tục có thể không hiệu quả. May mắn thay, lệnh tail có một tùy chọn cho phép tự động theo dõi các cập nhật theo thời gian thực, giúp bạn giám sát sự thay đổi khi chúng xảy ra.
Vấn Đề
Giả sử bạn đang làm việc trên một ứng dụng và bạn cần theo dõi tệp log error_file.log
để ghi lại bất kỳ lỗi mới nào được ghi. Thông thường, bạn có thể sử dụng lệnh tail để đọc vài dòng cuối cùng của tệp như sau:
tail error_file.log
Khi bạn làm như vậy, bạn chỉ có thể xem được trạng thái hiện tại của tệp, nhưng nó không tự động cập nhật theo thời gian thực. Nếu tệp có thay đổi, bạn sẽ phải chạy lại lệnh để xem các dòng mới. Điều này sẽ gây ra sự bất tiện, đặc biệt khi bạn cần debug cho các hệ thống đang hoạt động hoặc theo dõi log cho các sự kiện diễn ra ngay lúc đó.
Giải Pháp: Dùng tail -f
để cập nhật theo thời gian thực
Bằng cách sử dụng lệnh tail -f
, bạn có thể theo dõi các thay đổi trong tệp log ngay khi chúng xảy ra. Điều này cho phép bạn nhìn thấy các dòng mới được thêm vào tệp mà không cần phải chạy lại lệnh.
tail -f error_file.log
-
Lệnh tail thông thường sẽ hiển thị 10 dòng cuối của một tệp.
-
Tùy chọn
-f
là viết tắt của "follow" (theo dõi), giúp giữ cửa sổ terminal mở và liên tục hiển thị các dòng mới được thêm vào tệp. -
Điều này đặc biệt hữu ích khi bạn theo dõi các tệp nhật ký trong lúc ứng dụng đang chạy, vì bạn có thể thấy thông báo lỗi hoặc kết quả đầu ra ngay lập tức.
Ví Dụ
Giả sử bạn đang theo dõi tệp nhật ký của một máy chủ web để xem các yêu cầu đến và các lỗi:
tail -f /var/log/nginx/access.log
Khi có các yêu cầu mới, chúng sẽ được hiển thị trực tiếp trên terminal của bạn. Bạn không cần phải làm mới hay chạy lại lệnh — nó sẽ tự động theo dõi và cập nhật liên tục.
Một trong những ứng dụng hữu ích nhất của tail -f là khi debug: Hãy tưởng tượng bạn đang tìm nguyên nhân của một lỗi không liên tục trong ứng dụng của mình. Bằng cách theo dõi tệp log của ứng dụng theo thời gian thực, bạn có thể thấy ngay các thông báo lỗi mới khi chúng xuất hiện và kịp thời xử lý.
Ví dụ, bạn có thể chạy lệnh như sau:
tail -f /var/log/app/error.log
Nếu ứng dụng của bạn gặp sự cố, bạn sẽ thấy thông báo lỗi xuất hiện ngay lập tức, cho phép bạn khắc phục mà không cần chờ đợi.
Mẹo Bổ Sung: Kết Hợp với grep
Nếu bạn muốn theo dõi tệp log theo thời gian thực nhưng chỉ quan tâm đến các mục nhất định, bạn có thể kết hợp tail -f
với grep
. Ví dụ:
tail -f error_file.log | grep "ERROR"
Lệnh này sẽ chỉ hiển thị các dòng chứa từ “ERROR
,” giúp bạn lọc các thông tin quan trọng trong output của log.
5. Xem Lại Các Lệnh Gần Đây với history 5
Khi làm việc, chúng ta thường phải lặp lại một số lệnh — chẳng hạn như biên dịch mã, quản lý tệp hoặc khởi động lại dịch vụ. Nhớ lại cú pháp chính xác của một lệnh đã dùng hoặc xem lại các bước trước đó có thể khá khó khăn, nhất là khi đã làm việc trên terminal trong nhiều giờ liền.
May mắn là Linux lưu lại mọi lệnh bạn đã thực hiện trong mỗi phiên làm việc. Lệnh history cho phép bạn xem danh sách các lệnh trước đó, và sử dụng nó hiệu quả sẽ giúp bạn tiết kiệm nhiều thời gian và công sức.
Vấn Đề
Giả sử bạn đã làm việc một lúc và đã chạy một lệnh grep
hoặc find
phức tạp mà giờ đây cần sử dụng lại. Bạn không nhớ rõ cú pháp chính xác, và việc cuộn lại terminal để tìm nó có thể rất mất thời gian.
Giải Pháp: Sử Dụng history 5
Để Nhớ Lại Các Lệnh Gần Đây
Lệnh history
hiển thị danh sách các lệnh đã chạy trong phiên shell
hiện tại của bạn. Theo mặc định, nó sẽ hiển thị toàn bộ lịch sử lệnh, nhưng bạn có thể giới hạn số lượng lệnh bằng cách thêm một con số.
Ví dụ:
history 5
Điều này sẽ hiển thị 5 lệnh cuối cùng mà bạn đã thực hiện, giúp bạn dễ dàng nhớ và chạy lại nhanh chóng.
Giả sử 5 lệnh cuối bạn đã chạy là:
123
ls
124 cd src/
125 mkdir newdir
126 touch newfile.txt
127 history 5
Kết quả sẽ hiển thị như sau:
123
ls
124 cd src/
125 mkdir newdir
126 touch newfile.txt
127 history 5
Mẹo bổ sung: Thực thi lại lệnh
Bạn có thể nhanh chóng thực thi lại bất kỳ lệnh nào từ lịch sử bằng cách sử dụng dấu chấm than (!) theo sau là số thứ tự của lệnh. Ví dụ, nếu bạn muốn chạy lại lệnh mkdir newdir
ở trên (số lệnh là 125), bạn chỉ cần gõ:
!125
Lệnh này sẽ ngay lập tức thực hiện lại lệnh mkdir newdir
mà bạn đã chạy trước đó, giúp tiết kiệm thời gian mà không cần phải gõ lại toàn bộ lệnh.
Kết luận
Việc thành thạo giao diện dòng lệnh Linux là điều cần thiết cho các nhà phát triển, và những mẹo mà chúng ta đã đề cập ở đây sẽ là công cụ mạnh mẽ góp phần nâng cao kỹ năng của bạn. Từ việc quản lý tệp và thư mục một cách hiệu quả đến điều hướng thư mục và gọi lại các lệnh đã sử dụng, năm mẹo này có thể giúp tối ưu hóa quy trình làm việc và tăng năng suất:
-
mkdir
{}
để tạo nhiều thư mục trong một lệnh duy nhất. -
cd -
để nhanh chóng quay lại thư mục trước đó. -
touch
-
tail -f
để theo dõi tệp log trong thời gian thực. -
history 5
để gọi lại và thực thi lại các lệnh gần đây.
Đây chỉ là một vài ví dụ về sức mạnh của các lệnh Linux. Bằng cách áp dụng những mẹo này vào quy trình làm việc hàng ngày, bạn có thể dành nhiều thời gian hơn cho việc viết code thay vì những thao tác lặp lại, giúp bạn trở thành một lập trình viên năng suất hơn.
TẠO TÀI KHOẢN MỚI: XEM FULL “1 TÁCH CODEFEE” - NHẬN SLOT TƯ VẤN CV TỪ CHUYÊN GIA - CƠ HỘI RINH VỀ VOUCHER 200K