[内容] Linux ls 命令输出结果的解析

内容一:ls 命令输出结果

# ls
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu

(补充:这里以显示文件名为 mingyuzhu 的文件)

内容二:ls 命令输出结果简介

2.1 第 1 个字母 (输出结果的第 1 段)

# ls
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
|

1) – 普通文件 (file)
2) b 块设备 (block device)
3) c 字符串 (char device)
4) d 目录 (directory)
5) l 链接文件 (link file)
6) p 管道文件 (pipe file)
7) s 套接字文件 (socket)

2.2 第 2 个到第 4 个字母 (输出结果的第 2 段)

# ls
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
 |||
2.2.1 第 2 个字母 (输出结果的第 2 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
 |

1) – 所属主没有读权限
2) r 所属主有读权限 (read)

2.2.2 第 3 个字母 (输出结果的第 2 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
  |

1) – 所属主没有写权限
2) w 所属主有写权限 (write)

2.2.3 第 4 个字母 (输出结果的第 2 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
   |

1) – 所属主没有执行权限
2) x 所属主有执行权限 (execute)
3) s 所属主有执行权限 (execute),且让所有的用户都可以执行此文件 (Set UID)
4) S 所属主没有执行权限,但让所有的用户都可以执行此文件 (Set UID)

2.3 第 5 个到第 7 个字母 (输出结果的第 3 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
    |||
2.3.1 第 5 个字母 (输出结果的第 3 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
    |

1) – 所属组没有读权限
2) r 所属组有读权限 (read)

2.3.2 第 6 个字母 (输出结果的第 3 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
     |

1) – 所属组没有写权限
2) w 所属组有写权限 (write)

2.3.3 第 7 个字母 (输出结果的第 3 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
      |

1) – 所属组没有执行权限
2) x 所属组有执行权限 (execute)
3) s 所属组有执行权限 (execute),且让所有的用户在此目录下创建的目录的所属组都和此目录相同 (Set GID)
4) S 所属组没有执行权限,且让所有的用户在此目录下创建的目录的所属组都和此目录相同 (Set UID)

(注意:目录的执行权限代表可以进入这个目录)

2.4 第 8 个到第 10 个字母 (输出结果的第 4 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
       |||
2.4.1 第 8 个字母 (输出结果的第 4 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
       |

1) – 其他用户没有读权限
2) r 其他用户有读权限 (read)

2.4.2 第 9 个字母 (输出结果的第 4 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
        |

1) – 其他用户没有写权限
2) w 其他用户有写权限 (write)

2.4.3 第 10 个字母 (输出结果的第 4 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
         |

1) – 其他用户没有执行权限
2) x 其他用户有执行权限 (execute)
3) s 所属组有执行权限 (execute),且只有创建此文件的用户和 root 用户可以删除 (Sticky Bit)
4) S 所属组没有执行权限,且只有创建此文件的用户和 root 用户可以删除 (Sticky Bit)

2.5 第 11 个字母 (输出结果的第 5 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
           ||

1) 如果是文件,则代表此文件的链接数

(注意:此链接数包含软链接数和硬链接数)

2) 如果是目录,则代表此目录内的目录数

(注意:此最低值为 2,因为每个目录都至少包含 . (1 个点代表当前目录) 和 .. (2 个点代表此目录第上级目录) 这 2 个隐藏目录)

2.6 第 11 个到第 12 个字母 (输出结果的第 5 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
              ||||||||| |||||||||
2.6.1 第 11 个字母 (输出结果的第 5 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
              |||||||||

此项目的所属主

(补充:这里的所属主显示的是 mingyuzhu)

2.6.2 第 12 个字母 (输出结果的第 5 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                        |||||||||

此项目的所属组

(补充:这里的所属组显示的是 mingyuzhu)

2.7 第 13 个字母 (输出结果的第 6 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                                  ||||

此项目的大小

(补充:这里显示的大小是 4.0K)

2.8 第 14 个到第 16 个字母 (输出结果的第 7 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                                       ||| || |||||
2.8.1 第 14 个字母 (输出结果的第 7 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                                       |||

文件最后修改的月份

2.8.2 第 15 个字母 (输出结果的第 7 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                                           ||

文件最后修改的日期

2.8.3 第 16 个字母 (输出结果的第 7 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                                              |||||

文件最后修改的时间

2.9 第 17 个字母 (输出结果的第 8 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                                                    |||||||||

文件名

[步骤] Linux 应用可自动随机使用的 IPv4 端口号范围的设置

步骤一:查看应用可自动随机使用的 IPv4 端口号范围

1.1 方法一:查看 /proc/sys/net/ipv4/ip_local_port_range

# cat /proc/sys/net/ipv4/ip_local_port_range
32768 65536

(补充:从这里的输出结果可以看出应用可自动随机使用的 IPv4 端口号是从 32768 到 65536)

1.2 方法二:查看 sysctl 参数

# sudo sysctl -a | grep net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 65536

(补充:从这里的输出结果可以看出应用可自动随机使用的 IPv4 端口号是从 32768 到 65536)

步骤二:设置应用可随机自动使用的 IPv4 端口号范围

2.1 临时设置应用可自动随机使用的 IPv4 端口号范围

# echo "32768 65536" > /proc/sys/net/ipv4/ip_local_port_range

(补充:这里以设置应用可自动随机使用的 IPv4 端口号是从 32768 到 65536 为例)

2.2 永久应用应用可自动随机使用的 IPv4 端口号范围

2.2.1 修改 /etc/sysctl.conf 文件

# vim /etc/sysctl.conf

添加以下内容:

......
net.ipv4.ip_local_port_range = 32768 65536

(补充:这里以设置应用可自动随机使用的 IPv4 端口号是从 32768 到 65536 为例)

2.2.2 让刚刚修改的 /etc/sysctl.conf 文件里的参数生效

# sysctl -p

[步骤] 系统升级 (从 Fedora 39 升级到 Fedora 40)

步骤一:升级所有已安装的软件

# sudo dnf update

步骤二:安装 Fedora 升级软件

# sudo dnf install dnf-plugin-system-upgrade

步骤三:刷新所有现有版本的软件源

# sudo dnf upgrade --refresh

步骤四:下载升级所有所需的软件

# sudo dnf system-upgrade download --releasever=40

步骤五:重启并升级系统

# sudo dnf system-upgrade reboot

(注意:系统会重启,并在后台升级系统,这个步骤可能会持续很长一段时间,根据虚拟机的硬件性能而定)

[步骤] 在不能进系统的情况下 GRUB 开机菜单的显示 (进入安全模式或者恢复模式) (Ubuntu 版)

正文:

步骤一:取消 GRUB 开机菜单的显示

1.1 修改 /etc/default/grub 配置文件

# vim /etc/default/grub

添加以下内容:

......
GRUB_TIMEOUT_STYLE=hidden
......

添加后的案例:

......
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=" "
......

1.2 让刚刚设置的参数生效

# update-grub

步骤二:在不能进系统的情况下显示 GRUB 开机菜单

2.1 进入 GRUB 命令行

重启系统后按下 “E” 键不放

2.2 进入 GRUB 命令行以后以正常模式启动系统

grub> normal

2.3 启动后 GRUB 开机菜单就会显示了

(步骤略)

(注意:有时候要重复步骤 2.1 和 2.2 才能显示 GRUB 开机菜单)

2.4 在拯救模式下进入 root 模式

此时选择以下选项并按下 “回车” 键,就可以通过拯救模式进入 root 模式了

root              Drop to root shell prompt

参考文献:

https://askubuntu.com/questions/381613/how-to-return-from-grub-prompt-to-the-grub-menu
https://blog.csdn.net/geekqian/article/details/82912518