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;
}