linux统计代码
⑴ linux如何通过命令查看日志文件的某几行(中间几行或最后几行)
【一】从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000
【二】显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000
*注意两种方法的顺序
分解:
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000行
【三】用sed命令
sed -n Ƌ,10p' filename 这样你就可以只查看文件的第5行到第10行。
Linux统计文件行数
语法:wc [选项] 文件…
说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。
该命令各选项含义如下:
- c 统计字节数。
- l 统计行数。
- w 统计字数。
这些选项可以组合使用。
输出列的顺序和数目不受选项的顺序和数目的影响。
总是按下述顺序显示并且每项最多一列。
行数、字数、字节数、文件名
如果命令行中没有文件名,则输出中不出现文件名。
例如:
$ wc - lcw file1 file2
4 33 file1
7 52 file2
11 11 85 total
举例分析:
1.统计demo目录下,js文件数量:
find demo/ -name "*.js" |wc -l
2.统计demo目录下所有js文件代码行数:
find demo/ -name "*.js" |xargs cat|wc -l 或 wc -l `find ./ -name "*.js"`|tail -n1
3.统计demo目录下所有js文件代码行数,过滤了空行:
find /demo -name "*.js" |xargs cat|grep -v ^$|wc -l
⑵ LINUX下用C++代码实现流量监控,统计各个时间点流量的消耗
可以使用腾讯手机管家监控的在手机上打开腾讯手机管家点击健康优化界面
在健康优化界面点击流量监控,然后在流量统计界面点击设
置流量套餐进入套餐设置向导在套餐设置向导界面,
输入套餐限额和月结算日然后点击下一步接着设置流量套餐。
后点击“完成腾讯手机管家的流量监控的基本设置已经完成。
⑶ 在linux下,怎么统计一个代码段的执行时间
开头和结尾都输出date +%s时间戳,然后相减
⑷ linux统计后缀名为.bak的文件个数及文件大小
linux统计后缀名为.bak的文件个数及文件大小geshu=`ls /data/datasource/test*.txt | wc -l` daxiao=` -sh /data/datasource/test*.txt`。
如果文件数量不那么多可以使用 -m *20130606* | awk '{c+=$1}END{print c}'这两个命令显示的单位是MB,如果要显示GB可以print c 的c再除以一个1024。
优点:
1、Linux由众多微内核组成,其源代码完全开源。
2、Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈。
3、Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性。
⑸ 如何在Linux下统计高速网络中的流量
一般的linux下可以通过
/proc/net/dev
文件对某个或多个网络接口进行流量监控
通过定时读取该文件中的数据然后通过计算就可以算是当前是否有数据流通
并且流通的速度
该文件内部也记录了该网络接口所有流通的流量数量和数据包的数量
包括上传与下载的数量
下面是一个利用该文件的简单代码
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
#include<ncurses.h>
#include<pthread.h>
#include<locale.h>
typedefstruct
{
unsignedlonglongintup_bytes;
unsignedlonglongintdn_bytes;
unsignedlonglongintup_packs;
unsignedlonglongintdn_packs;
}SP;
intget_traffic(SP*sp,char*interface)
{
char*buf=NULL;
size_tlen;
FILE*fp;
if((fp=fopen("/proc/net/dev","rb"))==NULL)
{
perror("Read/proc/net/devError!");
return-1;
}
while(!feof(fp))
{
getline(&buf,&len,fp);
if(buf==NULL)
return-1;
if(strstr(buf,interface))
break;
free(buf);
buf=NULL;
}
if(feof(fp))
{
printf("CanNotFind%sInterface! ",interface);
fclose(fp);
return-1;
}
sscanf(buf,"%*[^:]:%lld%lld%*s%*s%*s%*s%*s%*s%lld%lld",
&sp->dn_bytes,&sp->dn_packs,
&sp->up_bytes,&sp->up_packs);
free(buf);
fclose(fp);
return0;
}
void_quit(WINDOW*win)
{
while(getchar()!='q')
continue;
delwin(win);
echo();
endwin();
exit(0);
}
voidhelp(void)
{
printf("Use: ");
printf("netsp[interface] ");
exit(-1);
}
intmain(intargc,char**argv)
{
unsignedlongup_times=0;
unsignedlongdn_times=0;
doubleup_bytes;
doubledn_bytes;
doubleup_sp;
doubledn_sp;
SPstart,end,temp;
WINDOW*win;
intx,y;
pthread_tthread;
if(argc!=2)
help();
setlocale(LC_ALL,"");
if(get_traffic(&start,argv[1])==-1)
return-1;
initscr();
curs_set(0);
noecho();
if(has_colors())
{
start_color();
use_default_colors();
init_pair(1,COLOR_CYAN,-1);
init_pair(2,COLOR_GREEN,-1);
}
getmaxyx(stdscr,y,x);
win=newwin(12,30,y/2-10/2,x/2-30/2);
refresh();
wattron(win,COLOR_PAIR(1));
box(win,0,0);
wattroff(win,COLOR_PAIR(1));
wrefresh(win);
pthread_create(&thread,NULL,(void*)_quit,win);
while(1)
{
get_traffic(&temp,argv[1]);
usleep(500000);
//sleep(1);
++up_times;
++dn_times;
get_traffic(&end,argv[1]);
if(up_times%10==0)
{
up_times=1;
start.up_bytes=temp.up_bytes;
}
if(dn_times%10==0)
{
dn_times=1;
start.dn_bytes=temp.dn_bytes;
}
if(end.up_bytes-temp.up_bytes==0)
{
up_times=1;
temp.dn_bytes=start.dn_bytes;
get_traffic(&start,argv[1]);
start.dn_bytes=temp.dn_bytes;
}
if(end.dn_bytes-temp.dn_bytes==0)
{
dn_times=1;
temp.up_bytes=start.up_bytes;
get_traffic(&start,argv[1]);
start.up_bytes=temp.up_bytes;
}
wattron(win,COLOR_PAIR(2));
up_bytes=(double)end.up_bytes/1024/1024;
dn_bytes=(double)end.dn_bytes/1024/1024;
if(up_bytes<1024)
mvwprintw(win,2,6,"已上传%.2fMB",up_bytes);
else
mvwprintw(win,2,6,"已上传%.2fGB",up_bytes/1024);
if(dn_bytes<1024)
mvwprintw(win,3,6,"已下载%.2fMB",dn_bytes);
else
mvwprintw(win,3,6,"已下载%.2fGB",dn_bytes/1024);
mvwprintw(win,5,6,"已上传包数量%ld",end.up_packs);
mvwprintw(win,6,6,"已下载包数量%ld",end.dn_packs);
up_sp=(double)(end.up_bytes-start.up_bytes)/up_times/1024*2;
dn_sp=(double)(end.dn_bytes-start.dn_bytes)/up_times/1024*2;
if(up_sp<1024)
mvwprintw(win,8,6,"上传速度%.2fkb/s",up_sp);
else
mvwprintw(win,8,6,"上传速度%.2fmb/s",up_sp/1024);
if(dn_sp<1024)
mvwprintw(win,9,6,"下载速度%.2fkb/s",dn_sp);
else
mvwprintw(win,9,6,"下载速度%.2fmb/s",dn_sp/1024);
wattroff(win,COLOR_PAIR(2));
wrefresh(win);
wclear(win);
wattron(win,COLOR_PAIR(1));
box(win,0,0);
wattroff(win,COLOR_PAIR(1));
}
return0;
}