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.
htop
, das ist spezifisch fürbash
. Dies bedeutet, dass es sich um eine Anmeldeshell handelt.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, undcp
als Argument 0,foo
als Argument 1 undbar
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?
quelle