Linux（CentOS6）の使い方（メモ）

#Linuxってなに？
WindowsやMacなどのようなOSのこと。
「サーバーに関してよくわからない」っていう人はLinuxを入れて使ってみると理解が深まる。

基本無償なので、個人や開発時に利用しやすい。サーバのOSとして使われることが多く、Windowsなどと違って、CUIメインで低スペックのPCで動作するし、高いWindowsサーバーOSを買わなくてもいいので広く利用されている。
※CUIはコマンドだけで操作する画面のこと。反対にwindowsのようにデスクトップ画面で操作するのがGUI

WindowsOSは商用なのでソースコードが公開されておらず、中で何が起こっているのか把握できない。
その点、LinuxはOSの中身が分かるので把握しやすい。

Linuxはマルチユーザーのマルチタスクに対応してる。
※マルチユーザーはユーザーをいくつも作れる。マルチタスクは同時にいくつものユーザーで作業が出来る。

Linuxというのは本来はLinuxカーネルのことで、centOSやRedHatなどと呼ばれてるのはOSではなくてディストリビューションという。
※カーネルというのはOSの核になっている心臓部的なプログラムのこと。



#ディストリビューションの意味がわからない

Linuxとその他の付属ソフトをパッケージにしたもの。マックのハッピーセット的な。
ソフトはApatchとかMySQLが入ってたり。
ディストリビューションによって入っているソフトが違う。
ディストリビューションには「RedHat系」と「Debian系」がある。
##Redhat系ディストリビューション
###RedHat Enterprise Linux
企業の業務で使用されているシェア１位の商用製品
###CentOS
RedHat Enterpriseを機能そのままにサポートなしのフリーソフトとして公開しているもの。
有償のRedHatの機能をそのままに無償にしてサポートなしにしたもの。
RPMというパッケージ管理システムが入っている。

※パッケージ管理システムとは、パッケージ名を指定するだけでソフトをインストール出来たり（わざわざダウンロードサイトを探さなくていい）、そのソフトに更新があれば通知してくれたりする。

RPMパッケージには、コンパイル済みの「バイナリパッケージ」と自分でコンパイルする「ソースパッケージ」ある。


##Debian系ディストリビューション
###Ubuntu
GUI環境のLinux初心者向き。

などなど。


#仮想環境でのCentOSのインストールをしよう。というか、して。
Linuxを使うにはWindowsなどと同じようにOSのインストールが必要だが、PCがもう１台あるならそこにインストールして使うか、WindowsやMacのOSの上に仮想環境を作ってそこにLinuxOSをインストールする方法がある。
仮想環境を構築するには「VirtualBox」などのフリーソフトを使う。

VirtualBoxのインストール方法、CentOSのインストール方法はネットで検索すればすぐ出るので割愛します。

#ログインしてみよう

##rootでログイン
全権限を持つ管理者rootユーザでログインします。

```
centos login: root ←ログインユーザ名としてrootと入力
Password:   ←インストール時に設定したrootのパスワードを応答(表示はされない)
```

※ログアウトするには `exit`　と入力

#パッケージ管理を使ってみよう

```
[root@centos ~]# yum -y update
[root@centos ~]# yum -y groupinstall "Base" "Development tools" "Japanese Support"
[root@centos ~]# yum -y install yum-cron
[root@centos ~]# /etc/rc.d/init.d/yum-cron start
[root@centos ~]# chkconfig yum-cron on
[root@centos ~]# chkconfig --list yum-cron
yum-cron	0:off   1:off   2:on    3:on    4:on    5:on    6:off
```


#ユーザーを作成してみよう



##１．ユーザーを新しく追加する

```
[root@centos ~]# useradd ユーザ名
[root@centos ~]# passwd ユーザ名
Changing password for user user_name.
New password: パスワード   ←ユーザーのパスワード入力
Retype new password: パスワード   ←パスワード再入力
passwd: all authentication tokens updated successfully.
```

##２．ホームディレクトリ作成されてるか確認

```
# ls /home/
```

作ったユーザのフォルダがあればOK


##３．ユーザ情報を確認
テキストファイルを閲覧できる 

```
# less /etc/passwd 
```

で追加したユーザー情報を確認

※最後の行に `ユーザ名:x:500:500::/home/ユーザ名:/bin/bash` が追加されてればOK
※上記は `ユーザ名：パスワード：ユーザID:グループID:コメント：ホームディレクトリ：シェル` を表してる

#グループを作成してみよう

##１．グループを作成する

```
# groupadd [オプション名] グループ名
```

##２．グループ情報を確認する

```
# cat /etc/group
```

※最終行に `グループ名:x:501` が追加されていればOK
※501はグループID。グループを増やすごとに500から１ずつ増えていく。


#ユーザーに管理者権限を与えつつユーザを切り替える
管理者権限でないと使えないコマンドがある（むやみに重要なファイルなど削除されたりしないため）ので、一般ユーザ（自分で作成したユーザ）に管理者権限を与えます。
権限の与え方は２通り。
rootユーザの状態で以下のどちらかのコマンド入力。

```
su ユーザー名  ←ユーザーの環境を引き継いで昇格。

su - ユーザー名   ←環境引き継がずに昇格。
```

基本、下を使えばOK


##sudoコマンドにユーザ登録して、管理者権限を与える
毎回、権限を与えてユーザ切り替えするのも面倒なので、管理者権限を受けられるユーザを登録しておく。
rootユーザの状態で以下コマンド入力。

```
visudo /vi/sudoers ←ユーザーを登録する
```

最終業に `ユーザー名 ALL=NOPASSWD=ALL` を追加。


#ipアドレスを取得してみる

ネットワーク設定から、自動で取得にチェック入れる。

コマンドプロンプトでipconfigコマンド入れると、ipアドレスが見れる。




##hostsファイルの設定

ホスト名とipアドレスの対応テーブルのあるファイル。

これで名前解決を行う。

OSの種類によって保存場所が違う。




##pingコマンドで通信できるか試す。

パケット送信して、うまくいけば返答がある。

4回リクエストするので、4回リプライあればＯＫ。

・まずは自分宛に送ってみて自分のネットワークが使える状態か確認する。

・次に名前解決が行われているか、自分のホスト名でping飛ばす。

・ルーターへ飛ばす。




#linuxでネットワークを設定する













Linuxはifconfigで自情報が分かる。

pingはctrl+Cを押さないとずっと送られる。

回数決めるなら、`ping -c 回数 ホスト名` とやる。

pingのホスト名をドメイン名にすれば、ネットのサイトへも送れる。




#SSHを使う

接続のたびにクライアントからサーバへ公開鍵が送られ、認証をし、OKならユーザー認証に入る。









#セキュリティ設定

 











#SFTPでファイル転送

SSHで接続後にsftp ホスト名 で接続。

そして、get ファイル名、put ファイル名でファイルやり取りする。




#SSHの公開鍵暗号化設定をする

クライアント側で

ssh-keygen -t rsa