Linux是类Unix操作系统的一种,ls命令是Linux中使用频率较高的命令之一,既可列出指定目录的内容及其详细信息,也可列出指定文件的详细信息。
ls命令使用
ls [选项] //指定目录默认为当前目录 |
ls [选项] [目录名或文件名] |
ls常用命令选项
-A 列出指定目录下的所有文件,包括隐藏文件(以”.“开头的文件和目录) |
选项-l显示的详细信息的各列的含义
第一列表示是文件还是目录(d开头的为目录)
第二列,如果是目录,则是目录下的子目录和文件数目;如果是文件,则是文件的链接数
第三列表示文件的所有者名字
第四列表示文件的所属的组名字
第五列表示文件的字节数
第六~八列表示上一次修改的时间
第九列表示文件名
索引节点包含的信息(使用stat命令查看):
stat
文件的大小(字节数),文件拥有者的User ID,文件的Group ID,文件的读、写、执行权限,文件的时间(最近访问、最近更改、最近改动),链接数(指向这个索引节点的文件名的数量),文件数据block(block是文件存取的最小单位)的位置
在Unix/Linux中,表面上用户通过文件名打开文件,但这一过程在系统内部分为三步:1. 系统通过Directory(一种记录了文件名称对应的索引节点号码的文件)找到这个文件名对应的索引节点号码;2. 通过索引节点号码获取索引节点信息;3. 根据索引节点信息,找到文件数据所在的block来读取数据。
在Unix/Linux中,目录文件的读权限和写权限都是针对目录文件本身。由于目录文件内只有文件名和索引节点号码,所以如果只有读权限,则只能获取文件名,无法获取其他信息,因为其他信息都储存在索引节点中,而而获取索引节点包含的信息需要目录文件的执行权限。
由索引节点号码与文件名分离的机制而导致的一些Unix/Linux特有的现象:
- 当文件名因包含特殊字符而无法删除文件的时候,可以通过直接删除索引节点来起到删除文件的作用。
- 当一个文件被打开后,系统就以索引节点号码来识别这个文件,不再考虑文件名。
- 可以在不关闭软件的情况下进行该软件的更新,因为系统以索引节点号码来识别运行中的文件,不再考虑文件名。更新的时候新文件可以以同样的文件名生成一个新的索引节点,不会影响到运行中的文件,等到下一次运行该软件的时候,文件名就自动指向新文件,旧文件的索引节点则被回收。
- 移动或重命名文件都不影响索引节点号码。
索引节点也会占用硬盘空间。在硬盘格式化的时候,Unix/Linux自动将硬盘分为两个区域,一个区域用于存放文件数据;另一个区域是inode table,存放索引节点所包含的信息。索引节点的总数在硬盘格式化时就已经确定了,一般每1KB或每2KB就设置一个索引节点,每个索引节点的大小一般是128B或256B。
查看索引节点总数和已使用的数量
df -i
由于每个文件都必须要有一个索引节点,因此有可能出现索引节点已用完,但硬盘空间未消耗完的情况,这时就无法在硬盘上新建文件。
本人刚开始系统性地自学Linux,如有错误之处,请在评论区多多指教(*´∀`)~♥,我会及时修正。