Linux系统man使用帮助与history命令

时间:2021-04-20 16:25:49

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 #(#为下一个章节)手册页。

Linux系统man使用帮助与history命令Linux系统man使用帮助与history命令

man -k COMMAND 列出所有匹配的页面 

Linux系统man使用帮助与history命令

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