こんにちは、みっちゃんです。
本業の傍ら、マイペースにブログで情報発信しています。
プログラミングといえば「真っ黒な画面にいろいろな文字列を打ち込む」イメージがあるけれど、実際に何をやっているのか分からない。プログラミングに必要なものであるならば、使い方をイチから学びたい。
この記事を書いている私は、10年以上、プログラミングを駆使して、世界中に散らばっているビッグデータを分析する仕事をしています。
プログラミングといえば、「真っ黒な画面にいろいろな文字列を打ち込む」イメージがある方もいるかもしれません。
そのイメージは、Macであれば「ターミナル」、Windowsであれば「コマンドプロンプト」などといったアプリケーションの画面から来ています。
プログラミングをやる上で、これらのアプリケーションは欠かせません。
プログラミングに必要なターミナル(Macのアプリケーション)の使い方を知りたい!
そんな風に考えている方に。
プログラミングに必要なターミナルの使い方
ターミナルはMacに標準搭載されているアプリケーション
「ターミナル」というアプリケーションは、Mac OSのコンピュータに購入時から搭載されています。
起動方法はさまざまですが、例えば、Launchpadの “その他” の中に “ターミナル” のアイコンがあるので、クリックして起動できます。
起動すると、以下のような画面が開きます。
シンプルですが、カーソルの位置に、さまざまなコマンド(命令文)を入力して、コンピュータにさまざまな命令を与える仕組みになっています。
また、メニューの中から “環境設定” を開くことで、背景色の変更などのカスタマイズをすることができます。
いろいろなカスタマイズができるので、好みのデザインを探してみてください。
ターミナルでは文字列だけでコンピュータ全体を表示する
プログラミングをしない限り、コンピュータに存在しているディレクトリ(フォルダ)やファイルを知るとき、Macの「Finder」というアプリケーションを使用していると思います。
例えば、(ユーザー名)の名前がついたディレクトリにある、ディレクトリやファイルを見ると、上の画像(左側)にあるように “書類” や “ムービー” といったディレクトリが並んでいる様子を確認できます。
ディレクトリがフォルダの “イラスト” で表示されていたりするので、目で見て分かりやすいと思います。
一方で、「ターミナル」では、”イラスト” ではなく “文字列” だけで、ディレクトリやファイルを表示します(上の画像(右側))。
ただし、「ディレクトリやファイルを表示して!」と命令しない限り、ターミナルには何も表示されません。
つまり、コマンドと呼ばれる命令文を(少しずつ)覚える必要があります。
ターミナルを使うために欠かせないコマンド3選
標準的なコンピュータの構成は、以下のようになっています。
ターミナルを使いこなすためには、この構成をしっかり理解しておくことが必要です。
pwd(今いる場所を知る)
ターミナルを開いたときには、赤枠で示している “ホーム” の場所、”/Users/ユーザー名/” という(絶対)パスで示される場所にいます。
これを確認するためには、ターミナルのカーソル位置に、以下のように入力します。
$ pwd
“pwd” とは “print working directory” の略で、今いる場所を知ることができます。
出力される結果は(絶対)パスと呼ばれる情報です。
ls(指定した場所にあるディレクトリ/ファイルのリストを得る)
今いる場所にあるディレクトリやファイルの一覧を取得するには、以下のように入力します。
$ ls
“ls” とは “list segments” の略で、ディレクトリやファイルの一覧を取得することができます。
また、(場所を示す)パスを指定することで、その場所にあるディレクトリやファイルの一覧を取得することができます。
$ ls /Users/ユーザー名/Desktop/
cd(移動する)
指定したディレクトリに移動するためには、以下のように実行します。
$ cd /Users/ユーザー名/Desktop/
“cd” とは “change directory” の略で、指定したディレクトリに移動することができます。
しかし、指定するディレクトリのパスを長く入力するのは大変なので、以下のように短く実行することもできます。
例えば、ターミナルを起動したときにいる “ホームディレクトリ” に移動するときには、パスを指定する必要はありません。
$ cd
また、今いるディレクトリの1つ上に移動したい場合には、以下のように実行できます。
$ cd ../
同じ要領で、2つ上に移動したい場合には、以下のように実行できます。
$ cd ../../
また、逆に、今 “/Users/ユーザー名/” にいる場合、”./Desktop/” に移動したい場合には、以下のように実行できます。
$ cd ./Desktop/
その他の便利なコマンド
cat(小さいファイルの中身を見る・ファイルに書き込む)
例えば、デスクトップに “letter.txt” というテキストファイルがあって、その中身を知りたい場合には、以下のように実行します。
$ cat /Users/ユーザー名/Desktop/letter.txt
HAPPY NEW YEAR !!!
もし “cd” コマンドによって、すでにデスクトップに移動している場合には、以下のように実行しても、テキストファイルの中身を表示することができます。
$ cd /Users/ユーザー名/Desktop/
$ cat letter.txt
また、ファイルに文字列を書き込むときにも “cat” コマンドを使うことができます。
基本的には、以下のように実行します。
$ cat <<EOF > (ファイル名)
> (書きたい内容)
> EOF
例えば、上で使用した “letter.txt” であれば、以下のように実行して作ることができます。
$ cat <<EOF > letter.txt
> HAPPY NEW YEAR !!!
> EOF
また、すでに存在しているファイルの末尾に追記していく場合には、以下のように実行します。
$ cat <<EOF >> letter.txt
> 2021
> EOF
$ cat letter.txt
HAPPY NEW YEAR !!!
2021
less(大きいファイルの中身を見る)
ファイルサイズがわかっている場合には、上の “cat” コマンドを使用すればいいですが、ファイルサイズが分からない場合には “less” コマンドを使用します。
$ less sample.txt
「-S」オプションをつけると、長い行を折り返さずに表示でき、「-N」オプションをつけると、行頭に行番号を表示することができます。
また、gzipで圧縮されているファイルであっても、”zless” コマンドでファイルの中身を見ることができます。
$ zless sample.txt.gz
sort(並び替え)
例えば、以下のようなテキストファイル(sample.txt)があるとします。
a
c
b
これをアルファベット順に並べたい場合には、以下のように実行します。
$ sort sample.txt
a
b
c
また、以下のような複数の列からなるテキストファイル(sample_2.txt)があるとします。
C 40
E 35
A 63
D 97
B 45
2列目の数字が小さいもの順に並べたい場合には、以下のように実行します。
sort -t $'\t' -k 2,2 -n test-2.txt
E 35
C 40
B 45
A 63
D 97
さまざまなオプションをつけていますが、「-t」は区切り文字を指定するためのオプション、「-k」は並び替えるときに注目する列を指定するためのオプション、「-n」は数字の並び換えの際に指定するオプションです。
「$’\t’」はタブを示す記号です。
その他のコマンド
- man:コマンドの使い方マニュアルを表示
- paste:2つのファイルを列方向につなげる
- cut:ファイルから任意の列を削除する
- wget:指定したURLからファイルをダウンロードする
- screen:仮想画面を使って、ログアウト後にも計算が維持する
- sed:行番号を指定して行を取り出す
- grep:文字列を指定して行を取り出す
- awk:指定した列を取り出し
- find:ファイルを検索
ということで、初心者向けにターミナルの使い方についてまとめてみました。
初心者の方は、馴染みがなく少し複雑に感じられるかもしれませんが、少しずつ操作に慣れていきましょう。