Linux 文件行数统计一、行数统计方法
1、系统命令:wc -l filename
2、grep方法:grep -c "" filename
3、sed方法:sed -n '$=' filename
4、awk方法:awk 'END{print NR}' filename
参考文件
Linux常见日志统计分析命令在上文中linux文件统计的命令 , 我们已经详细介绍 linux 三剑客的基本使用,接下来我们看看具体在性能测试领域的运用 , 本文主要介绍的是在 Tomcat 和 Nginx access日志的统计分析 。
server.xml使用配置方式 , %D-请求时间,%F-响应时间
字段说明如下:
日志样例:
使用默认 combined 的经典格式上扩展response_timeupstream_response_time
nginx.conf使用配置方式:
字段说明如下:
日志示例:
为linux文件统计的命令了能理解 AWK 程序,我们下面概述其基本知识 。
模式( pattern ) 用于匹配输入中的每行文本 。对于匹配上的每行文本 , awk 都执行对应的 动作( action ) 。模式和动作之间使用花括号隔开 。awk 顺序扫描每一行文本,并使用 记录分隔符(一般是换行符)将读到的每一行作为 记录,使用 域分隔符( 一般是空格符或制表符 ) 将一行文本分割为多个 域,每个域分别可以使用 2, … 表示 。1 表示第一个域,表示第二个域,n 表示第 n 个域 。$0 表示整个记录 。模式或动作都可以不指定,缺省模式的情况下 , 将匹配所有行 。缺省动作的情况下,将执行动作 {print},即打印整个记录 。
此处使用Nginx access.log 举例,Tomcat 日志自己举一反三 。使用 awk 分解出Nginx access日志中的信息
以此类推…… 当我们使用默认的域分割符时,我们可以从日志中解析出下面不同类型的信息:
我们不难发现,仅使用默认的域分隔符 , 不方便解析出请求行、引用页和浏览器类型等其他信息,因为这些信息之中包含不确定个数的空格 。因此,我们需要把域分隔符修改为 “,就能够轻松读出这些信息 。
注意:这里为了避免 Linux Shell 误解 “ 为字符串开始,我们使用了反斜杠,转义了 “。现在 , 我们已经掌握了 awk 的基本知识 , 以及它是怎样解析日志的 。
此处使用Nginx access.log 举例 , Tomcat 日志自己举一反三 。
如果我们想知道那些类型的浏览器访问过网站,并按出现的次数倒序排列,我可以使用下面的命令:
此命令行首先解析出浏览器域,然后使用管道将输出作为第一个 sort 命令的输入 。第一个 sort 命令主要是为了方便 uniq 命令统计出不同浏览器出现的次数 。最后一个 sort 命令将把之前的统计结果倒序排列并输出 。
我们可以使用下面的命令行 , 统计服务器返回的状态码,发现系统可能存在的问题 。
正常情况下,状态码 200 或 30x 应该是出现次数最多的 。40x 一般表示客户端访问问题 。50x 一般表示服务器端问题 。下面是一些常见的状态码:
HTTP 协议状态码定义可以参阅:
查找并显示所有状态码为 404 的请求
统计所有状态码为 404 的请求
现在我们假设某个请求 ( 例如 : URI: /path/to/notfound ) 产生了大量的 404 错误,我们可以通过下面的命令找到这个请求是来自于哪一个引用页,和来自于什么浏览器 。
有时候会发现其他网站出于某种原因,在他们的网站上使用保存在自己网站上的图片 。如果您想知道究竟是谁未经授权使用自己网站上的图片,我们可以使用下面的命令:
注意:使用前 , 将修改为自己网站的域名 。
统计共有多少个不同的 IP 访问:
统计每一个 IP 访问了多少个页面:
将每个 IP 访问的页面数进行从小到大排序:
统计 2018 年 8 月 31 日 14 时内有多少 IP 访问 :
统计访问最多的前十个 IP 地址
查看某一个 IP访问了哪些页面:
统计某个 IP 的详细访问情况,按访问频率排序
列出传输大小最大的几个文件
列出输出大于 204800 byte ( 200kb) 的页面以及对应页面发生次数
列出访问最频的页面(TOP100)
列出访问最频的页面([排除php页面】(TOP100)
列出页面访问次数超过100次的页面
列出最近1000条记录,访问量最高的页面
统计每分钟的请求数,top100的时间点(精确到分钟)
统计每小时的请求数,top100的时间点(精确到小时)
统计每秒的请求数,top100的时间点(精确到秒)
统计当天的 pv
说明:
可以使用下面的命令统计出所有响应时间超过 3 秒的日志记录 。
注意:NF 是当前记录中域的个数 。$NF 即最后一个域 。
列出php页面请求时间超过3秒的页面,并统计其出现的次数,显示前100条
列出相应时间超过 5 秒的请求,显示前20条
统计蜘蛛抓取次数
统计蜘蛛抓取404的次数
通过本文的介绍,我相信同学们一定会发现 linux三剑客强大之处 。在命令行中,它还能够接受,和执行外部的 AWK 程序文件,可以对文本信息进行非常复杂的处理,可以说“只有想不到的,没有它做不到的” 。
如何统计Linux中文件和文件夹/目录的数量在本教程中 , 我们将向您展示如何使用多个命令,并使用 ls、egrep、wc 和 find 命令执行一些高级操作 。下面的命令将可用在多个方面 。
为了实验,我打算总共创建 7 个文件和 2 个文件夹(5 个常规文件和 2 个隐藏文件) 。下面的 tree 命令的输出清楚的展示了文件和文件夹列表 。
# tree -a /opt
/opt
├──magi
│└──2g
│├──test5.txt
│└──.test6.txt
├──test1.txt
├──test2.txt
├──test3.txt
├──.test4.txt
└──test.txt
2directories,7files
示例 1
统计当前目录的文件(不包括隐藏文件) 。运行以下命令以确定当前目录中有多少个文件,并且不计算点文件(LCTT 译注:点文件即以“.” 开头的文件,它们在 Linux 默认是隐藏的) 。
# ls -l . | egrep -c '^-'
4
细节:
ls : 列出目录内容
-l : 使用长列表格式
. : 列出有关文件的信息(默认为当前目录)
| : 将一个程序的输出发送到另一个程序进行进一步处理的控制操作符
egrep : 打印符合模式的行
-c : 通用输出控制
'^-' : 以“-”开头的行(ls -l 列出长列表时,行首的 “-” 代表普通文件)
示例 2
统计当前目录包含隐藏文件在内的文件 。包括当前目录中的点文件 。
# ls -la . | egrep -c '^-'
5
示例 3
运行以下命令来计数当前目录的文件和文件夹 。它会计算所有的文件和目录 。
# ls -l | wc -l
5
细节:
ls : 列出目录内容
-l : 使用长列表格式
| : 将一个程序的输出发送到另一个程序进行进一步处理的控制操作符
wc : 这是一个统计每个文件的换行符、单词和字节数的命令
-l : 输出换行符的数量
Linux命令大全linux命令格式:
说明:command: 命令名,相应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也可以省略 , []代表可选 parameter1 …:传给命令的参数:可以是零个一个或多个
一般是linux命令自带的帮助信息
如:
man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明
该手册分成很多章节(section) , 使用man时可以指定不同的章节来浏览 。
例:man ls ; man 2 printf
man中各个section意义如下:
man是按照手册的章节号的顺序进行搜索的 。
man设置了如下的功能键:
在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令
当系统执行过一些命令后,可按上下键翻看以前的命令 , history将执行过的命令列举出来
ls是英文单词list的简写,其功能为列出目录的内容 , 是用户最常用的命令之一,它类似于DOS下的dir命令 。
Linux文件或者目录名称最长可以有265个字符,“.”代表当前目录,“..”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示 。
ls常用参数:
Linux允许将命令执行结果重定向到一个文件 , 本应显示在终端上的内容保存到指定文件中 。
如:lstest.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
注意: 输出重定向会覆盖原来的内容,输出重定向则会追加到文件的尾部 。
查看内容时,在信息过长无法在一屏上显示时 , 会出现快速滚屏,使得用户无法看清文件的内容 , 此时可以使用more命令,每次只显示一页 , 按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助 。
管道:一个命令的输出可以通过管道做为另一个命令的输入 。
管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来 , 这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读) 。
clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrll ( “l” 为字母 ) 。
在使用Unix/Linux的时候 , 经常需要更换工作目录 。cd命令可以帮助用户切换工作目录 。Linux所有的目录和文件名大小写敏感
cd后面可跟绝对路径,也可以跟相对路径 。如果省略目录,则默认切换到当前用户的主目录 。
使用pwd命令可以显示当前的工作目录 , 该命令很简单 , 直接输入pwd即可,后面不带参数 。
通过mkdir命令可以创建一个新的目录 。参数-p可递归创建目录 。
需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限 。
可使用rmdir命令删除一个目录 。必须离开目录,并且目录必须为空目录 , 不然提示删除失败 。
可通过rm删除文件或目录 。使用rm命令要小心,因为文件删除后不能恢复 。为了防止文件误删 , 可以在rm后使用-i参数以逐个确认要删除的文件 。
常用参数及含义如下表所示:
Linux链接文件类似于Windows下的快捷方式 。
链接文件分为软链接和硬链接 。
软链接:软链接不占用磁盘空间,源文件删除则软链接失效 。
硬链接:硬链接只能链接普通文件,不能链接目录 。
使用格式:
如果没有-s选项代表建立一个硬链接文件 , 两个文件占用相同大小的硬盘空间 , 即使删除了源文件 , 链接文件还是存在,所以-s选项是更常见的形式 。
注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径 。
Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找 。如果找到匹配模式, grep打印包含模式的所有行 。
grep一般格式为:
在grep命令中输入字符串参数时,最好引号或双引号括起来 。例如:grep‘a ’1.txt 。
常用选项说明:
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件 。
常用用法:
cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令 。
常用选项说明:
用户可以使用mv命令来移动文件或目录 , 也可以给文件或目录重命名 。
常用选项说明:
计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据 。
tar使用格式 tar [参数] 打包文件名 文件
tar命令很特殊,其参数前面可以使用“-”,也可以不使用 。
常用参数:
tar与gzip命令结合使用实现文件打包、压缩 。tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz 。
gzip使用格式如下:
gzip [选项] 被压缩文件
常用选项:
tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样) 。
tar只负责打包文件,但不压缩 , 用bzip2压缩tar打包后的文件 , 其扩展名一般用xxxx.tar.gz2 。
在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程 。
压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)
解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip 。
压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
解压文件:unzip -d 解压后目录文件 压缩文件
whoami该命令用户查看当前系统当前账号的用户名 。可通过cat /etc/passwd查看系统用户信息 。
由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理 。这时候就可以使用whoami来查看当前用户的身份 。
who命令用于查看当前所有登录系统的用户信息 。
常用选项:
如果是图形界面,退出当前终端;
如果是使用ssh远程登录,退出登陆账户;
如果是切换后的登陆用户 , 退出则返回上一个登陆账号 。
在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此 , 这两个命令的使用格式完全一样 。
useradd命令的使用格式如下:
useradd [参数] 新建用户账号
在Unix/Linux中 , 超级用户可以使用passwd命令为普通用户设置或修改用户口令 。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名 。
可以通过su命令切换用户 , su后面可以加“-” 。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:
注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加“sudo”即可 。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具 , 减少了root 用户的登陆和管理时间,提高了安全性 。
方法一:
方法二:
groupadd 新建组账号 groupdel 组账号 cat /etc/group 查看用户组
使用方法:usermod -g 用户组 用户名
新创建的用户,默认不能sudo,需要进行一下操作
-g用来制定这个用户默认的用户组
-G一般配合'-a'来完成向其它组添加
chmod 修改文件权限有两种使用格式:字母法与数字法 。
字母法:chmod u/g/o/a/-/= rwx 文件
cal命令用于查看当前日历,-y显示整年日历
设置时间格式(需要管理员权限):
date [MMDDhhmm[[CC]YY][.ss]]format
CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒 。如: date 010203042016.55 。
显示时间格式(date ' %y,%m,%d,%H,%M,%S'):
进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元 。
ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:
top命令用来动态显示运行中的进程 。top命令能够在运行后,在指定的时间间隔更新显示信息 。可以在使用top命令时加上-d 来指定显示信息更新的时间间隔 。
在top命令执行后,可以按下按键得到对显示的结果进行排序:
kill命令指定进程号的进程,需要配合 ps 使用 。有些进程不能直接杀死,这时候我们需要加一个参数“ -9 ”,“ -9 ” 代表强制结束.
使用格式:
kill [-signal] pid
df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况 。
du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似 , du更侧重于磁盘的使用状况 。
du命令的使用格式如下: du [选项] 目录或文件名
Linux中du命令参数的用法 Linux中du命令参数的用法
du是Linux下系统命令linux文件统计的命令,统计目录(或文件)所占磁盘空间的大小 。那么du有什么参数呢?这些参数的用法是什么linux文件统计的命令 , 下面一起来看看吧!
Du(Disk Usage)命令功能说明linux文件统计的命令:统计目录(或文件)所占磁盘空间的大小 。
语法:du [-abcDhHklmsSx] [-L 符号连接][-X 文件][--block-size][--exclude=目录或文件] [--max-depth=目录层数][--help][--version][目录或文件]
常用参数:
-a或-all 为每个指定文件显示磁盘使用情况 , 或者为目录中每个文件显示各自磁盘使用情况 。
-b或-bytes 显示目录或文件大小时 , 以byte为单位 。
-c或–total 除了显示目录或文件的大小外,同时也显示所有目录或文件的总和 。
-D或–dereference-args 显示指定符号连接的源文件大小 。
-h或–human-readable 以K,M,G为单位,提高信息的可读性 。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位 。
-k或–kilobytes 以1024 bytes为单位 。
-l或–count-links 重复计算硬件连接的文件 。
-L符号连接或–dereference符号连接 显示选项中所指定符号连接的源文件大小 。
-m或–megabytes 以1MB为单位 。
-s或–summarize 仅显示总计 , 即当前目录的大小 。
-S或–separate-dirs 显示每个目录的大小时 , 并不含其子目录的大小 。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过 。
-X文件或–exclude-from=文件 在文件指定目录或文件 。
–exclude=目录或文件 略过指定的目录或文件 。
–max-depth=目录层数 超过指定层数的目录后,予以忽略 。
–help 显示帮助 。
–version 显示版本信息 。
Linux中的du命令使用示例:
1 要显示一个目录树及其每个子树的磁盘使用情况
du /home/linux
这在/home/linux目录及其每个子目录中显示了磁盘块数 。
2 要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况
du -k /home/linux
这在/home/linux目录及其每个子目录中显示了 1024 字节磁盘块数 。
3 以MB为单位显示一个目录树及其每个子树的.磁盘使用情况
du -m /home/linux
这在/home/linux目录及其每个子目录中显示了 MB 磁盘块数 。
4 以GB为单位显示一个目录树及其每个子树的磁盘使用情况
du -g /home/linux
这在/home/linux目录及其每个子目录中显示了 GB 磁盘块数 。
5查看当前目录下所有目录以及子目录的大?。?
du -h .
“.”代表当前目录下 。也可以换成一个明确的路径
-h表示用K、M、G的人性化形式显示
6查看当前目录下user目录的大小,并不想看其他目录以及其子目录:
du -sh user
-s表示总结的意思,即只列出一个总结的值
du -h –max-depth=0 user
–max-depth=n表示只深入到第n层目录 , 此处设置为0 , 即表示不深入到子目录 。
7列出user目录及其子目录下所有目录和文件的大?。?
du -ah user
-a表示包括目录和文件
8列出当前目录中的目录名不包括xyz字符串的目录的大?。?
du -h –exclude=’*xyz*’
9想在一个屏幕下列出更多的关于user目录及子目录大小的信息:
du -0h user
-0(杠零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息 。
10只显示一个目录树的全部磁盘使用情况
du -s /home/linux
;
linux统计文件夹中文输出大小你可以使用Linux系统中的du命令来统计文件夹中文件的大小 。du命令可以显示每个文件夹中的文件大小,以及总文件夹大小 。使用du命令时,可以使用参数-s来显示总文件夹大小 , 也可以使用参数-h来以人类可读的格式显示文件大小 。例如,如果要统计文件夹/home/user/test中文件的大小 , 可以使用以下命令:du -sh /home/user/test 。
【linux文件统计的命令 linux统计文件内容】linux文件统计的命令的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于linux统计文件内容、linux文件统计的命令的信息别忘了在本站进行查找喔 。
推荐阅读
- phpcmsv9数据库操作函数,php数据库编程
- 程序员粒子特效html5,ae的粒子怎么导给程序员
- 鸿蒙版本神途,鸿星神途
- 大班体育游戏的教育随笔,大班体育游戏记录20篇
- java象棋代码图片 基于java的中国象棋游戏设计
- 直播房间号跟什么有关联,直播间房间号是什么意思
- 供电所如何做好营销,供电所如何做好营销管理
- 湖南手机直播系统哪种好,湖南手机直播系统哪种好用
- 怎么卸载mysql57 怎么卸载mysql57