0%

ls命令笔记

Linux是类Unix操作系统的一种,ls命令是Linux中使用频率较高的命令之一,既可列出指定目录的内容及其详细信息,也可列出指定文件的详细信息。

ls命令使用

ls [选项]				//指定目录默认为当前目录
ls [选项] [目录名或文件名]

ls常用命令选项

-A		列出指定目录下的所有文件,包括隐藏文件(以”.“开头的文件和目录)
-l 使用长格式显示指定目录的内容的详细信息或指定文件的详细信息
-i 显示指定目录的内容或指定文件的索引节点号码(Unix/Linux内部使用索引节点号码来识别文件)
-t 将文件按照建立时间的先后次序列出
-R 递归显示目录,若目录下有文件,则以下的文件也会被依序列出
-h 配合“-l”使用,以合适的单位显示文件的大小
-S 根据文件大小排序(由大到小,若要由小到大排序,则再使用“-r”;在Linux中,所有目录的大小总为4096字节)
-G 不列出任何有关组的信息
-g 类似“-l”,但不列出所有者
-o 类似“-l”,但不列出组
-p 显示出目录(目录名结尾有“/”)
-F 显示出文件类型(“/”表示目录,“@”表示指向其它文件的符号链接,“*”表示可执行文件)
  • 选项-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,如有错误之处,请在评论区多多指教(*´∀`)~♥,我会及时修正。