Hatena::ブログ(Diary)

TECHNERD::INIT このページをアンテナに追加

2009-04-09

githubで.vimrcの管理

Dropboxを使って各種設定ファイルを管理していたのですが、設定ファイルにDropboxを使うのは冗長なのでLinuxの設定ファイル諸々はgithubで管理することにしました。

github上にconfigレポジトリを作成してそこで管理することとします。

GitHubサイトでの設定

githubのページにて、ログイン後、新規レポジトリを作成する。

Your Repositoriesの右にある[create a new one]を選択

Project Name: Config

として新規レポジトリを作成

PC側での設定

  git config --global user.name "Your Name"
  git config --global user.email youraddr@gmail.com

この設定がコミットログに反映されます。

初期コミット

mkdir config
cd config
git init
# .vimrcを追加
git add .vimrc
git commit -m 'first commit'
# GitHubを Remote Repositry として追加する
git remote add origin git@github.com:chipa34/config.git
# ローカルの変更を、github上のconfigレポジトリにプッシュする
git push origin master

他の環境からGitHub上の情報を持ってくる場合

git clone http://github.com/chipa34/config.git

初期コミットの時に作ったconfigディレクトリ以下を引っ張ってきます。

SVNで慣れてたので以下のサイトは参考になりました

2009-03-03

Windows XPでIPv6

IPv6スタックインストール

Windows XPIPv6スタックを搭載しているが、初期状態では無効となっておりIPv6を使用することはできない。

IPv6スタックを有効にするためには、次のコマンドをコマンドプロンプトから実行する。

ipv6 install

最後にシステムの再起動を行う。

IPv6インタフェース情報の取得

IPv6インタフェースごとの詳細な情報は、次のコマンドをコマンドプロンプトから実行することで得られる。

ipv6 if

IPv6経路などの設定時に必要なインタフェースインデックス(番号)は、このコマンドから知ることができる。

ipv6 adu インタフェース番号/アドレス lifetime 有効生存時間

有効生存時間は秒で指定し、infiniteと記述することで無制限時間で追加することができる。また、アドレスを削除する場合には、有効生存時間を"0"と指定する。

IPv6アドレス管理

IPv6アドレスの追加・削除はnetshを使用すると便利。

Windows XPでは、MACアドレスから自動生成されるEUI-64形式のIPv6アドレスに加え、デフォルトIPv6: Privacy Extentions (RFC 3041)に対応しており、匿名のアドレスを自動的に追加する。そこで、匿名アドレスを生成しないように設定するには、以下のコマンドを使用する。

netsh interface ipv6 set privacy state=disabled
  • IPv6アドレス手動構成

IPv6アドレスを自動構成ではなく、手動で構成することも可能。

netsh interface ipv6 add address 4 2001:123:1234::cafe

addressの後ろの「4」は、ネットワークインタフェースインデックス値である。この値は、インタフェース名(文字列)で指定することもできる。

netsh interface ipv6 add address "ローカル エリア接続" 2001:123:1234::cafe

ネットワークアドレスを削除するには、delete addressを使用する。

netsh interface ipv6 delete address 4 2001:123:1234::cafe
  • Default GWの設定
netsh interface ipv6 set route ::/0 "ローカル エリア接続"
2001:123:1234::1

IPv6経路の設定

経路の設定は以下のコマンドをコマンドプロンプトから実行する。

ipv6 rtu 宛先プレフィックス インタフェース番号/送信先アドレス lifetime 有効生存時間

有効生存時間については、IPv6アドレスの追加・削除と同様の設定である。

以下にコマンドのサンプルを示す。

ipv6 rtu 2001:123:1234::/64 4/2001:123:1230::100 pub lifetime infinite

IPv6経路の確認

以下のコマンドをコマンドプロンプトで実行することにより、IPv6経路(ルーティングテーブル)を確認することができる。

ipv6 rt

おまけ:IPv6アドレスを名前から引く

IPv6アドレスはIPv4アドレスと比較して非常に長い。特定のホストをホスト名からIPv6アドレスを引く方法を知っておくと役に立つ場合がある。(DNSを使わなくてもWindowsにもhostsファイルがある。場合によっては便利)

そのためには、hostsファイルと呼ばれるホスト名とIPv6アドレスの対応を定義するファイルを用いる。

  • 編集箇所
%SystemRoot%\system32\drivers\etc\hosts
  • 編集内容

例えば、IPv6アドレス「2001:123:1234::feed:cafe」を

hoge」というホスト名に対応させる場合は、

2001:123:1234::feed:cafe  hoge

と記述する。

2009-03-02

Bashショートカットキー チートシート

移動系

Ctrl + a 行頭へ移動
Ctrl + e 行末に移動
Ctrl + b 1文字戻る
Ctrl + f 1文字進む

削除系

Ctrl + d カーソル位置にある文字を削除
Ctrl + k カーソル位置から行末まで削除
Ctrl + u 行頭からカーソル位置まで削除
Ctrl + w カーソル位置からその左側の最初のスペースまで削除(スペースが無い場合は行頭まで削除)
Ctrl + H カーソルの左にある1文字を削除(BackSpaceに相当)
Ctrl + y 削除した文字を貼り付ける

表示系

Ctrl + l 画面をクリアしてカレント行(現在いる行)を再表示する
Ctrl + q 画面への出力を再開
Ctrl + s 画面への出力を停止
Ctrl + t カーソル位置の文字とその左側の文字を入れ替える

検索系

Ctrl + r前打ったコマンドを検索

コマンド系

Ctrl + m コマンドを実行
Ctrl + n コマンド履歴の1つ後ろのコマンドの表示
Ctrl + p コマンド履歴の1つ前のコマンドの表示
Ctrl + c 現在のコマンドを強制終了
Ctrl + z 現在のコマンドを一時停止
!! 1つ前に実行したコマンドを再実行

おまけ

# set -o vi

とするとキー操作がviスタイルになる。

emacsスタイルに戻したい場合は、以下のコマンドを実行すればOK。

# set -o emacs

2009-02-17 ip6tables このエントリーを含むブックマーク

IPv6フィルタを行うときは以下のようなシェルを作って対応しています。

#!/bin/sh

# 全てのルールを削除
ip6tables -F
# 全てのユーザ定義チェインを削除
ip6tables -X

# 基本的には外部からのパケットの通過を拒否
ip6tables -P INPUT DROP
#ip6tables -P INPUT ACCEPT
# 基本的には外部へのパケットの通過を許可
ip6tables -P OUTPUT ACCEPT
# 基本的には他のインターフェイスへ再送信を拒否
ip6tables -P FORWARD DROP

# lo( ループバック)からのINPUTを許可
ip6tables -A INPUT -i lo -j ACCEPT

#RS,RA,NS,NAを受け入れる
ip6tables -A INPUT -i eth0 -p icmpv6 --icmpv6-type router-solicitation -j ACCEPT
ip6tables -A INPUT -i eth0 -p icmpv6 --icmpv6-type router-advertisement -j ACCEPT
ip6tables -A INPUT -i eth0 -p icmpv6 --icmpv6-type neighbor-solicitation -j ACCEPT
ip6tables -A INPUT -i eth0 -p icmpv6 --icmpv6-type neighbor-advertisement -j ACCEPT

# 個々のアクセス制御を以下に記述
# HTTPアクセスを許可
ip6tables -A INPUT -i eth0 -p tcp -s 2001:1234:1234::/48 --dport 80 -j ACCEPT

# HTTPSアクセスを許可
ip6tables -A INPUT -i eth0 -p tcp -s 2001:1234:1234:1234::cafe/128 --dport 443 -j ACCEPT

# ip6tablesに保存する
ip6tables-save > /etc/sysconfig/ip6tables

このシェルを実行することでルールが適用されます。

# ip6tables -L

でルールを確認することができます。

2009-01-21

簡単Google App Engine登録編

この記事は、簡単Google App Engine入門編 - TECHNERD::INITの続きです。

GAEへの登録

http://appengine.google.com/にアクセスします。

[Welcome to Google App Engine]という画面が出てきたら

[Create an Application]をクリック

Verify Your Account by SMSという画面に飛ぶので

Country and Carrier: Japanを選択します。

次にキャリアを選択します。

Username:

に携帯のe-mailアドレスの@より前の部分を入力

[Send]を押す

携帯のe-mailアドレスに以下のような7桁の認証キーがおくられてきます。

Google App Engine Code : 9999999

これを入力するとアカウントの登録が完了です。

アプリケーション領域の作成

GAE上にアプリケーション領域の作成を行います

[Create an Application]の画面にて、

Application Identifier:に任意の名前をつけて下さい。

ここではhogehogehogeにします。

Application Title:に適当にタイトルをつけてください。

そして[Save]を押す。

appspot.com上にhogehogehoge.appspot.comという領域が作られました。

まだアプリケーションをアップしていないのでアクセスしても何もありません。


Google App Engineへのアップロード

ローカルPCにて

app.yamlを編集

application: hogehogehoge <-ここを[Create an Application]の画面で指定したApplication Identifierに変えてください。
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
script: helloworld.py

app.yamlの詳細について知りたい方はこちら。

Error 404 (Not Found)!!1

GAEへのアップロード

appcfg.pyでアップロードします。

DOSプロンプトから、

C:\Program Files\Google\google_appengine\appcfg.py update C:\gapps\helloworld

実行後、e-mailとpasswordを聞かれます。

e-mailgmailアカウント
passwordgmailパスワード

入力してアップロード完了

確認

http://hogehogehoge.appspot.comにアクセス。

Hello, Worldと表示されていればOK。

ここまでが一連の流れになります。

Connection: close