Cloc 计算 Linux 中的代码行数 -
统计某个程序的代码行数可能很困难,因为仅查看源代码就会包含注释、空格等。在 Linux 系统上,可以使用 cloc 命令来计算计算一个或多个文件中的代码行数,甚至按编程语言对结果进行排序。
如果您需要测量和提交编码项目的进度、查看编码统计数据或计算代码的总价值,那么 cloc 程序尤其有用。
在本教程中,您将了解如何在所有主要 Linux 发行版上安装 cloc 软件包,然后使用 cloc
命令来统计各种程序文件的代码行数。
在本教程中您将学习:
如何在主要 Linux 发行版上安装 cloc
如何在 Linux 上使用
cloc
命令计算代码行数
在主要 Linux 发行版上安装 cloc
cloc 可以从系统的包管理器安装。使用下面适当的命令来安装它。
要在 Ubuntu、Debian 和 Linux Mint 上安装 cloc:
$ sudo apt install cloc
要在 Fedora、CentOS、AlmaLinux 和 Red Hat 上安装 cloc:
$ sudo dnf install cloc
要在 Arch Linux 和 Manjaro 上安装 cloc:
$ sudo pacman -S cloc
安装后,您将能够执行以下示例中的命令。
如何在 Linux 上使用 cloc
您可以使用cloc
命令来计算单个文件、多个文件、目录甚至压缩存档(例如.tar.gz
)的代码行数, .zip
文件。
计算 Bash 文件的行数:
$ cloc countdown.sh 1 text file. 1 unique file. 0 files ignored. github.com/AlDanial/cloc v 1.82 T=0.03 s (34.3 files/s, 2781.5 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- Bourne Shell 1 12 0 69 -------------------------------------------------------------------------------
一次计算多个 PHP 文件的行数:
$ cloc *.php 209 text files. 209 unique files. 0 files ignored. github.com/AlDanial/cloc v 1.82 T=2.93 s (71.4 files/s, 67066.1 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- PHP 209 22423 80758 93103 ------------------------------------------------------------------------------- SUM: 209 22423 80758 93103 -------------------------------------------------------------------------------
在下一个示例中,我们将打印每行分隔的每个文件的结果。这可以通过使用
--by-file
选项来完成:$ cloc --by-file my_project/ 2 text files. 2 unique files. 0 files ignored. http://cloc.sourceforge.net v 1.82 T=0.01 s (149.5 files/s, 448.6 lines/s) -------------------------------------------------------------------------------- File blank comment code -------------------------------------------------------------------------------- my_project/perl.pl 1 0 2 my_project/bash.sh 1 0 2 -------------------------------------------------------------------------------- SUM: 2 0 4 --------------------------------------------------------------------------------
我们甚至可以做一些很酷的事情,比如计算 Linux 发行版当前运行的内核中的代码行数。
$ cloc /usr/src/linux-headers-`uname -r` 347 text files. 346 unique files. 8625 files ignored. github.com/AlDanial/cloc v 1.82 T=4.70 s (54.3 files/s, 20714.3 lines/s) -------------------------------------------------------------------------------- Language files blank comment code -------------------------------------------------------------------------------- C 43 4888 3948 30263 Perl 29 3323 2819 16355 C/C++ Header 55 425 463 13876 DOS Batch 33 63 0 3050 Bourne Shell 50 557 913 2603 make 17 641 569 2160 C++ 1 268 66 1581 Python 7 285 411 1121 yacc 2 170 52 1015 Bourne Again Shell 7 182 198 892 lex 2 131 66 767 Glade 1 58 0 603 NAnt script 1 107 0 442 Assembly 4 282 1107 360 D 2 0 0 99 awk 1 9 5 67 -------------------------------------------------------------------------------- SUM: 255 11389 10617 75254 --------------------------------------------------------------------------------
这里还有一个例子,我们计算整个 WordPress 安装中的代码行数,这些代码全部压缩到
.tar.gz
文件中。根据 cloc 的说法,代码有 778,239 行之多,而且将它们全部计数仍然没有问题。$ cloc latest.tar.gz 2421 text files. 2353 unique files. 86 files ignored. github.com/AlDanial/cloc v 1.82 T=29.91 s (78.1 files/s, 40656.4 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- JavaScript 543 74183 101931 320805 PHP 992 54140 158885 261259 CSS 554 25906 19563 155284 JSON 73 0 0 28413 Sass 155 2790 462 12011 SVG 15 0 0 344 HTML 1 13 0 84 XML 1 6 0 37 Markdown 1 1 0 2 ------------------------------------------------------------------------------- SUM: 2335 157039 280841 778239 -------------------------------------------------------------------------------
cloc 有一些额外的选项,在利基场景中可能会派上用场。要查看全部内容,请查看手册页。
$ man cloc
结束语
在本教程中,我们了解了如何在主要 Linux 发行版上安装 cloc,并使用该命令来统计 Linux 上一个或多个文件中的代码行数。 cloc 是一个简单而快速的程序,能够在短短几秒钟内处理数百万行代码。它适用于大量不同的编程语言,使其对几乎所有类型的开发人员都有用。