コマンドライン編

コマンドライン

Unixのコマンドライン操作を
学ぶチュートリアル

第2章基礎

SF作家ニール・スティーヴンスンがいみじくも言ったように「最初に学ぶのはコマンドライン」なのです。コンピューターはGUIのおかげで劇的にシンプルに使えるようになりましたが、多くの場合コンピューターと柔軟にやりとりできる強力なインターフェイスは今でも「command-line interface(CLI)」です。映画「トロン」で言うところのユーザーは、このインターフェイスでコマンドをいくつも入力して、望みのタスクをコンピューターに実行させます。これらのコマンドは実にさまざまな方法で組み合わせることができ、その組み合わせに応じてこれまた実にさまざまな結果を得られます。コマンドラインで使われる典型的なコマンドの例を図 2.1に示します。

images/figures/command_line_command
図 2.1: コマンドラインで使われる典型的なコマンド

本チュートリアルではUnixコマンドラインの基礎を扱います。ここで言うUnixは、LinuxやiOS(iPhoneやiPad)やmacOSなどのオペレーティングシステム(OS)の一族を指します。Unixシステムは、世界中のデスクトップコンピューターはもちろん、WWW(World Wide Web)やモバイル端末やタブレット上で使われているほとんどのシステムをも支えています。Unixは現代のコンピューティングで中心的な役割を果たしているので、本チュートリアルではUnix流のソフトウェア開発手法を取り扱います。例外的にWindowsはUnixの伝統を踏まえていませんが、Windowsネイティブのソフトウェア開発ツールを使う上で、Unixコマンドラインで学んだことの多くが役に立ちます。特に、Unixサーバーにコマンドを発行する必要のある場面1では、Unixコマンドに慣れ親しんでおくことが必須です。そのためWindowsユーザーは、Linuxをインストールするか、Cloud9などのcloud IDE2を使うことをおすすめします。使用方法については「Learn Enough Dev Environment to Be Dangerous」をご参照ください。

2.1 ターミナルを起動する

コマンドラインでコマンドを実行するには、まずターミナルを起動する必要があります。ターミナルはコマンドラインを表示するプログラムです。起動する方法は、お使いのOSによって異なります。

macOS

macOSの場合はSpotlightというmacOSアプリでターミナルウィンドウを開くことができます。「⌘␣」(コマンドキーとスペースキー)を押すか画面右上の虫眼鏡アイコンをクリックし、Spotlightが起動したら検索バーに「terminal」と入力するとターミナルを起動できます(もっと高度でカスタマイズしやすいターミナルプログラムを使ってみたい方にはiTerm2をおすすめしますが、必須ではありません)。

Linux

Linuxの場合は、図 2.2で示したターミナルアイコンをクリックして起動できます。表示結果は図 2.3のようになるはずですが、システムによって細かな表示の違いがあります。

images/figures/linux_terminal_icon
図 2.2: Linuxターミナルのアイコン

Windows

Windowsの場合、Learn Enough Dev Environment to Be Dangerous」のWindowsセクションで説明されているように、Linuxをインストールすることを推奨します。インストールしたら、図 2.2のターミナルアイコンを探す必要があります。行き詰まった場合は、コラム 2.3の「熟練」を発揮してみるチャンスです。たとえばChromebookでターミナルを開く方法を調べるには、「how to get a command line on a chromebook」などとググってみましょう。

ターミナルウィンドウ

どのOSを使っていても、ターミナル・ウィンドウは図 2.3のようになっているはずですが、システムによって細かな表示の違いがあります。

images/figures/terminal_window
図 2.3: ターミナルウィンドウを開いたところ

図 2.1の例には、コマンドで使われる典型的な要素がすべて盛り込まれています。図 2.4に示したように、プロンプト(prompt)の次にコマンド(command)(ここでコンピューターにコマンドを渡す)、オプション(option)(別のオプションを渡す場合に使う)3引数(argument)(数学で言う関数の引数に相当)が渡されます。プロンプトはターミナルによって自動生成されることを理解しておきましょう。入力する必要はありません。プロンプトまで入力すればおそらくエラーになるでしょう。さらに、プロンプトは状況によって変わるものなので、本チュートリアルでは重要な目的ではありません(コラム 2.1)。

images/figures/anatomy
図 2.4: コマンドラインの内訳(プロンプトはこれと異なる可能性があります)
コラム 2.1. 「プロンプト」とは何か

コマンドラインの先頭には必ず「プロンプト」と呼ばれる1つ以上の記号が表示され、コマンドを入力してもよい状態であることを示します。プロンプトはドル記号「$」で終わることが多く、システムによってはその前に追加情報を表示します。たとえば、システムによっては以下のようなプロンプトもあります。

 Michael's MacBook Air:~ mhartl $

図 2.3では以下のように表示されています。

 [~]$

図 2.4では以下のように表示されています。

 [projects]$

最後に、現在の私には以下のプロンプトが表示されています。

 [learn_enough_command_line (master)]$

プロンプト表示の詳細について、本チュートリアルではこれ以上詳しく触れませんが、次のチュートリアル『テキストエディタ編』では、プロンプトを使いやすいようにカスタマイズする方法をご説明する予定です。

2.1.1 演習

コマンドライン編』には多くの演習があります。次のセクションに進む前に、必ずこれらの課題に取り組む習慣を付けることを強くおすすめします。演習は本編で扱った課題をカバーしており、さまざまなコマンドを実際に動かすことで本当に身に付くようになります。演習は一般に先に進むうえで必須ではないので、もし難しく感じた場合は、ひとまず飛ばして先に進み、後から演習をやり直すのもオススメです。これは本編を進めるうえでもよいアドバイスとなります。初めてやったときにはとてもできそうもない厄介な問題と思えたものが、後で立ち戻ってみると一瞬でできてしまう経験を何度となくすることにきっと驚くでしょう。

  1. 図 2.4を見ながら、図 2.5の行ごとにどの部分がプロンプト/コマンド/オプション/引数/カーソルであるかを見分けましょう。
  2. 現代のターミナルプログラムのほとんどはタブを複数使える(図 2.6)ので、関連するターミナルウィンドウを1つにまとめておくのに便利です4。そこで、ターミナルプログラムのメニュー項目で新しいタブの作成方法を調べましょう(図 2.7)。

    自由課題: タブを作成するキーボードショートカットを調べましょう。キーボードショートカットを覚えておくと、とても役に立ちます。

images/figures/command_exercise
図 2.5: 典型的なコマンドがいくつも並んでいる様子
images/figures/terminal_tabs
図 2.6: タブが3つあるターミナルウィンドウ
images/figures/terminal_menu
図 2.7: macOSのターミナルアプリにあるデフォルトのメニュー項目

2.2 初めて入力するコマンド

ついに最初のコマンドを実行する準備が整いました。最初のコマンドでは、「hello」という文字を画面に表示しましょう5。さて、ここで入力するコマンドはechoです。出力したい文字は引数で指定します。この文字のことを文字列と簡潔に表すこともあります。echoコマンドを実行するには、画面のプロンプトの後ろにecho helloと入力し、Returnキー(Enterキーとも呼ばれます)を押します。今後このようなコマンドはコピペするのではなく自分で入力することで、より多くのことを学べるでしょう。

$ echo hello
hello
$

echo helloと入力すると、“hello”と出力されて次のプロンプトが表示されます。なお、簡潔にするため、プロンプトではドル記号 $以外の文字は省略してある点に注意してください。

今度は次のechoコマンドを入力してみましょう。

$ echo "goodbye"
goodbye
$ echo 'goodbye'
goodbye
$

ここでご注目いただきたいのは、“goodbye”という単語を引用符で囲んでいることです。上のように、二重引用符(ダブルクォート)"goodbye"で囲むことも、一重引用符(シングルクォート)'goodbye'で囲むこともできます。このような引用符で文字列の見た目をグループ化することもできますが、echoコマンドでは多くの場合引用符なしでも構いません(リスト 2.16

リスト 2.1: “hello, goodbye” を出力する二つの方法
$ echo hello, goodbye
hello, goodbye
$ echo "hello, goodbye"
hello, goodbye
$

なお、引用符をうっかり閉じ忘れてしまうと、以下のようなことが起きます。

$ echo "hello, goodbye
>

どうも困ったことになった雰囲気です。この手の状況から脱するための方法はいろいろあります(実を言えば、この場合は閉じ引用符をさらに1つ入力してReturnキーを押して回復することもできます)が、トラブルが起きたときに使える一般的な脱出戦略を知っておくとよいでしょう(図 2.87。その戦略とはすなわち「Ctrl-C」です(コラム 2.2)。

images/figures/cat_in_box
図 2.8: 困り果てた猫ちゃんもCtrl-Cを押せばきっと助かる
コラム 2.2. トラブルから脱出する方法

コマンドラインを使っていると、ターミナルが固まるなどして、コマンドが入力しづらくなったり入力不能になってしまうトラブルに度々遭遇します。そういう事態を引き起こしがちなコマンド例を以下にご紹介します。

 $ echo "hello
 $ grep foobar
 $ yes
 $ tail
 $ cat

実はどの場合も脱出方法は同じで、キーボードでCtrl-C(「コントロール・シー」と読みます)を押せばよいのです。Ctrlは「コントロール(control)」キーのことで、Cは「C」のキーのことです。そしてCtrl-Cとは「controlキーを押しながら、Cのキーを押す」という意味です。ただしCはいわゆる大文字のCのことではありませんので、Ctrlキーの他にわざわざShiftキーまで押す必要はありません8Ctrl-Cを押すと、次のように⌃Cと出力されることがあります。

 $ tail
 ^C

Ctrl-Cの起源はよくわかっていませんが、私は「キャンセル(cancel)」のCだと思うことにしています。しかしこれだけはぜひ覚えておいてください。コマンドラインで何か困ったことがあったときは、迷わずCtrl-Cを押せばたいてい解決できます。

ちなみに、Ctrl-Cでうまくいかない場合は、ESC(エスケープ)キーで何とかなることが多いです。

2.2.1 演習

  1. 「hello, world」と出力するコマンドを書いてみましょう。

    自由課題: リスト 2.1のように、引用符ありとなしの2とおりの方法でやってみましょう。

  2. あえてecho 'helloと、わざと一重引用符を閉じ忘れて入力してみましょう。そしてコラム 2.2の方法で脱出してみましょう。

2.3 Manページ

コマンドラインを実行するために今私たちが使っているプログラムは、技術的にはシェル(shell)という名前で知られています9。シェルには、私たちがさまざまなコマンドを学ぶ上で役立つ、ある強力な(かつ謎の記法に満ちた)ツールが含まれています。そのツールはman(manualの略)と呼ばれ、それ自身がコマンドラインのコマンドの1つです。知りたいコマンド名(echoなど)をこのコマンドの引数に渡します。

$ man echo

詳細はシステムによって異なりますが、私のシステムでman echoを実行した結果をリスト 2.2に示します10

リスト 2.2: The result of running man echo.
$ man echo
ECHO(1)          BSD General Commands Manual         ECHO(1)

NAME
   echo -- write arguments to the standard output

SYNOPSIS
   echo [-n] [string ...]

DESCRIPTION
   The echo utility writes any specified operands, separated by single blank
   (` ') characters and followed by a newline (`\n') character, to the stan-
   dard output.

   The following option is available:

   -n  Do not print the trailing newline character. This may also be
      achieved by appending `\c' to the end of the string, as is done by
      iBCS2 compatible systems. Note that this option as well as the
      effect of `\c' are implementation-defined in IEEE Std 1003.1-2001
      (``POSIX.1'') as amended by Cor. 1-2002. Applications aiming for
      maximum portability are strongly encouraged to use printf(1) to
      suppress the newline character.
:                                                                             

リスト 2.2の最終行に表示されているコロン :は、その下にまだ続きがあることを示しています。システムによって異なることがありますが、私のシステムでは、下矢印キーを押すと1行進み、スペースバーを押すと1ページ進みます。manページを閉じるには、「q」(quitの略)キーを押します。この操作方法は、セクション4.3で扱うlessというプログラムでも役立ちます。

images/figures/man_to_man
図 2.9: manにはman

manはそれ自体がコマンドなので、リスト 2.3のようにmanmanページを見ることもできます(図 2.911

リスト 2.3: man manの実行結果
$ man man
man(1)                                 man(1)

NAME
    man - format and display the on-line manual pages

SYNOPSIS
    man [-acdfFhkKtwW] [--path] [-m system] [-p string] [-C config_file]
    [-M pathlist] [-P pager] [-B browser] [-H htmlpager] [-S section_list]
    [section] name ...

DESCRIPTION
    man formats and displays the on-line manual pages. If you specify sec-
    tion, man only looks in that section of the manual. name is normally
    the name of the manual page, which is typically the name of a command,
    function, or file. However, if name contains a slash (/) then man
    interprets it as a file specification, so that you can do man ./foo.5
    or even man /cd/foo/bar.1.gz.

    See below for a description of where man looks for the manual page
    files.

OPTIONS
    -C config_file
:

リスト 2.3から、manの概要が次のようになっていることがわかります。

man [-acdfFhkKtwW] [--path] [-m system] [-p string] ...

先ほど「謎の記法に満ちた」と書いたのはこれのことです。実を言うと、manページに書いてあることを隅から隅まで理解するのは私でもほぼ無理です。しかしmanページに書いてあることを読み解き、コマンドの内容を高いレベルで把握できるようになること自体が高いスキルとなりますし、習得する価値があります。manページを読みこなせるようになるために、新しいコマンドに出会ったらman <コマンド名>を実行する癖をつけることをおすすめします。たとえ細かい部分まで完全に理解できなくても、manページをじっくり読むことで、開発者にとって欠かせない熟練コラム 2.312のスキルを養うことができるからです。

コラム 2.3. 熟練

数学の世界では、代数/幾何/数論/解析といったさまざまな科目を、少数の仮定すなわち公理に落とし込むことで発展できます。それによって、これらの科目は完全に自己完結し、かつ形式的なスキルが不要になるので、小さい子どもですら学べるようになるのです(原理的にはですが)。現実には他にもさまざまなスキルが要求されますし、数学者たちは何かと成熟した数学スキル(すなわち数学の証明を理解して書くのに必要な経験や一般的な習熟度)を推奨するものですが。

IT技術においても似たような感じのスキル(正確には「スキルのセット」)があり、熟練という形を取っています。熟練には、テキストエディタやUnixコマンドラインの使いこなしのような「ハードスキル」はもちろん、適切なメニュー項目を調べるとか用語をGoogleで調べる(図 2.10)といった「ソフトスキル」も重要ですし、かつ、コンピュータで何をやったらどうなるかというポイントを押さえて作業するという「姿勢」も重要です(コラム 1.1)。こうしたソフトスキルや姿勢を皆さんに直接教えるのは難しいものです。皆さんが他のチュートリアルまで進むときは、ぜひとも熟練を積めるチャンスを逃さないようにすべきです。manページをすばやく読みこなす方法(2.3のように、どんなことでも技術を高める肥やしになるのですから。そうやって時間をかけて修練を重ねれば、図 2.10の作者のように、あらゆるプログラムを自由に使いこなせる魔法のような力を会得できるでしょう。

なお図 2.10は、一般的な問題解決のための重要なテクニックがいくつか抜けています。

  1. アプリケーションを再起動したか?
  2. デバイスを再起動したか?
  3. アプリをアンインストールして再インストールしてみたか?

コンピュータで起きる謎のエラーの90%は、おそらく#2.を試すだけで解決できます。

images/figures/tech_support_cheat_sheet_ja
図 2.10: サポセンの秘密チートシート” (xkcdより)。その他のテクニックについてはコラム 2.3を参照。

2.3.1 演習

  1. echoコマンドの短い説明と長い説明は、manページで何と書かれていますか?
  2. リスト 2.1にあるように、echoコマンドは受け取った引数をそのまま画面に出力し、次の行に改行して新しいプロンプトを出力します。改行されるのは、newline と呼ばれる特殊文字が末尾に追加されるからです(newlineはその名の通り、改行してそこから文字列を次の行に出力するもので、多くの場合「 \n」(バックスラッシュ n)と表記します)。echoコマンドで出力する文字列には改行をはさまないことが多いので、newlineが文字列に挿入されないようにする特殊なコマンドラインオプションもあります。

    echoコマンドのmanページを読んで、「hello」と出力するときに末尾にnewlineを出力しないようにする方法を調べ、ターミナルで実際に動かして確かめてみましょう。

    ヒント: コマンドラインのどれがオプションかを知りたい場合は、図 2.4が役立つかも知れません。実際にやってみた結果をリスト 2.4リスト 2.5と比較して、オプションが期待どおりに動いたかどうかを確認すること。

    メモ: この演習は、古いバージョンのmacOSにあるデフォルトのターミナルだとうまくいかない可能性があります。その場合はiTermをインストールすることをおすすめします(iTermはいろんな意味でおすすめです)。

リスト 2.4: echoの末尾が改行される場合(オプションなし)
hello
[~]$
リスト 2.5: echoの末尾が改行されない場合(オプションあり
hello[~]$

2.4 入力行を編集する

コマンドラインにはさまざまな機能が備わっているので、先ほど実行したコマンドを繰り返すのも簡単ですし、コマンドを少し手直し(編集)してから実行することもできます。こうした操作を含むコマンドラインのさまざまな機能では、キーボードの特殊キーを活用します。Macintoshの典型的なキーボードで使われている特殊キーとその記号の対応を表 2.1に掲載しました。今使っているキーボードがこれと違っている方は、「熟練」(コラム 2.3)のチャンスと思って挑戦しましょう。

キーの読み方 記号
コマンド(Command)
コントロール(Control)
シフト(Shift)
オプション(Option)
上矢印、下矢印、左矢印、右矢印 ↑ ↓ ← →
EnterまたはReturn
タブ(Tab)
削除(Delete)
表 2.1: キーボードの記号の表し方

「上矢印キー」 ↑は、入力行の編集でよく使われます。このキーを押すと、直前のコマンドが表示されます。繰り返しキーを押すと、過去のコマンドを次々にさかのぼって1つずつ表示します。逆に戻るには「下矢印キー」 ↓ を押します。

Controlキーも入力行の編集でよく使われます。なおControlキーは通常「Ctrl」または「 」と表記します(コラム 2.2参照)。たとえばコマンドの入力中や、直前のコマンドを表示したときに、入力行をその場でちょっぴり手直しできると何かと便利です。たとえば以下のように入力した直後に「しまった、goodbyeの前にechoと入力したかったのに」と思ったとしましょう。

$ goodbye

そんなときは慌てず騒がず ←キーを何回か押して入力行の先頭まで戻ればよいのですが、実はもっと楽な方法があるのです。⌃Aと入力すれば一瞬で入力行の先頭までジャンプします。同様に、⌃Eを押せば入力行の末尾にジャンプしますし13⌃Uを押せば、入力行を一発で全消ししてやり直せます。

⌃A⌃E⌃Uはほぼどんなシステムでも使えますが、シェークスピアのソネット1番リスト 2.6)の最初の行みたいに長い行を扱うにはあまり向いていません。

リスト 2.6: シェークスピアのソネット1番の最初の行を出力する
$ echo "From fairest creatures we desire increase,"

上の「From」を原典(図 2.11)に忠実な「FRom」に変えたいとしましょう14⌃Aを押してから右矢印キーを数回押してもいいのですが、システムによってはキーボードとマウスを組み合わせて直接ジャンプできることもあります。つまりOptionキーを押しながら15、コマンド内のカーソルを置きたい場所をマウスでクリックします。すると「From」の「o」のところにカーソルが移動するので、「r」を削除してリスト 2.7のように直接変更します。

images/figures/Sonnet_1
図 2.11: シェークスピアのソネット1番の原書
リスト 2.7: コマンドラインで長めのコマンドを編集した結果
$ echo "FRom fairest creatures we desire increase,"

私は⌃A⌃Eと左矢印キーと右矢印キーでたいていのことはやれますが、長めのコマンドではOptionクリックが使えると非常に助かります(私は入力中にすぐ気が変わるたちなので、⌃Uで入力行を全消しする方が結局一番早くできます)。

2.4.1 演習

  1. echo コマンドを毎回入力せずに、上矢印キーを押して「fee」「fie」「foe」「fum」と出力しましょう。
  2. リスト 2.6を入力し、次に⌃A⌃Eと矢印キー(またはOptionクリック)を組み合わせて、原典(図 2.11)の外観に忠実に、通常の「s」を古英語の特殊な「ſ」(long s)に置き換えましょう。つまり、echoの引数が「FRom faireſt creatures we deſire increaſe,」となるようにします。

    ヒント: 「ſ」という文字は普通のキーボードではそのまま入力できない可能性がありますので、このチュートリアルからこの文字をコピーするか、ググって見つけた文字をコピーするかして使います(この文字をターミナルにうまく貼り付けられない場合は、コラム 2.3の練習として自分のシステムで貼り付ける方法を見つけましょう)。

2.5 画面の内容を消す

コマンドラインを使っていると、画面に表示されているものをすべて消せると便利な場合があります。これはclearでできます。

$ clear

このコマンドのキーボードショートカットは⌃Lです。

同様に、ターミナルウィンドウ(またはターミナルのタブ)での作業を終えたら、exitコマンドを入力すると、ウィンドウ(またはタブ)が閉じて終了します。

$ exit

このコマンドのキーボードショートカットは⌃Dです。

2.5.1 演習

  1. ターミナルの現在のタブの内容を消しましょう。
  2. 新しいタブを1つ開き、echo 'hello'と入力し、それから終了してみましょう。

2.6 まとめ

本セクションで学んだ重要なコマンドを表 2.2にまとめました。

コマンド 説明
echo <文字列> 画面に文字列を出力する $ echo hello
man <コマンド名> コマンドのマニュアルページを表示する $ man echo
⌃C トラブル脱出用 $ tail^C
⌃A 入力行の冒頭にカーソルを移動する
⌃E 入力行の末尾にカーソルを移動する
⌃U 入力行の内容をすべて削除する
Option-クリック クリックした場所にカーソルを移動
上矢印キー & 下矢印キー コマンド履歴を前後に移動する
clear または ⌃L 画面の内容を消す $ clear
exit または ⌃D ターミナルを終了する $ exit
表 2.2: 2で学んだ重要なコマンド

2.6.1 演習

  1. Use "man echo"という文字列を含むコマンドを出力しましょう。引用符も出力に含めること。つまり、出力結果が「Use man echo」のように引用符が脱落しないようにします。

    ヒント: 内側の文字列の引用符は二重引用符にし、その外側全体は一重引用符で囲みます。

  2. man sleepを実行して、ターミナルを5秒間「sleep」させる方法を調べましょう。そしてそのとおりにやってみましょう。
  3. 今度は5000秒間sleepさせるコマンドを実行しましょう。1時間経ってもプロンプトが戻ってこないことに気づいたら、コラム 2.2の指示に従ってトラブルから脱出しましょう。
1. secure shellことsshコマンドを使う場合など。
2. IDE(統合開発環境: integrated development environment)の一種で、コマンドラインやテキストエディタなどのさまざまな開発ツールが1つのアプリに集約されています。
3. オプションはflagと呼ばれることもあります。
4. たとえば私はWebアプリの開発中に、メインで使うコマンドラインタブの他にローカルwebサーバーを起動しておくタブや自動化テストスイートに使うタブを開いておくことがよくあります。
5. 文字が表示される場所は一般に「標準出力(stdout)」と呼ばれ、普通はターミナルの画面を指しますが、ごくまれに普通のプリンタを指すこともあります。
6. 引用符があるかどうかで微妙な違いはあるのですが、本チュートリアルのレベルでは重要ではありません。ご興味のある方は「熟練」(コラム 2.3)になるためのテクニックを用いましょう。ヒント: こんな感じでGoogle検索してみるとよいでしょう。
7. 画像引用元: https://www.flickr.com/photos/pheezy/5875298232(2015-07-19)。 Copyright © 2011 by Evan P. Cordes、Creative Commons Attribution 2.0 Generic ライセンスに基づき無改変で使用。
8. Ctrl-Cは、ターミナルに対して特殊なコントロールコードが送信されるもので、大文字のCを生成することとは関係ありません。
9. 多くのコマンドライン入門書で扱われているシェルの概要は、テキストエディタを使いこなせる知識を要求されます。しかし本チュートリアルでは、高度なスキルは要求していません。テキストエディタの重要なトピックについては、本チュートリアルの次にやっていただく『テキストエディタ編』や、それに続く他のチュートリアル(6を参照)に譲ります。
10. JM Projectの日本語版manページをインストールすることもできます。
11. 画像引用元: https://commons.wikimedia.org/wiki/File:Jazz_at_Knicks_man_to_man_defense.jpg(2015-07-22)。Copyright © 2005 by Lordcolus、Creative Commons Attribution 2.0 Generic ライセンスに基づき無改変で使用。
12. Copyright © Randall Munroe、Creative Commons Attribution-NonCommercial 2.5 Generic ライセンスに基づき無改変で使用。
13. 英語の単語単位でジャンプするESC FESC Bのようなマニアックなコマンドもあるにはありますが、自分で使ったことはほぼありませんし、正直、魔神にレベルアップするために必須とは思えません。
14. シェークスピアの英語の元の発音は現代の発音と違います。シェークスピアのソネットに含まれている語のペアの多くは、現代英語だと韻を踏めませんが、元の発音なら韻が合います。図 2.11で言うと、「memory」という語は「メモライ」のように発音されるので、ソネットの2行目末尾のdieと4行目末尾のmemoryの韻は合うのです。画像引用元: https://commons.wikimedia.org/wiki/File:Sonnet_1.jpg(2015-07-20)、パブリックドメインとして制約なしで使用。
15. Optionキーのないシステムでは当然この手は使えません。
前の章
第2章 基礎 コマンドライン編
次の章