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 enable命令学习的更多相关文章

  1. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  2. Linux常用命令学习4---(挂载命令mount umount、用户登陆查看和用户交互命令 w who last lastlog)

    紧接着上一篇Linux的命令行的学习:Linux学习3---(文件的压缩和解压缩命令zip unzip tar.关机和重启命令shutdown reboot……) 1.挂载命令     简介      ...

  3. 【Linux】命令学习笔记和总结

    莫名的想学习一下Linux了,因为对这方面的知识储备为0.对于命令行界面始终是零接触零了解,对一个程序员来说这几乎是致命的,所以简单了解一下. 一.教程参考 参考菜鸟教程即可: Linux 教程 | ...

  4. Linux常用命令学习

    1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...

  5. linux sort命令学习

    linux sort命令以行为单位对文本文件进行排序. 接下来我们会以/tmp/sort_test.txt这个文本文件为例对sort命令的用法进行说明. sh-# cat /tmp/sort_test ...

  6. linux source命令学习

    1. linux source命令的作用? 我们可能经常需要修改到诸如/etc/profile,~/.bash_profile等这样的配置文件, 一方面我们希望所作的修改在当前的环境中立即生效: 另一 ...

  7. linux systemctl 命令学习

    转载:http://www.cnblogs.com/sparkdev/p/8472711.html systemctl 命令有两大类功能: 控制 systemd 系统 管理系统上运行的服务 在介绍这些 ...

  8. linux (ubuntu) 命令学习笔记

    1, md5sum 输出字符串的MD5值 echo -n 123456 | md5sum //-n表示不打印回车符 2, ubuntu设置dock任务栏鼠标点击效果 16.04: 调整位置:gsett ...

  9. linux基础命令学习(六)文件的特殊属性

    Linux chattr命令用于改变文件属性. 这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式: a:让文件或目录仅供附加用途.    b:不更新文件或目录的最后存取 ...

随机推荐

  1. Linux磁盘管理:LVM逻辑卷的创建及使用

    一.创建LVM逻辑卷 事先添加了三块虚拟物理磁盘/dev/sdb 1G, /dev/sdc 2G, /dev/sdd 3G 使用fdisk –l命令查看: [root@localhost ~]# fd ...

  2. codevs3008加工生产调度(Johnson算法)

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us ...

  3. Canvas画椭圆的方法

    虽然标题是画椭圆,但是我们先来说说Canvas中的圆 相信大家对于Canvas画圆都不陌生   oGC.arc(400, 300, 100, 0, 2*Math.PI, false); 如上所示,直接 ...

  4. javascript原型prototype的一个你不一定知道的理解

    原型和原型链的故事 相关文章: 为什么原型继承很重要 先来看看一段小代码用以引入要讲的小故事. function Foo() {}; var f1 = new Foo(); Foo.prototype ...

  5. ajax请求aspx页面

    首先,这么用是不好的.最好用ashx,但也难免遇到这种需求.开发过这么一个系统,每天访问量最多100,web服务器压力很小,完全大马拉小车,主要压力都在数据库服务器上,要做大量的统计.所以页面直接全上 ...

  6. Android-adb相关

    最近做android开发遇到无法通过usb链接设备的情况,通过wifi连接设备调试也颇为方便 1.android 要root , 下载终端app  比如 BetterTerminal 2.通过以下命令 ...

  7. java mail 使用 gmail smtp 发送邮件

    smtp 服务器:smtp.gmail.com 使用ssl的端口:465 用户名:username@gmail.com 密码:password** 基本配置没有问题,关键在于Google对安全性要求非 ...

  8. Swift - 18 - 数组的基础操作

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  9. Centos7下Intel与AMD双显卡驱动的安装

      前2天,在Nvidia单显卡上成功安装上了NVIdia的驱动,一时兴起,拿出另外的一个HP笔记本也准备装上驱动,悲催的是HP的显卡是AMD的,更加.更加悲催的是还是Intel+AMD的双显卡.网络 ...

  10. 关于jQuery表单校验的应用

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...