GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash liest .bashrc nur, wenn es manuell gestartet wird

Stellen Sie in .bash_profile sicher, dass Sie Folgendes haben:

# .bash_profile

# If .bash_profile exists, bash doesn't read .profile
if [[ -f ~/.profile ]]; then
  . ~/.profile
fi

# If the shell is interactive and .bashrc exists, get the aliases and functions
if [[ $- == *i* && -f ~/.bashrc ]]; then
    . ~/.bashrc
fi

Warum sollte es es beziehen? Sie führen nicht den wahren bash aus :

$ echo $SHELL
/bin/sh

In den meisten modernen Systemen sh ist ein symbolischer Link zu einer einfachen Shell. Auf meinem Debian zum Beispiel:

$ ls -l /bin/sh 
lrwxrwxrwx 1 root root 4 Aug  1  2012 /bin/sh -> dash

In Ihrem Fall sh ist ein Link zu bash aber wie in man bash erklärt :

Wenn bash mit dem Namen sh aufgerufen wird, versucht es, das Startverhalten historischer Versionen von sh so genau wie möglich nachzuahmen, während es sich auch an den POSIX-Standard hält. [...] Wenn Bash als interaktive Shell mit dem Namen sh aufgerufen wird, sucht sie nach der Variablen ENV, erweitert ihren Wert, wenn sie definiert ist, und verwendet den erweiterten Wert als Namen einer zu lesenden und auszuführenden Datei. Da eine als sh aufgerufene Shell nicht versucht, Befehle aus anderen Startdateien zu lesen und auszuführen , hat die Option --rcfile keine Auswirkung.

und

--norc
Lesen und führen Sie die systemweite Initialisierungsdatei /etc/bash.bashrc und die persönliche Initialisierungsdatei ~/.bashrc nicht aus, wenn die Shell interaktiv ist. Diese Option ist standardmäßig aktiviert, wenn die Shell als sh aufgerufen wird.

Da Ihre Standard-Shell also sh ist , .bashrc wird nicht gelesen. Stellen Sie einfach Ihre Standard-Shell mit chsh -s /bin/bash auf bash ein .


Linux
  1. Erste Schritte mit Zsh

  2. Der Zweck von .bashrc und wie funktioniert es?

  3. Verstehen Sie die Bedeutung von `$_`?

  4. Wie ändere ich die Cron-Shell (sh in Bash)?

  5. [ :Unerwarteter Operator in der Shell-Programmierung

Bash las Befehl

So lesen Sie eine Datei Zeile für Zeile in Bash

.bashrc vs. .bash_profile

Shell-Scripting Teil V:Funktionen in Bash

Shell-Scripting Teil I:Erste Schritte mit Bash-Scripting

So installieren Sie Linux Bash Shell unter Windows 10