エンジニアHubPowered by エン転職

若手Webエンジニアのための情報メディア

Macでターミナルとシェルを使うための基礎知識 - 環境の構築と基本的なファイル操作を知る

Macでターミナルとシェルを活用し、サクサクと作業をするには?シェルに関する多数の執筆を持つ、「シェル芸人」こと上田隆一さんが基本のテクニックを解説します。

こんにちは。千葉工業大学未来ロボティクス学科の上田@ryuichiuedaです。というよりシェル芸の人と呼ばれることが多い上田です。

この記事は、「Macでターミナルやシェル、コマンドを使う」というテーマでお送りするものです。通常、シェルの話になるとサーバとして利用されるOSを環境に指定することがほとんどです。この企画もそういう暗黙の前提があったはずなのですが、「せっかくエンジニアにはMacユーザーが多いのだから、Macで普段使いできるような解説を書きたい」と筆者がダダをこねてねじ曲げて、これを書いております。

シェル(ターミナル)というと「黒い画面」と恐れられるような存在ではあるのですが、しょせんは道具です。少しずつ便利に使えるようになってもらえれば、という軽い気持ちで執筆していますので、お付き合いください。読んでいて簡単すぎる場合には、身の回りの「使ってない人」に押し付けない程度に紹介ください。

ただ、初心者向けで終わるなともくぎを刺されているので、後半はワンライナーをさく裂させます。

今回の内容

・ターミナルの外観をターミナルとコマンドを使って変える
・Finder代わりにターミナルとコマンドを使う
・シェルの設定ファイルを編集してターミナルの表示に色を付ける
・ファイルの検索をしながらシステムに潜り込む

今回の環境

・OS: macOS High Sierra(バージョン10.13.6)
・マシン: Parallels Desktop上の仮想マシン
・ターミナル(Terminal.app): バージョン2.8.3
・シェル: bash 3.2.57(1)-release

注意

1カ所だけシステムのファイルを扱うところがあって万が一の場合、ご自身のMacに不具合が出る可能性があります。試す前にはTime Machineなどでバックアップをお願いします。また、本記事を試して生じた不具合等については、筆者や掲載者は責任を負いかねますのでご注意ください。

コマンドのコピペでターミナルをカスタマイズ

最初に、細かい説明は抜きにして、ターミナルのカスタマイズをターミナルから使ってやってみましょう。早速、Launchpadからターミナルを立ち上げてみましょう。念のためですが、これ↓です。

立ち上げると、次のような画面が現れます。地味です。以後、この画面の「$」(プロンプト)の右側に何かを書くことによって便利にMacを使っていくわけですが、ほかのアプリのようにもうちょっとカラフルにしたいかなというところです。

通常この設定は、ターミナルのメニューから「環境設定」を選んで、そこで好きなようにGUIをいじって設定します。

ただ、このような情報はGoogleで「ターミナル Mac カスタマイズ」で検索することでもいろいろと調べられます。そこで、もう少しマニアックな方法をとってみたいと思います。

ひとつ注意を。 これからご紹介する操作を試すと、「my」というプロファイルを作成・保存します。すでにターミナルの設定に「my」というプロファイルが存在する場合、上書きされてしまうので、ご注意ください。また、現在のターミナルのプロファイルを保存してください。普段、ターミナルを使わず、この注意に心当たりがない場合は大丈夫です。

まず、Macがインターネットに接続された状態で次のコードをコピーしてください。

curl -L https://bit.ly/2LM2vDq > /tmp/my.terminal
open /tmp/my.terminal

そして、ターミナルが開いていない場合はターミナルを開き、画面にコードを貼り付けます。すると、次のように濃紺色のターミナルが開きます。開かない場合は、元のターミナルでreturnキーを押すと開きます。

次に、開いた濃紺色の方のターミナルで次のコードをコピペします*1。ターミナルが閉じない場合は、元のターミナルでreturnキーを押して閉じてください。

defaults write com.apple.Terminal "Default Window Settings" my
defaults write com.apple.Terminal "Startup Window Settings" my
exit

これでターミナルのメニューから「ターミナルを終了」をクリックして、その後Launchpadで再度ターミナルを起動すると、濃紺色のターミナルがデフォルトで開くようになります。うまくいかなかった場合は、1行ずつコピペしてみたあとにターミナルを終了し、再度起動してみてください。

ターミナルは少しは使える方がいい

以上、コピペだけでターミナルの外観を変えました。この例に限らず、ターミナルを普段から使う人同士は、普段から質問への回答や作業の依頼をチャットにコマンドを貼り付けて済ますということをよくやります。

普段から使わない人に対してぶっきらぼうにこれをやると嫌がらせと捉えられてしまいますが、使う人からすると、これが「どこどこの画面を開いて……」とやるのは少々面倒です。

この意識のズレが互いにフラストレーションになることもありますが、必要なのは双方の歩み寄りです。ということで、筆者からはターミナルに興味を持ってもらえるように頭をひねって書いてますので、普段使わない人ももう少しお付き合いください。これから何十年もPCを使うことを考えると、文字だけで、しかもさまざまなシステムを扱えるシェルやコマンドというものに慣れておくことは損ではないのかなと思います。

ここまでのおさらい

ここで、今やった手順について、少し深掘りしてみます。長いウンチクになりますが、一言で言うと、「ターミナルの中でシェルを使うことで、ソフトウェアやファイルを扱える」ということになります。

ターミナルとは

まず、「ターミナル(日本語で端末)ってなに?」という話ですが、これはもともと、昔のある時期のコンピュータにつながっていたタイプライタとプリンタを意味します。

タイプライタで文字を打ってコンピュータに命令すると、コンピュータがそれを受けて文字を返してきて、それがプリンタで印字されて出力されます。プリンタはその後、テレビモニタに置き換わりました。古い話です。

Macのターミナル(Terminal.app)は、この古めかしい端末の動きを再現するソフトウェアです。Terminal.appはMac自身に接続しており、やはりなにか文字を打つと、Macが仕事をして結果(出力)を返します。

例えば、ターミナルで次のコマンドを打つと、curlというプログラムがMac上で動き、 URLの場所からデータをダウンロードしてきます。このダウンロードされたデータが「出力」として画面にザーッと表示されます。

curl -L https://bit.ly/2LM2vDq

やってることは電卓とそんなに変わりません。文字を打ち込んだら、何かの処理をコンピュータがやってくれて、結果が画面に出力された。ただそれだけです。

シェルの役割

ところで、今述べたようにターミナルは単に文字を受け付けて文字を吐き出す機械であって、受け付けた文字を解釈して出力を返すのは別の道具の仕事です。

この仕事の窓口をしているものは「シェル」と呼ばれます。上のcurlの例では、シェルはこの文字列をcurl-LとURLに分けて、ソフトウェアであるcurl-LとURLを渡します。そして、シェルはcurlからデータを受け取り、これを端末に返しています。

シェルにはさまざまな種類がありますが、本記事ではターミナルを立ち上げると同時に立ち上がるBashを使っています。また、シェルというとBashのように文字だけ扱うもののことを指すことが多いのですが、GNOME Shellのように、GUIインタフェースの名前に使われることもあります。

シェルは、ソフトウェアの入出力も扱いますが、同時にファイルも扱います。例えば、curlの後ろに付けた> /tmp/my.terminalは、プログラムの出力を/tmp/my.terminalに保存したいときのBashへの命令方法です。Bashは、> ...を解釈し、命令のとおりにcurlからのデータをファイルに書き出します。

また、ソフトウェアcurlもどこかファイルに保存されているわけで、BashはHDDやSSDなどから探してきて実行しています。シェルでは、curlのように文字列で呼び出すソフトウェアを「コマンド」と呼びます。

ターミナル+シェル+コマンドでできること

コンピュータというのはファイルとプログラムが扱えればだいたいのことができるので、ターミナルやシェルを扱えるとたいていのことができることになります。また、マウスやタッチパッドが介在する操作と比べて、作業の自動化が簡単です。先ほどのコピペはその例として示しました。

一方、シェルの仕組み上、ユーザーに画像などを提示することはできません。地味でとっつきにくいというのも敬遠される理由です。ただ、Macには先ほど使ったopendefaultsなど、その溝を橋渡しするコマンドが存在しており、使い方を知っておくと楽できる場面があります。

シェルをFinderのように使う

ということで、なるべくすぐに使える操作からシェルとコマンドの使い方を確認していきます。Finderの機能をコマンドで代用するところからシェルに慣れていきましょう。

まず、ターミナルからダウンロードしたファイルを開くということをやってみます。下準備としてWebブラウザで好きな画像を開いて保存しておいてください。

lsで表示、cdで移動、openで開く

ファイルやディレクトリ*2のリストはlsというコマンドで調べることができます。

macos-10:~ ueda$ ls
Desktop     Downloads   Movies      Pictures
Documents   Library     Music       Public

このリストは、 Finderのメニューの「移動」から「ホーム」を選ぶと GUIで見ることができます(名前が日本語になっていますが)。

ターミナルがFinderと同じものだと考えると、ターミナルを立ち上げることは、この「ホーム」が開くことと解釈できます。

ファイルやフォルダの詳細が見たいときは、Finderでは次のような画面にします。

コマンドでもls -lと打つとほぼ同じものが見られます。

-lは、コマンドlsに与えている情報で、「引数」と呼ばれます。引数は次のように、半角スペースで区切って記述します。

$ コマンド 引数 引数

また、-lのようにコマンドの挙動を変える引数は「オプション」と呼ばれます。

ソートもできます。次の例はls -ltrを使い、古いものが上に来るように並び替えして表示する例です。 -ltrtが時刻順、rが順番の反転を意味します。それぞれ-t-rと独立したオプションとして渡しても機能します。

横道にそれましたが、ファイルを開く操作に戻りましょう。 lsしたときのDownloads(=Finderで見たときの「ダウンロード」)が、普段ブラウザから何かをダウンロードしたときにファイルがたまっていくディレクトリです。

このディレクトリに移動してみましょう。 Finderではフォルダをダブルクリックする操作と同じです。

移動にはcdというコマンドを使います。まず、ここまで打ちます。

macos-10:~ ueda$ cd Dow

その後、Tabキーを押します。すると、あとの文字は補完されます。

macos-10:~ ueda$ cd Downloads/

この機能はシェルのタブ補完と呼ばれます。タブ補完は必ず使うクセを付けましょう*3

補完は候補が2つ以上ある場合には素直に効きませんが、その場合には適宜文字を打ち込んで候補を絞ってください。上の例ではDocumentsとのバッティングを避けるためにDowまで打ちました。

補完が終わったらreturnキーを押してコマンドを実行します。これでDownloadsディレクトリへの移動が完了します。

macos-10:~ ueda$ cd Downloads/
macos-10:Downloads ueda$

ここでlsを使うと、中のファイルが見られます。

macos-10:Downloads ueda$ ls
ai_kanabou_buki.png

ai_kanabou_buki.pngを開いてみましょう。openという、アイコンのダブルクリックに相当するMac固有のコマンドを使います。

macos-10:Downloads ueda$ open ai_kanabou_buki.png

この状態でreturnキーを押すと、次のようにプレビューが立ち上がります。これで目的が果たせました。

また、複数の画像を一気に開くということもできます。例えばDownloadsの中にいくつかPNG画像があるなら、

macos-10:Downloads ueda$ open *.png

で、次のようにプレビューで「全xページ」とまとめて開くことができます。

*.pngは、拡張子が.pngの全ファイルを指します。もし画像をDownloads内に水増ししたいならば、screencaptureというコマンドを使うとスクリーンショットを指定したファイル名で保存してくれます。

macos-10:Downloads ueda$ screencapture hoge.png

さらに、openを使えば、プレビューだけでなく、ブラウザで画像を開くということも可能です。

macos-10:Downloads ueda$ open -a firefox ai_kanabou_buki.png

上記のコマンドのように-a アプリケーション名というオプションを加えます。open -a firefox ...は、アニメーションGIFなどを閲覧するときによく使います。

今の操作が便利かどうかは人によって感じ方がさまざまです。最初はコマンドlscdopenを覚え、さらにls -ltrの場合などオプションをいくつも覚えていかないといけないので面倒なのですが、普段からよくやる操作についてはGUIでのショートカットのように覚えていくとよいでしょう。もし途中で面倒になったら、次のようにopen .と打ちましょう。

macos-10:Downloads ueda$ open .

するとFinderが開くのでFinderを使った操作に戻ることができます。

また、今はホームからDownloadsというディレクトリに入ったわけですが、ホームに戻る場合には、次のコマンドを使います。

macos-10:Downloads ueda$ cd ..

..は、「1つ上のディレクトリ」を示します。ただし、ホームに戻る場合に限っては、次のコマンドでもかまいません。

macos-10:Downloads ueda$ cd

cdだけで、どこのディレクトリからでもホームに戻れます。

mvで名前の変更、cpでコピー、rmで削除

さらにファイルを操作するコマンドを使ってみましょう。名前の変更はmv(move filesの意)を使います。次の例は、ai_kanabou_buki.pngthis_is_it.pngに変える処理です。しつこいですが、タブ補完を必ず使いましょう。

macos-10:Downloads ueda$ ls
ai_kanabou_buki.png
macos-10:Downloads ueda$ mv ai_kanabou_buki.png this_is_it.png
macos-10:Downloads ueda$ ls
this_is_it.png

次に、ファイルをコピーしてみます。cp(copyの省略)を使います。

macos-10:Downloads ueda$ cp this_is_it.png ai.png
###lsで確認###
macos-10:Downloads ueda$ ls -l
total 1184
-rw-r--r--@ 1 ueda  staff  302304  1  8 11:05 ai.png
-rw-r--r--@ 1 ueda  staff  302304  1  4 11:14 this_is_it.png

コピー元のファイルを消してみましょう。rm(removeの省略)を使います。

macos-10:Downloads ueda$ rm this_is_it.png
macos-10:Downloads ueda$ ls
ai.png                         #ai.pngだけ残る

ファイルの操作コマンドの紹介はとりあえずここまでにしておきます。普通、初心者向けの資料ではこのあとにrmdir, mkdir, chmod, ...と続いて正直、つまらないわけですが、GUIがあるので、何かわからなくなったらopen .して逃げてしまえばなんとかなります。

lsの出力に色を付ける

今度は、openの便利な使い方の例を示し、ついでにシェルをカスタマイズします。カスタマイズの内容は、lsの出力に色を付けて見やすくするというものです。現状、lsの出力は次のように全部白い文字で出てきますが、ls -Gを使うとファイルの種類に応じて色を付けてくれます。

次の例は、執筆に使っているMacのデスクトップをlsしたものです。ピンク色で表示されたParallels Shared Foldersがリンク(エイリアスやショートカットと呼ばれるもの)、青い色のsecretがディレクトリ、ほかが普通のファイルです。

ただ、次のような不満もあります。

  • いちいちls -Gと打つのが面倒
  • 青背景に青字は見にくい

これを改善してみましょう。まず、次のコマンドを打ちます。

macos-10:~ ueda$ touch ~/.bash_profile

touchは、「ファイルに触る」という意味のコマンドで、touchの後ろに書いたファイルがない場合には空のファイルを作ります。また、ファイルがある場合には更新時間が現在時刻に変更されます。

次に、open -e <ファイル名>で、Macの「テキストエディット」を立ち上げることができるので、今作った空のファイルを開きます。

macos-10:~ ueda$ open -e ~/.bash_profile 

ファイルが開いたら、次のように記述して保存します。コピペでかまいません。ただ、そのままコピペすると改行コードがおかしくなってしまうので*4、1行ずつコピーして自分で改行するか、そのままコピペしたあとに自分で改行を打ち直してください。

export CLICOLOR=1
export LSCOLORS=DxGxcxdxCxegedabagacad

テキストエディットにこの文字列を貼り付けたところを示します。

これで一度端末を閉じて、開くと(もちろん、慣れている人はsourceで大丈夫です。)、次のように見やすい色が付いているはずです。

ここまでのおさらい

今の操作も簡単だったと思いますが、少し裏側で起こっていることに踏み込んでみましょう。.bash_profileは、Bashの設定ファイルです。これをホームに置いておくと、Bashが立ち上がるときに読み込んで自分自身で実行します。頭に.が付いているファイルは隠しファイルです。Finderでもlsでも表示されません。ただし、ls -aと打つと表示できます。

macos-10:~ ueda$ ls -a
.                   .bash_history       .viminfo            Movies
..                  .bash_profile       Desktop             Music
.CFUserTextEncoding .bash_sessions      Documents           Pictures
.DS_Store           .lesshst            Downloads           Public
.Trash              .ssh                Library

このように、他にもいろいろ隠しファイルやディレクトリがあることが確認できます。

Finderでは、shiftキーとcommandキー、.キーを同時に押すと表示/非表示を切り替えられます。

または、ターミナルで次のコマンドを打つことでも切り替えることができます。

##表示##
macos-10:~ ueda$ defaults write com.apple.finder AppleShowAllFiles true
macos-10:~ ueda$ killall Finder
##非表示##
macos-10:~ ueda$ defaults write com.apple.finder AppleShowAllFiles false
macos-10:~ ueda$ killall Finder

次に、.bash_profileの中身を説明します。このファイルは設定ファイルであると同時に、 Bashへの指令、つまりプログラムになっています。シェルのプログラムは「シェルスクリプト」と呼ばれ、システムの設定やファイル処理のプログラムによく利用されます。

ただ、プログラムといっても単にコマンドを呼び出しているだけですので、上から順に解読していけば理解できます。

まず、どちらの行でも使っているexportというコマンドですが、これは、lsなどのコマンドが使う情報をセットするためのものです。この情報は「環境変数」と呼ばれます。1行目を見てみましょう。

export CLICOLOR=1

これは、CLICOLORという名前の環境変数を作って1という値をセットしています。MacのlsCLICOLORという環境変数があるとls -Gと同じ振る舞いをするので、この設定をしています。

どこにそんなことが書いてあるかというと、次のコマンドで確認できます。

macos-10:~ ueda$ man ls 

いろいろ説明が表示されるので、オプション「-G」の説明のところまでタッチパッドでスクロールするか、下矢印キー、スペースキー、あるいはJキーを押してスクロールしましょう。

     -G      Enable colorized output.  This option is equivalent to defining
             CLICOLOR in the environment.  (See below.)

このように書いてあります。manはマニュアルのコマンドです。読んだらqと打つと終了できます。

2行目のコマンドは、色分けして表示するための設定です。

export LSCOLORS=DxGxcxdxCxegedabagacad

これも、man lsしてLSCOLORSのところを読むと意味が分かります。ただ、白状しておくと、本記事で使っているLSCOLORS=DxGx...は、さまざまな人が使ってウェブに掲載しているものの使い回しです。

本当は出典を記載すべきなのですが、誰のものがオリジナルなのかよく分からないので割愛させていただきます(自分の書いたページも出てきました……)。

コマンドでファイルを探す

ここからはFinderの検索に相当することをコマンドを使ってやってみます。お題は「システムの中に侵入して、ターミナルの外観が記録されているファイルを調べる」です。

まず、findというコマンドを使ってみましょう。findfind ディレクトリという使い方をします。次の例は、ホームを対象にfindを使った例です。

macos-10:~ ueda$ find ~/
(出力がザーッと流れる)

読めないくらい速くファイルのリストが流れて「何がfind(見つける)だ」という感じです。そしてこのコマンドは、単に存在しているファイルのリストを出力するだけです*5

で、これをどう使うかというと、他のコマンドと組み合わせます。例えば、ターミナルに関係するものは、com.apple.Terminalという名前のディレクトリにあるので、この名前で検索をかけてみましょう。上矢印を押すと前に打ち込んだfind ~/が表示されるので、それに続けて次のように| grep -F ...と打ち込みます。

macos-10:~ ueda$ find ~/ | grep -F 'com.apple.Terminal'
/Users/ueda//Library/Saved Application State/com.apple.Terminal.savedState
/Users/ueda//Library/Saved Application State/com.apple.Terminal.savedState/window_1.data
(以下略)

grepfindから文字列を受け取り、引数に指定された文字列com.apple.Terminalを探し、この文字列のある行だけを出力します。-Fというオプションは「単に渡した文字列を検索してくれ」という意味です。また、引数をシングルクォート(')で囲っています。説明をすると長くなるので、とりあえずgrepを使うときはこうしておくと無難と書いておきます。

findgrepの間の|は「パイプ」を表します。findの出した文字を、パイプを通してgrepに流し込むイメージです。

Macのさまざまな設定は、plistファイルというファイルに格納されています。拡張子が.plistのファイルです。先ほどの出力からさらに絞り込んでみましょう。節操なく、またgrepをつなげます。

macos-10:~ ueda$ find ~/ | grep -F 'com.apple.Terminal' | grep 'plist$'
/Users/ueda//Library/Saved Application State/com.apple.Terminal.savedState/windows.plist
/Users/ueda//Library/Preferences/com.apple.Terminal.plist

2つファイルが見つかりました。今度のgrepにはplist$という文字列を渡しましたが、$は「行の最後」という意味に解釈されます。したがってこのgrepは「plistで終わる行」を出力するという作業をします。

これを直接いじるとシステムを壊す場合があるので、ホームにコピーしましょう。慣れないうちは検索結果をコピペでもよいのですが、xargsというコマンドを使ってみます。次の例は、xargslsを組み合わせた例です。

macos-10:~ ueda$ find ~/ | grep -F 'com.apple.Terminal' | grep 'plist$' | xargs -I@ ls @
/Users/ueda//Library/Saved Application State/com.apple.Terminal.savedState/windows.plist
/Users/ueda//Library/Preferences/com.apple.Terminal.plist

xargs -I@ ls @は、ls @@の場所に、パイプから来た文字列を1行ずつ当てはめるという意味になります。これがうまくいったら、次のようにwindows.plistcom.apple.Terminal.plistをコピーしてきます。

##ls @をcp @ ./に変更##
macos-10:~ ueda$ find ~/ | grep -F 'com.apple.Terminal' | grep 'plist$' | xargs -I@ cp @ ./
##確認しましょう##
macos-10:~ ueda$ ls
Desktop         Downloads        Movies          Pictures         com.apple.Terminal.plist
Documents       Library          Music           Public           windows.plist

さらに、com.apple.Terminal.plistの中をのぞいてみましょう。このファイルはバイナリなので、専門のツールplutilでテキストにします。このままだとターミナルをザーッと文字列が流れるだけなので、さらに、lessというコマンドにデータを渡してmanのように閲覧できるようにします。操作方法はmanと同じです。

読んでいくと、何度かmyという、最初に読み込んだターミナルの設定の名前が出てきます。また、下に行くと、myの各種パラメータが記録されている部分があります。

macos-10:~ ueda$ plutil -p com.apple.Terminal.plist | less
    "my" => {
      "BackgroundAlphaInactive" => 0.5
      "BackgroundBlur" => 0
      "BackgroundBlurInactive" => 0.4851296164772727
      "BackgroundColor" => <62706c69 73743030 d4010203 ...

これ以上、plistの詳細に踏み込むのはシステムを壊したり面白すぎて帰ってこられなかったりとさまざまな理由で危険なのでここでやめておきます。一日中ターミナルを使って生活している人は、こんなふうにしてファイルを探している――今ご覧いただいた操作はそんな一例です。

今回はたまたまMacの設定ファイルでしたが、テキスト化できるファイルならなんでもfindgrep、その他コマンドで探して中身を見るということができます。一度もマウスやタッチパッドを触る必要がありません。ただ、検索した画像をアイコンで見るということはできないので、そこはうまくFinderと使い分けることをおすすめします。

まとめ

本記事ではMacでのターミナル、シェル、コマンドの操作についていくつか例を挙げ、操作の方法や仕組みについて説明しました。少し雑多な説明になってしまいましたが、次のことをお伝えしたつもりです。

  • ターミナルが使えると楽ができる
  • ファイル操作のコマンドがよくわからなければopen .で逃げられる
  • MacにはGUIや設定に関する専用のコマンドがある
  • コマンドは組み合わせて使う

執筆していて感じたのは、筆者の場合、Linuxで同様の記事を書くと、なんとしてもターミナル内で完結させようとしてしまって硬派な内容になるのですが、 Macにはいろいろな逃げ道があるので書いていてもそういう内容にはならないということです。Macは常に使うOSでもあるので、シェルの操作をストレスなく覚えるには適しているのではないかと思います。

参考URL

上田隆一(うえだ・りゅういち) @ryuichiueda

上田隆一
「シェル芸」の提唱者として知られ、シェルスクリプトに関する著作、雑誌寄稿などを多数。本業はロボティクスの研究者で、千葉工業大学先進工学部未来ロボティクス学科准教授。確率論を用いたロボット制御が専門。元ロボカッパー(国際ロボット競技大会RoboCupの競技者)、「確率ロボティクス」の翻訳者、ROSの入門書の著者として知られる。東京大学博士(工学)。

編集:澤田竹洋(リブロワークス

*1:どちらでもよいのですが、おそらくこちらのほうが楽です。

*2:「ディレクトリ」は、フォルダのもともとの呼び名です。フォルダというのは文具からの比喩です。特にこだわる必要もないのですが、コマンドを扱っている場合はディレクトリと呼んだほうがしっくりくるので、本記事ではディレクトリで統一します。

*3:講義で学生に教えていると使ってくれないので、この場を借りてほえさせていただきます。

*4:テキストエディットを使ってコピペすると改行コードがCRになってしまうことがあるようです。もちろん、CLIのエディタではそのようなことは起こりません。わざわざテキストエディットを使っているのは敷居を下げるためなのですが、敷居を下げると罠がいっぱいでかなりつらいです。CLIだけでやりたいです……。

*5:オプションを使えばいろいろできますが、正直覚えられません。