linux:
体系结构主要分为:用户态(用户上层活动)和内核态
内核:本质是一段管理计算机硬件设备的程序
系统调用:内核的访问接口,是一种能再简化的操作
公共函数库:系统调用的组合拳
shell: 命令解释器,可编程
通过echo $SHELL 查看 shell的版本
返回结果:/bin/bash
如何查找特定的文件?
语法 find path [options] params
作用:在指定目录下查找文件
作用域:只能在当前路径的子路径下才能找到
例子:find -name "aa.java"
返回:/dsad/dasd/das/ (文件路径)
全局搜索的方法:find / -name "aa.java"
(在linux中,/ 代表根目录,所以会从根目录进行查找)
模糊查询:find / -name "aa*"
(区分大小写)
find / -iname "aa*"
(不区分大小写)
man find : 更多关于find指令的使用说明
检索文件内容?
语法 grep [options] pattern file
作用:查找文件里符合条件的字符串,支持正则
例子:
grep "xxx" aa*
(在aa开头的文件中,查找 xxx字符串)
管道操作符 |
作用:可将指令连接起来,前一个指令的输出
作为后一个指令的输入
find / -name "aa"
find / | grep "aa"
效果是一样的
使用管道注意的要点;
1.只处理前一个命令正确输出,不处理错误输出
2.右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃
查看tomcat进程的指令
ps -ef | grep tomcat |grep -v “grep”
(其中grep -v "grep" 是为了过滤掉 本身自己本身的这条信息)
grep -o 'xxx'筛选出符合的字段
grep -v 'xxx'过滤掉包含这个字段的
一般
grep 'xxx' aa.log|grep -o 'xxx1'
如何对文件内容做统计?
语法 awk [options] 'cmd' file
作用:一次读取一行文本,按输入分隔符进行切片,
切成多个组成部分
将切片直接保存在内建的变量中,$1,$2...($0表示行的全部)
支持对单个切片的判断,支持循环判断,默认分隔符为空格
例子:
awk '{print $1,$3}' aa.text
(输出,按列 显示 第一列 和 第四列)
awk '$1=="aa" && $2==2 {print $0}'
(筛选出s1,s2符合条件的,$0 表示全部列)
(NR == 1 表示 表头)
awk -F "," '{print $2}' aa.text
(以 逗号 为分隔符,选择第二列)
awk 还可以用来统计
awk '{arr[$1]++} END{for(i in arr)print
i "\t" arr[i]}'
(用一个arr 一个数据进行存储)
批量替换文本内容?
语法 sed [option] 'sed command' filename
适合对文本进行操作
例子:
sed -i 's/^Str/String/g' aa.text
(s:表示对字符串进行操作/ ^ :表示打头的 ; Str 表示要替换的字符串;$:表示以某某结尾,要写在后面;/
String:表示替换的值;/g:表示全文替换,不加的话,只替换每行的第一个)