目录
5-1 Linux的体系结构
Shell:命令解释器,可编程
必记内容-Linux基础命令
- ls查看目录
- cat xxx.sql查看文件里的内容
- less xxx.sql查看文件,可前后翻页(使用 [pageup] [pagedown] 等按键),查看之前不会加载全文
- more xxx.sql 查看文件,仅能向前翻,加载全文
- vi xx.sql编辑文件
- vim xxx.sql编辑文件(vi的升级,使用得更多)
- echo $SHELL 查看当前的shell版本(一定要大写)
- cat /etc/shells查看本机器支持的shell版本
- chsh -s 某shell的路径:切换shell版本(change shell)
命令cat、more、less均可用来查看文件内容,主要区别有:
- cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况;
- more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。
- more比cat强大,提供分页显示的功能,less比more更强大,提供翻页,跳转,查找等命令
5-2 查找特定文件
如何查找特定的文件
- find path [options] params--在指定目录查找文件
- find ~ -name "XXX.java" ---精准查找文件
- find ~ -name "target*"--当前用户/home目录下模糊寻找
- find ~ -iname "target*" --当前用户/home目录模糊寻找忽略大小写
5-3 检索文件内容
Linux grep 命令:查找文件里符合条件的字符串
grep "需查找字符" 文件名
- grep -o 'target\[[0-9a-z]*\]' 筛选出文件中target开头后接数字或字符的字符串
- grep -v 'target' 过滤掉文件中包含 target 字符的内容
- 管道操作符 | 将指令连接起来,前一个指令的输出作为后一个指令的输入
- eg: fine ~ | grep "文件名"
- find ~|grep "target"--同find ~ -name "target"
管道操作符注意要点
- 不能以错误指令作为管道输入
- 右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃
- 常用接收数据管道命令:sed ,awk,grep,cut...
5-4 对日志内容做统计
对文件内容做统计
Linux 命令 awk :
- 一次读取一行文本,按输入分隔符进行切片,切成多个组成部分
- 将切片直接保存在内建的变量中,$1,$2,..($0表示行的全部)
- 支持对单个切片的判断,支持循环判断,默认分隔符为空格
- 打印出第一列和第四列的内容: awk '{print $1,$4}' 文件名
- 筛选出列指定字符的行: awk '$1=="tcp" && $2==1{print $0}' 文件名
- 打印出表头: awk '($1=="tcp" && $2==1) || NR==1 {print $0}' 文件名
- 以指定分隔符分割内容: awk -F "," '{print $2}' 文件名
5-5 批量替换文件内容
批量替换文本:
sed指令:语法:sed [option] 'sed command' filename
全名:stream editor,流编辑器
- sed 's/^Str/String/' aaa.java --替换Str打头字符串并输出,不将替换写入源文件
- sed -i 's/^Str/String/' aaa.java --^以xx开头,-i替换写入源文件
- sed -i 's/\.$/\;/' aaa.java --$以xx结尾,
- sed -i 's/Jack/me' aaa.java --仅替换每行第一个jack
- sed -i 's/Jack/me/g' aaa.java --g替换全文