首页 > 代码库 > linux命令学习-第三天

linux命令学习-第三天

3.1 Linux文件信息

inode和目录项

1,什么是inode和目录项

文件在硬盘上的最小存储单位叫做扇区,每个扇区存储512字节。操作系统读取硬盘的时候,不会一个个扇区读取,而是一次性连续读取多个扇区,即一次性读取一个块,块的大小最常见的就是4K,即连续八个扇区组成一个块。

文件数据都存储在块中,那么和显然,还必须有一个地方存储文件的元信息。比如文件的创建者,文件的创建日期,文件的长度等,这种存储文件元信息的区域就叫做inode(索引节点)。

文件名不是保存在inode中,而是保存在目录项中,文件名把文件的名称和对应的inode关联在一起。

 

2,inode大小

inode也会占用磁盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分为两个区域,一个是数据区,存放文件数据,另一个是inode区,存放inode所包含的信息。

每个inode节点的大小,一般是128字节或256字节,inode字节的总数,在格式化时就给指定了,一般是每1KB或每2KB就设置一个inode.假设在一块1GB的硬盘中,每个inode节点大大小为128字节,每1KB

就设置一个inode,那么inode表的大小就会达到128MB,占整个硬盘的12.8%。使用df命令可以查看每个硬盘分区的inode总数和已经适应的数量。

 

# df -i

文件系统              Inode  已用(I)  可用(I) 已用(I)%% 挂载点

/dev/mapper/vg_server-lv_root

                     3276800   94445 3182355    3% /

tmpfs                 256881       5  256876    1% /dev/shm

/dev/sda1             128016      43  127973    1% /boot

/dev/mapper/vg_server-lv_home

                     2990080      12 2990068    1% /home

---------------------------------------------------------------------

查看每个inode的大小,可以使用以下命令:

 

# dumpe2fs -h /dev/sda1 |grep "Inode size"

dumpe2fs 1.41.12 (17-May-2010)

Inode size:               128

---------------------------------------------------------------------

由于每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存满的情况,这时就无法再硬盘上创建新文件。

3,inode号码:

每个inode都有一个号码,Linux系统用inode号码来识别不同的文件,Linux系统内部不使用文件名,而使用inode号码来识别文件,对系统来说,文件名只是inode号码便于识别的别名。表面上用户通过文件名打开文件,实际上系统内部这个过程分为三步:首先系统找到这个文件名对应的 inode号码,其次通过inode号码获取inode信息,最后根据信息找到文件数据所在的块,然后读取数据。

 

使用ls -i 命令可以查看文件名对应的inode号码:

# ls -i test.log

3019507 test.log

---------------------------------------------------------------------

3.2 使用stat命令查看文件信息。

使用stat命令可以查看文件信息,比如文件的inode,权限,时间属性,文件大小,所有者,链接数量以及文件类型等。

 

#stat kkk

  File: "kkk"

  Size: 4096            Blocks: 8          IO Block: 4096   目录

Device: fc02h/64514d    Inode: 2228225     Links: 2

Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2017-07-17 20:07:20.463000814 +0800

Modify: 2017-07-17 20:06:49.095997672 +0800

Change: 2017-07-17 20:06:49.095997672 +0800

 

cd 更改工作目录路径

绝对路径从/(根)开始,然后循环所需的目录下

相对路径从当前目录开始

 

cd ~       :进入用户主目录

--------------------------------------------------------------------

cd -       :返回进入此目录之前所在的目录

--------------------------------------------------------------------

cd ..      :返回上级目录

--------------------------------------------------------------------

cd ../..   :返回上两级目录

---------------------------------------------------------------------

touch:创建空文件,更改文件时间。

 

---------------------------------------------------------------------

mkdir:创建目录:

-p :一次创建多个目录。

 

---------------------------------------------------------------------

#du -a /boot|sort -rn|head -5

45791   /boot

16124   /boot/initramfs-2.6.32-358.el6.x86_64.img

15816   /boot/initramfs-2.6.39-400.17.1.el6uek.x86_64.img

4011    /boot/vmlinuz-2.6.39-400.17.1.el6uek.x86_64

3951    /boot/vmlinuz-2.6.32-358.el6.x86_64

 

---------------------------------------------------------------------

sort:

 

-n 依据数值的大小排序。

-r 以相反的顺序来排序。

---------------------------------------------------------------------

head:

 

head用来显示档案的开头至标准输出当中,默认head命令打印其相应文件的开头10行。

head -n 显示的行数。

---------------------------------------------------------------------

tail:

 

默认查看文件的最后10行。

tail -5 查看文档的最后5行

---------------------------------------------------------------------

ls 列出目录和文件信息

文件属性    文件数 拥有者  所属的group  文件大小     建档日期   文件名  
drwx------    2    Guest     users         1024       21 21:05   Mail
-rwx--x—x    1    root     root           89080     7 22:41    tar 
-rwxr-xr-x    1    root     bin            5013       15 9:32    uname
-rwxr-xr-x    1    root     bin            308364     29 7:43    zsh 
-rwsr-x---    1    root     bin            9853       15 5:46    su

 

例,一文件的最后一次访问时间(最近时间为后),对/root目录中的文件和子目录进行排序显示

#ls -ltr /root

总用量 32

drwxr-xr-x. 2 root root 4096 7月  17 13:29 桌面

drwxr-xr-x. 2 root root 4096 7月  17 13:29 音乐

drwxr-xr-x. 2 root root 4096 7月  17 13:29 下载

drwxr-xr-x. 2 root root 4096 7月  17 13:29 文档

drwxr-xr-x. 2 root root 4096 7月  17 13:29 图片

drwxr-xr-x. 2 root root 4096 7月  17 13:29 视频

drwxr-xr-x. 2 root root 4096 7月  17 13:29 模板

drwxr-xr-x. 2 root root 4096 7月  17 13:29 公共的

-rw-r--r--  1 root root    0 7月  18 19:49 oracle-release

 

3.3链接文件的简介:

 

  Linux系统下提供ln指令来进行文件链接。文件链接主要分为硬链接和软链接。

1,硬链接:由于linux下的文件是通过索引节点(inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统并不为它重新分配inode。每添加一个一个硬链接,文件的链接数就加1。

可以用:ln命令来建立硬链接

例如:

 

ln file01 hardfile01  建立file01的硬链接

 

不足:

尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一下不足之处:

(1)不可以在不同文件系统的文件间建立链接

(2)只有超级用户才可以为目录创建硬链接。

 

取消硬链接时可以使用unlink取消任何一个,对其他文件没有影响

例如:unlink file01

2,软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。

ln -s abc cde 建立abc 的软连接

linux命令学习-第三天