コマンドラインの導入
Gravが、コマンドラインを念頭に作られたことは、よく知られています。管理パネルプラグインは、たしかに、ターミナル(MacOS や Linux)やコマンドプロンプト(Windows)を開かなくても、いろいろなことを、かんたんにできるようにしてくれますが、コマンドラインでできることのスピードや水準については、特筆すべき点が、たくさんあります。
このことは、自社サーバーや、コマンドラインでアクセス可能なリモートサーバーで運用している方に、特に当てはまります。コマンドラインから使えるツールの量は、信じられないほどあります。わずかなキーストロークで、サイトのホスティングも、Gravシステム自身も、そのプラグインやテーマも、実質的にすべての面をコントロールできます。
結局は、管理パネルを使うか、コマンドラインを使うかは、個人の好みに帰着します。このページでは、いくつかの素晴らしいリソースを取り上げます。それらは、コマンドラインに慣れるのに役立ちます。
[!Info]
すべてのOSで、コマンドの互換性があるわけではありません。MacOS と 多くのLinux のディストリビューションの間には、細かい違いがありますし、Windows のコマンドプロンプトとは、大きな違いがあります。
MacOS
MacOs は、 Unix ベースで、 POSIX 標準に準拠しています。これはつまり、他の Unix や Linux ベースのオペレーティング・システムで使い慣れたコマンドのほとんどが、 MacOS でも期待通りに動作するということです。ただし、例外もありますので、お使いのオペレーティング・システムの Terminal コマンドを調べることをおすすめします。
以下は、 MacOS の Terminal 利用に慣れるための素晴らしいリソースです:
- Michael Hogg’s MacOS Terminal Commands Guide - MacOS 向けの Terminal コマンドには何があり、どのように機能するかを解説する実践的なリソース。
- MacRumors Guide to Terminal - Terminal の使い方や、GUIから Terminal を使う tips を紹介する便利なリソース。
- Envato Tuts+ Terminal Tips and Tricks - Terminal をマスターするための 40 個の tips や tricks 。多くの基本的な入門書には書いていないコマンドも含まれます。
- Envato Tuts+ Taming the Terminal - Terminal の使い方に関する複数回の詳細なレッスンコースです。動画やスクリーンショットもあります。
Linux
世の中の Linux(および Unix )ディストリビューションの多くには、共通点があります:Bash コマンドラインインターフェース(ターミナル)です。Gnomeや、Unity、KDE、その他いずれの GUI で動かしていたとしても、デスクトップであれ、ノートPCであれ、コマンドラインを訪れたチャンスはあるでしょう。
何にせよ、 CLI はパワフルです。 GUIでできることは、ほとんど何でも、直接コマンドラインで実現できます。Linux のターミナルを使いこなすための素晴らしいリソースは、次のようなものがあります:
- TechSpot’s Beginner’s Guide to the Linux Command Line - コマンドラインの素晴らしい入門書。
- MakeUseOf’s Quick Guide to Getting Started with the Linux Command Line - Terminal を学ぶもうひとつの素晴らしいリソース。
- O’Reilly Linux DevCenter Directory of Linux Commands - Terminal で利用可能なコマンドの索引。
- Ryan’s Tutorials Linux Tutorial - Linux と Bash コマンドラインインターフェース(Terminal)に関する素晴らしいオールインワンガイド。
Windows
Windows は、いくつかの理由で他とは違っています。コマンドラインで使われるコマンドの多くは、そのルーツである DOS を彷彿とさせます。一般的なコマンド(たとえば、 ls
でディレクトリの一覧表示)は、 Windows では機能しません。かわりに、 dir
コマンドを使います。以下は、 Windows のコマンドプロンプトを使いこなすのに役立つ便利なリソースです:
- MakeUseOf’s Beginner’s Guide to the Windows Command Line - Windows 向けコマンドラインの良い入門書。
- DOSPrompt.info - コマンドプロンプトを使いこなすためのサイト。
[!Info]
Grav の CLI コマンドはすべて、PHP を使っており、Windows ではすぐに利用できるものではありません。PHP がインストールされているかどうかは、コンソールを開いて、php -v
と入力することで確かめられます。'php' is not recognized as an internal or external command ...
という表示が返ってきたら、PHP がインストールされていません。
Windows システムに PHP を追加したい場合、 “Environment Variables” を探す必要があります。スタートメニューで検索するか、もしくは、コントロールパネルから、 Advanced System Settings へ行き、 “Environment Variables” ボタンをクリックしてください。
“System Variables” の下に、 “Path” を見つけ、編集をクリックしてください。メモ帳に “variable value” をコピーし、最後にセミコロンを追加します(変数の区切りです)。それから、インストールした PHP ( スクラッチする か、開発環境に付いてきたものを使えます。)へのパスを探し、変数の長いリストの最後にパスを追記します。これは、フォルダのパスです。 php.exe
は含めないでください。
ここまで終わったら、新しくコンソールを開いてください(もしくは現在のコンソールを再起動してください)。新しいパスが適用されています。もう一度、 php -v
を試してみてください。 PHP 7.0.7 (cli) ...
のような出力が得られるはずです。Grav のコマンドを実行するときは、 php
をコマンドの最初に付ける必要があります。たとえば、 php grav/gpm index
のように。
Grav 特有のコマンド
Grav がクールである理由の1つは、何でもできるパワフルなコマンドを持っていることです。追加のプラグインやテーマをインストールしたり、ユーザーを管理パネルに追加したりできます。このセクションでは、最も一般的なコマンドを挙げます。
以下のコマンドはすべて、どのOSにも 対応しています。
コマンド | 説明 |
---|---|
bin/grav list | Grav で使える(GPM 以外の)コマンドをリスト表示します |
bin/grav help <command> | <command> のヘルプを表示します |
bin/grav new-project <location> | Used to create a new, clean Grav instance in a different folder. Can be run from an existing Grav install. |
bin/grav install | 現在の Grav に必要な依存関係をインストールします |
bin/grav cache | キャッシュをクリアします。次のオプションが付けられます: --all , --assets-only , --images-only , and --cache-only |
bin/grav backup | 現在の Grav サイトのバックアップを zip で作ります |
bin/grav composer | 手作業でインストールした、コンポーザーベースの vendor パッケージをアップデートします |
bin/grav security | 設定されたXSS セキュリティチェックを、すべてのページに対して実行します |
bin/gpm list | GPM(Gravパッケージマネージャー)経由で利用できるすべてのコマンドをリスト表示します |
bin/gpm help <command> | <command> のヘルプを表示します |
bin/gpm index | テーマとプラグインで整理して、Grav リポジトリの利用可能なリソースの一覧を表示します |
bin/gpm info | 目的のパッケージの詳細を表示します。たとえば、説明、作者、ホームページなど。 |
bin/gpm install | リポジトリから、利用中の Grav へ、シンプルなコマンドでリソースをインストールします |
bin/gpm update | インストール済みのプラグインやテーマでアップデート可能かをチェックし、一覧表示します |
bin/gpm uninstall | インストール済みのプラグインやテーマを削除し、キャッシュもクリアします |
bin/gpm self-upgrade | Grav を最新版にアップデートします |
bin/gpm logviewer | Easily view Grav logs with configuration options to pick log file, number of lines, and verbosity |
bin/gpm scheduler | スケジュールされたジョブを管理し、必要に応じてスケジュールされた処理を手動で実行します |
[!Info]
これらのコマンドのより詳しい説明は、 Grav CLI と Grav GPM のドキュメントで解説します。
以下のコマンドは、mac もしくは unix 系システム で使えます。
コマンド | 説明 |
---|---|
bin/gpm index | grep '| installed' | インストール済みのテーマとプラグインを一覧表示。 |
シンボリック・リンク
シンボリックリンク(Symbolic Links、シムリンク symlinks とも言います)は、大変便利で、コマンドライン上でかんたんに実行できます。やることは、与えられたフォルダやコンテンツの仮想的なコピー(クローン)を作り、好きなところに置けます。真のコピーと違い、オリジナルとシンプルなトンネルでつながっています。これにより、内容の変更が一度に、オリジナルとシムリンクすべてに反映されます。
もうひとつの素晴らしいメリットは、同じファイルの複数のコピーを持つわけではないので、ディスク容量を圧迫しないことです。
Grav では、シムリンクは複数のインスタンスに、プラグインやテーマ、コンテンツを追加するのに最適な方法であり、更新や修正がかんたんになります。一度変更を加えれば、シムリンクされたすべてのファイルに反映されます。
シムリンクの実行プロセスは、OS間によって多少の違いはあるものの、非常にかんたんです。
MacOS と Linux でのシンボリックリンク
コマンドのパターンは、 ln -s <オリジナルのファイルまたは、ディレクトリ、コンテンツ> <仮想的なコピーをここに置きます>
のようになっています。
シムリンクを開始するコマンドは、OSにより異なります。MaxOS や、大半の Unix 及び Linux のディストロでは、ln -s
がコマンドです。ln
部分がシステムにリンクを作るよう指示します。-s
により、リンクをシンボリックにします。
Windows でのシンボリックリンク
Windows でのコマンドの基本構造は、 mklink <type> <put virtual copies here> <original file, directory, or its contents>
です。 MacOS や、 Linux とは違い、シンボリックリンクの type を引数として設定する必要があります。リンク元とリンク先も、逆順です。新しいシンボリックリンクが、リンクされるファイルの前に来ます。ここでは、3つの引数が使えます:
/j
- これは最も一般的に使われる引数です。ディレクトリのシムリンクを作成します。/h
- 特定のファイルのシンボリックリンクを作成します。/d
- これは、soft link もしくはショートカットを作成します。今回説明しているような目的では使う場面は無いでしょう。
コマンドの例
基本的に、次のものを指定します。シムリンクを始めるコマンド、何をシンボリックリンクするか、どこに仮想的なコピーを置くか。以下に、これらの例を詳しく示します:
あるフォルダから別のフォルダへコンテンツをリンクする
MacOS and Linux | Windows |
---|---|
ln -s ~/folder1 ~/folder2 | mklink /J C:\folder2 C:\folder1 |
このコマンドは、シムリンクを作り、 folder1 にあるオリジナルコンテンツを使って、folder2 の中にシンボリックリンクされたそれらのコピーを置きます。もし folder2 が存在しなければ、このコマンドにより作られます。
ある場所から別の場所へフォルダ全体をリンクする
MacOS and Linux | Windows |
---|---|
ln -s ~/folder1 ~/folder2/ | mklink /J C:\folder2\ C:\folder1 |
このコマンドは、folder1 全体をコピーし、ターゲットの場所(この場合、folder2 )に配置します。この場合、folder2 はすでに存在している必要があります。このコマンドによりフォルダは作成されません。folder2 の末尾のスラッシュもしくはバックスラッシュに注目してください。
ある場所から別の場所へ単独のファイルをリンクする
MacOS and Linux | Windows |
---|---|
ln -s ~/folder1/file.jpg ~/folder2 | mklink /H C:\folder2\ C:\folder1\file.jpg |
これは、単独のファイルをシンボリックリンクするときに便利です。ファイルを不k数雨のディレクトリ間のシェアしたいときに、特に便利で、あらゆる場所のそれらリンクのアップデートを同時にすることができます。オリジナルファイルが、唯一のシンボリックでないコピーなので、すべてのシンボリックリンクが機能するためには、オリジナルはその場所にいなければいけないことに留意してください。