はじめてのUNIXコマンド①

データ分析部のGOです。今回から数回に分けて『初心者向けの UNIX コマンド』について書こうと思います。初回は UNIX コマンドを使っていくために知っておきたい基礎的内容についてです。

UNIX コマンドを使うためには環境を設定してコマンドを覚えねばならないハードルはありますが、少し使えるようになるだけでアナリストやエンジニアでなくても仕事において活用できる機会はかなりあり、とにかく便利なので知っておいて損はない!と思います。

一昨年の後半くらいから「GOさん、UNIX コマンドものすごく便利ですよ!絶対使った方がいい」というお話を社内や知り合いの複数エンジニアの方からよくされるようになりました。そして、昨夏携わった案件で分析に1年分のアクセスログを用いることになり、当初は SQL で何とかしようと考えていたのですが、データサイズは 50GB 近くあり、レコード数も億単位だったため、データのインポートが二晩かかっても終わらないような状況に追い込まれ、それをきっかけにようやく UNIX コマンドに手を伸ばした次第です。


unix01_title01
UNIX は、コンピュータ用のオペレーティングシステム(OS)の一種です。パソコンの OS としては Microsoft 社の Windows が有名ですが、大規模処理を行う計算機やサーバーの OS としては UNIX の採用が圧倒的に多いそうです。ちなみに、アップル社が開発・販売している Mac OS X も UNIX ベースの OS ですし、ブルーレイレコーダーなど家庭用のデジタル機器も一部のものは UNIX ベースで開発されていると聞いたことがあります。私たちが気づいていないだけで、「世の中は UNIX であふれている」といえるかもしれません。


unix01_title02.jpg
私たちが一般的にコンピュータを直接操作する方法としては、「GUI」と「CUI」の2種類があります。

* GUI (グラフィカル・ユーザーインターフェース)
   グラフィック画面をマウスで直感的に操作する UI

* CUI (コマンド・ユーザーインターフェース)
   コマンド(命令)をキーボードから打ち込むことで操作する UI


Windows や Mac など、私たちが普段「パソコン」と認識しているもののほとんどで GUI が採用されています。デスクトップ画面があってフォルダアイコンをダブルクリックすればウィンドウが開いてフォルダの中身が表示されますよね。あれが GUI です。

※GUIのイメージ
GUIのイメージ

それに対して CUI は、GUI で行った動作をマウスでなくすべてキーボードから文字を打ち込み命令する形で動作させます。エンジニアやプログラマが黒いウィンドウにカタカタ文字を打ち込んでいるシーンを見かけたことはないでしょうか。あのようなイメージです。マウスは一切使わず、デスクトップ画面もない。デスクトップ画面に移動するにも文字で命令を発して移動するのが CUI であり、UNIX は基本的に CUI で操作します。

※CUIのイメージ
CUIのイメージ

CUI は GUI に比べて操作が直感性にかけるので一般的なパソコンに慣れている方には非常にとっつきにくいと思いますが、GUI のようにデザインされた UI ではないため自由度は高いといえます。そのため複雑な処理を柔軟に表現することができ、自動化もしやすいというメリットがあることがサーバーや大規模計算機などで CUI ベースである UNIX がよく採用されている理由の1つだといえるでしょう。

ただ、CUI を使いこなすにはいくつかのコマンドを習得する必要があります。初心者にはこれがハードルです。


unix01_title03.jpg
UNIX の開発は1969年から開始され、ブラッシュアップを重ねて1973年頃には他のハードウェアへの移植性が向上したという歴史があります。つまり、40年以上前からあるわけですが、ビッグデータ時代の到来により膨大な量のデータを分析するのに効率的に捌くため、ここ最近その利便性が一部で再評価されているようです。

再評価の理由の1つとしては「とにかくテキスト処理が速い」という点が挙げられます。GUI のツールは「画面に表示して操作する」ため、パソコンのリソースをテキストと描画それぞれの処理に使うことになりますが、CUI の UNIX コマンドでは描画処理が無いため、単純なテキスト処理をするのであれば非常に効率が良いといえます。また、テキストを直接読むので SQL などに比べてテーブル設計・構築やインポートの手間がないというメリットもあります。


unix01_title04.jpg
私は普段の業務では Windows を使用しているので Windows ベースで話を進めますが、前述のとおり、Windows も UNIX もそれぞれ別の OS であり、そのままの状態では Windows で UNIX コマンド使用することは出来ません。わかりやすく言うと、日本とアメリカは当然国家が違い、その中で使用される言語も違うので相手の言語に合わせなければ話が通じないのと同じことです。

そこで Windows と UNIX の通訳となるのが「Cygwin」というツールです。Cygwin をインストールすることで Windows 上でも UNIX コマンドを利用することができるようになります。Cygwin のインストールについては、紹介しているサイトがたくさんあるのでそちらを参考にしてみてください。

このツールを導入して少しコマンドを習得すれば、Excel や Access をいちいち起動しなくても、SQL でデータベースやテーブルを構築しなくても簡単な集計ができたり、複数行・列あるデータから目的の行・列データだけを抽出して加工し、分析に用いたりすることが出来ます。

次回以降、コマンドの紹介と具体的な使い方について書いていきます。

カテゴリー: データ加工 パーマリンク