Help us understand the problem. What is going on with this article?

CLIのススメ

More than 1 year has passed since last update.

イントロダクション

みなさんこんにちは。

突然ですが、こんな黒い画面見たことありますか?

advent.jpg

なんとなくすっごいプログラマっぽいこの画面、CLI(Command Line Interface)とか、CUI(Character User Interface)、とかと呼ばれるものの表示画面です。

かっこいいですよね。

CLIとは何か

さて、唐突に黒い画面を見せましたが、これについての簡単な説明をしておきましょう。

この黒い画面の正式名称は、前述の通りCLIまたはCUIというものです。

ここではCLIで統一しておきます。

さて、私たちは普段、WindowsやMacOS、Linux等のOSを使い、PCライフを楽しんでいます。

その時、普通はマウスやタッチパッド等を使ってカーソルを操作し、PCを操作していると思います。
これを"GUI(Graphical 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 -r ./test/

こうしてみると、たった数個のコマンドで、これだけの事ができてしまいます。

CLIにはこの他にも、エディタやブラウザ(!?)まで制御できます。

うまいことシェルを活用して、快適なプログラミング生活をお過ごしください!

さて明日12/16日は
@C6H2Cl2 さんの「KotlinでModdingする時の便利技」とのことです。

Kotlinというと…Javaライクな言語…でしたっけ(うろ覚え)

それでModdingをする秘伝の便利技を公開、らしいです。

お楽しみに!

Happa8
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした