『本当は怖くない黒い画面入門』のススメ
本当は怖くない黒い画面入門 - https://fjord.jp/kuroigamen/
「ターミナル」の基礎を学べるWebサイトをご紹介します。
「Part.1」〜「Part.9」を順番に読み進めていくことで、プログラミング初心者の方でも黒い画面について体系的に学んでいくことができます。
※Mac OS Xがベースとなっています。
まだプログラミングスクール5日目の初心者ですが、今回このサイトの学習を通じて「怖いから触りたくない」から「便利だから触りたい」という気持ちに変わりました。
そこで自身の復習も兼ねて、初心者目線で「もしかすると誰かの役に立つかも」と思った箇所を 補助輪 という形でご紹介させていただきます。
※もし誤りがあればコメント等でご指摘いただけますと幸いです。
【Part.1】とにかく使ってみる、最初のプログラム ls、2つ目のプログラムpwd
https://fjord.jp/kuroigamen/1.html
「とにかく使ってみる」の補助輪
もしも「ユーティリティ」を見つけることができない場合、Dockメニューにある「Launchpad」を開き、「その他」の中にある「ターミナル」から起動する方法もあります。
※Spotlight検索を使ったことのある方は、Spotlightを立ち上げて、「ターミナル」もしくは「terminal」と入力してみてください。
「$(ドルマーク)これは何?」の補助輪
$ではなく%が表示される場合があります。
この場合は気にせず(ドルマーク → パーセント)に読み替えてもらって大丈夫です。
(2019年にリリースされたmacOS Catalinaより、標準のターミナル用ソフトが「bash」というソフトから「zsh」というソフトに変わった影響です)
※ターミナルの文字が小さくて見づらい場合
ターミナルでは、文字サイズの調整を簡単に行うことができます。
- 文字を大きくしたい … ⌘(コマンド)キーを押しながら「+(プラス)」
- 文字を小さくしたい … ⌘(コマンド)キーを押しながら「-(マイナス)」
ちなみに、設定画面で変更するとお好みの文字サイズを記憶してくれるようになります。
※設定画面はメニューバーの「ターミナル」、または「⌘キーを押しながら ,(カンマ)」から入ることができます
「コマンド?ディレクトリ?」の補助輪
これから何度も「ディレクトリ」という言葉が登場するためピックアップしておきます。
解説にもある通り「フォルダと同じ意味」です。
「bin ディレクトリの bin って何?」の補助輪
バイナリーランドについて
バイナリーランド(バイナリィランド)は1983年にハドソンから発売されたゲームです。
パソコン版が4種類、その後ファミコン版も出た人気作品ですが、実はこのゲーム、菊田昌昭さんというプログラマの方がほぼ1人で作ったのではないかと言われているゲームらしいです。
(参考 高橋名人オフィシャルブログ )
【Part.2】3つ目のプログラム echo、便利な仕組みPATHについて
https://fjord.jp/kuroigamen/2.html
「便利な仕組みPATHについて」の補助輪
ここで登場する hoge
fuga
piyo
は「特に意味のない名前」として日本語圏でよく用いられます。
英語圏では foo
bar
baz
(黒い画面入門でも登場します)がよく用いられ、このような「特に意味のない名前」は『メタ構文変数』と呼ばれています。
(参考 メタ構文変数 - Wikipedia )
【Part.3】頻繁に使うコマンド cd、パソコン内の探索、相対パス指定
https://fjord.jp/kuroigamen/3.html
「豆知識」の補助輪
解説にもあるように「問題が無ければ黙っていろ」の文化は「そういうものだ」と思って慣れていきましょう。
(何も反応がないと不安になる気持ち、分かります)
「相対パス指定」の補助輪
隠しファイルと同様、フォルダ(ディレクトリ)も同じ手法で隠すことができます。
【Part.4】引数とオプションについて詳しく、オプションとは、オプションのガイドライン、マニュアルで使い方を知る
https://fjord.jp/kuroigamen/4.html
「オプションのガイドライン」の補助輪
複数のオプションが「ひとまとめ」になっている場合もあります。
全てではないらしいのですが、多くのUNIXコマンドは「-」オプション(ショートネームオプション)を複数指定する場合、「ハイフンとスペース」を省略できます。つまりオプションを「ひとまとめ」にできます。
例えば、「lsコマンド」にある「-a」オプション(隠しファイルを表示してくれるオプション)と「-l」オプション(ファイルやディレクトリの詳しい情報を表示してくれるオプション)は、「-a -l」と分けて書いても、「-al」とひとまとめに書いても同じ結果が出力されます。
以下の出力結果は全て同じです。
$ ls -a -l $ ls -al $ ls -la
(参考 情報メディア基礎実験: 第3回 Linux(UNIX)コマンド - オプションの組み合わせ )
ちなみにこの後のPartで登場する「Homebrew」というツールのインストールコマンドには「-fsSL」というオプションが含まれています。これも同様に「ひとまとめになったオプション」です。
なのでこのオプションを見ても「-f -s -S -Lという書き方と一緒なんだな〜」と思ってもらえれば大丈夫です。
【Part.5】ネットから簡単ダウンロードcURL、とにかく開くコマンド open、ニコニコ動画でお馴染みのあの声 SayKana
https://fjord.jp/kuroigamen/5.html
「ニコニコ動画でお馴染みのあの声 SayKana」の補助輪
最新のMacをお使いの場合、SayKanaが正常に起動しない場合があります。これは「macOS Catarina」から、起動できるアプリケーションに制限が加わったことが影響しています。
(32bit版のアプリケーションが起動できなくなりました)
代わりに「say」コマンドが充実し、日本語も利用できるようになりました。
$ say --voice kyoko -r 120 黒い画面は怖くないよ
「say」コマンドは様々な人の声、言語、オプションがあります。 上記のsayコマンドは以下の記事を参考にさせていただきました。
Macのsayコマンドの使い方 - Qiita
【Part.6】Package Manager(パッケージマネージャー)の必要性、Xcode のインストール、Homebrew のインストール、Homebrewを使ってみる
https://fjord.jp/kuroigamen/6.html
「Homebrew のインストール」の補助輪
将来的にMacは「Ruby」「Python」「PHP」といったスクリプト言語を標準で同梱してくれなくなるそうです。
そのためHomebrewでは、公式サイトで紹介するインストールコマンドを「ruby」から「bash」に切り替えました。
(2020年7月現在。今後で再び変更となる可能性があります)
ちなみにデフォルトシェルをbashからzshに切り替えた場合も、Homebrew公式のbashコマンドでそのままインストールできます。
(わざわざbashに戻す必要はありませんし、公式のコマンドをzsh向けに書き換える必要もありません)
【Part.7】ファイルの作成、ディレクトリの作成、ファイルのコピー、ファイルの移動、ファイルの削除、ファイルの表示
https://fjord.jp/kuroigamen/7.html
「ファイルの削除」の補助輪
「絶対に実行してはいけないコマンド」について
なぜ実行してはいけないかがよく分かるYouTube動画をご紹介します。
恐ろしいですね…
【Part.8】作業の自動化、謎のおまじない shebang(シバン)、PATH を設定する
https://fjord.jp/kuroigamen/8.html
「作業の自動化」の補助輪
自動化スクリプトをターミナル内で作成したい方のために、viエディタの「最低限の」操作方法をご紹介します。
(自分も相当な初心者なので、本当に最低限の操作方法だけです)
※以下の操作に入る前に、キーボードの入力モードを「英字入力」にしておいてください (自分の今の知識では柔軟に説明しきれないためです…) 念のためホームディレクトリに移動します $ cd 念のためホームディレクトリに hoge という名前のファイルが無いか確認します $ ls touchコマンドで hoge という名前のファイルを作成します (もしすでにhogeファイルがある場合は、任意のファイル名に読み替えてください) $ touch hoge 以下のコマンドを実行してみてください $ vi hoge すると、波線(~)が縦に沢山並んでいる画面が表示されたと思います ------------------------------ ~ ~ ~ ~ "hoge" 0L, 0C ------------------------------ (こんな画面です) 続いて、キーボードの「i」を押してみてください。 すると画面に少し変化が起きます ------------------------------ ~ ~ ~ ~ -- INSERT -- ------------------------------ (「hogeなんとか」から「-- INSERT --」に変わった ) この状態を「挿入モード」と呼びます 挿入モードになると文字を入力することができます 「hello」と入力してみましょう ------------------------------ hello ~ ~ ~ -- INSERT -- ------------------------------ 改行して文字を打つこともできます 2行目に「terminal」と入力してみましょう ------------------------------ hello terminal ~ ~ -- INSERT -- ------------------------------ 入力が終わったら「ESCキー」を押してください すると「-- INSERT --」の文字が消えます この状態を「コマンドモード」と呼びます ------------------------------ hello terminal ~ ~ ------------------------------ (画面の一番下にあった「-- INSERT --」が消えた) 次に「:(コロン)とwq」を入力してください (まだreturnキーは押さないでくださいね) ------------------------------ hello terminal ~ ~ :wq ------------------------------ (画面の一番下に「:wq」が入力された) この「:wq」は、 「入力した内容を保存してファイルを終了する」という意味になります お待たせしました、returnキーを押してください すると、ターミナルに戻ります $ 試しにファイルを開いてみましょう $ vi hoge 1行目にhello、2行目にterminalと表示されているはずです ------------------------------ hello terminal ~ ~ "hoge" 2L, 12C ------------------------------ ちなみにファイルを開いた直後は「コマンドモード」になっています ------------------------------ hello terminal ~ ~ "hoge" 2L, 12C ------------------------------ (hogeなんとかが入っているけどコマンドモード) コマンドモードなので、「:」を入れると、 「hogeなんとか」が入っていた箇所に「:」が入ります (まだreturnキーは押さないでくださいね) ------------------------------ hello terminal ~ ~ : ------------------------------ (hogeなんとかが消えて、「:」が入った) 続けて「q」を押してください (まだreturnキーは押さないでくださいね) ------------------------------ hello terminal ~ ~ :q ------------------------------ この「:q」は、 「ファイル内容に変更がなければファイルを終了する」という意味になります お待たせしました、returnキーを押してください すると、ターミナルに戻ります $ お疲れさまでした hogeファイルはもう不要なので削除してください $ rm hoge
この「:(コロン)」は、今は「保存や終了のときに最初に書くおまじない」と覚えておけば大丈夫です。
(詳しく知りたくなった方は是非 「vi 使い方」といったキーワードで検索してみてください)
もしも操作を誤った場合は「controlキーを押しながらC」を押した後、「:q!」のコマンドを実行してファイルを終了してください。
------------------------------ he l l o termi na l ~ :q! ------------------------------ (「:q!」は、内容を保存せずにファイルを終了するコマンドです)
viエディタの超入門は以上です。
【Part.9】「黒い画面」とは何か、Terminal(ターミナル)、Shell(シェル)、代替ソフト、最後に
https://fjord.jp/kuroigamen/9.html
「黒い画面入門」もいよいよ最後のPartとなりました。
「代替ソフト」の補助輪
解説にもある通り、「現在のMacのデフォルトシェルは充分に実用的」ということなので安心してデフォルトのターミナルを使っていきましょう(明確に代替ソフトを必要とするシーンが訪れた時に検討しましょう)。
最後に
いかがだったでしょうか。
『本当は怖くない黒い画面入門』の学習を通して、自分は「怖いから触りたくない」から「便利だから触りたい」という気持ちに変わりました。
皆さんが「黒い画面」と少しでも仲良くなれることを願っています。