【linux命令讲解大全】197.Shell命令解析:cupsenable和enable的使用方法详解

2024-03-02 14:41:15 浏览数 (2)

cupsenable

启动指定的打印机

补充说明

cupsenable 命令用于启动指定的打印机。

语法
代码语言:javascript复制
cupsenable [选项] [目标]
选项
  • -E:当连接到服务器时强制使用加密。
  • -U:指定连接服务器时使用的用户名。
  • -u:指定打印任务所属的用户。
  • -h:指定连接的服务器名和端口号。
参数
  • 目标:指定目标打印机。

enable

启动或禁用 shell 内建命令

概要

代码语言:javascript复制
enable [-a] [-dnps] [-f filename] [name …]

主要用途

  • 禁用一到多个内建命令。
  • 启用一到多个内建命令。
  • 直接调用与禁用的内建命令同名且在 $PATH 路径下找到的外部命令。
  • 打印所有内建命令,无论是否禁用。
  • 打印处于启用状态的内建命令。
  • 打印处于禁用状态的内建命令。
  • 打印处于启用状态的 POSIX 标准内建命令。
  • 打印处于禁用状态的 POSIX 标准内建命令。
  • 打印 POSIX 标准内建命令,无论是否禁用。
  • 从动态库中加载内建命令。
  • 移除从动态库中加载的内建命令。
选项
  • -a:打印所有内建命令,无论是否禁用。
  • -d:移除从动态库中加载的内建命令。
  • -n:禁用内建命令或显示已禁用的内建命令。
  • -p:以可复用格式打印。
  • -s:只显示处于启动状态的 POSIX 标准内建命令。
  • -f:动态库中加载内建命令。
  • -ns:打印处于禁用状态的 POSIX 标准内建命令。
  • -as:打印 POSIX 标准内建命令,无论是否禁用。
参数
  • filename:动态库文件名。
  • name(可选):内建命令,可以为多个。
返回值

enable 返回成功,除非 name 不是内建命令或有错误发生。

例子

代码语言:javascript复制
# posix special builtin
# 假设没有任何内建命令被禁用
# 禁用两个 posix 标准内建命令
enable -n set source

# 打印处于禁用状态的 posix 标准内建命令
enable -ns

# 打印 POSIX 标准内建命令,无论是否禁用。
enable -as

# 打印处于启用状态的 POSIX 标准内建命令
enable -s

# 假设没有任何内建命令被禁用
# 禁用一到多个内建命令
enable -n echo pwd

# 打印所有内建命令,无论是否禁用。
enable -a

# 打印处于启用状态的内建命令
enable

# 打印处于禁用状态的内建命令
enable -n

# 启用一到多个内建命令
enable pwd

Q&A

Q: 请问 -f-d-p 的演示呢?

A: 说明一下,-f-d 限于个人能力没有找到合适的例子,如果您有更好的例子欢迎提 PR; 经过我验证 -p 选项是否使用好像没有区别,可以比较 enable -p | cat -Aenable | cat -A 有什么区别。(注:cat -A 用于显示不可见字符)

Q: 是否可以禁用 enable 自己?之后还能禁用或启用内建命令吗?

A: 可以;不能。

注意:

Linux Shell 命令执行时,Shell 总是先在自己的 Shell builtin 中查找该命令,如果找到则执行该命令;如果找不到该命令,则会从环境变量 $PATH 指定的路径中依次去查找待执行的命令。看起来好像没有办法编写用户自己的命令来替代 Shell builtin 命令。幸运的是,有了 enable 命令我们就能做到了。

关于同名命令调用的优先级的知识,请先参考 builtin 命令的提示部分,然后继续阅读下面部分;当内建命令 echo 没有禁用时,如果要调用外部命令 echo,只能这样写 /usr/bin/echo;当我们禁用了 echo 后,优先级顺序变成了这样:

函数 > 外部命令

如果执行命令的环境没有 echo 函数,那么调用的 echo 就是外部命令。

该命令是 Bash 内建命令,相关的帮助信息请查看 help 命令。

0 人点赞