运行命令:
命令格式
COMMAND [OPTIONS...][ARGUMENNTS...]
命令   选项   参数
[]代表可有可无
<>      表示必须给出的内容
...     可以出现多次,,可使用多个
{}      分组的,没有特殊意义
选项
用于启用或关闭命令的某个或某些功能
如ls的-l -h
选项
短选项:-c 多个短选项可以合并使用
长选项:--long等
参数
命令的作用对象(向命令提供数据)
命令的参数可以有多个
注意:
多选项,以及多参数和命令之间都应该使用空白字符分隔
取消命令执行ctrl+c
type命令

type命令用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令

type用于显示的类型
alias:别名
keyword:关键字,Shell保留字
function:函数,Shell函数
builtin:内建命令,Shell内建命令
file:文件,磁盘文件,外部命令
unfound:没有找到
语法:

type(选项)(参数)

选项:
-t:输出“file”,“alias”或者“builtin”,分别表示给定的指令为“外部指令”,“命令别名”或者“内部指令”
-p:如果给出的指令为外部指令,则显示其绝对路径
-a:在环境变量“PATH”指定的路径中,显示给定指令的信息,包括命令别名。
参数

指令:要显示类型的指令

案例:
type ls 
    ls is aliased to `ls --color=auto'
type cd 
    cd is a shell builtin
Linux命令帮助的获取

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

which
使用makewhatis命令可以将当前系统上所有的帮助手册与之对应的关键词创建一个数据库(刚装机的时候要执行,装完之后,这个数据库自动生成)
用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录
语法:

which(选项)(参数)

选项:
-n<文件名长度>制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径
-w:指定输出时栏位的宽度
-V:显示版本信息。
参数:

指令名:指令名列表

案例:
which cd 
    /usr/bin/cd
whereis

用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径

语法:

whereis(选项)(参数)

选项:
-b:只查找二进制文件
-B<目录>:只在设置的目录下查找二进制文件
-f:不显示文件名前的路径名称
-m:只查找说明文件
-M<目录>:只在设置的目录下查找说明文件
-s:只查找原始代码文件
-S<目录>只在设置的目录下查找原始代码文件
-u:查找不包含指定类型的文件。
参数:

指令名:要查找的二进制程序、源文件和man手册页的指令名

案例:
whereis ls 
    ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
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)存储中;
-d:清空指定的缓存
-r:清空所有的缓存
history命令:
作用是什么?相关的环境变量是什么?有用的选项?

管理命令历史;
登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history
登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中;

history:
-a: 追加本次会话新执行的命令历史列表至历史文件中;
-d: 删除历史中指定的命令;
-c: 清空命令历史;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中
快捷操作:
!#: 调用历史中第#条命令;
!string:调用历史中最近一个以string开头的命令;
!!: 上一条命令
调用上一个命令的最后一个参数
!$ 
esc+.
!*:上一条命令的所有参数
^blah:删除上一条命令中的 blah
^blah^foo:将上一条命令中的 blah 替换为 foo
^blah^foo^:将上一条命令中所有的 blah 都替换为 foo
bash常用的快捷键
ctrl+l:相当于clear清屏
ctrl+a:跳转至命令开始处
ctrl+e:跳转至命令结尾处
ctrl+u:删除命令行首至光标所在处的所有内容
ctrl+k:删除光标所在处至命令行尾的所有内容
ctrl+f按单词前移(右向)
crtl+b:按单词后移(左向)
ctrl+r:逆向搜索命令历史
ctrl+g:从历史搜索模式退出
ctrl+c:终止命令
ctrl+z:挂起命令
history支持的环境变量
HISTTIMEFORMAT:显示历史命令带时间,date显示格式
HISTSIZE:命令历史记录的条数
HISTFILE:命令历史保存的文件
HISTFILESIZE:命令历史文件记录的历史条目环境变量:
HISTCONTROL:控制命令历史记录的方式
    ignoredups:忽略重复的命令,连续且相同方为重复
    ignorespace:忽略所有以空白开头的命令
    ignoreboth:上面两个之和
外部命令帮助获取:
(2)man COMMAND
    手册页:/usr/share/man
        man1 ... man8
            man1: 用户命令
            man2: 系统调用
            man3: C库调用
            man4: 设备文件及特殊文件
            man5: 配置文件格式
            man6: 游戏
            man7: 杂项
            man8: 管理类的命令
man命令如何知道去什么地方找
man有自己的配置文件,会在配置文件里面定义man文档的路径
CentOS6:/etc/man.conf 
CentOS7:/etc/man_db.conf
man -M/path/to/somewhere command:到指定位置下搜索手册并显示
man手册段含义:
NAME:命令名称及简要说明
SYNOPSIS:命令的使用格式
DESCRIPTION:使用描述(各种选项的解释),可能使用
OPTIONSOPTIONS:部分Manual或有这个字段,同DESCRIPTION
AUTHOR:作者
FILES:此命令相关的配置文件
REPORTING BUGS:当前命令如果有bug提交给谁
COPYRIGHT:版权信息,FSF(Free Software Foundation),GNU
SEE ALSO:获得进一步信息,请使用其他的方式查看等等方式,另外参照
EXAMPLES:使用帮助举例,如lvcreate命令就有EXAMPLES字段
man手册页中符号的含义:
[]:中括号括起来的内容,表示可省略
”|”:表示二选一或者多选一的,不可以同时使用的,如长短格式
<>:表示必须给出的内容
...:可以出现多次.可使用多个
{}:分组的:没有特殊意义
man手册翻屏查找
其实也就是less命令执行,如果不知怎么用,直接man less即可
向后翻一屏:空格键Space
向前翻一屏:B键
向后翻一行:回车Enter
向前翻一行:K键
向后翻半屏:d键
/KEYWORD:搜索关键词,当前到尾部搜索
    N键:前一个
    n键:后一个
?KEYWORD:搜索关键词,当前到首部搜索
退出:q键