每天一个Linux命令(23)--linux 目录结构(二)

  二、/usr 的意义与内容

  依据FHS的基本定义, /usr 里面放置的数据属于可分享的与不可变动的(shareable,static), 如果你知道如何透过网络进行分区的挂载(例如在服务器篇会谈到的NFS服务器),那么/usr 确实可以分享给局域网络内的其它主机来使用。

  /usr 不是user的缩写,其实 usr 是Unix software resource 的缩写,也就是Unix 操作系统软件资源所放置的目录,而不是用户的数据啦。这点要注意,FHS建议所有软件开发者,应该讲他们的数据合理的分别放置到这个目录下的子目录,而不要自行建立软件自己独立的目录。

  因为是所有系统默认的软件都会放置到/usr底下,因此这个目录有点类似 Windows 系统的 C:\windows\  +  C:\Program fules\ 这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。一般来说,/usr 的子目录建议有底下这些:

目录   应放置文件内容  
/usr/X11R6/
为 X Window System 重要数据放置的目录,之所以取名为X11R6 是因为

最后的X版本为 第11版,且该版的第6次出版。(原文台湾腔太浓,我有时候也蒙)

/usr/bin/
绝大部分的用户可使用指令都放在这里。请注意到它与 /bin的不同之处。

(是否与开关机过程有关)

/usr/include/
c/c++等程序语言的档案头(header)与包含档案(include)放置处,当我们以tarball

方式(*.tar.gz 的方式安装软件)安装某些数据时,会使用到里头的许多包含档。

/usr/lib
包含各应用软件的函式库、目标文件(object file), 以及不被一般使用者惯用的执行档

或脚本script。某些软件会提供一些特殊的指令来惊醒服务器的设定,这些指令也不会经常

被系统管理员操作,那就会被摆到这个目录下啦。要注意的是,如果你使用的是x86_64

Linux 系统,那可能会有/usr/lib64/目录自动生成。

/usr/local/
系统管理员在本机自行安装自己下载的软件时,建议安装到此目录,这样会比较便于管理。

举例来说,你的发行版提供的软件比较旧,你想安装较新的软件但又不想移除旧版,此时你

可以将新版本的软件安装于/usr/local 目录下,可与原先的旧版本软件区分开了。

/usr/local 下也是有一套子目录:bin. etc. include.  lib 等

/usr/sbin
非系统正常运作所需要的系统指令。

最常见的就是某些网络服务器软件的服务指令(daemon)

/usr/share
放置共享文件的地方,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据,

因为几乎都是文本文件。在此目录下常见的还有这些子目录:

/usr/share/man: 联机帮助文件

/usr/share/doc: 软件杂项的文件说明

/usr/share/zoneinfo: 与时区有关的时区文件

/usr/src/
一般原始码建议放置到这里, src 有 source 的意思。至于核心原始代码则建议放置

在/usr/src/linux/ 目录下。

  三、 /var  的意义与内容:

  如果 /usr 是安装时会占用较大硬盘容量的目录,那么 /var 就是在系统运作后才会渐渐占用磁盘容量的目录。  因为 /var 目录主要针对常态性变动的文件,包括缓存cache、登录档 log file 以及某些软件运作所产生的文件,包括程序文件 (lock file, run  file), 或者例如MySQL数据库的文件等等。常见的子目录有:

目录   应放置的文件内容  
/var/cache/   应用程序本身运作过程中会产生的一些暂存档  
/var/lib/
程序本身执行的过程中,需要使用到的数据文件放置的目录。

在此目录下各自的软件应该要有各自的目录。举例来说,MySQL的数据库放置到

/var/lib/mysql/ 而rpm 的数据库则放到 /var/lib/rpm 去

/var/lock
某些装置或者是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用

该装置时,就可能出现一些错误的状况,因此就得要将该装置上锁(lock),

以确保该装置只会给单一软件所使用。举例来说,刻录机正在刻录一块光盘,你想一下,

会不会有两个人同时在使用同一个刻录机烧片?如果两个人同时刻录,那片子写入的是

谁的数据?所以当第一个人在刻录时该刻录机就会被上锁,第二个人就得要在该设置

解除锁定后才能够继续使用。

/var/log/
非常重要的文件目录,这是登录文件放置的目录。里面比较重要的文件

/var/log/messages,  /var/log/wtmp   (记录登入者的信息)等。

/var/mail/
放置个人电子邮件信箱的目录,不过这个目录也被放置到 /var/spool/mail 目录中,

通常这两个目录是互为链接文件。

/var/spool  
这个目录通常放置一些队列数据,所谓的队列就是排队等候其他程序使用的数据。

这些数据被使用后通常都会被删除。举例来说,系统收到新信息会放置/var/spool/mail中,

但使用者收下这个邮件后原则上就会被删除。信件如果暂时寄不出去会被放到/var/spool/mqueue中

等到被送出后在删除。如果是工作定时任务数据(crontab),就会被放置到/var/spool/cron/目录中。

/var/run/ 某些程序或者是服务启动后,会将他们的PID放置在这个目录下

  由于FHS仅是定义出最上层 / 及次层 (/usr  /var)的目录内容应该要放置的文件或目录数据,因此,在其他次目录层级内,就可以岁开发者自行来配置了。

  四、目录数。(direcroty  tree) :

  在Linux 底下,所有的文件与目录都是由根目录开始的。那是所有目录与文件的源头,然后再一个一个的分支下来,因此,我们也称这种目录配置方式为:目录树(directory tree),这个目录树的主要特性有:

  目录树的起始点为根目录(/, root)

  每一个目录不止能使用本地端的 partition 到的文件系统,也可以使用网络上的 filesystem, 举例来说,可以利用 network file  system(NFS)服务器挂载某特定目录等。

  每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的。

  目录树图(略)

  五、绝对路径与相对路径

  除了需要特别注意的FHS目录配置外,在文件名部分我们也要特别注意。因为根据档案名写法的不同,也可将所谓的路径path 定义为绝对路径 absolute 与相对路径 relative 。这两种文件名/路径的写法依据是这样的:

  绝对路径:由最上层根目录开始写起, 例如: /home/ack/.bashrc;

  相对路径:相对于目前路径的文件名写法。例如  ./home/ack  或  http://www.cncloud.tech/home/ack 等等。反正开头不是 /  就属于相对路径的写法。

  更详细的说,相对路径就是以你当前所在路径为参照(pwd)

  譬如我们当前在 /home 这个目录下,如果像要进入 /var/log 这个目录时,可以怎么写呢?

  cd  /var/log  ---absolute

  cd  ../var/log ----relative

  因为你在 /home  目录下,所以要回到上一层(../) 之后,才能继续往 /var 来移动。

  注意: .   代表当前的目录,也可以使用   ./   来表示

     ..  代表上一层目录,也可以   ../  来表示

  实例:网络文件常常提到类似  ./run.sh 之类的数据,这个指令是什么意义呢?

  由于指令的执行需要变量的支持,若你的执行文件放置在本目录,并且本目录并非正规的执行文件目录(/bin, /usr/bin 等正规),此时要执行指令就得要严格指定该执行档。  ./ 代表本目录, ./run.sh  代表执行本目录下, 名为 run.sh 的脚本。

时间: 2024-12-15 11:07:23

每天一个Linux命令(23)--linux 目录结构(二)的相关文章

每天学习一个LINUX命令:ls 目录列表(list 清单目录 名单)

ls命令用于显示文件目录列表.当不加参数时,默认列出当前目录的列表信息. 语法参数: ls [参数] [目录或文件名] 参数(注意区分大小写) -a:显示所有档案及目录(ls内定将档案名或目录名称为"."的视为影藏,不会列出):-A:显示除影藏文件"."和".."以外的所有文件列表:-C:多列显示输出结果.这是默认选项:-l :与"-C"选项功能相反,所有输出信息用单列格式输出,不输出为多列:-b:将文件中的不可输出的字符以反

Linux命令学习笔记目录

Linux命令学习笔记目录 最近正在使用,linux,顺便将用到的命令整理了一下. 一. 文件目录操作命令: 0.linux命令学习笔记(0):man 命令 1.linux命令学习笔记(1):ls命令 2.linux命令学习笔记(2):cd命令 3.linux命令学习笔记(3):pwd命令 4.linux命令学习笔记(4):mkdir命令 5.linux命令学习笔记(5):rm 命令 6.linux命令学习笔记(6):rmdir 命令 7.linux命令学习笔记(7):mv命令 8.linux命

04 Linux根文件系统和目录结构及bash特性

Linux文件系统: Linux:glibc 程序编译方式: 动态链接式编译 静态链接式编译 进程的类型: 终端:硬件设备,在硬件设备上可以关联一个用户接口,从而让用户用此接口与操作系统打交道 与终端相关:通过终端启动 与终端无关:操作引导启动过程当中自动启动 操作系统的组成: 静态:kernel(内核),application(应用程序) 文件系统:层级结构 FHS: Filesystem Hierarchy Standard(文件系统层次化标准) /bin:所有用户可用的基本命令程序文件 /

20个Linux命令及Linux终端的趣事

20个Linux命令及Linux终端的趣事 1. 命令:sl (蒸汽机车) 你可能了解 ‘ls’ 命令,并经常使用它来查看文件夹的内容.但是,有些时候你可能会拼写成 ‘sl’ ,这时我们应该如何获得一些乐趣而不是看见“command not found”呢? 安装 sl [email protected]:~# apt-get install sl (In Debian like OS) [email protected]:~# yum -y install sl (In Red Hat lik

《sed的流艺术之三》-linux命令五分钟系列之二十三

本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. === [正文开始] 上文接:<sed的流艺术之二>-linux命令五分钟系列之二十二 例五 给某些字符串后面插入些内容 [[email protected] programming]$ cat mysed.txt Beijing London[[email protected] programm

《sed的流艺术之一》-linux命令五分钟系列之二十一

本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. === [正文开始] 1 你想过sed为什么叫sed么? sed是stream editor的缩写,sed就是一个流编辑器,说白了,就是我们往sed里输入一串信息,它给我们处理,然后输出来.就这么简单. sed和cut类似,是一个面向行处理的工具,它以“行”为处理单位,处理后的结果会输出到标准输出.所以说其实

《sed的流艺术之二》-linux命令五分钟系列之二十二

本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. === [正文开始] 上文接:<sed的流艺术之一>-linux命令五分钟系列之二十一 5 sed中有选项么?有没有什么比较常用的? sed最主要的就是command部分,把这部分玩转了,你就已经很厉害了,而玩转这部分的前提是玩转正则表达式.尽管如此,sed的选项部分的-n选项仍然是非常重要,理解

linux 命令——23 目录结构

对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面我们就开始了解一下linux目录结构的相关知识. 当在使用Linux的时候,如果您通过ls –l / 就会发现,在/下包涵很多的目录,比如etc.usr.var.bin ... ... 等目录,而在这些目录中,我们进去看看,发现也有很多的目录或文件.文件系统在Linux下看上去就象树形结构,所以我们

Linux界面交互与目录结构

一.交互通道 Linux系统环境默认有六个命令交互通道和一个图形界面交互通道,默认进入的是图形界面通道. 命令交互模式切换:ctrl+alt+F1-F6 图形界面交互模式:ctrl+alt+F7   图形界面参数介绍:[email protected]:~$ kaiye:用户名 Ubuntu:主机名 ~:路径,假如当前的路径正好是 该用户存放数据的根目录,则显示~,如windows系统下C盘用户名文件夹下的目录 $:用户类型 $代表普通用户,#代表超级用户 二.Linux目录结构  1.bin:

【转】完美解读Linux中文件系统的目录结构

一.前 言 接触Linux也有一段时间了,不过这几天在编译开源程序时,才发现自己对linux文件系统的目录结构了解的不够透彻,很多重要目录都说不清楚是用来干嘛的,于是在网上百度了一下这方面的介绍,根据自己的使用习惯,整理出来一篇关于Linux文件系统的目录结构的文章,和大家一起分享. 文章对Linux下所有目录一一说明,对比较重要的目录加以重点解说,以帮助初学者熟练掌握Linux的目录结构.同时文章最后附录了一份Linux目录结构的简明手册,以便大家查阅. 二.目 录 1.什么是文件系统 2.文