一般的系統可能會有
/etc/profile
/etc/bashrc
~/.bashrc
~/.bash_profile
profile 是某個使用者唯一的用來設定環境變數的地方, 因為使用者可以有多個 shell 比如 bash, sh, zsh 之類的, 但像環境變數這種其實只需要在統一的乙個地方初始化就可以了, 而這就是 profile.
bashrc是專門用來給 bash 做初始化的比如用來初始化 bash 的設定, bash 的**補全, bash 的別名, bash 的顏色. 以此類推也就還會有 shrc, zshrc 這樣的檔案存在了, 只是 bash 比較常用.
/etc/*** 檔案裡面的內容對所用的使用者都適用
~/.*** 檔案裡面的內容只適用於個人
login shell:該模式表示使用者登入,比如使用 "su -" 命令, 或者用 ssh 連線到某乙個伺服器上, 都會使用該使用者預設shell 啟動 login shell 模式.該模式下的 shell 會去自動執行 /etc/profile 和 ~/.profile 檔案, 但不會執行任何的 bashrc 檔案, 所以一般再 /etc/profile 或者 ~/.profile 裡我們會手動去 source bashrc 檔案.
no-login shell:該模式是我們在終端下直接輸入 bash 或者 bash -c 「cmd」 來啟動的 shell.該模式下是不會自動去執行任何的 profile 檔案.
interactive shell:該預設是互動式shell, 就是用來和使用者互動的, 提供了命令提示符可以輸入命令.在這種模式下會存在乙個叫 ps1 的環境變數, 如果還不是 login shell 的則會去 source /etc/bash.bashrc 和 ~/.bashrc 檔案
non-interactive shell:
ssh login, sudo su - [user] 或者 mac 下開啟終端這些都是典型的interactive login shell, 所以會有 ps1 變數, 並且會執行/etc/profile ~/.profile兩個檔案
shell相關檔案
站在使用者登入的角度來說,shell的型別 登入式shell 正常通常某終端登入 su username su l username 非登入式shell su username 圖形終端下開啟命令視窗 自動執行的shell指令碼 bash的配置檔案 全域性配置 etc profile,etc pro...
shell指令碼中與檔案判斷相關的指令
e filename 如果 filename存在,則為真 d filename 如果 filename為目錄,則為真 f filename 如果 filename為常規檔案,則為真 l filename 如果 filename為符號鏈結,則為真 r filename 如果 filename可讀,則為...
shell檔案操作相關命令
1,在 opt目錄 下新建乙個資料夾,名字叫new folder,並且把 etc init.d中的所有檔案拷貝到這個資料夾中。sudo cp r etc init.d opt new folder 2,把new foleder分別壓縮為new folder.tar.gz和new foleder.ta...