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

当前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时就是执行ls

anaconda-ks.cfg        icmp_echo_ignore_aly~  pub.key

dead.letter        icmp_echo_ignore_alz~  rpmbuild

icmp_echo_ignore_all~  install.log       RPM-GPG-KEY-useradd

icmp_echo_ignore_alw~  install.log.syslog     RPM-GPG-KEY-westos

icmp_echo_ignore_alx~  passwd

 

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

/bin/ls

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

-bash: hash: df: not found

 

[root@redhat ~]# hash -r  //清楚hash表,清楚的是全部的

[root@redhat ~]# hash -l

hash: hash table empty

 

[root@redhat ~]# hash -l

builtin hash -p /bin/cat cat

builtin hash -p /bin/ls ls

[root@redhat ~]# hash -d cat   //清楚其中的某一条

[root@redhat ~]# hash -l

builtin hash -p /bin/ls ls


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 个)

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

(0)
ZzuimengZzuimeng
上一篇 2016-08-05 16:15
下一篇 2016-08-05 16:15

相关推荐

  • 软件包管理工具—rpm命令总结

    描述:    RPM是RedHatPackageManager的缩写,是由RedHat公司开发的软件包安装和管理程序,同Windows平台上的Uninstaller比较类似。使用RPM,用户可以自行安装和管理Linux上的应用程序和系统工具。RPM可以让用户直接以binary方式安装软件包,并且可替用户查询是否已经安装了有关的库文件;在用…

    Linux干货 2016-08-29
  • MongoDB复制集及数据分片详解

    前言 MongoDB是一个由C++语言编写的基于分布式文件存储的数据库,是当前NoSQL数据库中比较热门的一种,旨在为Web应用提供可扩展的高性能数据存储解决方案。本文介绍MongoDB复制集及数据分片。 MongoDB 简介 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常松散,…

    Linux干货 2015-07-15
  • 文件压缩和软件包管理

    Linux压缩打包 压缩是一种通过特定的算法来减小计算机文件大小的机制。有利于文件在网络上的传输,节约带宽。在Linux中,压缩是以后缀名区分文件的。(Linux中很少见)压缩文件都会呈现醒目的红色。 注意!以下压缩软件只能压缩文件而不能压缩目录。不能对目录直接压缩! compress命令 compress这个命令是非常老旧的一款命令,现在基本已经不用了 而…

    Linux干货 2016-08-24
  • Linux软件包安装

    Linux系统和Windows系统在软件包安装上区别很大:     软件运行环境:         API: Application Programming Interface    POSIX: P…

    Linux干货 2016-08-21
  • shell脚本编程基础

    ★ 编程基础★ 脚本基本格式★ 变量★ 运算★ 条件测试★ 配置用户环境一.编程基础  程序:指令+数据  程序编程风格:      过程式:以指令为中心,数据服务于指令      对象式:以数据为中心,指令服务于数据  shell程序:提供了编程能力,解释执行&nbs…

    Linux干货 2017-03-28
  • Linux基础入门1

    Linux基础入门1 目录 计算机组成及其功能 简述Linux发行版 Liunx哲学思想 Linux命令格式 Linux系统获取命令帮助信息 Linux基础目录简述 1. 计算机组成及其功能 ENIARC:埃尼阿克,世界上第一台通用计算机,诞生于1946年美国宾夕法尼亚大学。 冯诺依曼体系-计算机五大基础部件:运算器、控制器、存储器、输入设备和输出设备。 1…

    2017-12-19