Liên hệProfile
Danh mục

Mục Lục

    Cách dùng Cloc Linux đếm số dòng mã nguồn nhanh chóng, chi tiết

    Nguyễn Hưng

    Ngày đăng:

    13/01/2026

    Cập nhật lần cuối:

    13/01/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    13/01/2026

    Cập nhật lần cuối:

    13/01/2026

    Mục lục

    Cloc Linux là một công cụ dòng lệnh phổ biến trên hệ điều hành Linux, dùng để đếm số dòng mã nguồn, giúp bạn thống kê chi tiết số dòng mã thực, dòng chú thích và dòng trống trong các file lập trình thuộc nhiều ngôn ngữ khác nhau. Trong bài viết này, mình sẽ cùng bạn tìm hiểu sâu hơn về Cloc, từ khái niệm, cách cài đặt cho đến các phương pháp sử dụng từ cơ bản đến nâng cao, giúp bạn khai thác tối đa tiện ích của công cụ này.

    Những điểm chính

    • Định nghĩa Cloc Linux: Hiểu rõ khái niệm, mục đích và khả năng phân biệt giữa dòng code thực, dòng chú thích và dòng trống của công cụ Cloc.
    • Vai trò của Cloc: Nắm được lý do tại sao Cloc là công cụ thiết yếu trong phát triển phần mềm, giúp thống kê, báo cáo và đánh giá quy mô dự án.
    • Cài đặt Cloc: Biết các lệnh cài đặt Cloc nhanh chóng và đáng tin cậy trên hầu hết các bản phân phối Linux và hệ điều hành phổ biến khác.
    • Cách sử dụng Cloc: Nắm được cú pháp tổng quát để áp dụng Cloc vào việc phân tích mã nguồn một cách linh hoạt.
    • Danh sách tùy chọn nâng cao: Có được bảng tra cứu các tùy chọn quan trọng, giúp bạn tùy chỉnh báo cáo.
    • Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các vấn đề thực tế như cách loại trừ thư viện, so sánh code giữa các commit Git và lưu báo cáo.

    Cloc Linux là gì?

    Cloc (Count Lines of Code) là một công cụ dòng lệnh được sử dụng để đếm số dòng mã nguồn, dòng chú thích và dòng trống trong các file lập trình được viết bằng nhiều ngôn ngữ khác nhau. Công cụ này được viết hoàn toàn bằng Perl và không yêu cầu phụ thuộc bên ngoài, có thể chạy trên nhiều hệ điều hành như Linux, macOS, Windows, OpenBSD và nhiều hệ thống khác. Điểm đặc biệt của Cloc là khả năng phân biệt rõ ràng giữa:

    • Dòng trống (blank lines): Các dòng không chứa bất kỳ ký tự nào.
    • Dòng bình luận (comment lines): Các dòng chú thích, giải thích code mà trình biên dịch sẽ bỏ qua.
    • Dòng mã nguồn thực tế (actual code lines): Những dòng lệnh thực thi, là phần cốt lõi của logic chương trình.

    Công cụ này có khả năng nhận diện hàng trăm ngôn ngữ lập trình khác nhau, giúp tạo ra một báo cáo chính xác về thành phần của dự án.

    cloc được dùng để đếm số dòng mã nguồn, dòng chú thích và dòng trống trong các file lập trình.
    Cloc được dùng để đếm số dòng mã nguồn, dòng chú thích và dòng trống trong các file lập trình.

    Vai trò của Cloc trong phát triển phần mềm

    Việc tích hợp Cloc vào quy trình làm việc mang lại nhiều lợi ích thiết thực cho các lập trình viên và đội ngũ phát triển:

    • Thống kê và báo cáo: Cloc giúp nhanh chóng tạo ra các báo cáo chi tiết về quy mô của dự án, rất hữu ích cho việc báo cáo tiến độ cho khách hàng hoặc ban quản lý.
    • Đánh giá độ phức tạp: Số lượng dòng code, đặc biệt là tỷ lệ giữa code và bình luận, có thể cung cấp một cái nhìn sơ bộ về độ phức tạp và chất lượng tài liệu của dự án.
    • Phân tích legacy code: Khi tiếp quản một dự án cũ, việc chạy Cloc có thể giúp bạn nhanh chóng nắm được thành phần ngôn ngữ và quy mô của codebase.
    • So sánh và đo lường: Bạn có thể sử dụng Cloc để so sánh sự phát triển của dự án qua các phiên bản khác nhau, đo lường sự đóng góp của các thành viên trong nhóm.
    Lệnh cloc Linux có thể được dùng để phân tích legacy code
    Lệnh Cloc Linux có thể được dùng để phân tích legacy code (Nguồn: Internet)

    Hướng dẫn cài đặt Cloc chi tiết

    Để cài đặt trên Linux, hãy mở terminal và chạy lệnh tương ứng với bản phân phối của bạn:

     Đối với Debian/Ubuntu:

    $  sudo apt install cloc

    Đối với Red Hat/Fedora:

    $   sudo yum install cloc

    Đối với Fedora 22 hoặc mới hơn:

    $   sudo dnf install cloc

    Đối với Arch:

    $    sudo pacman -S cloc

    Đối với Gentoo:

    $     sudo emerge -av dev-util/cloc

    Đối với Alpine Linux:

    $   sudo apk add cloc

    Đối với OpenBSD:

    $    doas pkg_add cloc

    Đối với FreeBSD:

    $      sudo pkg install cloc

    Đối với macOS (MacPorts):

    $      sudo port install cloc

    Đối với macOS (Homebrew):

    $      brew install cloc

    Đối với Windows (Chocolatey):

    $    choco install cloc

    Đối với Windows (Scoop):

    $     scoop install cloc

    Cài đặt thông qua npm:

    $    npm install -g cloc

    Cú pháp tổng quát để thực thi lệnh Cloc như sau:

    cloc [options] <FILE|DIR> ...

    Trong đó:

    • [options]: Là các cờ tùy chọn nâng cao để tùy chỉnh hành vi của Cloc, chẳng hạn như xuất báo cáo ra file, loại trừ thư mục,…
    • <FILE|DIR> …: Là đường dẫn đến file, thư mục, hoặc thậm chí là file nén mà bạn muốn phân tích. Bạn có thể cung cấp nhiều mục tiêu cùng lúc, Cloc sẽ xử lý tất cả.

    Sử dụng Cloc trên Ubuntu

    Để cài Cloc trên Ubuntu, bạn thực hiện lệnh dưới đây:

    $  sudo apt install cloc
    cài Cloc trên Ubuntu
    Cài Cloc trên Ubuntu

    Giả sử, bạn có file mã nguồn C++ như sau:

        // hello.C
     #include <iostream>
     int main () {
     std::cout << "hello" << std::endl; // comment 1
     std::cout << "again" << std::endl; /* comment
     2 */
     }

    Tiếp theo, bạn chạy lệnh sau:

    cloc hello.C

    Kết quả hiện ra cho thấy Cloc đã phân biệt được dòng mã, dòng chú thích và dòng trống.

    cloc đã phân biệt được dòng mã, dòng chú thích và dòng trống
    Cloc đã phân biệt được dòng mã, dòng chú thích và dòng trống

    Sử dụng Cloc với file nén

    Thay vì phải giải nén các file như .zip hay .tar.gz ra thư mục rồi mới dùng cloc, bạn có thể bỏ qua bước đó. cloc có khả năng phân tích code trực tiếp ngay bên trong các file nén này, giúp bạn tiết kiệm thời gian và công sức.

    Cú pháp như sau:

    $    cloc compressed_file

    Cloc sẽ tự động xử lý file nén trong bộ nhớ, đọc cấu trúc file và thực hiện việc đếm dòng code như khi bạn làm với một thư mục thông thường.

    Sử dụng cloc với file nén
    Sử dụng Cloc với file nén

    Đếm dòng theo từng file

    Theo mặc định, Cloc sẽ tổng hợp kết quả theo từng ngôn ngữ lập trình. Tuy nhiên, trong nhiều trường hợp, bạn có thể muốn xem báo cáo chi tiết cho từng file riêng lẻ để xác định những file nào lớn nhất hoặc phức tạp nhất trong dự án. Để làm điều này, bạn sử dụng tùy chọn –by-file.

    $    cloc --by-file folder/compressedFile

    Cloc sẽ xuất ra một danh sách chi tiết, mỗi dòng tương ứng với một file cùng với số liệu về dòng trống, bình luận và dòng code của file đó.

    Dùng cloc đếm dòng theo từng file
    Dùng Cloc đếm dòng theo từng file

    Đếm dòng trong repository GitHub

    Cloc cũng hỗ trợ đếm dòng mã trong repository trên GitHub với quy trình rất đơn giản. Để thực hiện, bạn chạy lệnh sau:

    $     git clone https://github.com/AlDanial/cloc
    $     cd cloc
    $     cloc ec44eb0

    Kết quả hiển thị như sau:

    Đếm dòng trong repository GitHub
    Đếm dòng trong repository GitHub

    Danh sách các tùy chọn lệnh nâng cao của Cloc

    Dưới đây là bảng tổng hợp một số tùy chọn nâng cao hữu ích nhất của Cloc, giúp bạn tùy chỉnh sâu hơn quá trình phân tích và báo cáo:

    Tùy chọnChức năng
    --diff <set1> <set2>Tính toán và so sánh sự khác biệt về mã nguồn (thêm, xóa, sửa đổi) giữa hai file, hai thư mục hoặc hai commit trong Git.
    --exclude-dir=<dir1>,<dir2>Loại trừ các thư mục được chỉ định ra khỏi quá trình quét. Rất hữu ích để bỏ qua các thư mục như node_modules, vendor, .git.
    --exclude-ext=<ext1>,<ext2>Loại trừ các file có phần mở rộng (extension) được chỉ định.
    --out=<file>Lưu kết quả báo cáo vào một file được chỉ định thay vì hiển thị ra màn hình terminal.
    --csvXuất kết quả báo cáo ra định dạng file CSV, giúp nhập vào bảng tính (Excel, Google Sheets) để xử lý thêm dễ dàng.
    --sql=<file>Ghi kết quả dưới dạng các câu lệnh SQL CREATE TABLEINSERT, sẵn sàng để nhập vào các hệ cơ sở dữ liệu như SQLite, MySQL.
    --quietChế độ im lặng giúp ẩn tất cả các thông báo phụ và chỉ hiển thị bảng báo cáo cuối cùng.
    --ignore-whitespaceBỏ qua các khoảng trắng khi so sánh file bằng tùy chọn --diff.
    --max-file-size=<MB>Bỏ qua không phân tích các file có kích thước lớn hơn số Megabyte (MB) được chỉ định.

    Câu hỏi thường gặp

    Làm sao để đếm code trong dự án nhưng loại trừ các thư mục thư viện như node_modules, vendor,…?

    Để loại trừ các thư mục cụ thể, bạn sử dụng tùy chọn –exclude-dir. Bạn có thể liệt kê nhiều thư mục, phân tách chúng bằng dấu phẩy.
    Ví dụ: Bạn chạy lệnh này để đếm code trong thư mục hiện tại nhưng bỏ qua tất cả nội dung bên trong node_modules và vendor.
    cloc --exclude-dir=node_modules,vendor

    Tôi muốn so sánh sự thay đổi về số dòng code giữa hai commit Git thì làm thế nào?

    Cloc hỗ trợ làm điều này một cách hiệu quả bằng tùy chọn –diff. Bạn chỉ cần cung cấp mã hash của hai commit mà bạn muốn so sánh:
    Ví dụ: cloc --diff <commit_hash_1> <commit_hash_2>
    Kết quả sẽ hiển thị số dòng code đã được thêm, xóa và sửa đổi giữa hai phiên bản đó.

    Làm cách nào để lưu báo cáo của Cloc ra file Excel để phân tích sau?

    Bạn có thể kết hợp hai tùy chọn: –csv để định dạng đầu ra thành file CSV và –out để chỉ định tên file lưu trữ.
    Ví dụ: cloc –csv –out=report.csv /path/to/project
    Lệnh này sẽ quét dự án và lưu kết quả dưới dạng file report.csv.

    Nếu dự án có một số file dữ liệu rất lớn, làm thế nào để Cloc bỏ qua chúng để chạy nhanh hơn?

    Bạn có thể dùng tùy chọn –max-file-size= để đặt giới hạn kích thước file tối đa (tính bằng Megabyte) mà Cloc sẽ xử lý. Bất kỳ file nào lớn hơn giới hạn này sẽ bị bỏ qua.

    Cloc có hỗ trợ xuất kết quả trực tiếp vào cơ sở dữ liệu không?

    Có, Cloc cung cấp tùy chọn –sql=. Khi sử dụng, Cloc sẽ tạo ra một file chứa các câu lệnh SQL CREATE TABLE và INSERT với dữ liệu đếm được. Bạn có thể chạy file SQL này để nhập dữ liệu vào hệ CSDL như SQLite, MySQL,…

    Sự đơn giản trong cách sử dụng cùng khả năng hỗ trợ nhiều ngôn ngữ khiến Cloc trở thành một công cụ không thể thiếu trong hộp công cụ của quản trị hệ thống. Với Cloc, bạn có thể nhanh chóng xác định được số lượng dòng mã trong các file hay dự án lập trình, giúp theo dõi tiến độ, thống kê quy mô dự án hoặc đánh giá độ phức tạp mã nguồn.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Cách dùng lệnh less Linux để xem nội dung file nhanh chóng và đơn giản
    Cách dùng lệnh less Linux để xem nội dung file nhanh chóng và đơn giản

    Less Linux là một trình phân trang chạy trên dòng lệnh, cho phép xem nội dung file văn bản theo kiểu cuộn trang một cách tương tác mà không cần nạp toàn bộ file vào bộ nhớ. Trong bài viết dưới đây, mình sẽ cùng bạn tìm hiểu về những lợi ích khi dùng lệnh…

    13/03/2026

    Cách sử dụng lệnh sed Linux để biên tập dòng lệnh nhanh chóng
    Cách sử dụng lệnh sed Linux để biên tập dòng lệnh nhanh chóng

    sed Linux là một trình biên tập dòng dùng để xử lý và chỉnh sửa văn bản theo cách tự động, không tương tác trực tiếp như khi mở file bằng vim/nano. Trong bài viết dưới đây, mình sẽ cùng bạn tìm hiểu các tính năng quan trọng và hướng dẫn bạn sử dụng lệnh…

    13/03/2026

    Cách dùng lệnh realpath để xác định đường dẫn tuyệt đối chính xác trong Linux
    Cách dùng lệnh realpath để xác định đường dẫn tuyệt đối chính xác trong Linux

    Realpath Linux là lệnh dùng để chuyển đường dẫn tương đối hoặc có symlink thành đường dẫn tuyệt đối, đã được chuẩn hóa đầy đủ. Trong bài viết dưới đây, mình sẽ cùng bạn tìm hiểu về chức năng, các tùy chọn phổ biến cũng như hướng dẫn bạn cách sử dụng lệnh realpath chi…

    13/03/2026

    Lệnh ln Linux là gì? Cách dùng lệnh ln chi tiết, đơn giản trong Linux
    Lệnh ln Linux là gì? Cách dùng lệnh ln chi tiết, đơn giản trong Linux

    Ln Linux là lệnh dùng để tạo liên kết giữa các file hoặc thư mục, giúp nhiều tên file cùng trỏ tới một dữ liệu mà không cần sao chép nội dung. Trong bài viết này, mình sẽ hướng dẫn bạn cách dùng lệnh ln để tạo Hard Link và Symbolic Link đơn giản, nhanh…

    13/03/2026

    linux

    lenh

    text