Linux系统man使用帮助与history命令
获取帮助是学习Linux一个必须要掌握的命令,Linux提供了极为详细的帮助工具及文档,一定要养成查帮助文档的习惯,可以大大减少需要记忆的东西并提高效率,man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。
使用帮助命令前要查看命令是内部命令还是外部命令,内部命令获取帮助使用--help命令而外部命令则使用man命令。在这里使用centos7系统为大家初步讲解一下Linux下怎样获取使用帮助。
查询命令是内部命令还是外部命令用type命令:
[root@centos7 ~]# type cd
cd is a shell builtin
这里输出的结果显示cd命令为内部命令,要查询cd命令的使用帮助这里就需要使用help命令:
#help COMMAND (使用格式)
以cd命令为例:
[root@centos7 ~]# help cd
cd: cd [-L|[-P [-e]]] [dir]
Change the shell working directory.
Change the current directory to DIR. The default DIR is the value of the
HOME shell variable.
The variable CDPATH defines the search path for the directory containing
DIR. Alternative directory names in CDPATH are separated by a colon (:).
A null directory name is the same as the current directory. If DIR begins
with a slash (/), then CDPATH is not used.
If the directory is not found, and the shell option `cdable_vars' is set,
the word is assumed to be a variable name. If that variable has a value,
its value is used for DIR.
Options:
-L force symbolic links to be followed
-P use the physical directory structure without following symbolic
links
-e if the -P option is supplied, and the current working directory
cannot be determined successfully, exit with a non-zero status
The default is to follow symbolic links, as if `-L' were specified.
Exit Status:
Returns 0 if the directory is changed, and if $PWD is set successfully when
-P is used; non-zero otherwise.
我们都知道内部命令获取使用帮助使用help命令,那么我们来讲解一下外部命令获取使用帮助的方法;
首先可以使用man命令:# man COMMAND (命令格式);其次也可以使用# COMMAND --help;或者使用查询信息页# info COMMAND ;再或者查看程序自身的帮助文档README INSTALL ChangeLog
man命令:
首先man文件的位置:/usr/share 放置共享文件的地方;/usr/share/man:手册页存放;/usr/share/doc:软件杂项的文件说明
mandb数据库制作:
centos 7之中
[root@centos7 ~]# mandb
Purging old database entries in /usr/share/man...
mandb: warning: /usr/share/man/man8/fsck.fat.8.manpage-fix.gz: ignoring bogus filename
Processing manual pages under /usr/share/man...
...
man命令的配置文件存放在/etc/man_db.conf
centos 6之中
[root@centos6 ~]# makewhatis
man命令的配置文件存放在/etc/man.config
几乎每个命令都有man的“页面” ,man页面分组为不同的“章节”这些统称为Linux手册。
man [章节] COMMAND
1: 用户命令
2: 系统调用
3: C库调用
4: 设备文件及特殊文件
5: 配置文件格式
6: 游戏
7: 杂项
8: 管理类的命令
9:Linux 内核API
看懂man命令语法
[]:可选内容
<>:必须给出内容
a|b|c:多选一
…:同一个内容出现多次
man的参数:
man -a COMMAND
当COMMAND有多个man手册页时,首先打开的是man 1,不做任何操作使用q退出时,直接进入下一个man #(#为下一个章节)手册页。
man -k COMMAND 列出所有匹配的页面
man命令的操作方法:
使用less命令实现 Space, ^V, ^f, ^F: 向文件尾翻屏
b, ^B: 向文件首部翻屏
d, ^D: 向文件尾部翻半屏
u, ^U: 向文件首部翻半屏
RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行
y or ^Y or ^P or k or ^K:向文件首部翻一行
q: 退出
#:跳转至第#行
1G: 回到文件首部
G:翻至文件尾部
/KEYWORD: 以KEYWORD指定的字符串为关键字,从当前位置向文件 尾部搜索;不区分字符大小写;
n: 下一个
N:上一个
?KEYWORD: 以KEYWORD指定的字符串为关键字,从当前位置向文件 首部搜索;不区分字符大小写;
n: 跟搜索命令同方向,下一个
N:跟搜索命令反方向,上一个
info COMMAND
有超链接稳文档,info是信息页,提供作者、版本,什么时候发布等更详细信息,man手册是告诉你怎么用
README
绝大多数程序都有相应的帮助文档,保存在/usr/share/doc文件夹中
history命令历史
bash保存的过去曾经执行过的命令的列表;
当前shell进程的保存在缓存中; 缓冲区中的命令会在shell退出时保存在用户家目录中的 ~/.bash_history文件中。
history命令
[root@localhost ~]# history 1 ls
2 cd /
3 ls
4 poweroff
5 ifconfig
6 ls
7 exit
8 screen -ls
...
273 history
在命令行中我们键入history命令,可以显示我们曾经执行过的命令
重复前一个命令,有4种方法:
重复前一个命令使用上方向键,并回车执行。
按 !! 并回车执行。
输入 !-1 并回车执行。
按 Ctrl+p 并回车执行。
[root@localhost ~]# cd /[root@localhost /]# ls -d.[root@localhost /]# !-1ls -d.
!字符串:重复前一个以“字符串”开头的命令
[root@localhost /]# !llsbin d1 etc lib lost+found misc net proc sbin srv test testdir usrboot dev home lib64 media mnt opt root selinux sys test1 tmp var
!num:按照history命令输出中的序号重复对应命令
268 ls 269 mkdir -p -v /test1/test2/test3/test4 270 ls -l test1 271 ls -l -a test1 272 tree /test1 273 history 274 cd / 275 ls -d 276 history [root@localhost /]# !268lsbin d1 etc lib lost+found misc net proc sbin srv test testdir usrboot dev home lib64 media mnt opt root selinux sys test1 tmp var
!?字符串:重复前一个包含abc的命令
[root@localhost /]# !?hishistory 1 ls 2 cd / 3 ls 4 poweroff ...
!-n :重复n个命令之前的那个命令
[root@localhost /]# history 1 2016-07-29 10:43:50 cd / 2 2016-07-29 10:43:52 pwd 3 2016-07-29 10:44:06 tree -L 1 4 2016-07-29 10:44:12 history [root@localhost /]# !-3pwd/
调用历史参数的方法:
#cmd !^ : 利用上一个命令的第一个参数做cmd的参数
#cmd !$ : 利用上一个命令的最后一个参数做cmd的参数
#cmd !* : 利用上一个命令的全部参数做cmd的参数
#cmd !:n : 利用上一个命令的第n个参数做cmd的参数
#!n:^ 调用第n条命令的第一个参数
#!n:^ 调用第n条命令的第一个参数
#!m:n 调用第m条命令的第n个参数
#!n: * 调用第n条命令的所有参数
#!string:^ 从命令历史中搜索以string 开头的命令,并获取它的第一个参数
#!string: $从命令历史中搜索以string 开头的命令,并获取它的最后一个参数
#!string:n 从命令历史中搜索以string 开头的命令,并获取它的第n个参数
#!string: * 从命令历史中搜索以string 开头的命令,并获取它的所有参数
键入ctrl-r来在命令历史中搜索命令
history命令常用选项:
history [-c] [-d offset] [n]
history -anrw[filename]
history -psarg[arg...]
-c: 清空命令历史
[root@localhost /]# history -c[root@localhost /]# history 1 history
-d: 删除历史中指定的命令;
#: 显示最近的#条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-n: 读历史文件中未读过的行到历史列表
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-p: 展开历史参数成多个行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
history命令历史相关的环境变量
HISTSIZE:命令历史记录的条数;
[root@localhost /]# echo $HISTSIZE1000默认1000条
HISTFILE:指定历史文件,默认为~/.bash_history;
[root@localhost /]# echo $HISTFILE/root/.bash_history[zhl@localhost root]$ echo $HISTFILE/home/zhl/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数;
[root@localhost ~]# echo $HISTFILESIZE1000文件默认也是1000条
HISTTIMEFORMAT=“%F %T“ 显示时间
HISTTIMEFORMAT="%F %T "[root@localhost ~]# history 1 2016-07-29 10:28:26 passwd 2 2016-07-29 10:28:26 reboot在.bash_profile文件中添加 HISTTIMEFORMAT="%F %T "之后显示时间,添加命令之前时间统一为退出重新登陆后变量的生效时间,之后命令历史显示命令的正确使用时间。
5、HISTIGNORE=“str1: str2:… “ 忽略string1,string2历史
6、控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令;连续且相同方为“重复”
ignorespace:忽略所有以空白开头的命令
ignoreboth:ignoredups, ignorespace
erasedups:删除重复命令
存放在 /etc/profile 或 ~/.bash_profile
bash的快捷键使用
Ctrl+l 清屏,相当于clear命令
Ctrl+c 取消命令的执行
Ctrl-a 会移动到命令行的最前面
Ctrl-e 会移动到命令行的最后面
Ctrl-u 会删除到行首
Ctrl-k 会删除到行尾
arrow ctrl-b ctrl-f会向左或向右移动一个字符
Esc-b 左移一个单词
Esc-f 右移一个单词
本文出自 “zanghl_blog” 博客,请务必保留此出处http://zanghl.blog.51cto.com/11267212/1830438