linux基础学习 -- 文件目录相关

版权声明:一起学习,一起进步,一起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中由命令本身来解释文件通配符

猜你喜欢

转载自blog.csdn.net/sunshine2285/article/details/87102880
今日推荐