zoukankan      html  css  js  c++  java
  • 文件的属性-下

    文件属性相关

    文件的属性

    扩展名

    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
    源文件消失(移动改名删除等) 查看信息 软连接对应的源文件就会变红(红底白字)
    

    文件删除原理

    硬连接数为0 
    进程调用数为0 是否有人使用

    如何查看被占用的文件

    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号码 文件名
    

    软连接与硬链接之间的区别

    创建的区别

    ln命令创建硬链接,ln -s 创建软链接

    含义

    在同一分区硬链接文件与源文件的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]# 
    m -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
    
  • 相关阅读:
    常用256安全色
    PHP获取中英文混合字符串的字数
    windows 2012 443端口无法访问解决随记!
    SQL提取时间段内数据
    正则表达式匹配
    PclZip library能够压缩与解压缩Zip格式
    安装IIS或证书上服务提示安装程序无法复制文件 ftpsvc2.dl的解决办法
    tomcat
    版本控制gitlab
    rsync
  • 原文地址:https://www.cnblogs.com/wenrulaogou/p/11982101.html
Copyright © 2011-2022 走看看