1 日 1 問、半年以内に習得 シェル・ワンライナー 160 本ノック
イチニチイチモンハントシイナイニシュウトク シェルワンライナーヒャクロクジュッポンノック
- 著者:
- 上田 隆一 / 山田 泰宏 / 田代 勝也 / 中村 壮一 / 今泉 光之 / 上杉 尚史(ウエダ リュウイチ / ヤマダ ヤスヒロ / タシロ カツヤ / ナカムラ ソウイチ / イマイズミ ミツユキ / ウエスギ ナオフミ)
- 出版社:
- 技術評論社
- 出版日:
- 2021年09月27日頃
- ISBN:
- 9784297122676
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
シェルのワンライナー (その場かぎりの 1 行プログラム) は、Linux や Mac のコマンドラインインターフェースを立ち上げたら、すぐにプログラムを書いて即実行できます。ちょっとした作業を手っ取り早く片付けるのに向いています。大量のデータ処理、繰り返し処理ほどその効果は絶大です。本書は、そんなシェル・ワンライナーを身につけるためのトレーニング本です。大量の問題を繰り返し解くことで、実務でワンライナーを活用できるようになることを目指します。
第 1 部でシェルによるデータ加工の定石を学び、第 2 部でとっさの閃きと柔軟な発想力を養い、第 3 部で実務にありそうな問題に取り組むことで応用力を鍛えます。実務でワンライナーを役立てるには、OS (Linux)、シェル、スクリプト言語、正規表現、文字コード、画像データ、日付や時間データ、通信プロトコルなどの幅広い知識が必要となります。本書では、まず[練習問題]でそのような事前知識を解説し理解を含め、[問題]で力試しを行うという構成になっています。
技書の森解説
Linux や Mac のコマンドラインで、その場かぎりの 1 行プログラムを書いて作業を片付けるシェルのワンライナーを、大量の問題を繰り返し解くことで身につけるトレーニング本が『シェル・ワンライナー 160 本ノック』 (上田 隆一、山田 泰宏、田代 勝也、中村 壮一、今泉 光之、上杉 尚史 著、技術評論社、2021 年 9 月 27 日発売) です。叢書は Software Design plus で、版元の書名表記には「1 日 1 問、半年以内に習得」の冠が付きます。版元の紹介文は、ワンライナーはちょっとした作業を手っ取り早く片付けるのに向き、大量のデータ処理や繰り返し処理ほど効果が大きいと説明し、実務でワンライナーを活用できるようになることを本書の目標に掲げています。
全 3 部 9 章の構成、Linux 環境の準備から SSL 証明書の調査まで
第 1 部「シェルとコマンドに親しむ」は、第 1 章「Linux 環境」で環境の準備と、端末、シェル、コマンド、ファイルの関係から入り、sed による置換、grep による検索、awk による検索と計算、sort と uniq による集計、xargs による一括処理といった頻出コマンドの練習へ進みます。第 2 章「シェルの基本」は変数と制御構文、入出力の操作、プロセス、ブレース展開とファイルグロブ、シグナルを扱います。第 2 部「発想力を鍛える」は第 3 章「文章と文字の扱い」、第 4 章「データの管理、集計、変換」、第 5 章「文字コードとバイナリ」、第 6 章「パズル」の 4 章で、表形式のデータや日付と時間の扱い、数学で遊ぶ問題までが並びます。第 3 部「応用する」は第 7 章「Linux 環境の調査、設定と活用」で疑似ファイルシステムやシステムコールの追跡を、第 8 章「ソフトウェア開発中に繰り出すワンライナー」でソースコードの調査と整形、データの生成、Git のリポジトリの調査を扱い、第 9 章「インターネットと通信」の問題 160「SSL 証明書の調査」で終わります。版元の紹介文は、第 1 部で定石を学び、第 2 部でとっさの閃きと柔軟な発想力を養い、第 3 部で実務にありそうな問題に取り組んで応用力を鍛える、という流れを示しています。
練習問題で知識を補い、問題で力を試す二段の作り
紹介文によれば、実務でワンライナーを役立てるには、Linux という OS、シェル、スクリプト言語、正規表現、文字コード、画像データ、日付や時間のデータ、通信プロトコルといった幅広い知識が要ります。本書はそこで、まず練習問題でこうした事前知識を解説し、そのうえで問題で力試しをする構成をとっています。目次でも、第 1 章の「端末を使う」「コマンドの止め方」のような練習の項目が問題の前に置かれ、問題には 1 から 160 までの通し番号が振られています。ファイル名の検索や画像ファイルの一括変換、ログの集計と抽出といった問題が第 1 章から登場するため、知識を一通り覚えてから使うのではなく、手を動かしながら必要な知識を拾っていく進め方になります。
パイプでコマンドをつなぐ考え方と、スクリプトとの使い分け
ワンライナーの土台にあるのは、1 つのことをうまくこなす小さなコマンドを、テキストの流れを介してパイプでつなぐという UNIX の考え方です。抽出、並べ替え、集計といった処理を別々のコマンドに任せると、1 段ずつ出力を確かめながら処理を足していけるため、試行錯誤の速さが大きく変わります。その一方で、同じ処理を繰り返し使うなら、ファイルに保存して引数や例外の扱いを整えた シェルスクリプト にするほうが保守しやすく、その場で書き捨てるワンライナーとは役割が分かれます。またファイル名に空白を含む場合の扱いや、文字コードと改行の違い、コマンドの版によるオプションの差は、1 行のつもりの処理が思わぬ結果を返す典型的な原因です。こうした落とし穴を問題を解く過程で一つずつ踏んでおくことが、本番の作業で手を止めないための近道になります。
システム管理者から研究者まで、コマンドラインで手を速くしたい人に
版元が挙げる対象は、シェル・ワンライナー (シェル芸) を習得したい人、Linux や Unix を使いこなしたい人、システム管理者やサーバー・ネットワーク管理者、インフラエンジニア、大学や企業、研究機関の研究者です。第 1 章が端末の使い方から始まるため、コマンドラインに触れたことがある程度でも入れますが、本書は問題を解いて鍛える形式なので、シェルの文法やコマンドの仕様を項目順に引く解説書として使いたい場合には向きません。体系的な解説と組み合わせたいなら、Linux 本の選び方 を参考に、コマンドラインの操作を解説した本を手元に置いておくと進めやすくなります。
ログやデータを前に毎回スクリプトを書くか表計算ソフトに頼っている人、あるいは調査のたびにコマンドの組み合わせを検索している人にとって、160 の問題で定石から応用まで手を動かせる本書は、日々の作業の速さに直結する一冊です。書名の冠どおり 1 日 1 問のペースで進めれば、半年ほどで最後の問題までたどり着けます。
言及した記事 (8 件)
書籍購入をもっと便利に!!openBDで書誌情報検索!
♡ 10JavaScript, API, 書籍, Vue.js, openBD【シェル芸本】テキスト処理に使うLinuxコマンドをまとめる。
♡ 4Linux, シェル芸, LinuxコマンドMacのgrep,sedをBSD版からGNU版に変更する
♡ 2sed, grep, GNU, BSDオレオレシェル芸ワンライナーチートシート
♡ 1Bash, ワンライナー, シェル芸, チートシート, LinuxコマンドMacで簡単にLinux環境を構築して「1日1問、半年以内に習得 シェル・ワンライナー160本ノック」を行う方法
♡ 1Mac, Lima, WSL2Software Design
♡ 0SoftwareDesign, DoCAP, kojimadevAlmaLinux 8をWindows10(WSL)に入れて初期設定しました
♡ 0AlmaLinuxシェル芸本 問題3の別解1を解読する
♡ 0シェル芸
関連記事
マンガで学ぶプログラミングはアリなのか
マンガ形式のプログラミング入門書は、ちゃんと学べるのか。マンガ本の強みと弱み、活用法を正直に解説します。
Git / GitHub 本ガイド - マンガ / GUI / 仕組み理解の 3 つの入口で選ぶ
Git と GitHub を学ぶ本の選び方を「入口の違い」で整理。マンガで概念を掴む本、GUI から入る本、仕組みを腹落ちさせる本、チーム開発の作法を学ぶ本、手元に置くリファレンスまで、2026 年 8 月時点の定番書で独学ルートを解説します。
Linux 本ガイド - コマンドライン / しくみ / 性能の 3 層で選ぶ技術書
Linux を学ぶ技術書の選び方を 3 層 (コマンドラインの操作 → カーネルのしくみ → 性能と運用) で整理。新しい Linux の教科書や [試して理解] Linux のしくみなどの定番書の使い分けと、学ぶ順番を解説します。
関連用語
CLI
コマンドを文字で打ち込んで操作する方式。自動化と効率的な作業に強い
Bash
Linux で標準的に使われるシェル。macOS にも同梱され、コマンド操作と自動化の中心になる
UNIX
多くの OS の源流となった基本ソフト。設計思想は現代の Linux や macOS に受け継がれる
ShellScript
シェルのコマンドをまとめて自動実行するスクリプト。作業の自動化に使われる
GitHubCopilot
GitHub が提供する AI コーディング支援ツール。コードの提案で開発を加速する
Command パターン
操作をオブジェクトとしてカプセル化し、実行の遅延、キューイング、取り消しを可能にするデザインパターン