几个有用的shell命令

2020-08-28  本文已影响0人  欧阳_z

(1)统计代码量
平时统计代码量可能只是用 wc -l 粗略的统计一下,但是不方便判断真实代码量有多少。

$ find . -name "*.c"|xargs wc -l|awk 'END {print}'
 174779 total

cloc 工具会统计出更具体的数据:

$ cloc .
     405 text files.
     402 unique files.                                          
     118 files ignored.

http://cloc.sourceforge.net v 1.60  T=1.80 s (177.6 files/s, 106497.2 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C                              203          44054           4557         126168
C/C++ Header                   100           4017            848           8085
vim script                       4            143            245           1896
make                             2            279              0            985
Perl                             4             71             51            159
SKILL                            3             24              0             99
Bourne Shell                     1             32              3             81
HTML                             2              2              0             44
C++                              1              8              3             18
-------------------------------------------------------------------------------
SUM:                           320          48630           5707         137535
-------------------------------------------------------------------------------

统计出了空行、注释、代码分别是多少行,把这 3 个数相加,正好等于之前用 wc -l 统计的行数:

$ expr 44054 + 4557 + 126168
174779

安装也很方便:

$ sudo apt-get install cloc

可以用 --exclude-dir 选项排除一些目录:

$ cloc --exclude-dir="html,conf" .

(2)彻底删除文件
平时删除文件通常是用 rm -rf ,但仍然有可能被恢复。如果想让它不可恢复,就要先打乱文件的内容。
可以使用 shred 命令破坏文件的内容,例如:

$ shred test.txt 

效果是文件依旧存在,但不再是原来的文件了,

如果想同时删除文件(相当于粉碎文件),加上参数 -u

$ shred –u test.txt

结合find命令可以这样使用:

find . -type f -print |xargs -I {} shred {}
find . -type f -print |xargs -I {} shred -u {}

(3)用 tee 命令记录编译日志

make 2>&1 | tee build.log

(4)打印文件的某几行
从第 2 行开始,共打印 3行:

$ cat 1.txt | tail -n +2 | head -n 3

grep-C 可以打印匹配行的周围的行,匹配1行加上前一行和后一行,打印出3行:

grep abc -C 1 1.txt

(5)git%h 是简短哈希字串大约7位,可以用这个作为版本号,用宏定义编译进程序。

git log -1 --pretty="%h"

(6)查询 ascii 不需要浏览器,直接用 man 命令即可
man ascii

上一篇 下一篇

猜你喜欢

热点阅读