Linux命令帮助及history命令的使用

1.Linux命令帮助的获取详解

在Linux中获取命令帮助时,内部命令和外部命令的获取方式是有区别的:

即 (1)内部命令:#help COMMAND

            #man bash

    (2)外部命令:<1> # COMMAND –help

                                      # COMMAND -h

                        <2>  使用手册(manual)

                                     # man COMMAND

                         <3> 信息页

                            # info COMMAND

                        <4>  程序自身的帮助文档等

                                 README

                                INSTALL

                               ChangeLog


内部命令本身一开机就会随bash加载到内存中而外部命令只会运行后才会加载到内存中可以用hash命令看到,当前shell为bash如果想要查看bash帮助信息,可以通过man bash 来查看,同时我们知道bash提供了许多内部命令如cd ,l等,如果用man bash 来查看帮助信息实际看到的为bash的帮助信息,因此内部命令不通过man来查看。

[root@localhost ~]# echo $PATH

/usr/lib64/qt3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

 hash表的作用:大大提高命令的调用速率。

 hash的参数:

[root@redhat ~]# hash  //输入hash或hash -l 可以查看hash表的内容,我刚开机所以为空

hash: hash table empty

[root@redhat ~]# hash -l

hash: hash table empty

 当我执行过2条命令后再看:

[root@redhat ~]# hash  //hash表会记录下执行该命令的次数,以及命令的绝对路径

hits command

   1 /bin/cat

   1 /bin/ls

[root@redhat ~]# hash -l  //加参数-l既可以看到hash表命令的路径,也可以看到它的名字,说不定会有别名.

builtin hash -p /bin/cat cat

builtin hash -p /bin/ls ls

 [root@redhat ~]# hash -p /bin/ls bb  //添加hash表,可以看到我把ls命令重新写了一遍,改名为bb

[root@redhat ~]# bb    //当我执行bb时就是执行

[root@redhat ~]# hash -t ls  //-t参数可以查看hash表中命令的路径,要是hash表中没有怎么办?

/bin/ls

[root@redhat ~]# hash -t df  //当我没使用过df,执行hash,就会提示找不到该命令

-bash: hash: df: not found

2.history命令

〈一〉history是管理命令历史,每次执行的命令都会纺织在内存缓存中,直到退出当前终端后保存在历史文件中。

root@linux ~]# history [n][root@linux ~]# history [-c]

[root@linux ~]# history [-raw] histfiles

参数:
n  
 :数字,意思是要列出最近的 n 笔命令列表的意思!
-c 
 :将目前的 shell 中的所有 history 内容全部消除
-a 
 :将目前新增的 history 指令新增入 histfiles 中,若没有加 histfiles ,
     
则预设写入 ~/.bash_history
-r 
 :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
-w 
 :将目前的 history 记忆内容写入 histfiles 中!
范例:
范例一:列出目前记忆体内的所有 history 记忆
[root@linux ~]# history
#
 前面省略
 1017  man bash
 1018  ll
 1019  history
 1020  history
#
 列出的资讯当中,共分两栏,第一栏为该指令在这个 shell 当中的代码,
#
 另一个则是指令本身的内容,至于会出几笔指令记录,则与 HISTSIZE 有关!

范例二:列出目前最近的 3 笔资料
[root@linux ~]# history 3
 1019  history
 1020  history
 1021  history 3

范例三:立刻将目前的资料写入 histfile 当中
[root@linux ~]# history -w
#
 在预设的情况下,会将历史纪录写入 ~/.bash_history 当中!
[root@linux ~]# echo $HISTSIZE
1000

在正常的情况下,当我们以 bash 登入 Linux 主机之后,系统会主动的由家目录的 ~/.bash_history 读取以前曾经下过的指令,那么 ~/.bash_history 会记录几笔资料呢?这就与你 bash 的 HISTSIZE 这个变数设定值有关了!在预设的 FC4 底下,是会记录 1000 笔资料的! 那么假设我这次登入主机后,共下达过 100 次指令,等我登出时, 系统就会将 101~1100 这总共 1000 笔历史命令更新到 ~/.bash_history 当中。 也就是说,历史命令在我登出时,会将最近的 HISTSIZE 笔记录到我的纪录档当中当然,也可以用 history -w 强制立刻写入的!那为何用更新两个字呢? 因为 ~/.bash_history 记录的笔数永远都是 HISTSIZE 那么多,旧的讯息会被主动的拿掉!仅保留最新的

〈二〉简单常用的调用历史中的命令。

[root@linux ~]# !number
[root@linux ~]# !command
[root@linux ~]# !!
参数:
number  :执行第几笔指令的意思;
command
 :由最近的指令向前搜寻指令串开头为 command’的那个指令,并执行;
!!     
:就是执行上一个指令(相当于按按键后,按 Enter)
范例:
[root@linux ~]# history
   66  manrm
   67 alias
   68  manhistory
   69 history
[root@linux ~]# !66  <==
执行第66 笔指令
[root@linux ~]# !!  <==
执行上一个指令,本例中亦即 !66
[root@linux ~]# !al <==
执行最近以 al 为开头的指令(上头列出的第 67 个)

转载请注明:linux运维部落 » Linux命令帮助及history命令的使用

原创文章,作者:Zzuimeng,如若转载,请注明出处:http://www.178linux.com/32661

(0)
上一篇 2016-08-05 10:18
下一篇 2016-08-05 16:09

相关推荐

  • 学习宣言

    已经虚度了第一个关键的10年,不能再失去下一个10年,3年内年薪20w,5年内年薪30w。

    Linux干货 2016-12-26
  • M20 – 1- 第二周(2):硬链接与软链接的区别

    在讲硬链接与软链接的区别之前,我们首先了解inode,了解inode让我们更容易理解何为硬链接和软链接。 inode概念        何为inode,inode就是索引节点,而inode表中存放着文件的元数据,何为元数据,元数据就是文件名称、大小、时间戳、所有者、权限、inode等信息,而文件中的内容就是文件的数据,…

    Linux干货 2016-08-02
  • centos系统启动流程详解

    centos系统启动流程详解 CentOS启动流程: POST 加电自检 主板上有一个ROM芯片,有只读程序,CPU被设计为一旦通电就会自动去找ROM芯片上的程序并运行,即检查各种硬件设备是否存在。 BootSequence 引导过程 加电自检后按BIOS中设定的次序查找各引导设备,第一个有引导程序的设备即是本次启动用到的设备 MBR(BootLoader)…

    Linux干货 2017-09-04
  • CentOS 系统启动流程

    CentOS 系统启动流程 一、Linux系统的组成部分:内核+根文件系统 1.内核: 进程管理:进程之间的通信为:IPC(Inter Process Communication)机制,有消息队列、semerphor、shm、socket(跨主机之间的通信) 内存管理; 网络管理; 文件系统; 驱动程序; 安全功能; 2.运行中的系统环境可分为两层:内核空间…

    Linux干货 2016-09-13
  • 15 权限管理及作业

    15 权限管理及作业(作业单独一篇) 一、杂项知识整理 1、访问控制列表:ACL:Access Control List,实现灵活的权限管理。     除了文件的所有者,所属组和其它人,可以对更多的用户设置权限。     centos7.0之后默认创建的ext4文件系统有ACL功…

    Linux干货 2016-08-04