【Linux】Linux入門(Linuxの概要)
Linuxの基本的な解説です。
Linuxとは
Linux(リナックス)は、サーバーや組み込み系のシステム幅広い分野で利用されているコンピュータOSです。
UNIXというOSを真似てリーナス・トーバルズという人物が作り上げたOSがLinuxです。
コンピュータOSの中にはUNIXから派生して作られたOSもあります。(Mac OSなど)
LinuxはUNIXから直接派生したOSではありませんが、UNIXと同じような操作性からUNIXライクなOSなどとも呼ばれます。
Linuxのライセンス
Linuxはオープンソースと呼ばれ、誰でも自由に利用、修正、再配布することができます。
具体的には以下のような特徴があります。
- プログラムを実行する自由
- ソースの改変の自由
- 利用・再配布の自由
- 改良したプログラムをリリースする権利
Linuxは元々UNIXというOSを真似て作られたものですが、その背景にはライセンスの問題が絡んでいます。
それこそUNIXは元々はオープンソースで、ソースコードが公開されていたのですが、後にライセンスビジネスが始まり、無償で利用することができなくなってしまいました。
そこでリーナスが一から無償で使用できるOSとしてLinuxを作った背景があります。
Linuxディストリビューション
Linuxは狭義にはカーネルと呼ばれるOSの核の部分のことを指します。
しかし、実際にOSとして使用するには、カーネルだけではなく様々なソフトウェアが必要になります。
カーネルだけの状態から様々なソフトウェアを構築していくのは専門的な知識がないと難しいです。
そこで、様々な企業や団体が、LinuxのOSにあらかじめ必要なソフトウェアをインストールしておき、使いやすい状態で配布しています。
このように配布されているものをLinuxディストリビューションと呼びます。
配布している企業や団体のことをディストリビューターと呼びます。
これらディストリビューションは無償で使えるものもあれば有償のものもあります。
数多くの種類がありますが、有名どころでいうと、大きくRed Hat系とDebian系の2種類に分かれます。
Red Hat系には、Fedora、Red Hat Enterprise Linux、CentOSなどがあります。
Debian系にはUbuntu、Kali Linuxなどがあります。
それぞれに特徴があり、使用できるコマンドもRed Hat系とDebian系で異なります。
Red Hat Enterprise Linuxは略してRHELとも呼ばれ、Red Hat社が開発、販売しているLinuxOSで、有償です。
CentOSはRHELから商用パッケージを除去したもので、無償で利用することができます。
Ubuntuは使いやすさを売りにしているLinuxOSです。
コマンド操作
LinuxはGUIによる操作も可能ですが、一般的にはCUIによる操作をすることが多いです。
GUIとは、Graphical User Interfaceの略で、マウス操作で直観的に操作できるような仕組みです。
WindowsやMac OSなどがGUIです。
CUIはCharacter User Interfaceの略で、キーボードでの入力よる文字だけで操作をします。
テレビや映画などで黒い画面に文字だけを入力する画面を見たことがある人も多いかと思いますが、あのようなイメージです。
WindowsならコマンドプロンプトやPowerShell、Macの場合はターミナルで同じようなことができます。
ではなぜCUIの操作が一般的なのでしょうか。
GUIの場合、画面の描写に対して多くのコンピュータリソース(CPUやメモリ)を使用します。
例えばLinuxをサーバーOSとして使用する場合、システムの規模にもよりますが、大量のリクエストを高速にさばいて処理し、レスポンスを返すことが必要になります。
つまり画面描写の処理があると、サーバーの本来必要な処理以外の部分でリソースを使う必要が出てきてしまううので、サーバーをしての機能を最大限に発揮するにはCUIでの操作の方ができしています。
また、コマンド操作前提なこともあって、ほぼすべての操作がコマンドで実施できます。
慣れるまでは難しく感じますが、慣れるとGUIよりも素早く行える操作もあります。
ちなみにMac OSも元はUNIXからの派生なので、Linuxと同じようなコマンドが使えます。
LinuxのカーネルではX Windows Systemと呼ばれるものが動いており、これを利用することでGUIによる操作も可能です。
環境構築
TODO
プロンプトの説明
Linuxの環境を作ってログインすると、環境にもよりますが以下のように表示されます。
[vagrant@localhost ~]$
これをプロンプトと呼びます。
プロンプトは、促すという意味の英語で、入力を促してる部分であることを表します。
一つ一つの要素を解説します。
システムの全体像
Windowsの場合、フォルダの構成はCドライブから始まりますが、LinuxにはCドライブのような概念はありません。
「/」がルートディレクトリといって、システムの一番上の階層を表します。
ちなみにwindowsでいうところのフォルダは、Linuxではディレクトリと呼ばれることが多いです。
ここではよく使われる階層を解説。
/bin
cat, cpなど、システムを動かすための基本コマンドがいっぱい入っている。
/dev
デバイスファイルを格納する。ハードウェアを扱えるように用意された特殊なファイル。
/etc
アプリケーションなどの設定ファイルが入っている。
Linux自体の設定ファイルもここに入っている。
/home
各ユーザーのホームディレクトリが入っている。
/sbin
システム管理用のコマンドが入っている。
管理者ユーザー向けのコマンド。shutdownなど。
/usr
一般的なアプリケーションが格納されているディレクトリ
新しくアプリケーションをインストールする場合は、大抵ここに入る。
/var
システムのログファイルなど、頻繁に書き換わるファイルが置かれる。