Linux 目录详解

和 Windows 一样,Linux 也有目录的概念。系统中众多的文件需要借助到目录进行存储与管理。我们下面对 Linux 系统中的目录结构以及经常使用到的概念进行一个完整介绍。


Linux 系统目录结构


在 Windows下,系统把硬盘划分为不同的磁盘分区,每个磁盘分配一个不同的盘符,比如 C:\、D:\ 等等。每个分区都单独存放自己的文件,有自己的根目录,比如 C:\、D:\ 就相当于 C 盘和 D 盘的根目录了。而 Linux 则是将整个硬盘统一管理,整个系统只有一个根目录 "http://www.likecs.com/",所有的文件和目录都是在这个根目录下,它表示 Linux 文件系统的起点。另外要注意一点,Linux 中目录间的间隔使用的是斜线 (forward slash)"http://www.likecs.com/",而 Windows中用的是反斜线 (back slash)"\"。


为了规范,绝大多数的 Linux 发行版本中 (参见 《这么多Linux版本,你究竟该怎么选择?》)系统目录的机构都保持了一致。以 CentOS 7 为例,下面介绍一下常用的系统目录和它们的作用。


Linux 目录详解


/root:超级用户 root 的家目录

/bin:是 Binary 的缩写,用于存放系统中常用的命令,任何用户都有权限执行

/boot:存放系统启动时所需要的文件,Linux 的内核就存放在这个目录中

/dev:是 Device 的缩写,存放硬盘、光驱、鼠标等设备文件,在 Linux中访问设备和访问文件的方式是相同的

/etc:存放系统和程序所需的配置文件,作用类似于 Windows 的注册表

/home:普通用户的家目录。普通用户的家目录一般和用户账号名相同,比如 user1 的家目录是 /home/user1

/var:存放一些经常变化的文件,比如 /var/log 存放日志,/var/spool/mail 存放邮件

/lib /lib64:存放连接共享库,作用类似于 Windows 的 dll 文件。它们自己不能被执行,需要被其他的程序调用,几乎所有的应用程序都需要用到共享库

/usr:软件默认的安装位置,存放用户应用程序和文件,类似于 Windows 下的 Program Files

/media:用于挂载 U 盘、光驱等系统自动识别的设备

/lost+found:存放系统崩溃或意外关机时产生的碎片文件,正常情况下是空的

/mnt:用于临时挂载别的文件系统,比如增加一块硬盘,需要手动挂载

/opt:用于安装额外软件所用的目录,默认是空的

/proc:虚拟文件系统,是系统内存的映射。访问这个目录可以获取很多有用的系统信息

/sbin:s 就是 super 的意思,存放只有系统管理员才有权限执行的命令

/srv:存放一些服务启动后所需要提取的数据

/sys:该目录下安装了文件系统 sysfs,该文件系统是内核设备树的一个直观反映

/tmp:存放临时文件,所有用户都可执行写操作

/run:存放进程产生的临时文件,系统重启以后,这个目录会被清空

 

绝对路径与相对路径


1) 绝对路径:将目录用完整的路径表示出来,从根目录“/”开始,比如 /user/bin,使用绝对路径可以非常准确的表示一个目录的位置,只不过路径较长的时候,输入会比较麻烦。


下面看一个例子,当以用户 user1 登录后,使用 pwd (print working directory)命令来打印出当前的工作目录

$ pwd

/home/user1

/home/user1 就是当前工作目录的绝对路径,也是 user1 的家目录,如上面介绍,普通用户的家目录都是在 /home 下面。


2) 相对路径:顾名思义,就是不用绝对路径表示,而是用当前工作目录为起点来表示的相对路径,比如当前工作目录为 /home/user1,/home/user1/Desktop 用相对路径表示即为 ./Desktop 或者直接 Desktop,“.”表示当前工作目录,“..”表示上一级目录

$ cd Desktop

$ pwd

/home/user1/Desktop


常用的目录操作


1) cd:change directory 切换工作目录,语法格式为 

$ cd [目录名]


2) pwd:print working directory 打印当前工作目录,语法格式为 

$ pwd

如上面的例子演示,切换目录后可以再用 pwd 命令确认一下当前目录是否正确


3) ls:list,语法格式为 

$ ls [选项] [目录或文件名]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgyjgx.html