国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

linux用戶source .bashrc或.profile找不到文件的解決

瀏覽:123日期:2023-05-12 10:25:41
目錄
  • linux用戶source .bashrc或.profile找不到文件
  • Linux .bashrc .bash_profile 和 .profile之間的區別
    • 1 概述
    • 2 交互式和非交互式shell
    • 3 bash啟動文件
    • 4 區別
  • 總結

    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
    主站蜘蛛池模板: 麻豆视频一区 | 品色堂永久免费 | 国产免费高清在线精品一区 | 手机在线观看一级午夜片 | 99久久免费看精品国产一区 | 免费一级毛片无毒不卡 | 日本免费一区二区三区a区 日本免费一区二区三区看片 | 久草视频中文在线 | 在线一区免费播放 | 欧美激情性色生活片在线观看 | 在线视频一区二区日韩国产 | 97在线视频精品 | 国产激爽大片在线播放 | 欧美日韩视频一区二区三区 | 女人aaaaa片一级一毛片 | 国产精品国产三级在线高清观看 | 亚洲第一视频在线观看 | 久国产精品视频 | 一级做a爱片特黄在线观看 一级做a爱片特黄在线观看免费看 | 一区二区三区国产美女在线播放 | 蜜桃88av | 美女扒开双腿让男人爽透视频 | 免费在线精品视频 | 国内精品久久久久不卡 | 亚洲欧美一区二区三区在线观看 | 一级国产精品一级国产精品片 | 三级韩国一区久久二区综合 | 日韩中文字幕免费在线观看 | 涩涩国产精品福利在线观看 | 黄色在线播放 | 韩日三级视频 | 91手机看片国产福利精品 | 亚洲丝袜另类 | 欧美黄色精品 | 免费精品99久久国产综合精品 | 久久久免费观看视频 | 国产一级毛片一区二区三区 | 欧美国产在线观看 | 亚洲系列 | 国产一久久香蕉国产线看观看 | 日韩免费一区二区三区 |