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)
ZzuimengZzuimeng
上一篇 2016-08-05
下一篇 2016-08-05

相关推荐

  • vim文本编辑器

    vi简介 vi:Visual Interface,是一种功能强大的文本编辑器,工作在字符模式下,它可执行输出、输出、查找、替换、块等众多文本操作,不需要图形界面,因此执行起来效率会非常高,主要用来编辑纯文本文件,常见的编码有,ASCII,Unicode等等 文本编辑器的种类:     行编辑器:逐行来对文本进行处理的工…

    Linux干货 2016-08-15
  • 【超全整理】《Linux云计算从入门到精通》系列实战笔记全放送

          为了方便Linux云计算爱好者的学习查看,马哥Linx云计算团队特别整理了《Linux云计算从入门到精通》年度重磅大放送,囊括了整个学习过程的学习精华,内容全部由马哥Linux云计算学员撰写,欢迎大家支持!!!       详情请看:  一、Linux运维基础实战入门 从Linux0基础入门开始,全面讲解作为新手如何学习Linux,以及学习方法和…

    2017-09-14
  • N21沉舟-第八周作业

    1、  请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 #网桥:链接层设备,基于MAC地址过滤。 #集线器:物理层设备,基本都属于半双工模式。集线器与网桥在现在的局域网中基本都不用了。 #二层交换机:工作在数据链路层,基本MAC转发数据,功能齐全的可支持VLAN等功能。常见的有100/1000M、16口/24口/48口。…

    Linux干货 2016-08-24
  • 马哥教育网络班第21期+第四周课程作业

    1. 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp -r /etc/skel /home/tuser1 chmod –R 700 /home/tuser1 2. 编辑/etc/group文件,添加组hadoop。 echo &q…

    Linux干货 2016-08-01
  • 行编辑器sed的应用

    sed sed:Stream EDitor,行编辑器 sed是一种流编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中, 称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后, 把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没 有改变,除非你使用重定向存储输出。 se…

    Linux干货 2016-08-10
  • 5.20 TOMCAT

    需要安装JDK JAVA Development Kit //JAVA 2 SE 的接口    TOMCAT 的安装: yum 安装 #yum install -y java-1.8.0-openjdk-devel 如下界面出现的话就是安装OK 注意:安装完成后,要配置JAVA_HOME环境变量,指向java的安装路径; OpenJDK: JAVA_HOME…

    2017-07-09