てっきんの具。

「てっきん」と呼ばれて40年のおっさんが書くブログ

bashかわいいよbash-さくらのレンタルサーバでも『WP-CLI』の入力補完機能を

WP-CLI Advent Calendar』10日目担当の @tecking です。

前回(3日目)に書いた記事「レンタルサーバに『WP-CLI』をサクっと入れるシェルスクリプト作ってみたよ」が思いのほか好評で舞い上がってしまったので、今週もレンタルサーバ絡みのネタを書くことにしました。

しかも今回のネタは『さくらのレンタルサーバ』向け。ニッチ感きわまりない内容ですね我ながら。

その前に『WP-CLI』のすごいトコ

こまごまと挙げるのもはばかられる高機能っぷりでひっくり返ることこの上ない『WP-CLI』。ここではあえて

強力な入力補完機能

を挙げたいとおもいます。入力補完とは、黒い画面で

mkd [tab]

と打ったときに([tab] はタブキーの入力を示す)

mkdir    mkdosfs

とコマンドの候補を出してくれたり

cd /home/ [tab]

foo/              bar/              baz/ 

みたいにディレクトリ候補を出してくれたりと、キー入力の手間を極力省いてくれる機能です。

同様の機能は『WP-CLI』にも備わっています。たとえば

wp [tab]

と打ってみると

cache            db               media            rewrite          site             widget 
cap              eval             menu             role             super-admin      
cli              eval-file        network          scaffold         term             
comment          export           option           search-replace   theme            
core             help             plugin           shell            transient        
cron             import           post             sidebar          user

とコマンド一覧を出してくれたり、さらに

wp core install

でタブを何回か打ってみると

--admin_email=     --admin_password=  --admin_user=      --title=           --url= 

と必要なパラメータをずらっと並べてくれたり。かゆいところに手の届く充実っぷりで、コマンドマニュアルを参照する回数も減るってもんです。

ところが! 素の『さくら』だとこの機能が使えません。それは、『さくら』がデフォルトで採用している「シェル」に理由があるからです。

シェル変更で『さくら』でも補完機能を有効化

Wikipediaの「シェル」の項を引用してみます。

シェル (shell) はオペレーティングシステム (OS) のユーザーのためにインタフェースを提供するソフトウェアであり、カーネルのサービスへのアクセスを提供する。それだけではなく、この用語は非常にゆるやかに応用され、特定のコンポーネントの周辺に構築された任意のソフトウェアを含むこともある。例えば、ウェブブラウザや電子メールクライアントはHTMLレンダリングエンジンの「シェル」といわれることがある。OSの内部(カーネル)とユーザーの間にある外殻であることから、このように呼ばれる。

ざっくりいうと、mkdir なり cd なり wp なりの命令を実行する場面で活躍するのがシェル。ただ、シェルの種類は多岐にわたり機能もさまざまで、「レンタルサーバだったら必ずこのシェル」というものでもありません。見た目同じような黒い画面なんですけどね。
(参考:Wikipediaの「Unixシェル」の項

『WP-CLI』の補完機能を実現してくれるのは、シェルの一つ「bash(Bourne-Again shell)」。ところが素の『さくら』では「csh(C Shell)」がデフォルトで、『WP-CLI』を入れたところで強力な補完機能を使うことができません。
(厳密には bash 環境下で使える wp-completion.bash のおかげ)

ということで、『さくら』のシェルを csh から bash に切り替えて『WP-CLI』をさらに使い倒すことにしましょう。

作業の手順

レンタルサーバに『WP-CLI』をサクっと入れるシェルスクリプト作ってみたよ」の記事に沿って、すでに『WP-CLI』が導入されていると想定します。

  1. 契約しているサーバのホームディレクトリ(www とか MailBox ディレクトリのある階層)に SSH でログインしたら、下記を実行してシェルを csh から bash に変更
    chsh -s /usr/local/bin/bash
    Password: {ログインパスワードを入力}
    
  2. chsh: user information updated のメッセージを確認したら、いったんログアウト
    exit
    
  3. 再ログインして下記を実行
    echo $SHELL
    

    /usr/local/bin/bash と返ってくればOK

  4. レンタルサーバに『WP-CLI』をサクっと入れるシェルスクリプト作ってみたよ」の記事に沿って wp-cli.setup.sh を再度実行

ご留意事項

  • 何度も動作確認はしていますが At Your Own Risk にてお使いください
  • bash への変更で csh のときに使えたエイリアスなど(例:ll で ls -lA が実行される)が無効になるので、適宜 ~/.bash_profile, ~/.bashrc を編集してください(すいません詳細はGoogle先生に!)

ではでは、ハッピーなWP-CLIライフを! 『WP-CLI Advent Calendar 2014』次の日直(12月11日)は @wokamoto さんです。

(photo by Eduardo Rodríguez Recio CC BY-NC-SA

カテゴリー:

タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください