ps aux 命令详解

psaux是Linux系统中常用的查看进程信息的命令。
其输出显示系统中每个进程的运行状态和相关资源使用情况的详细信息。
psaux组件解析命令包含三个参数: a:显示与终端关联的所有进程,包括其他用户的进程。
u:以面向用户的格式输出,显示进程所有者、资源使用情况等详细信息。
x:显示没有终端链接的进程(如后台服务、守护进程)。
输出字段的详细说明 输出通常包括以下关键字段: USER:进程的所有者用户。
PID:进程的唯一标识符(ProcessID)。
%CPU:进程占用CPU资源的百分比。
%MEM:进程占用物理内存的百分比。
VSZ:进程使用的虚拟内存大小(单位:KB)。
RSS:进程占用的物理内存大小(单位:KB,常驻内存页数)。
TTY:与进程关联的终端。
如果是?,则表示不存在端到端的链路(如系统服务)。
STAT:进程状态码,一般状态包括: R:正在运行或可运行(在队列中等待CPU资源)。
S:睡眠状态(中断,等待事件完成)。
D:不间断睡眠(通常与 I/O 活动有关)。
Z:僵尸进程(已终止但未被父进程回收)。
T:暂停状态(如果收到SIGSTOP信号)。
<:进程具有高优先级。
N:低优先级进程。
s:进程领导者(包括子进程)。
+:位于后台进程组。
START:进程开始时间。
TIME:进程占用的累计CPU时间。
COMMAND:启动进程的命令(包括参数)。
如果指令用方括号[]括起来,则通常是内核线程。
使用场景及注意事项 系统监控:通过%CPU、%MEM快速定位资源占用率高的进程。
故障排除:使用STAT字段来识别异常进程(例如僵尸进程Z或不间断进程D)。
进程管理:根据PID继续进程操作(如kill-9 PID终止)。
输出过滤:您可以使用管道字符 |结合grep来过滤特定进程(如psaux|grepnginx)。
ps-ef扩展知识:与psaux类似,但输出格式不同(-e显示所有进程,-f显示完整格式)。
top/htop:实时动态查看进程资源使用情况,适合交互式监控。
pstree:以树形结构显示进程之间的父子关系。
通过psaux,用户可以全面掌握系统进程状态,为资源优化和错误处理提供主要依据。

Linux系统的UID和EUID

在Linux系统中,UID(用户ID)和EUID(有效用户ID)是用于权限管理和进程控制的重要概念。
下面对这两个概念进行详细解释: UID(RealUID,真实用户ID) 定义:UID是进程创建者的真实用户ID,用于标识系统中的用户是谁。
当用户使用其用户名和密码成功登录时,UNIX 系统会为其分配一个唯一的 RUID。
作用:UID主要用于记录进程的创建者(即所有者),保证只有进程的创建者和root用户才有权操作该进程。
特点:UID是静态的,进程一旦创建,其UID通常不会改变。
EUID(EffectiveUID,有效用户ID)定义:EUID是系统用来确定用户对系统资源的访问权限的。
大多数情况下,进程的UID和EUID是相同的。
作用:EUID决定进程执行时实际拥有的权限。
例如,当一个进程需要访问某些受限资源或文件时,系统会检查其EUID以确定是否允许访问。
特点:EUID是动态的,可以在进程执行过程中通过某些机制(如setuid程序)进行更改。
setuid程序与EUID的关系 setuid程序:setuid是一种特殊的程序属性,可以让程序在执行阶段临时获得文件所有者的权限。
这对于需要执行特权操作(例如更改密码)但不想继续以 root 身份运行的程序非常有用。
举例:以passwd命令为例,该命令允许用户修改登录密码。
密码保存在/etc/shadow文件中,普通用户无法读取该文件。
通过设置setuid属性,passwd命令在执行时可以暂时获得root权限,从而修改shadow文件。
EUID更改:当非root用户调用passwd更改密码时,进程的EUID会更改为passwd命令文件所有者的UID(即root的UID,为0),从而使该进程拥有修改shadow文件的权限。
id命令与UID、EUID id命令:Linux中的id命令用于显示用户的ID及其所属组的ID。
它显示用户及其所属组的实际有效ID。
参数说明: -g 或--group:显示用户所属组的ID。
-G 或 --groups:显示用户所属的其他组的 ID。
-n 或 --name:显示用户、组或附加组的名称。
-r 或 --real:显示实际 ID(即 UID)。
-u 或 --user:显示用户 ID(默认情况下,如果未指定其他选项,id 命令将显示用户的 UID、EUID 和组 ID)。
-help:显示帮助信息。
-version:显示版本信息。
通过id命令,用户可以轻松查看自己的UID、EUID和组信息,以更好地了解自己在系统中的权限和身份。

常用文件访问权相关命令,以及 macOS launchd

与文件访问权限相关的常用命令: lsl:文件所有者;团队权限;用于显示文件大小等详细信息。
第一列是授权信息。
例如rwrr表示该文件有读写权限;但是,它所属的组和其他用户只有读取权限。
lsla:列出当前目录及其子目录下的所有文件并显示详细信息。
chmod:用于更改文件权限。
例如,chmod+wAUTHORS.txt 增加文件的写权限,chmodwAUTHORS.txt 删除写权限。
权限 r、w x 或数字 4 ; 2 或1 可以用字母代替。
chown:用于更改文件的所有者。
例如,chownrootAUTHORS.txt 将文件的所有者更改为 root。
chgrp:用于更改文件所属的组。
例如,chgrpstaffAUTHORS.txt 更改员工所有权文件。
macOSlaunchd:定义:launchd是Apple创建的一个初始化和服务管理守护进程,用于启动服务并运行系统和用户定义的脚本。
配置文件:启动模式;包括程序路径等关键参数。
通过plist文件配置launchdJob管理命令:launchdJob使用launchctl命令进行管理,例如launchctlload用于加载配置文件并启动作业。
此外,啤酒服务使启动和停止任务变得更加容易。