本章内容

    命令存放位置

    命令帮助 

    help

    man帮助

    其它帮助   

    命令历史

    快捷键

一、命令存放位置

     根据Linux的哲学思想:一切皆文件来说,在Linux系统中基本上什么都是文档、应用软件、甚至是硬件,当然命令也不例外(内部命令虽然没有具体文件,但是都是内嵌在shell内部的,而shell本身是外部命令,也是文件),而我们有些情况就必须执行完整路径格式的命令,所以我们必须大致知道命令都在那里,这样才能更好的了解命令。

     命令本身是一个可执行的程序文件:可执行二进制格式的文件,有可能调用共享库文件

 多数系统程序文件都存放在:/bin 、/sbin 、/usr/bin、/usr/sbin

 如果安装第三方应用程序或非标准系统自带的程序也有  /usr/loacl/bin   /usr/local/sbin

     普通命令:/bin    /usr/bin         /usr/local/bin

     管理命令:/sbin     /usr/sbin       /usr/local/sbin

     共享库(没有执行入口) :多数存放在

     32bits的库   /lib     /usr/lib     /usr/local/lib         

     64bits的库 (兼容32bits的库)/lib64    /usr/lin64   /usr/local/lib64

     注意:并非所有的命令都有一个在某目录下与之对应的可执行程序文件

     命令必须遵循特定格式规范;exe、msi、ELF(Linux)

       #file /bin/ls  查看可执行程序文件的内容格式类型信息

       #which COMMAND  查看外部命令的完整路径

       #whereis COMMAND  查看命令完整路径和对应man帮助文件目录 

二、命令帮助

   获取命令的使用帮助:

      内部命令:help COMMAND

            man COMMAND(此命令为内部命令例如help命令本身,但是所查结果都是对应shell这个外部命令的帮助文件,比如bash)所以执行的实质是man bash   

      外部命令: (1) 命令自带简要格式的使用帮助#COMMAND --help

                                  #COMMAND -h

             (2) 使用手册:manual   #man COMMAND    

             (3) info在线信息文档 

             (4) 自带文档(README、CHANGELOG、INSTALL)

             (5) 官方文档

             (6)发行版的文档

             (7)Goolge、百度

三、help帮助(内部命令)与--help选项(外部命令相关)

    help帮助  

    #help help

    help [-dms] [PATTERN ...]

    显示内嵌命令的相关信息。

    显示内嵌命令的简略信息。如果指定了 PATTERN 模式,给出所有匹配 PATTERN 模式的命令的详细帮助,否则打印一个帮助主题列表   

    选项:

      -d输出每个主题的简短描述

      -m以伪 man 手册的格式显示使用方法

      -s为每一个匹配 PATTERN 模式的主题仅显示一个用法简介  

    参数:

       PATTERNPattern 模式指定一个帮助主题

  

   --help 选项

      显示用法总结和参数列表

      使用的大多数,但并非所有的

    例如

    $ date --help

     Usage: date [OPTION]... [+FORMAT] or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

    []  是可选的

    CAPS或 或 <>  是变量

    ...  表示一个列表

    x |y| z “ 的意思是“ x 或 y 或 z “

    -abc的 的  意思是-a -b -c

四、manual使用手册(man命令)

   manual:使用手册提供命令帮助的文件

   手册页存放在/usr/share/man,并是压缩格式的文件,man 页面分组为不同的“章节”

        几乎每个命令都有man 的“页面”

         man 页面分组为不同的   man1、man2、...

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

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

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

    man [OPTION...] [章节] 手册页...  

            man CHAPTER(代表数字) COMMAND

            man1:用户命令

            man2:系统调用

            man3:C库调用

            man4:设备文件及特殊文件

            man5:文件格式(配置文件格式)

            man6:游戏的玩法使用帮助

            man7:杂项

            man8:管理工具及守护进行(系统管理员手册)

            man9:Linux  内核API

   man内容项:

       SECTION:

            NAME:功能性说明

            SYNOPSIS:语法格式

            DESCRIPTION:描述

            OPTIONS:选项

            EXAMPLES:使用示例

            AUTHOR:作者

            BUGS:报告程序bug的方式 

            SEE ALSO:参考

            ...

            SYNOPSIS:

            []:可选内容(可省略)

            <>:必须提供的内容

            {}:分组辅助性的,用于分隔

            a|b|c:多选一

            ...:同类内容可出现多个

    注意:并非每个COMMAND在所有章节下都有手册

            查看COMMAND在哪个目录下有手册

            ~]#whatis COMMAND

            注意:其执行过程是查询数据库进行的

            手动更新数据库:

            ~]#makewhatis  (centos6)    

            ~]#mandb(centos7)

    man命令打开手册以后的操作方法:使用less 命令实现

       翻屏:

            空格键:向文件尾部翻一屏

            小 b:向文件首部翻一屏

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

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

            回车键:向文件尾部翻一行

            小k:向文件首部翻一行

            大G:跳转至最后一行

            #G:跳转至指定行(#数字)

            1G:跳转至文件首部

        文本搜索:

            /keyword(关键词):从文件首部向文件尾部依次查找

            ?keyword(关键词):从文件尾首向文件部部依次查找

            n:与查找命令方向相同翻

            N:与查找命令方向相反翻

        退出:

            q:quit

四、其它帮助

     

    whatis

      显示命令的简短描述

      每晚使用一个数据库更新

      刚安装后不可立即使用

      makewhatis | mandb 制作数据库

      whatis cal 或 man –f cal

   

    info

       # info COMMAND

      man常用于命令参考GNU工具info适合通用文档参考。

      没有参数, 列出所有的页面

      info 页面的结构就像一个网站

      每一页分为“节点”

      链接节点之前 *

      info [ 命令 ]     

    导航info页

     方向键,PgUp ,PgDn  导航

     Tab键   移动到下一个链接

     d 显示主题目录

     Home  显示主题首部

     Enter进入  选定链接

     n/p/u/l  进入下/ 前/ 上一层/ 最后一个链接

     s文字  文本搜索

     q退出 info

    通过本地文档获取帮助

    点击“系统”-> “文档”:提供的官方使用指南和发行注记

    /usr/share/doc 目录

      多数安装了的软件包的子目录, 包括了这些软件的相关原理说明

      不适合其它地方的文档的位置

        配置文件范例

        HTML/PDF/PS  格式的文档

        授权书详情

    

    通过在线文档获取帮助

     第三方程序官方文档

     通过发行版官方的文档光盘或网站可以获得

       安装指南

       部署指南

       虚拟化指南

       红帽知识库和官方在线文档

        http://kbase.redhat.com

        http://www.redhat.com/docs

        http://access.redhat.com

    

    红帽全球技术支持服务

      rhn.redhat.com 或者本地卫星服务器/ 代理服务器

        基于网络管理的机器

        RHN 代理服务器为RHN 流量提供缓存

        RHN 卫星服务器提供自主的RHN

      RHN 账户

        为及其注册和基于网络管理的RHN 用户

        用于系统自动验证的系统ID

      sosreport

    收集所有系统上的日志信息的工具,并自动打成压缩包,方便技术支持人员和红帽全球支持提供分析问题的依据

    

    网站和搜索

       http://tldp.org

       http://www.slideshare.net

       http://www.google.com

        Openstack filetype:pdf

        rhca site:redhat.com/docs


五、命令历史

   

命令行历史

 保存你输入的命令历史。可以用它来重复执行命令

 登录shell 时,会读取命令历史文件中记录下的命令

             ~/.bash_history

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

    重复前一个命令,有4 种方法:

    使用PgUp\PgDn上方向键,并回车执行。

     输入!!   并回车执行。

    输入!-1   并回车执行。

    按Ctrl+p  并回车执行。

     ! 字符串: 重复前一个以“字符串”开头的命令

     !num: 按照history 命令输出中的序号重复对应命令

     !? 字符串: 重复前一个包含abc 的命令

     !-n : 重复n个命令之前的那个命令

    命令行历史

      使用up(向上)和down(向下)键来上下浏览从前输入

    的命令

      键入ctrl-r来在命令历史中搜索命令

     (reverse-i-search )`’: 

      要重新调用前一个命令中最后一个参数:

     !$ 表示

     Esc, . (点击Esc键后松开,然后点击 . 键)

     Alt+ . (按住Alt键的同时点击 . 键)   

 调用历史参数

#CAMMOND !^    利用上一个命令的第一个选项做CAMMOND的选项

#CAMMOND !$    利用上一个命令的最后一个选项做CAMMOND的选项

#CAMMOND !*    利用上一个命令的全部选项做CAMMOND的选项

#CAMMOND !:n    利用上一个命令的第n个选项做CAMMOND选项

      !n:^    调用第n 条命令的第一个 参数

     !n:$    调用第n 条命令的最后一个 参数

     !m:n    调用第m 条命令的第n个参数

     !n:*    调用第n 条命令的所有     

    !string:^  以 从命令历史中搜索以string开头的命令,并获取它的第一个参数

    !string:$  以 从命令历史中搜索以string开头的命令, 并获取它的最后一个参数

    !string:n  以 从命令历史中搜索以string开头的命令,并获取它的第n个参数

    !string:*  以 从命令历史中搜索以string开头的命令,并获取它的所有参数

六、命令history

  #history  显示当前历史列表

history [-c] [-d offset] [n]

history -anrw [filename]

history -ps arg [arg...]

-c:  清空命令历史

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

#:   显示最近的# 条历史

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

-n:  读历史文件中未读过的行到历史列表

-r:  读历史文件附加到历史列表

-w:  保存历史列表到指定的历史文件

-p:  展开历史参数成多个行(执行命令),但不存在历史列表中

-s:  展开历史参数成一行(不执行命令),附加在历史列表后(伪造执行过程)

  history命令最适合与历史参数配合使用

命令历史相关环境变量

HISTSIZE :命令历史记录的条数;默认为1000

HISTFILE :指定历史文件,默认为~/.bash_history; ;

HISTFILESIZE :命令历史文件记录历史的条数;默认为1000

HISTTIMEFORMAT=“%F %T“ 显示命令历史时格式前面增加时间 

HISTIGNORE=“str1:str2:… “  忽略有string1,string2 关键字历史

控制命令历史的记录方式:

     环境变量:HISTCONTROL

ignoredups :忽略重复的命令;连续且相同方为“重复”

ignorespace :忽略所有以空白开头的命令

ignoreboth :ignoredups, ignorespace  等同于这两者

erasedups: 删除重复命令  

      HISTCONTROL="str1:str2:… "  可以多选项eg:HISCONTROL="ignoreboth:erasedups"

export  变量名=" 值“

  命令历史变量配置信息存放在 /etc/profile 或 ~/.bash_profile,若要配置信息永久有效则,写入全局(对所有用户)环境变量或特定用户环境变量里

七、快捷键

     

Tab键

命令补全

内部命令:

外部命令:bash 根据PATH 环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令

用户给定的字符串只有一条惟一对应的命令,直接补全,否则,再次Tab 会给出列表

路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名

如果惟一:则直接补全

否则:再次Tab 给出列表

注意:在centos7以前版本只能补全 命令 路径;而centos7以后可以进行选项参数补全了!


bash 的快捷键

Ctrl+l  清屏,相当于clear 命令

Ctrl+c  取消命令的执行

Ctrl-a  会移动到命令行的最前面

Ctrl-e  会移动到命令行的最后面

Ctrl-u  会删除到行首

Ctrl-k  会删除到行尾

arrow ctrl-b ctrl-f 会向左或向右移动一个字符

Esc-b 左移一个单词

Esc-f 右移一个单词

gnome-terminal图形界面

     应用程序-> 附件-> 终端

  支持多个“标签”shell 的图形化终端模拟器

Ctrl-Shift-t 创建一个标签页

Ctrl-PaUp/PgUn  切换到下一个/ 前一个标签页

Ctrl-Shift-c  复制选中的文本

Ctrl-Shift-v 把文本粘帖到提示符后