RHEL54文件系统和TAR工具Word文件下载.docx
《RHEL54文件系统和TAR工具Word文件下载.docx》由会员分享,可在线阅读,更多相关《RHEL54文件系统和TAR工具Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
[root@localhost~]#
[root@localhost~]#ls-li
total56
533587-rw-------1rootroot1050Mar602:
15anaconda-ks.cfg
919063drwxr-xr-x2rootroot4096Mar602:
43Desktop
524290-rw-r--r--1rootroot29302Mar602:
15install.log
524291-rw-r--r--1rootroot3738Mar602:
15install.log.syslog
[root@localhost~]#
前面的一串数字就是文件的节点号,
其实我们的节点号是在分区创建的时候就已经分配好了的。
下面我们来学习复制,剪切,删除对文件inode的影响。
1.
复制对文件inode的影响,
现在先来查看一下,
[root@localhost~]#cd/boot/
[root@localhostboot]#
[root@localhostboot]#ls-lifile
6030-rw-r--r--1rootroot0Mar613:
26file
[root@localhostboot]#
可以看到,这个文件的节点号是6030,现在我们将它复制到另外一个分区,
[root@localhostboot]#cpfile/var/
[root@localhostboot]#cd/var/
[root@localhostvar]#
[root@localhostvar]#ls-lifile
2115361-rw-r--r--1rootroot0Mar613:
27file
[root@localhostvar]#
将这个文件复制到/var分区下面后,这个文件的inodenumber就改变了。
当一个文件从一个分区复制到另外一个分区的时候,系统就分配了另外一个inode给这个文件。
刚才我们是将一个文件从一个分区复制到另外一个分区,现在我们在同一个分区里面复制文件,文件的节点号会不会发生改变。
[root@localhostboot]#cpfile/boot/grub/
[root@localhostboot]#cdgrub/
[root@localhostgrub]#ls-lifile
22091-rw-r--r--1rootroot0Mar613:
29file
[root@localhostgrub]#
可以看到,刚才这个文件的节点号是6030,现在就变成了22091了。
在同一个分区里面复制文件,这个文件的节点号也是会发生改变的。
因为在这个分区有两份相同的文件,只是文件的内容相同,但是文件的inode属性却是不一样的。
2.剪切对文件inode的影响
可以看到,这个文件的节点号是6030,现在我们将这个文件在同个分区里剪切一份。
[root@localhostboot]#mvfile/boot/test/
[root@localhostboot]#cdtest/
[root@localhosttest]#
[root@localhosttest]#ls-lifile
[root@localhosttest]#
可以看到,这个文件节点号是没有改变的。
当在同一个分区里面移到文件,文件的节点号没有发生改变。
刚才我们是在同一个分区里面移到文件,现在我们将文件在不同的分区当中移到,文件的节点号会不会发生改变呢。
[root@localhost~]#cd/boot/test/
[root@localhosttest]#mv/boot/test/file/var/ftp/pub/
[root@localhosttest]#cd/var/ftp/pub/
[root@localhostpub]#ls-lifile
325584-rw-r--r--1rootroot0Mar613:
[root@localhostpub]#
可以看到,这个文件的节点号是肯定会变的。
3.
删除对文件inode的影响
44file
[root@localhostboot]#rm-rffile
现在我们把file这个文件给删除了,其实我们只是将file这个文件的节点表给删除了,其实我们的数据都还在。
这也就是为什么当我们删除一个文件,这个文件还可以被找回来的原因。
当然如果我们在到这个分区里面写入数据,那么原来的数据就会被覆盖。
[root@localhostboot]#touchfile1
[root@localhostboot]#ls-lifile1
49file1
现在我们又新建了一个文件file1,这个文件的节点号也是6030,它就已经覆盖了以前的数据的节点号。
那么以前的数据就找不回来了。
总结:
复制:
在同一个分区,节点号改变。
在不同的分区,节点号改变。
剪切:
在同一个分区,节点号不变。
删除:
只是删除了文件的节点表,数据没有被真正删除,只有当往这个分区在写入数据的时候,才会覆盖原来的数据。
关于硬链接和软链接
硬链接(hardlinks)
硬链接文件完全等同于原文件,原文件名和连接文件名都指向相同的物理地址。
不可以跨文件系统,也不可以建立目录的硬链接。
如何创建硬链接呢
#ln文件名链接名
[root@localhostboot]#ls-liinittab
6033-rw-r--r--1rootroot1666Mar614:
06inittab
[root@localhostboot]#pwd
/boot
[root@localhostboot]#lninittab/boot/grub/inittab.bak
[root@localhostboot]#cd/boot/grub/
[root@localhostgrub]#
[root@localhostgrub]#ls-liinittab.bak
6033-rw-r--r--2rootroot1666Mar614:
06inittab.bak
可以看到,我们给inittab这个文件创建了一个硬链接initab.bak这个文件。
这两个文件的节点号都是一样的。
现在我们来修改原文件,
在修改之前我们来看看这个两个文件是不是一样的,使用diff工具。
[root@localhost~]#diff/boot/inittab/boot/grub/inittab.bak
OK,这两个文件的内容是一样的。
[root@localhostboot]#viminittab
我已经对原文件做了修改了。
现在在来看看链接文件是否也跟着改变了
OK,这两个文件还是一样的,也就是说我们改变了原文件的内容,链接文件也是会跟着发生改变的。
当然,如果在链接文件里面添加内容,那么原文件也会跟着发生改变的。
现在如果我们将原文件个删除了,那么链接还会存在吗?
[root@localhostboot]#rm-rfinittab
[root@localhostgrub]#ls|grepinittab.bak
inittab.bak
OK,可以看到,当我们删除原文件的时候,链接文件也还是存在的。
因为原文件和链接文件都有节点表,这两个节点表都是指向真正的数据区的,当我们删除原文件的时候,只是删除了原文件的节点表,而没有删除真正的数据,而我们的链接文件也是指向真正的数据区的,所以链接文件存在也是正常的。
接下来,在做一个试验。
[root@localhostboot]#ls-lifstab
6034-rw-r--r--1rootroot684Mar615:
43fstab
在/boot分区下面有个fstab文件,现在我们为这个文件做一个硬链接。
[root@localhost~]#ln/boot/fstab/tmp/
ln:
creatinghardlink`/tmp/fstab'
to`/boot/fstab'
:
Invalidcross-devicelink
但是,现在系统报错了,他提示我们硬连接是不可以跨分区的。
2.
软链接(softlinks)
软链接文件相当于为原文件建立了一个快捷方式,可以跨文件系统,也可以为目录建立。
软链接和硬链接不同,软链接有自己的inode,类似windows下的快捷方式。
如何创建软链接呢?
#ln-s文件名链接名
[root@localhostboot]#ln-s/boot/fstab/boot/grub/fstab.bak
[root@localhostboot]#cd/boot/grub
[root@localhostgrub]#ls-lifstab.bak
22106lrwxrwxrwx1rootroot11Mar615:
56fstab.bak->
/boot/fstab
现在我为/boot下面的fstab文件做了一个硬链接/boot/grub/fstab.bak文件。
当我们修改原文件里面的数据,我们链接文件也会发生改变。
修改链接文件的数据,原文件也会发生改变。
这点和硬链接是一样的。
现在我们删除原文件,链接文件还可以打开吗?
[root@localhost~]#rm-rf/boot/fstab
[root@localhost~]#cd/boot/grub
很显然,当我们删除原文件以后,我们的链接文件就坏掉了。
因为软连接的节点号并没有指向真正的数据,而是指向原文件,当原文件的节点表被删除了,我们的软连接也打不开了。
刚才我们的硬链接并不能够跨分区做,但是我们的软连接没有限制。
[root@localhostboot]#ln-s/boot/fstab/tmp/fstab.bak
[root@localhostboot]#cd/tmp/
[root@localhosttmp]#ls-lifstab.bak
131180lrwxrwxrwx1rootroot11Mar616:
12fstab.bak->
[root@localhosttmp]#
我们的软链接是可以跨分区的。
硬链接不可以跨分区,不可以对目录做。
但是硬链接的原文件和链接文件的节点表都指向真正的数据区。
删除原文件,链接文件也可以打开。
软链接可以跨分区,也可以对目录做。
但是软链接的链接文件的节点表是指向原文件的,当原文件删除后,链接文件就坏掉了。
关于linux系统中文件类型
Ls-l的符合文件类型
-
常规文件
d目录
l符号链接
b块设备文件
c字符特殊文件
p别命名的管道
s套接字
关于linux下面检查空闲空间
#df-h
[root@localhost~]#df-h
FilesystemSizeUsed
Avail
Use%
Mountedon
/dev/sda33.9G2.3G1.5G
61%
/
/dev/sda6494M11M458M3%
/home
/dev/sda215G11G2.7G81%
/var
/dev/sda199M21M74M22%
/boot
tmpfs217M0217M0%
/dev/shm
none217M104K217M1%
/var/lib/xenstored
/dev/hdc2.8G2.8G0
100%
/media/RHEL_5.4i386DVD
查看磁盘的空间用量。
#du-h
[root@localhost~]#du-h/tmp/
4.0K/tmp/.ICE-unix
4.0K/tmp/.font-unix
8.0K/tmp/orbit-root
4.0K/tmp/.X11-unix
8.0K/tmp/gconfd-root/lock
12K/tmp/gconfd-root
60K/tmp/
这条命令会显示/tmp目录下面每个文件的大小。
可以加上s参数,就会汇总的意思,只显示/tmp目录的大小。
[root@localhost~]#du-sh/tmp/
关于linux下面挂载各种设备方法
挂载(mounting):
意味着使外来的文件系统看起来如同是主目录树的一部分。
访问前,介质必须被挂载
摘除时,介质必须被卸载
挂载光盘和DVD
#Mount/dev/chrom/media
Eject命令用来卸载并弹出磁盘
挂载USB设备
#mount/dev/sdb1/mnt
在linux如何卸载呢?
我们使用Umount命令来卸载挂载设备,
#Umount/mnt(挂载点)
如何使用TAR工具来进行压缩打包
在linux下面如何打包
#tar-cvf/tmp/etc.tar/etc
-c创建打包
-v查看过程
-f指定打包文件或设备
[root@localhost~]#tar-cvf/tmp/etc.tar/etc/
[root@localhost~]#cd/tmp/
[root@localhosttmp]#
[root@localhosttmp]#lletc.tar
-rw-r--r--1rootroot1095680Mar617:
44etc.tar
这个就是我们打包出来的文件etc.tar。
打包只是将这些文件打包在一起,并不压缩,也就是不会减小大小。
在linux中进行压缩文件
#gzipetc.tar
[root@localhosttmp]#gzipetc.tar
[root@localhosttmp]#ll-hetc.tar.gz
-rw-r--r--1rootroot170KMar617:
44etc.tar.gz
我们就将刚才打包出来的文件给压缩了,这个文件就变成了tar.gz了,而且这个文件的大小也明显减小了。
刚才我们是使用gzip的工具来