谢请,
在linux下编程已经玩了十几年在这个巨无霸里面很多有意思的事情,特别是脚本熟练使用能够极大的提高代码开发效率。记得刚开始接触linux的时候,觉得这东西太有意思了,于是工作前两年在linux下的功夫特别大,看到脚本就想研究,差不多在工作一年多的时候,公司整个的编译体系给重构掉了,大家只要发生编译的问题或者环境问题都会第一时间来找我,刚入行的那份成就感,已经无法用语言来表达了。linux下的cmake,automake, autoconf, m4, perl, bash,ash,qmake等自动编译体系看到这些东西就来劲,后来在写代码的时候都习惯用vim直接来编写了,虽然在联想等方面有一些差异,但用熟练了效率非常高。
为什么很多人都有一个linux情怀,主要还是现在编程语言多少和linux有一定的关联,C语言创始人在创建C语言的时候,本来就是把unix绑在一起搞的,所以很多程序员喜欢Mac,也有这么点历史渊源,闲扯了这么多,主要提到linux本身有很多话语要将,而且将来一定还会继续坚持在这上面玩耍,回到正题linux下如何统计代码行数?
可以直接借助工具来完成,也可以直接采用脚本来完成,现在就根据自己接触到一些工具或者命令行在做这个事情。
1.直接采用wc命令
现在选取webkit内核源码中一个解析form表单的cpp文件进行行号的统计FormSubmission.cpp
wc -l FormSubmission.cpp
注意这个文件放的位置,在当前目录下
这个文件行号就是254,为了验证准确性,现在直接采用vim方式打开,看到最后一行是254
如果想了解更多wc命令的用法可以使用下面方法,进入学习状态之后方法总比困难多
2.cat命令
cat -n FormSubmission.cpp
直接在最底层显示的就是行号了
3.nl FormSubmission.cpp
4.less -N FormSubmission.cpp
直接分行显示后面直接滚动到最后一行
5.awk ‘{print NR,$0}’ FormSubmission.cpp
awk在处理输出文本上有极大的作用
还可以再继续优化
6.sed -n ‘$=’ FormSubmission.cpp
sed一种在线编辑器,一次只是处理一行内容
7.cat FormSubmission.cpp | wc -l
来个组合处理拿到行号
其实统计一个文件的行号只是一种很简单的功能,但在linux可以玩出很多的花样,因为喜欢才会想着有这么多的方法去解决这个问题,虽然linux在桌面系统占比不是很高,但在程序员领域却是相当受欢迎,很多做程序的基本上都喜欢玩linux,不懂linux的程序员会觉得留有遗憾。
linux是一门值得研究一辈子的操作系统。
学习linux时的笔记 不客气
Ls—list 显示当前目录列表 -a (all 显示所有文件有.表示隐藏)-l -h 显示详细文件
Cd—chang directory cd+目录(cd~表示回家目录cd.表示当前目录..会=回上级目录cd-在最近两次工作目录切换)
pwd—print work directory
touch—创建文件
mkdir—make directory(-p创建递归目录 例如:mkdir –p 1/2/3/4)
rm—remove (-r删除目录 –f 强制删除文件)
clear—清理终端
tree—列出树状
cp—copy 原文件 (空格)目标文件 -i(复制文件给提示)-r 文件夹
mv—move原文件 (空格)目标文件-i(复制文件给提示)
cat—concatenate 全部显示 –b输出行号 –n输出全部行号
more—查看内容 分屏显示 q退出
grep—搜索文本内容 (-n行数 –v不包含的 行 –i 忽略大小写 ^行首模式查找 $行尾模式查找)
echo—重定向 (>输出到文件 >>追加内容 例如:ls -lh >a 输出内容到文件a echo hello python >> a 追加内容到a )
shutdown—关机 (-r重启 -c取消 例如:shutdown 2:05在这个时间关机 shutdown +10 在十分钟后关机)
ifconfig—查看ip地址 结合| 例如 ifconfig | grep inet
ping ip (web 默认端口80 ssh默认端口22)
ssh 【-p port】 user@remote(ip地址)
scp –P port 本地文件 user2remorte:目标文件
scp –P port user2remorte:目标文件 本地文件(-r目录)
gedit—打开文件 终端中打开文件需要 指定.当前目录下 ./文件
chmod—改变权限(+/- rwx 读写执行)语法: chmod 参数 目录 第79集高级用法
chgrp –R 组名 文件 需要超级用户
chowm 修改文件拥有者 chown 用户名 文件名/目录名
sudo—暂时超级用户
group add/del 增减组 在~下执行 需要超级用户
cat /etc/group 查看组
useradd/del -m(同时建立家目录 ) –g 组 名
passwd
id 用户—查看信息
who / whoai 查看用户
user
cat /etc/group (/etc/group) 查看组/用户
usermod—修改用户组 user –g(主组) -G(附加组)组 用户名
usermod –s /bin/bash 用户 修改用户名登陆 第75集
which—查看文件夹目录/命令目录
(bin里面储存可执行二进制文件 sbin 中s表系统 /usr/bin 后期安装的软件 /user/sbin系统管理文件)
su—切换用户 su 用户名 su – 进入root (-表示进入目录)
Tab键自动补全
通配符
*表示0~n个字符
?表示1个字符
表示可以匹配的字符组(表示a到z的所用字符)
|管道 例如:ls |grep a ls输出的内容用grep再次处理
wc -|* 当前目录
find .*|xargs wc -|
可以把*改成java,就只统计java