文件系统与目录的结构
一、文件系统:
(一)文件系统简介
1、文件和目录被组织成一个单根倒树状的结构;
2、文件系统从根目录下开始,用“/”表示;
3、根文件系统(rootfs):root filesystem
4、根据文件系统的不同,对“名称大小写”的敏感程度也不同
5、以.开头的文件为隐藏文件;
6、文件有两类数据“元数据”,“数据”
(二)文件名规则
1、除了斜杠和NUL,所有的字符都有效,但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们;
2、标准的linux文件系统(如ext4),文件名称大小写敏感,但是并不是所有的文件系统都对大小写敏感。
(三)文件系统结构
/boot:引导文件的存放目录,如:内核文件(vmlinuz),引导加载器(bootloader,grub)
/bin:供所有用户使用的基本命令,不能关联至独立分区;
/sbin:管理类的命令,不能关联至独立分区;
/lib:启动时程序依赖的共享库文件以及内核模块文件(32位系统)
/lib64:64位系统启动时程序依赖的共享库文件
/etc:配置文件目录
/home:普通用户的家目录
/root:root用户的家目录
/media:可移动设备的挂载点
/mnt:临时文件的系统挂载点
/dev:设备文件及特殊文件的存储位置
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务所用到的数据
/tmp:用于存储临时文件
/selinux:相关的安全策略等信息的存储位置
centos 6文件系统结构如下图:
(四)linux上应用程序的组成部分
1、二进制程序:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin;
2、库文件:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
3、配置文件:/etc,/etc/DIRECTORY,/usr/local/etc
4、帮助文件:/usr/share/man,/usr/share/doc,/usr/local/share/man,/usr/local/share/doc
linux下的文件类型
-:普通文件
d:目录文件
b:块设备
c:字符设备
l:符号链接文件
p:管道文件
s:套接字文件
在Linux下有两种路径的表达方式:
绝对路径:
以正斜杠开始
完整文件位置路径
可用于任何想指定一个文件名的时候
相对路径:
不以斜线开始
指定相对于当前工作目录或某目录的位置
可以作为一个简短的形式指定一个文件名
(五)文件管理命令:
cd ,ls,pwd,stat,touch,cp,alias,mv,rm,tree,mkdir,rmdir,ln,file
接下来会详细讲解这些文件管理命令
1、cd:用于切换当前工作目录
cd..切换到上一级目录
cd 切换到家目录
cd - 切换到上次的工作目录
2、ls:列出当前目录的内容或指定目录
ls -a:显示目录下所有的内容,包括隐藏文件
ls -l:显示文件详细信息,包括属性、大小、属主、属组、链接等。
ls -R:目录递归显示
ls -S:文件按从大到小排序
ls -u:配合-t选项,显示并按atime从新到旧排序
3、stat:显示文件状态
文件:metadata,data
(元数据) (数据)
时间戳:
access time:访问时间,atime:读取文件内容
modify time:修改时间,mtime:改变文件内容(数据)
change time:改变时间,ctime:元数据发生改变
4、touch:创建空文件和刷新文件时间
-a:仅改变atime
-m:仅改变mtime
-c:如果文件不存在,则不予创建
5、cp:复制文件和目录
cp [option]...-Tsource dest
-i:交互式
-r:递归
-a:归档
-d:不复制原文件,只复制链接名
-v:显示文件复制的详细信息
-f:强制复制
--perserv=[ATTR_LIST](用于在复制时选择需要保存的信息)
mode:权限
ownership:属主,属组
timestamp:时间戳
links:链接
all:所有的
-p:等同于--perserv=mode,ownership,timestamp
6、mv移动和重命令文件
-i:交互式
-f:强制
7、rm:删除
-i:交互式
-f:强制删除
-r:递归
8、tree:显示目录树
-d:只显示目录
-L:指定显示的层级数目
9、mkdir:创建目录
-p:创建目录时不报错,且可自动创建子目录
-v:显示详细信息
-m:创建目录时直接指定权限
10、rmdir:删除空目录
-p:递归删除父空目录
-v:显示详细信息
rm -fr:递归删除目录树
六、通配符
*:匹配零个或多个字符
?:匹配任何单个字符
~:当前用户家目录
~username:用户家目录
~+:当前工作目录
~-:前一个工作目录
[0-9]:匹配一个数字范围
[a-z]:匹配小写或大写字符
[A-Z]:匹配A-Z中任何一个字母,A-Z:AaBb...YyZ
[abc]:匹配abc中任何一个字母
[^abc]:匹配除abc的所有字符
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]:任意大写字母
[:alpha:]:任意大小写字母
[:alnum:]:任意数字或字母
[:space:]:空格
[:punct:]:标点符号
七、命令别名
在管理和维护linux系统的过程中,将会使用大量命令,重复和频繁的输入某个很长的命令或用法是不可取的,而命令别名的功能会将这个过程简化从而提高效率。通常情况下,系统已经定义了一些别名命令,这些命令我们可以通过alias命令来查看,如下: 在另外一些情况下,我们可能需要根据使用习惯来定义自己的命令别名,而这个我们可以通过alias命令来实现,如下:
注意:这种方法定义的命令别名只有在当前目录下才能生效,如果想要永久定义别名,则需要到配置文件下定义,配置文件的路径为:~/.bashrc(仅对当前用户生效) /etc/bashrc(所有用户都能生效)
撤销别名:unalias