Linux Command:命令帮助

本人博客原文:http://www.deleiguo.com/archives/279
转载请附带原文地址
指导环境:CentOS7

Linux命令数量

在Linux下,如果不记得命令的全称,但知道前面几个字母,可以通过tab自动补全,或按下两次tab列出相符的多个可选项;

[root@delei-server ~]# ls
ls        lscgroup  lsinitrd  lsmcli    lsof      lssubsys
lsattr    lscpu     lslocks   lsmd      lspci     lsusb
lsblk     lsdiff    lslogins  lsmod     lsscsi    lsusb.py

而当匹配的数量过多,会先先统计有多少数量,询问是否显示

[root@delei-server ~]# c
Display all 199 possibilities? (y or n)

那么,我们可以在不输入任何字的情况下,直接按下两次tab键,则可以统计下当前用户下可用的命令有多少个.

但是经过实际尝试,在CenOS7下,该方法无效,Mac下有效

delei@DeleitekiMBP:~$
Display all 1473 possibilities? (y or n)

每个人的操作系统所用的命令数都是不一样的。
不同的linux版本,用户安装的软件命令,用户设置的环境变量等都是不一样的。

虽然经常常用的命令数量不多,但是在有些情况下,很多命令的详细参数和选项用法不一定都能记得住。而若在无网络,无参考手册情况下,更会遇到不知道如何使用命令的情况。Linux上开发的软件大多数是自由性软件,而这些软件开发者一般都会有相应的命令使用方法。
在上述情况下,其实Linux已提供了几种方式能够提供帮助。

whatis

该命令获得索引的简短信息,如果有多个匹配(不同版本,多个同样的软件等)则会列出多个

[root@delei-server ~]# whatis cd
cd (1)               - bash built-in commands, see bash(1)
cd (1p)              - change the working directory
[root@delei-server ~]# whatis wget
wget (1)             - The non-interactive network downloader.

但不是所有命令在所有的Linux上均可使用

[root@delei-server ~]# whatis ll
ll:没有 appropriate。

help、-help

--help该命令显示使用摘要和参数列表,可以查看大多数命令的用法

[root@delei-server ~]# date --help
用法:date [选项]... [+格式]
 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.

Mandatory arguments to long options are mandatory for short options too.
  -d, --date=STRING         display time described by STRING, not 'now'
  -f, --file=DATEFILE       like --date once for each line of DATEFILE
  -I[TIMESPEC], --iso-8601[=TIMESPEC]  output date/time in ISO 8601 format.
                            TIMESPEC='date' for date only (the default),
                            'hours', 'minutes', 'seconds', or 'ns' for date
                            and time to the indicated precision.
  -r, --reference=文件        显示文件指定文件的最后修改时间
  -R, --rfc-2822        以RFC 2822格式输出日期和时间
                例如:2006年8月7日,星期一 12:34:56 -0600
      --rfc-3339=TIMESPEC   output date and time in RFC 3339 format.
                            TIMESPEC='date', 'seconds', or 'ns' for
                            date and time to the indicated precision.
                            Date and time components are separated by
                            a single space: 2006-08-07 12:34:56-06:00
  -s, --set=STRING          set time described by STRING
  -u, --utc, --universal    print or set Coordinated Universal Time (UTC)
      --help        显示此帮助信息并退出
      --version     显示版本信息并退出

给定的格式FORMAT 控制着输出,解释序列如下:

  %%    一个文字的 %
  %a    当前locale 的星期名缩写(例如: 日,代表星期日)
  %A    当前locale 的星期名全称 (如:星期日)
  %b    当前locale 的月名缩写 (如:一,代表一月)
  %B    当前locale 的月名全称 (如:一月)
  ...

默认情况下,日期的数字区域以0 填充。
The following optional flags may follow '%':

  -  (hyphen) do not pad the field
  _  (underscore) pad with spaces
  0  (zero) pad with zeros
  ^  use upper case if possible
  #  use opposite case if possible

在任何标记之后还允许一个可选的域宽度指定,它是一个十进制数字。
作为一个可选的修饰声明,它可以是E,在可能的情况下使用本地环境关联的
表示方式;或者是O,在可能的情况下使用本地环境关联的数字符号。

Examples:
Convert seconds since the epoch (1970-01-01 UTC) to a date
  $ date --date='@2147483647'

Show the time on the west coast of the US (use tzselect(1) to find TZ)
  $ TZ='America/Los_Angeles' date

Show the local time for 9AM next Friday on the west coast of the US
  $ date --date='TZ="America/Los_Angeles" 09:00 next Fri'

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告date 的翻译错误
要获取完整文档,请运行:info coreutils 'date invocation'

--help只能对外部命令使用,对内部命令无效当我们要求内部命令的帮助时使用help+命令

[root@delei-server bin]# help pwd
pwd: pwd [-LP]
    打印当前工作目录的名字。

    选项:
      -L    打印 $PWD 变量的值,如果它命名了当前的
        工作目录
      -P    打印当前的物理路径,不带有任何的符号链接

    默认情况下,`pwd' 的行为和带 `-L' 选项一致

    退出状态:
    除非使用了无效选项或者当前目录不可读,否则
    返回状态为0。

man

man是manual的简写,命令使用手册/说明
同样是pwd,man提供的内容较多(内容过长,部分已省略...)

[root@delei-server bin]# man date
DATE(1)                       User Commands                      DATE(1)

NAME
       date - print or set the system date and time

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

DESCRIPTION
       Display  the  current time in the given FORMAT, or set the system
       date.

       Mandatory arguments to  long  options  are  mandatory  for  short
       options too.

       -d, --date=STRING
              display time described by STRING, not 'now'

       -f, --file=DATEFILE
              like --date once for each line of DATEFILE

       -I[TIMESPEC], --iso-8601[=TIMESPEC]
              output  date/time in ISO 8601 format.  TIMESPEC='date' for
              date only (the default), 'hours', 'minutes', 'seconds', or
              'ns' for date and time to the indicated precision.

       ...
       #      use opposite case if possible

       After any flags comes an optional field width, as a decimal  num‐
       ber;  then  an  optional  modifier,  which is either E to use the
       locale's alternate representations if available, or O to use  the
       locale's alternate numeric symbols if available.

ENVIRONMENT
       TZ     Specifies  the timezone, unless overridden by command line
              parameters.  If neither is  specified,  the  setting  from
              /etc/localtime is used.

EXAMPLES
       Convert seconds since the epoch (1970-01-01 UTC) to a date

              $ date --date='@2147483647'

       Show  the  time  on  the west coast of the US (use tzselect(1) to
       find TZ)

              $ TZ='America/Los_Angeles' date
    ...

DATE STRING
       The  --date=STRING  is  a  mostly free format human readable date
       string such as "Sun, 29 Feb 2004 16:21:42 -0800"  or  "2004-02-29
       16:21:42"  or  even  "next  Thursday".  A date string may contain
       items indicating calendar date, time of day, time  zone,  day  of
       week, relative time, relative date, and numbers.  An empty string
       indicates the beginning of the day.  The date  string  format  is
       more  complex  than  is  easily  documented  here  but  is  fully
       described in the info documentation.

AUTHOR
       Written by David MacKenzie.

COPYRIGHT
       Copyright © 2013 Free Software Foundation, Inc.  License  GPLv3+:
       GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
       This  is  free  software: you are free to change and redistribute
       it.  There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
       The full documentation for date is maintained as a  Texinfo  man‐
       ual.   If  the  info  and date programs are properly installed at
       your site, the command

              info coreutils 'date invocation'

       should give you access to the complete manual.

GNU coreutils 8.22            February 2016                      DATE(1)
 Manual page date(1) line 159/222 (END) (press h for help or q to quit)

当内容较多时,使用page up和page down上下翻页,空格也可向下翻页;
按q退出

在man的帮助手册中,将帮助文档分为了9个类别,对于有的关键字可能存在多个类别中, 我们就需要指定特定的类别来查看;(一般我们查询bash命令,归类在1类中);

man页面所属的分类标识(常用的是1、3、5、8)

  1. 用户可以操作的命令或者是可执行文件
  2. 系统核心可调用的函数与工具等
  3. 一些常用的函数与数据库
  4. 设备文件的说明
  5. 设置文件或者某些文件的格式
  6. 游戏
  7. 惯例与协议等。例如Linux标准文件系统、网络协议、ASCⅡ,码等说明内容
  8. 系统管理员可用的管理条令
  9. 与内核有关的文件

man page的常见部分

名称 内容说明
NAME 简短的指令、资料名称说明
SYNOPSIS 简短的指令下达语法简介
DESCRIPTION 较为完整的说明
OPTIONS 针对SYNOPSI部分,有列举的所有可用的选项说明
COMMANDS 当该命令在运行的时候,可以下达的命令
FILES 使用或链接到的某些档案/文件
SEE ALSO 可以参考的,跟该命令或资料有相关的其他说明
EXAMPLE 可以参考的范例
AUTHORS 作者
COPYRIGHT 版权说明

这是常见的内容,实际上还有其他部分
在某些命令中这些内容不全都有

man常用命令参数

  • man -a:
    搜索并打开所有man中同名帮助,例如 man passwd ,你首先会进入一个PASSWD(1) section用户命令类的帮助手册,你再按q键退出当前正在显示的帮助手册,就会进入PASSWD(5) section文件格式类的帮助手册。

  • man -aw:
    显示所有手册文件的路径。

[root@delei-server bin]# man -aw passwd
/usr/share/man/man1/passwd.1.gz
/usr/share/man/man1/sslpasswd.1ssl.gz
/usr/share/man/man5/passwd.5.gz
  • man -M:
    指定手册文件的搜索路径,有的时候我们自己安装的软件是带有自己的帮助文件的,通常不在我们的MANPATH里面,那么我们就可以手动指定man搜索的文件路径。如 man -M /home/mysql/man mysql显示的就是你安装的mysql的帮助,而不是系统默认的旧版mysql的帮助。

  • man -k:
    根据关键字搜索联机帮助,是一种模糊搜索。例如要查找"passwd"相关的信息,使用man -k passwd会找到很多和passwd相关的帮助页。如:我忘记了iptables命令就只能记住ipta则可以使用man -k ipta ,系统会把包括ipta的命令显示在屏幕上。

[root@delei-server bin]# man -k passwd
chpasswd (8)         - 批量更新密码
gpasswd (1)          - 管理员 /etc/group 和 /etc/gshadow
fgetpwent_r (3)      - get passwd file entry reentrantly
getpwent_r (3)       - get passwd file entry reentrantly
grub2-mkpasswd-pbkdf2 (1) - Generate a PBKDF2 password hash.
htpasswd (1)         - Manage user files for basic authentication
kpasswd (1)          - change a user's Kerberos password
ldappasswd (1)       - change the password of an LDAP entry
lpasswd (1)          - Change group or user password
lppasswd (1)         - add, change, or delete digest passwords.
pam_localuser (8)    - require users to be listed in /etc/passwd
passwd (1)           - update user's authentication tokens
sslpasswd (1ssl)     - compute password hashes
passwd (5)           - password file
passwd2des (3)       - RFS password encryption
pwhistory_helper (8) - Helper binary that transfers password hashes fro...
saslpasswd2 (8)      - set a user's sasl password
smbpasswd (5)        - The Samba encrypted password file
smbpasswd (8)        - change a user's SMB password
vncpasswd (1)        - change the VNC password
  • man -f:
    关键字精确搜索,与-k不同,它只搜索与关键字完全匹配的帮助页。
[root@delei-server bin]# man -f passwd
sslpasswd (1ssl)     - compute password hashes
passwd (1)           - update user's authentication tokens
passwd (5)           - password file

info

info与man类似,也是一种帮助说明,指令的文件预设放在/usr/share/info/目录中。
与man不同的是,info不是都在一个页面显示,而是将文件资料拆成了多个段落,每个段落有自己的页面,并且在各个页面还有类似链接的方式可以跳转,每个页面被称为一个node.

[root@delei-server bin]# info info
File: info.info,  Node: Top,  Next: Getting Started,  Up: (dir)

Info: An Introduction
*********************

The GNU Project distributes most of its on-line manuals in the "Info
format", which you read using an "Info reader".  You are probably using
an Info reader to read this now.

   ...

* Menu:

* Getting Started::             Getting started using an Info reader.
* Advanced::                    Advanced Info commands.
* Expert Info::                 Info commands for experts.
* Index::                       An index of topics, commands, and variabl\
es.

第一行:

  • File:表示该info的内容是由info.info提供
  • Node:代表当前的这个页面是top
  • Next:下一个页面
  • Up:上一个页面

将光标移动到该页面最下面"Menu"的列表部分,在每一个种,按下回车即可进入到相应的Node(类似于网页的链接跳转)

File: info.info,  Node: Advanced,  Next: Expert Info,  Prev: Getting Star\
ted,  Up: Top

2 Advanced Info Commands
************************

This chapter describes various advanced Info commands.  (If you are
using a stand-alone Info reader, there are additional commands specific
to it, which are documented in several chapters of *note GNU Info:
(info-stnd)Top.)

   ...

* Menu:

* Search Text::          How to search Info documents.
* Search Index::         How to search the indices for specific subjects.
* Go to node::           How to go to a node by name.
* Choose menu subtopic:: How to choose a menu subtopic by its number.
* Create Info buffer::   How to create a new Info buffer in Emacs.
* Emacs Info Variables:: Variables modifying the behavior of Emacs Info.

依照Menu可以进行node间的跳转,比起man来说,阅读更加方便

参考文献

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容