前言:

本文内容:文件属性查看和修改,多种查看文件方式,硬链接和软链接

推荐Linux阿里云环境学习视频:【狂神说Java】Linux最通俗易懂的教程阿里云真实环境学习_哔哩哔哩_bilibili

文件属性查看和修改

文件属性查看

Linux系统是一种典型的多用户系统,不同用户拥有不同权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

我们可以使用llls -l来显示文件的属性以及文件所属的用户和组。

在Linux中,第一个字符代表这个文件的类型

  • 当为[d]则表示目录
  • 当为[-]则表示文件
  • 当为[l]则表示链接文档
  • 当为[b]则表示为装置文件里的可供储存接口设备
  • 当为[c]则表示为装置文件里的串行端口设备

接下来的字符中,以三个为一组,均为[rwx]

  • [r]代表可读
  • [w]代表读写
  • [x]代表可执行(execute)

如果没有权限会用[-]表示

1
2
3
4
5
6
# 1,4,7表示读r
# 2,5,8表示写w
# 3,6,9表示执行x
l rwx(root权限) rwx(组内权限) rwx(其他用户权限) 1 root root 7 Feb 9 2022 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Sep 2 10:21 boot
drwxr-xr-x 17 root root 2980 Aug 31 13:21 dev

文件属性修改

  1. chgrp:更改文件属组

    1
    chgrp [-R] 属组名 文件名

    -R:递归的更改文件属组

  2. chown:更改文件属主

    1
    2
    chown [-R] 属主名 文件名
    chown [-R] 属主名: 属组名 文件名
  3. chmod:更改文件9个属性

    1
    chmod [-R] xyz 文件或目录

    Linux文件属性有两种设置方法,一种是数字(常用),一种是符号。

    Linux文件的基本权限有9个,分别是owner/group/others三种身份,以及身份各自有的read/write/execute三种权限。

    三种权限的分数对照表

    1
    r:4  w:2  x:1

    每种身份的权限分数时累加的,例如-rwxrwx---分数为:

    • owner = rwx = 4+2+1=7
    • group = rwx = 4+2+1=7
    • other = — = 0
    1
    chmod 770 文件名

多种查看文件方式

可以使用man[命令]来查看命令使用文档

Linux系统中使用以下命令来查看文件的内容:

1
2
3
4
5
[root@jokerdig /]# ls
bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@jokerdig /]# cd /etc/sysconfig/network-scripts
[root@jokerdig network-scripts]# ls
ifcfg-eth0
  • cat由第一行开始显示文件内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [root@jokerdig network-scripts]# cat ifcfg-eth0 
    # Created by cloud-init on instance boot automatically, do not edit.
    # If you don't want cloud-init genrated automatically,you can disable it in /etc/cloud/cloud.cfg
    # For more information, please refer to: https://help.aliyun.com/document_detail/57803.html
    #
    BOOTPROTO=dhcp
    DEVICE=eth0
    ONBOOT=yes
    STARTMODE=auto
    TYPE=Ethernet
    USERCTL=no
  • tac从最后一行开始显示文件内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [root@jokerdig network-scripts]# tac ifcfg-eth0 
    USERCTL=no
    TYPE=Ethernet
    STARTMODE=auto
    ONBOOT=yes
    DEVICE=eth0
    BOOTPROTO=dhcp
    #
    # For more information, please refer to: https://help.aliyun.com/document_detail/57803.html
    # If you don't want cloud-init genrated automatically,you can disable it in /etc/cloud/cloud.cfg
    # Created by cloud-init on instance boot automatically, do not edit.
  • nl显示的时候,输出行号

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
      [root@jokerdig network-scripts]# nl ifcfg-eth0 
    1 # Created by cloud-init on instance boot automatically, do not edit.
    2 # If you don't want cloud-init genrated automatically,you can disable it in /etc/cloud/cloud.cfg
    3 # For more information, please refer to: https://help.aliyun.com/document_detail/57803.html
    4 #
    5 BOOTPROTO=dhcp
    6 DEVICE=eth0
    7 ONBOOT=yes
    8 STARTMODE=auto
    9 TYPE=Ethernet
    10 USERCTL=no

    - `more`一页一页的显示文件内容

    > 空格翻页,Enter代表向下一行

    - `less`与more类似,但它可以往前翻页

    > 上下键可以上下翻页,q退出
    >
    > / 字符串,来向下查询所有该字符串出现的位置
    >
    > ? 字符串,来向上查询所有该字符串出现的位置
    >
    > n 代表继续搜寻下一个
    >
    > N 代表继续搜寻上一个

    - `head`只看开头几行

    > 通过`-n`参数表示显示几行

    - `tail`只看结尾几行(使用`-n`同上)

    > 网络配置目录:` /etc/sysconfig/network-scripts`
    >
    > 查看网络配置:`ifconfig`

    ### 硬链接和软链接

    Linux的链接分为两种:软链接和硬链接!

    #### 概述

    **硬链接**

    新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用(经存在的文件和新建的文件都指向另一个文件,它们二者之间时互相独立的)。

    **软链接**

    也称为符号链接,新建的文件以"路径"的形式来表示另一个文件,和Windows的快捷方式十分相似,新建的软链接可以指向不存在的文件。

    #### 简单测试

    **ln 创建链接**

    > `touch `创建文件
    >
    > `ln` 创建硬链接
    >
    > `ln -s `创建软链接
    >
    > `echo `输入字符串

    ```shell
    [root@jokerdig /]# touch f1 # 创建文件f1
    [root@jokerdig /]# ls
    f1(白色)
    [root@jokerdig /]# ln f1 f2 # 创建硬链接f2
    [root@jokerdig /]# ls
    f1(白色) f2(白色)
    [root@jokerdig /]# ln -s f1 f3 # 创建软(符号)链接f3
    [root@jokerdig /]# ls
    f1(白色) f2(白色) f3(蓝色)
    [root@jokerdig /]# ll
    total 3
    -rw-r--r-- 2 root root 0 Sep 3 13:26 f1
    -rw-r--r-- 2 root root 0 Sep 3 13:26 f2
    lrwxrwxrwx 1 root root 2 Sep 3 13:26 f3 -> f1
    [root@jokerdig /]# echo "jokerdig.com" >>f1 # 写入信息到f1
    [root@jokerdig /]# cat f1
    jokerdig.com
    [root@jokerdig /]# cat f2
    jokerdig.com
    [root@jokerdig /]# cat f3
    jokerdig.com

    # 删除f1并查看f2和f3的区别
    [root@jokerdig /]# rm -rf f1 # 删除f1
    [root@jokerdig /]# ls
    f2(白色) f3(红色)
    [root@jokerdig /]# cat f2
    jokerdig.com
    [root@jokerdig /]# cat f3
    cat: f3: No such file or directory
    [root@jokerdig /]#