Man page - environ(7)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr it pl ja ro zh_TW zh_CN deManual
environ
名 称概 述
描 述
备 注
缺 陷
参 见
跋
名 称
environ - 用 户 环 境
概 述
extern char ** environ ;
描 述
变 量 environ 指 向 一 个 存 储 指 针 的 数 组 , 这 些 指 针 指 向 被 称 为 “环 境 ( environment) ”的 字 符 串 。 数 组 中 最 后 一 个 指 针 的 值 为 NULL。 该 字 符 串 数 组 在 新 程 序 启 动 时 被 execve (2) 调 用 提 供 给 进 程 。 当 子 进 程 被 fork (2) 创 建 时 , 它 继 承 其 父 进 程 环 境 的 一 份 副 本 。
习 惯 上 约 定 在 environ 中 的 字 符 串 有 类 似 “ 名 称 = 值 ”的 形 式 。 其 中 的 名 称 是 大 小 写 敏 感 的 , 且 不 能 包 含 字 符 “ = ”。 其 中 的 值 可 以 为 任 何 字 符 串 可 以 表 示 的 文 本 。 名 称 和 值 不 能 包 含 内 嵌 的 空 字 节 字 符 ( '\0') , 以 此 避 免 其 被 误 认 为 字 符 串 终 止 位 置 。
环 境 变 量 可 由 sh (1) 中 的 export 命 令 在 shell 的 环 境 中 被 设 定 , 或 者 在 使 用 csh (1) 时 使 用 setenv 命 令 。
对 shell 来 说 , 其 初 始 的 环 境 相 关 变 量 可 经 由 多 种 方 式 被 填 充 , 如 在 使 用 了 pam (8) 的 系 统 上 , pam_env (8) 会 对 所 有 用 户 在 登 录 时 启 用 /etc/environment 中 的 定 义 。 除 此 之 外 , 许 多 shell 初 始 化 脚 本 , 如 系 统 层 级 的 /etc/profile 脚 本 和 各 个 用 户 的 初 始 化 脚 本 , 可 能 包 含 一 些 会 向 shell 的 环 境 中 添 加 变 量 的 命 令 ; 请 参 考 您 使 用 的 shell 的 手 册 页 了 解 详 细 信 息 。
Bourne 风 格 的 shell 支 持 下 面 的 语 法
名 称 =值 命 令
它 可 被 用 来 仅 在 执 行 命 令 时 创 建 对 应 的 环 境 变 量 定 义 。 在 命 令 之 前 , 可 以 存 在 多 个 变 量 定 义 , 其 间 使 用 空 格 进 行 分 隔 。
参 数 还 可 以 在 调 用 exec (3)时 被 放 置 于 环 境 之 中 。 C 程 序 可 以 使 用 诸 如 getenv (3), putenv (3), setenv (3) 和 unsetenv (3) 的 函 数 操 纵 其 环 境 。
本 文 的 下 述 部 分 列 出 了 系 统 上 常 见 的 环 境 变 量 。 这 个 列 表 并 不 完 整 , 且 仅 包 含 普 通 用 户 在 日 常 使 用 中 常 见 的 变 量 。 特 定 程 序 或 软 件 库 函 数 所 使 用 的 环 境 变 量 通 常 会 在 其 对 应 的 手 册 页 中 的 “环 境 ”一 节 中 进 行 描 述 。
|
USER |
已 登 录 用 户 的 名 称 ( 被 某 些 BSD 衍 生 的 程 序 所 使 用 ) 。 其 在 登 录 时 被 设 置 , 请 见 下 文 的 备 注 一 节 。 |
LOGNAME
已 登 录 用 户 的 名 称 ( 被 某 些 System-V 衍 生 的 程 序 所 使 用 ) 。 其 在 登 录 时 被 设 置 , 请 见 下 文 的 备 注 一 节 。
|
HOME |
用 户 登 录 时 的 目 录 。 其 在 登 录 时 被 设 置 , 请 见 下 文 的 备 注 一 节 。 |
||
|
LANG |
用 于 语 言 和 区 域 设 置 类 别 的 名 称 , 它 在 未 被 LC_ALL 或 更 具 体 的 环 境 变 量 , 如 LC_COLLATE , LC_CTYPE , LC_MESSAGES , LC_MONETARY , LC_NUMERIC 和 LC_TIME 所 覆 盖 时 生 效 ( 请 参 见 locale (7) 以 了 解 LC_* 环 境 变 量 的 具 体 细 节 ) 。 |
||
|
PATH |
它 是 一 系 列 目 录 前 缀 , 可 被 sh (1) 和 许 多 其 他 程 序 所 使 用 以 搜 索 由 简 单 的 文 件 名 ( 即 不 含 有 斜 线 的 路 径 名 ) 所 指 定 的 可 执 行 文 件 。 各 个 前 缀 之 间 被 冒 号 ( : ) 所 分 隔 。 整 个 前 缀 列 表 会 被 从 前 到 后 进 行 搜 索 , 程 序 会 检 查 给 定 路 径 名 在 附 加 前 缀 、 斜 线 和 文 件 名 之 后 的 路 径 是 否 存 在 , 直 到 找 到 一 个 符 合 条 件 的 可 执 行 文 件 为 止 。 |
还 存 在 一 个 遗 留 的 特 性 : 如 果 前 缀 长 度 为 零 ( 即 由 两 个 相 邻 的 冒 号 组 成 , 或 者 有 起 始 或 终 止 位 置 的 冒 号 存 在 ) , 该 前 缀 会 被 解 释 为 指 定 当 前 工 作 目 录 。 然 而 , 当 前 已 不 推 荐 使 用 该 特 性 , 且 POSIX 认 为 一 个 符 合 标 准 的 应 用 程 序 应 当 使 用 显 式 的 路 径 名 ( 如 . ) 来 指 定 当 前 工 作 目 录 。
类 似 PATH , 还 存 在 CDPATH 会 被 某 些 shell 用 来 寻 找 更 改 目 录 指 令 的 目 标 目 录 , 以 及 被 man (1) 所 使 用 寻 找 手 册 页 的 MANPATH , 等 等 。
|
PWD |
当 前 工 作 目 录 的 绝 对 路 径 。 它 的 组 成 部 分 必 须 被 规 范 化 ( 即 不 可 出 现 . 或 .. 的 路 径 部 分 ) 。 |
||
|
SHELL |
用 户 登 录 shell 的 绝 对 路 径 名 。 其 在 登 录 时 被 设 置 , 请 见 下 文 的 备 注 一 节 。 |
||
|
TERM |
输 出 应 当 兼 容 的 终 端 类 型 。 |
||
|
PAGER |
用 户 偏 好 的 显 示 文 本 文 件 的 实 用 工 具 。 可 被 设 置 为 任 何 sh -c 命 令 可 接 受 的 命 令 字 符 串 操 作 符 。 如 果 PAGER 的 值 为 空 或 未 被 设 置 , 则 启 动 分 页 器 的 应 用 程 序 会 默 认 选 择 一 个 程 序 , 如 less (1) 或 more (1)。 |
EDITOR / VISUAL
用 户 偏 好 使 用 的 编 辑 文 本 文 件 的 工 具 。 可 被 设 置 为 任 何 sh -c 命 令 可 接 受 的 命 令 字 符 串 操 作 符 。
请 注 意 , 许 多 程 序 和 软 件 库 例 程 的 行 为 都 会 受 到 特 定 环 境 变 量 存 在 与 否 及 其 取 值 的 影 响 。 下 面 给 出 一 些 例 子 :
|
• |
LANG , LANGUAGE , NLSPATH , LOCPATH , LC_ALL , LC_MESSAGES 等 等 变 量 会 影 响 语 言 和 区 域 设 置 的 处 理 ; 请 参 见 catopen (3), gettext (3) 和 locale (7)。 |
||
|
• |
TMPDIR 影 响 由 tempnam (3) 和 其 他 例 程 创 建 的 路 径 名 称 的 前 缀 , 以 及 由 sort (1) 和 其 他 程 序 所 使 用 的 临 时 目 录 名 。 |
||
|
• |
LD_LIBRARY_PATH , LD_PRELOAD 和 其 他 LD_* 变 量 会 影 响 动 态 加 载 器 /链 接 器 的 行 为 。 请 参 见 ld.so (8)。 |
||
|
• |
POSIXLY_CORRECT 使 得 特 定 的 程 序 和 软 件 库 例 程 遵 循 POSIX 所 指 定 的 行 为 。 |
||
|
• |
malloc (3) 的 行 为 受 到 MALLOC_* 变 量 的 影 响 。 |
||
|
• |
HOSTALIASES 变 量 给 出 包 含 gethostbyname (3) 将 要 使 用 的 主 机 别 名 的 文 件 的 名 称 。 |
||
|
• |
TZ 和 TZDIR 给 出 tzset (3) 所 使 用 的 时 区 信 息 , 并 涉 及 诸 如 ctime (3), localtime (3), mktime (3), strftime (3) 等 函 数 。 另 请 参 见 tzselect (8)。 |
||
|
• |
TERMCAP 提 供 如 何 处 理 给 定 终 端 的 相 关 信 息 ( 或 者 给 出 包 含 这 些 信 息 的 文 件 的 文 件 名 ) |
||
|
• |
COLUMNS 和 LINES 会 告 知 应 用 程 序 窗 口 大 小 信 息 , 它 可 能 会 覆 盖 实 际 大 小 的 配 置 。 |
||
|
• |
PRINTER 或 LPDEST 可 能 指 定 要 使 用 的 打 印 机 。 请 见 lpr (1)。 |
备 注
历 史 上 以 及 标 准 上 , environ 必 须 被 用 户 程 序 所 声 明 。 然 而 , 一 个 现 存 的 不 标 准 的 方 便 程 序 员 工 作 的 方 法 是 将 environ 声 明 在 <unistd.h> 头 文 件 中 , 前 提 是 _GNU_SOURCE 功 能 测 试 宏 已 被 定 义 ( 参 见 feature_test_macros (7)) 。
prctl (2) 中 的 PR_SET_MM_ENV_START 和 PR_SET_MM_ENV_END 操 作 可 被 用 来 控 制 进 程 环 境 的 位 置 。
HOME , LOGNAME , SHELL 和 USER 变 量 会 在 用 户 经 由 会 话 管 理 界 面 被 变 更 时 被 设 置 。 者 通 常 是 经 由 类 似 login (1) 的 程 序 以 及 用 户 数 据 库 ( 例 如 passwd (5)) 所 完 成 的 。 ( 使 用 su (1) 切 换 到 root 用 户 可 能 导 致 混 合 的 环 境 变 量 , 其 中 LOGNAME 和 USER 被 保 留 为 旧 有 用 户 的 值 ; 参 见 su (1) 手 册 页 。 )
缺 陷
很 显 然 , 这 个 机 制 有 安 全 风 险 。 许 多 系 统 命 令 可 被 用 户 指 定 的 不 同 寻 常 的 IFS 或 LD_LIBRARY_PATH 的 值 所 欺 骗 。
还 存 在 命 名 空 间 污 染 的 风 险 。 如 make 和 autoconf 等 程 序 允 许 环 境 中 具 有 和 实 用 工 具 相 同 命 名 ( 但 全 大 写 ) 的 变 量 覆 盖 默 认 所 使 用 的 工 具 路 径 。 因 此 , 用 户 可 以 使 用 CC 来 选 择 想 要 使 用 的 C 编 译 器 ( 类 似 地 , 还 有 MAKE , AR , AS , FC , LD , LEX , RM , YACC 等 等 ) 。 然 而 , 在 某 些 传 统 的 使 用 场 景 中 这 些 环 境 变 量 还 会 被 赋 值 为 程 序 选 项 而 非 路 径 名 , 例 如 MORE 和 LESS 。 这 些 用 法 被 认 为 是 错 误 的 , 应 当 在 新 程 序 中 避 免 。
参 见
bash (1), csh (1), env (1), login (1), printenv (1), sh (1), su (1), tcsh (1), execve (2), clearenv (3), exec (3), getenv (3), putenv (3), setenv (3), unsetenv (3), locale (7), ld.so (8), pam_env (8)
跋
本
页 面 中 文 版 由
中 文 man 手 册 页 计
划 提 供 。
中 文 man 手 册 页 计
划 :
https://github.com/man-pages-zh/manpages-zh