Linux 文件目录笔记
本来参考自菜鸟教程的Linux系统目录结构以及Linux文件目录结构详解
Linux通用树状目录结构:
目录 | 应放置的内容 |
---|---|
/bin | bin 是 Binary 的缩写, 这个目录存放着最经常使用的命令。,但/bin 比较特殊。因为/bin 放置的是在单人维护模式下还能够被操作的指令。在/bin 底下的指令可以被 root 与一般帐号所使用,主要有:cat,chmod(修改权限), chown, date, mv, mkdir, cp, bash 等等常用的指令。 |
/boot | 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。Linux kernel 常用的档名为:vmlinuz ,如果使用的是 grub 这个开机管理程式,则还会存在/boot/grub/这个目录。 |
/dev | dev 是 Device(设备)的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。在 Linux 系统上,任何装置与周边设备都是以档案的型态存在于这个目录当中。 只要通过存取这个目录下的某个档案,就等于存取某个装置。比要重要的档案有/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等 |
/etc | 这个目录用来存放所有的系统管理所需要的配置文件和子目录。系统主要的设定档几乎都放置在这个目录内,例如人员的帐号密码档、各种服务的启始档等等。 一般来说,这个目录下的各档案属性是可以让一般使用者查阅的,但是只有 root 有权力修改。 FHS 建议不要放置可执行档(binary)在这个目录中。 比较重要的档案有:/etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/等等。 |
/home | 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。在你新增一个一般使用者帐号时,预设的使用者 home 目录都会规范到这里来。比较重要的是,home 目录有两种代号,~ :代表当前使用者的家目录,而 ~guest:则代表用户名为 guest 的家目录。 |
/lib | 这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。就像是 java 的依赖包一样,有些功能需要依赖包才能实现。尤其重要的是/lib/modules/这个目录,因为该目录会放置核心相关的模组(驱动程式)。 |
/media | linux 系统会自动识别一些设备,例如 U 盘、光驱等等,当识别后,linux 会把识别的设备挂载到这个目录下。与/mnt 目录有相似之处。 |
/mnt | 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。这是管理员用于手动挂载一些临时媒体设备的目录,比如插入 U 盘后,可以通过 mount /dev/sda1 /mnt/usb1 将/dev 中的 U 盘接口挂载到 mnt 下,就可以通过 mnt 访问 U 盘了。 |
/opt | 这是给主机额外安装软件所摆放的目录。比如你安装一个 ORACLE 数据库则就可以放到这个目录下。默认是空的。 如果你想要自行安装额外的软体(非原本的 distribution 提供的),那么也能够将你的软体安装到这里来。 不过,以前的 Linux 系统中,我们还是习惯放置在/usr/local 目录下。 |
/root | 该目录为系统管理员,也称作超级权限者的用户主目录。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有 root 的 home 目录,所以我们会希望 root 的 home 目录与根目录放置在同一个分区中。 |
/sbin | s 就是 Super User 的意思,这里存放的是系统管理员使用的系统管理程序。Linux 有非常多指令是用来设定系统环境的,这些指令只有 root 才能够利用来设定系统,其他使用者最多只能用来查询而已。放在/sbin 底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。至于某些伺服器软体程式,一般则放置到/usr/sbin/当中。至于本机自行安装的软体所产生的系统执行档(system binary),则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs 等等。 |
/proc | 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。他放置的资料都是在内存当中,例如系统核心、进程吗、周边装置的状态及网络状态等等。因为这个目录下的资料都是在内存当中,所以本身不占任何硬盘空间。 |
/srv | srv 可以视为 service 的缩写,该目录存放一些服务启动之后需要提取的数据。 |
/run | 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。 |
/sys | 这个目录其实跟/proc 非常类似,也是一个虚拟的档案系统,主要也是记录与核心相关的资讯。 包括目前已载入的核心模组与核心侦测到的硬体装置资讯等等。 这个目录同样不占硬盘容量。 |
/tmp | 这个目录是用来存放一些用户或者正在执行的程序产生的临时文件 |
/usr | usr 是 Unix Software Resource 的缩写,也就是 Unix 操作系统软件资源所放置的目录,而不是用户的数据。因为是所有系统默认的软件(distribution 发布者提供的软件)都会放置到/usr 底下,因此这个目录有点类似 Windows 系统的 C:\Windows\ + C:\Program files\这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。 |
/var | 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。如果/usr 是安装时会占用较大硬盘容量的目录,那么/var 就是在系统运作后才会渐渐占用硬盘容量的目录。 因为/var 目录主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如 MySQL 数据库的文件等等。 |
与开机相关的目录(必须放在根目录):
- /etc:配置文件
- /bin:重要执行档
- /dev:所需要的装置文件
- /lib:执行档所需的函式库与核心所需的模块
- /sbin:重要的系统执行文件
不要随意修改的关于系统的重要文件:
-
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
-
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
-
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
绝对路径与相对路径:
- 绝对路径:由根目录(/)开始写起的文件名或目录名称,例如 /home/dmtsai/.bashrc;
- 相对路径:相对于目前路径的文件名写法(非/开头都是相对路径)。其中 . 代表当前的目录,也可以使用 ./ 来表示; … 代表上一层目录,也可以 …/ 来代表。
平时安装软件路径:
/opt目录下或者/home中当前用户的/local目录下,软件官网下载的推荐放在opt目录下,额外第三方软件推荐放在/home当前用户下的/local文件夹下。
/mnt和/dev和/media的区别:
- /mnt 是被系统管理员使用,手动挂载一些临时媒体设备的目录。
- /media 是自动挂载的目录,比如我们的U盘插在ubuntu下回自动挂载,就会在/media下生成一个目录,这个目录就是U盘所在目录,或者说文件。
- /dev 不是存放设备的驱动程序,而是作为访问外部设备文件的接口。比如,我们的U盘,插入linux系统后,用fdisk -l查看分区,显示文件为/dev/sda1。则我们可以将u盘挂载到/mnt/usb1下,mount /dev/sda1 /mnt/usb1 即可。
Linux目录结构和常用命令介绍的更为详细,如还有不理解可以去看看,他还介绍一些常用的命令。