Linux(10)目录及路径相关了解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YuYunTan/article/details/83006392

导言

  前面几篇文章说明了linux的一部分的最为基础的命令和命令简单操作的示范,本博文讲述的是关于linux目录结构树和绝对与相对路径的区别,主要参看书籍《鸟叔的linux私房菜》。

目录

  在创建系统的时候,比如Redhat,可以自行对磁盘进行目录配置,然而有些人可能不会分配,导致后面的时候,需要重新分配或者扩展磁盘等操作,相对麻烦许多。比如根空间分配太大或者该有的目录并没有创建。
  Linux有一套目录配置标准,称为Filesystem Hierarchy Standard (FHS)标准。该标准目的是希望让使用者可以了解到已安装软件通常放置于那个目录下,重点在于规范每个特定的目录下应该要放置什么样子的数据。
  FHS将目录分成四种形态。

可分享(shareable) 不可分享(unshareable)
不变的(static) /usr(软件放置处) /etc(配置文件)
/opt(第三方软件) /boot (开机与核心档)
可变的(variable) /var/mail(使用者邮件信箱) /var/spool/news(新闻组)
/var/run(程序相关) /var/lock(程序相关)
四个类型:
  • 可分享的:可分享给其他系统挂载使用的目录,包括执行文件与用户邮件等数据,能分享给网络上其他主机挂载用的目录。
  • 不可分享的:自己机器上运作的装置文件或者是与程序有关的或者是与程序有关的 socket文件等,因仅与自身机器有关, 所以当然就不适合分享给其他主机了。
  • 不变的:有些数据是不会经常变动的,跟随着 distribution 而不变动。例如函式库、文件说明系统管理员所管的主机服务配置文件等;
  • 可变的:经常改变的数据,例如登录文件、一般用户可自行收受新闻组等。

FTS标准对目录树结构定义了下面三个目录应存放什么数据。

  • /root(根目录):与开机相关
  • /usr(unix software resource):与软件安装/执行有关
  • /var(varable):与系统运作过程有关。

linux目录结构

  根目录是系统最重要目录,所有目录均由根目录衍生出来,并与开机/还原/系统修复等动作有关。
  FTS建议:根分区越小越好,应用程序安装的软件最好不与根目录放在同一分区槽内。
  一般来说,linux常见目录结构如下所示。
在这里插入图片描述
  下面的两图也是关于此目录结构的描述,摘自于网络资源。
在这里插入图片描述
在这里插入图片描述

bin目录

  系统有很多放置执行文件的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。在/bin底下的指令可以被root与一般帐号所使用,主要有:cat,chmod(修改权限), chown, date, mv, mkdir, cp, bash等等常用的指令。

boot目录

  主要放置开机会使用到的文件,包括Linux核心文件以及开机选单与开机所需配置文件等等。Linux kernel常用的档名为:vmlinuz ,如果使用的是grub这个开机管理程式,则还会存在/boot/grub/这个目录。

dev目录

  在Linux系统上,任何装置与接口设备都是以文件的型态存在于这个目录当中。 只要通过存取这个目录下的某个文件,就等于存取某个装置。比要重要的文件有/dev/null, /dev/zero, /dev/tty , /dev/loop*, /dev/sd*等等。

etc目录

  系统主要的配置文件几乎都放置在这个目录内,例如人员的帐号密码文件、各种服务的启始文件等等。 一般来说,这个目录下的各文件属性是可以让一般使用者查阅的,但是只有root有权力修改。

FHS建议不要放置可执行档(binary)在这个目录中。

比较重要的档案有:/etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/等等。
另外,其下重要的目录有:

  • /etc/opt(必要) :存放第三方软件/opt的相关配置文件
  • /etc/X11/(建议) :与X Windows有关各种配置文件,尤其是xorg.conf这个X Servera配置文件。
  • /etc/sgml/(建议) :与 SGML格式有关的各项配置文件。
  • /etc/xml/(建议) :与XML格式有关配置文件

home目录

  用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
新增用户账号时,用户的家目录都存放在此目录下, \sim 表示当前用户的家目录。
\sim YuYunTan表示用户YuYunTan的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据。

lib目录

  这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  举例:lib***.a是静态库,lib***.so是动态库
  静态库在编译时被加载到二进制文件中,动态库在运行时加载到进程的内存空间中,简单的说,这些库就是为了让你的程序能够正常编译运行的。

lost+found目录

  这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  这个目录是使用标准的ext2/ext3档案系统格式才会产生的一个目录,目的在于当档案系统发生错误时,将一些遗失的片段放置到这个目录下。 这个目录通常会在分割槽的最顶层存在,例如你加装一个硬盘于/disk中,那在这个系统下就会自动产生一个这样的目录/disk/lost+found。

media目录

/media底下放置的就是可移除的装置,一般来说linux系统会自动识别一些设备,例如U盘、软碟、光碟、DVD等等,当识别后,linux会把识别的设备挂载到这个目录下。常见的档名有:/media/floppy, /media/cdrom等等。

mnt目录

  系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

opt目录

  这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

proc目录

  这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等。
  这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

  查看内存信息,CPU信息

cat /proc/meminfo  | grep "Mem"
cat /proc/cpuinfo

root目录

  该目录为系统管理员,也称作超级权限者的用户主目录。

sbin目录

  s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序,以进行系统维护,其他使用者最多只能用来查询。
  放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。至于某些伺服器软体程式,一般则放置到/usr/sbin/当中。
  至于本机自行安装的软体所产生的系统执行档(system binary),则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。

sys目录

  这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
  sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
  该文件系统是内核设备树的一个直观反映。
  当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

tmp目录

  有时用户运行程序的时候,会产生临时文件,这个目录是用来存放一些临时文件的。
  该目录需要定期的清理一下,而且重要资料不可放置在此目录。 FHS建议在开机时,应该要将/tmp下的资料都删除。

usr目录

  /usr不是user的缩写,其实usr是Unix Software Resource的缩写, 也就是Unix操作系统软件资源所放置的目录,而不是用户的数据。
  FHS建议所有软件开发者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录。
  这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
常见该目录的次级目录

次级目录 简述
/usr/X11R6 X Window系统
/usr/bin 用户管理员的标准命令
/usr/include C/C++等开发工具语言环境的标准include文件
/usr/lib 应用程序及程序包的链接库
/usr/local 系统管理员安装的应用程序
/usr/local/share 系统管理员安装的共享文件
/usr/sbin 用户和管理员的标准命令
/usr/share 存放使用手册等共享文件的地方
/usr/share/dict 存放词表的目录
/usr/share/man 系统使用手册
/usr/share/misc 一般数据
/usr/share/sgml SGML数据
/usr/share/xml XML数据

var目录

这个目录中存放着在不断扩充着的东西,主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如MySQL数据库的文件等等。
我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
常见该目录的次级目录

次级目录 简述
/var/cache 应用程序缓存目录
/var/crash 系统错误信息
/var/games 游戏数据
/var/lib 各种状态数据
/var/lock 文件锁定记录
/var/log 日志记录
/var/mail 电子邮件
/var/opt /opt目录的变量数据
/var/run 进程的标示数据
/var/spool 存放电子邮件,打印任务等的队列目录
/var/tmp 临时文件目录

小注意

  • 本地管理员大多数情况下将额外的软件安装在/usr/local目录下,并符号连接在/usr/local/bin下的主执行程序。
  • 系统的所有设置在/etc目录下。
  • 不要修改根目录(“/”)或/usr目录下的任何内容。
  • 目录最好和LINUX发布时保持一致。
  • 大多数工具和应用程序安装在目录:/bin, /usr/sbin, /sbin。
  • 所有的文件在单一的目录树下。没有所谓的“驱动符”。

路径

绝对路径

  由根目录(/)开始写起的文件名或目录名称,比如/usr、/etc/passwd。如果一个路径是从/开始的,它一定是绝对路径。

相对路径

  相对路径是以 . . . . .. 开始的。

  • . . 表示用户当前操作所处的位置
  • . . .. 表示上级目录

总结

  由于本次博文内容较少,因为这些是基本需要知道的内容,所以就不继续展开。另外值得注意的是,改变路径是用cd命令【博文第五篇】,该命令在前系列博文已有说明,而且改变一个用户所在的目录,在此命令中也有说明。改变路径可以是绝对路径也可以相对路径,并且已有例子,故而本博文不赘述。

猜你喜欢

转载自blog.csdn.net/YuYunTan/article/details/83006392