基本コマンドの紹介とその演習①|MacやLinuxのCUIを使いこなそう! #1

f:id:lib-arts:20190129191807p:plain
プログラミングなどのITスキル向上について話題になることが多い昨今ですが、意外とCUI(Character User Interface)を使いこなす的な話が比較的話題になることが少ないので、当連載を通してCUIを使いこなせるようになる方が増えたら良いなと思って書き始めました。基礎事項ではあるのですが、逆に基礎事項については知っているか知っていないかで大きく差がついてしまう点になります。
以下目次になります。

1. CUIの概要、覚えるメリット
2. 基本コマンド
3. まとめ

 

1. CUIの概要、覚えるメリット
CUIの概要としては、MacOSやLinuxOSを考えた際にターミナルという文字の画面を用いて諸々の処理を実現することです。

f:id:lib-arts:20190129191114p:plain

ちなみにCUIと対応で理解されるGUI(Graphical User Interface)は、マウスなどで動作やクリック&ドラッグなどを行うことで処理を実現します。

CUIを覚えるメリットとしてはいくつかあるのですが、1つ目デスクトップのスペースを取らないことが大きいです。GUIを用いた動作の際はそれぞれのアプリケーションを開いて動作実行してなどを行う必要があるのですが、PC内のファイルが増えたり並行で行う作業が増えるごとにデスクトップ上に同時に起動しているアプリケーションが増えてしまいます。GUI系のアプリケーションはスペースを取るアプリが多いので、なかなか大変です。Macトラックパッドは非常に便利ですが、それでも結局5画面くらい同時に開いていると横移動も手間です。
2つ目は異なるマシンでもキャッチアップが早くなるということがあります。職場などで使用するマシンが変わるなどがあってもCUIの使い方は基本的にどのマシンでも共通なので、慣れるまでに時間がかからないです。例えばファイルの検索などをしたい際にもCUIなら"find"を使えば大体どのマシンでも検索ができるのですが、GUIだとマシン単位で結構インターフェースが異なるのでなかなか不便です。またファイルサイズなどを見る際にも"ls -lh"などと打てば画面表示を切り替えなくても作業が可能です。
3つ目はPCの仕組みに詳しくなることです。GUIを使うと何を行っているかがわからなくなることもありますが、CUIを使っての操作は隠蔽されないことが多いので内部での処理をある程度明確に把握することができます。また、このことで、プログラミングを学ぶ際にも色々とプラスになることが多いのでこれもまた良いです。

 

CUIコマンドの概要や覚えるメリットを把握したところで2節では基本的なコマンドをいくつか見ていければと思います。 

 

2. 基本コマンド

2節では基本コマンドとして、pwd、ls、cd、mkdir、touch、rm、viについてご紹介できればと思います。
それぞれ簡単な説明をまとめられればと思います。

pwd
pwdを理解する上で、まず理解が必要なのがファイルシステムの全容です。ファイルシステムは/(ルート)を頂点とする木構造の中にファイルが置かれます。また、普段使用している部分をホームディレクトリと呼び、基本的にはそのホームディレクトリの直下のデスクトップが普段画面に現れている部分です。pwdに話を戻すとpwdは現在端末がいるライブラリを絶対パスで返します。絶対パス相対パスと対になる考え方で、絶対パスはルートからのパスのこと、相対パスは現状いるディレクトリ(フォルダ)からの相対的なパスのことです。
また、現状いるディレクトリのことをカレントディレクトリと読んでおりこちらも言葉を覚えておくと良いです。

$ pwd
/Users/user_name/Desktop/for_study
↑ 上記のフォルダにfile1.txt~file3.txtがある前提で、ターミナル上での動作例についての話を進めていきます。Macを前提で書いたため/Users/となっていますが、Linuxの場合もuser_name以下を同様にして考えれば問題ないです。$がついているものが入力コマンドです。($はターミナルの表示に出ていると思うので、$よりあとを入力すれば良いです)

 

・ls
lsはカレントディレクトリのファイルリストを返すコマンドです。オプションとして、a、l、hなどを使うことで色々と便利な使い方ができます。aは隠しファイルも含めて出力、lはファイルのサイズや権限なども出力、hはサイズをB(バイト)、K(キロバイト)、M(メガバイト)、G(ギガバイト)形で単位がわかるように出力してくれます。

$ ls
file1.txt file2.txt file3.txt

 

・cd
cdはディレクトリの移動に関するコマンドです。端末の位置を変えるのに用います。変更にあたっては絶対パスを指定しても良いし、相対パスを指定しても良いです。相対パスを指定する際は「./」が同じディレクトリ、「../」が一つ上のディレクトリを指すことに注意すると良いです。また、「~/」がホームディレクトリを指すのでこちらも抑えておくと良いです。

$ pwd
/Users/user_name/Desktop/for_study
$ cd ../
$ pwd
/Users/user_name/Desktop
$ cd for_study

 

・mkdir
mkdirはディレクトリの作成のコマンドです。「$ mkdir ディレクトリ名」で新しいフォルダを作成することができます。

$ ls
file1.txt file2.txt file3.txt
$ mkdir dir1
$ ls
file1.txt file2.txt file3.txt dir1

 

・touch
touchはファイルの作成に用います。「$ touch ファイル名」でファイルを作成することができます。

$ ls
file1.txt file2.txt file3.txt dir1
$ touch file4.txt
file1.txt file2.txt file3.txt file4.txt dir1

 

・rm
rmはファイルの消去に用います。「$ rm ファイル名」でファイルを消去することができます。

$ ls
file1.txt file2.txt file3.txt file4.txt dir1
$ rm file4.txt
$ ls
file1.txt file2.txt file3.txt dir1

 

・vi
viはファイルを編集する簡易的なエディタのことです。これを使いこなせるようになるとちょっとしたファイルの修正が非常に楽になります。viは覚えることが多いので一旦コマンドとして知っておくで十分だと思います。


3. まとめ

#1ではCUIを覚えるメリットや基本コマンドについてまとめました。#2では今回取り扱ってないものの中で重要なコマンドについていくつかご紹介できればと思います。