htop 输出中命令的第一个字符为减号是什么意思?

htop 输出中命令的第一个字符为减号是什么意思?

在 htop 或其他显示进程状态的命令中,所有 bash 进程都在命令栏中

/bin/bash

但有一个进程在命令栏中

-bash

这是什么意思?

答案1

命令名前的减号是登录程序用来启动登录 shell 的约定。登录程序是您通常键入密码并为您启动会话的程序,例如loginsudo -isu -、 sshd 等。登录 shell 是文本模式会话的初始 shell。

按照惯例,当一个程序调用另一个程序时,它会将程序的名称作为参数 0 传递;命令行参数从 1 开始编号。例如,当您运行 时cp foo bar,这将执行位于/bin/cp(在典型系统上)的可执行文件,并cp作为参数 0、foo参数 1 和bar参数 2 传递。正常约定是使用可执行文件的基本名称作为参数 0。当登录程序调用 shell 时,它违反了此约定,并在程序名称前添加了一个额外的连字符。 shell 理解这种备用约定,并为登录 shell 进行适当的设置,通常根据 shell读取初始化文件,例如~/.profile~/.login、等。~/.bash_profile

也可以看看登录 Shell 和非登录 Shell 之间的区别?

相关内容