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. ubuntu 查看端口被占用并处理

    当启动程序出现端口号被占用的情况,需要查看端口使用情况,使用netstat命令,下面是常用的几个查看端口情况的命令:查看所有的服务端口(ESTABLISHED netstat -a查看所有的服务端口, ...

  2. centos7 部署ssserver

    centos7 部署shadowsocks服务端 为什么要选centos7? 以后centos7 肯定是主流,在不重要的环境还是尽量使用新系统吧 centos7 的坑 默认可能会有firewall 或 ...

  3. ASP.NET实现从服务器下载文件2

    转:http://lanhy2000.blog.163.com/blog/static/436786082011105104110713/    假设在服务器的根目录下有个名为Download的文件夹 ...

  4. JVM调优实践-Tomcat调优

    调优几个重要指标 GC频率 提升每次GC的效率 准备环节 jmeter的配置 未压测前JVM配置 工程未调优前配置 -Xms400m -Xmx400m -XX:PermSize=64m -XX:Max ...

  5. 加入BOINC(伯克利开放式网络计算平台)

    转载:BOINC:为科学而计算 通过 BOINC 你可以将闲置的计算机时间贡献给 SETI@home, Climateprediction.net, Rosetta@home, World Commu ...

  6. Get URL parameters & values with jQuery

    原文: http://jquery-howto.blogspot.jp/2009/09/get-url-parameters-values-with-jquery.html In this post, ...

  7. 142 Linked List Cycle II(如果链表有环,找到入口结点Medium)

    题目意思:如果有环,返回入口结点 思路:先判断有没环,再计算环的结点数,然后p1指向头,p2往后移结点次数,p1.p2相遇为入口结点 ps:还是利用指针间距这个思路 /** * Definition ...

  8. ORA-00933 UNION 与 ORDER BY

    原文:http://blog.csdn.net/lwei_998/article/details/6093807 The UNION operator returns only distinct ro ...

  9. 如何搭建一个angularJS应用

    以写一个hello word为例,首先引入angular.js库文件   <!doctype html> <html ng-app> <head> <titl ...

  10. Thinkphp---练习:数据的增删改查

    利用ThinkPHP连接数据库的增删改查的例题:用到的数据库表名Info表,Nation表 数据显示页面:MainController.class.php中的方法(增删改查全包括--function ...