GNU screenをもうちょっとだけ便利に使おう!

これはターミナルマルチプレクサ Advent Calendarの6日目でございます。

ノリと勢いでAdvent Calendarしたくてそのためにblogを移設したんだけど、 実はそんなにネタなかったりして。

と、いうわけで、今回は手持ちのtipsを紹介します。

その1. ログインしたら自動でscreen

.bashrcに自動でscreenが起動するように仕込めば、 今日からあなたもとても自然にscreen使いになれちゃいます。

自動screenデビューしたい? そんなあなたは↓のコードを .bashrc に書きましょう。

if [ $TERM != "screen" ]; then
    if [ $TERM != "dumb" ]; then
        screen -e ^z^z
    fi
fi

ポイントは次の2つ。

  1. 無限ループしないように、 $TERMscreen の時はscreenを起動しない
  2. SCPが使えるように、 $TERMdumb の時はscreenを起動しない

その2. 画面がチラチラするのが嫌!

screenでは、TAB連打で候補を出す時などにaudio bellの代わりにvisual bell(画面がチカチカする)が発動します。 でも、visual bellって画面チカチカするしすんごい見づらいですよね。 そんな私に共感してくれるあなたは ~/.screenrc に↓を書くと幸せになれるかもしれません。

vbell off

その3. 敢えて hardstatus を使わない

~/.screenrc に、頑張って hardstatus 云々って書くと、 画面上に時計やらウィンドウ一覧やらを表示できるんですよね。

これがまたカッコいい。 サイバーな感じで、こうなんというか、ハッカーっぽい!

でも私は、敢えて hardstatus を使わないのがお勧めです。

例えばMySQLで show table status した場合、 横幅広すぎでTerminal上では見づらいので、 手元のエディタにコピペしたくなりますよね。

そんな時も hardstatus を使っていなければ安心。 ターミナルソフト(MacならTerminalやiTerm)のスクロールバーを利用して少しだけ楽をしましょう。

なんとスクロールバックすれば出力がまるまる残っているではありませんか。 この出力をターミナルソフトの機能でコピーしてあげればokです。

MovableType5(MTOS)をWordPress3.2.1に移行

移行方法

データの移行はとても簡単。
ちゃんとパーマリンクも保持できます!

  1. [MT] MTの管理画面からExportでデータをファイルで出力
  2. [WP] 設定>パーマリンク設定 をカスタム構造の /%year%/%monthnum%/%postname%.html に設定
  3. [WP] プラグインのMovable Type and TypePad Importerをインストール
  4. [WP] ツール>インポート から1.で出力したファイルをアップロード
  5. [WP] MySQLに直接ログインしてパーマリンク修正
  6. [WP] Analyticsのtop30くらいを見て、不具合がないか確認。見栄えを適当に修正

※パーマリンク修正方法

$ mysql -u <WP_DBUSER> -p <WP_DBNAME> -h <WP_DBHOST>
mysql> UPDATE wp_posts SET post_name = REPLACE(post_name ,'_','-');

サーバ設定

以下はデータ移行には関係ないけど・・・

今回は思うところがありフロントにnginx、バックにapacheをおいて、 apache側でwordpressを動かしてます。 そんなわけでちょっとだけ設定をメモ。

nginx

server {
    listen       80;
    server_name  netmark.jp *.netmark.jp;
 
    access_log  /var/log/nginx/log/netmark.jp.access.log  main;
 
    location / {
        proxy_pass   http://localhost:8002/;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Forwarded-For $remote_addr;
    }
}

apache

UseCanonicalName On
Listen 8002
<VirtualHost *:8002>
        ServerName  netmark.jp:80
</VirtualHost>

これで今んとこうまく動いてます。