Linux 帮助手册与用户管理完全指南

引言

在 Linux 系统中,有两个非常重要的技能:学会查阅帮助文档掌握用户管理。前者让你遇到问题时能够自助解决,后者让你能够安全地管理多用户环境。

在我学习 Linux 的过程中,man 命令是我最常用的工具之一。它不仅提供了命令的详细说明,还能查询系统调用和库函数。而用户管理则是系统管理员的基本功,从创建用户到删除用户,每一步都需要谨慎操作。

今天,我将通过自己的学习笔记,系统地整理 Linux 帮助手册的使用方法和用户管理命令。

第一部分:Linux 帮助手册(man)

一、man 命令基础

man 是 manual 的缩写,用于查看 Linux 系统中的命令、函数、配置文件的帮助文档。

bash 复制代码
# 基本语法
man [编号] 查询内容

# 示例
man ls          # 查看 ls 命令的帮助
man pwd         # 查看 pwd 命令的帮助
man strlen      # 查看 strlen 函数的帮助
man fork        # 查看 fork 系统调用的帮助

退出方式:q 键退出帮助手册界面

实例:

man ls

二、man 编号系统

Linux 帮助手册分为多个章节,通过编号可以精确查找:

编号 说明 示例
1 用户命令 man 1 ls, man 1 pwd
2 系统调用(内核函数) man 2 fork, man 2 open
3 库函数(C标准库) man 3 printf, man 3 strlen
4 特殊文件(设备文件) man 4 null
5 文件格式与配置文件 man 5 passwd, man 5 group
6 游戏 man 6 fortune
7 宏包与约定 man 7 man
8 系统管理命令 man 8 useradd

三、同名命令与函数的区分

bash 复制代码
# 问题:printf 既是命令又是库函数

# 查询 printf 命令(编号1)
man 1 printf
# 输出:printf - format and print data

# 查询 printf 库函数(编号3)
man 3 printf
# 输出:printf, fprintf, dprintf, sprintf, snprintf - formatted output conversion

# 不加编号时,默认显示第一个匹配的章节(通常是编号1)
man printf   # 默认显示命令版本

四、帮助手册使用示例

cpp 复制代码
# 基本操作
man grep           # 查看 grep 命令的帮助
man group          # 查看 group 相关帮助

# 参数说明
grep -v            # -v 表示反向匹配(显示不匹配的行)
grep -a            # 将二进制文件当作文本处理

# 函数查询
man strlen         # 查看 strlen 函数说明
# 包含:接口属性、线程安全信息、相关标准(C11、POSIX.1-2008)

五、man 手册内容解析

bash 复制代码
# 1. 函数名称
strlen - calculate the length of a string

# 2. 标准规范
# 包含 C11、POSIX.1-2008 等标准兼容性说明
# 历史版本支持:POSIX.1-2001、C89 等

# 3. 安全说明
# MT-Safe 表示线程安全

# 4. 替代方案
# 当输入缓冲区可能不含终止空字节时,建议使用 strnlen(3)

# 5. 相关参考
# string(3)    - 字符串操作函数
# wcslen(3)    - 宽字符字符串长度函数

六、man 手册浏览技巧

操作 说明
方向键 上下滚动
空格键 向下翻一页
/关键词 搜索关键词(按 n 查找下一个)
q 退出帮助手册

第二部分:Linux 用户管理

一、用户信息存储

1. /etc/passwd 文件

用户信息存储在 /etc/passwd 文件中,每行代表一个用户。

bash 复制代码
# 查看 passwd 文件
cat /etc/passwd

# 示例输出
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
# 普通用户(UID 从 1000 开始)
ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash

字段说明:

字段位置 含义 示例
1 用户名 root
2 密码占位符(x 表示密码存储在 shadow 文件) x
3 UID(用户ID) 0(root),1000(普通用户)
4 GID(主组ID) 0
5 用户全名/描述 root
6 家目录路径 /root/home/用户名
7 登录 Shell /bin/bash/usr/sbin/nologin

特殊用户:

  • root 用户 UID 为 0,拥有最高权限

  • 普通用户 UID 从 1000 开始分配

  • /usr/sbin/nologin/bin/false 表示禁止登录

2. /etc/shadow 文件

密码实际存储在 /etc/shadow 文件中,使用单向加密算法。

bash 复制代码
# 查看 shadow 文件(需要 root 权限)
sudo cat /etc/shadow

# 格式:用户名:加密密码:最后修改时间:最小天数:最大天数:警告天数:...

3. /etc/group 文件

组信息存储在 /etc/group 文件中

bash 复制代码
cat /etc/group

# 格式:组名:组密码占位符:GID:组成员
# 示例
sudo:x:27:ubuntu
docker:x:999:ubuntu,user2

字段说明:

字段 含义
1 组名
2 组密码占位符(通常为 x
3 GID(组ID)
4 组成员(逗号分隔)

二、用户操作命令

1. useradd------创建用户

bash 复制代码
# 基本语法
useradd 用户名          # 基本创建(不推荐,需要手动配置)
adduser 用户名          # 交互式创建(推荐)

# 示例:创建用户 zhangsan
sudo adduser zhangsan

# 执行过程
# 1. 提示设置密码(至少8个字符,不能是简单回文)
# 2. 输入用户信息(可选)
# 3. 确认创建

# 创建后的变化:
# - /etc/passwd 增加一行用户信息
# - /etc/shadow 增加密码记录
# - /home/zhangsan 创建家目录

useradd vs adduser:

命令 特点 推荐程度
useradd 基础命令,需要手动配置 不推荐
adduser 交互式,自动创建家目录、设置 Shell 推荐

2. userdel------删除用户

bash 复制代码
# 删除用户(保留家目录)
sudo userdel 用户名

# 删除用户并删除家目录
sudo userdel -r 用户名

# 示例
sudo userdel zhangsan        # 仅删除用户,/home/zhangsan 仍在
sudo userdel -r lisi         # 删除用户和家目录

# 验证删除
cat /etc/passwd | grep 用户名   # 无输出表示已删除
ls /home/                       # 确认家目录是否还在

3. passwd------修改密码

bash 复制代码
# 修改当前用户密码
passwd

# 修改指定用户密码(需要管理员权限)
sudo passwd 用户名

# 示例
passwd                    # 修改自己的密码
sudo passwd zhangsan      # 修改 zhangsan 的密码

# 密码策略:
# - 输入时不显示字符(安全考虑)
# - 需要输入两次确认
# - 新用户首次登录必须修改密码
# - 建议定期更换密码

三、用户切换与注销

1. su------切换用户

bash 复制代码
# 基本语法
su 用户名           # 切换用户(不加载目标用户环境)
su - 用户名         # 切换用户并加载完整环境(推荐)

# 示例
su zhangsan        # 切换到 zhangsan
su - zhangsan      # 切换到 zhangsan,并进入其家目录

# 切换到 root
su                 # 切换到 root
su -               # 切换到 root 并加载环境

# 退出当前用户
exit               # 退出当前 shell,返回原用户

四、用户组管理

1. groupadd------创建组

bash 复制代码
# 创建新组
sudo groupadd 组名

# 示例
sudo groupadd developers
sudo groupadd testers

# 验证
cat /etc/group | grep developers
# 输出:developers:x:1002:

2. usermod------修改用户所属组

bash 复制代码
# 将用户加入组
sudo usermod -G 组名 用户名

# 示例:将 zhangsan 加入 developers 组
sudo usermod -G developers zhangsan

# 注意:-G 会覆盖用户原有的附加组
# 如需添加多个组,用逗号分隔
sudo usermod -G group1,group2,group3 zhangsan

# 查看用户所属组
groups zhangsan

3. groupdel------删除组

bash 复制代码
# 删除组
sudo groupdel 组名

# 示例
sudo groupdel testers

# 注意:不能删除有用户的主组

五、用户管理完整示例

bash 复制代码
# 1. 创建新用户
sudo adduser alice
# 设置密码:alice123456
# 输入用户信息(可跳过)

# 2. 创建用户组
sudo groupadd project_a

# 3. 将用户加入组
sudo usermod -G project_a alice

# 4. 查看用户信息
id alice
# uid=1002(alice) gid=1002(alice) groups=1002(alice),1003(project_a)

# 5. 查看 passwd 文件
cat /etc/passwd | grep alice
# alice:x:1002:1002:Alice,,,:/home/alice:/bin/bash

# 6. 切换用户测试
su - alice
pwd  # /home/alice
exit

# 7. 删除用户(保留家目录)
sudo userdel alice

# 8. 删除用户及家目录
sudo userdel -r bob

# 9. 删除组
sudo groupdel project_a

第三部分:常用命令速查

一、帮助手册命令

命令 说明 示例
man 命令 查看命令帮助 man ls
man 编号 名称 指定章节查询 man 3 printf
man -k 关键词 搜索相关手册 man -k password
info 命令 查看更详细的帮助 info ls
命令 --help 快速查看参数 ls --help

二、用户管理命令

命令 说明 示例
adduser 创建用户(推荐) sudo adduser alice
userdel 删除用户 sudo userdel alice
userdel -r 删除用户及家目录 sudo userdel -r alice
passwd 修改密码 passwdsudo passwd alice
su - 切换用户 su - alice
exit 退出当前用户 exit
id 查看用户信息 id alice
groups 查看用户所属组 groups alice
groupadd 创建组 sudo groupadd dev
groupdel 删除组 sudo groupdel dev
usermod -G 修改用户附加组 sudo usermod -G dev alice

三、用户信息文件

文件 说明 查看命令
/etc/passwd 用户信息 cat /etc/passwd
/etc/shadow 密码信息 sudo cat /etc/shadow
/etc/group 组信息 cat /etc/group
/etc/sudoers sudo 权限 sudo cat /etc/sudoers

总结

一、man 手册核心要点

编号 内容 常用命令
1 用户命令 ls, pwd, grep
2 系统调用 fork, open, read
3 库函数 printf, strlen, malloc
5 配置文件 passwd, group
8 系统管理 useradd, userdel

二、用户管理核心要点

操作 命令 注意事项
创建用户 adduser 必须设置密码,至少8位
删除用户 userdel -r -r 会删除家目录
修改密码 passwd 新用户首次登录必须修改
切换用户 su - 使用 - 加载完整环境
用户信息 /etc/passwd UID 0 是 root

三、学习建议

  1. 善用 man 手册 :遇到不懂的命令,先 man 命令

  2. 区分命令和函数man 1 printf vs man 3 printf

  3. 用户管理需谨慎:删除用户前确认数据已备份

  4. 使用 adduser 而不是 useradd:交互式更友好

Linux 的魅力在于它的透明性和可定制性。man 手册让你能够深入了解每个命令的细节,而用户管理则让你能够安全地管理多用户环境。

掌握这些基础技能,你就能更加自信地在 Linux 系统中工作和探索。下一篇文章,我将分享关于 Linux 文件权限和进程管理的内容,敬请期待!

相关推荐
cccccc语言我来了2 小时前
C++轻量级消息队列服务器
java·服务器·c++
xiaoshuaishuai82 小时前
C# Codex 脚本编写
java·服务器·数据库·c#
Ai173163915793 小时前
GB200 NVL72超节点深度解析:架构、生态与产业格局
大数据·服务器·人工智能·神经网络·机器学习·计算机视觉·架构
思茂信息3 小时前
CST交叉cable的串扰(crosstalk)仿真
服务器·开发语言·人工智能·php·cst
weixin_449173654 小时前
Linux -- 项目中查找日志的常用Linux命令
linux·运维·服务器
琉璃榴4 小时前
Visual Studio Code连接远程服务器
服务器·vscode·github
深念Y4 小时前
赛米尼M02/海纳斯HiNAS系统-WiFi驱动安装教程
运维·服务器·网络·docker·nas·机顶盒·hinas
想唱rap5 小时前
C++智能指针
linux·jvm·数据结构·c++·mysql·ubuntu·bash
会飞的土拨鼠呀5 小时前
Ubuntu24.04安装open-vm-tools
运维·服务器