0.Linux根目录下的文件介绍
首先cd /进到根目录下,ls列出当前文件夹下所有文件:
/
root,存放root用户的相关文件
home,存放普通用户的相关文件
bin,存放常用命令的目录,如vi,su
sbin,要具有一定权限才可以使用命令
mnt,默认挂载光驱和软驱的目录
etc,存放配置的相关文件
var,存放经常变化的文件,如网络连接的sock文件 、日志
boot,存放引导系统启动的相关文件
usr,安装一个软件的默认目录,相当于windows下的program files
proc,这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
srv ,service缩写。该目录存放一些服务启动之后需要提取的数据
sys,这是linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统
tmp,这个目录是用来存放一些临时文件的
del,类似于windows的设备管理器,把所有的硬件用文件的形式存储
media,系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。
opt,这是给主机额外安装软件所摆放,如安装oracle数据库就可放到该目录下默认为空。
1.打印日历 cal
全称📆 :calender
作用:通过特定的选项,查看特定的年和月的信息
1.打印当前年当前月的日历 模板:cal 2.打印某一年12个月的日历: 模板:cal 年份 例子:cal 2022 3.打印当前年上个月,这个月,下个月的日历 模板:cal -3
更多信息:
2.查找指定文件 find
基本的认识:我们在Linux中使用的指令,程序,工具其实也是c/c++等语言写的,也是文件。
- 如果我们要查找一条指令,我们可以使用which + 指令
- 如果我们要查找一个文件,我们可以使用find命令
- 模板: find 路径 选项[查找的标准:按文件名,创建时间等] 参照的信息
例子: find ~ -name test.c
(从家目录开始递归查找所有test.c文件,打印出从家目录开始的相对路径)
查看某路径下,某文件的位置 模板:find 路径 -name 文件名 例子:find . -name test.c
当前文件结构下,比如我要在当前路径,查找test.c文件:
3.行过滤工具 grep
基本认识:文本三剑客
- grep 过滤行内容。
- awk 过滤字段。
- sed 过滤行内容;修改行内容。
3-1热键第二弹
热键:经常被使用的键
续第一弹热键,借此行过滤工具的章节,我们今天再来给大家增加几个热键:
ctrl+r :通过ctrl+r,然后输入历史命令的部分片段,就可以从历史命令中过滤出相匹配的命令。
tab :当我们只记得命令的前几个字母,后面的字母想不起来的时候,就可以输入记得的前几个字母,然后按下两次tab键,就可以从所有命令中检索出所有已知字符开头的命令。
上面的热键我之所以在这里给大家讲是因为这里的两个热键和我们行过滤工具grep的功能是类似的,好好体会一下吧~~
3-2 拓展[正则表达式]:
需求:有时候我们可能会想在一篇文章中找到所有的邮箱或者前后端手机号码校验的过程中看看用户输入的手机号码符不符合第一个数字为1,总共11位数,我们这时候就会用到正则表达式。
定义:正则表达式又叫做规则表达式,是一种文本过滤模式,通过一些规则来过滤文本,从而匹配出我们需要的文本信息。(想一想爬虫)
全称:规则表达式(Regular Expression),通常叫做regex或RE.
更多关于正则表达式的一些知识(比如元字符之类的)参照:
[https://www.ydlclass.com/doc21xnv/javase/regex/#%E4%B8%80%E3%80%81%E5%85%83%E5%AD%97%E7%AC%A6] 正则表达式
3-3 grep的使用
全称:全局规则表达式打印(Global Regular Expression Print)
还记得我们之前通过shell脚本写入file.txt文件中的hello 0到hello 1000的文本内容吗?假如我打印file.txt中所有带hello 99的文本行,我这个时候就可以grep 'hello 99' file.txt过滤出所有带'hello 99'的文本行。
于此同时,我们还可以带上更多的选项来完成我们更准确的需求:
1.(正向匹配)匹配file.txt中所有带'hello 99'的文本行: 例子:grep 'hello 99' file.txt 管道版本:cat file.txt | grep 'hello 99' 2.(反向匹配-v)匹配file.txt中所有不带'hello 99'的文本行: 例子:cat file.txt | grep -v 'hello 99' 3.(大小写忽略-i)大小写忽略匹配file.txt中所有带'hello 99'的文本行: cat file.txt | grep -i 'hello 99'
4.正则表达式的区间写法: 正则提供一个元字符中括号 [] 来表示区间条件。
限定0到9 可以写成[0-9],如果数字不是连续的,比如限定139,可以写成[139]
限定A-Z 写成[A-Z]
限定某些数字 [165] 例子:'hello 990'到'hello 999'的文本行就可以用正则表达式表示为:hello 99[0-9]
4.(区间过滤 [0-9])区间过滤出'hello 990'到'hello 999'的文本行 例子:cat file.txt | grep 'hello 99[0-9]'