如何查看自己当前位于哪种shell环境(bash 还是 csh)??

背景:

在 Linux 的世界中,有着许多 shell 程序。常见的有:

  • Bourne shell (sh)

  • Bourne Again shell (bash)

  • C shell (csh)

  • TC shell (tcsh)

  • Korn shell (ksh)

有时候我们经常会遇到这种情况:“欸?我昨天还用过这个命令,确实是这样用的啊,怎么就不对了呢?”
遇到这种情况,最好可以先确认一下当前您处于哪种shell环境。命令失败的很大可能是,当前的这中shell环境压根就不支持这个命令。你昨天很有可能是在另一个 shell 环境中运行的。 

解决方案一:echo $0

在 Linux 中,$0 表示当前运行的进程的名称。在多数情况下(注意,不是绝大多数情况下),当你在 shell 手动输入命令,临时起意,想看一下当前 shell 具体是哪个程序时,$0 是最简单的方法。我们可以将其打印出来: 

echo $0

注意:如果你的 shell 程序是 csh ,或者 shell 程序是 symlink,亦或是在脚本中需要知道当前的 shell 是什么。$0 都无法确保给你的答案是绝对正确的。

解决方案二:ps -p "$$"

 $$ 获取当前 shell 实例的 PID ,然后通过 ps 命令寻找该 PID 所对应的进程。结果中的 CMD 列,会列出当前 shell 程序的名称。 

ps -p "$$"
#   PID TTY          TIME CMD
# 18329 pts/0    00:00:00 bash

echo "$$"
# 18329

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
bashcsh和ksh是三种不同的Unix/Linux操作系统下的命令行解释器(shell)。它们有一些区别和特点,下面是它们之间的一些主要区别: 1. bash(Bourne Again SHell)是最常用的shell,也是许多Linux发行版的默认shell。它是Bourne shell的增强版本,提供了更多功能和特性。bash支持命令行编辑、命令历史、作业控制等特性。 2. csh(C SHell)是类似于C语言语法的shell,具有更多的C语言风格的语法和特性。csh提供了命令别名、历史命令扩展、作业控制等功能。但是它在脚本编程方面的功能相对较弱。 3. ksh(Korn SHell)是由AT&T Bell实验室的David Korn开发的shell,结合了cshbash的一些特性。ksh是一个功能强大的shell,可以在脚本编程方面提供很多功能,例如数组、算术运算符、命令扩展等。 下面是它们之间的一些具体区别: - 语法:bash和ksh使用类似于Bourne shell的语法,而csh使用类似于C语言的语法。 - 兼容性:bash和ksh在语法和命令上相对兼容,而csh的语法和命令与它们有一些不同。 - 特性:bash和ksh提供了更多的特性和功能,如命令行编辑、命令历史、作业控制等。csh在这些方面的功能相对较弱。 - 脚本编程:ksh在脚本编程方面提供了更多的功能和语法,比bashcsh更适合用于编写复杂的脚本。 根据您的需求和个人偏好,您可以选择适合您的操作系统和脚本编程任务的shell

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值