为啥linux命令前加个感叹号

fiy 其他 35

回复

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

    Linux命令前加感叹号是一种特殊的用法,用来表示对命令的否定。具体来说,感叹号(!)是逻辑运算符中的逻辑非。在Linux中,命令行中使用感叹号后,会对紧随其后的命令进行逻辑非运算。

    那么为什么需要在命令前加上感叹号呢?

    1. 逻辑非运算:使用感叹号可以对命令的输出进行逻辑非运算。例如,如果我们想在某个命令的输出中找到不包含特定关键词的行,我们可以使用”!grep”来实现。

    2. 条件执行:在一些特定的场景中,我们希望根据前一个命令的执行结果来决定是否执行下一个命令。在这种情况下,我们可以使用”!命令”来表示只有在前一个命令执行失败时才继续执行后面的命令。

    3. 错误处理:有些时候,我们可能不希望某个命令执行成功,而是希望它失败。这时,我们可以在命令前加上”!”来强制让命令执行失败。这在脚本编写或者自动化测试中会经常用到。

    需要注意的是,感叹号在Linux中也有很多其他用途,比如表示历史命令、表示当前登录用户等。因此,在使用感叹号前,建议先了解其具体的用法和含义,以免造成误解和错误的结果。

    总结来说,Linux命令前加感叹号是为了表示对命令的否定,可以用于逻辑非运算、条件执行和错误处理等场景。但要注意在使用之前,先了解其具体的用法和含义,避免产生误解和错误的结果。

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

    在Linux中,命令行前加一个感叹号(!)是用来执行之前执行过的命令的。具体来说,感叹号是用来执行历史记录中特定命令的快捷方式。以下是关于为什么在Linux命令前加感叹号的几个原因:

    1. 执行最近的命令:在命令行中,如果你想再次执行最近执行过的命令,你可以使用感叹号来引用最近的命令。例如,使用“!!”来执行上一个命令。

    2. 执行特定的历史命令:除了执行最近执行过的命令之外,感叹号还可以用来引用特定的历史命令。通过在感叹号后面加上命令的编号,你可以执行指定编号的历史命令。例如,使用“!n”来执行编号为n的历史命令。

    3. 执行包含特定字符串的历史命令:如果你想执行包含特定字符串的历史命令,你可以在感叹号后面使用叹号和字符串的组合。这将执行最近的匹配该字符串的命令。例如,使用“!grep”来执行最近包含“grep”字符串的命令。

    4. 执行上一个命令的特定参数:在执行命令时,你可以使用感叹号来引用上一个命令的特定参数。通过在感叹号后面加上一个特定的参数,你可以执行上一个命令的带有特定参数的版本。例如,使用“!:n”来执行上一个命令的第n个参数。

    5. 执行之前错误的命令:如果你在之前的命令中输入了错误的命令或参数,你可以使用感叹号来重新执行错误的命令,而无需重新输入所有命令。通过使用感叹号和“^”运算符,你可以将感叹号替换回正确的命令,并继续执行。例如,使用“^错误^正确”来将之前的命令中的“错误”替换为“正确”。

    总之,在Linux中,感叹号是一个非常有用的快捷方式,可以帮助用户在命令行中更方便地执行历史命令,并进行一些常见的操作,如执行最近的命令、执行特定的历史命令、执行包含特定字符串的历史命令、执行上一个命令的特定参数以及重新执行之前错误的命令。

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

    在Linux中,命令前加上感叹号(!)有特定的含义,表示执行最近使用过的命令中与指定模式匹配的命令。这被称为“历史命令扩展”或“历史命令替换”。

    当我们在终端中输入一个以感叹号开头的命令时,Linux会自动查找并执行与该命令匹配的最近一条命令。感叹号后面可以跟上不同的模式,用于匹配相应的命令。

    下面是一些常用的感叹号的用法:

    1. !!:表示执行上一个命令。例如,如果你想再次执行前一个命令,只需输入”!!”。
    “`
    $ echo “Hello, World!”
    $ !!
    “`
    输出:
    “`
    Hello, World!
    Hello, World!
    “`

    2. !n:表示执行历史记录中的第n条命令。n是一个数字,表示历史记录中的命令在列表中的位置。
    “`
    $ history
    1 ls
    2 cd ..
    3 vim example.txt
    4 rm example.txt
    $ !3
    “`
    输出:
    “`
    vim example.txt
    “`

    3. !string:执行包含指定string的最近一条命令。string可以是任意字符串,只要它与命令中的某一部分匹配即可。
    “`
    $ history
    1 ls
    2 cd ..
    3 ls -l
    $ !ls
    “`
    输出:
    “`
    ls -l
    “`

    4. !?string?:执行包含指定string的最近一条命令。和上一个用法类似,但是string可以在命令中的任何位置。
    “`
    $ history
    1 mkdir test
    2 cd test
    3 ls -l
    $ !?ls?
    “`
    输出:
    “`
    ls -l
    “`

    需要注意的是,感叹号命令扩展只能执行最近使用过的命令。如果需要执行更早的命令,可以使用history命令查看完整的命令历史记录,并使用感叹号后面跟上相应的序号或模式来执行。此外,还可以使用Ctrl+R进行交互式搜索,并使用感叹号来执行匹配的命令。

    感叹号是Linux命令行的一个非常方便的特性,它可以帮助我们快速地执行之前的命令,提高工作效率。

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

400-800-1024

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

分享本页
返回顶部