设为首页 收藏本站
查看: 810|回复: 0

[经验分享] Linux命令历史及帮助

[复制链接]

尚未签到

发表于 2018-5-20 08:08:41 | 显示全部楼层 |阅读模式
     
本人小白,如若有错请各位大牛指点,虚心讨教学习

  一、命令历史
              shell进程会保存此前用户提交执行过的命令

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

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

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

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

                             
                  2)、history  -anrw [filename(文件名)]   
                              //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 更新数据库为makewhatis  centos 7 更新whatis数据库为mandb)  
              # whatis  ls   查看ls命令的章节
  

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

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

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

  

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

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


          命令用help查看帮助方式,分为内置和外部命令:
          内置命令:
              help COMMAND 此方式只针对内部命令
                     #help  cd 查看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
                  # info  ls   查看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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-462316-1-1.html 上篇帖子: 更改linux系统的SHELL 下篇帖子: linux中ACL的学习
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表