Linux学习之目录结构和根文件系统

目录结构和根文件系统

1、Linux结构
结构图
2、Linux文件系统
(1)程序编译方式

1、动态链接编译:动态编译的可执行文件需要附带一个动态链接库,执行时调用链接库中的库文件。
2、静态链接编译:在编译时将库文件提出来放在该执行文件中,不依赖动态链接库

注意:库文件只有被调用时才能运行,并不能独立自主运行
(2)用户交互式系统:终端
终端:硬件设备,关联一个用户接口(用户在此接口可对系统进行操作)
(3)进程的类型
A、与终端相关:通过终端启动
B、与终端无关:操作引导启动过程中自动启动
(4)操作系统的组成
静态:kernel+application
(5)文件系统——层次结构
A、FHS——Filesystem Hierarchy Standard——文件系统层次结构标准
B、结构介绍
/bin:所有用户可用的基本命令程序文件
/sbin:供系统管理使用的工具程序
/boot:引导加载器必须用到的各种静态文件——grub、kernel、initramfs
/dev——device files:设备文件——存储特殊文件或设备文件
设备分类
(1)字符设备:(线性设备-有时序)数据交换以字符为单位进行(例:键盘、显示器)
(2)块设备:随机访问,将多个字符打包成一个块进行数据交换(例:硬盘)

/etc:系统程序的配置文件,只能为静态不能为二进制;且有自己的独立层级结构
(opt、xll、sgml、xml)
/home:普通用户家目录几种位置(一般每个普通家目录默认在此目录下与用户同名的子目录)
/lib:为系统启动根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块
libc.so.* :动态链接c库
ld *:运行时链接器/加载器
modules:用于存储内核模块的目录

/lib64:64位系统特有的存放64位共享库的路径
/media:便携式设备挂载点:cdrom、floppy
/mnt:其它文件系统临时挂载点
/opt:附加程序的安装位置(第三方程序路径:可选路径)
/root:管理员的家目录(可选)
/srv:当前主机为服务提供的数据
/tmp:为那些会产生临时文件的程序提供用于存储临时文件的目录(可供所有用户执行写入操作——有特殊权限)
/usr:(Usr Hierarchy)全局共享的只读数据路径,也有自己的层级结构如下

  • bin\sbin
  • lib\lib64
  • include:c语言头文件
  • share:命令手册页,命令自带文档等架构特有的文件存储位置
  • local:另一个层级目录
  • x11R6:X-Windows程序的安装位置
  • src:程序源码文件存储位置

/usr/local:local Hierarchy—让系统管理员安装本地应用程序,也通常用原装第三方程序也是一个层级结构。
/var:也是一个hierarchy—层级结构;存储常常发生变化的目录(日志-log)
/proc:基于内存的虚拟文件系统,用于为内核以及进程存储其相关信息;多为内核参数(如:net.ipv4.ip-forward,虚拟为net/ipv4/ip-forword,存储于/proc/sys/下,因此完整的路径为/proc/sys/net/ipv4/ip-forword)
/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径,其主要作用在于管理Linux设备提供一种统一模型接口。
文件系统缩略图
3、Linux基础命令及命令历史
(1)Linux系统上文件类型:此文件类型基于文件系统视角查看其文件类型而并非使用file命令查看文件内容的类型。
(2)基本命令
A、命令类型

	a、外部命令:在系统加载时并不随系统一起被加载到内存中,而是需要时才将其调用内存——在文件系统中有对应二进制运行文件。
	b、内部命令:在Linux系统加载运行时shell就被加载并驻留在系统内存中——在文件系统中并没有对应的二进制文件。

B、如何查看内部和外部命令——使用type命令

	[root@hu lib]# type cd
	cd is a shell builtin
	[root@hu lib]# type ls
	ls is aliased to `ls --color=auto'
	[root@hu lib]# type find
	find is /bin/find

内部命令:显示is a shell builtin
外部命令:显示为aliased to 'ls --color=auto’或者is /path
注意:命令可以有别名-alias,别名与原名可以相同,此时原名隐藏。若主要使用原命令则在命令前加反斜线,如:\ls
C、如何查看命令别名

	[root@hu lib]# alias  					==>用于查看当前别名列表
	[root@hu lib]# alias name='command'       ==>用于定义别名
	[root@hu lib]# alias unalias				==>撤销别名

注意:只对当前shell系统有效,打开多个伪终端或登出当前shell后又登录均无效
4、变量
(1)变量名——即有名称的储存空间
(2)变量类型(变量内部储存的积类型:整型、浮点、字符型、布尔型)

a、字符型
b、数值型
	精确数值型
	近似数值
c、当类型确定后:储存格式、数据范围、参与运算都基本确定了
d、浮点数据如何储存

猜你喜欢

转载自blog.csdn.net/qq_29954175/article/details/84586740