How IT Works

プログラマーやっています。技術よりも人間学的なところが好きです。

Linuxを1か月勉強してみた

 年末くらいから、新しくLinuxの勉強を始めました。

 自分の会社は開発環境、サーバーともにWindowsにロックインする方向に向かっていて、Linuxはほとんど触った経験がありません。

 しかし、Web業界ではむしろLinuxのほうが主流ですので、心機一転ということでLinuxの勉強を始めました。

 これから同じようにLinuxを触ってみたい方もいるかもしれないので、参考にやってきたことや感想を書きます。

学習したこと

 学習したことは以下のようなことです。

 Linuxを勉強したというよりは、シェルを勉強したというほうが近いです。

勉強方法

ドットインストールを見ながら打ちこむ

 まずは、ドットインストールの下記の講座を見ながら、実際の環境で動かしました。

 基本的には浅い内容ですが、導入としては役に立ちました。Vimに関してはvimtutorだけで十分かもしれません。

本を読んで足りないところを補う

 あとは本を読みながら、もう少し詳しいところを勉強しました。勉強するときはWebページより本のほうが好きですね。

 色々買いあさってみましたが、よかったのは次の2つです。

新しいLinuxの教科書
新しいLinuxの教科書
posted with amazlet at 17.01.21
大角 祐介
SBクリエイティブ
売り上げランキング: 4,843

 Linuxといいながら、ほぼBashの本です。とにかく説明がわかりやすく、振り落とされるということがないですね。

 実際にコマンドを打っている感覚に近い感じで読めます。値段は張りますが、基本を学ぶのであればこれで間違いないと思います。

 シェルスクリプト正規表現Vimといった関連が深い分野についても章を割いているのもいいですね。

 Vimの本です。実践というだけあって全く入門には向いていません。

 基本的なコマンドを覚えた今でもやや難しいですが、Vimらしい思考法を教えてくれるため、Vimを学ぶのであればぜひ読んでほしいです。

 Vimはどうやってコマンドを組み合わせていくか? というところが問題になるので、コマンドを覚えただけではまだ入り口のおうです。そこから1歩踏み出せる本です。

環境構築

 勉強中は実際にコマンドを打ったり、スクリプトを書いたりしました。

 Linuxをインストールするのではなく、Windows上でVirtual Boxを使って仮想環境を作って、そのうえで勉強していました。

 PCにインストールしてしまうと戻すのが大変なので、不要なPCがない限りは仮想環境で勉強するほうがいいと思います。

 ディストリビューションは軽量でありつつ、GUIがあるLinux Mintを使いました。マシンスペックがあれば、Ubuntuでもよかったかなとは思います。

 あとはWindows10が手元にあれば、Bash on Windowsという選択あるかなという気もします。

 環境構築は全面的に以下のサイト様を参考にしました。

 sstea備忘録 : VirtualBox で Linux Mint の仮想環境を構築する

感想

学習曲線が急

 Vimが特に顕著な例ですが、Linuxはすぐに誰でも使いこなせるという感じではないように感じました。

 細かい道具がたくさんあってそれを組み合わせて使っていくという感覚で、まずは道具を覚えていかないといけないという印象です。

 ただ、道具を使いこなせるようになったら、自分の好きなことはなんでもできる? という印象を受けました。

 なので、好きな人はいくらでも好きになれるOSなのですが、技術に興味がない人にとってはなかなかハードルが高いOSだと思いました。

かゆいところに手が届く

 上記の話に近いのですが、Linuxだと簡単なことを簡単にできます。

 例えば、「CSVファイルを検索して、特定の列から特定の行を取り出して集約する」という処理をLinuxであれば、awkではパパッとかけそうな感じでとても面白そうだと思いました。

 WindowsであればExcelで頑張るか、Visual Studioを立ち上げてC#スクリプトを書くかでしょうが、簡単な処理に無駄に時間をかけている感じが否めません。

 こういった思い通りに操作できるというのがとても魅力的です。

裏の仕組みがわかる

 GUIになれると裏で何をやっているかがブラックボックスになります。基本的にはそれで問題ないのかもしれませんが、エラーが起きたときや問題にぶつかった時に対応できません。

 Linuxを触っていると自分で一つずつ処理を打っていくので、勉強になります。GUIを使うとしても、一度CUIの文化になれると理解度が変わります。

今後

 MySQLやNginxを入れて、何か作れたらいいなと思っています。

 またもう少しLinux内部の仕組みもさらっと学べていければいいなという感じです。

まとめ

 Windowsしか触ったことがない開発者であってもLinuxに触ってみると勉強になります。一度体験してみるといいと思います。