入門者のLinux 素朴な疑問を解消しながら学ぶ (ブルーバックス)

【最新 – Linuxを学ぶおすすめ本 – 入門から応用までリストアップ!】も確認する

Linuxに必要な考え方を体得できる

Linuxの基礎から応用まで、実際に手を動かしながら学ぶことができます。わかりやすさ重視で、初心者にやさしい構成になっています。コマンド入力の利便性を理解でき、体系的な知識を身につけることができます。Linuxの学習を始めようとしている方におすすめの1冊です。

奈佐原顕郎 (著)
出版社: 講談社 (2016/10/18)、出典:出版社HP

必ずお読みください

本書は、パソコン(Windows・Mac)の基本操作や、インターネットの一般的な操作(検索やダウンロードなど)を独力でおこなえる方を対象にしています。
本書に掲載しているコマンドは、以下のディストリビューションで動作することを確認しています。

  • Ubuntu16.04LTS
  • Raspbian(NOOBSv1.9.2とv1.9.3)

シェルはbashを前提とします。できるだけ多くのLinux(Unix)で動作するコマンドを掲載する方針で選定していますが、上記以外の環境をお使いの場合、設定やコマンドのバージョンによっては、動作結果が異なる(動作しない)可能性があります(掲載されているコマンドの実行結果画面は、Ubuntu16.04LTSのものです)。また、本書に掲載されている情報は、2016年9月時点のものです。実際にご利用になる際には変更されている場合があります。あらかじめご了承ください。
コンピュータという機器の性質上、本書はコンピュータ環境の安全性を保証するものではありません。著者ならびに講談社は、本書で紹介する内容の運用結果に関していっさいの責任を負いません。本書の内容をご利用になる際は、すべて自己責任の原則でおこなってください。
著者ならびに講談社は、本書に掲載されていない内容についてのご質問にはお答えできません。また、電話によるご質問にはいっさいお答えできません。あらかじめご了承ください。追加情報や正誤表などは、以下の本書特設ページに掲載いたします。
http://bluebacks.kodansha.co.jp/special/linux.html

本書で紹介される団体名、会社名、製品名などは、一般に各団体、各社の商標または登録商標です。本書では™️、Rマークは明記していません。

  • 目次・本文デザイン/島浩二

はじめに

あなたはLinuxを使ったことがありますか?多分あります。意識していないかもしれませんが。Linuxは、世界で最もたくさん使われている基本ソフトです。基本ソフト(OSとも呼ばれます)とは、WindowsやMac OS Xのように、コンピュータを動かすための「縁の下の力持ち」的なソフトウェアです。スマートフォンやタブレット端末のAndroidという基本ソフトは、実はLinuxをベースに作られています。Googleなどのインターネット検索エンジンで使われる基本ソフトの多くはLinuxです。テレビやDVDレコーダーの基本ソフトにもLinuxが使われており、選局や録画、編集、ハードディスクの管理などを助けてくれています。

たくさんのLinuxのお世話になっているからでしょうか、Linuxのことをもっと知りたい、使いこなせるようになりたい、という人が、少しずつ増えているようです。本書を手に取ったあなたもその1人でしょうか?

世の中には、Linuxの入門書がたくさんあります。それは、Linuxを習得したいのにうまくできない、という人が大勢いることの証拠でもあります(もし簡単に習得できるのなら、1冊の薄い定番の入門書があれば十分でしょう!)。なぜLinuxは難しいのでしょうか?

Linuxに関する細かいハウツー情報はネットでたくさん見つかります。たとえば「Linuxダウンロードインストール」のようなキーワードで検索すれば、Linuxをダウンロードしてあなたのパソコンにインストールすることは、簡単にできます(本当です!WindowsやMacでブラウザやUSBメモリを使うことができる人ならば)。Linuxを使っているうちに何かエラーが出たら、そのエラーメッセージを検索すれば、多くの場合、原因や対処法が見つかります。

でも、初心者がLinuxを学ぶときの障害は、そういうハウツー情報の不足ではなく、やっているうちに随所で感じる戸惑いや違和感であり、それは、「Linuxってなんでこうなんだ?」という、イライラした気持ちを伴った疑問なのです。ある意味、カルチャーギャップというか。

そういう疑問は、その場その場で無理に解消しようとせず、適当に「スルー」して、とにかくLinuxを学び続け、使い続けていれば、そのうちに自然に解消するものです。要するに、「習うより慣れろ」なのです。ところが、そう言われても、どうしてもいろんなことが気になってしまうのが人間です(特に、歳をとってくると!)。人間は、コンピュータと違って、正しい情報と指示を与えれば正しく働くというものではないのです!

本書は、そういう「人間らしい」あなたに、「とりあえず」納得して呑み込んでいただけることを目指します。あなたが、「ん?なんでそんなことするの?」「あれ、それだとなんかもやもやする」となりそうなところで、できるだけLinuxを支える文化や考え方をざっくり解説します。それは、ときには合理的な思想だったり、ときには単なる慣習だったりします。それを読んで、「とりあえずはそういう理解でいいのか、ま、それならそれでいいか」という気分になっていただけたら成功です!そして本書で「Linuxってこんなものか」「専門的だと思ってたけど、意外にできそう」「次は厚めの入門書を読もう」などの印象を持っていただけたらもっと成功です!
本書はWindowsやMacはそこそこ使えて(メール、ブラウザ、Officeソフトなど)、なんだかLinuxも面白そうだからいじってみたい、という人を対象とします。これから少しずつお話ししますが、Linuxには、素晴らしい機能がたくさんある一方、できないこと・やりにくいこと・とっつきにくいこともあります。ですから、本書はWindowsやMacを今すぐ捨ててLinuxに乗り換えよう!とすすめたりはしません。

Linuxの魅力は、「みんなが自由に使い、みんなで育てる」というポリシーや、社会の隅々まで浸透し続ける汎用性、時代を超えても揺るがない堅牢な設計思想など、多くの面にあります。私はLinuxやコンピュータの専門家ではありませんが、そのような魅力を味わった結果、Linuxが仕事や勉強に直接役立つようになりましたし、生き方やものの考え方にも良い影響を受けたと思います。あなたにも、そのような良い体験が訪れることを願っています。

本書の読み方

  • 本書はLinuxの考え方を体験的に、おおまかに理解していただく本であり、Linux全体を解説するという観点では偏りがあります。本書を読了されたら、より包括的なLinux入門書を読まれることをおすすめします。
  • 本書は、知識や考え方を次第に積み重ねるスタイルで作っていますので、本文はなるべく読み飛ばさずに順に読むことをおすすめします。ただし、「スルーで」とか「読み飛ばしても構いません」と書いてある箇所や、後述する演習問題は読み飛ばしてもOKです。
  • 理解を定着させるために、掲載されているコマンドを実際に打ち込んで試し、確認しながら読み進めてください。
  • 各章の最後に「チャレンジ!」として演習問題を載せています。これらは解かなくても後ろの章の理解には支障ありません。多くは、すでに学んだ知識を使ってちょっとした「イタズラ」をするような内容です。これらを通して、「なるほどLinuxはこういうふうに遊びながら学べばよいのか」と思っていただけたら嬉しいです。
  • できるだけLinuxの歴史・文化を尊重するように努めましたが、初心者がスムーズに読めるようにするため、あえて思い切って単純化して書いた箇所もあります。それらは歴史的な経緯や用語法と整合しないこともあります(たとえば、viのモードの説明等)。厳密さを求める人(特にLinuxのエキスパート)には、「それちょっと違うよ」と思われることがあるかもしれませんが、このような趣旨を理解してくださるよう、お願いいたします。

2016年9月著者

奈佐原顕郎 (著)
出版社: 講談社 (2016/10/18)、出典:出版社HP

CONTENTS

必ずお読みください
はじめに

第1章 Linuxとは?
Linuxはオープンソース
直感的な操作(GUI)と論理的な操作(CUI)
なぜLinuxを学ぶのか?
LinuxだけでOK?
Linuxのキーワード
まとめ そのうち慣れるから大丈夫!
チャレンジ!

第2章 Linuxを使ってみよう!でもどこで……?
WindowsやMacでなんとかしてLinuxができないか?
ハードディスクを付け替える
デュアルブート
仮想環境
Linux専用のパソコンを用意するのが、結局は楽
どのディストリビューションを使う?
Ubuntu Linux
脱線Raspberry Piという手もある
Ubuntu Linuxをインストールしよう
まとめ 意外に簡単だったインストール

第3章 シェル初体験!
ターミナルを立ち上げよう
コマンドを打ってみよう
コマンドに引数やオプションをつける
うまくいかないときはどうする?
打ち込んだコマンドを再利用しよう
コピー・ペーストを活用しよう
ストップしたいときは[CTRL]+[C]
まとめ あなたとUnixをつないでくれるシェル
チャレンジ!

第4章 ディレクトリディレクトリをめぐる旅はcdコマンドで
ディレクトリは入れ子の構造(ディレクトリ・ツリー)
ディレクトリの中身を見せてくれるIsコマンド
ディレクトリの作成(mkdir)・名前変更(mv)・削除(rmdir)
パス(path)は住所みたいなもの
まとめ ディレクトリの理解は、データを確実・効率的に管理する第一歩
チャレンジ!

第5章 ファイル
ファイルの中身を見るcatコマンド
テキストファイルは文字情報
バイナリファイルはテキストファイル以外のファイル
長い名前は補完機能で楽に入力
ファイルを作ってみよう
ファイルの名前変更・移動・削除
ファイル名に使ってはダメな文字
まとめ ファイルを制するもの、Linuxを制す
チャレンジ!

第6章 標準入出力
出力リダイレクトで画面以外に出力してみよう
上書き?追記?出力リダイレクトはどちらもできる
入力リダイレクトでキーボード以外から入力してみよう
パイプで出力と入力をつなげてしまう!
標準入出力
すべてのディレクトリとファイルを数えてみよう!
まとめ 標準入出力は働き者たちを束ねるベルトコンベア
チャレンジ!

奈佐原顕郎 (著)
出版社: 講談社 (2016/10/18)、出典:出版社HP

第1章

Linuxとは?

世の中は、さまざまなコンピュータであふれていますね。パソコンやタブレット、スマホだけでなく、自動車や家電の中にもコンピュータは入っていますし、その一方で、最先端の金融取引や科学計算の世界では巨大なコンピュータが活躍しています。それらは当然、性能も規模も仕様もさまざまですが、1つ共通していることがあります。それは、「基本ソフト」を載せないと動かない、ということです。「はじめに」でも述べましたが、基本ソフトとは、コンピュータを動かすための「縁の下の力持ち」的なソフトウェアです。

Linuxは、コンピュータの基本ソフトの一種です。そして、ありがたいことに、Linuxは、世の中のほとんどのコンピュータに載るのです。ということは、Linuxを知れば、あなたは多種多様なコンピュータを駆使する能力(の基礎)を獲得できるのです。素敵ですね!
では「Linuxを知る」にはどうすればよいのでしょう?何よりも、Linuxを使ってみるのがいちばんの早道ですし、本書もそのような方針で進めます。でも、やってみればわかりますが、Linuxに慣れるまでは、いろいろなところに落とし穴やちょっとした壁もあります。そういうときに投げ出さないで、もう少しLinuxとつきあってみようか、と思えるように、最初にLinuxの生い立ちや背景を知っておくのも悪くないと思います。というわけで、本当は長い「Linuxのドラマ」を、以下に短くまとめてみます。

昔々(Linuxが生まれるはるか前、1970年頃)、米国で、Unix(ユニックス)という素晴らしい基本ソフトが誕生しました。Unixはその後、いくつかの種類に分化し世界中に普及し、以来ずっと第一線で活躍しています。特に、スーパーコンピュータやグリッドコンピュータといった大型コンピュータや、インターネットを支えるサーバーコンピュータの中で使われています。

【質問】UnixやLinuxってどう発音するのですか?
【答】Unixは「ユニックス」です。Linuxは「リナックス」と発音する人と「ライナックス」と発音する人がいますが、どちらでもいいと言われます。ちなみに私は前者です。

基本ソフトは、コンピュータを使うための基盤ですから、よい基本ソフトができると、コンピュータの操作やソフトゥェアの開発がとても楽になるのです。Unixの中心的な開発者には、その功績によって2011年に日本国際賞(いわば日本版のノーベル賞)が贈られました。

【質問】日本国際賞を贈られたってことは、Unixは日本人が作ったのですか?
【答】いえ、違います。ケン・トンプソンとデニス・リッチーという米国人です。日本国際賞は、日本人に限らず、科学技術で世界的な業績を挙げた人を顕彰します。ちなみにLinuxを作ったのはリーナス・トーバルズというフィンランド人です。このすぐあとに出てくるフリーソフトウェア(オープンソースソフトウェア)を主導したのはリチャード・ストールマンという米国人です。ITの偉人といえばビル・ゲイツやスティーブ・ジョブズが有名ですが、上述の人達は、彼らに劣らない偉人達です。

一方、同じ頃、フリーソフトウェアとかオープンソースソフトウェア(あるいは略してオープンソース)という思想がソフトウェア開発者の間で生まれ、発展していきました。これは、「皆がよく使うソフトウェアは、そのソースコード(プログラムの設計図、というか実体そのもの)を秘密にせず完全にオープンにし、なおかつ、誰もがそれを無料(ただし一定のルールのもと)で利用したり改良できるようにしよう」という考え方です(あとでもう少し詳しく説明します)。これによって、多くの便利なソフトウェアが生まれ、育ち、普及していきました。

ところが、最も基本的で最も広く普及したソフトウェアであるUnixは、厳密な意味でのオープンソースではなかったのです。そこで、オープンソース版のUnixを開発するいくつかの試みが、1990年頃から始まりました。その中で、最終的に最も普及したのがLinuxだったのです。それまでは、大きなコンピュータにしか載らなかった有料のUnixが、Linuxという形で、パソコンの上に、しかも無料で載るようになったのです!

【質問】LinuxはUnixの一種、ということですか?
【答】ざっくり言えばそうです。たとえば日本語にもいろいろな方言があるように、Unixにもいろいろな種類のものがあります。ただ、Linuxは厳密にはUnixではない、という考え方もあります。この詳細は、インターネットで「UnixとLinux」をキーワードにして検索すると、いろいろわかります。

【質問】無料のUnixとしてLinuxができたら、商用のUnixは誰も使わなくなったのですか?
【答】いえ、そんなことはありません。商用Unixは、技術力の高いコンピュータメーカーが、自社製品の性能を最大限に発揮するために独自に作り込むので、用途によっては、今も立派に使われています。ただ、Linuxが広まってきたので、Linuxとの親和性を高めた商用Unixや、Linux同様にオープンソースとして無料で公開された商用Unixもあります。

【質問】基本ソフトって、Windowsとか、MacのOSXとかのことですよね。私のまわりではコンピュータといえばWindowsとMacです。本当にUnixやLinuxって使われているのですか?
【答】確かに、パソコンではマイクロソフト社のWindowsとApple社のMac OS Xが強いですね。でも、実は、OSXは、UnixをベースとしたOSなのです(Linuxではありませんが)!パソコン以外、たとえばスマートフォンやタブレットでは、AndroidというOSが最もよく使われていますが、AndroidはLinuxをベースとしたOSです。また、たとえば、世界最速のスーパーコンピュータのランキング(TOP500SupercomputerSites)では、2016年6月時点での上位500機のうちLinuxを採用したのはなんと497機、そして残りの3機はLinux以外のUnixでした。

Linuxはオープンソース

Linuxが世界中で支持され、普及しているのは、世界標準であるUnixを受け継いでいるだけでなく、前述のように「オープンソース」だからです。オープンソースをめぐる歴史とドラマにはさまざまなものがあり、本書ではとても書ききれませんので、「オープンソース」で検索してみてください。

ここでは簡単にオープンソースの利点を述べます。まず、どんなソフトも、開発者が、コンピュータのプログラミング言語を用いて組み立てていきます。その工程を「プログラミング」と呼び、その成果物を「プログラム」とか「ソースコード」と呼びます。これをもとに、機械的な処理がなされて、実行可能なソフトができるのですが、開発工程で最も重要で本質的なのは、プログラミングであり、その成果物であるソースコードなのです。ソースコードには、そのソフトに関するほぼすべての技術的情報が、詳細に、直接、記載されています。たとえて言えば、「宝島の地図」みたいなものでしょうか(ちょっと違う?)。

オープンソースは、この、開発者の血と汗と涙でできた大切なソースコードを、惜しげもなく他人に公開してしまおう、という考え方です。ソースコードがあれば、そのソフトは原理的に完全に再現できるので、これは、そのソフトを無料で配ってしまうことにもなります。ソフト開発を生業にする人にとっては、自虐的・致命的な行為のようでもあります。

ところが、オープンソースを推進する人はこう考えるのです。「コンピュータが世の中に欠かせないものになった今、皆がよく使うソフトは、自由に無料で開放するほうが、結果的にそのソフトが広く普及し、それを土台にして業界は発展する。それに、インターネットを通じて見ず知らずの人がソースコードの中に不具合を見つけて直してくれたり、もっと良いものを作ってくれるかもしれない」……いかがですか?まるで若者の青臭い理想主義のようですね。しかしこの考え方は、実際にうまくいっており、多くの優れたオープンソースソフトが誕生・普及するようになったのです。

オープンソースソフトは無料で自由に使える代わりに、整ったマニュアルや手厚いサポートセンターのようなユーザーサービスがあるとは限りません。だから、オープンソースを使うには「自助努力」が必要です。わからないことはユーザーが自分で調べ、考え、工夫するのです。そうやって問題を解決したら、インターネットを通じて、同じように困っている人に教えてあげるのです。つまり、「互いに助け合う」ことも大切です。オープンソースに惚れ込んだ人達は、そうやって、自分のできることをやりながら、オープンソースを一緒に作り、育ててきたのです。

【質問】無料のソフトって、信用できないイメージがありますが。
【答】そう考える人もたくさんいます。しかし、オープンソースは「質が悪いから無料」なのではなく、ポリシーがあって無料なのです。すべての技術情報を公開し、世界中の人に検証や改良をしてもらうのです。そうやって品質と安全性を確保するのです。

【質問】「世界中の人」と言ったところで、所詮、趣味やボランティアですよね。品質保証もないし、開発者が飽きたらおしまいなのでは?
【答】そうやって消えていったオープンソースソフトもたくさんあります。しかしLinuxくらいメジャーになると、その開発やサポートをビジネスにする会社も現れ、多くのプロの技術者達が本気で関わります。一方、商業的なソフトが長生きするとは限りません。企業が開発から撤退したらおしまい、という可能性もありますよね。

【質問】無料のソフトが普及すると、お金を出してソフトウェアを買う人がいなくなり、良い商用ソフトウェアが衰退してしまうのでは?
【答】そう考える人もいます。しかし、オープンソースは「公共財としてのソフト」なのです。公共財を無料で開放することで、社会の生産性が上がるのです。それは商業主義の否定ではありません。商業も公共財の上に成り立つのです。たとえば道路や橋という公共財が無料で使えるから自動車や自転車が商品として売れ、宅配便のようなサービスも成り立つように、基本的なソフトウェアが無料だからこそできるビジネスモデルもあるのです。商用ソフトやオンラインサービスも、オープンソースをうまく組み込めば、高品質のものを低コストで作れます。実際、GoogleやFacebookは、多数のオープンソースソフトを利用し、また、自らもオープンソースソフトの開発に貢献しています。そのように、オープンソースと商業は、必ずしも対立するのではなく、一緒に発展していくのです。

ところで、オープンソースは科学研究と相性がよいのです。科学では、重要な学説は、多くの人が再現したり確認しないと認められません。実験や理論の細部まですべて公開され、チェックできるようになっていること、すなわち「検証可能性」が科学の原則です。「凄いのができたけど、詳しいことは秘密」というようなものは相手にされないのです。ところが、研究の中で使われたソフトウェアのソースコードが公開されていなければ、その内部でどういう処理や計算をやっているのかわかりません。つまり、検証可能性が崩れてしまいます。だから、科学研究では基本的にオープンソースを使うべきだと私は考えています。

また、オープンソースは、学校、特に公立学校での教育とも相性がよいのです。特定の商用ソフトを使って教育すると、生徒達はその使い慣れた商用ソフトを将来的にも使いたがるでしょう。これは、公教育が特定の商品の普及を促すということであり、公正とは言えません。それに、商用ソフトを買う経済力の有無によって、教育格差が生じかねません。また、教育現場では人の出入りが激しいため、購入したソフトをライセンスどおり運用するのは難しいのです。たとえば、生徒が黙ってソフトのコピーを持ち出してしまうかもしれません。学校は、悪意がなくても、管理のミスによって、契約ライセンス数よりも多くのコンピュータに商用ソフトをインストールしてしまうかもしれません。もしソフトにコピー防止機能があればそういうトラブルはなくなりますが、コンピュータが壊れたりコンピュータを更新するときに、そういう機能が障害になって、ソフトを別のコンピュータにうまく移し替えることができないかもしれません。
オープンソースにはそのようなことが起きない(起きても問題にならない)のです。

直感的な操作(GUI)と論理的な操作(CUI)

さて、人がコンピュータを操作するには、人の意思を何らかの手段でコンピュータに伝えねばなりません。スマホやタブレットPCではタッチパネルを指でなぞりますね。パソコンではマウスを使ってウィンドウやアイコンをクリックしたりドラッグしたりします。これらは視覚的・直感的であり、多くの人にとって敷居の低いやり方です。
ところが、複雑で繊細な操作をしようとすると、これではうまくいかないのです。たとえば、
「フォルダ内のすべての画像ファイルを選び、各ファイルの作成日をファイル名の先頭に付け、backupという名前のフォルダにコピーする」
というような操作は、タッチパネルやマウスでは簡単にはできません。何かのアプリを使うにしても、どこにどのようなメニューがあり、どこのボタンを押し、どの数値を変えればよいのか、ということを、次々にドアを開けるように探っていく必要があります。
このような複雑で繊細な操作は、タッチパネルやマウスのように「直感的に操る」やり方ではなく、「言語的・論理的に操る」やり方が必要なのです。そこで、Unixでは、アルファベットの単語の羅列のようなコマンド(命令)をキーボードから打ち込むことで基本的な操作を実現します。たとえば、上述の操作はUnixでは以下のようなコマンドでやるのです。

どう見ても、面倒くさい、とっつきにくいやり方ですね。ところが、これこそが、多様で複雑・繊細な要求をシンプルで柔軟にコンピュータに伝えるという意味では、ベストなやり方なのです。
【質問】その例のコマンドは、シンプルどころかむしろ複雑に見えますが……。
【答】フォルダ内のすべての画像ファイルを選び、各ファイルの作成日をファイル名の先頭に付け、backupという名前のフォルダにコピーする」という文章と上のコマンドを比べてみましょう。語数や文字数は少なくなっています。つまり、やりたいことをまわりくどく言い換えたり視覚化したりせずに素直にコンピュータに伝えることができているのです。「シンプル」とはこういうことなのです。

【質問】でも、こんなの、どうやって思いつくのですか?
【答】この長いコマンドは、いくつかの短い基本的なコマンドからできています。それらを覚え、組み合わせ方を理解すれば、誰でも思いつくようになります。語学の勉強に似ていますね。でも、語学だと、数千の単語と分厚い文法書をマスターしないと使えませんが、Unixのコマンドなら、数十個の基本的なコマンドとシンプルな文法だけで大丈夫です。

【質問】ウィンドウやアイコンをマウスやタッチパネルでいじるほうが楽なような気がしますが?
【答】お寿司屋さんでたとえてみましょう。アイコンやマウスの操作は、流れてくるお寿司を選んで取る回転寿司みたいなものです。寿司の名前や種類をよく知らない外国人や子どもにはとても親切ですね。一方、あなたが寿司通なら、「今日のおすすめは?」「いいコハダが入ってますよ」「それもらおうかな、連れの子にはさび抜きで。それとシメ鯖を」「ごめんなさい、シメ鯖は今日はもう終わっちゃって」というようなやりとりを職人さんと交わしたいですよね。言葉というのは、このように繊細で柔軟で論理的なやりとりに向いているのです。コマンドの操作は、あなたと職人さん(コンピュータ)の間で「言葉でのやりとり」を実現するのです。
ウィンドウやアイコンをマウスやタッチパネルで操作するやり方を、GUI(graphical user interface)と呼びます。それに対して、コマンドをキーボードで打ち込んで操作するやり方をCUI(character user interface)と呼びます(CLI=command line interfaceとも呼びます)。

おおざっぱに言って、WindowsやMacはGUIがメインです。それに対して、UnixやLinuxでは昔からCUIがメインです。CUIのとっつきにくさから、世間では「UnixやLinuxは難しい」と思われている面があります。しかし現在では、UnixやLinuxにも、優れたGUIがありますので、「CUIを覚えないとUnixやLinuxを使えない」というものではありません。ただ、UnixやLinuxの「本来の」使い方は、CUIを基本にしたものなのです。
【質問】確か、Mac OS XはUnixだし、AndroidはLinuxだとさっき書いてましたよね?でもMacやAndroidでコマンドを打ち込んだりしませんよ……。
【答】それらの中では確かにUnixやLinuxが動いているのですが、それぞれ独自の優れたGUIを搭載しているので、ユーザーは普通、それだけを幸せに使っています。でも、MacをUnixとして使おうとするユーザーもたくさんいて、その人たちはMacにコマンドを打ち込んで使っています。

【質問】えっ?UnixやLinuxはCUIがメインなのでしょう?なら、「CUIを使わないUnixやLinux」って、何なのですか?
【答】CUIは、UnixやLinuxの強みの1つにすぎません。他にも、安定性(信頼性)や、オープンソースであること(Linux)、そして幅広い技術者層を持っていることも強みなのです。
CUIにも、短所があります。それは、長所の裏返しでもあるのですが、視覚的・直感的ではない、ということです。たとえばプレゼンテーションのスライドを作るときは、スライドの上の素材の配置、大きさ、色などを試行錯誤しながら決めていきますよね。そういう作業は画面上のものをマウスでぐりぐり操作できるGUIが便利です。画像や動画の編集もそうです。ホームページを閲覧するときも、画面上のリンクを手軽にクリックできるGUIのほうが便利です。「いや、それもCUIでできる!」という人もいますが、できる/できないの話でなく、多くのユーザーにとってどちらが快適かという観点では、そういう操作についてはGUIのほうが適しているのです。
要するに、GUIとCUIのどちらがいいかは、用途や目的によるのです。Linuxのよさは、もともと優れたCUIを持っていたところに、最近はGUIもよくなってきた、という点にもあるように思います。

【質問】CUIって、コマンドを覚えるのが大変そうです……。
【答】確かに、ある程度の数のコマンドを覚えないと使い物になりませんからね。でも、覚えてしまうととても楽ですよ。それには大きな利点もあります。それは、「覚えたことがほとんど陳腐化しない」ということです。Unixのコマンドの多くは、過去何十年も使われ続けており、今も現役です。将来も使われ続けるでしょう。一方で、どのOSも、GUIはまだ変化や発展が激しいです。WindowsのGUIがバージョンアップに伴って大きく変更されるたびに、「せっかく古いのに慣れたのに、新しくなって使いにくい!」という悲鳴をよく耳にしますが、Unixのコマンドにはそのようなことはありません。ちなみに私は本書を書くために、20年以上前のUnixの入門書を何冊も調べてみましたが、その中のCUIに関する記述は、今でもほとんどそのまま使えるものでした。

なぜLinuxを学ぶのか?

家庭用や業務用のアプリケーションソフトや周辺機器の多くはWindows向けです。なのに、なぜ我々はUnixやLinuxを学ぶのでしょうか?その答えは、いずれあなたにも明らかになるでしょう……と言っても満足していただけないでしょうから、私の体験を語らせてください。私は最初はUnixが嫌いだったのです。
1991年、私が大学4年生のとき、私のいた学科のコンピュータはすべてUnixでした。ある教官は「Unixは将来もずっと役に立つ」と言っていました。しかしMacが好きだった私には、UnixのCUIは面倒で仕方ありませんでした。「UnixなんてMacに負けて滅びてしまえ!」と悪態をつきながら(笑)、私は仕方なくUnixを勉強しました。
大学卒業後、私は地球物理学や森林科学、生態学などに首を突っ込んだ末、あの教官が正しかったことを知りました。人工衛星を使った研究で米国に滞在したとき、そこのメインコンピュータはUnixでした。シミュレーションソフトや大規模なデータ処理システムのほとんどがUnixで作られていたからです(今もそうです)。帰国後、研究費不足に悩む私を、今度は無料のLinuxが救ってくれました。おかげで私が大学で嫌々学んだUnixスキルの多くは今も現役です。一方で、MacがUnix(OSX)をベースにしたOSに生まれ変わってしまったことには驚きました。
UnixはWindowsもMacもなかった頃に生まれました。その後、Unixには多くの新技術が加わっていますが、大枠はほとんど変わっていません。それなのにUnixは時代遅れになっていません。それは、Unixがもともとよくできていたからであり、長い時間をかけて多くのユーザーに検証され、信頼を勝ち得た結果、もはや大きく変更する必要がないからでもあります。そのような状況を、よい意味で「枯れている」と表現します。Unixは、数十年前からすでに枯れており、今も輝く老舗なのです。
インターネットの普及とLinuxの出現で、Unixはますます隆盛です。UnixやLinuxを学ぶことで、何年たっても色褪せない、それどころか年を経るごとにますます輝くような知識や技能を得ることができるのです。

【質問】あなたの研究室の学生さんはみんなLinuxを使っているのですか?
【答】はい。全員、Linuxを中心とするオープンソースソフトを勉強し、使っています。だから、ソフトのライセンス維持の手間やコストはほぼゼロです。卒業するときは、彼らのデータと一緒に、ソフトもまるごと、コピーを持って行かせます。

LinuxだけでOK?

Linuxは素晴らしい!とはいうものの、あなたには、LinuxはWindowsやMacより優れているとか、何でもできる、と思っていただきたくはありません。実はWindowsやMacにも、Unix的な機能がありますし、LinuxではできないけれどWindowsやMacでは簡単にできることもたくさんあります。そこを誤解してWindowsやMacをすっぱり捨ててLinuxに移行すると、苦労しかねません。私自身は、ポリシーとして、可能な限りLinuxを使っていますが、それでも、Windowsでしか動かないソフトを使わざるを得ないようなとき(特に、計測機器を制御するとき)にWindowsも使っています。

【質問】WindowsやMacのソフトはLinuxでも動くのですか?
【答】ソフトによっては、Windows版やMac版と共にLinux版が出ているものもあり、それらは当然、Linuxで動きます。しかし、WindowsやMacだけに作られたソフトは、原則としてLinuxでは動きません。ただし、Linuxの上でWindowsのソフトを動くようにしよう!という夢のようなプロジェクトがあり、そこで作られている「Wine」というソフトの力を借りれば、Windows用のソフトがLinuxの上で動くこともあります。ただ、それにはトラブルがつきものですので、根気と技術力が必要です。
【質問】Linuxでは難しいことって、具体的には?
【答】最も困るのはOfficeソフト(表計算やワープロ、プレゼンソフト)です。LinuxではMS-Officeは走りません。代わりにLibreOfficeやApache OpenOfficeというオープンソースのオフィスソフトがLinuxで走りますが、あいにく、MS-Officeのファイルの再現性が今ひとつです。だから、MS-Officeユーザーとファイルのやりとりをするときに苦労します。また、LINEやiTunes、GoogleEarthプラグインはLinuxではほぼ使えません(GoogleEarth自体は使えます)。インターネットサービスプロバイダは、Linuxユーザーの存在をほとんど認識していませんので、自宅でネットにつなぐときにサポートセンターが頼りにならないということもあります。USBメモリや外付けハードディスクがWindowsやMacで暗号化されていると、Linuxでは読み書きできないことがあります。ネット上の一部の動画の再生もできません。プリンタやスキャナ、ネットワークカード(特に無線LAN)などの、いわゆる周辺機器も問題が起きやすいです。特に、新しい製品は、Linuxで使えないものがあります。少し時間がたてば使えるようになることも多いのですが、メーカーがLinuxでの利用をサポートすることは多くはありませんので、トラブル時にサポートセンターに相談してもらちがあきません。

【質問】えっ?新しいものは使えないのですか?感覚的には、むしろ「古いものは使えない」のが普通かなと思うのですが……。
【答】周辺機器メーカーは、周辺機器を制御するためのソフト(ドライバといいます)を、WindowsとMacのためにしか開発してくれないことが多いのです。そういうとき、Linux用のドライバは、例によって、Linuxのコミュニティの中で技術力と公共心を持った人がオープンソースとして開

奈佐原顕郎 (著)
出版社: 講談社 (2016/10/18)、出典:出版社HP