GNU/Linux >> Znalost Linux >  >> Linux

Proč by se dalo přidat ~/.profile do ~/.bash_profile?

Při instalaci RVM se zobrazí následující zpráva:

* WARNING: You have '~/.profile' file, you might want to load it,
  to do that add the following line to '/home/dotancohen/.bash_profile':

    source ~/.profile

Mám obavy, protože můj soubor ~/.profile obsahuje xmodmap ~/.Xmodmap který zjevně nechci spouštět (prohozením kláves CapsLock a ESC) pokaždé, když otevřu nový shell.

Proč by moudří vývojáři RVM mohli navrhnout zdroj .profile v .bash_profile ?

Přijatá odpověď:

.profile a .bash_profile jsou identické, pokud jde o to, kdy se mají spustit:spouštějí se, když se přihlásíte. Rozdíl je v tom, že pouze bash spouští .bash_profile; Shelly ve stylu Bourne (dash, ksh atd.) spouští .profile . Bash sám spouští .profile if .bash_profile neexistuje.

I když máte bash jako přihlašovací shell, .profile je často ten, který se spustí, když se přihlásíte v grafickém režimu – mnoho distribucí nastavuje spouštěcí skript X session tak, aby se spouštěl pod sh a načtěte .profile .

Proto je doporučeno používat .profile místo .bash_profile dělat věci, jako je definování proměnných prostředí. Pokud nezbytně nepotřebujete funkce specifické pro bash, stačí dát vše do .profile . Ale i když to uděláte, existuje důvod, proč si ponechat .bash_profile , což znamená, že když jej bash načte, nenačte .bashrc , i když je interaktivní. Pro většinu lidí tedy ~/.bash_profile by se měl skládat z těchto dvou řádků:

. ~/.profile
case  $- in *i*) . ~/.bashrc;; esac

Neměli byste spouštět xmodmap z .profile . To se nespustí, když otevřete nový shell, ale spustí se to například, když se vzdáleně přihlásíte pomocí SSH s přesměrováním X11. Bohužel neexistuje žádný standardní soubor, který se načte, když se přihlásíte v grafickém režimu. Debian načte ~/.xsessionrc (Myslím, že to platí pro všechny správce zobrazení, kromě Gdm, který načítá ~/.xprofile namísto); jiné distribuce mají jiné nastavení. Pokud potřebujete přenositelnost napříč distribucemi, může být jednodušší nakonfigurovat prostředí počítače tak, aby spouštělo xmodmap když to začne. Pokud vše, co děláte, je záměna CapsLock a Ctrl, lze to provést pomocí nastavení XKB, ke kterému poskytuje rozhraní většina moderních desktopových prostředí.

Související:Jak nastavit proměnnou rovnou výstupu z příkazu v GRUB2?
Linux
  1. Co je TAM a proč byste jím mohli chtít být?

  2. Proč při volání bind() přetypujeme sockaddr_in na sockaddr?

  3. Synchronizace bash profilu mezi počítači

  1. Proč nefunguje ~/.bash_profile?

  2. Proč je synchronizace tak důležitá při vytváření zaváděcího USB klíče pro Linux?

  3. .bash_profile není při spuštění Su?

  1. Rozdíl mezi ~/.profile a ~/.bash_profile?

  2. Proč se při použití uvozovek zobrazuje jedno zpětné lomítko?

  3. Proč tento plášťový ropovod vystupuje?