おれさまラボ

実際に手を動かして理解を深めるブログ。

コマンドを調べるコマンド

コマンドの使い方がわからないときに、特別なコマンドでその使い方を調べることができます。

man

言わずと知れたman。コマンドの意味、詳細な使い方を調べることができます。

$ man grep

GREP(1)                                 General Commands Manual                                GREP(1)

NAME
       grep, egrep, fgrep, rgrep - print lines matching a pattern

SYNOPSIS
       grep [OPTIONS] PATTERN [FILE...]
       grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

DESCRIPTION
       grep  searches  the  named input FILEs (or standard input if no files are named, or if a single
       hyphen-minus (-) is given as file name) for lines containing a match to the given PATTERN.   By
       default, grep prints the matching lines.

       In addition, three variant programs egrep, fgrep and rgrep are available.  egrep is the same as
       grep -E.  fgrep is the same as grep -F.  rgrep is the same as grep -r.   Direct  invocation  as
       either egrep or fgrep is deprecated, but is provided to allow historical applications that rely
       on them to run unmodified.

OPTIONS
   Generic Program Information

~以下略~

 

-h、--helpオプション

一部使えないコマンドもありますが、hオプションをつけることで簡単な使い方を見ることができます。

$ grep --help
使用法: grep [OPTION]... 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 を使用する
  -f, --file=FILE           FILE から PATTERN を取得する
  -i, --ignore-case         大文字と小文字を区別しない
  -w, --word-regexp         強制的に単語全体で PATTERN の一致処理を行う
  -x, --line-regexp         強制的に行全体で PATTERN の一致処理を行う
  -z, --null-data           データの行末を改行ではなく NULL とする

~以下略~

 

which

whichコマンドでは、コマンドがどこにあるのか教えてくれます。

$ which grep
/bin/grep

 

whereis

whichではコマンドの実態の場所のみでしたが、whereisコマンドではmanの場所も教えてくれます。

$ whereis grep
grep: /bin/grep /usr/share/man/man1/grep.1.gz

ちなみに、manに-wをつけると、manの場所を教えてくれます。

$ man -w
/usr/local/man:/usr/local/share/man:/usr/share/man

 

whatisコマンド

whatisコマンドは、そのコマンドについて簡潔に教えてくれます。

$ whatis grep
grep (1)             - print lines matching a pattern

ちなみに、whatisは完全一致でコマンドを探してきてくれますが、aproposコマンドでは、部分一致でコマンドを探してきてくれます。

$ apropos grep
bzegrep (1)          - search possibly bzip2 compressed files for a regular expression
bzfgrep (1)          - search possibly bzip2 compressed files for a regular expression
bzgrep (1)           - search possibly bzip2 compressed files for a regular expression
egrep (1)            - print lines matching a pattern
fgrep (1)            - print lines matching a pattern
git-grep (1)         - Print lines matching a pattern
grep (1)             - print lines matching a pattern
grepdiff (1)         - show files modified by a diff containing a regex
lzegrep (1)          - search compressed files for a regular expression
lzfgrep (1)          - search compressed files for a regular expression
lzgrep (1)           - search compressed files for a regular expression
msggrep (1)          - pattern matching on message catalog
pgrep (1)            - look up or signal processes based on name and other attributes
ptargrep (1)         - Apply pattern matching to the contents of files in a tar archive
rgrep (1)            - print lines matching a pattern
xzegrep (1)          - search compressed files for a regular expression
xzfgrep (1)          - search compressed files for a regular expression
xzgrep (1)           - search compressed files for a regular expression
zegrep (1)           - search possibly compressed files for a regular expression
zfgrep (1)           - search possibly compressed files for a regular expression
zgrep (1)            - search possibly compressed files for a regular expression
zipgrep (1)          - search files in a ZIP archive for lines matching a pattern

 

今まで使ったことがなかったのですが、どのコマンドも便利そうですね。

 

参考

Linux - LPIC システム管理コマンド (34357)|teratail

whichとwhereisの違いって?

manとwhatisとapropos