- 奈佐原 顕郎 [けんろう], 2016: 入門者の Linux — 素朴な疑問を解消しながら学ぶ (ブルーバックス B1989)。講談社, 315 pp. ISBN 978-4-06-257989-6.
2016年に出た横書きの新書本。わたしは (2021年から Linux のつかいかたをおしえるたちばになったので) 2022年4月に買った。
計算機の利用は、MS Windows をはじめとするOS上で、GUI (graphical user interface) という方法で、つまり画面上に図形として表示されたメニューをマウス操作などで選択することによってつかうのが、ちかごろはふつうになっている。しかし、もっと古くからあるつかいかたとして、キーボードから文字からなるコマンドをうちこんで実行させる CLI (command line interface) がある。(本書では CUI (character user interface) という表現をつかっている。CLI でない CUI もありうるのだが、本書にはそういうものは出てこないので、さしつかえないだろう。) とくに、時間のかかる計算をするばあいや、同じプログラムを一連の同様に名まえのついたデータファイルについて実行するばあいなどには、CLI のほうがよい。CLI で計算機をつかうには、Unix のながれをくむ OS が むいている。Linux はそのような OS のうちで、フリーであり、個人のパソコンにいれてつかうのに適したものである。
ちかごろの Linux の本は、サーバー機のシステム管理を主とするものが多くなってきたが、本書はそうではなく、ユーザーがデータ解析をする際の操作 (コマンドラインの入力とそれをうけつける「シェル」の機能の利用、ファイルとディレクトリ (ファイルを置く場所) の指定のしかた、コマンドの入出力データのひきわたしかた) を中心として、自分のパソコンに Linux をいれてつかうのに最小限程度のシステム管理の話題をふくめたものである。そのような教材として、本書は適度にまとまっていると思う。
Linux にはいろいろな distribution があるが、本書では Ubuntu 16.04 をつかっている。Ubuntu は年2回改訂されていて、2023年11月現在の最新バージョンは 23.10 であり、わたしは 22.04 をつかっているが、本書の Linux の操作に関する記述は、わたしの気づいたかぎりで変更の必要はない。GUI にくらべて CLI は変化がすくないので知識の有効性がながつづきすることは、本書の主張でもある。
本格的なプログラミングにはたちいっていないが、シェル言語 (bash) と プログラミング言語 awk による簡単なプログラミングがふくまれている。【わたしも awk をよくつかうが、シェル言語はにがてで、Linux になれた人ならばふつうシェルスクリプトで処理するところを awk で処理するくせがある。】
エディタとしては vi をつかっている。【わたしは vi より原始的なラインエディタ ed には熟練したが、vi をおぼえられず、教材では emacs をつかっている。わたしの授業をとる人の自習教材として本書をすすめるならば、emacs のつかいかたをなにかで補充する必要がある。】
著者の専門は、水文にかかわるリモートセンシング (衛星による地球観測) である。わたしは、もう10年以上まえになるが、研究関係の会合で著者と顔をあわせたことがある。
本書の題材のなかに、気象衛星 ひまわり の画像データの利用がある。そこにあげられている千葉大学の ftp サイト の URL は、いま (2023-11-12) も「latest」のところを「V20151105」に変えれば対応するものがある。【「V20190123」のほうは、「201607/TIR」の下に png ファイルがない。わたしは geoss.bz2 でおわる名まえのファイルを自分のプログラムで処理しているが、それは別の技術の話になる。】
折りかえしのあとに くわしい目次をつける。
== 目次 ==
必ずお読みください
はじめに
CONTENTS
第1章 Linuxとは?
– Linuxはオープンソース
– 直感的な操作 (GUI) と 論理的な操作 (CUI)
– なぜ Linux を学ぶのか?
– Linux だけで OK?
– Linux のキーワード
– [まとめ] そのうち慣れるから大丈夫!
– チャレンジ!
第2章 Linuxを使ってみよう! でもどこで … …
– Windows や Mac でなんとかして Linux ができないか?
– ハードディスクを付け替える
– デュアルブート
– 仮想環境
– Linux専用のパソコンを用意するのが、結局は楽
– どのディストリビューションを使う?
– Ubuntu Linux
– [脱線] Rapsberry Pi という手もある
– Ubuntu Linux をインストールしよう
– [まとめ] 意外に簡単だったインストール
第3章 シェル初体験!
– ターミナルを立ち上げよう
– コマンドを打ってみよう
– コマンドに引数やオプションをつける
– うまくいかないときはどうする?
– 打ち込んだコマンドを再利用しよう
– コピー・ペーストを活用しよう
– ストップしたいときは [CTRL] + [c]
– [まとめ] あなたと Unix をつないでくれるシェル
– チャレンジ!
第4章 ディレクトリ
– ディレクトリをめぐる旅は cd コマンドで
– ディレクトリは入れ子の構造 (ディレクトリ・ツリー)
– ディレクトリの中身を見せてくれる ls コマンド
– ディレクトリの作成 (mkdir) ・ 名称変更 (mv) ・ 削除 (rmdir)
– パス (path) は住所みたいなもの
– [まとめ] ディレクトリの理解は、データを確実・効率的に管理する第一歩
– チャレンジ!
第5章 ファイル
– ファイルの中身を見る cat コマンド
– テキストファイルは文字情報
– バイナリファイルはテキストファイル以外のファイル
– 長い名まえは補完機能で楽に入力
– ファイルを作ってみよう
– ファイルの名前変更・移動・削除
– ファイル名に使ってはダメな文字
– [まとめ] ファイルを制するもの、Linux を制す
– チャレンジ!
第6章 標準入出力
– 出力リダイレクトで画面以外に出力してみよう
– 上書き? 追記? 出力リダイレクトはどちらもできる
– 入力リダイレクトでキーボード以外から入力してみよう
– パイプで出力と入力をつなげてしまう‼
– 標準入出力
– すべてのディレクトリとファイルを数えてみよう!
– [まとめ] 標準入出力は働き者たちを束ねるベルトコンベア
– チャレンジ!
第7章 ユーザーと管理者
– アカウントがなければ使わせてもらえない
– ユーザーを識別するのがユーザー名とユーザーID
– ユーザーの集まりは「グループ」
– アカウント情報を統括する /etc/passwd ファイル
– パーミッションでアクセス権を管理する
– 管理者、またの名は root
– 管理者の大事な仕事、アップデートとインストール
– [まとめ] なぜマルチユーザー、なぜパーミッション?
– チャレンジ!
第8章 ワンライナーでプログラミングしてみよう!
– ワンライナーは小さなプログラム
– データはシェル変数に覚えさせる
– 繰り返しは for ループ
– for ループを助けてくれる seq コマンド
– カレンダー問題に挑戦‼
– あのコマンドの意味は?
– [まとめ] ワンライナーでさくっとやるのが Unix のプログラミング
– チャレンジ!
第9章 awk を使ってみよう!
– awk を体験
– いろいろなコマンドの出力を awk に流し込んでみよう
– ガウス少年に挑戦!
– 円周率を求めてみよう!
– 再びカレンダー問題
– [まとめ] おもてなし上手の「awk」は、ワンライナーの主役!
– チャレンジ!
第10章 定番のテキストエディター vi
– 老舗のテキストエディター vi
– [まとめ] vi は極め付きの頑固者、だけど慣れれば頼もしい味方
– チャレンジ!
第11章 シェルをもっと知ろう
– コマンドの実体
– シェル自体も 1つのコマンド
– シェルにはいろいろある
– シェルの組み込みコマンドは実行可能ファイルを持たない
– 環境変数は特別なシェル変数
– コマンドのありかはコマンドサーチパスで管理
– シェルスクリプトはシェルのコマンドで作るプログラム
– [まとめ] シェルを活かすも殺すもユーザー次第
– チャレンジ!
第12章 プロセスの管理と操作
– Unix はたくさんの処理を同時におこなっている
– バックグラウンドとフォアグラウンド
– ジョブとプロセス
– プロセスを強制終了する kill コマンド
– [まとめ] Linux はユーザーを「バックヤード」に入れてくれる!
– チャレンジ!
第13章 応用!
– 文章の中で最も使われる単語は?
– 衛星画像のアニメーションを作ってみよう!
– ウェブカムの画像を自動的にダウンロードしよう!
– [まとめ] Unix の CUI は、コンピュータの能力を存分に引き出してくれる!
– チャレンジ!
終章 「Linux力」をつけるには?
– 「Linux力」はインストール回数に比例する!
– コンピュータのことはコンピュータに聞こう!
– 古い情報に注意!!
– 最後に「Linuxの魅力」とは?
謝辞
参考文献
さくいん
==========