12、Linux一级子目录学习

Windows:PE
Linux:ELF:可执行的可链接的文件格式
文件系统(rootfs):根文件系统
FHS:Linux

下面开始了解/目录下的一级子目录,有以下一些:
简单介绍
/boot
/boot:系统启动的时候主要用到的一些相关的文件:如内核,initrd(系统启动流程重要的),以及grub(MBR只是一个存储空间,起作用的是grub:bootloader,这个才是主要的程序),都在/boot/目录下.

/dev:设备文件
12、Linux一级子目录学习

设备文件:
块设备:随机访问(可以实现随机访问的数据),数据块(数据被分成一个一个的块)
字符设备:线性访问模型(有次序的访问)
如:键盘,显示器都是线性访问模型
特殊文件没有大小(可以看到上图大小是10,5,这些不是他们的大小),只有元数据,如上图的c设备,还有b设备;这是他们的设备号:主设备号(major)和次设备号(minor)|2013年马哥视频中这一段会有嘈杂的响声

/etc
配置文件的主要存放路径,这里主要是纯文本的配置文件

/home:
用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
在自己的家目录下是有所有权限的,root的用户的家目录就是/root
root用户的家目录就是/root,没有/home
工作中的root用户不经常登录的,因为root的权限非常的大
只有在管理员的权限要做的时候才用到root用户

/lib:
主要是存放库文件。
当然除了lib存放库文件,还有其他存放在了/lib/modules:内核模块文件
静态库:Linux的是 .a
动态库: window的是.dll
Linux的是.so(shared object)称为动态库也称为(共享库)
12、Linux一级子目录学习

上图表示的是:我的共享库给你用,你的ls就可以用,但是你ls移植到了另外一个环境,你的ls就不能用了,因为另一个环境没有ls的共享库,也就是图中的.so
库文件是不能单独执行的,只能被调用,因为没有访问入口

/media:/mnt:这两个是我们经常用于挂载点的目录
我们光盘放进光驱以后,必须关联到某一个树的根节点上,才能访问
/media通常挂载移动设备的
/mnt:是挂载额外的临时文件系统,cd-rom常可以挂载到这里

/misc:杂项
/opt:可选目录,第三方官方的程序的安装目录,现在比较多放在了/usr/local

/proc:这个是一个伪文件系统
这里所有显示的文件,其实是内核映射的文件,一般是内核的可调参数
所以我们所说的系统调优跟这个很大相关,但是这也是非常难理解的目录
/sys 这是另一个伪文件系统,这个不是内核映射文件,是跟硬件设备相关的属性映射文件
通常实现对硬件相关的信息映射
[root@www sys]# ls
block bus class dev devices firmware fs hypervisor kernel module power

/tmp:临时文件,可以用其他用户查看,还有一个临时文件目录在var/tmp下面
每一个可以在里面创建文件,当然也只能创建自己的文件(主要是因为其他属组是t权限没这是个特殊权限,其他两个是u+s,g+s。这个是o+t)
/var:可变化的文件,随着运行系统的时间,这个文件会越来越大
[root@www sys]# ls /var/
account cache(缓存) db games gopher lib lock(锁文件) mail opt run(存储进程,有pid) tmp (第二个临时文件目录) ypadm crash empty gdm kerberos local log(日志) nis preserve spool var
run里存放的有pid,这里存放的就是进程IP号

/bin:可执行文件,用户命令
/sbin:管理命令
s可以理解成super,所以,这两个里面放的是程序,lib放的是库,这两个程序运行的时候可能依赖于这个/lib里面的库,每一个库就有可能用到配置文件,配置文件在哪里啊,就在/etc下

/usr:这个不是user的简写,s表示的是shared ,r就是read-only
/usr表示的就是:全局的共享的只读文件
/usr/bin
/usr/sbin
/usr/lib
为什么要多这么一个路径呢
/bin和/sbin是跟系统启动相关的,而/usr/bin,和/usr/sbin是跟系统正常功能相关的,当然这只是方便大家认识做的分类,所以/usr/lib也是库文件存放路径
对于操作系统立场来讲,上面的是必须的,而下面的/usr/local/*就不是必须的,存放的是第三方软件的东西,但不影响系统的启用
/usr/local:
/usr/local/bin
/usr/local/sbin
/usr/local/lib
之前的目录(usr/bin;usr/sbin;usr/lib)没有了是不能正常启动的,但是第三方的路径下格式化了也是没有问题的,系统是可以启动的。

命名规则:

1、长度不能超过255个字符;
2、不能使用/当文件名
3、严格区分大小写
Linux是没有注册表的概念
所以弄出的系统可以随时移植

软件包管理
应用程序
程序,Architecture
C语言:源代码——》(编译)二进制格式
脚本:解释器(二进制程序)
12、Linux一级子目录学习

12、Linux一级子目录学习

配置文件(程序启动的时候,就是去读取了这些文件的内容,说白了就是一些变量)
类如dir=/path/to/somewhere的
比如httpd的服务,会确定网站目录也是以这一种形式记录的

程序组成部分:
二进制程序/bin,/sbin之类的
库/lib这类的
配置文件/etc下之类的
帮助文件:/usr/share之类的

glibc(最最底层需要的库):很多服务都依赖这个库
而Apache可能需要更多需要的库
所以随着服务软件越来越多,就是会产生越多越多的库

我们之前就说过我们Linux的一些一级目录
根文件系统详解
12、Linux一级子目录学习12、Linux一级子目录学习

其中
/lib库文件
/etc/配置文件
/bin/二进制文件
/sbin/二进制文件
这四个很重要
12、Linux一级子目录学习

帮助文件/usr/share/man(usr不是user的缩小,而是“全局的共享的只读目录”的意思)
当然,我们之前说过我们Linux下还有一个目录用于安装程序的
12、Linux一级子目录学习

/usr是操作系统核心功能,可以单独分区(应该单独分区)
Window重新格式化C盘,而Linux可以只格式化跟目录,不影响/usr/
12、Linux一级子目录学习

/usr/local是一个独立王国,这里运行的各种独立的软件,他的里面的东西,他自己就有二进制/bin,/sbin之类的。完全依靠他们这个目录,也能独立运行起来的
在这里一般就是安装第三方软件的(像oracle经常安装在这里)
/opt
以前比较老的软件,默认安装的话,都是安装在这里
/proc和/sys默认是空的,并且不能单独分区,管理内核非常重要的
/dev/设备,不能单独分区(对Linux而言,一切皆文件)
udev(根据内核的信息动态的在/dev下创建设备文件)
/home只需要创建其他用户的时候,都会创建其他用户的家目录在这里
/root:root管理员的家目录,其实管理员是没有家目录,不能单独分区
/var:有了它,能够对我们管理增加方便,我们应该对它单独分区,刚开始很小,随着使用得过程中,日志信息不断的增多
/boot:存放的是内核,initrd(initramfs);系统的启动过程(一般情况下,/boot目录应该单独分区)

系统启动

POST--》BIOS(HD)—》MBR(bootloader能识别文件系统结构(ext2,ext4,xfs这些))—》内核(文件系统是内核的功能)—》启动文件系统(boot目录)

转载于:https://blog.51cto.com/425319153/2092976

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值