PENV(1)
π PENV(1) β the manual page bestie π
okay so you found yourself in section 1 of the General Commands Manual, and the star of the show is penv. Let's get into it π«Ά
β¨ NAME β¨
penv β print process environment variables
π SYNOPSIS π
penv [pid | core]...
πΈ DESCRIPTION πΈ
So basically, penv peeks at a target process or a process core file and prints out all the environment variables and their values. That's it, that's the whole vibe β¨
For live processes, the environment gets read straight out of process memory via the environ symbol, which means it reflects the current state β including anything that got added or changed at runtime with setenv(3) or putenv(3). lowkey iconic.
This is very different from /proc/pid/environ, which is a static snapshot captured at process start. That one's frozen in time, no cap π§
Also worth knowing: this command is equivalent to running pargs(1) with the -e option. iykyk π
π¦ OPERANDS π¦
pidβ Process ID list. You can also pass a/proc/pidpath instead, which means shell expansions like/proc/*work and let you target every process on the system at once. slay πcoreβ Process core file, as produced bysystemd-coredump(8), or an Ubuntu/Debian apport.crashfile. For systemd core files, the file genuinely does not need to exist on disk β if it's been removed, the corresponding systemd journal entry gets used instead. See NOTES below π
π EXIT STATUS π
0on success β¨- non-zero if an error occurs β like no such process, permission denied, or an invalid option π
π FILES π
/proc/pid/*β Process information and control files.
π§ NOTES π§
When a core file has been removed by systemd-tmpfiles(8) or by storage limits configured in coredump.conf(5), the systemd-coredump(8) journal entry for the crash may still be hanging around. In that case, the path to the deleted core file can be passed as the core operand even though the file no longer exists on disk, and process metadata will be retrieved from the journal entry instead. no file, no problem π
Use coredumpctl(1) to get the path of a missing core file, like:
coredumpctl list <name> -F COREDUMP_FILENAME
Ubuntu/Debian apport .crash files are also supported π These files use Debian control syntax with base64-encoded gzip core dumps. Text fields β such as ProcCmdline, ProcEnviron, and ExecutablePath β are mapped to COREDUMP_* fields, and the core dump is extracted on first access. the way it justβ¦ does that ππ
π SEE ALSO π
pargs(1), pauxv(1), coredumpctl(1), environ(7), proc(5)
and that's the whole page bestie π this was penv 0.2.23, dated September 2026 β go forth and inspect those environments, main character energy only ππ
π¦ where this page comes from
- fedora 44: ptools 0.2.23-1.fc44 Β· Apache-2.0 AND MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms