hcwzwx 发表于 2018-5-20 08:08:41

Linux命令历史及帮助

     
本人小白,如若有错请各位大牛指点,虚心讨教学习
  一、命令历史
              shell进程会保存此前用户提交执行过的命令

      1、history命令用法:
                  1)、history[-c] [-d offset(偏移量)]
                          -c:清空内存中的历史记录
                        -doffset: 删除指定的第多少行到偏移的多少行   
                                    

                      #history         //不加参数,显示当前内存列表中的记录

                        # history -c    //清空内存列表中的历史记录

                        # history -d 166 10   //删除内存列表中的第166行及下面10行

                             
                  2)、history-anrw    
                              //anrw:
                                a:添加内存列表(history)中的命令到命令历史文件                                                                           (~/.bash_history)中。
                                n:读取没有从历史文件中读取的所有历史记录到内存列表中
                                r:读取历史文件并将内容附加到历史内存记录列表中
                                w:将当前内存中历史记录写入历史文件中并将其附加到历史记录列                                                         表中。
                             #history -a \ -n \ -r \-w    //对照上面的含义。

  

  

      2、历史调用
           1)、调用执行历史命令      
                    !!                  #!!      //调用上一个命令
                    !#         #!100   //调用第一百行历史命令
                    !-n          #!-2       //调用倒数第二条命令
                       !string            #!sos      //搜索命令历史中以sos开头的命令
               ctrl+r (reverse-i-search): //直接在命令行输入Ctrl+r,再输入输入要查找的字符,会在
                                                               历史记录中查询你输入的字符串对应的命令
  
           2)、调用历史记录中的命令参数
                          !$ /alt+./esc+.   
                                    #!$          //调用前一个命令的最后一个参数,后两者直接分别按键盘。
                    !^   #ls!^         //调用上一个命令的第一个参数
                    !$   #ls !$             //调用上一个命令的最后一个参数
                    !*   #ls!*            //调用上一个命令的所有参数
                    !:n   #ls !:1      //调用上一个命令的指定第几个参数
  

  

                          !n:^       #ls!128:^      //调用第N条命令的第一个参数

                          !n:$   #ls!128:$      //调用第N条命令的最后一个参数
                       !n:*      #ls!128:*       //调用第N条命令的所有参数
                          !m:n      #ls!128:3      //调用第N条命令的第N个参数
  

           3)、控制命令历史的记录方式(常用变量)
              
                 变量配置文件:etc/profile 或~/.bash_profile
           
               HISTSIZE:定义历史记录条目数:
                  #echo $HISTSIZE         //输出变量内的值 (历史记录最大条目)

                  #HISTSIZE="1000"       //从定义历史记录最大条目,只在当前生效,重启后失效。
                  #echo "HISTSIZE='1000'" >> /etc/profile
                    //直接追加“HISTSIZE='1000'”到配置文件中,重读配置文件生效,永久生效。
           
              HISTFILE:定义历史文件路径

                  # echo $HISTFILE       //显示history的个人配置文件绝对路径地址
                  #HISTFILE=“PATH/TO/SOMEFILE” //更改配置文件到指定位置

              

              HISTFILESIZE:定义历史记录配置文件的存放最大条目

                  #echo $HISTFILESIZE   //显示history配置文件的最大记录条数

                  #HISTFILESIZE="1000"   //自定义配置文件最大记录条数

                  #echo "HISTFILESIZE='1000'" >> /etc/profile
                       //直接追加“HISTFILESIZE='1000'”到配置文件中,重读配置文件生效,永久生效。
  

  

              HISTTIMEFORMAT:添加历史记录中的命令使用时间
                  #HISTTIMEFORMAT=‘%F %T’ 直接定义变量值,只在当前生效,重启后失效。
                  #echo “HISTTIMEFORMAT=‘%F %T’” >> /etc/profile
                       //直接追加“HISTTIMEFORMAT=‘%F %T’”到配置文件中,重读配置文件生效,                        历史记录列表中个每个命令就有具体执行时间,永久生效。
  

              HISTIGNORE:忽略命令不存放在内存列表中,若要隐藏命令后面的参数直接在命令后加*
                  #echo $HISTIGNORE         //输出变量内的值
                #HISTIGNORE="passwd:ls*"    //定义之后输入执行变量内的命令将不会记录在命令历                                                                         史记录中。只是单独执行时不记录,若加参数或选项依                                                                     然会记录在内存中,若想后面的参数也不显示可在命令                                                                     后面加 * 号。
                   // 也可直接追加到配置文件中用法同上。
              
  

              HISTCONTROL隐藏命令,不记录或删除重复命令变量值如下可用,直接定义即可。
                 =ignoredups: 忽略连续重复命令到内存中
                 =ignorespace:忽略空格开头的命令
                 =ignoreboth:(ignoredups+ignorespace)
                 =erasedups:删除重复命令
  

  

  二、使用帮助
              

      查看帮助:获取帮助的能力决定了技术的能力
  

      1.whatis:查看命令的各个说明章节,依赖于专有数据库

  

              (centos 6 更新数据库为makewhatiscentos 7 更新whatis数据库为mandb)
              # whatisls   查看ls命令的章节
  

              man -f等价于whatis   查看命令的各个章节
  

      2.whereis :查看命令的完整路径

              #whereisls查看ls命令的完整路径

  

      3.type:查看命令是内置命令还是外部命令
              #type ls    查看ls命令是内置还是外部命令
  

      4.help :显示用法总结和参数列表(help为内置命令)
               -d:简单描述命令(只针对内置命令)
               -m:man格式的方式来显示   (只针对内置命令)
               -s:显示命令的大概的用法语法格式   (只针对内置命令)
  
                     其中:命令使用格式中符号含义
    []:可选
      <>:必选
...:多选
a|b:二选一


        命令用help查看帮助方式,分为内置和外部命令:
        内置命令:
              help COMMAND 此方式只针对内部命令
                     #helpcd 查看cd的帮助说明
              
          # man bash 能查看内部所有命令的帮助
         部分内部命令: type pwd cd help hash echo
        

              外部命令:

                  COMMAND--help此方式针对大多数命令,可简写为COMMAND--h

                    touch --help查看touch的帮助说明

  

  

        5.使用手册(manual)查询命令帮助,简写:man
              man命令的配置文件:Centos 6: /etc/man.config
                                                  Centos 7:/etc/man_db.conf
     man COMMAND
  可使用whatis或man -f查看命令的man章节,各章节号代表含义如下:
                    1:用户命令
                    2.系统调用
                    3.c库调用
                    4.设备文件及特殊文件
                    5.配置文件格式
                    6.游戏
                    7.杂项
                    8.管理类的命令
                    9.linux内核API
  

              #whatis ls / man -f ls 查看ls命令的所有章节
              #man 5 ls   // 查看第五章的ls命令,5指定章节
  

  /keyword向下搜索字段,不区分字符大小写
                     在查看命令详细是可直接输入' / ' 加要查询的字段,即可查询man里信息与之匹配的字段
                  /user在光标当前位置上向下搜索user字段
                  操作 : n同向    上一个
                     N反向   下一个


  ?keywork   向上搜索字段 ,不区分字符大小写
                     在查看命令详细是可直接输入' ? ' 加要查询的字段,即可查询man里信息与之匹配的字段
                ?user在光标当前位置上向上搜索user字段
                 操作 :n同向上一个
                                 N反向   下一个
           man命令的操作方法:使用less命令实现
                  Space, ^V, ^f, ^F: 向文件尾翻一屏
                  b, ^B: 向文件首部翻一屏
                  d, ^D: 向文件尾部翻半屏
                  u, ^U: 向文件首部翻半屏
                  ENTER, ^N, e, ^E or j or ^J: 向文件尾部翻一行
                  y or ^Y or ^P or k or ^K:向文件首部翻一行
                  q: 退出
                  #:跳转至第#行
                  1G: 回到文件首部
                  G:翻至文件尾部
     
  

  

  

      (3)信息页
  info COMMAND
                  # infols   查看ls命令的信息页      
              info内部操作:

                    方向键:控制上下左右移动

                       Pgup、Pgdn:控制上下移懂

                       tab键:移动到下一个链接

                             在info界面内按tab键会自动跳转到链接上,连续按tab键在链接中转换。

                       enter:进入选定的连接(光标必须在连接行内)

                       n/p/u/l:进入上、前、上一层、最后一个链接
                       s:文本搜索
                              在info界面内按s然后输入要查询的字段,

                       q:退出info

  

        

三、bash基础特性之快捷键:
             ctrl+a 回到行首
             ctrl+e 回到行尾
             ctrl+u 删除光标之前的内容
             ctrl+k 删除光标之后的内容
            

             esc -b 左移一个单词
               esc -f 右移动一个单词
  

  

  

  

另参照红帽知识库和官方在线文档
http://kbase.redhat.com
http://www.redhat.com/docs
http://access.redhat.com
页: [1]
查看完整版本: Linux命令历史及帮助