In htop oder anderen Befehlen, die den Prozessstatus anzeigen, befinden sich alle Bash-Prozesse in der Befehlsspalte
/bin/bash
aber ein prozess hat in der befehlsspalte
-bash
Was heißt das?
bash
beide, andere Shells tun dasselbe.
In htop oder anderen Befehlen, die den Prozessstatus anzeigen, befinden sich alle Bash-Prozesse in der Befehlsspalte
/bin/bash
aber ein prozess hat in der befehlsspalte
-bash
Was heißt das?
bash
beide, andere Shells tun dasselbe.
Antworten:
Ein Minuszeichen vor dem Befehlsnamen ist eine Konvention, mit der Anmeldeprogramme Anmeldeshells starten. Ein Login - Programm ist ein Programm , in dem Sie in der Regel Ihr Kennwort eingeben und das beginnt eine Sitzung für Sie, wie login
, sudo -i
, su -
, sshd, etc. Ein Login - Shell ist die erste Shell einer Textmodus - Sitzung ist.
Wenn ein Programm ein anderes Programm aufruft, übergibt es üblicherweise den Namen des Programms als Argument 0; Befehlszeilenargumente werden beginnend mit 1 nummeriert. Wenn Sie beispielsweise ausführen cp foo bar
, wird die ausführbare Datei ausgeführt, die sich auf /bin/cp
(typischen Systemen) befindet, und cp
als Argument 0, foo
als Argument 1 und bar
als Argument 2 übergeben Basisname der ausführbaren Datei als Argument 0. Wenn ein Anmeldeprogramm eine Shell aufruft, verstößt es gegen diese Konvention und setzt einen zusätzlichen Bindestrich vor den Programmnamen. Shells verstehen diese alternative Konvention und Set Dinge angemessen für eine Login - Shell auf, in der Regel eine Initialisierungsdatei wie Lesen ~/.profile
, ~/.login
, ~/.bash_profile
etc. abhängig von der Schale.
Siehe auch Unterschied zwischen Anmeldeshell und Nicht-Anmeldeshell?
htop
, das ist spezifisch fürbash
. Dies bedeutet, dass es sich um eine Anmeldeshell handelt.