本人小白,如若有错请各位大牛指点,虚心讨教学习

一、命令历史

            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