プログラミングを学習し始めるとターミナルを使う機会が増えます。積極的に使って慣れていこう!
CUI
コンピューターが世の中に普及しはじめた、MS-DOS、OS2、UNIXなどのOSが主流だった頃、コンピューターを使う時はコマンドと呼ばれる命令文を入力をしていました。
コマンドによりコンピューターの操作や設定などをしていました。
このコンピューターの操作はキャラクタユーザーインタフェース (character user interface)もしくは、コンソールユーザーインタフェース (console user interface)を略して「CUI」と言われています。
現在は、マウスを使ったり画面をタッチして操作するグラフィカルユーザーインターフェース(Graphical User Interface)を略して「GUI」が主流となっていますが、各OSはCUIで使用することもできるようになっています。
それは、画面で操作するには面倒な繰り返し作業を簡単にしたり、画面を用意せずにコマンド入力だけで単純に高速に動作させることができるなどの利点があるからです。プログラミング学習もGUIを用いた統合開発環境(IDE)を使うこともできますが、はじめの頃はコマンド入力でプログラムを実行しながら学習する方が簡単な場合もあります。
SDKを使うときにCUIでの利用方法を提供しているものも多くあります。
CUIを使うことに慣れておいた方が学習を進めていくのに有利になるでしょう。
ターミナル
Mac、Linux、WindowsでCUIを使う時は「ターミナル」を起動します。
WindowsではコマンドプロンプトやPowerShellを使ってCUIで利用しますが、Windows10では「Windows Terminal」が使えるようになっています。
Linuxはターミナルを使って操作することが最も多い作業かもしれません。
以下は、macOSの使い方を例に説明します。
macOSはカーネルがUNIXをベースとしているため、MacのターミナルはUNIXやLinuxのターミナルととてもよく似ています。
なのでターミナルで使うコマンド類もほとんどUNIX系のものと同じとなっています。
ターミナルの起動はランチパッドから[その他]-[ターミナル]をクリックするか、
もしくは、Spotlight検索フィールドに「terminal.app」と入力すると結果に表示されるターミナルをクリックして実行します。
ターミナルを起動すると以下の画面が表示されて、コマンド入力待ちとなります。
起動後はターミナルをDockに追加しておけば次回以降は簡単に起動出来るようになります。
ターミナル起動直後はディレクトリが「〜」となっています。
これはホームディレクトリ「/Users/username」を示しています。
ディレクトリは常にカレントディレクトリ名を表示します。
ターミナルを終了するには、メニューから「ターミナルを終了」を選択するか、⌘Qを入力すると終了します。
よく使うコマンド
ターミナルを利用するときによく使うコマンドをいくつか紹介します。
pwd
現在のディレクトリ(カレントディレクトリ)の場所を確認する
書式
pwd
オプション
※オプションはありますが、オプションなしで使用することがほとんどなので省略します。
例)
$ pwd
カレントディレクトリのパスを絶対パスで表示
cd
カレントディレクトリの移動
書式
cd directory
オプション
ディレクトリ |
指定したディレクトリに移動。directoryは相対パス,絶対パスのどちらでも指定可能。 |
記号による表記
/ |
ルートディレクトリ |
. |
現在のディレクトリ |
.. |
親ディレクトリ |
~/ |
ホームディレクトリ |
例)
$ cd /usr/bin "/usr/bin"ディレクトリに移動
$ cd ~/ ホームディレクトリに移動
ls
ファイルやディレクトリの一覧表示する
パスを指定せずにlsコマンドだけを実行したときはカレントディレクトリの情報を表示
書式
ls [-al] [name...]
オプション
-a |
隠しファイル(ファイル名の先頭にピリオドがあるファイル)を含んだすべてのファイルを表示 |
-l |
ファイルの詳細も同時に表示 |
name |
指定したファイルやディレクトリのみを表示。ワイルド・カードを使用するが可能 |
※よく使うオプションだけ表記しています。
これら以外にもオプションがあります。
例)
$ ls -al
total 160
drwxr-xr-x+ 50 hoge staff 1720 10 31 17:25 .
drwxr-xr-x 5 root admin 179 5 23 17:30 ..
-rw-r--r--@ 1 hoge staff 200 5 24 01:20 .bashrc
drwx------+ 25 hoge staff 853 11 1 14:53 Downloads
-rw-rw-r-- 1 hoge staff 20 11 16 17:40 test.txt
cp
ファイルやディレクトリのコピー
書式
cp [-fr] source dest
cp [-fr] source... directory
オプション
-f |
コピー先に同名ファイルがあるときも警告せず,上書きを行う |
–r |
ディレクトリを再帰的にコピー(サプディレクトリもコピーする) |
source |
コピー元のファイルやディレクトリを指定。ワイルド・カードを使用可能 |
dest |
コピー先のファイル名やディレクトリ名を指定。ファイル名を指定した場合は新しい名前でコピーされる |
directory |
コピー先のディレクトリを指定 |
※よく使うオプションだけ表記しています。
これら以外にもオプションがあります。
例)
$ cp file1 file2 "file1"を"file2"という名前でコピー
$ cp -r folder1 folder2 "folder1"の内容をサブフォルダーも含めて全て"folder2"へコピー
mv
ファイルやディレクトリの移動・名前の変更をする
書式
mv [-fu] source dest
mv [-fu] source... directory
オプション
-f |
移動先に同名ファイルがあるときも警告なく上書き |
-u |
同名のファイルが存在した場合,タイム・スタンプを比較し同じまたは新しいときには移動を行わない |
source |
コピー元のファイルやディレクトリを指定する。ワイルド・カードを使用可能 |
dest |
コピー先のファイル名やディレクトリ名を指定する。ファイル名を指定した場合は新しい名前でコピーされる |
directory |
コピー先のディレクトリを指定 |
※よく使うオプションだけ表記しています。これら以外にもオプションがあります。
例)
$ mv file1 file2 "file1"ファイルを"file2"という名前に変更
$ mv ./sample.txt ./tmp/sample.txt "sample.txt"ファイルを"tmp"フォルダに移動
rm
ファイルやディレクトリを削除する
書式
rm [-fr] name...
オプション
-f |
警告メッセージを表示しない |
-r |
ディレクトリ内を再帰的に削除 |
name |
削除するファイルやディレクトリを指定する。ワイルド・カードを使用可能 |
※よく使うオプションだけ表記しています。これら以外にもオプションがあります。
例)$ rm *.txt
カレントディレクトリにある拡張子が".txt"のファイルを全て削除$ rm -rf folder1
"folder1"をサブフォルダーも含めて全て削除
mkdir
ディレクトリの作成
書式
mkdir [-m mode] [-p] directory...
オプション
-m mode |
ディレクトリのモードを設定 |
-p |
指定したディレクトリをサブディレクトリごと作成する。ツリー状のディレクトリも作成可能 |
directory |
作成するディレクトリ名を指定 |
※よく使うオプションだけ表記しています。これら以外にもオプションがあります。
例)
$ mkdir -p ./tmp/scripts サブディレクトリを含めたディレクトリを作成
$mkdir -m +w tmp 書き込み権限を与えてディレクトリを作成
touch
ファイルを作成、タイムスタンプ変更
書式
touch [name...]
オプション
d | 日時を指定する |
c | ファイルを新規作成しない |
r | 他のファイルのタイムスタンプに合わせる |
例)
$ touch sample.txt
sample.txtファイルを新規に作成します。
最後に
プログラミングを学習する目的以外にもコマンドプロンプトを使うことは多くあります。
何かを開発するようになると必ずといっていいくらいにコマンド入力が必要になってくるのでコマンドプロンプトに慣れておくととても有利です。
普段は使うことがないので億劫になりがちですが、是非積極的に使ってみてください。