!サーバのことを教えてよ!
という声が非エンジニアの人から…

むー 僕はどうやって学んだかなぁ

VMにサーバを立てると何か覚えられるだろうか?
どうやって説明するのがしっくり来るかなぁ

多分まだサーバに関しては「何がわからないかわからない」 という状態んだろうし、手を動かすと少しはなにか見えてくると信じたい。

プレゼンにするかどうするかはまだ考えていないけどとりあえずメモ
こういうことすればいいの?という事を含め下書きしてみる

むー 途中まで書いたけどこれ完全にどっかに書いてある内容だよなぁ。そしてそっちを見たほうが確実な気がする。まぁそんなことを言ってしまうと何も進まないんだけど…。

オリジナリティを出すとすれば… 喩え話とかをふんだんに盛り込むくらいかな。
あと対象者が知っているものを引き合いに出すとかか。

!話しの流れ
-サーバ
-OS
-Unixでお世話になるソフトウェア
-シェル
-サーバとネットワーク
-apacheとCGI,PHP

!サーバって?
つきっぱなしのパソコンがあると思ってください。

!!VMって?
VirtualMachene 仮想マシン

パソコンの中にパソコンをエミュレートするソフト。もしゲームのエミュレータを知ってるならそのイメージが近い。(あれもゲーム機をパソコンの中で動かす物)

これがあれば新しいパソコンを買ってきてサーバにしなくてもそれと似たようなことができる。
電源ボタンを押す代わりに、VM画面の電源ボタンをクリックしたりするのはあんまりドキドキしなくて僕は嫌いだけど。

!OSって?
WindowsとかMacOSとか LinuxとかFreeBSDとか
素のパソコンの上で直接ソフトウェアを動かそうとすると様々な問題が出てくる
-パソコンには様々な種類があるのでその違いを意識してプログラムを作らないといけない
-ソフトウェアの「よくある処理」をソフトウェア毎に作らないといけない
これらのムダを省くためにOSがいる

様々なパソコンの違いを吸収してくれたり、よく使う処理をまとめて提供してくれたりするので、OSの上で動くソフトウェアは細かいことを来にする必要がないし、処理も簡潔に書くことができる。

!!CentOSって?
ディストリビューションの一種

!!ディストリビューションって?
LinuxやFreeBSDでよく使うソフトや設定をまとめてパッケージにしたもの。

まぁWindowsで言うとWindows2000とWindowsXP みたいな違いが近いといえば近いのかな?

Debian(でびあん),CentOS(せんとす、せんとおーえす),Ubuntu(うぶんつ),Suse(すーぜ)、etc..

!!!ディストリビューションが違うと何が違うか?
-設定ファイルの書き方、位置
-予め入っているソフトの種類
-パッケージ管理システムが違う

!Unixでお世話になるソフトウェア
!!パッケージ管理システムって?
例えばyumやdpkg(apt-get,aptitude)、rpm、yast、portsとかとか

ソフトを簡単にインストールする仕組み。
パッケージ管理システム経由でソフトをインストールすると、簡単に最新版にアップデートしたり、安全に削除したりすることができる。

Windowsではあんまりこういう機能はない。
ソフトが有料だったりするとこういうのは難しそうだし。

!!シェルって?
LinuxやFreeBSDは主にCUIで操作を行います。
Windowsにもコマンドプロンプトというシェルがあるのを知っていればそれ。
ファイル名を指定して実行を知っていれば まぁアレ

別に書きます

!!!CUI?
くい、しーゆーあい

キャラクタユーザインターフェース ⇔ GUI(グラフィカルユーザインターフェース、ぐい、じーゆーあい)
マウスを使ってぐりぐり操作するのがGUI、すべてをテキストでやっちゃうのがCUI



!!バージョン管理システムって?

!!エディタって?

!!スクリプト言語って?
!シェル
!!シェル
貝殻だよね。
OSを操作するために覆ってる人間向けの「殻」 僕達はこの「殻」を通してOSに指示を送る。

!!身近なシェル
WindowsXPから使ってるなら Windowsクラッシック、Luna(青いやつ)、そしてWindowsVista,Windows7のシェルを触ってることになる。
↑は基本的には同じことができるけど見た目や操作感が違う。

↑のシェルはWindowsのグラフィカルシェルと呼ばれているもので、まぁ基本的には公式の1種類しかない。

Unixにもグラフィカルシェルは様々な種類がある。それと同時にテキストのシェルがある。

!!Unixのシェル
bash(ばっしゅ)
csh(しーしぇ、しーしぇる)
zsh(ぜっしゅ、ぜっとしぇる)
tcsh(てぃーしーしぇる)

bashが馴染み深いかな?
ここまで書いておいてアレだけど この資料の範囲内ではどのシェルでも同じ。

!!シェル
>>
$
<<
こんな感じ。 '$'じゃなくて'%'な環境もあるかも。 '#'だと注意 何も打たないほうが良い(rootになってます)

ここに文字を打ち込んでOSに指示を送る。
!!シェルの基本
!!!カレントディレクトリ
今居るディレクトリ。 シェルには今居る場所 があります。
何も指示しない場合はカレントディレクトリが操作対象になります。

!!!コマンド
$の後ろに 「コマンド」を入力してEnterを押すことで その文字をシェルが解釈しはじめます。
(途中)

!!コマンドの例
-ファイル操作
--移動
---cd
--参照
---ls
---cat,less,tail,head
---grep
---find
--更新
---mkdir
---touch

!サーバとネットワーク

!apacheとCGI、PHP


!メモ
dezapatanやろー
5643382
wiki
1326812000