中山テック 代表の中山です。
※開発者向けの記事となります
代表の技術遍歴をご紹介!~プログラミング編~では過去触ってきたプログラミングを抜粋の上紹介しました。
また、代表の技術遍歴をご紹介!~データベース編~ではプログラミングする上で
データベースもウェイトを占めることを紹介しました。
今回はプログラミングやDB環境が構築されているサーバで採用される事例の多い
「Unix系OS」についてお話したいと思います。
C言語(当初はアセンブラ)で書かれたOSで、安全かつ自由度の高いコマンドベースのOSです。
また、口述しますがネットワークには滅法強く、WEBのシステムを乗せるのに最適なOSでもあります。
Windowsと違って真っ暗な画面に文字をひたすら打ち込んで操作していきます(CUIと言います)。
何故このサーバが選ばれるのかはこちらの記事をお読み頂ければ一発でわかると思います。
UNIX系OSの派生
UNIXは無償提供していることもあってか、有志が改良を重ねて様々なディストリビューションが存在します。
中でもLinuxはUNIX系OSで最大の派生であり、現場でもUNIXではなくLinuxを使っている所が多いです。
それだけ使い勝手がよく、通信のしやすさやセキュリティに強いも相まっているのが人気の秘訣なのでしょうか。
他にもIBM社提供のAIXというUNIX系OSも存在します。
IBM社はOSからコンテナ、DBまで持っているのでIBM系現場は他の現場とは多少毛並みが違います。
はじめての みっしょん
はじめてのおつかいではありません(笑)
業界飛び込んで受けた研修では現場がC言語ばかりだったため、LinuxとC言語、シェル(bash)を受けました。
C言語とbashは基礎文法と課題、Linuxはviエディタと基礎的なコマンドラインを受講。
2か月程受けた後、いきなり現場に出されてえらい苦労したのを覚えてます(下駄も履かされたし・・・)
※下駄を履くとは、ググってください(笑)笑える話でもないですが・・・
UNIX系OSの操作
コマンドラインと呼ばれるもので命令を出します。
Windowsだとマウスを使用してダブルクリック、右クリックなどで
簡単に操作出来ますがUNIX系OSはそうはいきません。
※最近ではGUI版のLinuxも存在するが、慣れている人はコマンド操作をするのが主流
現場では開発にWindowsを使用するのが主流なのでターミナルソフト(Teraterm、Poderosa等)を
使ってリモート操作することが多く、コマンドの知識が求められます。
もちろん、手順書に従ってコマンドを打ち込むだけの所も多いですが、知っといて損はないでしょう。
知っとくべきコマンド
■grep
この用語はUNIX系OSだけでなく、EclipseでのJavaプログラミング開発でも使用します。
意味は「ファイル内に特定のワードが入っているファイルの行を抽出」です。
grep -i -n -R "UPDATE" *.SQL
とあった場合、「SQLの拡張子のファイルで"UPDATE(大文字小文字区別なし)"が含まれている行を
サブディレクトリも含めて検索よろしく!」といった感じです。
■ls
現在の場所のファイル・フォルダ構成の一覧が見れます
■find
ファイル・フォルダを検索します
正規表現
検索する際に必ず知っておかねばならない技法です。
UNIX系OSのみならず、Javaプログラムや他のプログラミングでも使えたりします。
これは「文字列が数字のみかチェックする」「ファイル名の頭がアルファベットかどうか」
等の検索を行いたい場合に使用します。
数字のみかどうかなら
[0-9]
といった具合です。
まとめ
いかがでしたでしょうか。
手順書があればそんなに頑張って覚えなくても大丈夫、と思う方も多々いらっしゃいますが
経験を積むと手順書を作る側に回ることもあります。
さらにUNIX系OSを採用している現場も多いことから、知っておいて損はないと思います。
是非チャレンジしてみてください!