🧠 第2天:Linux环境深入
一、👥 用户权限与管理
1.1 用户与用户组是啥?
Linux 是个“多人多任务”的操作系统,每个人都有自己名字和小圈子。
- 用户(User):就像你登录系统的帐号。
- 用户组(Group):一群人组成一个圈子,比如同一个部门的人。
📁 系统用这些文件来记录用户信息:
文件 | 作用 |
---|---|
/etc/passwd | 记录用户基本信息(用户名、UID等) |
/etc/group | 记录组的信息 |
/etc/shadow | 储存加密的用户密码 |
1.2 权限长啥样?(rwx解释)
每个文件/文件夹都有 3 类人能接触到它,每类人有不同的权限:
- u:user(属主)
- g:group(属组)
- o:others(其他人)
🔒 权限位由 3 个字母组成:
r
= 读(4)w
= 写(2)x
= 执行(1)
👀 示例:
-rwxr-xr--
🧩 拆解如下:
类型 | 属主权限 | 属组权限 | 其他权限 |
---|---|---|---|
- | rwx | r-x | r-- |
1.3 改权限和属主
📌 改权限(chmod)
chmod 755 file.txt # rwxr-xr-x
chmod u+x script.sh # 给属主加执行权限
chmod go-w notes.txt # 去掉组和其他的写权限
📌 改属主和组(chown)
chown alice:staff report.txt # 改属主和组
chown -R bob:dev /project # 递归修改整个目录
1.4 用 sudo 临时做“管理员”
sudo apt update # 以 root 权限运行命令
👨🔧 编辑 sudo 权限文件:
sudo visudo
示例授权规则:
alice ALL=(ALL) NOPASSWD: ALL
二、📁 Linux 文件系统结构全景图
Linux 文件结构像一棵倒挂的树,根节点是 /
,下面分支各种子目录。
/
├── bin # 基本命令
├── sbin # 系统命令
├── etc # 配置文件
├── home # 用户家目录
│ ├── alice
│ └── bob
├── root # 管理员家目录
├── var # 日志、缓存等动态内容
├── usr # 用户安装的程序
├── proc # 内核&系统信息
├── dev # 设备文件
三、🔁 硬链接 vs 软链接
🔹 什么是链接文件?
- 硬链接(Hard Link):像克隆体,指向同一个 inode(数据位置)。
- 软链接(Symbolic Link / Symlink):像快捷方式,指向另一个文件名路径。
🔸 如何创建链接?
# 创建硬链接
ln original.txt hardlink.txt
# 创建软链接(常用!)
ln -s /path/to/original.txt symlink.txt
🧱 区别对比表:
项目 | 硬链接 | 软链接 |
---|---|---|
文件是否必须存在? | 必须 | 不必须 |
是否可以跨分区? | ❌ | ✅ |
是否可链接目录? | ❌ | ✅(需特殊权限) |
删除原文件后是否可访问? | ✅ | ❌(软链会失效) |
🔍 示例演示:
echo "Hello World" > file.txt
ln file.txt hardlink.txt
ln -s file.txt softlink.txt
- 删除
file.txt
后:hardlink.txt
还能读内容softlink.txt
显示“找不到文件”
🎯 高频面试题:答案 & 解析
1. chmod 755
代表什么?
答案:
- 改变文件权限为
rwxr-xr-x
。- 属主:可读、可写、可执行(7)
- 属组:可读、可执行(5)
- 其他:可读、可执行(5)
解析:
- 权限值是按二进制加权的(r=4, w=2, x=1):
7 = 4 + 2 + 1 = rwx
5 = 4 + 0 + 1 = r-x
- 所以最终是:
rwxr-xr-x
2. 如何给脚本 run.sh
添加执行权限?
答案:
chmod +x run.sh
解析:
+x
表示为当前用户类别添加执行权限(默认是属主)。- 加完之后你可以直接运行脚本:
./run.sh
3. chown
和 chmod
的区别?
答案:
chown
:更改文件或目录的**拥有者(user)*和*用户组(group)chmod
:更改文件或目录的访问权限(rwx)
解析:
命令 | 作用 | 示例 |
---|---|---|
chmod 755 file.txt | 改变权限 | 设置为可执行 |
chown alice:dev file.txt | 改变属主和属组 | 属主变为 alice,组变 dev |
4. 如何临时以管理员身份运行命令?
答案:
sudo 命令
例如:
sudo apt install nginx
解析:
sudo
允许受信任的普通用户以 root 权限执行命令。- 前提是该用户被添加到了
/etc/sudoers
文件中,或者属于sudo
用户组。
5. 如何查看文件夹权限?怎么修改?
答案:
- 查看权限:
ls -l
- 修改权限:
chmod
修改权限位,chown
修改属主
示例:
ls -ld myfolder # 查看目录本身权限
chmod 755 myfolder # 设置为:rwxr-xr-x
chown bob:dev myfolder
解析:
ls -l
显示详细权限信息。- 文件夹的执行权限
x
表示是否能进入该目录。
6. /etc
和 /usr
区别?
答案:
路径 | 内容 | 用途 |
---|---|---|
/etc | 配置文件 | 系统配置 |
/usr | 用户级程序、库 | 安装的软件、文档 |
解析:
/etc
是系统心脏:几乎所有服务的配置文件都在这里。/usr
是“用户空间”:包括/usr/bin
(程序)、/usr/lib
(库)、/usr/share
(共享资源)。
7. /proc
是什么?虚拟文件系统是啥意思?
答案:
/proc
是一个虚拟文件系统,不占用硬盘空间。- 提供系统内核、进程和硬件信息的接口。
解析:
文件 | 内容 |
---|---|
/proc/cpuinfo | CPU 信息 |
/proc/meminfo | 内存信息 |
/proc/uptime | 系统运行时间 |
虚拟文件系统的意思是:这些文件是动态生成的,不是真正存在于磁盘上的,而是实时反映系统状态。
8. 硬链接和软链接的差别?举例说明。
答案:
对比项 | 硬链接 | 软链接 |
---|---|---|
本质 | 指向同一个 inode(数据块) | 指向文件路径 |
是否跨分区 | ❌ 不可跨分区 | ✅ 可跨分区 |
删除源文件影响 | ❌ 无影响 | ✅ 会失效 |
是否像 Windows 快捷方式 | 否 | 是 |
示例:
echo "Hi" > a.txt
ln a.txt hardlink.txt # 硬链接
ln -s a.txt softlink.txt # 软链接
解析:
hardlink.txt
和a.txt
是同一个实体,数据共用;softlink.txt
是个引用路径,如果删了a.txt
,它就断掉了。