Linux環境での作業
CLIに慣れるには
本書を読んでるという事は、おそらくサーバー上で作業した事がない方が多いと思います。Windowsは対象としてませんが、最近ではbashが使えるようになったという話も聞くので、適宜対応してもらいたいです。どんな環境でも手っ取り早いのはLinux環境を構築してしまって、そこでいろいろ練習するのが良いと思います。Macユーザーの方は、ターミナルと検索してアプリケーションをひらけばLinuxコマンドが叩ける状態なので、簡易的に試すのであればそれでも十分です。
私のおすすめは、ドットインストールになります。こちらの、
一旦、この2講座(登録するだけで無料で見る事ができる)をまず、一旦やってみるところから始めてください。 体系的に、理解するために、同時に以下を読むことをおすすめします。
まずは、自習をベースにCLIに慣れるところから始めてみましょう。例えば、GUIでディレクトリを作る際に、あえて、ターミナルを開いてmkdir hoge
などと、普段から使うようにしていくと、GUIで操作するよりもCUIで操作する方が楽に感じるようになると思います。
自習がすんだ前提で話を進めていきましょう。 これらが説明・実践できるようになっているでしょうか。
- PATHとは
 - 相対パス・絶対パスとは
 - パスを通すとはどういうことか
 - pythonが使える環境だとして、その実行されるpythonがどこかを調べるコマンドは?
 - 自身の現在いるディレクトリの場所を特定するコマンドは
 - ~/ の意味は
 - コマンドの結果出力に対して連続してコマンドを繋げるにはどうすればいいか
 
データ分析において身につけておくべきLinuxの基本知識
では、冒頭に挙げた例といくつか同じようなものもありますが、実際にデータ分析においてよくある例をあげてみましょう。
- もらったデータが重すぎて、テキストエディタ・表計算ソフトで開かないので、pandasで読み込んで状況を確認する
 - 日付などのパラメーターを変更するだけのSQLをwebコンソールで手動で書き換えて50週分実行する
 - Windowsで作業している人からファイルをもらって、文字化けしていたので、テキストエディタで開いて文字コードを変更した
 - 計算結果を比較するために、表計算ソフトに貼り付けて、引き算したり、同じ値かをチェックしている。
 - リモート環境環境で作業しているが、計算時間が長いためローカルの端末の画面を閉じないままにしている
 
具体的には、後ほど説明するとして、簡単に説明します
- について、Linuxコマンドには行頭・行末を表示するコマンドがあります。行数もカウントできます。CLIに慣れるにはの自習が終わっていればもうわかるはずです。
 - について、繰り返し同じような作業をする場合は、webコンソールで行うよりも、ターミナルからSQLを叩けるようにして、パラメーターを受け付けるように実行する方が楽です。さらに、SQL側が並列に動く場合は、計算機のコア数を増やし、並列にSQLを実行するようにすることで、一つ一つの実行を待つことなく同時並行にできます。
 - について、文字化けについてはよくあることだと思います。数GBあるようなデータをいちいちテキストエディタで開くのはリソースの無駄遣いであり、適切なやり方とは言えません。そもそも開けない場合もあります。文字コードを変換するコマンドがあるのでそちらで対応します。
 - について、これも、上と同様で、いちいち他のアプリケーションで開くのはリソースの無駄遣いです。ファイルを比較するコマンドがあるのでそちらで対応します。
 - について、基本的にsshでリモートに接続して作業を行なっているような状態を想定してます。ssh接続を切るとリモートのプロセスも切れます。この対処は、ターミナルマルチプレクサを使うことが基本です。
 
次節で、これらのコマンドについてまとめていくので、次の節に進む前に、自分でwebで調べてみましょう。