Linux小知识

1.虽然有/etc/passwd这个文件,但用户的加密密码并不直接存储在这个文件里,现代系统中,一般存储在etc/shadow文件中,只有root可读

2.在Linux中用户分为三类:root用户、系统用户、普通用户。

root用户

root用户的UID为0,root用户的权限是最高的,普通用户无法执行的操作,root用户都可以完成,所以被称为超级用户。在系统中的每个文件、目录和进程都归档属于某一个用户,没有用户许可,其他普通用户是无法操作的,root除外。root用户的特权性还表现在root用户可以超越任何用户和组群对文件或目录进行读取,修改和删除;可以控制对可执行的程序的执行和终止;可以对硬件设备执行添加、创建和移除操作;也可以对文件和目录的属性进行修改。

系统用户

系统用户也称虚拟用户、伪用户、或假用户,这类用户不具有登录Linux的能力,但却是系统运行不可缺少的用户,比如Lbin/daemon/adm/ftp/mail等,这类用户都是系统自身拥有的,系统用户的UID为1~99。

普通用户

这类用户能登陆系统,在Linux中进行普通操作,能操作自己目录的内容,其使用系统的权限受限,这类用户是系统管理员创建的,普通用户的UID为1000~60000。

3.在Linux的目录表示中,~符号代表当前用户的家目录(/home/user/)

4./etc/services文件

/etc/services文件定义了Linux 系统中所有服务的名称,协议类型,服务的端口等信息,/etc/services文件是一个服务名和服务端口对应的数据库文件

5./proc/sys/net/ipv4/ip_forward:控制是否允许进行IP转发。

1代表允许;0代表禁止

6.系统中所有日志都存放在/var/log

  • 内核、公共消息日志 :/var/log/messages
  • 计划任务日志:/var/log/cron
  • 系统引导日志:/var/log/dmesg

7.查看CPU和系统信息

cat /proc/cpuinfo:查看CPU信息

8.查看发行版本信息文件

cat /etc/os-release:查看操作系统版本

9.Linux的目录结构

  1. /:根目录,系统的起始目录
  2. /bin:存放着普通用户和管理员都执行的命令
  3. /sbin:存放着只有管理员可以执行的命令
  4. /boot:引导目录,特点是一个独立分区,存放了内核、启动菜单以及初始化镜像等系统启动时必要访问的文件
  5. /dev:设备文件如硬盘光驱等
  6. /etc:存放着操作系统的配置文件
  7. /home:普通用户的家目录存放在该目录中,家目录用户登录系统的初始目录。家目录也称为宿主目录
  8. /root:管理员的家目录,是管理员登录终端的初始目录
  9. /lib和/lib64对应不同架构的软件所调用的库文件和内核 模块文件所在的目录
  10. /media:光盘挂载点目录
  11. /mnt: 临时设备挂载目录如移动硬盘或U盘
  12. /proc:内存映射出的目录,并不存在于硬盘中,其中存放着硬件信息和系统进程状态
  13. /tmp:临时文件存放目录
  14. /usr:安装程序目录,存放程序以及程序的命令和帮助文档
  15. /var:常变文件目录,如日志或邮件,单独给予分区
  16. /opt:包含某些第三方应用程序的安装文件
  17. /srv:存储一些服务器启动之后所需要取用的资料目录
  18. /run:一个临时文件系统,一些程序或服务器启动之后,会将它们的PID放置在该目录中
  19. /sys:在Linux系统中提供热插拔能力的同时,该目录包含所检测到的硬件设置,它们被转换成/dev目录中的设备文件

10.目录也是一种特殊的文件,其文件内容是目录里包含的所有文件

11.可以通过颜色来区分文件类别

颜色 描述
蓝色 目录
绿色 可执行文件
黑色 普通文件
红色 压缩文件
紫色 图片和其他类型的文件
浅蓝色 符号链接文件
黑底黄字 设备文件

12.常用快捷键

  • Ctrl+U:清空光标前的文本内容
  • Ctrl+K:清空光标后的文本内容
  • Ctrl+L:清空窗口文字,效果等同于clear
  • Ctrl+C:取消本次命令编辑
  • \:强制换行

13.有关ext2文件系统

块设备。最小为4kb,也就是说,即使文件只有四个字节,也要把整个4Kb都读出来,然后从4kb的内容里找文件内容(读到内存里)

iNode结构(文件索引卡片)ext2的古老文件结构:是一个结构体,封装了{size,name,what is this ...}。
一个inode最多有15个指针,前12个为直接指针,直接指向文件内容(0~48kb的内容可以直接指向)。3个为间接指针,用于指向一个用来存放指针的块(4kb,里面全是指针)。后三个的间接指针里,其中2个为1级指针,各能存放4MB的数据。第三个为2级指针,能存放4GB的数据。

如果用了2个间接指针,也就有了1024*1024个指针,每个指针能存储4kb的内容。所以共能存储4GB的内容。

13.EXT2文件系统基本原理(AI凝练版)

1. 数据存储单位

  • 固定大小块:最小读写单元为4KB块
  • 读写特性:即使文件只有几个字节,也需读写整个4KB块,在内存中提取有效内容。

2. inode索引结构

每个文件对应一个inode,包含元数据(如大小、权限等)和15个数据块指针

  • 直接指针(12个)
    直接指向文件数据块,支持最大 48KB(12 × 4KB)文件。

  • 间接指针(3个)

    • 一级间接指针:指向一个存储1024个指针的块,支持 4MB 数据。
    • 二级间接指针:通过两级指针索引,支持 4GB 数据。
    • 三级间接指针:支持更大文件(理论极限约4TB)。

3. 设计优势

  • 小文件高效:≤48KB文件直接访问,速度快资源开销小。
  • 大文件可扩展:通过多级指针支持超大文件,以额外磁盘访问为代价。
  • 平衡性:多级指针结构在存储效率和扩展性之间取得平衡。

14.登录shell与非登录shell的区别

1. 登录 shell(login shell)

  • 当你 登录系统 时启动的 shell,称为登录 shell。

  • 登录 shell 会读取系统和用户的配置文件,通常包括:

Shell 类型 读取的文件
Bash /etc/profile~/.bash_profile~/.bash_login~/.profile
Zsh /etc/zprofile~/.zprofile
  • 在登录 shell 中,/etc/profile 会加载 /etc/profile.d/ 下的脚本,所以你放的 conda.sh 会被执行,PATH 会生效。

示例

# 从登录界面或 ssh 登录
ssh user@host
# 或者
su - user

2. 非登录 shell(non-login shell)

  • 通过已有终端打开的子 shell,或者用 su user(不带 -)、bash 命令启动的 shell,默认是非登录 shell。

  • 非登录 shell 不会读取 /etc/profile/etc/profile.d/,只会读取用户的 ~/.bashrc~/.zshrc 等文件(取决于 shell 类型)。

  • 因此,如果你在 /etc/profile.d/conda.sh 设置 PATH,非登录 shell 默认 不会加载,就找不到 conda

示例

# 通过已有终端切换用户(不带 -)
sudo su user
# 或者
bash

总结

特性 登录 shell 非登录 shell
读取 /etc/profile
读取 /etc/profile.d/
读取 ~/.bashrc 可选(depends on profile 文件)
场景示例 ssh 登录、登录界面、su - user 终端中打开新 bash,su user 不带 -
posted @ 2026-07-02 17:49  畅畅c  阅读(2)  评论(0)    收藏  举报