Was bedeutet ein Minuszeichen als erstes Zeichen eines Befehls in der htop-Ausgabe?

24

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?

Ortomala Lokni
quelle
5
Das ist nicht spezifisch für htop, das ist spezifisch für bash. Dies bedeutet, dass es sich um eine Anmeldeshell handelt.
Jordanien
3
@jordanm Nicht spezifisch für bashbeide, andere Shells tun dasselbe.
lcd047

Antworten:

30

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 cpals Argument 0, fooals Argument 1 und barals 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_profileetc. abhängig von der Schale.

Siehe auch Unterschied zwischen Anmeldeshell und Nicht-Anmeldeshell?

Gilles 'SO - hör auf böse zu sein'
quelle