版权声明:一起学习,一起进步,一起coding https://blog.csdn.net/sunshine2285/article/details/87102880
文件和目录的命名规则
- 一般长度允许1-255字符(有些比较老的unix不支持长文件名)
- 除斜线('/' 留作路径分隔符)外的所有字符都是命名的合法字符
- 不可打印字符亦可以做文件名(除了字节0)
- 大小写字母有区别(尽量不要使用大小写区分文件,说明性差)
/etc:系统配置信息
- 供系统维护管理用的命令和配置文件,文件格式为文本文件
- 功能类似windows的注册表信息
- passwd, hosts文件,*.conf
- 系统启动阶段初始化和启动各服务的脚本rc*.d
- profile/bash.bashrc系统级bash等shell的偏好设置
- 自定义的需要自启动的服务脚本rc.local
/tmp:临时目录
- 临时文件,每个用户都可以在创建临时文件,但只能删除自己的文件,不可以删除其他用户创建的文件
/var:系统变量
- 系统运行时要改变的数据
- 系统日志syslog等
可运行程序和设备文件
- /bin:系统常用命令,如ls,ln,cp,cat等
- /usr/bin:存放一些常用命令,如ssh,ftp,make,gcc,git等
- /sbin,/usr/sbin:系统管理员专用命令
- /dev:设备文件,如终端设备,打印进,磁盘等
头文件和库文件
- /usr/include:c语言头文件存放目录
- /lib,/usr/lib:存放各种库文件,指c语言的链接库文件,以及terminfo终端库等等【静态链接库文件.a后缀(archive),动态链接库文件后缀.so(shared objects:共享的目标代码,多个.o文件集成)】
【linux广泛使用动态链接库,静态链接库逐渐过时,使用动态链接库的好处是节省内存,可使用ldd查看】
文件通配符规则
星号 *
- 匹配任意长度的文件名字符串(包括空字符串)
- 点字符(.),当它作为文件名或路径名分量的第一个字符时,必须显示匹配
例如:*file 匹配makefile,不匹配.profile- 斜线(/)必须显示匹配,不管在任意位置
例如:a*c 匹配abc,不匹配a/bc
问号 ?
- 匹配任意单字符
方括号 [ ]
- 匹配括号内任一字符,也可以使用减号指定一个范围
波浪线 ~
- bash特有,代表当前用户的主目录
- ~username,代表username对应用户的主目录
点文件. 点点 .. 文件
- 代表当前目录与上级目录
- 来源于目录的存储结构,不是通配符处理程序完成的
文件通配符注意事项:
- 文件名通配符规则和正则表达式规则不同,应用场合不同
- 不同种类的shell的通配符规则会略有差异
- windows中 *.* 匹配所有文件,而linux中要求文件名中必须含有圆点
- 可以使用 */*.ch 匹配所有二级子目录下的.c 和 .h 文件 同样三级目录 */*/*.conf
文件通配符的处理过程:
- 文件名通配符的处理由shell完成,分成三个步骤
- 第一步:在shell提示符下,从键盘输入命令,被shell接受
- 第二布:shell对键入内容作若干加工处理,其中含有对文件通配符的展开工作(文件名生成),生成结果命令
- 第三步:执行前面生成的结果命令
- unix中由shell完成对文件通配符的展开,window中由命令本身来解释文件通配符