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 文件权限和进程管理的内容,敬请期待!

相关推荐
AlfredZhao14 小时前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户97183563346620 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux
小宇宙Zz2 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信