Appearance
Linux除了常用命令,还有一些高阶命令,使Linux使用人员能够快速的完成某些功能,尤其是对文件的操作。这里只介绍常用操作,要求熟练并且灵活使用。
wc操作文件命令
wc [-clw][文件...]
- -c:只显示Bytes数/字节数。
- -m:统计字符数,不能与-c同时使用
- -l:显示行数。
- -L:打印最长长度的行数
- -w:只显示字数。
sort对文件数据进行排序
sort [-命令][文件...]
- -n:按照数值排序
- sort:默认按字母进行排序
- -r:对排序结果进行反转
- -k 数字:根据某一列进行排序
uniq文件去重
uniq [-命令][文件...]
- uniq:默认会对文件去重,但是只去重相邻行
- -c:显示重复出现次数
- -u:返回文件不重复的行
- sort 文件 | uniq:去除所有重复行(原理:先排序,通过管道将结果传给uniq命令)
head获取前N条数据
- head -3 文件名:返回前三行
- sort -n 文件名 | head -3:排序后的前三行
Linux日期操作
- date +"%Y-%m-%d %H:%M:%S":格式化日期
- date +%s:返回时间戳
- 获取指定时间时间戳:date --date="2022-06-09 00:00:00" +%s
- date --date="1 days ago":获取1天以前的时间 如何获取指定月份的天数? -- 答:获取下一月1号,然后获取改时间1天以前的时间,截取天数%d即是当月天数
Linux进程管理相关命令
- ps -ef:显示所有进程
- ps -ef | grep java:查看java相关进程
- netstat -ant:查看端口占用情况,安装命令➡
yum install -y net-tools
- netstat -ant | grep 22:查看占用端口22的应用程序
- jps:显示当前用户已启用的java进程信息,只有安装配置jdk才能使用
- top:动态显示当前占用内存、cup最多的进程信息
- kill pid:根据pid关闭进程
- kill -9 pid:根据pid强制关闭进程
Linux三剑客之查找grep命令
-i:忽略大小写 -n:显示该行行号 -v:忽略包含指定字符串内容
- 查看文件中包含abc的行:grep abc hello.txt
- 正则表达式匹配a开头的行:grep ^a hello.txt
- 查看文件中包含abc的行(不区分大小写):grep -i abc hello.txt
Linux三剑客之编辑sed命令
sed:用来自动编辑一个或多个文件、简化对文件的反复操作
- 在文件的第二行下面添加内容:sed '2a\haha' hello.txt (此方法不会修改源文件,会返回修改后的结果)
- 在文件的第一行上面添加内容:sed '1i\haha' hello.txt (巧记:a是append,i是insert)
- 在文件的最后一行下面添加内容:sed '$i\haha' hello.txt ($代表最后一行)
- 删除第7行:sed '7d' hello.txt (巧记:d是delete)
- 每一行第一次出现的l改成i:sed 's/l/i/1' hello.txt
- sed [address]s/pattern/replacement/flags
- address:要操作的具体行,不写代表所有行
- s:表示替换操作
- pattern:需要替换的内容
- replacement:要替换的新内容
- flags:有多种用法
- 1~512任意数字,指在这一行出现的第几次才进行替换
- g,对所有匹配到的内容都进行替换
- 为空,在这一行出现的第一次进行替换
- 之前的操作都不会保存到源文件,测试后需要修改只需要加上 -i 即可,例如
sed -i '2a\haha' hello.txt
Linux三剑客之数据分析awk命令
基本格式:awk [option] programe file
- 显示第2列内容:awk '{print $2}' hello.txt (默认用空格分割列)
- 使用冒号(:)分割列:awk -F: '{print $2}' hello.txt
- $0代表所有行
- 使用正则表达式进行匹配:awk '/正则表达式/{print $0}' hello.txt
- 根据第一列进行正则匹配,但是显示所有列:awk '($行号 ~ /正则表达式/){print $0}'
TIP
小归纳:awk是对列的查询,grep是对行的查询,sed用来编辑文件,使用管道”|“能达到意想不到的操作