Que signifie avoir un signe moins comme premier caractère d'une commande dans la sortie htop?

24

Dans htop, ou d'autres commandes qui affichent l'état du processus, tous les processus bash ont dans la colonne de commande

/bin/bash

mais un processus a dans la colonne de commande

-bash

Qu'est-ce que ça veut dire?

Ortomala Lokni
la source
5
Ce n'est pas spécifique à htop, c'est spécifique à bash. Cela signifie que c'est un shell de connexion.
jordanm
3
@jordanm Non spécifique à l'un bashou l'autre, les autres obus font de même.
lcd047

Réponses:

30

Un signe moins devant le nom de la commande est une convention que les programmes de connexion utilisent pour démarrer les shells de connexion. Un programme de connexion est un programme où vous tapez votre mot de passe en général et qui démarre une session pour vous, comme login, sudo -i, su -, sshd, etc. Une coquille connexion est le shell initial d'une session en mode texte.

Classiquement, lorsqu'un programme appelle un autre programme, il passe le nom du programme comme argument 0; Les arguments de ligne de commande sont numérotés à partir de 1. Par exemple, lorsque vous exécutez cp foo bar, cela exécute le fichier exécutable situé sur /bin/cp(sur les systèmes typiques) et passe cpcomme argument 0, foocomme argument 1 et barcomme argument 2. La convention normale consiste à utiliser le nom de base de l'exécutable comme argument 0. Lorsqu'un programme de connexion invoque un shell, il viole cette convention et place un tiret supplémentaire avant le nom du programme. Coquilles comprennent cette convention de remplacement et configuré les choses de manière appropriée pour un shell de connexion, typiquement la lecture d' un fichier d'initialisation tel que ~/.profile, ~/.login, ~/.bash_profile, etc. en fonction de la coquille.

Voir aussi Différence entre le shell de connexion et le shell sans connexion?

Gilles 'SO- arrête d'être méchant'
la source