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