- 浏览: 378721 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
u014689192:
很不错
JMX学习笔记(三)-MXBean -
focus2008:
进制转换之后,根本不会执行js代码,感觉你没有测试过吧
xss漏洞之进制转换 -
focus2008:
如何使用过滤器来处理呢?
xss漏洞之进制转换 -
1169158401:
我艹,我那天这么写,包括一些方法,然后那货说这样写不容易看懂。 ...
import static简化代码 -
AquariusM:
奢华的JVM介绍!
JMX学习笔记(三)-MXBean
我们首先看一下一个简单的文本文件是怎么保存的:
打开vim,编辑一段文本:
[root@localhost ~]# vim hello.txt
编辑内容如下:
opencfg.com is best website for java
用命令:wq保存,然后列出该文件
[root@localhost ~]# ls -l -rw-r--r-- 1 root root 37 9月 4 19:03 hello.txt
据这个例子的目的,是为了说明Linux系统中文件是由3个部分组成:
1.数据-data(编辑内容, opencfg.com is best websire for java)
2.元数据-metadata(当你用ls -l 命令 或者ll命令时,列出的信息就是元数据, 在Linux,Unix系统中,所有与文件相关的元数据都保存在一个被叫做inode的结构中)
3.文件名-directtory entry(也叫做目录项,保存文件名)
一、inode节点
在Linux、Unix文件系统中的每个文件都有一个相关的inode节点,保存了除文件名、文件内容(data)以外的所有文件信息,其中包括:
1.文件类型
在Linux、Unix文件系统内的任何东西,包括一般文件和目录、符号连接、设备节点、与进程间通信相关的 命名管道函数,套接字(socket)都是文件类型中的一种,下边列出了可能出现的文件类型:
文件类型 | ls缩写 | 应用范围 |
常规文件 | - | 保存数据 |
目录 | d | 存放文件名 |
符号连接 | l | 指向其他文件 |
字符设备节点 | c | 访问设备 |
块设备节点 | b | 访问设备 |
命名管道函数 | p | 进程间通信 |
套接字 | s | 进程间通信 |
这7种文件类型,具有相同的inode节点结构,他们具有相同的属性:所有者的身份、权限、修改时间、当使用命令ls -l 或者命令ll列出文件时,稳健类in个由第一个字符标识,该字符所对应的是上表中的缩写标记.
file命令
除了使用ls -l 与 ll 两个命令外,还可以使用file命令来查看文件的类型:
这里再写一个hello.sh:
#!/bin/sh echo "hello"
下边使用file分别查看hello.txt与hello.sh,看看输出结果:
[root@localhost ~]# file hello.txt hello.txt: ASCII text [root@localhost ~]# file hello.sh hello.sh: POSIX shell script text executable
file命令可以深入文件内容,查看具体的文件类型,给出的描述比较清晰
2. 所有者的身份与权限
每个常规文件、目录都所有者、组 和 三组访问权限: 读取、写入、执行,当使用ls -l 或者ll命令列出文件时,第一列显示权限(其中第一个字符表示文件类型缩写), 第三列显示用户所有者,第四列显示组。
[root@localhost ~]# ls -l -rw-r--r-- 1 root root 37 9月 4 19:03 hello.txt
这里:
第一列是-rw-r--r--, 其中第一个字符是"-",在缩写表中对应常规文件
以后的权限是rw-r--r--,表示权限
第二列是1 表示连接数,如果有硬连接到这个文件,这里的数值会+1,删除硬连接这里会-1
第三列是root 表示文件所有者是root
第四列是root 表示文件所有组是root
第五列是37 表示文件占用37字节
第六列是9月 4 19:03 默认表示文件最后的ctime, change-time
第七列是hello.txt 表示文件名
基本上除了 权限列,其他列都显而易见, 这里我简单介绍一下linux文件权限:
(1).linux文件权限
这个例子中出去第一列中的"-"代表文件类型(常规文件),剩下:
rw-r--r-- 这里一共有9个字符,每三个分一组
rw- 表示用户自己的权限
r-- 表示组权限
r-- 表示其他人的权限
每组都是rwx的顺序,代表可读、可写、可执行,如果不具备改权限,则会显示“-”字符.
既然说到这里,再解释一下为什么好多人直接执行chmod 755 start.sh 这样的命令.
(2).权限八进制计数法
实际上,这是权限的一种八进制表示方法,我们知道文件对三种不同级别的用户访问(用户user, 组group, 其他other), 具有三种不哦那个的权限,可读、可写、可执行。
所以在八进制计数法里, 每个级别的访问以一个数位表示,其中从左向右的第一位 表示:用户user, 第二位表示: 组group, 第三位表示:其他other,而每种权限以一个值表示:可读是4,可写是2,可执行是1, 从而八进制计数法里的数字,是每个权限值的总和, 举个例子:
例如一个文件的权限是: rwxr-xr-x
那么从左向右第一个三位: rwx = 4 + 2 + 1 = 7 用户user
第二个三位: r-x = 4 + 0 + 1 = 5 组group
第三个三位: r-x = 4 + 0 + 1 = 5 其他other
所以现在大家会理解熟练的人,会直接使用chmod 755 start.sh 这样的命令了:)
3. 更多的inode信息
我们可以使用stat命令来查看文件更多的元数据信息:
[root@localhost ~]# stat hello.sh File: "hello.sh" Size: 24 Blocks: 8 IO Block: 4096 普通文件 Device: fd00h/64768d Inode: 149215 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2011-09-04 20:41:02.153122391 +0800 Modify: 2011-09-04 20:40:59.160742070 +0800 Change: 2011-09-04 20:40:59.178744361 +0800
stat命令列出了更多的元数据信息:
size 表示文件的理论长度,单位是字节
Block 与 IO Block 的乘积是文件所占的实际大小,在linux下文件所占的空间分配,最小的单位是块(Bolck),而块的大小与块的数量,决定了文件实际占用的磁盘空间.
Device 表示内核对该设备的编号
Inode 是内核为每一个文件分配的标志
Links 表示文件名指向的inode节点的数量
Access:(0755/-rwxr-xr-x) 表示了访问权限,以及文件类型
uid: 表示了文件所有者,包括了系统为所有者分配的数值id
gid: 表示了文件组,包括了系统为组分配的数值id
接下来有三个时间通常被叫做文件的atime, ctime, mtime:
缩写 | 全称 | 名称 | 描述 |
atime | access time | 访问时间 | 文件数据每次被阅读后所记录的时间 |
ctime | change time | 改变时间 | 文件的inode节点信息被改变后记录的时间 |
mtime | modify time | 修改时间 | 文件内容数据被修改后记录的时间 |
很多人误会ctime就是linux下文件的创建时间,以为是create time, 其实是错误的,linux说起来很神奇,丫居然愣是没记录文件的创建时间,Unix也是如此,这单确实很坑爹,累了,休息,改天有时间再写写软链接与硬连接 :)
发表评论
-
删除/usr/share/vim目录后恢复
2012-03-11 02:34 3898蛋疼的将/usr/share/vim/ 目录删除后,vim启动 ... -
Shell 统计PV, UV ,独立IP
2011-11-06 15:07 13611每天分析日志的哥们实在伤不起,经常需要给出PV,U ... -
Linux-CPU监控
2011-08-28 18:59 4138监控的目的是为了,找出系统的瓶颈,理解并分析当前系统的特点,现 ... -
LVS NAT模式简介
2011-07-20 01:46 16700LVS 简称 Linux Virtual Server,在实际 ... -
tomcat关不掉的原因
2011-07-12 23:51 43533tomcat/bin 目录下的catalina.sh是比较常用 ... -
Linux下最好用的播放器
2011-04-09 22:50 2574很久以前一直流行mplayer,但是编译安装都很复杂,需要很多 ... -
SElinux 配置
2011-01-20 02:54 3101selinux 是个安全性极高的软件,在安装了发行版linux ... -
VitrualBox NAT 端口映射
2010-11-10 15:33 2143以NAT方式启动VBox中的Linux,会发现本机无法访问虚拟 ... -
Linux下配置JDK环境变量
2010-08-19 00:47 1294一般人都习惯直接修改/etc/profile文件,但是 ... -
Linux 在一块网卡上绑定多个IP
2010-04-26 00:57 4913配置虚拟主机时有一种方式是在一块网卡上绑定多个IP,操作如下: ... -
修改rhel5.4 yum 更新源
2010-04-25 16:46 2303rhel没有license是没有办法进行更新的,但是CentO ... -
Linux启动网卡
2010-02-06 00:47 3727ifconfig命令可以用于查看Linux活动网卡与IP地址、 ... -
rhel修改root密码
2010-02-05 23:00 1746在安装完Linux的时候突然忘记了root密码,可以先 ... -
VirtualBox3.1.2安装Fedora12后无法启动图形界面问题
2010-02-03 23:04 2784VirtualBox真是个好东东,无缝模式集成进win ... -
Shell if 中的参数详解
2010-01-25 23:23 1921在shell中,经常会遇到像这样的参数: JAVA={$J ... -
Linux时间系统
2009-11-30 17:38 1947这里先讲述一下时间在Linux中的概念: 1.RTC(Real ... -
linux下使用rar解压缩
2009-11-01 22:08 1359默认linux中只带了tar,zip,gzip压缩工具 ... -
firefox3.5在linux 64中无法显示flash
2009-11-01 11:12 1534可能是由于firefox版本过低,现在我已经通过更新firef ... -
Linux运行级别详解
2009-10-27 16:31 1683在设置服务的时候 ... -
设置Linux服务
2009-10-27 15:52 1283其实服务在linux下也就是一段shell,copy到相 ...
相关推荐
浅析Linux的文件系统和磁盘管理 Linux操作系统的文件系统是存储和管理文件的方法,所有的软硬件资源全部看做文件。文件系统是操作系统的基本结构,因几乎所有与用户、应用程序或安全性模型的沟通方法都与文件保存的...
本文主要探讨了在Red Hat 9.0环境下Linux文件系统的管理,包括磁盘管理的各个方面。 1. Linux 文件系统类型 Linux 支持多种文件系统,如ext2、ext3和ext4,其中Red Hat 9.0默认使用ext3文件系统。ext3是一种日志...
### Linux内核配置系统浅析 #### 一、配置系统的重要性及基本结构 随着Linux操作系统在各个领域的广泛应用,尤其是在嵌入式系统领域的迅速发展,越来越多的技术人员投身于Linux内核级别的开发工作。对于这些开发者...
"浅析Linux文件系统.pdf" 本文将对Linux文件系统进行详细分析,着重对Ext2文件系统进行分析,并阐述了虚拟文件系统对多种文件系统的支持。 Linux文件系统是操作系统的重要组成部分,它的优秀特性更是广泛公认的。...
本文将深入分析Linux文件系统实现的一些关键概念和技术,特别是inode和super_block的角色。 首先,inode(索引节点)是文件系统中每个文件或目录的关键数据结构,它包含了关于文件的各种元数据,如文件的所有者...
Linux文件系统在硬盘上的结构通常包括引导块、超级块、索引节点、目录项和文件对象。引导块仅存在于根文件系统中,而超级块则包含了整个文件系统的信息。索引节点对象存储了关于文件的一般信息,如文件大小、权限等...
《Linux内核配置系统浅析》 Linux内核配置系统是Linux内核的核心组件之一,对于Linux内核的开发和维护至关重要。Linux内核配置系统的主要作用是将源代码融入到Linux内核中,增加相应的Linux配置选项,并最终被编译...
本文将深入探讨Linux内核配置系统的基础结构、配置文件、Makefile以及如何将自定义代码集成到内核中。 首先,配置系统由三大部分组成:1) Makefile,定义了内核的编译规则,存在于内核源码的不同层级中,负责构建和...
Linux内核配置系统是Linux操作系统的核心组成部分,它允许开发者根据需求定制内核,选择要包含或排除的功能。本文将简要分析Linux内核配置系统的基本结构,并探讨如何使用配置系统来构建和集成自定义的代码。 配置...
2. 文件系统权限:文件系统权限是Linux系统中最基本的安全机制。文件系统权限决定了用户对文件和目录的访问权限。 3. 系统日志文件:系统日志文件是Linux系统中记录系统事件的文件,包括系统启动、用户登录、文件...
《Linux操作系统安全策略浅析》一文探讨了在Linux环境下如何实施有效的安全策略,以保障系统的稳定和数据的安全。文章主要涉及以下几个方面: 1. **多系统共存的初步安装规划**:考虑到许多用户习惯使用Windows和...
trace-cmd是perf命令行工具的前身,主要用于交互式地操作和管理tracefs文件系统,进行系统追踪。 eBPF(Extended Berkeley Packet Filter)是Linux内核的一个框架,它允许在内核中安全地运行小片段的字节码,用于...
### Linux内核浅析——内核配置系统解析 #### 核心知识点概览: 1. **内核配置系统的重要性**:随着Linux操作系统在各领域的广泛应用,尤其是嵌入式领域的快速发展,掌握内核配置系统变得至关重要。它不仅是内核级...
【标题】:“浅析基于Linux的数据库集群系统” 【描述】:本文探讨了在Linux操作系统上构建数据库集群系统的设计与实现,强调了Linux系统的特性及其在数据库集群中的应用。 【标签】:Linux操作系统、系统开发、...