外部命令:都有一个可执行程序,位于文件系统某目录下:
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)存储中
[root@www ~]# hash
hits command
1 /sbin/service
1 /bin/cat
2 /usr/bin/elinks
1 /bin/vi
hits:缓存命中
当命令在缓存当中被找到,此数值+1
[root@www ~]# ls #第一次使用ls命令
anaconda-ks.cfg install.log install.log.syslog
[root@www ~]# hash
hits command
1 /sbin/service
1 /bin/cat
2 /usr/bin/elinks
1 /bin/vi
1 /bin/ls
[root@www ~]# mv /bin/ls /usr/bin/ls #将ls命令移动到/usr/bin/ls
[root@www ~]# ls #再次输入ls命令提示如下:
-bash: /bin/ls: 没有那个文件或目录
[root@www ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@www ~]# hash
hits command
1 /sbin/service
1 /bin/cat
2 /usr/bin/elinks
1 /bin/mv
1 /bin/vi
2 /bin/ls #在缓存当中找而不是在PATH当中找
[root@www ~]# type hash
hash is a shell builtin #hash是一个内部命令
[root@www ~]# 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.
[root@www ~]# hash -r #清除缓存当中所有记录
[root@www ~]# ls
anaconda-ks.cfg install.log install.log.syslog
[root@www ~]# hash
hits command
1 /usr/bin/ls
history命令:
作用是什么?相关的环境变量是什么?有用的选项?
管理命令历史:
登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history
登录进shell后,新执行的命令只会记录在缓存中。这些命令会在用户退出时“追加”至命令历史文件中
history:
-a:追加本次会话新执行的命令历史列表至历史文件中
-d:删除历史中指定的命令
-c:清空命令历史
快捷操作:
!n:调用历史中第n条命令
!string:调用历史中最近一个以string开头的命令
!!:调用上一条命令
外部命令帮助获取方式:
(1)COMMAND --help
[root@www bin]# type grep
grep is /bin/grep
[root@www 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)发行版的官方文档
(7)Google
openstack filetype:pdf #指定搜索的openstack文档为PDF格式
openstack site:openstack.com #指定在openstack.com站点进行搜索
(8)slideshare
原文地址:http://sanyuan.blog.51cto.com/873226/1972885