一, 统计文档字数相关的信息
wc
命令用于计算字数,利用wc命令我们可以计算文件的字节(byte)数,字(word)数,或是列数。若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
- 语法
wc [-clw][–help][–version][文件…] - 参数
-c或 --bytes 或 --chars 表示只显示Bytes(字节)数
-w 显示文件的单词数,用空白字符分隔
-m 显示字符的数量
-l或 -lines 显示行数
–help 帮助
–version 版本信息
实例:
默认情况下,wc 将计算并显示文件的行数(空行也算噢!!),字数以及字节数
- 行数 -l
- 字数 -w
- 字节数 -c
- 字符数 -m
- wc还可以连续统计并显示多个文件的文件的行数,字数以及字节数
拓展: 字节和字符的辨析:
学习wc必须通读的一篇文章
二, 获取系统时间
date命令默认是获取当前系统时间:
通过一些参数可以对日期进行格式化以便阅读:
## date后面的参数没有空格则可以省略双引号
date+"%Y-%m-%d %H:%M:%S";
常用的date指令:
目的 | 指令 |
---|---|
获取当前的系统时间并格式化 | date + “%Y-%m-%d %H:%M:%S” |
获取时间戳(默认返回从1970-01-01到现在的秒数) | date +%s ,若要返回毫秒,则, date+%s"000" |
获取指定的日期:
如: 2026年的2月有多少天:
三, 进程相关的指令
3.1 基本介绍
- 在Linux中, 每个执行的程序(代码)都成为一个进程, 每个进程都分配一个ID号.
- 每一个进程, 都会对应一个父进程, 而这个父进程可以复制多个子进程.
- 每个进程都可能是以两种方式存在的, 前台与后台, 所谓前台进程就是用户目前的屏幕上可以进行操作的. 后台进程则是实际上真正去执行操作的,
- 一般系统的服务都是以后台进程的方式存在, 而且都会常驻在系统中. 直到关机才结束.
3.2 ps
–>显示进程相关信息
ps
ps命令是用来查看目前系统中, 有哪些正在执行, 以及它们执行的状况, 可以不加任何参数.
ps 参数以及含义
- ps a 显示当前终端的所有进程信息;
- ps u 显示进程的归属用户及内存的使用情况;
- ps x 显示后台进程运行的参数
- ps -l 长格式显示更加详细的信息;
- ps -e 显示所有进程;
- ps -f 长格式显示更加详细的信息;
3.2.1 ps常用指令一, ps aux
ps aux, 用来显示现行终端机下的所有程序,包括其他用户的程序。
输出结果中各个字段的含义:
相关的应用实例:
- ps aux | grep ssh
3.2.2 ps常用指令二, ps -ef
ps -ef 全格式显示系统内的
所有进程, 以及其父进程
-e显示所有进程, -f 全格式显示进程(包括父进程)
输出结果中各个字段的含义:
相关的应用实例:
- ps -ef | grep java 列出 java相关的进程
3.3 netstat
–>显示端口信息
3.3.1 定义
Netstat 是一款命令行工具,可用于列出
系统上所有的网络套接字连接情况
,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字.
3.3.2 常用指令
netstat -anp 查询端口占用情况
-a或--all 显示所有连线中的Socket。
-n或--numeric 直接使用IP地址,而不通过域名服务器。
-p或--programs 显示正在使用Socket的程序识别码( PID)和程序名称。
- eg: netstat -anp |grep 22
查询22端口(ssh服务对应)的使用情况
3.4, top
-->动态监控进程信息
3.4.1 定义
top命令:
主要作用在于动态显示系统消耗资源最多的进程信息
,包含进程ID、内存占用、CPU占用等和ps命令作用基本相同,唯一的区别是top命令能够动态显示进程信息
- 基本语法: top [选项]
- 选项说明
选项 | 功能 |
---|---|
-d 秒数 | 指定 top命令每隔几秒更新,默认是3秒 |
-i | 使 to不显示任何闲置或僵死进程 |
-p | 通过指定监控进程 ID来仅仅监控某个进程的状态 |
- 交互操作(在top执行后, 自定义输出)
操作 | 功能 |
---|---|
P | 以CPU使用率排序, 默认就是如此输出 |
M | 以内存的使用率排序 |
N | 以PID排序 |
u | 查看特定用户的进程 |
k 根据pid杀掉进程 | |
q | 退出top |
3.4.2 应用实例
- 监控特定用户
top:输入此命令,按回车键,查看执行的进程。u:然后输入“u”回车,再输入用户名,即可
- 终止指定的进程
top:输入此命令,按回车键,查看执行的进程。k:然后输入“k”回车,再输入要结束的进程ID号
- 指定系统状态更新的时间
top -d 秒数
3.5, kill
-->终止进程
3.5.1 kill 常用指令:
基本语法 | 功能描述 |
---|---|
kill [选项] 进程号 | 通过进程号PID终止进程, 选项填 -9代表强制终止 |
killall 进程名称 | 通过进程名称终止进程, 也支持通配符, 在系统因负载过大而变慢的时候较有效 |
kill 和 kill -9的区别:
kill指令的几个栗子:
- 终止特定的进程/服务:
ps -ef | grep xxx
查找pid,kill pid自杀。 (ps aux也可以)
- 终止多个进程/服务:
killall 进程名
- 强制终止一个终端
- 我杀我自己
3.6 pstree
-->查看进程树
四, sort
, uniq
指令
1, sort命令:
将文件内容进行排序,并把排序结果输出.
-
格式:
sort [参数] [文件]
-
常用参数:
参数 用途 -u 去除 所有
的重复行-n 按照数值大小排列 -r 逆序排序 -c 检查文件是否有序 -k 指定从文件的第几列开始排序 -t 设置排序时所用的分割字符
1.1, sort 示例
- 按数字大小顺序输出:
sort -n testNum.txt
2. 去除重复
sort -u testNum.txt
3. 逆序并去重
sort -rnu testNum.txt
新加栗子, 原始数据:
4. 按照“:”分割后的第三列倒序排序。
2, uniq 命令:
uniq用于去除文本文件中连续的重复行,中间不能夹杂其他文本.
sort与uniq的区别:
sort命令是只要有重复行,它就去除(指令为:
sort -u
),而uniq重复行**必须要连续,**也可以用他忽略文件中的重复行.
由于uniq只能检测到相邻的行.所以, 去重 (uniq)之前首先对数据进行 排序(sort)!!!
- 格式:
- uniq [参数] [文件]
- 常用参数:
- -c 打印每行在文本中重复出现的次数
- -d 只显示有重复的记录,每个重复记录只出现一次
- -u 只显示没有重复的记录
2.1, uniq 示例
- 打印输出文本重复次数
- uniq -c testNum.txt
- 显示有重复的记录
- uniq -d testNum.txt
- 显示不重复的行
- uniq -u testNum.txt
- uniq -u testNum.txt
由于uniq命令只检测相邻行,所以此时有部分错误
- uniq常与sort搭配使用:
- 排序并去重输出:
- sort -n testNum.txt | uniq
- 排序并去重输出:
五, grep
,sed
,awk
三大指令
1, grep命令
grep是“
global search regular expression and print out the line
”的简称,意思是全面搜索正则表达式
,用于搜索关键字并将其打印出来。这个命令可以结合正则表达式使用,查找文件里符合条件的字符串,它也是linux使用最为广泛的命令。
grep命令的选项用于对搜索过程的补充,而其命令的模式十分灵活,可以是变量、字符串、正则表达式。需要注意的是:当模式中包含了空格,务必要用双引号将其引起来。
linux系统支持三种形式的grep命令,大儿子就是
grep,标准
,模仿的代表。二儿子兴趣爱好多-egrep,简称扩展grep命令,其实和grep -E等价,支持基本和扩展的正则表达式
。小儿子跑的最快-fgrep,简称快速grep命令,其实和grep -F等价,不支持正则表达式,按照字符串表面意思进行匹配
。
- 格式:
- grep [参数]
- 常用参数:
- i 忽略大小写
- v (常用于反选,跳过搜索) 显示不包含匹配文本的所有行
- n 显示行号
1.1, grep 示例
- 忽略大小写查询xx并反选xxx, 打印输出时还要显示行号
- grep -i -n sb poem.txt | grep -v sbb
2, sed命令
sed命令是利用脚本来处理文本文件。主要通过脚本实现自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
sed命令默认不会修改源文件数据,而是会将数据复制到缓冲区,修改也仅限于缓冲区中的数据,最终把缓存区的数据输出到控制台.
1️⃣sed命令格式:
sed的命令格式: sed [option] ‘sed command’ filename
sed的脚本格式:sed [option] -f ‘sed script’ filename
2️⃣sed 命令[option]的参数:
-f: 将sed动作写入到文件
-e: 默认选项,直接在命令行模式上进行sed动作编辑
-n: 只打印出模式匹配的行
-i:直接修改文件的内容,
3️⃣sed 动作:
a :新增
, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代
, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除
,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入
, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印
,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代
,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
3, awk命令
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在对数据分析并生成报告时显得尤为强大. awk把文件逐行读入,以空白字符为默认分隔符并将每行内容分片,切开的部分再进行各种分析处理.