08重要目录之文件相关

文件属性详述

1.补充:搭建yum仓库的步骤

1、创建目录,充当仓库
mkdir /yumrepo2
2、在仓库中创建Packages目录,用于存放软件
cd /yumrepo2
mkdir Packages
3、下载测试软件到Packages目录中
cd /yumrepo2/Packages
wget https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zip-3.0-11.el7.x86_64.rpm
4、下载远程访问软件:Nginx
yum install nginx
5、下载仓库初始化软件(yum-utils、createrepo)
yum install yum-utils createrepo
6、初始化仓库
createrepo /yumrepo2
注:会在仓库目录中创建repodata目录,主要用来存放yum依赖关系的。
7、修改Nginx配置文件,使其代理yum仓库目录索引
修改/etc/nginx/nginx.conf
root /yumrepo2;
nginx实现目录索引
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;

systemctl restart nginx

在浏览器测试

8、编辑yum源
1、将/etc/yum.repos.d中所有的文件备份到backup目录中
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
2、创建local.repo文件
touch local.repo
3、编辑local.repo
vim local.repo
[local]
name="xxx源的简介"
baseurl=http://192.168.15.201
gpgcheck=0
4、更新源
yum clean all
yum makecache
9、测试
yum remove zip
yum install zip  

2.二进制编译安装

优点:单独定制安装软件
缺点:不能决绝依赖关系
下载源代码包:https://nginx.org/download/nginx-1.20.1.tar.gz
  [root@python ~]$ wget https://nginx.org/download/nginx-1.20.1.tar.gz
知识储备:
解压文件:tar -xf nginx-1.20.1.tar.gz
1.检查系统
cd nginx-1.20.1
yum install pcre pcre-devel zlib zlib-devel make gcc gcc-c++ -y
./configure
2.编译
       make
       -j : 多核编译, 但是容易出错(不推荐)
3.安装
  make install
4.测试
  [root@python nginx]$ systemctl stop nginx
   # 启动nginx服务
[root@python nginx]$ /usr/local/nginx/sbin/nginx

3.重要目录数据说明 ——proc文件系统

1.重要日志文件
(1)/var/log/messages #软件安装运行以及系统运行异常日志文件
(2)/var/log/secure # 系统登录用户情况日志信息
      grep 'Failed' /var/log/secure
2.重要信息文件
/proc/cpuinfo #用于查看系统CPU信息情况文件   相关命令:lscpu
/proc/meminfo #用于查看系统内存信息情况文件   相关命令:free -m
/proc/loadavg #用于查看系统负载信息情况文件,用于衡量系统繁忙程度 相关命令:w
    什么是系统负载:单位时间内,系统进程占用cpu的相对时间
     
1个CPU 1个核 1 100%

1个CPU 2个核 1 50%

10:23:31 up 4 days, 22:06,  3 users, load average: 0.00, 0.86, 2.90
当前系统时间 当前系统状态(up\down) 启动时间 三个窗口                1分钟负载  10分钟负载  15分钟负载

[root@python nginx]$ while true ; do w ; sleep 1; clear; done
/proc/mounts #用于查看系统挂载信息情况文件   相关命令:column -t(根据文件类型进行对齐)

文件属性

1.文件属性信息概述

 1.常见的文件类型:
  d:文件夹(directory)
•  -:普通文件(f/-(file))
            ①纯文本文件 text /etc/hosts
            ②二进制文件 binary /bin/ls
            ③数据型文件 data /tmp/etc.tar.gz
  l:链接文件
  c:字符设备文件,会不断产生字符信息(字体)character
  b:块设备文件(硬盘)block
   
  s:socket文件,套接接口文件,和网络有关的文件
  p:管道文件(pipe)
  管道:将前一个命令的结果交给后面一个命令来处理即管道技术
  文件类型查看方法:
      配置文件:.conf
      日志文件:.log
      脚本文件:.sh
      脚本文件.py
                 
201326677   drwxr-xr-x.        6       root   root  100   Sep 13 16:48   yum
67662624   -rw-r--r--         1       root   root  970   Sep 23 03:50   yum.conf
134451378   drwxr-xr-x.        4       root   root  151   sep 23 04:16   yum.repos.d
inode号 文件的类型 linux权限 硬链接个数 属主   属组 文件的大小 文件的修改时间 文件名字
(index node索引节点)
属主属性:文件所有者
属组属性:文件所属组
文件大小属性:最小单位字节

inode包含文件的元信息(除了文件名),具体来说有以下内容:
Size: 文件的字节数
Blocks: 块数
IO Block: 块大小
Device: 设备号码
Inode: 文件数据block的位置
Links: 链接数,即有多少文件名指向这个inode
Access: 文件的读写执行权限
Uid: 文件拥有者的User ID
Gid: 文件的Group ID
Access: 指文件上一次打开的时间
Modify: 指文件内容上一次变动的时间
Change: 指inode上一次变动的时间

可用 stat 命令查看

2.硬链接和软连接

硬链接和软连接
硬链接:相当于文件的别名,id号一致
ln [原来的路径] [新的路径]
硬链接,源文件与目标文件的inode号码相同,都指向同一个inode。107 inode信息中有一项叫做“链接数”,记录指向该inode的文件名总数。
反过来,删除一个文件名,就会使得indoe节点中的链接数减一。当这个值减到0,表明没有文件名指向这个inode,系统就会回收这个inode号码,以及其对应的block区域。


软连接:相当于快捷方式,用于存放指向源文件的路径信息
 ln -s [原来的路径] [新的路径]
特点:1. 防止误删数据 2.不能给目录创建硬链接
目录文件的“链接数”。创建目录时,默认会生成两个目录项"."和"..",前者的inode号码就是当前目录的inode号码,等同于当前目录的“硬链接“后者的inode号码就是当前目录的父目录的inode号码,等同于父目录的“115 硬链接“。所以,任何一个目录的”硬链接“总数,总是等于2+它的子目录总数(含隐藏目录)

软链接文件指向的是源文件的文件名,而不是inode号,所以源文件的“链接数”不会增加

注:在linux操作系统中,硬链接个数为0时,才会删除源文件,表示数据真正删除了
文件信息没有被进程调用的时候,进程调用数为0

3.存储数据相关

1.inode用于存放的是文件属性
创建一个文件至少占用一个inode和一个block
在同一个分区中,两个文件的inode号码相同,两个文件互为硬链接
展示inode信息:ls -lhi /etc/hosts
  drwxr-xr-x  2 root root         6 Sep 22 18:05 yum
统计文件数据信息:df -i
2.block存储数据信息
  block默认大小为4k,比较大的文件占用多个block,比较小的文件,剩余空间无法使用
  磁盘读取数据按block为单位读取的
  读取一个block会消耗一次磁盘I/O(input/output 磁盘读写)
  展示block信息: ls -lh /etc/hosts
  统计block数目:df/df -h
 

4.文件属性信息详述

用户及用户组
1.概念
用户:相当于系统管理员
用户组:相当于具有某种相同特征的一系列用户的集合
2.创建用户
useradd:创建用户
groupadd:创建用户组
案例1:创建用户
[root@python ~]$ groupadd -g 666 shanhe
[root@python ~]$ useradd -u 666 -g 666 test777
id:查看指定用户的id(默认查看当前用户)
格式:useradd [选项(非必须)] [用户名称]
用户名命名规则:1.可以包含字母和数字
             2.必须字母开头
3.选项:
-u:指定uid
-g:指定gid
-r::指定创建系统用户
-s:指定用户默认的解释器

4.uid代表的是用户的唯一标号
gid代表的用户组的唯一编号

系统用户和普通用户的区别:
系统用户一般用来运行系统级别的应用程序
    id号在0-200之间的用户运行的是操作系统级别的应用程序
    id号在201-999之间的用户运行的是用户级别的应用程序
    通常情况下,id号在1000以下,那么该用户就是系统用户,在1000以上是普通用户。
普通用户一般用来登录操作系统
5.用户的特征信息:/etc/passwd
  用户的密码信息:/etc/shadow
  用户组特征信息: /etc/group
  用户组密码信息:/etc/gshadow
 6.权限:r(read):4
        w(write):2
        x(execute):1
        N/A(-):0(没有权限)
 
  7.时间信息:文件修改时间mtime,属性修改时间ctime,文件访问时间atime   用stat查看
  8。系统常用的shell解释器:
  /bin/bash
  /bin/sh
  /etc/passwd 文件保存的是用户信息
 
 
 






上一篇:Linux文件系统与日志分析


下一篇:操作系统——文件系统(6)目录解析代码的实现