読者です 読者をやめる 読者になる 読者になる

黒猫のWeb的開発

Webやスマートフォンアプリ開発未経験者が何かを勉強して作っていくためのメモです。

viでgtagsを使う(for Debian)

Debian vi

gtagsはctagsの強力版。
エディタに取り込んで、楽々コードリーディング。

gtagsを使うためにglobalをインストールする。

$ sudo apt-get install global


gtagsファイルの設定ファイルをviのプラグインディレクトリに追加する。

$ mkdir .vim/plugin
$ cp /usr/share/doc/global/examples/gtags.vim.gz ~/.vim/plugin/
$ cd ~/.vim/plugin/
$ gzip -d gtags.vim.gz

~/.vimrcに以下を設定する

nmap <C-g> :Gtags -g
nmap <C-l> :Gtags -f %<CR>
nmap <C-j> :Gtags <C-r><C-w><CR>
nmap <C-k> :Gtags -r <C-r><C-w><CR>
nmap <C-n> :cn<CR>
nmap <C-p> :cp<CR>

Ctrl-g ソースコードをgrepする
Ctrl-l 開いているファイルの関数一覧を表示する
Ctrl-j 定義元を探す
Ctrl-k 使用箇所を探す
Ctrl-n 次の検索結果へジャンプ
Ctrl-p 前の検索結果へジャンプ

apt-getしたパッケージがインストールされたディレクトリを調べる方法

パッケージ管理 Debian

apt-getでパッケージをインストールした後に、どこのインストールされたか分からなくなることが多い。ネットで調べてもディストリビューションで格納場所が違うのか、違うパスであることも多い。
そのため、Debianでapt-getしたパッケージがどのディレクトリにインストールされたかを調べる。

以下のコマンドを打つだけ。

$ dpkg -c /var/cache/apt/archives/パッケージ.deb

delta@raspberrypi ~ $ dpkg -c /var/cache/apt/archives/global_5.7.1-2_armhf.deb 
drwxr-xr-x root/root         0 2012-04-25 18:15 ./
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/lib/
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/lib/emacsen-common/
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/lib/emacsen-common/packages/
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/lib/emacsen-common/packages/install/
-rwxr-xr-x root/root       714 2012-04-25 18:15 ./usr/lib/emacsen-common/packages/install/global
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/lib/emacsen-common/packages/remove/
-rwxr-xr-x root/root       267 2012-04-25 18:15 ./usr/lib/emacsen-common/packages/remove/global
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/lib/cgi-bin/
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/share/
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/share/info/
-rw-r--r-- root/root     32611 2012-04-25 18:15 ./usr/share/info/global.info.gz
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/share/gtags/
-rw-r--r-- root/root      5740 2012-04-25 18:15 ./usr/share/gtags/global.cgi.tmpl
-rw-r--r-- root/root      1202 2012-04-25 18:15 ./usr/share/gtags/bless.sh.tmpl
-rw-r--r-- root/root       842 2012-04-25 18:15 ./usr/share/gtags/ghtml.cgi.tmpl
-rw-r--r-- root/root      1366 2012-04-25 18:15 ./usr/share/gtags/style.css
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/share/doc/
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/share/doc/global/
-rw-r--r-- root/root     10485 2008-07-24 19:36 ./usr/share/doc/global/changelog.gz
drwxr-xr-x root/root         0 2012-04-25 18:15 ./usr/share/doc/global/examples/
-rw-r--r-- root/root      2503 2008-07-24 19:36 ./usr/share/doc/global/examples/gtags.pl.gz
-rw-r--r-- root/root      3510 2012-04-25 18:05 ./usr/share/doc/global/examples/gtags.conf
・・・

Pythonでドメイン名からIPを調べる(またはIPからhost名)

Python 学習

ドメイン名からIPを調べる時は
socket.gethostbyname_ex('ドメイン名')
を使う。

IPからドメイン名を調べる時は
socket.gethostbyaddr('IP')
を使う。

import socket

ip = socket.gethostbyname_ex('bcde.jp')
print ip

domain = socket.gethostbyaddr(ip[2][0])
print domain

出力結果はタプルで(hostname, aliaslist, ipaddrlist)みたい。
aliaslistってなんじゃろ?