Что значит иметь знак минус в качестве первого символа команды в выводе htop?

24

В htop или других командах, отображающих состояние процесса, все процессы bash находятся в столбце команд.

/bin/bash

но один процесс имеет в столбце команды

-bash

Что это означает?

Ортомала Локни
источник
5
Это не специфично для htop, это специфично для bash. Это означает, что это оболочка входа в систему.
Иордания
3
@jordanm Не относится ни к bashодному, другие оболочки делают то же самое.
lcd047

Ответы:

30

Знак минус перед именем команды является соглашением, используемым программами входа в систему для запуска оболочек входа в систему. Программа Войти программу , где вы обычно введите пароль и начинает сеанс для вас, таких , как login, sudo -i, su -, SSHD, и т.д. Логин оболочка начальной оболочки в текстовом режиме сессии.

Традиционно, когда программа вызывает другую программу, она передает имя программы в качестве аргумента 0; аргументы командной строки нумеруются, начиная с 1. Например, при запуске cp foo barвыполняется исполняемый файл, расположенный в /bin/cp(на типичных системах), и передается cpкак аргумент 0, fooкак аргумент 1 и barкак аргумент 2. Обычное соглашение заключается в использовании Базовое имя исполняемого файла в качестве аргумента 0. Когда программа входа в систему вызывает оболочку, она нарушает это соглашение и ставит дополнительный дефис перед именем программы. Корпуса понимают это альтернативные конвенции и установить вещи должным образом для входа в оболочку, обычно читает файл инициализации , такие как ~/.profile, ~/.login, ~/.bash_profileи т.д. в зависимости от оболочки.

См. Также Разница между Оболочкой входа в систему и Оболочкой без регистрации?

Жиль "ТАК - перестань быть злым"
источник