目錄
linux用戶source .bashrc或.profile找不到檔案
Linux .bashrc .bash_profile 和.profile之間的區別
1 概述
2 互動式和非互動式shell
3 bash啟動檔案
4 區別
首頁 運維 linux運維 linux用戶source .bashrc或.profile找不到檔案怎麼解決

linux用戶source .bashrc或.profile找不到檔案怎麼解決

May 13, 2023 pm 09:37 PM
linux

    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

    熱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

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

    熱工具

    記事本++7.3.1

    記事本++7.3.1

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

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

    VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

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

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

    notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

    雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

    vscode 無法安裝擴展 vscode 無法安裝擴展 Apr 15, 2025 pm 07:18 PM

    VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。

    git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

    要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

    vscode 可以用於 mac 嗎 vscode 可以用於 mac 嗎 Apr 15, 2025 pm 07:36 PM

    VS Code 可以在 Mac 上使用。它具有強大的擴展功能、Git 集成、終端和調試器,同時還提供了豐富的設置選項。但是,對於特別大型項目或專業性較強的開發,VS Code 可能會有性能或功能限制。

    VSCode怎麼用 VSCode怎麼用 Apr 15, 2025 pm 11:21 PM

    Visual Studio Code (VSCode) 是一款跨平台、開源且免費的代碼編輯器,由微軟開發。它以輕量、可擴展性和對眾多編程語言的支持而著稱。要安裝 VSCode,請訪問官方網站下載並運行安裝程序。使用 VSCode 時,可以創建新項目、編輯代碼、調試代碼、導航項目、擴展 VSCode 和管理設置。 VSCode 適用於 Windows、macOS 和 Linux,支持多種編程語言,並通過 Marketplace 提供各種擴展。它的優勢包括輕量、可擴展性、廣泛的語言支持、豐富的功能和版

    vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

    vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

    See all articles