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

目录结构介绍

Linux 目录结构

单根倒树状结构

Linux 目录结构是单根倒树状结构,所有目录都从根目录(/)衍生,遵循以下核心规则:

  1. 根目录唯一:所有文件 / 目录的起点都是 /,无 Windows 的 C 盘、D 盘概念。
  2. FHS 标准:目录功能由 FHS 统一规定,确保不同 Linux 发行版(如 Ubuntu、CentOS)目录结构一致。
  3. 文件类型无关路径:无论文件是普通文件、设备文件还是虚拟文件,都通过目录路径访问。

常用目录详解

目录路径 核心作用 补充细节
/ 根目录 所有目录的顶层,仅存放一级子目录(如/bin/etc),不直接存文件
/bin 普通用户常用命令 存放lscdcp所有用户可执行的基础命令,命令多为二进制文件
/sbin 管理员专用命令 补充基础目录遗漏项,存放ifconfigreboot仅 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 中 “一切皆文件”,不同类型的文件对应不同功能

文件类型

image-20251031214702338.png

文件类型标识 类型名称 核心用途 实际示例
- 普通文件 存储文本、代码、二进制程序等实际数据,是最常见的文件类型。 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
    4
    ls -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,递归修改目录及其所有子文件 / 子目录的权限,必学!)
    1. 给文件属主增加执行权限:chmod u+x shell.sh(脚本文件必须有 x 权限才能执行)
    2. 给同组用户去掉写权限:chmod g-w shared.txt(防止同组用户误修改共享文件)
    3. 给其他用户设置 “仅读” 权限:chmod o=r log.txt(覆盖其他用户原有权限,仅允许读)
    4. 递归修改目录及子文件权限(给属主加读 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.shchmod -R 755 ./docs
644 rw-r–r– 普通文件(如文本、配置文件),属主可读写,其他人仅读 chmod 644 test.txtchmod 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)已用systemdrunlevel仅兼容旧系统,推荐用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
    5
    set 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默认不创建家目录,需加-mCentOS 中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:注释:家目录:默认shell

    1
    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 可读写,每行格式包含 “用户名、密码哈希、密码过期时间” 等,安全性极高。