Linux目录结构介绍
Linux系统的使用前置工作我在这里就不做赘述,大家尽可以选择喜欢的或是方便的方法来学习,我这里使用的是虚拟机+Ubuntu22.04和WSL Ubuntu24.04,大部分操作会在Linux子系统完成,涉及到图片等内容还是会去Ubuntu下截屏
目录结构介绍
Linux 目录结构

Linux 目录结构是单根倒树状结构,所有目录都从根目录(/)衍生,遵循以下核心规则:
- 根目录唯一:所有文件 / 目录的起点都是
/,无 Windows 的 C 盘、D 盘概念。 - FHS 标准:目录功能由 FHS 统一规定,确保不同 Linux 发行版(如 Ubuntu、CentOS)目录结构一致。
- 文件类型无关路径:无论文件是普通文件、设备文件还是虚拟文件,都通过目录路径访问。
常用目录详解
| 目录路径 | 核心作用 | 补充细节 |
|---|---|---|
/ |
根目录 | 所有目录的顶层,仅存放一级子目录(如/bin、/etc),不直接存文件 |
/bin |
普通用户常用命令 | 存放ls、cd、cp等所有用户可执行的基础命令,命令多为二进制文件 |
/sbin |
管理员专用命令 | 补充基础目录遗漏项,存放ifconfig、reboot等仅 root 可执行的系统管理命令 |
/etc |
系统级配置文件 | 存放所有系统配置(如/etc/passwd用户列表、/etc/ssh/sshd_configSSH 配置),修改需管理员权限 |
/home |
普通用户家目录 | 每个普通用户的独立目录(如/home/student),用户默认仅拥有自己家目录的读写权限 |
/root |
管理员(root)家目录 | 补充细节:root 家目录直接在/下,而非/home内,权限严格(仅 root 可访问) |
/usr |
系统应用与资源 | 存放预装软件(/usr/bin)、库文件(/usr/lib)、文档(/usr/share/doc),相当于 Windows 的 “Program Files” |
/proc |
虚拟文件系统(内存映射) | 补充细节:目录内文件不占磁盘空间,实时映射内存数据(如/proc/cpuinfo查看 CPU 信息、/proc/1查看 PID=1 的进程) |
/sys |
硬件信息虚拟目录 | 补充基础目录遗漏项,存放硬件设备的实时状态(如/sys/class/net查看网卡信息),与/proc类似均为内存映射 |
/dev |
设备文件 | 所有硬件以文件形式存在(如/dev/sda是第一块硬盘、/dev/tty1是第一个终端),访问设备即访问对应文件 |
/mnt |
临时挂载点 | 用于手动挂载外部设备(如 U 盘、移动硬盘),需先创建子目录(如/mnt/usb)再挂载 |
/media |
自动挂载点 | 补充基础目录遗漏项,系统自动挂载外部设备(如插入 U 盘后,系统自动挂载到/media/用户名/U盘名) |
/lib |
系统依赖库文件 | 存放/bin、/sbin命令依赖的共享库(如.so文件),32 位系统为/lib,64 位系统额外有/lib64 |
/boot |
启动相关文件 | 存放 Linux 内核(/boot/vmlinuz)、启动引导程序(/boot/grub),分区时建议单独划分(大小 200-500MB) |
/tmp |
全局临时文件 | 所有用户可读写,文件会被系统定期清理(重启后清空),适合存放临时缓存、安装包等 |
/var |
动态变化文件 | 存放日志(/var/log,如/var/log/auth.log记录登录日志)、邮件(/var/spool/mail)、数据库数据等,磁盘占用会随时间增长 |
/opt |
第三方软件目录 | 补充基础目录遗漏项,用于安装非系统预装的第三方软件(如/opt/google/chrome存放 Chrome 浏览器) |
绝对路径与相对路径
两种路径的核心区别是 “是否从根目录开始”
绝对路径
从根目录(/)开始的完整路径,可唯一定位文件 / 目录,无论当前目录在哪都有效。
- 定位
student用户家目录下的main.c:/home/student/main.c - 定位系统日志文件:
/var/log/syslog - 定位 Chrome 浏览器执行文件:
/opt/google/chrome/chrome
相对路径
从当前目录开始的路径,依赖当前所在位置,仅在特定目录下有效。
.:代表当前目录(可省略,如./main.c等同于main.c)..:代表当前目录的上一级目录示例(假设当前目录是
/home/student):- 访问当前目录下的
Desktop:./Desktop(或直接Desktop) - 访问上一级目录(
/home)下的teacher目录:../teacher - 从
/home/student访问/var/log:../../var/log(先回/home,再回/,最后进入/var/log)
- 访问当前目录下的
家目录与用户切换
家目录是用户的 “专属工作区”,用户切换命令需注意权限差异
家目录核心规则
- 普通用户:家目录固定在
/home/用户名(如/home/student、/home/teacher),默认权限为rwx------(仅自己可读写执行,其他用户无权限)。 - root 用户:家目录为
/root,权限更严格,普通用户无法访问。 - 快捷符号:
~代表 “当前用户的家目录”,如cd ~可直接回到自己的家目录,cd ~teacher可切换到teacher的家目录(需管理员权限)。
用户切换命令
Linux 是多用户系统,切换用户需使用对应命令,核心区别如下:
su命令:切换到指定用户(默认切换到 root),需输入目标用户的密码。示例:
su root(切换到 root,输入 root 密码)、su student(切换到 student,输入 student 密码)。sudo su命令:临时获取管理员权限后切换到 root,仅需输入当前普通用户的密码(需当前用户在sudo列表中,如 Ubuntu 默认允许初始用户使用)。sudo 命令:无需切换用户,直接以管理员权限执行单个命令(更安全,推荐优先使用)。示例:
sudo vim /etc/passwd(以 root 权限编辑用户配置文件)。退出管理员身份:方法 1:输入
exit命令。方法 2:按Ctrl + D快捷键。
文件类型和权限
Linux 文件类型详解
Linux 中 “一切皆文件”,不同类型的文件对应不同功能


| 文件类型标识 | 类型名称 | 核心用途 | 实际示例 |
|---|---|---|---|
- |
普通文件 | 存储文本、代码、二进制程序等实际数据,是最常见的文件类型。 | test.txt(文本文件)、a.out(编译后的二进制程序)、shell.sh(脚本文件) |
d |
目录文件 | 本质是 “文件的索引”,用于存放其他文件 / 目录的路径和属性,相当于 “文件夹”。 | /home(用户家目录)、/etc(配置目录)、./docs(当前目录下的子目录) |
p |
管道文件 | 用于进程间通信(IPC),临时传递数据,数据读取后会被删除,不持久存储。 | mkfifo mypipe(创建命名管道)、echo "test" > mypipe(向管道写数据) |
l |
链接文件 | 相当于 “文件的快捷方式”,分软链接(符号链接)和硬链接,用户未明确区分,此处补充:- 软链接:依赖原文件,原文件删除则链接失效;- 硬链接:与原文件共享 inode,原文件删除仍可通过硬链接访问。 | ln -s test.txt link.txt(软链接)、ln test.txt hardlink.txt(硬链接) |
b |
块设备文件 | 用于存储类硬件(按 “块” 读写数据,速度快),如硬盘、U 盘、光盘。 | /dev/sda(第一块硬盘)、/dev/sdb1(第二块硬盘的第一个分区) |
c |
字符设备文件 | 用于输入输出类硬件(按 “字符” 实时读写,无缓存),如键盘、鼠标、终端。 | /dev/tty1(第一个虚拟终端)、/dev/input/mouse0(鼠标设备) |
s |
套接字文件 | 用于网络通信或本地进程间高级通信(如 TCP/UDP 连接),常存于/tmp或/var/run。 |
/var/run/docker.sock(Docker 服务的通信套接字)、/tmp/mysql.sock(MySQL 本地通信套接字) |
关键提示:判断文件类型的核心命令是
ls -l(长格式列表),命令结果的第一个字符就是文件类型标识(如-rwxr-xr-x第一个-表示普通文件,drwxr-xr-x第一个d表示目录)。
文件权限核心概念
权限控制 “谁能对文件 / 目录做什么”,需先明确 “权限主体” 和 “权限对文件 / 目录的不同影响”,这是用户内容中未覆盖的关键细节。
权限主体(用户类别)
权限分为三类主体,对应 ls -l 结果中权限位的三部分(如 rwxr-xr-- 对应 u(属主)、g(同组)、o(其他)):
- u(User,属主):文件的创建者,拥有最高优先级的权限控制。
- g(Group,同组用户):与属主同属一个用户组的其他用户,常用于团队协作(如开发组共享文件)。
- o(Other,其他用户):既不是属主也不在同组的用户,权限通常最严格(如仅读或无权限)。
权限符号与数值(规范对应表)
用户提供的权限表已准确,此处补充权限对 “文件” 和 “目录” 的不同实际作用,避免混淆:
| 权限符号 | 数值 | 对 “普通文件” 的作用 | 对 “目录” 的作用 |
|---|---|---|---|
r |
4 | 可读取文件内容(如 cat test.txt) |
可列出目录内的文件(如 ls ./docs) |
w |
2 | 可修改文件内容(如 vim test.txt) |
可在目录内创建 / 删除文件(如 touch new.txt) |
x |
1 | 可执行文件(如 ./shell.sh、/bin/ls) |
可进入目录(如 cd ./docs) |
- |
0 | 无对应权限 | 无对应权限 |
示例:若目录权限为
r--(仅读),则能通过ls看到目录内文件,但无法cd进入;若文件权限为wx(无读权限),则能修改文件但无法查看内容。
查看文件权限的命令
所有权限操作的前提是 “查看权限”,补充核心命令:
基础查看:
ls -l 文件名/目录名,示例:1
2
3
4ls -l test.txt # 查看test.txt的权限
# 结果示例:-rwxr-xr-- 1 stu dev 123 Oct 1 17:30 test.txt
# 解析:文件类型(-) + 权限(rwxr-xr--) + 属主(stu) + 所属组(dev) + 大小(123) + 时间 + 文件名
# 其中权限(rwx r-x r--)从前往后分别是属主 同组 其他用户对这个文件的权限简洁查看:
ls -ld 目录名(仅查看目录本身权限,不显示子文件),示例:ls -ld /home/stu。
chmod:修改文件权限
chmod 是修改权限的核心命令,用户已覆盖两种方法,此处补充递归修改、常见权限组合场景,让内容更实用。
文字设定法(符号法)
通过 +(加权限)、-(减权限)、=(设权限,覆盖原有)结合主体(u/g/o/a)操作,补充递归选项(-R) 和示例:
- 核心语法:
chmod [选项] 主体±=权限 文件名/目录名 - 常用选项:
-R(Recursive,递归修改目录及其所有子文件 / 子目录的权限,必学!)- 给文件属主增加执行权限:
chmod u+x shell.sh(脚本文件必须有 x 权限才能执行) - 给同组用户去掉写权限:
chmod g-w shared.txt(防止同组用户误修改共享文件) - 给其他用户设置 “仅读” 权限:
chmod o=r log.txt(覆盖其他用户原有权限,仅允许读) - 递归修改目录及子文件权限(给属主加读 write 权限):
chmod -R u+w ./project(开发目录常用,允许修改所有子文件)
- 给文件属主增加执行权限:
数字设定法(八进制法)
用三位数字(分别对应 u、g、o)表示权限,数字为对应权限的数值和(如 rwx=4+2+1=7,r-x=4+0+1=5),补充常见权限组合及适用场景:
- 核心语法:
chmod [选项] 三位数字 文件名/目录名
| 三位数字 | 权限符号 | 适用场景 | 示例命令 |
|---|---|---|---|
| 755 | rwxr-xr-x | 目录或可执行文件(如脚本、二进制程序),确保属主可改,其他人可执行 / 读 | chmod 755 shell.sh、chmod -R 755 ./docs |
| 644 | rw-r–r– | 普通文件(如文本、配置文件),属主可读写,其他人仅读 | chmod 644 test.txt、chmod 644 /etc/my.conf |
| 700 | rwx—— | 敏感文件 / 目录(如密钥、私人日志),仅属主可操作 | chmod 700 ~/.ssh(SSH 密钥目录)、chmod 700 private.log |
| 600 | rw——- | 敏感普通文件(如密码文件),仅属主可读写 | chmod 600 ~/.my.cnf(MySQL 密码配置文件) |
Linux常用命令
基础命令:目录导航与文件操作
这部分整合 “位置查看、目录切换、文件增删改查” 核心命令
| 命令 | 核心功能 | 常用选项 / 用法 | 示例(含补充场景) | 注意事项 |
|---|---|---|---|---|
pwd |
显示当前目录绝对路径 | 无常用选项,直接执行 | pwd /home/shanchuan | 无风险,常用于确认当前位置 |
cd |
切换目录 | cd 路径:绝对 / 相对路径切换cd ~:回到当前用户家目录cd -:回到上一次所在目录 |
1. cd /etc(绝对路径切到配置目录)2. cd ../docs(相对路径切到上一级的 docs 目录)3. cd ~teacher(切到 teacher 的家目录,需权限) |
路径错误会提示 “No such file or directory” |
ls |
列出目录内容 | -l:长格式(显示权限、属主、大小等,核心选项)-a:显示隐藏文件(以.开头的文件)-h:大小以 “K/M/G” 显示(配合-l用) |
1. ls -l(查看详细信息)2. ls -ah(显示所有文件,包括.和..) |
隐藏文件通常是配置文件(如.bashrc) |
touch |
创建普通文件 / 更新时间 | 支持同时创建多个文件 | 1. touch test.txt(创建空文件)2. touch a.txt b.txt(同时创建两个文件) |
若文件已存在,仅更新 “最后修改时间” |
mkdir |
创建目录 | -p:递归创建多级目录(核心补充选项,用户未提) |
1. mkdir docs(创建单级目录)2. mkdir -p docs/note(创建 docs 及子目录 note,父目录不存在时自动创建) |
无-p时,父目录不存在会报错 |
rmdir |
删除空目录 | 仅能删空目录,非空目录需用rm -r |
rmdir empty_dir(删除空目录) |
实际用得少,多直接用rm -r替代 |
cp |
复制文件 / 目录 | -r:递归复制目录(必加,否则无法复制目录)-i:覆盖前提示(避坑选项) |
1. cp a.txt ./docs(复制文件到 docs 目录)2. cp -r docs docs_bak(复制目录并备份)3. cp -i a.txt b.txt(若 b.txt 存在,提示是否覆盖) |
复制目录必须加-r,否则报错 |
mv |
移动文件 / 目录 / 重命名 | -i:覆盖前提示 |
1. mv a.txt ./docs(移动文件到 docs)2. mv old.txt new.txt(重命名文件)3. mv -i docs ./backup(移动目录,覆盖前提示) |
重命名时,目标路径与原路径同目录即可 |
rm |
删除文件 / 目录 | -r:递归删除目录- -f:强制删除(不提示,高风险)-i:删除前提示(安全选项) |
1. rm test.txt(删除文件)2. rm -r docs(删除非空目录)3. rm -rf *(删除当前所有内容,谨慎使用!) |
rm -rf /是致命操作,会删除整个系统 |
基础命令:系统控制与信息查询
整合 “帮助、统计、管道、关机、运行级别” 命令
| 命令 | 核心功能 | 常用选项 / 用法 | 示例 | 补充说明 |
|---|---|---|---|---|
man |
查看命令帮助手册 | 1 - 用户命令(如man 1 ls)2 - 系统调用(如 man 2 open)3 - 库函数(如 man 3 printf) |
1. man ls(查看 ls 的帮助)2. man 5 passwd(查看/etc/passwd文件格式的帮助) |
按q退出,按/关键词搜索帮助内容 |
wc |
统计文件行数 / 单词 / 字符 | -l:统计行数(最常用)-w:统计单词数-c:统计字符数 |
1. wc -l test.txt(统计文件行数,常用于看日志行数)2. `cat test.txt |
wc -w`(配合管道统计单词数) |
| | | |(管道) | 传递命令输出 | 将前一个命令的结果作为后一个命令的输入 | 1. ls -l | grep “.txt”(筛选出长格式中含.txt的文件)2. ps -ef | grep “sleep”(查找 sleep 相关进程)管道是 Linux 命令组合的核心,高频使用 |
su |
切换用户 | su username:切换到指定用户(需目标用户密码)su -:切换到 root 并加载 root 的环境变量(推荐,用户未提) |
1. su student(切换到 student)2. su -(切换到 root,环境更完整) |
普通用户切换到 root 需 root 密码,sudo su需当前用户密码 |
| 关机 / 重启 | 系统电源控制 | 关机:- shutdown -h now(立刻关机)- halt(简化关机)重启:- shutdown -r now(立刻重启)- reboot(简化重启) |
1. sudo shutdown -h +10(10 分钟后关机)2. reboot(立刻重启) |
普通用户需加sudo,否则无权限 |
runlevel |
查看系统运行级别 | 无选项,直接执行;用init N切换级别(N 为 0-6) |
1. runlevel(输出当前级别,如 “5” 代表图形界面)2. init 3(切换到文本界面) |
现代 Linux(如 Ubuntu)已用systemd,runlevel仅兼容旧系统,推荐用systemctl get-default查看默认目标 |
文件查看命令:场景化区分
明确不同查看命令的适用场景差异(如小文件用cat,大文件用less),补充用户未提的核心区别。
| 命令 | 核心功能 | 适用场景 | 常用选项 / 操作 | 示例 |
|---|---|---|---|---|
cat |
一次性显示文件内容 | 小文件(内容少于 1 屏)、合并文件 | - cat > file:从键盘输入内容到文件(Ctrl+D结束)- cat file1 file2 > file3:合并文件 |
1. cat test.txt(查看小文件)2. cat a.txt b.txt > c.txt(合并两个文件) |
more |
分屏显示文件(向下翻) | 大文件(仅需向下浏览) | 操作:- 按Enter:下一行- 按空格:下一页- 按q:退出 |
more /var/log/syslog(查看系统日志,仅向下翻) |
less |
分屏显示文件(自由翻页) | 大文件(需上下浏览、搜索) | 操作(核心补充):- 上下箭头:逐行翻- PageUp/PageDown:翻页- /关键词:向下搜索- q:退出 |
less /var/log/auth.log(查看登录日志,可自由翻页和搜索) |
head |
显示文件前 N 行 | 查看文件开头(如配置文件头部) | - -n:指定行数(默认 10 行,-n可省略,直接写数字) |
1. head test.txt(显示前 10 行)2. head -5 test.txt(显示前 5 行) |
tail |
显示文件后 N 行 / 实时跟踪 | 查看日志实时更新(核心场景,用户未提-f选项) |
- -n:指定行数(默认 10 行)- -f:实时跟踪文件更新(日志监控必备) |
1. tail -3 test.txt(显示后 3 行)2. tail -f /var/log/nginx/access.log(实时查看 Nginx 访问日志) |
文件编辑命令:vim
核心模式切换
命令模式:打开 vim 默认进入此模式,仅能输入命令(如删除、复制),无法直接编辑文本。
插入模式:从命令模式进入(按
a/i/o等),可编辑文本,按Esc退回命令模式。末行模式:从命令模式进入(按
:///?),用于保存、退出、搜索、替换,按Esc退回命令模式。关键逻辑:插入模式 / 末行模式不能直接切换,必须先退回命令模式!
高频命令整理
| 功能 | 命令(命令模式) | 示例 |
|---|---|---|
| 光标移动 | - gg:第一行- G:最后一行- nG:第 n 行- ^(Shift+6):行首- $(Shift+4):行尾 |
1. 5G(跳转到第 5 行)2. $(光标移到当前行末尾) |
| 删除 | - dd:删除当前行- ndd:删除 n 行- x:删除光标所在字符- dG:删除光标到文件末尾 |
1. 3dd(删除当前行及下方 2 行,共 3 行)2. x(删除光标处的字母) |
| 复制与粘贴 | - yy:复制当前行- nyy:复制 n 行- p:粘贴到光标下方 |
1. 2yy(复制当前行及下方 1 行)2. p(粘贴复制的内容) |
| 撤销与恢复 | - u:撤销上一步- Ctrl+r:恢复撤销(反撤销) |
1. u(撤销刚才的删除操作)2. Ctrl+r(重新执行被撤销的删除) |
末行模式高频操作
| 功能 | 命令(末行模式) | 示例 |
|---|---|---|
| 保存与退出 | :w:保存 :q:退出(未修改时) :wq:保存并退出 :q!:强制退出(不保存) |
1. :w(保存当前编辑)2. :wq(保存并退出 vim) |
| 搜索与替换 | /关键词:向下搜索 ?关键词:向上搜索 :n,m s/旧/新/g:n 到 m 行替换所有 “旧” 为 “新” |
1. /error(向下搜索 “error”)2. :1,10 s/name/Name/g(1-10 行所有 “name” 替换为 “Name”) |
| 显示行号 | :set nu:显示行号 :set nonu:隐藏行号 |
:set nu(编辑时显示行号,方便定位) |
vim 配置
该文件是全局配置(所有用户生效),需
sudo权限编辑;若仅想当前用户生效,可在
~/.vimrc(无则创建)中添加配置,无需管理员权限;配置示例(缩进 + 行号):
1
2
3
4
5set nu " 显示行号
set tabstop=4 " Tab键对应4个空格
set shiftwidth=4" 自动缩进4个空格
set expandtab " 将Tab转换为空格(避免不同编辑器缩进混乱)
set smartindent " 智能缩进(代码编辑必备)
文件压缩与解压命令
明确tar(打包 + 压缩)和gzip(仅压缩)的区别
| 工具 | 核心功能 | 常用选项组合 | 示例(打包 / 压缩 / 解压) | 补充说明 |
|---|---|---|---|---|
tar |
打包(多文件→1 个包)+ 压缩 | 压缩(打包 + 压缩):- czvf 包名.tar.gz 源文件/目录(c = 创建,z=gzip 压缩,v = 显示过程,f = 指定包名)解压:- xzvf 包名.tar.gz(x = 提取,z=gzip 解压,v = 显示过程,f = 指定包名) |
1. tar czvf docs.tar.gz ./docs(压缩 docs 目录为 tar.gz 包)2. tar xzvf docs.tar.gz(解压 tar.gz 包到当前目录)3. tar xzvf docs.tar.gz -C ./backup(解压到 backup 目录,需先创建) |
tar是 Linux 压缩解压的核心,支持多种压缩格式(如j对应 bzip2,包名为.tar.bz2) |
gzip |
单个文件压缩 / 解压 | - 压缩:gzip 文件名(生成.gz文件,删除原文件)- 解压:gzip -d 文件名.gz(生成原文件,删除.gz 文件) |
1. gzip test.txt(压缩为 test.txt.gz,删除原文件)2. gzip -d test.txt.gz(解压为 test.txt,删除.gz 文件) |
仅能压缩单个文件,无法压缩目录;若需压缩目录,必须先tar打包再gzip压缩 |
进程管理命令
| 命令 | 核心功能 | 常用选项 / 操作 | 示例(含场景) | 补充说明 |
|---|---|---|---|---|
ps |
查看进程快照 | - ps -ef:显示所有进程(全格式,用户已提)- ps aux:显示所有进程(更直观,含 CPU / 内存占用,补充) |
1. `ps -ef | grep “python”(查找python相关进程)2. ps aux |
top |
实时查看进程与系统资源 | 交互操作(核心补充):- P:按 CPU 使用率排序- M:按内存使用率排序- k:输入 PID 杀进程- q:退出 |
top(进入实时监控界面,按P查看 CPU 占用最高的进程)相当于 Linux 的 “任务管理器”,实时刷新(默认 3 秒) |
|
kill |
终止进程 | - kill PID:发送终止信号(默认 15,进程可优雅退出)- kill -9 PID:强制终止(信号 9,无法抗拒,高优先级) |
1. kill 1234(终止 PID 为 1234 的进程,尝试优雅退出)2. kill -9 1234(强制终止 1234 进程,用于无法正常退出的情况) |
需先通过ps/top获取进程 PID;Ctrl+C仅能终止前台进程,后台进程需用kill |
pkill |
按进程名终止多个进程 | pkill 进程名(终止所有同名进程) |
pkill sleep(终止所有名为 sleep 的进程) |
避免手动查找多个 PID,适合批量终止同名进程 |
jobs |
查看当前终端的后台任务 | 无选项,直接执行,显示 “任务号、状态、命令” | jobs → 输出 [1]+ Running sleep 300 &(任务 1 为后台运行的 sleep 进程) |
仅显示当前终端的任务,其他终端的任务不显示 |
fg/bg |
前后台任务切换 | - fg %任务号:后台任务切到前台- bg %任务号:挂起任务切到后台运行 |
1. sleep 300 &(后台运行 sleep)2. Ctrl+Z(挂起前台进程,提示任务号 1)3. bg %1(将挂起的任务 1 恢复到后台)4. fg %1(将任务 1 切回前台) |
%任务号的%可省略,但加%更明确;前台进程按Ctrl+Z会挂起(暂停),而非终止 |
用户管理命令
核心用户操作命令
| 命令 | 核心功能 | 常用选项 | 示例(含场景) | 补充说明(发行版差异) |
|---|---|---|---|---|
useradd |
创建用户(基础命令) | - -m:自动创建家目录(核心选项,用户未提,默认不创建)- -g:指定主组- -s:指定默认 shell |
1. sudo useradd -m student(创建 student,自动建/home/student)2. sudo useradd -m -g dev -s /bin/bash test(创建 test,主组为 dev,shell 为 bash) |
Ubuntu 中:useradd默认不创建家目录,需加-m;CentOS 中:useradd默认创建家目录 |
adduser |
创建用户(交互式) | 无复杂选项,执行后会引导输入密码、全名等信息(自动创建家目录) | sudo adduser teacher(按提示输入密码、全名等,自动建/home/teacher) |
Ubuntu 专属:是useradd的封装脚本,交互更友好;CentOS 中无adduser,需用useradd -m |
passwd |
修改用户密码 | - 普通用户:passwd(仅能改自己的密码,需输入旧密码)- 管理员:sudo passwd 用户名(改其他用户密码,无需旧密码) |
1. passwd(当前用户改自己的密码)2. sudo passwd student(管理员改 student 的密码) |
密码默认要求 “8 位以上 + 字母数字混合”,太简单会提示警告但可强制设置 |
userdel |
删除用户 | - -r:删除用户的同时删除家目录及邮件(核心选项,用户已提) |
1. sudo userdel student(仅删除用户,保留/home/student)2. sudo userdel -r student(删除用户及家目录) |
删除前必须确保用户未登录,否则报错;可先用kill终止用户进程 |
组管理命令
Linux 中用户必须属于至少一个组,组管理是用户权限控制的关键:
groupadd 组名:创建用户组1
sudo groupadd dev
(创建 dev 组,用于开发团队共享文件)
usermod -aG 组名 用户名:将用户添加到附加组(副组)1
sudo usermod -aG dev student
(将 student 加入 dev 附加组,使其拥有 dev 组的权限)
groups 用户名:查看用户所属的组1
groups student
输出
1
student : student dev
(主组为 student,附加组为 dev)
用户信息文件
/etc/passwd(用户基本信息):每行格式为用户名:密码占位符:UID:GID:注释:家目录:默认shell1
student:x:1001:1001:Student:/home/student:/bin/bash
/etc/group(组信息):每行格式为组名:密码占位符:GID:组内用户列表1
dev:x:1002:student,teacher
(dev 组的 GID 为 1002,成员有 student 和 teacher)
/etc/shadow(用户密码哈希):存储加密后的密码,仅 root 可读写,每行格式包含 “用户名、密码哈希、密码过期时间” 等,安全性极高。


