Linux 系统管理核心命令详解:系统监控 + 用户管理全攻略
上篇文章,我们学习了Linux的文本编辑命令。但Linux作为服务器和开发环境中的顶梁柱,不仅仅局限于对文件、目录的操作。今天我们结合常用命令,逐一讲解系统监控、用户管理、网络测试、进程控制及压缩解压等核心命令的用法,所有命令均配有详细解释与输出示例,助你从新手迅速进阶!
一、系统监控与资源查看
1. 查看磁盘使用情况
语法结构:df [选项]
解释说明:
- df ---Disk Free ,用来查看磁盘的使用情况。
-h
以更加容易理解的形式显示。
2. 查看系统运行时间及负载
语法结构:uptime
解释说明:
- 显示系统已运行时间和负载情况
输出结果解析:
12:26:23 是cpu运行当前时间; up 320days 是系统启动时间;1user:一个用户; load avarage:平均负载情况,一分钟、五分钟、15分钟负载。
说明:系统已运行3天4小时,当前有2个用户在线,负载分别为最近1分钟、5分钟、15分钟的平均数。
3. 查看内存使用情况
语法结构:free [选项]
解释说明:
- 语句执行之后呈现的结果解析:
total:系统安装的物理内存总量
used:当前已使用的内存量
free:未完全使用的内存量
shared:主要被tmpfs(内存文件系统)使用的内存量
buff/sache:缓冲区和缓存所占的内存量
available:可使用的内存空间
- -h:以人类可读格式显示(自动换算单位)
4. 查看当前正在运行的所有进程
语法结构:ps [ 选项]
解释说明:
-
ps ---Process Status ,列出当前系统中的进程信息。
-
a
显示所有用户的进程(包括其他用户) -
u
显示用户相关信息 -
x
显示无控制终端的进程 -
语句执行之后呈现的结果解析:
PID:进程ID
%cpu:cpu的使用率
%MEM:占据物理内存的百分比
VSZ:虚拟内存占用大小
RSS:实际内存占用量
TTY:进程运行的终端设备号。?表示与终端无关
STAT:进程状态,这里的s表示睡眠状态
START:进程创建时间
TIME:进程运行的时间
COMMAND:启动进程的命令名称和参数
PPID:创建该进程的父进程ID
5. 实时查看进程资源占用
语法结构:top [选项]
选项可不填,top执行之后按q键退出
解释说明:可以通过top查看动态的进程和系统资源利用情况,比如cpu、内存占用、运行时间等等。
- 图片中上半部分解析:
20:45:57 当前系统时间;up 319days:系统启动的时间;1user:1个用户登录
load average :是1分钟、五分钟、15分钟的负载情况
tasks:总进程数量
%cpu:cpu的使用情况
KiB Mem/ KiB Swap :描述物理内存与虚拟内存的情况
- 表格中名词解析:
PID:进程ID
user:当前用户
PR:进程优先级,数值越小优先级越高
NI:负值优先级更高
VIRT:进程使用的虚拟内存大小
RES:使用的物理内存大小
SHR:共享内存大小
S:进程状态。
%CPU:cpu占用率
%MEM:物理内存的占用率
TIME+:进程占用cpu时间总计
二、用户与用户组管理(root用户执行,不然得使用sudo提权)
1. 设置用户密码
解释说明:
-
passwd user2
:设置user2
的登录密码,系统会要求输入两遍密码以确认,为了安全起见,密码输入是不会显示出来的。 -
sudo 提升用户的权限。
2. 创建组并将用户加入组
创建组的语法结构:groupadd [组名]
将用户添加进指定用户组的语法结构:usermod -aG [目标组名] [ 用户名]
解释说明:
-
groupadd devgroup
:创建一个名为devgroup
的用户组。 -
usermod -aG devgroup user2
:将user2
添加到devgroup
组中(-aG
表示追加到附加组,而不是替换)。
补充:
-
usermod 是修改用户信息的命令。
-
-aG 解析:
-a
:append,追加用户到指定组,而不是替换原有组
-G
:指定要添加的附加组(可以是一个或多个,多个用逗号分隔)
只有同时使用-a -G 才能使得用户被追加进一个用户组中,否则用户就会被退出原来的组。
3. 删除用户与用户组
删除用户命令的语法结构:userdel [选项] [用户名]
删除 devgroup
用户组命令的语法结构:groupdel [group名称]
-
userdel user2
:删除user2
用户(注意:默认不会删除用户的主目录及其目录下的文件信息,若想删除可加-r
,即执行userdel -r user2 删除
)。 -
若已经执行了userdel user2 ,那么下次创建user2用户时就会出现下面类似的文字:
这说明你在删除用户时,并没有将其目录以及邮箱删除,所以导致创建时发现重复,无法创建。这时候需要删除旧数据。
第一步:首先使用rm 命令 删除user2创建的目录,rm -rf /home/user2。-rf (选项)代表的含义是强制删除包含其下面的目录已经其他文件内容。
第二步:rm -f /var/mail/user2 ,再次使用rm 删除其邮箱 (f是强制删除)
你已经将user2的目录以及邮箱信息全部删除但还提示user2仍然存在,说明user2用户的信息还没从系统中清除干净。核查并彻底清除用户的方法如下:
第一步:确认 user2
是否还存在
使用getent passwd user2。
如果命令有输出,说明用户确实还在。否则就是名字残留了。
(使用getent 命令,查找user2的密码,有返回数据就说明,用户数据有残余)
第二步:用 userdel
强制删除(如果还存在)
使用sudo userdel -r user2
如果提示用户不存在,再进行下一步。
(-r :删除用户及其所附属的内容)
第三步:检查是否 /etc/passwd
和 /etc/group
文件中仍有 user2
残留
grep user2 /etc/passwd 和 grep user2 /etc/group
(这语句的意思是:
查找 /etc/passwd
文件中包含 user2
的行)
可以看到两句grep命令之后并没有输出,所以再次创建user2就成功了!
补充:
- /var/mail/user2 这个路径怎么来的?
/var
是 Linux 系统中标准目录之一,专门用于存放经常变化的数据文件。
当创建一个用户(比如 user2
)时,系统默认会为其分配一个邮件收件箱文件,这个邮箱文件通常位于 /var/mail/用户名
。
- getent 是Linux中查询系统数据库中的条目的命令。
语法格式:getent [命令参数(你想要查找的内容)]
- grep 命令是从文件中筛选出带有关键字的行或行号
语法结构:grep [关键词] [参数]
/etc
– 系统配置文件目录
例如:/etc/passwd
:用户信息文件
/etc/shadow
:用户密码信息
/etc/hostname
:主机名设置
4. 查看当前用户及 UID/GID
语法结构:whoami
语法结构:id
-
whoami
:显示当前登录的用户名。 -
id
:显示当前用户的 UID(用户ID)、GID(组ID)以及所属组信息
知识总览
总结
本篇内容覆盖了 Linux 运维与开发日常中最常用的系统资源查看、进程分析、用户管理等命令。不仅解释了命令结构和用途,更结合实际问题(如用户删除失败、目录残留等)提供了解决方案。
如果你是 Linux 初学者,这篇文章是你走向高效运维与管理的第一步,如果你是开发者,这些技能能帮助你更好地掌控服务器。如果你觉得这篇文章对你有帮助,欢迎点赞、评论、收藏!