搜尋
首頁運維linux運維linux用戶source .bashrc或.profile找不到檔案怎麼解決

    linux用戶source .bashrc或.profile找不到檔案

    之前在debian遇到這種情況,新增加的用戶,每次登入的路徑都顯示sh-42$必須su - 使用者名稱才能恢復正常,且使用者目錄下的.bashrc和其他的設定檔都沒有辦法source,導致一系列問題。

    如果是這種情況,極有可能是linux的預設啟動shell不正確,su切換成超級用戶,vi /etc/passwd查看用戶對應的啟動shell,對比其他正常的用戶的啟動shell ,如果不一樣則修改成相同即可。 。

    例如其他正常使用者的shell為/bin/bash ,異常使用者對應的shell是/bin/sh,則將其改為/bin/bash。

    Linux .bashrc .bash_profile 和.profile之間的區別

    1 概述

    bash shell使用一些啟動檔案去設定環境變量,這些啟動檔案為shell本身和系統使用者確定某些bash shell配置,在本文中,我們將了解.bashrc .bash-profile 和.profile之間的差異。

    2 互動式和非互動式shell

    • Bash在互動式shell中提供了兩個模式選項,登入和非登入(login and non-login) 。

    • 當我們使用ssh登入系統時,我們得到一個互動式登入的shell (interactive login shell),這個shell在被呼叫時會讀取啟動檔。

    • 然而,當我們在一個已經登入的shell上呼叫一個新的shell時,我們得到的是一個互動的、非登入的shell。這個shell只執行.bashrc檔案

    當shell不需要任何人類幹預即可執行指令時,我們稱之為非互動式shell (non-interactive shell)。例如,當腳本產生子shell來執行命令時,子shell是非互動式shell,子shell不會執行任何啟動文件,它從創建它的shell中繼承了環境變數。

    3 bash啟動檔案

    啟動檔案包含shell啟動時需要執行的指令。因此,shell會自動執行這些啟動檔案中的指令來設定shell。這個過程發生在顯示命令提示字元之前。

    3.1 .bash_profile 的意義

    .bash_profile檔案包含用於設定環境變數的命令,因此shell將繼承這些變數。

    在互動式登入shell中,bash先找 /etc/profile 檔案。如果找到,bash將在目前shell中讀取並執行它。結果是 /etc/profile為所有使用者設定環境配置

    類似地,bash接著檢查主目錄(cd ~ 進入的目錄為主目錄)中是否存在 .bash_profile。如果存在,則bash在目前shell中執行 .bash_profile,Bash然後停止尋找其他文件,如 .bash_login 和 .profile。

    如果bash沒有找到 .bash_profile,那麼它將依照順序尋找 .bash_login 和 .profile,並且只執行第一個可讀的檔案。

    讓我們研究一個範例 .bash_profile檔。這裡我們重新設定並導出PATH變數

    echo "Bash_profile execution starts.."  
    PATH=$PATH:$HOME/bin; 
    export PATH; 
    echo "Bash_profile execution stops.."

    在互動式登入shell的命令提示字元之前,我們將看到下面的輸出

    Bash_profile execution starts.. 
    Bash_profile execution stops.. 
    [example@example ~]$

    3.2 .bashrc 的意義

    .bashrc包含特定於bash shell的指令。每個互動式非登入shell首先讀取 .bashrc,通常,.bashrc是添加別名和bash相關功能的最佳場所。

    bash shell在主目錄中尋找 .bashrc文件,並使用source在目前shell中執行它。

    讓我們透過範例認識.bashrc檔案

    echo "Bashrc execution starts.." 
    alias elui='top -c -u $USER' 
    alias ll='ls -lrt' 
    echo "Bashrc execution stops.."

    在互動式非登入shell的命令提示字元之前,我們將看到下面的輸出

    [example@example ~]$ bash
    Bashrc execution starts.. 
    Bashrc execution stops.. 
    [example@example ~]$

    3.2 .profile 的意義

    在互動式shell登入過程中,如果在主目錄中不存在.bash_profile,則bash尋找.bash_login,如果發現**.bash_login** 則bash執行它。如果 .bash_login 不存在主目錄中,則bash尋找 .profile 並執行它。

    .profile 可以保持與 .bash_profile 或 .bash_login 的設定。它控制著出現的提示,鍵盤聲音,要打開的 shell 以及覆蓋 /etc/profile檔案中設定的變數的單一設定檔設定。

    4 區別

    每次互動登入時,bash shell都會執行 .bash_profile。如果在主目錄中找不到 .bash_profile,bash將執行從 .bash_login 和 .profile 中找到的第一個可讀檔案。但是,在每次互動式非登入shell啟動時,bash都會 .bashrc。

    通常情況下,環境變數會被放入 .bash_profile。由於互動式登入shell是第一個shell,因此環境設定所需的所有預設設定都被放入**.bash_profile**。因此,它們只設定一次而且在所有子shell中繼承。

    同樣地,別名和函數也會被放入.bashrc 確保每次從現有環境中啟動shell時都加載這些

    #然而,為了避免登入和非登入互動shell設置的差異。 .bash_profile 呼叫 .bashrc。因此,我們將看到下面的程式碼片段被插入**.bash_profile**,以便在每個互動式登入shell上 .bashrc 也在同樣shell執行:

    if [ -f ~/.bashrc ];
    then 
        .  ~/.bashrc; 
    fi 
    PATH=$PATH:$HOME/bin export PATH

    注意:

    总而言之,在使用环境之前,shell需要其启动文件以配置shell环境。

    在本文中,我们检查了各种shell模式。然后,我们了解了各种bash启动文件的重要性。最后,我们检查了这些启动文件之间的差异。

    以上是linux用戶source .bashrc或.profile找不到檔案怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述
    本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
    Linux中的維護模式:何時以及為什麼使用它Linux中的維護模式:何時以及為什麼使用它Apr 25, 2025 am 12:15 AM

    使用Linux維護模式的時機和原因:1)系統啟動問題時,2)進行重大系統更新或升級時,3)執行文件系統維護時。維護模式提供安全、控制的環境,確保操作的安全性和效率,減少對用戶的影響,並增強系統的安全性。

    Linux:基本命令和操作Linux:基本命令和操作Apr 24, 2025 am 12:20 AM

    Linux中不可或缺的命令包括:1.ls:列出目錄內容;2.cd:改變工作目錄;3.mkdir:創建新目錄;4.rm:刪除文件或目錄;5.cp:複製文件或目錄;6.mv:移動或重命名文件或目錄。這些命令通過與內核交互執行操作,幫助用戶高效管理文件和系統。

    Linux操作:管理文件,目錄和權限Linux操作:管理文件,目錄和權限Apr 23, 2025 am 12:19 AM

    在Linux中,文件和目錄管理使用ls、cd、mkdir、rm、cp、mv命令,權限管理使用chmod、chown、chgrp命令。 1.文件和目錄管理命令如ls-l列出詳細信息,mkdir-p遞歸創建目錄。 2.權限管理命令如chmod755file設置文件權限,chownuserfile改變文件所有者,chgrpgroupfile改變文件所屬組。這些命令基於文件系統結構和用戶、組系統,通過系統調用和元數據實現操作和控制。

    Linux中的維護模式是什麼?解釋了Linux中的維護模式是什麼?解釋了Apr 22, 2025 am 12:06 AM

    MaintenancemodeInuxisAspecialBootenvironmentforforcalsystemmaintenancetasks.itallowsadMinistratorStoperFormTaskSlikerSettingPassingPassingPasswords,RepairingFilesystems,andRecoveringFrombootFailuresFailuresFailuresInamInimAlenimalenimalenrenmentrent.ToEnterMainterMainterMaintErmaintErmaintEncemememodeBoode,Interlecttheboo

    Linux:深入研究其基本部分Linux:深入研究其基本部分Apr 21, 2025 am 12:03 AM

    Linux的核心組件包括內核、文件系統、Shell、用戶空間與內核空間、設備驅動程序以及性能優化和最佳實踐。 1)內核是系統的核心,管理硬件、內存和進程。 2)文件系統組織數據,支持多種類型如ext4、Btrfs和XFS。 3)Shell是用戶與系統交互的命令中心,支持腳本編寫。 4)用戶空間與內核空間分離,確保系統穩定性。 5)設備驅動程序連接硬件與操作系統。 6)性能優化包括調整系統配置和遵循最佳實踐。

    Linux體系結構:揭示5個基本組件Linux體系結構:揭示5個基本組件Apr 20, 2025 am 12:04 AM

    Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

    Linux操作:利用維護模式Linux操作:利用維護模式Apr 19, 2025 am 12:08 AM

    Linux的維護模式可以通過GRUB菜單進入,具體步驟為:1)在GRUB菜單中選擇內核並按'e'編輯,2)在'linux'行末添加'single'或'1',3)按Ctrl X啟動。維護模式提供了一個安全環境,適用於系統修復、重置密碼和系統升級等任務。

    Linux:如何進入恢復模式(和維護)Linux:如何進入恢復模式(和維護)Apr 18, 2025 am 12:05 AM

    進入Linux恢復模式的步驟是:1.重啟系統並按特定鍵進入GRUB菜單;2.選擇帶有(recoverymode)的選項;3.在恢復模式菜單中選擇操作,如fsck或root。恢復模式允許你以單用戶模式啟動系統,進行文件系統檢查和修復、編輯配置文件等操作,幫助解決系統問題。

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    SecLists

    SecLists

    SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

    mPDF

    mPDF

    mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

    SublimeText3 Linux新版

    SublimeText3 Linux新版

    SublimeText3 Linux最新版

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中