Linux根文件系统和目录结构及bash特性1
Linux文件系统:
内核并不真正负责具体的工作,这些工作是应用程序来负责的
Linux glibc
程序的编译方式:
动态链接式编译:
静态链接式编译:
进程的类型:
终端:硬件设备国,关联一个用户接口
与终端相关:通过终端启动
与终端无关:操作引导启动过程当中自动启动
操作系统的组成:
静态:kernel,application
文件系统:以层级结构划分,倒置的树状结构
https://blog.csdn.net/wzj0808/article/details/79136393
/bin:需要在单用户模式可用的必要命令(可执行文件);面向所有用户,例如: cat、 ls、 cp。
/sbin:必要的系统二进制文件,例如: init、 ip、 mount。
FHS:文件系统层次结构标准(英语:Filesystem Hierarchy Standard,FHS)定义了Linux操作系统中的主要目录及目录内容。FHS由Linux基金会维护。 当前版本为3.0版,于2015年发布。
Filesystem Hierarchy Standard
/bin:所有用户可用的基本命令程序文件
/sbin:供系统管理使用的命令程序文件
/boot:引导加载器必须用到的各静态文件:kernel,initramfs(initrd),grub等;当系统启动后这些文件就再不会用到,直到下次启动系统
/dev:存储特殊文件或设备文件
设备有两种类型:字符设备(线性设备)、块设备(随机设备);键盘就是典型字符设备,一次只发一个字符;而块设备就是把字符打包成块发送,硬盘就是典型块设备;
/etc:系统程序的配置文件,只能为静态,/etc也是一个独立的层级结构
/home:普通用户家目录的集中位置:一般每个普通的家目录默认为此目录下与用户名相同的子目录,/home/$USERNANME
/root:管理员的家目录;可选
/lib:为系统启动或根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及内核提供模块
libc.so.*:动态链接的C库;
ld*:运行时链接器/加载器;
modules:用于存储内核模块的目录;
/lib64:64位系统特有的存放64位共享库的路径;
里边也有libc.so.*、ld*文件,但是没有modules,64位的modules也是放在/lib目录下边,所以64位的会兼容32位的
/media:便携式设备挂载点,cdrom,floppy等
/mnt:其它文件系统的临时挂载点
/opt:附加应用程序的安装位置,第三方程序的安装位置,可选路径
/srv:当前主机为服务提供的数据
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所有用户执行写入操作;有特殊权限
/usr:usr Hierarchy,全局共享的只读数据路径
bin,sbin
lib,lib64
include:C程序头文件
share:命令手册页和命令自带文档等架构特有的文件的存储位置
local:另一个层级目录
X11R6:X-Window程序的安装位置
src:程序源码文件的存储位置
/usr/local:Local Hierarchy,让系统管理员安装本地应用程序,也通常用于安装第三方程序
/var:/var Hierarchy,存储常发生变化的数据目录
cache Application cache data
lib Variable state information
local Variable data for /usr/local
lock Lock files
log Log files and directories
opt Variable data for /opt
run Data relevant to running processes
spool Application spool data
tmp Temporary files preserved between system reboots
/proc:基于内存的虚拟文件系统,用于为内核和进程存储其相关信息;它们多为内核参数,例如:net.ipv4.ip_forward,虚拟为net/ipv4/ip_forward,存储于/proc/sys/下边,其真实路径为/proc/sys/net/ipv4/ip_forward
/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的接口;新设计的内核机制应该尽量使用 sysfs 机制,而将 proc 保留给纯净的“进程文件系统”。
详细说明请查阅 https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/