Linux的目录结构(FHS)
Filesystem Hierarchy Standard(文件系统目录标准)缩写为FHS,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件,FHS实际上仅是规范在根目录下面各个主要目录应该放什么样的文件。
FHS定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。
常见目录的用途:
/:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。
当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。
/bin: 可执行二进制文件的目录。存放的是系统的命令,如常用的命令ls、tar、mv、cat等。
/usr/bin与/bin类似
/sbin:存放给系统管理员 root 使用的命令的目录,存放的是管理命令。
放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。
/sbin、/usr/sbin、/usr/local/sbin类似,
与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。
/boot:存放的是系统的启动文件及内核。放置linux系统启动时用到的一些文件,
如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub。
/dev: 设备文件目录。存放linux系统下的设备文件,
访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。
/etc:存放系统配置文件的目录。不建议在此目录下存放可执行文件,
重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、
/etc/sysconfig、/etc/xinetd.d。
/home:系统默认的普通用户的家目录。新增用户账号时,用户的家目录都存放在此目录下。
~表示当前用户的家目录,~edu 表示用户 edu 的家目录。
/root:超级管理员的家目录
/lib:系统库文件主目录,系统使用的函数库的目录。
程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。
/usr/lib、/usr/local/lib类似
/media:挂载点目录,移动设备
/mnt:挂载点目录。光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,
也不一定,可以选择任意位置进行挂载。
/opt:可选目录,第三方程序的安装目录,给主机额外安装软件所摆放的目录。
/proc:虚拟的文件系统,反映出来的是内核,进程信息或实时状态
此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,
所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、
/proc/ioports、/proc/net/* 等。
/sys:跟硬件设备相关的属性映射文件
/run : 与程序运行相关的信息,如进程号,套接字文件等
/tmp:临时文件目录, /var/tmp
/var:变化的数据文件目录,放置系统执行过程中经常变化的文件。
/var/log :如随时更改的日志文件
/var/log/message:所有的登录文件存放目录,
/var/spool/mail:邮件存放的目录,
/var/run:程序或服务启动后,其PID存放在该目录下。
/usr:用户程序目录,包含二进制文件、库文件、文档和源码安装的程序等
/usr/bin 存放应用程序,
/usr/share 存放共享数据,
/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件,
/usr/local: 存放软件升级包,
/usr/share/doc: 系统说明文件存放目录,
/usr/share/man: 程序说明文件存放目录。
/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下。
/srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。
绝对路径和相对路径
绝对路径
从根目录(/)开始描述的路径为绝对路径,如:
cd /home 进入的是根目录下的普通用户的家目录
cd /usr/include 进入的是根目录下的usr目录下的include目录下
拓展:pwd命令显示当前路径
也就是进入了usr目录下的include文件夹里
相对路径
从当前位置开始描述的路径为相对路径,例如当前位置为/usr/include文件夹下,相对路径就是/usr/include,当前文件夹在有一个arpa的文件夹
此时,进入该文件夹就只需要使用cd命令
cd arpa
就能进入arpa的文件夹下
两个特殊目录
两个特殊目录:
. 表示当前路径
.. 表示上一级路径,即父目录
注意:根目录下的 . 和 . .都表示当前目录
cd .. 表示返回到上一级目录
cd ../.. 表示返回到上两级目录
Windows和Linux文件系统区别
在 windows 平台下,打开“计算机”,我们看到的是一个个的驱动器盘符:
在 Linux 下,点开文件图标,默认是到home目录,这是你所登录的用户的目录
我们是看不到这些驱动器盘符,我们看到的是文件夹(目录),就相当于windows下盘符的目录
而查看Computer目录,这是根目录,从Computer目录中的home目录下,可以找到你的用户,
上面的home目录下的,默认的是你当前的用户,比如我进入Computer目录中的home目录下,这里有两个用户
圈起来的带房子图标的这个文件就是你当前的用户目录的文件
ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面【万物皆文件】