当前位置: 首页 > news >正文

linux enable命令学习

shell命令用来启动或关闭shell内建命令。

通过type命令查看可以知道,enable命令本身也是一个shell内建命令。
sh-# type enable
enable is a shell builtin

使用enable命令可以查看到当前系统中有哪些shell内建命令,
也可以确认enable是一个shell builtin命令。
sh-# enable
enable .
enable :
enable [
enable alias
enable bind
enable break
enable builtin
enable caller
enable cd
enable command
enable compgen
enable complete
enable continue
enable declare
enable dirs
enable echo
enable enable
enable eval
enable exec
enable exit
enable export
enable false
enable fc
enable getopts
enable hash
enable help
enable history
enable kill
enable let
enable local
enable logout
enable popd
enable printf
enable pushd
enable pwd
enable read
enable readonly
enable return
enable set
enable shift
enable shopt
enable source
enable test
enable times
enable trap
enable true
enable type
enable typeset
enable ulimit
enable umask
enable unalias
enable unset
enable wait
sh-#

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

我们以shell内建命令hostory命令为例进行说明。

1. 可以看到history是一个shell builtin命令,并且也可以正常执行history命令。
sh-# type history
history is a shell builtin
sh-# history
1 type enable
2 type ooxx
3 type ooxx
4 enable -all
5 enable -all
6 enable all
7 enable
8 enable
9 enable
10 pwd
11 enable -n pwd
12 pwd
13 type
14 type pwd
15 en
16 history

2. 使用enable命令来关闭history命令。
sh-# enable -n history
sh-#

3. 通过实验验证,history命令真的被关闭了。
所以,用户可以根据需求编写自己的history命令了。
sh-# type history
sh: type: history: not found
sh-# history
sh: history: command not found
sh-#
sh-# enable
enable .
enable :
enable [
enable alias
enable bind
enable break
enable builtin
enable caller
enable cd
enable command
enable compgen
enable complete
enable continue
enable declare
enable dirs
enable echo
enable enable
enable eval
enable exec
enable exit
enable export
enable false
enable fc
enable getopts
enable hash
enable help
enable kill
enable let
enable local
enable logout
enable popd
enable printf
enable pushd
enable read
enable readonly
enable return
enable set
enable shift
enable shopt
enable source
enable test
enable times
enable trap
enable true
enable type
enable typeset
enable ulimit
enable umask
enable unalias
enable unset
enable wait

4. 被关闭的命令,仍然可以使用enable命令将其启动。
sh-# enable history
sh-#

5. 可以看到,history命令被启动起来了。
sh-# type history
history is a shell builtin
sh-# enable
enable .
enable :
enable [
enable alias
enable bind
enable break
enable builtin
enable caller
enable cd
enable command
enable compgen
enable complete
enable continue
enable declare
enable dirs
enable echo
enable enable
enable eval
enable exec
enable exit
enable export
enable false
enable fc
enable getopts
enable hash
enable help
enable history
enable kill
enable let
enable local
enable logout
enable popd
enable printf
enable pushd
enable read
enable readonly
enable return
enable set
enable shift
enable shopt
enable source
enable test
enable times
enable trap
enable true
enable type
enable typeset
enable ulimit
enable umask
enable unalias
enable unset
enable wait

但是我们也发现了一个随之而来的问题,一旦用enable命令关闭了enable命令,
那如何才能将enable命令启动起来呢?
sh-# type enable
enable is a shell builtin
sh-# enable -n enable
sh-# enable
sh: enable: command not found
sh-# enable enable
sh: enable: command not found

相关文章:

  • Linux操作系统以及各大发行版介绍——Linux operating system and major distribution is introduced...
  • 一初探js特效魅力之选项卡05
  • 一初探js特效魅力之数组06
  • 大根堆排序
  • 初探js特效魅力之定时器的使用one
  • 初探js特效魅力之延时提示框07
  • 网络编程之TCP异步群聊:服务器端代码
  • 网络编程之TCP异步群聊:客户端代码
  • 关于多线程中回调函数的一个小例子
  • 关于多线程中代理的一个小例子
  • 关于多线程中异步代理的一个小例子
  • 关于多线程中嵌套锁的一个小例子
  • 2D绘图:Winform绘制柱形图
  • Directx 3D编程实例:随机绘制的立体图案旋转
  • Directx 3D编程实例:绘制3DMesh
  • 《Java编程思想》读书笔记-对象导论
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Git的一些常用操作
  • JAVA之继承和多态
  • mysql外键的使用
  • opencv python Meanshift 和 Camshift
  • scala基础语法(二)
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • spring + angular 实现导出excel
  • Spring框架之我见(三)——IOC、AOP
  • 将 Measurements 和 Units 应用到物理学
  • 你不可错过的前端面试题(一)
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 时间复杂度与空间复杂度分析
  • 双管齐下,VMware的容器新战略
  • 小程序button引导用户授权
  • #NOIP 2014# day.1 T2 联合权值
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • #在 README.md 中生成项目目录结构
  • (0)Nginx 功能特性
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)ssm高校实验室 毕业设计 800008
  • (转)Google的Objective-C编码规范
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET 4.0中的泛型协变和反变
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .NET中使用Redis (二)
  • @AliasFor注解
  • @Query中countQuery的介绍
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [20150629]简单的加密连接.txt
  • [Android] 修改设备访问权限
  • [AR Foundation] 人脸检测的流程