很多shell命令后面的单横杠和双横杠,原来这个意思

本文介绍了Shell进程的概念及其如何执行其他进程,并深入探讨了命令行选项的作用与使用方法,包括短命令行选项和长命令行选项的区别及帮助信息的获取方式。此外,还解析了login shell与interactive shell之间的差异,以及如何通过su命令的不同选项实现特定的shell环境切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-----------------------------------------------------------------------------------------------------------------------
shell进程是执行其它进程的进程,但在执行一个命令时,shell进程会指示内核把指定的程序作为另一个进程分开执行,并将输出写到终端。
 
通过命令选项,我们可以修改命令执行的行为。
命令行选项可以分为 短命令行 选项和 长命令行选项两种。短命令行选项是由 字母组成,长命令行选项是由 单词组成。
短命令行选项在选项前使用 单横杠“-”,长命令行选项前使用 双横杠“--”。如果选项后面需要输入选项的参数,短命令行选项和参数之间使用 空格分隔,而长命令行选项使用 等号“=”连接选项和参数。
通过在命令后面添加选项“--help”、“-h”或“-?”,我们可以获得一个命令的帮助信息。
 
--------------------------------------------------------------------------------------------------------

挺凑巧的,最近老有同事问起这些问题,所以总结一下。

1. 首先用help理解su, sudo su, sudo

2. 其次理解"login shell" and "interactive shell". 

"When Bash starts executes the commands in a variety of different scripts. 
(1) When started as an interactive login shell: Bash reads and executes the /etc/profile (if it exists). After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile in that order, and reads and executes the first one (that exists and is readable).  When a login shell exits: Bash reads and executes ~/.bash_logout (if it exists).
(2) When started as an interactive shell (but not a login shell): Bash reads and executes ~/.bashrc (if it exists)."
显然login shell和interactive shell在环境的设置上是存在差别的,详细可以参考: http://groups.google.com/group/linux.debian.user/browse_thread/thread/2b71ecfc45789958/7bff24e3bae74b36?lnk=raot

3.  然后su命令的横杠就非常容易理解了,参数横杠-, 是为了让切换获取的shell是一个login shell

 -, -l, --login               make the shell a login shell

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值