linux没有sh命令

不及物动词 其他 64

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux操作系统中,确实没有”sh”命令。不过,可能是因为你对Linux命令的使用有些误解。

    在Linux中,常见的Shell(命令解释器)有许多种,比如Bash、Csh、Ksh等等。其中,Bash(Bourne Again SHell)是最常用的一个。它是对原来的Bourne Shell进行了扩展,所以Bash可以执行Bourne Shell所能执行的全部命令,而且还增加了许多新的特性。

    要使用Bash命令,只需要在终端中输入”bash”即可。例如,可以输入以下命令来查看Bash的版本信息:

    “`
    bash –version
    “`

    除了Bash,还有其他的Shell可供选择。比如,在某些Linux发行版中,默认使用的是Csh(C SHell)。如果你想使用Csh,可以在终端中输入”csh”来切换到Csh。

    总之,虽然Linux没有”sh”命令,但是有多种Shell可以选择使用。你可以根据自己的喜好和需求来使用适合自己的Shell。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    真正的Linux系统中是没有`sh`命令的。`sh`命令是Unix系统中的一种命令行解释器,它是Bourne Shell的缩写。在许多Linux发行版中,`sh`实际上是指向`bash`(Bourne Again Shell)的符号链接,因为`bash`是`sh`的升级版并向后兼容。

    在Linux系统中,常见的命令行解释器包括`bash`、`sh`、`csh`(C shell)、`zsh`(Z shell)等。但事实上,`bash`是最常用的命令行解释器,大部分Linux系统默认使用`bash`作为默认的命令行解释器。

    下面是一些关于Linux中没有`sh`命令的相关信息:

    1. `sh`是早期UNIX系统(如AT&T Unix)中使用的默认命令行解释器,直到今天仍然被广泛使用。然而,现代的Linux系统通常默认使用`bash`作为其主要的命令行解释器。

    2. 尽管没有直接的`sh`命令,但可以使用其他命令行解释器来模拟`sh`的行为。例如,可以使用`bash`命令行解释器并将其选项设置为兼容`sh`。可以使用以下命令来启动一个模拟的`sh`环境:

    “`
    bash –posix
    “`

    这将以POSIX兼容模式启动`bash`,使其行为与`sh`类似。

    3. 在某些Linux发行版中,`sh`命令可能实际上是指向另一个命令行解释器,例如`dash`(Debian Almquist Shell)。`dash`是一个精简且快速的shell,被设计用于替代较重的`bash`,以提高系统启动速度和脚本执行的性能。因此,在这些发行版中,使用`sh`命令实际上会调用`dash`。

    4. 虽然`bash`是`sh`的升级版,并且具有更多功能和扩展,但它仍然保持了对`sh`的向后兼容性。这意味着大多数编写为`sh`的脚本仍然可以在`bash`中运行,而不需要进行任何更改。

    5. 对于想要使用`sh`的用户,可以通过安装`sh`的替代版本来实现。例如,可以从软件库中安装`dash`,然后将`sh`符号链接指向`dash`,使其成为默认的`sh`解释器。

    总结来说,真正的Linux系统中没有`sh`命令,但可以通过使用其他命令行解释器来模拟`sh`的行为,或者使用`bash`作为默认的命令行解释器并兼容`sh`的脚本。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    标题回答:Linux中没有sh命令的原因及替代方案

    在Linux系统中,sh命令实际上是一个Shell解释器,可以用于执行Shell脚本文件。然而,在一些较新的Linux发行版中,sh命令不再是一个独立的可执行文件,而是一个符号链接,指向了其他Shell解释器。

    1. 原因:sh命令的变化

    在早期的Unix系统中,sh命令默认指向Bourne Shell(/bin/sh),这是最早的Unix Shell解释器之一。然而,随着时间的推移,出现了许多其他的Shell解释器,如Bash Shell(/bin/bash)、C Shell(/bin/csh)等。

    由于Bash Shell具有更丰富的功能和更好的兼容性,很多Linux发行版选择将sh命令链接到Bash Shell,以保持向后兼容性。因此,在这些Linux发行版中,sh命令实际上是Bash Shell的一个符号链接。

    2. 替代方案:使用其他Shell解释器

    尽管sh命令在一些Linux发行版中可能不存在,但仍然可以使用其他Shell解释器来代替。

    2.1 Bash Shell (/bin/bash)

    Bash Shell是Linux系统中最常用的Shell解释器之一,它继承了Bourne Shell的特性,并添加了许多新功能和改进。Bash Shell通常可以作为sh命令的替代解释器使用。

    要以sh兼容模式运行Bash Shell,请在命令行中使用以下命令:

    “`
    $ bash
    “`

    默认情况下,这将打开一个新的Bash Shell会话。

    2.2 Dash Shell (/bin/dash)

    Dash Shell是Debian Linux中默认的Shell解释器。它被设计为一个轻量级的、快速执行的Shell解释器,具有更少的功能,但比Bash Shell更高效。

    要使用Dash Shell代替sh命令,请在命令行中使用以下命令:

    “`
    $ dash
    “`

    默认情况下,这将打开一个新的Dash Shell会话。

    2.3 其他Shell解释器

    除了Bash Shell和Dash Shell之外,还有许多其他的Shell解释器可供选择,例如Zsh Shell、Fish Shell等。这些Shell解释器都具有不同的特性和用途,可以根据个人需要进行选择。

    3. 使用Shell脚本文件时的注意事项

    在编写和执行Shell脚本文件时,应注意以下几点:

    3.1 指定正确的Shell解释器

    在Shell脚本文件的第一行添加shebang(#!)行,指定正确的Shell解释器。例如,使用Bash Shell时,可以在脚本文件的第一行添加以下内容:

    “`
    #!/bin/bash
    “`

    这样,执行脚本文件时,系统将自动使用相应的解释器执行脚本。

    3.2 脚本文件的权限

    在执行Shell脚本文件之前,需要将文件的执行权限设置为可执行。可以使用chmod命令添加执行权限。例如,要将脚本文件设置为可执行,可以使用以下命令:

    “`
    $ chmod +x script.sh
    “`

    这将赋予脚本文件script.sh执行权限。

    总结:

    尽管Linux中没有独立的sh命令,但可以使用其他Shell解释器作为替代。最常用的替代解释器是Bash Shell和Dash Shell。在编写和执行Shell脚本文件时,应注意指定正确的解释器和设置文件的执行权限。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部