2018/01/20

[初心者必見]ターミナルの主要キー

cocoapods導入時に、ターミナルを操作したのですが、「No Xcode project found, please specify one」と、使い方でハマったので、メモしておきます。

こちらを参考にさせていただきました。https://techacademy.jp/magazine/5155

ターミナルとは

ターミナルとは、コマンドと呼ばれる命令文を用いてMacの操作や設定をおこなうためのツールです。
Windowsで言うところのコマンドプロンプトになります。

コマンド入力とエンターキーで命令文を打っていくのですが、ターミナルは特定のディレクトリ(フォルダのようなイメージ)で操作をおこなうツールになります。

例えば、cocoapodsの場合には、インストール自体では、ディレクトリに移動する必要はありませんので、

ある特定のプロジェクトにSDKをインストールする場合には、Xcodeプロジェクトがあるディレクトリに移動した上でコマンド入力をしなくてはいけませんが、ターミナルの知識が乏しかったので、ここで見事にはまりました。。。

下で詳しく説明していますが、cocoapodsのSDK導入にあたっては、「ls + enter」で現在のディレクトリを調べる → 「cd (ディレクトリ名) + enter」で該当のディレクトリまで進んでいけばいけます。

ターミナルの起動

MAC左上のFinder → アプリケーション → ユーティリティ → ターミナルで開けます。

ターミナルの主要コマンド

cd

ディレクトリ間を移動する場合に使用します。

「ターミナルの使い方」でも述べたとおり、ターミナルでは1つのディレクトリしか開くことができません。
そのため、他のディレクトリにあるファイルを操作したい場合は、そのディレクトリまで移動する必要があります。
(パスを指定する方法もありますが、ここでは割愛します)

このディレクトリの移動に用いるコマンドが「cd」コマンドです。
「cd ディレクトリ名」と入力して実行します。
例えば、現在のディレクトリ中にある「Documents」ディレクトリへ移動したい場合は、「cd Documents」と入力します。
このとき、もし入力したディレクトリが存在しない場合は、「No such file or directory」というエラーが出ます。

また、現在のディレクトリよりも1つ上のディレクトリへ移動したい際は、「cd ../」と入力します。

これらのディレクトリ名は、連続で入力することもできます。
例えば、Documentsディレクトリ内にあるtextディレクトリを開きたい場合は、「cd Documents/text」と入力すると移動できます。

cd –

一つ前にいたディレクトリに戻るコマンドです。

ls

現在のディレクトリ内に存在する、ディレクトリやファイルを表示するコマンドです。

このコマンドは「ls」のみで実行します。
例えば、先ほど画像で示したユーザ名のディレクトリですと、この図のように表示されます。(ユーザー名は白で隠してあります)

Finderのフォルダと比較すると、全く同じ名前のディレクトリを表示していることが分かるかと思います。

先ほど紹介したcdコマンドでディレクトリを移動する際は、このlsコマンドで事前に移動したいディレクトリが存在するか確認すると便利です。

mkdir

ディレクトリを作成するためのコマンドです。

「mkdir 作成したいディレクトリ名」で実行します。
例えば「mkdir AAA」と入力し実行すると、AAAというディレクトリが作成されます。

rm

ファイルを削除するコマンドです。

「rm ファイル名」で実行します。
このコマンドで削除したファイルはゴミ箱には入らず、また警告等も出ませんので、十分注意して実行するようにしてください。
誤って重要なファイルを削除してしまった場合、コンピュータが起動しなくなる可能性もあります。

mv

ファイルやディレクトリの名前を変更する場合や、移動する場合に利用します。

用途が2つあるので紛らわしいのですが、どちらの場合も「mv AAA BBB」のように入力して実行します。
AAAとBBBは、ファイルまたはディレクトリの名前です。
このコマンドを実行した場合の動作は、このAAAとBBBによって、次のように異なります。

BBBというディレクトリが存在する場合は、AAAをBBBの中へ移動
BBBというファイルが存在する場合で、かつAAAがファイルの名前である場合は、BBBへ上書き保存
BBBが存在しない場合には、AAAをBBBという名前に変更

cp

ファイルをコピーするコマンドです。

「cp AAA BBB」と入力すると、AAAというファイルがBBBという名前でコピーされます。
このとき、BBBというファイルが既に存在している場合は、BBBへ上書き保存します。
また、BBBがディレクトリの名前である場合は、BBBディレクトリの中にAAAがコピーされます。

pwd

今開いているディレクトリまでのパスを表示します。

ターミナルで今どのディレクトリを表示しているのか分からなくなったら、このコマンドを実行しましょう。
このコマンドもlsと同様に、「pwd」のみで実行します。

man

コマンドのマニュアルを開きます。

マニュアルは英語ですが、各コマンドのオプションなどが表示されるので、1度は試してみましょう。
「man マニュアルを開きたいコマンド名」で実行します。
例えば、「man man」と入力した場合は、次のようにmanコマンドの利用方法が表示されます。

このマニュアルを読んでいると、「OPTIONS」という項目があることが分かるかと思います。
この記事では説明を割愛しましたが、多くのコマンドにはオプションと呼ばれる機能を付加して実行することができます。

例えばmvやcpコマンドで「-n」オプションを付けて実行すると、上書き保存を防止することなどができます。
特にプログラミングなどをターミナルでおこなう場合にはオプションもかなり利用することになると思いますので、こちらのmanコマンドでオプションの使い方などを一通り目を通してみましょう。

このマニュアルは、終了する場合に「q」を入力します。
qを入力して終了しないと、次のコマンドを受け付けませんので注意しましょう。

find

ファイルやディレクトリの検索に利用します。

「find 検索する場所 -name 検索するファイル名」で実行します。
「検索する場所」が分からない場合には、先ほどのpwdコマンドやlsコマンドを用いて、大体の目星を付けましょう。

clear

ターミナル画面をクリアし、表示された文字を全て消去します。

実行した内容が取り消される訳ではありません。
同じコマンドを何度も実行する場合などは、どのコマンドをいつ実行したのかが分かりにくくなってしまいます。
そのような場合はこのコマンドを実行し、一旦ターミナルを見やすくしましょう。
このコマンドは「clear」のみで実行できます。

exit

ログアウトする場合に用います。

通常のターミナル利用では、ログアウトせずにターミナルを終了しても問題ありません。
しかし、サーバ等に接続している場合は必ずこのコマンドでログアウトしてからターミナルを終了しましょう。

このコマンドは「exit」のみで実行できます。

exitではなく、「logout」コマンドでもログアウトすることができます。

まとめ

繰り返しになりますが、cocoapodsのSDKインストールでは、「ls + enter」で現在のディレクトリを調べる → 「cd (ディレクトリ名) + enter」でいけます。
他のSDKインストールでも似たような手順が必要になりそうなので、残しておきます。

今回は以上です。


お知らせ

ヒヨコ歩数計という歩きながらヒヨコが育っていくアプリを作って、いろんな方に結構使ってもらっています。
RealmSwift, Admobの動画・インステ・バナー広告、UICollectionView、iOS-Charts、UITableViewを使用しているので、是非ご利用ください!