zoukankan      html  css  js  c++  java
  • 11.到底什么是命令?

    命令可以是下面四种形式之一:

    1. 是一个可执行程序,就像我们所看到的位于目录/usr/bin 中的文件一样。 属于这一类的程序,可以编译成二进制文件,诸如用 C 和 C++语言写成的程序, 也可以是由脚本语言写成的程序,比如说 shell,perl,python,ruby,等等。

    2. 是一个内建于 shell 自身的命令。bash 支持若干命令,内部叫做 shell 内部命令 (builtins)。例如,cd 命令,就是一个 shell 内部命令。

    3. 是一个 shell 函数。这些是小规模的 shell 脚本,它们混合到环境变量中。 在后续的章节里,我们将讨论配置环境变量以及书写 shell 函数。但是现在, 仅仅意识到它们的存在就可以了。

    4. 是一个命令别名。我们可以定义自己的命令,建立在其它命令之上。

    识别命令

    这经常很有用,能确切地知道正在使用四类命令中的哪一类。Linux 提供了一对方法来 弄明白命令类型。

    type - 显示命令的类型

    type 命令是 shell 内部命令,它会显示命令的类别,给出一个特定的命令名(做为参数)。 它像这样工作:

    type command
    

    “command”是你要检测的命令名。这里有些例子:

    [me@linuxbox ~]$ type type
    type is a shell builtins
    [me@linuxbox ~]$ type ls
    ls is aliased to `ls --color=tty`
    [me@linuxbox ~]$ type cp
    cp is /bin/cp
    

    我们看到这三个不同命令的检测结果。注意,ls 命令(在 Fedora 系统中)的检查结果,ls 命令实际上 是 ls 命令加上选项”--color=tty”的别名。现在我们知道为什么 ls 的输出结果是有颜色的!

    which - 显示一个可执行程序的位置

    有时候在一个操作系统中,不只安装了可执行程序的一个版本。然而在桌面系统中,这并不普遍, 但在大型服务器中,却很平常。为了确定所给定的执行程序的准确位置,使用 which 命令:

    [me@linuxbox ~]$ which ls
    /bin/ls
    

    这个命令只对可执行程序有效,不包括内部命令和命令别名,别名是真正的可执行程序的替代物。 当我们试着使用 shell 内部命令时,例如,cd 命令,我们或者得不到回应,或者是个错误信息:

    [me@linuxbox ~]$ which cd
    /usr/bin/which: no cd in
    (/opt/jre1.6.0_03/bin:/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/opt/jre1
    .6.0_03/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/home/me/bin)
    

    说“命令没有找到”,真是很奇特。

  • 相关阅读:
    嵌入式设备之web服务器
    动环监控的设备架构设计
    墓碑机制
    淘宝APP消息推送模型
    Service Mesh架构的持续演进 单体模块化 SOA 微服务 Service Mesh
    网关架构演进之路
    理解了云原生,才能正确迎接云时代的到来 | 技术前沿 百度智能云 2019-09-10
    策略模式 VS 状态模式
    权限管理机制支持多种访问控制模型。
    二维码生成服务架构的演进与思考
  • 原文地址:https://www.cnblogs.com/hihtml5/p/9273780.html
Copyright © 2011-2022 走看看