linux 使用者啟動後載入檔案

2021-08-03 17:56:47 字數 2009 閱讀 5401

shell會涉及兩個引數,互動/非互動;登入/分登陸;他們是可以交叉組合的,比如你是互動,可以登陸,也可以不登入...

由於他們的關係可以相互組合,為了清楚以下先針對單獨情況討論。

non-interactive 非互動使用者 預設無輸入輸出。一般是由程式產生的。命令需指定fullpath。(a呼叫b,簡寫成a-->b)

非互動可指定登陸,可以指定輸入輸出。不會載入~/.bashrc,而會載入 bash_env /etc/bashrc --> /etc/profile.d/*sh

interactive 互動使用者 帶輸入輸出的。互動系統會載入prompt變數,如ps1(也就是你的command字首)。如要求使用interactive環境,可用[ -z "$ps1" ] && return 進行校驗。

使用互動的情況,即平常的shell互動介面,如 xshell虛擬終端,或gnome可視環境下的終端(可以登陸或不登陸),缺省會讀取~/.bashrc-->/etc/bashrc --> /etc/profile.d/*sh

non-login非登陸使用者。在gome下,你可以開啟乙個非登陸的終端,或者在su使用者的時候不加 "-" ,他們都屬於互動式非登陸bash。

非登陸不會讀取帶profile的檔案,如/etc/profile或~/.bash_profile,但會讀取~/.bashrc-->/etc/bashrc --> /etc/profile.d/*sh

login登陸使用者 這可能最常見的,需要驗證登陸的使用者,也是載入最全的 

/etc/profile, ~/.profile, ~/.bash_login 和 ~/.bash_profile -->~/.bashrc -->/etc/bashrc

登出時 ~/.bash_logout

為了方便理解,在此以對比的方法進行區別,如有疑問歡迎指出討論

載入比較

登入vs非登陸,多載入一些profile:/etc/profile,~/.profile, ~/.bash_(login/logout)

互動vs非互動,多載入乙個bashrc:~/.bashrc

兩種檔案的型別

觀察下載入檔案一般是bash和profile的各種組合,那麼問題來了,profile和bashrc是幹啥的?

bashrc

rc=resource,bashrc就是bash專用rc,如果其他版本的shell就呼叫其他的,如cshrc

profile

使用者設定環境變數的地方,你可以有多個shell(bash,zsh,csh)但是profile是跟使用者的

呼叫關係 

~/.bash_profile --> ~/.bashrc

~/.bashrc --> /etc/bashrc

/etc/bashrc --> /etc/profile.d/*sh

/etc/profile --> /etc/profile.d/*sh

而a能呼叫b,那麼說明a的載入內容多於b,即執行a的要求更高

對於~/.bash_profile --> ~/.bashrc

~/.bash_profile 需要登陸,不登入執行的是  ~/.bashrc

對於~/.bashrc --> /etc/bashrc

~/.bashrc 需要互動,非互動式執行的是 /etc/bashrc

對於/etc/profile.d/*sh,每個環境最終都會呼叫執行

進入後可以看到,是一些以基礎命令.sh的環境變數

系統區別

以上均基於rehl,對於debian會有區別,已知的是:

/etc/bashrc(rhel系)=/etc/bash.bashrc (debian系) 

/etc/bashrc  呼叫

/etc/profile.d/*sh (rhel系)

/etc/profile 呼叫

/etc/bashrc (debian系)

因此,更改配置更推薦寫入~/.bashrc,登陸使用者會在~/.bash_profile中讀取 ~/.bashrc,同時保證non-login也能載入,而不是加在/etc/profile

參考

linux設定開機自動載入檔案

在linux中有個rc.local檔案,linux在啟動時會自動載入其中的內容,當作命令執行,所以只需要將需要開機執行的命令寫在其中,就可以實現開機自動載入檔案或開啟服務。rc.local路徑 etc rc.local 1.開啟檔案 vim etc rc.local 2.寫入命令 touch tmp...

關於分散載入檔案

分散載入 scatlerloading 即工程裡的.scf檔案。在scatterfile中可以為每乙個 或資料區在裝載和執行時指定不同的儲存區域位址,scatlertoading的儲存區塊可以分成二種型別 裝載區 當系統啟動或載入時應用程式的存放區。執行區 系統啟動後,應用程式進行執行和資料訪問的儲...

UTL FILE 載入檔案處理

create or replace procedureloadfiledata p path varchar2,p filename varchar2 as v filehandle utl file.file type 定義乙個檔案控制代碼 v text varchar2 100 存放文字 v n...