1.2-Linux命令帮助的获取详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.2-Linux命令帮助的获取详解相关的知识,希望对你有一定的参考价值。

外部命令:都有一个可执行程序,位于文件系统某目录下:

    which,whereis

    shell程序搜寻可执行程序文件的路径定义在PATH环境变量中:

        # echo $PATH

        注意:自左至右



内部命令:

#help COMMAND

外部命令:

(1)# COMMAND --help

    # COMMAND -h

(2)使用手册(manual)

    # man COMMAND

(3)信息页

    # info COMMAND

(4)程序自身的帮助文档

    README

    INSTALL

    ChangeLog

(5)程序官方文档

    官方站点:Documentation

(6)发行版的官方文档

(7)Google



内部命令帮助获取方式:

# help COMMAND

hash命令:

shell搜寻到的外部命令的路径结果会缓存至kv(key-value)存储中

[[email protected] ~]# hash

hits    command

   1    /sbin/service

   1    /bin/cat

   2    /usr/bin/elinks

   1    /bin/vi

hits:缓存命中

        当命令在缓存当中被找到,此数值+1


[[email protected] ~]# ls    #第一次使用ls命令

anaconda-ks.cfg  install.log  install.log.syslog

[[email protected] ~]# hash

hits    command

   1    /sbin/service

   1    /bin/cat

   2    /usr/bin/elinks

   1    /bin/vi

   1    /bin/ls

[[email protected] ~]# mv /bin/ls /usr/bin/ls    #将ls命令移动到/usr/bin/ls

[[email protected] ~]# ls    #再次输入ls命令提示如下:

-bash: /bin/ls: 没有那个文件或目录

[[email protected] ~]# echo $PATH

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

[[email protected] ~]# hash

hits    command

   1    /sbin/service

   1    /bin/cat

   2    /usr/bin/elinks

   1    /bin/mv

   1    /bin/vi

   2    /bin/ls    #在缓存当中找而不是在PATH当中找

[[email protected] ~]# type hash

hash is a shell builtin    #hash是一个内部命令

[[email protected] ~]# help hash

hash: hash [-lr] [-p pathname] [-dt] [name ...]

    Remember or display program locations.

    

    Determine and remember the full pathname of each command NAME.  If

    no arguments are given, information about remembered commands is displayed.

    

    Options:

      -d                forget the remembered location of each NAME

      -l                display in a format that may be reused as input

      -p pathname       use PATHNAME is the full pathname of NAME

      -r                forget all remembered locations

      -t                print the remembered location of each NAME, preceding

                each location with the corresponding NAME if multiple

                NAMEs are given

    Arguments:

      NAME              Each NAME is searched for in $PATH and added to the list

                of remembered commands.

    

    Exit Status:

    Returns success unless NAME is not found or an invalid option is given.

[[email protected] ~]# hash -r    #清除缓存当中所有记录

[[email protected] ~]# ls

anaconda-ks.cfg  install.log  install.log.syslog

[[email protected] ~]# hash

hits    command

   1    /usr/bin/ls



history命令:

    作用是什么?相关的环境变量是什么?有用的选项?

    管理命令历史:

        登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history

        登录进shell后,新执行的命令只会记录在缓存中。这些命令会在用户退出时“追加”至命令历史文件中

    history:

        -a:追加本次会话新执行的命令历史列表至历史文件中

        -d:删除历史中指定的命令

        -c:清空命令历史

快捷操作:

!n:调用历史中第n条命令

!string:调用历史中最近一个以string开头的命令

!!:调用上一条命令



外部命令帮助获取方式:

    (1)COMMAND --help

[[email protected] bin]# type grep

grep is /bin/grep

[[email protected] bin]# grep --help

用法: grep [选项]... PATTERN [FILE]...

在每个 FILE 或是标准输入中查找 PATTERN。

默认的 PATTERN 是一个基本正则表达式(缩写为 BRE)。

例如: grep -i ‘hello world‘ menu.h main.c

正则表达式选择与解释:

  -E, --extended-regexp     PATTERN 是一个可扩展的正则表达式(缩写为 ERE)

  -F, --fixed-strings       PATTERN 是一组由断行符分隔的定长字符串。

  -G, --basic-regexp        PATTERN 是一个基本正则表达式(缩写为 BRE)

  -P, --perl-regexp         PATTERN 是一个 Perl 正则表达式

  -e, --regexp=PATTERN      用 PATTERN 来进行匹配操作

    

(2)man COMMAND

    手册页:/usr/share/man

        man1...man8

            man1:用户命令

            man2:系统调用

            man3:库调用

            man4:设备文件及特殊文件

            man5:配置文件格式

            man6:游戏相关

            man7:杂项

            man8:管理类的命令


注意:有些关键字不止在一个章节中存在帮助手册,要查看指定章节中的手册:man n COMMAND


man命令的配置文件:/etc/man.config

MANPATH:/PATH/TO/SOMEWHERE:指明新的手册文件搜索位置

# man -M /PATH/TO/SOMEWHERE COMMAND:到指定位置下搜索COMMAND命令的手册页并显示


帮助手册中的段落说明:

NAME:程序的名字及简要说明

SYSNOPSIS:命令使用简要帮助

DESCRIPTION:功能的详细描述

OPTIONS:选项

EXAMPLES:使用示例

AUTHOR:作者

REPORTING BUGS:

SEE ALSO:


SYSNOPSIS:

[]:可选内容

<>:可选内容

a|b:二选一

...:同一内容可以出现多次


man命令的操作方法:(调用less命令)

Space,Ctrl+v,Ctrl+f,Ctrl+F:向文件尾部翻屏

b,Ctrl+B:向文件首部翻屏

d,Ctrl+D:向文件尾部翻半屏

u,Ctrl+U:向文件首部翻半屏

RETURN or ^N or e or ^E or j or ^J:向文件尾部翻1行

y or ^Y or ^P or k or ^K:向文件首部翻1行

q:退出

g:回到文件首部

G:翻至文件尾部


文本搜索:

    /KEYWORD:

        以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索:不区分字符大小写

        n:下一个

        N:上一个

    ?KEYWORD:

    与/KEYWORD用法相反


练习:date命令

    显示今天为周几?

    设定当前系统时间?

    显示今天的日期,形如:08/15/15?

    显示当前的时间,形如:16:01:21?


(3)info

        info COMMAND


(4)程序自身的帮助文档

            /usr/share/doc/COMMAND-VERSION

(5)程序官方文档

        官方网站

(6)发行版的官方文档

            http://www.redhat.com/docs

(7)Google

        openstack filetype:pdf    #指定搜索的openstack文档为PDF格式

        openstack site:openstack.com    #指定在openstack.com站点进行搜索

(8)slideshare

         https://www.slideshare.net/


以上是关于1.2-Linux命令帮助的获取详解的主要内容,如果未能解决你的问题,请参考以下文章

linux基础篇-linux获取命令帮助 详解

linux_第二天_linux命令帮助的获取详解(03)_resv

命令帮助文档详解

linux 获取帮助的命令

Linux新手快速入门(万字超详细)

Linux学习之命令行获取公网IP方法详解