1. Happa8

    Posted

    Happa8
Changes in title
+CLIのススメ
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,116 @@
+# イントロダクション
+みなさんこんにちは。
+突然ですが、こんな黒い画面見たことありますか?
+![advent.jpg](https://qiita-image-store.s3.amazonaws.com/0/113589/fb7d803b-d4f9-cfbe-83aa-6b0ac90b4955.jpeg)
+
+
+なんとなくすっごいプログラマっぽいこの画面、CLI(Command Line Interface)とか、CUI(Character User Interface)、とかと呼ばれるものの表示画面です。
+かっこいいですよね。
+
+## CLIとは何か
+さて、唐突に黒い画面を見せましたが、これについての簡単な説明をしておきましょう。
+この黒い画面の正式名称は、前述の通りCLIまたはCUIというものです。
+ここではCLIで統一しておきます。
+
+さて、私たちは普段、WindowsやMacOS、Linux等のOSを使い、PCライフを楽しんでいます。
+その時、普通はマウスやタッチパッド等を使ってカーソルを操作し、PCを操作していると思います。
+これを"GUI(Graphic User Interface)" といいます。
+しかし、CLIはそれとは異なり、完全にキーボードからの操作のみでPCを操作するものです。
+
+## CLIでなにができるのか
+マウスもタッチパッドもあまり意味をなさない。
+そんなCLIで何ができるというのでしょうか
+CLIの利点は、「キーボードから手を離さなくて済む」という点にあります。
+キーボードから文字ばかりを打ち込み、コマンドを叩きまくる人間。
+つまりプログラマにとってCLIは最高のインターフェイスなのです。
+CLIでは、主にファイルの操作などがとても楽になります。
+上の階層のディレクトリに移りたいとき、Windowsの場合、わざわざ上の階層に戻るボタンを押しにカーソルを移動させなければなりません。
+しかし、CLIなら、```cd ../``` というコマンドのみで上の階層に移動できてしまいます。
+
+また、CLIは表示する情報が文字だけなので、GUIに比べて圧倒的に軽いです。
+ホントにPCの性能を選びません。
+また、繰り返しの動作を、シェルスクリプトと言うものを使ってかんたんに繰り返すことができます。
+これはとても便利です。
+
+## どんなCLIがあるのか
+Windowsを使っている方なら、コマンドプロンプトなどという言葉を耳にしたことがある方もいるのではないでしょうか
+あれはWindows専用に作られたCLIの一つです。
+しかし、MacOSやLinuxのターミナルとコマンドプロンプトはとても違います。
+日本語とロシア語以上に違います。日本語と火星語並です。
+CLIはOSの中核に関わってくるので、OSによってCLIが変わるのは当たり前です。
+ちなみに、MacOSはLinuxと中核が同じなので、今のところ同じと考えてくれて構いません。
+Linuxで使われてる中核のシステム(カーネル)等は、POSIXという標準規格に則って設計されています。(以降これをPOSIX系CLIと呼称します)
+このPOSIX系のOSのCLIは、(個人的に)とても使いやすいです。
+なので、まったく中核の違うWindowsでもPOSIX系CLIが使えないかといろいろな方法が考えられてきました。
+例えば、Windows上でLinuxのCLI環境をシュミレートするCygwinやMSYS2などです。
+しかし、Winodws10から、開発者向けにWindows上でPOSIX系CLIが使えるようになる機能、Windows sub System for Linux(WSL)(別名 Bash on Ubuntu on Windows)が公式で搭載されました。
+これを使えばWindowsでもどこでもどんなときでもCLIを使った開発ができるようになります。
+
+# 実践編
+では実際にCLIを触ってみましょう。
+ここでは、Ubuntu 16.04 LTS を使用するものと仮定します。
+MacOSの人も、「ターミナル」から、Windowsの人もWSLの機能を使って挑戦してみてください。
+
+WSLの導入について、詳しくはこちら
+http://qiita.com/Aruneko/items/c79810b0b015bebf30bb
+
+さて、最初はこのようになっていると思います。
+```
+ユーザー名@PC名:~$
+```
+この、```$```のあとに文字を打ち込んでいきます。
+試しに、```ls```というコマンドを使ってみましょう。
+これは今いるディレクトリにあるファイルを全部表示するコマンドです。
+```
+ユーザー名@PC名:~$ ls
+```
+自分で打ち込むのは、```ls```の部分だけです。
+どうですか?
+いろいろ出てきた人もいれば、そうでない人もいないと思います。
+今開いているのは、自分のユーザーのホームディレクトリで、ここにいろいろなものを保存する、という方も多いのではないでしょうか
+
+では次はそのホームディレクトリにもう一個ディレクトリをつくてみましょう
+打つコマンドは、```mkdir```です。
+```
+ユーザー名@PC名:~$ mkdir test
+```
+mkdirのあとは、作りたいファイル名を入れてください。
+こんかいは```test```にしました。
+では、ココでもう一回さっきやったlsコマンドでホームディレクトリにtestディレクトリアあるか確認しましょう。
+
+では、次はtestディレクトリの中に入ってみましょう。
+ディレクリを移動するには、```cd```コマンドを使います。
+```
+ユーザー名@PC名:~$ cd ./test
+```
+このときのフォルダ指定で、下のディレクトリに移動するならともかく、上のディレクトリにはどうやって移動するのでしょう。
+正解はこうです
+```
+ユーザー名@PC名:~/test $ cd ../
+```
+```../ ``` というのは、『一つ上のディレクトリの」という意味です。
+では、このコマンドを打ち込んでホームディレクトリに戻りましょう。
+
+ではさっき作ったフォルダ、もう消しちゃいましょう。
+消すのに使うコマンドは、```rm```です。
+そんまんまですね。
+
+ここまでくると、もう使い方もなんとなくと思います。
+が一応
+```
+ユーザー名@PC名:~$ rm ./test/
+````
+
+こうしてみると、たった数個のコマンドで、これだけの事ができてしまいます。
+CLIにはこの他にも、エディタやブラウザ(!?)まで制御できます。
+
+うまいことシェルを活用して、快適なプログラミング生活をお過ごしください!
+
+
+さて明日12/16日は
+@C6H2Cl2 さんの「KotlinでModdingする時の便利技」とのことです。
+Kotlinというと…Javaライクな言語…でしたっけ(うろ覚え)
+それでModdingをする秘伝の便利技を公開、らしいです。
+お楽しみに!
+
+