文件的属性-下
文件属性相关
文件的属性
扩展名
windows 通过扩展名区分不同的类型的文件
linux 扩展名是给人类看的 方便我们区分不同类型文件
.conf 配置文件
.sh 脚本
.tar.gz 压缩包
.py python脚本
[root@nfsnobody /tmp]# ll etc.tar.gz 查看压缩包信息
-rw-r--r-- 1 root root 9734648 Jul 20 01:41 etc.tar.gz
[root@nfsnobody /tmp]# mv etc.tar.gz etc.txt 给压缩包改名
[root@nfsnobody /tmp]# ll et
etc/ etc-pai.tar.gz etc.txt ethers
[root@nfsnobody /tmp]# ll etc.txt 查看信息
-rw-r--r-- 1 root root 9734648 Jul 20 01:41 etc.txt
[root@nfsnobody /tmp]# tar tf etc.txt 一样可以打开
##证明Linux系统下 改扩展名不影响使用
文件的类型
f file 文件
d dir 目录
l softlink 软连接
b block 块设备
c character 字符设备
p pipe 管道
s socket 套接字
[root@nfsnobody /tmp]# file /bin/ls /etc/hosts /tmp/etc-pai.tar.gz
##file可以查看文件的详细类型
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
/etc/hosts: ASCII text
/tmp/etc-pai.tar.gz: gzip compressed data, from Unix, last modified: Fri Jul 20 02:39:55 2018
####### file 文件
1.二进制文件(命令)
2.文本文件(text)
3.数据文件(data)需要单独命令查看
文件系统
1、磁盘(房子)
2、分区(划分隔断)
3、格式化创建文件系统(装修)
4、挂载(安装门窗)
5、存放文件(住人)
Linux下的权限
对于一个文件来说 系统中的用户分为:主人 家人 陌生人
所有者 用户组 其他人
r----read 可读 4
w----write 可写 2
x----execute 可执行 1
- 0
与用户相关的文件
/etc/passwd 用户的信息
/etc/shadow 用户的密码信息
/etc/group 用户组的信息
/etc/gshadow 用户组的密码
/etc/passwd 下每一列的含义
root :x :0 :0 :root :/root :/bin/bash
nobody :x :99 :99 :Nobody :/ :/sbin/nologin
clsn :x :500 :500 : :/home/clsn :/bin/bash
用户名 原来密码的位置 UID GID 用户的说明信息 用户的家目录 命令解释器
命令解释器
默认的命令解释器
/bin/bash 默认
/sbin/nologin 无法登陆系统--虚拟用户
其他的命令解释器
[root@nfsnobody ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
软连接与硬链接
链接:软连接(softlink 或 符号链接 symlink) 硬链接 (hard link)
硬链接
含义
在同一分区中,文件的inode号相同 则互为硬链接
硬链接即文件的入口(超市的前后门)
作用
如何创建硬链接
ln 命令,前面是源文件 后面是创建的链接文件
[root@nfsnobody ~]# mkdir /nfsnobody 创建环境
[root@nfsnobody ~]# cd /nfsnobody/
[root@nfsnobody nfsnobody]# echo nfsnobody.com >>/nfsnobody/nfsnobody.txt
[root@nfsnobody nfsnobody]# cat nfsnobody.txt
nfsnobody.com
[root@nfsnobody nfsnobody]# ln nfsnobody.txt nfsnobody.txt.hard 创建硬链接
[root@nfsnobody nfsnobody]# ll -lhi 检查 创建成功 两个文件inode号码相同
total 8.0K
523268 -rw-r--r--. 2 root root 14 Jul 10 20:53 nfsnobody.txt
523268 -rw-r--r--. 2 root root 14 Jul 10 20:53 nfsnobody.txt.hard
[root@nfsnobody nfsnobody]# cat nfsnobody.txt 所查看内容一样
nfsnobody.com
[root@nfsnobody nfsnobody]# cat nfsnobody.txt.hard 所查看内容一样
nfsnobody.com
查看两文件的inode号相同。
[root@nfsnobody clsn]# ls -lhi clsn.txt clsn.txt-hard
151273 -rw-r--r-- 2 root root 607 Aug 30 09:13 clsn.txt
151273 -rw-r--r-- 2 root root 607 Aug 30 09:13 clsn.txt-hard
软连接
含义
最常用
为了快捷,省事,方便使用
相当于windows 的快捷方式 存放的源文件的位置
如何创建软链接
不能对目录创建硬链接 软连接可以
[root@nfsnobody nfsnobody]# ln -s nfsnobody.txt nfsnobody.txt-soft 创建软连接
[root@nfsnobody nfsnobody]# ls -l 检查是否创建成功
total 8
-rw-r--r--. 2 root root 14 Jul 10 20:53 nfsnobody.txt
-rw-r--r--. 2 root root 14 Jul 10 20:53 nfsnobody.txt.hard
lrwxrwxrwx. 1 root root 10 Jul 10 21:13 nfsnobody.txt-soft -> nfsnobody.txt 创建成功
使用绝对路径创建 显示的信息也是绝对路径 相对路径创建 显示的就是相对路径
[root@nfsnobody ~]# ln -s /nfsnobody/nfsnobody.txt /nfsnobody/nfsnobody.txt.1
[root@nfsnobody ~]# ls -l /nfsnobody/
total 8
-rw-r--r--. 2 root root 14 Jul 10 20:53 nfsnobody.txt
lrwxrwxrwx. 1 root root 18 Jul 10 21:16 nfsnobody.txt.1 -> /nfsnobody/nfsnobody.txt
源文件消失(移动改名删除等) 查看信息 软连接对应的源文件就会变红(红底白字)
文件删除原理
如何查看被占用的文件
lsof (list open files ) 显示所有被占用的文件
模拟环境
xshell开启两个窗口 先运行窗口二 在运行窗口一
窗口1
lsof |grep nfsnobody.txt
窗口2
tail -f /nfsnobody/nfsnobody.txt
查看进程
[root@nfsnobody /nfsnobody]# lsof |grep nfsnobody.txt
tail 3755 root 3r REG 8,3 14 1046996 /nfsnobody/nfsnobody.txt
命令或服务名称 文件大小 inode号码 文件名
软连接与硬链接之间的区别
创建的区别
含义
在同一分区硬链接文件与源文件的inode节点号相同。而软链接文件相当于windows的快捷方式(inode节点号与源文件不同)
特点
不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到
软连接可以跨文件系统,硬链接不可以跨文件系统
源文件 软连接 硬链接与删除
删除软连接文件,对源文件及硬链接文件无任何影响
删除文件的硬链接文件,对源文件及软连接文件无任何影响
删除连接文件的源文件,对硬链接文件无影响,会导致其软连接失效(红底白字)
同时删除源文件及硬链接文件,整个文件才会被“真正”删除
文件删除但空间未被释放案例
模拟:文件没有被彻底删除(i_link)为0 进程调用数(i_count)不为0
没有被彻底删除-硬链接数为0,进程调用数不为零
/var/log/messages
查看磁盘使用
[root@nfsnobody nfsnobody]# df -h df -h查看磁盘的使用情况
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 6.1G 12G 35% / / 使用最多
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
[root@nfsnobody nfsnobody]# du -sh /* |sort -h 使用du -sh /*一层层排查
[root@nfsnobody nfsnobody]# du -sh /var/* |sort -h 排查过程
[root@nfsnobody nfsnobody]# du -sh /var/log/* |sort -h 找到占用空间最多的
[root@nfsnobody nfsnobody]# \rm -f /var/log/messages 确认无用处之后 再删除
[root@nfsnobody nfsnobody]# df -h 删除后检查发现空间并没有被释放
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 6.1G 12G 35% / 并没有被释放
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
[root@nfsnobody nfsnobody]# lsof |grep messages 使用lsof 查看文件是否被调用
rsyslogd 1247 root 1w REG 8,3 4888993470 135456 /var/log/messages (deleted)
deleted lsof的标记 表示文件硬连接数为0 进程调用不为0
[root@nfsnobody nfsnobody]# /etc/init.d/rsyslog restart 重启进程
[root@nfsnobody nfsnobody]# df -h 查看磁盘的使用情况
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.5G 17G 9% / 磁盘空间被释放
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
重启进程后/var/log/messages也会重新被创建 但是空间已被释放
如何找通过inode号找硬链接
使用find命令 -inum参数找inode号码,找到相同的inode 互为硬链接。
[root@nfsnobody ~]# ls -lhi test.txt
260141 -rw-r--r--. 2 root root 265 Aug 29 19:16 test.txt
[root@nfsnobody ~]# find /* -type f -inum 260141
/root/test.txt
/root/test.txt-hard