Linux三剑客:
grep:查找
sed:编辑
awk:分析
- grep - 正则表达式
[root@localhost ~]# grep ^a hello.txt
abc
- grep - 忽略大小写,还有一些场景需要查询出来对应字符串所在的行号,方便我们快速在文件中定位字符串所在的位置,这个也很简单,通过-n参数就可以实现
[root@localhost ~]# grep -i ABC hello.txt
abc
[root@localhost ~]# grep -i ABC -n hello.txt
7:abc
- sed - 增、删、追加、替换,sed命令的所有操作,在执行之后都不会修改源文件中的内容,这样只能作为测试,如果需要修改源文件的话,其实也很简单,只需要增加一个 -i 参数即可
//a其实表示是append的意思,在指定行后面追加内容
//i表示是insert的意思,是在指定行的前面插入内容[root@localhost ~]# sed '2a\haha' hello.txt
hello world!
hello world!
haha
hello world!
hello world!
hello world!
[root@localhost ~]# sed '1i\haha' hello.txt
haha
hello world!
hello world!
hello world!
//$ 表示 最后一行
[root@localhost ~]# sed '$i\haha' hello.txt
hello world!
hello world!
hello world!
hello world!
hello world!
hello world!
haha
abc//删除第7行
[root@localhost ~]# sed '7d' hello.txt
hello world!
hello world!
hello world!
hello world!
hello world!
hello world!
//删除最后一行
[root@localhost ~]# sed '$d' hello.txt
hello world!
hello world!
hello world!
hello world!
hello world!
//替换
sed后面的参数格式为[address]s/pattern/replacement/flags
这里的address 表示指定要操作的具体行,是一个可选项,值为空就是全部行
s 表示替换操作,pattern 指的是需要替换的内容,replacement 指的是要替换的新内容,flags有多种用法,挑两种常见的说一下
第一种就是flags可以表示为1~512之间的任意一个数字,表示指定要替换的字符串在这一行中出现第几次时才进行替换
第二种就是flags可以直接表示为g,这样的意思就是对每一行数据中所有匹配到的内容全部进行替换、如果flags位置的值为空,则只会在第一次匹配成功时做替换操作
awk - 在具体使用awk之前我们还需要掌握awk的一个特性,就是awk在处理文本数据的时候,它会自动给每行
- ps命令
ps命令是用来显示进程相关信息的,他的一个典型应用就是在后面跟e和f参数,显示系统内的所有进程ps -ef,显示 java 进程是 ps -ef | grep java,
显示出这个信息其实说明没有找到java进程信息,下面返回的这一行表示是grep进程本身,这样容易给我们造成错觉,想把它去掉。使用grep加上-v参数再做一次过滤即可,表示忽略包含指定字符串的数据。
- netstat命令
常见netstat -anp,如查看22 端口:netstat -anp | grep 22
- top命令:
主要作用在于动态显示系统消耗资源最多的进程信息,包含进程ID、内存占用、CPU占用等
和ps命令作用基本相同,唯一的区别是top命令能够动态显示进程信息,如果是多核CPU,想查看具体每个CPU的使用情况的话可以在监控模式中按键盘上的1,就可以查看每一个CPU的情况了
- kill命令:杀进程
kill PID 相当于我告诉你一声让你自杀,然后你就自己挥刀自杀了
kill -9 PID 针对不自觉的,没有自杀成功的,那我就直接亲自出马了