From 094942020a1bff7e613769f60b24d2dafeaa4c5a Mon Sep 17 00:00:00 2001 From: mrikor Date: Mon, 30 Sep 2019 09:11:40 +0900 Subject: [PATCH] update README-ja.md --- README-ja.md | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/README-ja.md b/README-ja.md index dcd8c9f..0cabdb8 100644 --- a/README-ja.md +++ b/README-ja.md @@ -38,7 +38,7 @@ 注意 : -- 1ページ内に収めるために、内容には暗黙的に書かれていることがある。ここで取りかかりを知ったりコマンドが分かれば、詳細をどこかで調べたりするくらいはできるだろう。新しいプログラムをインストールするには、`apt-get`、`yum`、`dnf`、`pacman`、`pip`、`brew`(どれか適したもの)を使おう。 +- 1ページ内に収めるために、内容には暗黙的に書かれていることがある。ここで取りかかりを知ったりコマンドが分かれば、詳細をどこかで調べたりするくらいはできるだろう。新しいプログラムをインストールするには、`apt`、`yum`、`dnf`、`pacman`、`pip`、`brew`(どれか適したもの)を使おう。 - コマンドやオプション、パイプを分解して理解する手助けに、[Explainshell](http://explainshell.com/)を使おう。 ## 基本 @@ -47,7 +47,10 @@ - テキストエディタのどれか最低1つに習熟しよう。`nano`エディタは編集の基本操作(開く、修正する、保存する、検索する)を学ぶ最もシンプルな方法のひとつだ。ターミナル内で適当にものを書くにあたって他に全く代替品がないという点で、理想的にはVim(`vi`)がよいだろう(通常はEmacsや高機能なIDEや最新のかっこいいエディタをメインに使っていたとしても)。 -- `man`でのドキュメントの読み方を知ろう(知りたがりのために書くと、`man man`でセクション番号が分かる。例えば1は「一般的な」コマンド、5はファイルやそのお作法、8は管理についてといった具合)。`apropos`でmanページを探そう。コマンドによっては実行可能ファイルではなくBashのビルトインコマンドであることを理解し、`help`や`help -d`でヘルプが見られることを知ろう。 +- ドキュメントの検索について: + - `man`でのドキュメントの読み方を知ろう(知りたがりのために書くと、`man man`でセクション番号が分かる。例えば1は「一般的な」コマンド、5はファイルやそのお作法、8は管理についてといった具合)。`apropos`でmanページを探そう。 + - コマンドによっては実行可能ファイルではなくBashのビルトインコマンドであることを理解し、`help`や`help -d`でヘルプが見られることを知ろう。 + - `curl cheat.sh/command` はシェルコマンドの使用方法の一般的な例を含む簡単な「チートシート」を提供する。 - `>`や`<`、`|`を使ったパイプによる入出力のリダイレクションを学ぼう。`>`は出力ファイルを上書き、`>>`は追記となる。stdout(標準出力)とstderr(標準エラー出力)を学ぼう。 @@ -216,7 +219,7 @@ EOF - HTMLをテキストに変換するなら、`lynx -dump -stdin`。 -- MarkdownやHTMLなど様々な種類のドキュメントの変換には、[`pandoc`](http://pandoc.org/)を試してみるとよい。 +- MarkdownやHTMLなど様々な種類のドキュメントの変換には、[`pandoc`](http://pandoc.org/)を試してみるとよい。例えば、MarkdownドキュメントをWord形式に変換するには:`pandoc README.md --from markdown --to docx -o temp.docx` - XMLを扱わなくてはならないなら、`xmlstartlet`は古いがいいツールだ。 @@ -356,9 +359,14 @@ mkdir empty && rsync -r --delete empty/ some-dir && rmdir some-dir - `sort`や`uniq`を使ってテキストファイルの共通部分、結合、差異を求める時に特に便利なのが以下のやり方。`a`と`b`はそれぞれ内容に重複のないテキストファイルとする。この方法は高速で、数GB程度までの任意のファイルサイズで動作する(`/tmp`が小さなルートパーティションにある場合は`-T`オプションをつける必要があるが、ソートはメモリ内で行われるとは限らない)。上述の`LC_ALL`と`sort`の`-u`オプションも参照のこと。 ```sh - cat a b | sort | uniq > c # cはaとbの和集合 - cat a b | sort | uniq -d > c # cはaとbの共通部分 - cat a b b | sort | uniq -u > c # cはaとbの差異 + sort a b | uniq > c # cはaとbの和集合 + sort a b | uniq -d > c # cはaとbの共通部分 + sort a b b | uniq -u > c # cはaとbの差異 +``` + +- 2つのJSONファイルをきれいに出力し構文を正規化してから、結果に色を付けて表示する。 +```sh + diff <(jq --sort-keys . < file1.json) <(jq --sort-keys . < file2.json) | colordiff | less -R ``` - `grep . *`(各行にファイル名が付く)や、`head -100 *` (ファイル毎にヘッダーが付く)を使って手軽にディレクトリ内の全てのファイルの中身を確認できる。設定ファイルが含まれるような`/sys`や`/proc`や`/etc/`に対して非常に便利である。