[分享] .profile.d 分散式的 profile 設定檔管理
# .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://www.ptt.cc/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
噓
04/19 17:01, , 1F
04/19 17:01, 1F
source 裡面放中文路徑哪裡不對了 0w0???
※ 編輯: LinBuoRen (180.217.183.10), 04/19/2017 17:48:58
推
04/19 17:58, , 2F
04/19 17:58, 2F
推
04/19 18:09, , 3F
04/19 18:09, 3F
平常遇不到這個使用情境,可以講得更詳細一點嗎?
※ 編輯: LinBuoRen (180.217.183.10), 04/19/2017 18:14:00
→
04/19 19:07, , 4F
04/19 19:07, 4F
→
04/19 19:07, , 5F
04/19 19:07, 5F
→
04/19 19:08, , 6F
04/19 19:08, 6F
一般來說解法是在 .bash_profile 中再 source .profile
推
04/19 19:36, , 7F
04/19 19:36, 7F
※ 編輯: LinBuoRen (61.228.183.179), 04/19/2017 20:05:59
→
04/19 20:08, , 8F
04/19 20:08, 8F
profile 跟 run commands 用途應該差蠻多的才對
profile 只有 login shell 會讀,run commands 則是 shell 每次載入必讀
老實說我不太能理解為何需要在 *profile 中 source bashrc?
更新:剛剛查了一下不知道為什麼 bash 的 login shell 真的不會讀 bashrc,需要在 *profile 中主動 source 才會讀
→
04/19 20:08, , 9F
04/19 20:08, 9F
→
04/19 20:08, , 10F
04/19 20:08, 10F
→
04/19 20:09, , 11F
04/19 20:09, 11F
不相容 POSIX 的 shell 本來就沒轍啊
→
04/19 20:11, , 12F
04/19 20:11, 12F
※ 編輯: 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
推
04/19 21:55, , 13F
04/19 21:55, 13F
→
04/19 22:22, , 14F
04/19 22:22, 14F
→
04/19 22:22, , 15F
04/19 22:22, 15F
→
04/19 22:23, , 16F
04/19 22:23, 16F
→
04/19 22:25, , 17F
04/19 22:25, 17F
→
04/19 22:30, , 18F
04/19 22:30, 18F
其實無所謂,因為我是拿來滿足我自己的需求用的
※ 編輯: LinBuoRen (61.228.183.179), 04/20/2017 00:19:57
→
04/20 01:00, , 19F
04/20 01:00, 19F
→
04/20 16:39, , 20F
04/20 16:39, 20F
推
04/20 17:22, , 21F
04/20 17:22, 21F
推
04/22 22:20, , 22F
04/22 22:20, 22F
→
04/22 22:21, , 23F
04/22 22:21, 23F
→
04/22 22:21, , 24F
04/22 22:21, 24F
推
04/23 15:25, , 25F
04/23 15:25, 25F