作者LinBuoRen (林博仁)
看板Linux
标题[分享] .profile.d 分散式的 profile 设定档管理
时间Wed Apr 19 16:57:38 2017
# .profile.d #
# 分散式的 profile 设定档管理专案 #
<
https://github.com/Lin-Buo-Ren/.profile.d>
.profile 为类 Unix 作业系统中使用者登入後会一次性载入并执行的设定档,主要用来
设定使用者的环境变数(包含作为可执行档搜索路径的 `PATH` 环境变数)。
本专案是用来放置原本使用者会放置於`〈家目录〉/.profile` 个人设定档的脚本片段,
这样就可以最小程度地让使用者自订的 .profile 片段污染 GNU/Linux 作业系统散布版
本提供的版本且让该片段可以被重复利用。
您需要在家目录中新建 .profile.d 目录(如果该目录原本还没存在的话),然後将您的
profile 个人设定档片段以 .source.sh 副档名写进 .profile.d 目录中,.profile 中
的程式会自动引入(source)并执行。
## 特色 / Features ##
* 备有将指定目录插入 shell 可执行档搜寻路径(`PATH` 环境变数)中的工具函式
* 如果指定目录不存在或是 `PATH` 中已有相同路径将不会添加,避免增加搜寻路径的多
余时间
## 设定 / Setup ##
1. 将本版控库拓制(clone)或下载解开到家目录中的 .profile.d 目录,确定
`README.setup` 与其他档案位於 ~/.profile.d 目录中
2. 在 ~/.profile 设定档中加入下列内容:
# Setup .profile.d/
#
https://github.com/Lin-Buo-Ren/.profile.d
. "${HOME}/.profile.d/README.setup"
您需要重新登出再登入才能让设定生效
## 注意 / Remark ##
.profile 为通用的 script 程式,应使用 [POSIX.1-2008 规范的 shell script 语法
](
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html )而
非 Bash 等壳层程式的专有语法撰写
## 授权条款 / License ##
GPLv3+
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.217.183.10
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1492592267.A.91E.html
※ 编辑: LinBuoRen (180.217.183.10), 04/19/2017 16:59:24
※ 编辑: LinBuoRen (180.217.183.10), 04/19/2017 17:00:08
1F:嘘 dou0228: source 里面放中文路径? 04/19 17:01
source 里面放中文路径哪里不对了 0w0???
※ 编辑: LinBuoRen (180.217.183.10), 04/19/2017 17:48:58
2F:推 holishing: 纯补个血 04/19 17:58
3F:推 Alica: 复制贴上一不小心就u8←→b5转码了 还是尽量避免啦 04/19 18:09
平常遇不到这个使用情境,可以讲得更详细一点吗?
※ 编辑: LinBuoRen (180.217.183.10), 04/19/2017 18:14:00
4F:→ kenduest: 其实不同 shell 基本上设定档案不大一样 04/19 19:07
5F:→ kenduest: centos 来说用 bash, bash 是有机会读取 .profile 04/19 19:07
6F:→ kenduest: 但是那也是 .bash_profile 找不到这类才有机会使用到 04/19 19:08
一般来说解法是在 .bash_profile 中再 source .profile
7F:推 Bencrie: 帮补 04/19 19:36
※ 编辑: LinBuoRen (61.228.183.179), 04/19/2017 20:05:59
8F:→ kenduest: 一般 centos 的 .bash_profile 主要是读入 .bashrc 04/19 20:08
profile 跟 run commands 用途应该差蛮多的才对
profile 只有 login shell 会读,run commands 则是 shell 每次载入必读
老实说我不太能理解为何需要在 *profile 中 source bashrc?
更新:刚刚查了一下不知道为什麽 bash 的 login shell 真的不会读 bashrc,需要在 *profile 中主动 source 才会读
9F:→ kenduest: source .profile 必要性?其实我感觉主要是使用者 04/19 20:08
10F:→ kenduest: 要了解 shell 程式读取档案的项目,贸然套 .profile 04/19 20:08
11F:→ kenduest: 不一定也正确。有人用 csh 这类不就破工了? 档名不同 04/19 20:09
不相容 POSIX 的 shell 本来就没辙啊
12F:→ kenduest: 简单说这篇文章陈述的内容考量部分比较少就是 04/19 20:11
※ 编辑: LinBuoRen (61.228.183.179), 04/19/2017 20:38:40
※ 编辑: LinBuoRen (61.228.183.179), 04/19/2017 20:39:45
※ 编辑: LinBuoRen (61.228.183.179), 04/19/2017 20:58:53
※ 编辑: LinBuoRen (61.228.183.179), 04/19/2017 21:05:24
13F:推 ddtsatan: 推 04/19 21:55
14F:→ kenduest: 原帖楼主可以装一下redhat或是centos了解它的设定档案 04/19 22:22
15F:→ kenduest: 设定规划流程 04/19 22:22
16F:→ kenduest: 整体来说个人觉得您这一篇整个帮助性不高 04/19 22:23
17F:→ kenduest: 其实你只需要提供简单几行 for 回圈叙述就好了 04/19 22:25
18F:→ kenduest: 说明提供的一些脚本达能目的用途就好了 04/19 22:30
其实无所谓,因为我是拿来满足我自己的需求用的
※ 编辑: LinBuoRen (61.228.183.179), 04/20/2017 00:19:57
19F:→ kpier2: 钓老人也很好用 XD 04/20 01:00
20F:→ kenduest: 老人大多有自己一套方式 04/20 16:39
21F:推 rickieyang: Life finds a way... 04/20 17:22
22F:推 Neisseria: 其实直接改 PATH 比较直观,包成函数反而要想一下 04/22 22:20
23F:→ Neisseria: shell scripting 本来就是每个人用自已的 04/22 22:21
24F:→ Neisseria: 除非要写 pyenv 这种工具,不用追求相容性 04/22 22:21
25F:推 jasonfenglu: 如果直接用environment modules? 04/23 15:25