logo
株式会社エムケイシステム
TECH BLOG

Linux 初心者を脱却するために ヘルプを読もう!

怖くないヘルプ

初心者の皆さんはヘルプを読んでいないかと思いますが、中級者の階段を登るためにはヘルプを読む必要があります。 今日はヘルプの読み方について軽く説明をしましょう。

コマンドのヘルプの見方

Linux やUnix 等CUI のコマンドは、-h--help help 等を伴って起動することでヘルプを表示することができます。 ちなみに Windowsの場合は /? が多いです

例えばオプション覚えれないコマンドランキング1位の tar コマンドに対してヘルプを表示するとこんな感じで出てきます。 実行した環境はMacなのでBSD tar というコマンドが入っておりlinux とコマンド体系が違うので注意が必要です。

$ tar --help
tar(bsdtar): manipulate archive files
First option must be a mode specifier:
  -c Create  -r Add/Replace  -t List  -u Update  -x Extract
Common Options:
  -b #  Use # 512-byte records per I/O block
  -f <filename>  Location of archive
  -v    Verbose
  -w    Interactive
Create: tar -c [options] [<file> | <dir> | @<archive> | -C <dir> ]
  <file>, <dir>  add these items to archive
  -z, -j, -J, --lzma  Compress archive with gzip/bzip2/xz/lzma
  --format {ustar|pax|cpio|shar}  Select archive format
  --exclude <pattern>  Skip files that match pattern
  -C <dir>  Change to <dir> before processing remaining files
  @<archive>  Add entries from <archive> to output
List: tar -t [options] [<patterns>]
  <patterns>  If specified, list only entries that match
Extract: tar -x [options] [<patterns>]
  <patterns>  If specified, extract only entries that match
  -k    Keep (don't overwrite) existing files
  -m    Don't restore modification times
  -O    Write entries to stdout, don't restore to disk
  -p    Restore permissions (including ACLs, owner, file flags)
bsdtar 3.3.2 - libarchive 3.3.2 zlib/1.2.11 liblzma/5.0.5 bz2lib/1.0.6

上から読んでいきましょう

First option must be a mode specifier: -c Create -r Add/Replace -t List -u Update -x Extract

1つ目のオプションはモードを定義します

-c 作成 -r 追加/置換 -t リスト -u アップデート -x 展開

だそうです。cとx しか使ったこと無いですね。

Common Options:

共通オプションとして

-b I/O blockごとに512-byteのレコードを使う 意味わからないですね多分使わないので忘れましょう -f ファイル名を指定します。 いつも使います ちなみにこのファイル名とはtar ファイルのことです -v 冗長表示 何をやっているが仮面表示が出るので便利です いつも使います。 -w インタラクティブに実行できるらしいです このドキュメントを書くために、初めて使ったのですが毎回yes /no を聞いてきて冗長です

疑似BNF

BNFとはバッカス・ナウア記法(Backus–Naur form)のことで、ジョン・バッカスさんとピーター・ナウアさんが発明した、文法を定義する記法です。 中級者になってプログラミング言語を作る時にもう一度BNFにはお世話になるので名前だけ覚えておきましょう。 コマンドのヘルプはこのBNFを簡略化した記法が利用されています。

作成のモードについてヘルプを見てみましょう.

tar -c [options] [<file> | <dir> | @<archive> | -C <dir> ]

tar -c この様に記号がない部分はそのまま記述する必要があります [options] このように[ ] で囲われている部分は省略可能を意味しています <file> みたいな感じで <> で囲われている文字は後で説明が出てきます <file> | <dir> このように | で囲われている部分はどれかを記述することができます。心のなかで or って読むと読みやすいです <file> | <dir> | @<archive> | -C <dir> これを日本語で書くと <file> 又は <dir> 又は @<archive> 又は -c <dir> のいずれかを設定可能という意味になります。 また外側が [] なので全体を省略することも可能です。 @<archive> これは <archive> が hoge.tar のとき @hoge.tar と記載するという意味です。(全然知らない記法ですね)

以上を統括すると tar -c -f hoge.tar config みたいなコマンドを叩くと config 配下のファイルが<dir> と解釈され、-f hoge.tar options により、hoge.tar に書き込まれるという実行結果になります。 落ち着いて読むと結構読めますね。 慣れてくるとサクサク読めるようになるのでみんな頑張って読みましょう。

もっと勉強したい場合は

利用したいオプションがヘルプで見つからない場合は man コマンドを利用して詳細なマニュアルを見ることができます。 man tar

これは次回また機会があれば紹介したいと思います。


弊社では、一緒に会社を面白くしてくれる仲間を募集しています。
お気軽にお問い合わせください!
採用ページへ >