文件系统 1.一个文件具有两类数据 元数据 metadata 数据 data 索引中的信息为元数据,例如文件名,大小 索引指向的信息为数据 文件必定会占据空间,并且一定有文件名,但是文件名不占这个文件的空间,类似与人名不会长在身上,属于外围属性 目录索引也是也是文件,特殊的文件 2.文件名的命名规则 (1)文件名严格区分字符大小写,如file File 是不同的两个文件 (2)文件名可使用 / 以外的任意字符,并且不建议使用特殊字符 (3)文件名的长度,最长不能超过255个字符 (4)所有以 . 开头的文件,皆为隐藏文件。 3.关于字符/ 表示意义 (1)根目录 (2)路径分隔符 4.路径有两类 绝对路径:从根目录上起始的路径 相对路径:从当前目录起始的路径 5.当前目录 也叫做工作目录 working directory 查看当前目录的路径 命令是 pwd 表示方式: ./ 6.上一级目录的表示方式 . . 7.关于外部命令的运行过程,以及缓存 由于命令的可执行文件存在某个目录中 命令 ls 为例 输入ls后,shell程序会在PATH环境变量中存储的路径,逐一寻找匹配,变量中的各个路径用冒号隔开,直到找到匹配的可执行文件 但是此寻找匹配的操作,只有在第一次执行ls命令是进行,因为第一次执行后,会将该命令的正确路径记录下来,放到缓存中(缓存教师内存的一段空间) shell搜寻到的外部命令的路径结果,会缓存至KV存储中(键值存储)
命令 hash 可以查看KV(key-value)的内容
命令 hash -r 可以清除缓存中的所有内容
为什么要清除呢?因为有时候缓存中的内容已经失效,不能对应
当第一次执行命令后,该命令的可执行文件的路径会记录到缓存中,但是我们手动将可执行文件移动位置后,缓存的内容没有改变,执行该命令,会报错,无法执行
即使我们移动到位置仍然在PATH环境变量中的路径中,但是不执行寻找过程,所以只看缓存,而缓存已经不正确,所以需要清除
8.关于history命令 它有什么作用?相关的环境变量是什么?有哪些有用的选项?
管理历史命令
当用户登录Linux系统后,之后操作的所有命令,都在缓存中保存
此时 .bash_history中没有内容。
但是当用户退出后,缓存中的命令会自动保存到 .bash_history文件中
第二次登陆 执行命令,退出后,会追加到 .bash_history中
选项
history -a 执行后,将新操作的命令,追加到文件中,不需要退出登录
history -d 编号
执行这个命令后,会删除历史命令文件中这个编号所对应的命令
history -c 清除命令历史
快捷操作
!编号 这个命令,可以直接调用命令历史中 编号对应的命令,如!25 意为执行历史命令中编号25的命令
!字符 这个命令,可以直接调用命令历史中最近一个以该字符开头的历史命令,如 !string
!! 这个命令,执行上一条命令
注意:命令历史的空间是有限的