1、file 命令及其用法
man file
file /root
/root: directory
file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
Windows
PE: 可移植的可执行文件
Linux
ELF:
一种可执行文件的存储格式
可执行的可链接的文件类型
Linux上常见的可执行二进制文件格式
文件系统是内核的核心功能之一,目的是实现本机上某一个分区上的文件管理
文件系统:
rootfs: 根文件系统
对 Linux 而言,每一个文件都必须是根文件系统下的某一个路径
必须要通过根文件系统才能访问
根, root ,用 / 表示
文件系统分为目录和文件,除了目录的都是文件
所有的文件都存放在目录当中,都能够通过目录查找的到
FHS: Filesystem Hierarchy Standard(文件系统层次化标准)
ls / :
/boot: 系统启动相关的文件,如内核、initrd,以及 grub (bootloader 引导加载器)
如果 /boot 目录不存在,或对应的几个文件不存在,系统根本无法启动。
操作系统启动时所要用到的内核 vmlinuz ,以及暂时性的小 linux 系统
vmlinuz :
initrd (initramfs) : 磁盘映像文件,类似虚拟机,假的赢怕,能创建分区
/dev: 设备文件
设备文件:
块设备: 随机访问,数据块, 磁盘,硬盘
字符设备: 线性访问,键盘,输入 abc 显示 abc ,鼠标,显示器
整个屏幕上显示的内容都是在显存中按位存储的
设备号: 主设备号(major) 和次设备号(minor)
一个设备只有有设备文件,才能被 linux 所访问
在主机上要接入一个新设备,例如插入U盘,要想访问U盘,首先在 dev 目录下创建一个设备文件, 由系统自动完成。
Linux 哲学思想,一切皆文件。因此,所有的硬件设备,也被识别为各个文件
device 设备
ls -l /dev
lrwxrwxrwx. 1 root root 3 Jan 15 05:08 cdrom -> sr0
lrwxrwxrwx. 1 root root 3 Jan 15 05:08 dvd -> sr0
链接 (Windows 快捷方式)
brw-rw----. 1 root cdrom 11, 0 Jan 15 05:08 sr0
设备文件没有大小,直接存储元数据,而且是作为设备的访问入口存在的
/etc : 配置文件
Linux 哲学思想,将程序的配置文件保存为纯文本格式
/home: 用户的家目录,每一个用户的家目录通常默认为 /home/USERNAME
/root: root 用户的家目录不再 /home 下,并且他的名称就叫 /root
在传统的 Unix 系统上,root 用户是没有家目录的,因为 root 用户从来都不需要登录操作系统
Windows 下不允许格式化 C 盘,Linux 不阻止你自杀
生产环境使用普通用户登录,不要用 root 用户登录,只有要用到管理功能的时候,才切换到 root 用户。
/lib: 库文件
静态库: .a
动态库: .dll , .so (shared object)
任何程序和数据都必须要载入内存之后才能被程序所使用,
对于共享库,任何程序要使用共享库,把共享库载入内存就可以使用,如果第二个程序也用到这个共享库,它就不用再载入了,因为内存中已经有了,拿来就用。共享库在内存中只存在一份即可。
对于静态库,直接链接到程序的地址空间中去,作为程序的一部分运行的。
静态方式便于程序单个文件管理,例如把一个程序从一个 linux 主机移动到另一个 linux 主机,只需要把文件从 a 主机复制到 b 主机就能直接运行
但是,如果要使用动态链接库的方式的话,那就意味着它自己的运行还要依赖于库。所以将程序从 a 主机挪到 b 主机还不够,还必须保证 b 主机有程序运行时所依赖的共享对象才行。
/lib/modules: 内核模块文件
/lost+found:
任何一个新建的分区上都会有的目录,通常跟文件系统相关,是用于存储那些文件系统在机器突然间断电的时候,文件没有输入属组,并且尚未来得及保存的文件,是为了实现丢失并找回的目的的。
原文:http://pengjuguo.blog.51cto.com/9974321/1892074