Linuxを学ぶための10個の効果的な方法

id:akio0911に頼まれたので、頼まれたエントリを書いてみる。

そもそもLinuxを覚えた経緯:

前職でVB6+ORACLEwindowsサーバで動かす仕事をやってたzenpou。
次の職場に入った
順調に思えた転職だったが。
2ヶ月ぐらい普通に仕事していました。と、次の日とんでもない事が!
なんと上司が今日から部署変更と言うではないか。


そこでやってきた新しい上司の人「Linuxとか触れる?」 俺「cdとかlsなら。。。」
実はzenpou、学生時代にlinuxにちょっと触った事があっただけで、
windows以外のOSを触った事が無かったのだ。
(中略)
1年3ヶ月後。。。。
そこには、id:akio0911Linuxを教えるzenpouが。





やりたくてやった。テンプレなら何でも良かった。いまはまるみえしている。

一応まじめに10個ぐらい書いてみる。

Linuxを覚えるのにやった事

  1. サーバをセットアップする。
    1. セットアップしないと始まらないし、大体環境構築あたりでトラブったり迷ったりして調べて行くうちに覚えるよ。
    2. Webサーバ構築、mailサーバ構築、nagiosサーバ構築etc... いろんなサービスを構築していくべし。
    3. CentOS, Debian, Ubuntu, Fedora など、有名なディストリビューションを入れてみて違いを見る。
    4. HDD以外にもVMWare上、coLinux上、Xen上、CD上などいろんな媒体からロードしてみる。
  2. 開発をLinuxでする
    1. たまにしか使わない奴の操作方法なんて覚えないので
  3. シェルに惚れる
    1. シェル上の方が操作らくだーって思ってシェルスクリプト書いたりワンライナー覚えたりしていけば知識ついていく。
    2. zshかわいいよzsh
    3. シェル覚えた経緯。
      1. 第一段階としてはパイプラインを覚える |
      2. 第二段階はsort や grep など、パイプラインで処理するのに便利なコマンドを覚える。
      3. 第三段階でls | awk '{print $2}' とかやってみて、スペースで区切られた2列目が表示される事に感動してみる。
      4. 第四段階でls | awk '{print "ls "$2}'でコマンドを作ってみてls | awk '{print "ls "$2}'|sh でコマンドをばーっと処理してくれる事に感動してワンライナーを作り出す。
      5. 第五段階でxargs を覚えたり、awk のFSの設定方法とかを覚えたり、`で囲み始めてワンライナーが徐々に上手くなる。
      6. 第六段階でシェルスクリプトを書き出して、for FILES in `ls`でループまわし始めたりしてスクリプトかき始める
      7. なんかいつの間にかシェルうまくなってた? ←イマココ
  4. 詰まった時に自分で調べる
    1. やり方を調べて行くと、調べる過程で色々な情報を勉強できるので吉
    2. apacheのログに処理時間を追加する方法は[%T]を追記する事だって聞くより、%tの意味とか調べる過程で付随知識も身に付いて行くので。
  5. 他の人の操作をストーキング
    1. 他の人が操作してるのをガン見して、凄いやり方があったら「今どうやったんですか?」とか聞いてみる。
    2. 運が良ければ教えてくれる
    3. 忙しそうだったら暇なときにまた聞いてみる。
    4. 徐々にショートカットを覚えて操作が早くなる。
    5. .*rcとかみさせてもらうのもアリアリ
  6. ソフトウェアをソースからインストールする。
    1. tar zxvf でソースコード展開して、./configureでmakeしてmake installな毎日の中でスキルアップ
    2. makeでエラー出してエラーログからぐぐって解決
    3. yumaptitudeとかも覚える
  7. サーバ管理者をやる
    1. できればクリティカルな所を
    2. そして頼る人は忙しい状況とか
    3. 自然と自分で解決していくようになる。
  8. Linuxの操作方法を教えるすばらしいこのblogのRSSを購読する
  9. 人に教える
    1. 別にid:akio0911に説明する為にこんなエントリ書いた訳じゃないんだからね!
    2. 私の為なんだから!
    3. 勘違いしないでよね!
  10. というか10個も思いつかないんだよ!(逆ギレ