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的目录结构
- /:根目录,系统的起始目录
- /bin:存放着普通用户和管理员都执行的命令
- /sbin:存放着只有管理员可以执行的命令
- /boot:引导目录,特点是一个独立分区,存放了内核、启动菜单以及初始化镜像等系统启动时必要访问的文件
- /dev:设备文件如硬盘光驱等
- /etc:存放着操作系统的配置文件
- /home:普通用户的家目录存放在该目录中,家目录用户登录系统的初始目录。家目录也称为宿主目录
- /root:管理员的家目录,是管理员登录终端的初始目录
- /lib和/lib64对应不同架构的软件所调用的库文件和内核 模块文件所在的目录
- /media:光盘挂载点目录
- /mnt: 临时设备挂载目录如移动硬盘或U盘
- /proc:内存映射出的目录,并不存在于硬盘中,其中存放着硬件信息和系统进程状态
- /tmp:临时文件存放目录
- /usr:安装程序目录,存放程序以及程序的命令和帮助文档
- /var:常变文件目录,如日志或邮件,单独给予分区
- /opt:包含某些第三方应用程序的安装文件
- /srv:存储一些服务器启动之后所需要取用的资料目录
- /run:一个临时文件系统,一些程序或服务器启动之后,会将它们的PID放置在该目录中
- /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 不带 - |

浙公网安备 33010602011771号