【初心者向け】Linuxに触れたことのない情報系一年生のためのWindowsとの違いとメリット・デメリット

中高生の将来の夢、男子一位がITエンジニアになったそうですね。夢というのは漠然としたものです。知識があるかないか、そんなことは考えなくていいでしょう。
そうした夢をみて、就職の扉にもなる大学選びで情報系を選び、未知の世界に飛び込んだ学生もいるのではないでしょうか。もしくは、そのような業界に直接飛び込んだ人もいるでしょう。そして、おそらく一番初めに触れるであろうOS"Linux"の扱い方に悩んでいる人もいるのではないでしょうか。

この記事は、そんなLinuxを一度も使ったこと無い学生・新社会人に向けた、Linuxを扱うための基礎を固める手助けになればと思い執筆しています。
*記事中ではではLinuxやUNIXの区別や、細かい違いを考慮していません。例えば、rm -rf /は今現在そのままでは実行できなくなっていますし、Chromeは厳密に言えばOSSではありません。*

##<i class="fa fa-power-off"></i> 意識を変えてみよう
知識を付ける前に、意識を変えてみようと思います。WindowsとLinuxは根本的に違います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/150188/2b56e550-0a06-272c-fdad-bbe21652aef9.png)

### Windowsが使える人は初めLinuxが使えない
パソコンに一度も触れたことが無いのに情報系の大学に入学することは無いでしょう。何処かでパソコンに触れ、その世界に興味が湧いた結果、入学をしたはずです。言うならば、Windowsは使ったことがあるんです。
Windowsが使える人がLinux、それもデスクトップ環境の導入された物を見た時、きっと似たように感じると思います。その"似たような感じ"が大敵なのです。

### 勉強のためにLinuxを使わないで
大学の授業や実務で詰まってしまったから、この記事を見ているのだと思います。その勤勉な姿勢は、Linuxを使用する上でとても大切なことです。しかし、勉強のためにLinuxを使おうとしても、絶対に上達しません。上達する前に飽きてしまい、結局そのままになってしまいます。
英語を勉強するのに、英語圏の人と話すためだと思っている人は、すぐ上達します。Linuxもまた同じです。
上達のための近道は、とにかく何かをLinux上でやってみることです。

## <i class="fa fa-battery-1"></i> ”親切”よりも”真面目”
Linuxは親切ではありません。不親切です。
例えば、何らかの誤った操作により、システムファイルを削除する操作をした時の挙動をWindowsとLinuxで比べてみましょう。

Windowsでは、Cドライブを右クリックしてフォーマットを選択します。
!![screenhsot1.png](https://qiita-image-store.s3.amazonaws.com/0/150188/fa3d490d-9335-5c13-b7c1-65c1eab191d3.png)
すると、上のような画像が表示されてしまい、削除することができません。

では、Linuxではどうでしょう。
Linuxではrm -rf /というコマンドを実行します。
![2.png](https://qiita-image-store.s3.amazonaws.com/0/150188/ea537fe5-ce06-361e-2aa1-b63305200dd7.png)
Running rm -rf / on Linux https://youtu.be/D4fzInlyYQo

消えてしまうんですね。削除をしているプログラムでさえ消えていきます。

では、こういった不親切な部分はよくないことなのでしょうか？
いいえ、そうではありません。逆に言えば、Linuxは人間の操作に対して真面目なのです。
例えば、Windowsでアプリケーションをインストールする時、彼らはセキュリティやその結果を気にしていちいちユーザに確認をしてきます。Linuxでは基本的に必要以上の確認をしません。これは、作業効率の増加や自動化の可能性に関わってきます。

この、真面目な部分は多くのLinuxで共通した考え方になっています。知識が付けば付くほど、Linuxは扱いやすいOSになっていきます。

##  <i class="fa fa-battery-2"></i> ”使う側”より”作る側”

何かを作ったり動かしたりする目的がないのであれば、Windowsを使い続けても全く持って問題は無いでしょう。Windowsの親切さはPCに慣れていない人でもある程度使いやすいものですし、ゲームなどの娯楽の面では圧倒的です。

それに対して、Linuxは一般的に何かを作ったり動かしたり提供する側に特化したOSです。現に、多くのWebサーバや開発系の業務ではよく使われています。それは、圧倒的な信頼性・安定性と真面目さ、コストの面から来ているのです。

### ソフトウェア導入も一発
![image.png](https://qiita-image-store.s3.amazonaws.com/0/150188/d013caff-348c-c509-a965-436697ef9548.png)

そして、上記に少しだけ書きましたが、効率化・自動化の部分はWindowsと雲泥の差があります。例えば、何らかのソフトウェアを導入したいとき。Windowsでは、そのソフトの配布元にブラウザでアクセスし、実行ファイルをダウンロードする必要がありますが、Linuxでは一行コマンドを入力するだけ。
App StoreやPlay Storeを使ったこと、ありますよね？それらと似たような感じで、すぐかんたんに必要なアプリがダウンロードできるのです。

## <i class="fa fa-battery-3"></i> ”フリー”ではなく”自由”
###自由なソフトウェア
![image.png](https://qiita-image-store.s3.amazonaws.com/0/150188/6d16b608-4fcd-9f1f-3362-d72d33e21967.png)
Linuxは、自由なソフトウェアと呼ばれています。自由というと、フリー(無料)という事が思い浮かぶ方もいるかとは思いますが、すこし違います。
単なるフリーウェアの場合、ダウンロードや使用は無料ですが、そのプログラムを改変したり、解析したりすることはできません。Vectorや窓の杜で配布されている個人制作のソフトは、基本的にそのようなものが多いですね。

一般的に、自由なソフトウェアとはオープンソースソフトウェアと呼ばれるソフトウェアのことを言います。
>自由ソフトウェアとは、すべての人に対して、利用、複製、配布する許可が与えられているソフトウェアのことです。そのまま、もしくは改変したもの、無償もしくは料金を取るもの、のいずれに対してもです。特に、ソースコードが入手可能であることが必須とされています。「ソース無くしてソフトウェア無し」です。これは簡略な定義です。詳しくは、自由ソフトウェアの定義をご覧ください。

まぁ難しいですよね。簡単に言えば、ソフトのレシピを公開して、個人で好きなように編集・改変していいよ！というスタンスを持っているソフトウェアのことです。Linuxに限らず、様々なソフトウェアがオープンソースです。例えば、AndroidやChromeなどもその一つです。

例えば、ソフトウェアをケーキに例えてみましょう。
単なるフリーウェアの場合は、ただの無料配布のケーキです。食べることはできますが、それ以上も以下もありません。
オープンソースソフトウェアの場合、ケーキを作るための材料とレシピが公開されています。場合によっては、一緒にそのレシピで作られたケーキも配布されていることがあります。レシピが公開されているので、いちごを乗せても、ホイップを増量しても、はたまたアイスケーキにしてしまってもかまわないのです。

### 意見の違いと世代 ディストリビューションの話
![image.png](https://qiita-image-store.s3.amazonaws.com/0/150188/ea2884f0-a713-db8d-f419-bc592dbff39e.png)
[Wikipedia - Linuxディストリビューション](https://ja.wikipedia.org/wiki/Linux%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3)より
オープンソースソフトウェアは、一人で開発をしている場合もあれば複数人で開発をしている場合もあります。
もちろん、開発をしている中で様々な方針がありますし、開発者同士で主張が衝突することもあります。会社なら主張を曲げてでも一つのものを作り上げる必要がありますが、オープンソースソフトウェアは必ずしも一つの意見に合わせる必要はありません。離脱も分離も自由だからです。

これが、Linuxを使う上で知っておきたい、ディストリビューションの違いにつながってくるのです。
Ubuntuは、誰にでも使いやすいOSを目指して開発がされています。逆に、Arch Linuxのようにシンプルさを目指しているOSもあります。

## <i class="fa fa-battery-4"></i> ”マウス”より”キーボード”
これは、シンプルですが重要な部分です。Linuxは、基本的にどんなディストリビューションでもコマンドラインと向き合う必要性があります。WindowsはGUIありきで開発されてきたOSですが、Linux自体はGUIを必要としておらず、ソフトウェアでGUIを実現しています。
そのため、Windowsのようにすべての動作はGUIからできるようになっているわけではなく、特に設定の部分に関してはテキストファイルを使用していることが多々あります。

ぜひ、コマンドライン食わず嫌いにならないように少しずつ触ってみてください。Linuxを使っているのであれば、必要になるときは必ず来ます。

## <i class="fa fa-check-circle-o"></i> これからLinuxと付き合う人のために

###デュアルブートはしないで！
Linuxの勉強はしたいけどWindowsも必要...と悩む方は多いと思います。そこで、選択肢に上がってくるのはデュアルブートという方法なのですが、これはおすすめできません。同じディスク上のWindowsとLinuxで起動方法を共存させることができないからです。
正確に言えば、UEFIとGrubやWBMの知識があるのであればデュアルブート自体は可能です。ただし、それらがわからない初心者は絶対に手を出してはいけません。最悪の場合、WindowsとLinux両方が消えてしまいます。

###Liveディスク、仮想化技術を活用しよう
幸い、Linuxを試すのはそう難しいことではありません。Windowsと違い、Linuxはインストールをしない状態でも動作が可能です。UNetbootinやLinux Live USB Creatorなどのソフトウェアを使用すれば、数GBのUSBをPCに挿入するだけで動作します。

また、それなりのメモリ容量を持っているのであれば、仮想PCを利用するのも一つの手です。VMware PlayerやHyper-Vといった仮想化ソフトを使用すれば、Windowsと同時にLinuxを動かすこともできます。

## 応用編
そのうち書きます。コマンドの使い方・見方やファイルの扱い方などを中心に。

##私見
学習のためならGUIを入れないほうが絶対にためになるんですが、使える人の感想ってあんまり当てにならないのでまずは見てくれで好きなディストリを選んでみるのがいいかもしれないですね。
Ubuntuが流行りですけど、私は断然Antergos。ディストリ選びもまたLinuxの楽しみですよ。

使用している画像に注釈が無いものはすべて再配布可能な画像を使用しています。