△ コマンドライン入門

Grav がコマンドラインの利用を念頭に置いて作られたことは周知の通りです。Admin プラグインは、ターミナル (MacOS と Linux) やコマンドプロンプト (Windows) を開かずに多くの作業を行うことを容易にしますが、コマンドラインからの作業で得られるスピードと制御のレベルについては、多くのことに定評があります。

特に、自身の開発用サーバーや、コマンドラインにアクセスできるリモートサーバーを運営している人たちには、コマンドラインから自由に使えるツールがたくさんあります。あなたのサイトのホスティング、Grav、プラグイン、テーマなど、事実上すべての側面を、わずかなキー操作でコントロールすることができます。

結局のところは、すべては個人の好みによりますが、このページでは、コマンドラインを使いこなすための素晴らしいリソースをいくつか紹介します。

コマンドに関しては、すべてのオペレーティングシステムが互いに互換性があるわけではありません。MacOS と多くの Linux ディストロの間には細かな違いがあり、Windows のコマンドプロンプトは他の 2 つとは全く異なるコマンドのセットを持っています。

MacOS

MacOS は Unix をベースとしており、POSIX 標準に準拠しています。つまり、他のUnixやLinuxベースのオペレーティングシステムで慣れ親しんだコマンドのほとんどは、MacOS でも期待通りに動作するのです。ただし、例外もあります。そのため、使用するオペレーティングシステムに対応したターミナルコマンドを調べることをお勧めします。

MacOS のターミナルの使い方に慣れるために、いくつかの素晴らしい資料をご紹介します。

Linux

Linux(と Unix)ディストリビューションの大部分には、Bash コマンドラインインターフェイス(Terminal) が利用できるという大きな共通点があります。Gnome、Unity、KDE などの GUI を使っているかどうかにかかわらず、デスクトップやラップトップで Linux ディストリビューションを動かしている場合、コマンドラインにアクセスしたことがある可能性は高いでしょう。

GUI でできることはほとんど何でも直接コマンドラインで行うことができ、多くの場合、コマンドの実行方法をより細かく、強力にコントロールすることができます。Linux の Terminal を使いこなすための優れたリソースをいくつか紹介します。

Windows

Windows は、いくつかの理由で浮いています。Windows のコマンドラインの多くは、そのルーツである DOS を彷彿とさせるものです。ディレクトリの一覧を表示する ls のような一般的なコマンドは、ここでは使えません。代わりに、dir と入力します。Windows のコマンドプロンプトを使いこなすためのリソースをいくつか紹介します。

Grav の CLI コマンドはすべてが PHP に依存していますが、これは Windows ではすぐに利用できません。インストールされているかどうかは、コンソールを開いて php -v と入力することで確認することができます。'php' が内部コマンド、外部コマンドとして認識されない場合、何も返ってきません。

Windows システムに PHPを追加する場合、"環境変数 " を見つける必要があります。スタートメニューから探すか、コントロールパネル → システムの詳細設定 → 環境変数 をクリックします。

Under "System Variables", find "Path" and click edit. Copy the "variable value" into notepad, and add a semicolon at the end - to separate variables. Then find the path to your installation of PHP (from scratch or using a current installation that came with your development environment), and add it to the end of this long list of variables. You want the folder-path, not including php.exe.

When that is done, open a new console (or restart your current one) so the new path is applied. Then try php -v again, you should get an output like: PHP 7.0.7 (cli) .... When you run Grav's commands, you will need to prepend php to them, for instance php grav/gpm index.

Grav 専用コマンド

Grav の最もクールな点の 1 つは、プラグインやテーマの追加インストールから管理者へのユーザー追加まで、あらゆることを自由に行える強力なコマンドを持っていることです。このセクションでは、最も一般的に使用されるコマンドの多くをリストアップします。

以下に示すコマンドは すべての OS に対応しています。

[version=15]

Command Description
bin/grav list Gravで利用可能なコマンドを一覧表示します(GPMを除く)。
bin/grav help <command> 特定のコマンドに関するヘルプを表示します。
bin/grav new-project <location> 別のフォルダに新しいクリーンな Grav インスタンスを作成するために使用します。既存の Grav インストールから実行することができます。
bin/grav install 現在インストールされている Grav を実行するために必要な依存関係を解決するインストールを実行します。
bin/grav clear-cache キャッシュをクリアします。オプション : --all, --assets-only, --images-only, --cache-only
bin/grav backup サイトの ZIP バックアップを作成します。
bin/grav composer 手動でインストールされた composer-based vendor パッケージをアップデートします。
bin/grav security すべてのページに対して、設定されたXSSセキュリティチェックを実行します。
bin/gpm list GPM ( Grav Package Manager ) で利用可能なコマンドを一覧表示します。
bin/gpm help <command> 特定のコマンドに関するヘルプを表示します。
bin/gpm index Grav リポジトリで利用可能なすべてのリソースの一覧を、テーマとプラグインを対象に整理して表示します。
bin/gpm info パッケージの詳細(説明、作者、ホームページなど)を表示します。
bin/gpm install Grav リポジトリから Grav インスタンスにリソースをインストールします。 .
bin/gpm update インストールされているプラグインやテーマについて、利用可能なアップデートがあるかどうかを確認し、一覧表示します。
bin/gpm uninstall インストールされているテーマやプラグインを削除し、キャッシュをクリアします。
bin/gpm self-upgrade Grav を最新バージョンにアップデートすることができます。

[/version]

[version=16,17]

Command Description
bin/grav list Lists all commands available in Grav (excluding the GPM).
bin/grav help <command> Gives you help on a specific 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 This command installs any dependencies needed to run your current Grav install.
bin/grav cache This command clears the cache of your Grav install. Options include: --all, --assets-only, --images-only, and --cache-only
bin/grav backup Creates a zip backup of your current Grav site.
bin/grav composer Updates manually-installed composer-based vendor packages.
bin/grav security Runs through the configured XSS security checks on all Grav pages
bin/gpm list Lists all commands available via Grav's GPM (Grav Package Manager)
bin/gpm help <command> Gives you help on a specific command.
bin/gpm index Shows a list of all the available resources in the Grav repository, organized by themes and plugins.
bin/gpm info Displays the details of the desired package, such as description, author, homepage, etc.
bin/gpm install Installs a resource from the repository to your current Grav instance with a simple command.
bin/gpm update Checks installed plugins and themes for available updates and lists them.
bin/gpm uninstall Removes an installed theme or plugin and clears the cache.
bin/gpm self-upgrade Enables you to update Grav to the latest version.
bin/gpm logviewer Easily view Grav logs with configuration options to pick log file, number of lines, and verbosity
bin/gpm scheduler Manage the scheduled jobs and manually run the scheduler process if required

[/version]

These commands are explained in greater detail within the Grav CLI and Grav GPM documentation.

The commands listed below, are compatible with mac or unix systems.

Command Description
bin/gpm index \| grep '\| installed' Lists all plugins and themes you currently have installed.

Symbolic Links

Symbolic Links (also known as symlinks) are incredibly useful and easy to perform within the command line. What it does it create a virtual copy (clone) of a given folder or its contents and puts it wherever you'd like it to go. Unlike a true copy, it is simply a tunnel to the original so everything you see and change is reflected in multiple places at once.

Another great benefit of doing this is that it takes up virtually zero additional disk space since you don't have multiple copies of the same files.

Where Grav is concerned, symlinks are a great way to add plugins, themes, and content to multiple instances and doing so in a way that makes it infinitely easier to update and modify. You make a change once, and it appears everywhere the file(s) are symlinked.

The process for performing a symlink is pretty straightforward, with minor differences between operating systems.

Symbolic Links in MacOS and Linux

The command follows a common pattern of ln -s <original file, directory, or its contents> <put virtual copies here>.

The commands that initiate a symlink differ between operating systems. For MacOS and the majority of Unix and Linux distros, ln -s is the command. The ln part tells the system you want to create a link. The -s switch sets the link as symbolic.

Symbolic Links in Windows

The basic structure of the command in Windows is mklink <type> <put virtual copies here> <original file, directory, or its contents>. Unlike MacOS or Linux, you will need to set the argument for the type of file you're symbolically linking. The source and destination are also flipped in this case, where the new symbolic link comes before the file you're linking to. There are three arguments you can use here:

  • /j - This is the most commonly used argument. It creates a symlink of a directory.
  • /h - This creates a symbolic link for a specific file.
  • /d - This creates a soft link, or a shortcut. It's not likely to be used for the purposes outlined here.

Example Commands

Basically, you state the command that initiates the symlink, what you're symbolically linking, and where you're putting the virtual copies. Below, we've detailed examples of these commands:

Link Contents of One Folder to Another
MacOS and Linux Windows
ln -s ~/folder1 ~/folder2 mklink /J C:\folder2 C:\folder1

This command creates a symlink that takes contents originally placed in folder1 and puts a symbolically linked copy of them in folder2. If folder2 does not already exist, it is created with this command.

Link Entire Folders from One Place to Another
MacOS and Linux Windows
ln -s ~/folder1 ~/folder2/ mklink /J C:\folder2\ C:\folder1

This command copies the entire folder1 directory and places it in the target location (in this case folder2). In this case, folder2 would need to already exist as it will not be created with this command.
Watch the slash or backslash at the ending when specifying folder2.

Link Individual File(s) from One Place to Another
MacOS and Linux Windows
ln -s ~/folder1/file.jpg ~/folder2 mklink /H C:\folder2\ C:\folder1\file.jpg

This is a useful command for symbolically linking individual files. This is especially useful if you have files that are shared between multiple directories and you want to have them update everywhere at the same time. Keep in mind that the original file is the only actual copy, so it must remain where it is for all of the symbolic links to work.


オリジナル : https://learn.getgrav.org/17/cli-console/command-line-intro