Command Line
(コマンドライン)で使用しているツールを簡単にではありますが、まとめてみようと思います。前回の続きです。私が知らない便利ツールはまだまだたくさんありますので、ここに掲載されているもの以外で便利なものがあれば、ぜひ教えてください。
Command Line で使用しているツールまとめ vol.1
Command Line で使用しているツールまとめ vol.2
Command Line で使用しているツールまとめ vol.3
この記事に貼り付けてあるリンクは、キーワードに関連する適切な場所へと誘導してくれます。非常に有効なので、ぜひ参照してみてください。
また、私は基本的にパソコンのことは何もわかっていないので、記事内には誤りを含む可能性があります。よって、できる限り自分の環境を把握した上で、適時読み換えてもらえればと思います。特に、設定ファイルの場所については気をつけてください。また、Git
やHomebrew
、MacPort
の導入説明などは省略していますので、注意が必要です。
#Markdown
Markdown
とは、おおよそMarkdown記法
のことを指すことが多いように感じます。そして、このMarkdown記法
とは、簡単には、HTML
の省略記法のことを言います。HTML
は、Zen-coding
などのツールを使用しない限り、基本的なタグを書くにも一苦労です。そんな時は、このMarkdown
が役に立ちます。ここでは、Markdown
に関する役立つツールとその使い方を簡単に紹介していきたいと思います。
##Markdown
このツールは、HTML
で書いた文章をMarkdown
形式に変換してくれます。ただし、デフォルトでは、改行コード<br/>
は挿入されませんので注意が必要です。
brew install markdown
例えば、~/Document/test.md
というファイルがあったとして、これをMarkdown
形式に変換するには、以下のようにします。
markdown ~/Document/test.md > ~/Document/test.html
また、改行コードを挿入したい場合は、以下のコマンドが有効です。これは、空行を改行コードに置換するものです。
sed -e "s/^$/<br\/>/g" ~/Document/test.md > ~/Document/test.html
##html2text
このツールは、例えば、WebサイトのURLを指定することで、当該ページをMarkdown
で書いた場合どうなるかを表示してくれます。Markdown
の書き方を忘れてしまった時などに便利です。
brew install html2text
使い方は、以下のように変換したいWebページのURLを指定するだけでOKです。
html2text http://mba-hack.blogspot.jp/2012/11/gimpx11.html
##Markdown Preview
Markdown
をPreview
(プレビュー)するにも様々な方法があり、そのための有料アプリも存在します。しかしここでは、あえて無料の、しかも普通ではないやり方でMarkdown
をPreview
してみたいと思います。
使用するものは、前回紹介したEditor
(エディタ)であるSublime Text2
(以下、st2とします)です。後、既定のインターネットブラウザも使用します。私の場合は、Google Chrome
ですね。
まず、Package Manager
をインストールしていることを前提として、 Cmd+Shift+p
を押します。そして、 install
で検索してください。 Install Package
を実行します。
そこで、 Markdown Previewをインストールします。次に当該Plugin
(プラグイン)にkey
(キー)を設定します。
Cmd+Shift+p
を押して、 key
とでも検索しましょう。 Key Binding -User
を実行します。そこで、以下を記述することで、 Alt+m
でMarkdown Preview
が実行されるようになります。
[{ "keys": ["alt+m"], "command": "markdown_preview", "args": {"target": "browser"} }]
ここで、Vim
から操作を可能にしておくと後々便利です。下の設定をした後は、Vim
上でファイルを開いている時、¥om
を押すと、ファイルがst2
で開かれます。
" Markdownをst2で開く
:nnoremap <leader>om :silent !open -a Sublime\ Text\ 2 '%:p'<cr>:redraw!<cr>
" その他の Markdown Preview
" http://tell-k.hatenablog.com/entry/2012/02/11/015727
" http://yonchu.hatenablog.com/entry/2012/11/14/233000
例えば、 ~/Library/Application Support/Sublime Text 2/Packages/Markdown Preview/sample.md
を開いてためしてみましょう。st2
が起動した後は、先ほど設定した Alt+m
を押します。すると、既定のBrowser
(ブラウザ)でMarkdown Preview
が実行されます。
#comix
ここでは、主に電子書籍を読む方法と電子書籍を集める方法を紹介します。簡易解説にはなりますが、適時便利に設定してもらえればと思います。
##comix
電子書籍を読むには、comix
が便利です。Macでは、x11
を使用しなければならない点が残念ではありますが、それでも、CLI
からの操作ができる点は便利だと思います。
sudo port install comix
以下のように電子書籍(フォルダでまとめられた.jpgなどの画像ファイル集、ここでは、~/inp/
フォルダとします)を圧縮した後、バックグラウンドで起動するのが良いかと思います。
cd
zip -r out.zip inp/
comix out.zip &
なお、x11
の操作方法は以下のとおりです。また、comix
のOption(オプション)は、man comix
などで確認できます。
C-q : 終了する
C-l : ライブラリを開く
C-b : ブックマークを開く
C-d : ブックマークに登録する(しおり)
Esc : キャンセル
w : 横幅いっぱいに表示する
h : 縦幅いっぱいに表示する
f : フルスクリーンで表示する
Fn-↓↑ : 1ページごとに移動
Fn-→← : 最後のページ、最初のページ
Space : 下スクロール
Shift-Space : 上スクロール
GoogleBooksDownloader
私は、本を購入する前にGoogle Books
で内容を確認したりすることがあります。以下のツールは、Google Books
を.jpg
でDownload
(ダウンロード)するツールです。
git clone https://github.com/bhattumang7/Google-Books-Downloader.git
cd Google-Books-Downloader/build/
java -jar GoogleBooksDownloader.jar "URL" "保存フォルダ"
ちなみに、Google Books
内の検索は、以下の様な設定ファイルを書いておくと便利です。これで、book-search
コマンドが使用できるようになります。
# Google Booksの検索
function book-search() {
local str opt
if [ $ != 0 ]; then
for i in $*; do
str="$str+$i"
done
str=`echo $str | sed 's/^\+//'`
opt='search?lr=lang_ja&hl=JA&tbo=p&tbm=bks&tbs=,bkv:p&num=10'
opt="${opt}&q=${str}"
fi
w3m http://www.google.co.jp/$opt
}
##Google Search
Search
(検索)が出てきたついでに一つだけ検索Tips
(小技)を紹介してみたいと思います。
#!/bin/zsh
w3m "http://www.google.co.jp/search?num=50&hl=ja&lr=lang_ja&q=$2&tbs=qdr:$1"
上のShell Script
(シェルスクリプト)は、google-time <期間> <検索キーワード>
として期間を指定して検索を行う方法です。Browser
には、w3m
を使用します。なお、期間は以下の様な表現になっています。
y : 1年
y2 : 2年
m : 1ヶ月
m6 : 6ヶ月
w : 1週間
w3 : 3週間
h : 1時間
h24 : 24時間
d : 1日
ちなみに、設定ファイルに書く場合は、以下のようになります。
# google 検索 期間を指定(y,w,h,m)
function google-time() {
w3m "http://www.google.co.jp/search?num=50&hl=ja&lr=lang_ja&q=$2&tbs=qdr:${1}"
}
また、使用する期間が限られている場合は、以下のような設定ファイルを書いておいたほうが便利かもしれません。
# google 検索 1年以内
function goy() {
local str opt
if [ $ != 0 ]; then
for i in $*; do
str="$str+$i"
done
str=`echo $str | sed 's/^\+//'`
opt='search?num=50&hl=ja&lr=lang_ja'
opt="${opt}&q=${str}"
tbs='&tbs=qdr:y'
fi
w3m http://www.google.co.jp/$opt$tbs
}
#zaw.zsh
先程からzsh
が頻繁に出てきました。ここで、前回紹介したzaw.zsh
をさらに便利にする設定の一例を紹介していきたいと思います。ちなみに、zaw.zsh
とは、zsh
にvim
でいうunite.vim
のようなインターフェイスを提供する拡張ツールです。端末操作になれていない人には、分かりやすくて便利なものだと思います。
cd && git clone https://github.com/zsh-users/zaw.git && echo "source ~/zaw/zaw.zsh" >> ~/.zshrc && source ~/.zshrc
##カスタマイズ一例
zaw.zsh
の使い方は、基本的には、C-g
を押した後、 C-x;
で使用できます。ちなみに、終了は、 C-g
や C-c
です。
ここで、例えば、History
をよく使うという場合は、専用のkey
を設定しておくと便利です。この設定でC-g,C-h
を押すとzaw-history
が起動します。
bindkey '^X' zaw
bindkey '^h' zaw-history
なお、デフォルトで設定できる項目は以下のとおりです。
# https://github.com/zsh-users/zaw
zaw-ack
zaw-applications
zaw-bookmark
zaw-git-files
zaw-history
zaw-open-file
zaw-perldoc
zaw-screens
zaw-tmux
##gitdir
gitリポジトリ内の移動を簡単にしたい場合は、gitdir
を使うと便利です。~/zaw/sources/
にgitdir.zsh
を作り、zsh
をexec $SHELL
で再起動します。
#
# zaw-src-gitdir
# http://d.hatena.ne.jp/syohex/20120624/1340550154
# zaw source for git command
#
function zaw-src-gitdir () {
_dir=$(git rev-parse --show-cdup 2>/dev/null)
if [ $? -eq 0 ]
then
candidates=( $(git ls-files ${_dir} | perl -MFile::Basename -nle \
'$a{dirname $_}++; END{delete $a{"."}; print for sort keys %a}') )
fi
actions=("zaw-src-gitdir-cd")
act_descriptions=("change directory in git repos")
}
function zaw-src-gitdir-cd () {
BUFFER="cd $1"
zle accept-line
}
zaw-register-src -n gitdir zaw-src-gitdir
そして、~/zaw/zaw.zsh
に以下を追記します。これで、C-@
を押すと、gitdir
が発動します。
bindkey '^@' zaw-gitdir
##補完候補をハイライトする
補完候補をハイライトするには、以下のように設定すると便利です。
# tab補完に関するtips
# http://qiita.com/items/13d150c590508d518d26
autoload -U compinit
compinit
zstyle ':completion:*:default' menu select=1
#nicovideo-dl
作業用BGMとしてVOCALOID曲を聴く人も多いかと思いますが、時にマイリストで管理したものをLocal
(ローカル)に保存したいと気があります。そんな時は、nicovideo-dl
を使うと便利です。ここでは、nicovideo-dl
の使用例として、ニコニコ動画のマイリストを一括ダウンロードすると方法を紹介します。ただし、ダウンロードするコンテンツは、あくまで権利者がアップロードしたものであり、かつダウンロードの許可がある場合に限定するように注意してください。
##必要なもの
nicovideo-dl (python)
nicovideo-dl patch (github)
nicomylist-dl (shell script)
##nicomylist-dl
#!/bin/zsh
mkdir -p ~/Music/mylist/ && cd ~/Music/mylist/ && touch 0.html 0.txt && rm *.html *.txt && curl -o mylist.html "$1" && sed -e 's/"watch_id":"/http:\/\/www.nicovideo.jp\/watch\//g' mylist.html > test.txt && cat test.txt | perl -pe 's/"}/\n/g' > test2.txt && cat test2.txt | perl -pe 's/,/\n/g' > test3.txt && grep "http://www.nicovideo.jp/watch/" test3.txt > url.txt && awk -v ORS=' ' '1;END{printf"\n"}' url.txt > url2.txt
val=`cat ~/Music/mylist/url.txt | wc -l`
for ((i=1;i<=val;i++))
do
sed -e "$i!d" ~/Music/mylist/url.txt | xargs nicovideo-dl -n -t -w
done
##詳細な解説
# nicovideo-dlをダウンロードします
w3m http://sourceforge.jp/projects/nicovideo-dl/
# ダウンロードしたファイルを解凍します
tar zxvf ~/Downloads/nicovideo-dl-0.0.20120212.tar.gz
# 移動します
cd ~/Downloads/nicovideo-dl-0.0.20120212/
# nicovideo-dlのパッチを含んだフォルダを置きます
git clone https://github.com/smly/archlinux-mypkg.git
# パッチをコピーします
cp archlinux-mypkg/nicovideo-dl/overwrite_option.patch ~/Downloads/nicovideo-dl-0.0.20120212/
# パッチを当てます
patch < overwrite_option.patch
# パスを表示します
echo $PATH
# パッチを当てたnicovideo-dlをパスの通った場所にコピーします
cp nicovideo-dl /usr/local/bin/
# シェルを再起動します
exec $SHELL
##補足
nicovideo-dl
を使うときには、通常、ニコニコ動画のIDやパスワードの入力を求められます。しかし、-n
オプションを使えば、これらの入力を省略できます。以下の様な.netrc
ファイルを作って、ホームフォルダに置きます。ただし、このようなパスワード保存はセキュリティ上重大な欠陥があるため、独自に工夫を施すことをおすすめします。
machine nicovideo
login ユーザー名(メールアドレス)
password パスワード
##ニコニコ動画のマイリストを一括ダウンロードする
nicomylist-dl <マイリストURL>
nicomylist-dl <マイリストURL>
とすることで、~/Music/mylist/
にファイルが保存されます。既に同名のファイルが存在する場合やエラーが出た場合は、スキップしてダウンロードが続行されます。
なお、ダウンロードする際は、~/Music/mylist/
にあるHTML
とTXT
ファイルは削除されますので注意してください。
##シェルスクリプトを使いたくない場合
上のようなシェルスクリプトを使いたくない場合は、以下のように~/Music/mylist/url2.txt
(参照:nicomylist-dlの3行目)を使ってもマイリストをダウンロードすることができます。この場合、パッチを当てる必要はありません。
cat url2.txt | xargs nicovideo-dl -n -t
##w3mのブラウジングからニコニコ動画をダウンロードする
以下の様なシェルスクリプトを作成し、w3n URL1 URL2 URL3...
とすることで、Q
を押し、w3mを閉じると、nicovideo-dl
が発動します。ダウンロードしたファイルは、~/Music/new/
に保存されます。
#!/bin/zsh
mkdir -p ~/Music/new/ && cd ~/Music/new/ && rm ~/.w3m/history && w3m -N $* &&
val=`cat ~/.w3m/history | wc -l`
for ((i=1;i<=val;i++))
do
sed -e "$i!d" ~/.w3m/history | xargs nicovideo-dl -n -t -w
done
#Vim
Vim
には、ノーマルモードとインサートモードというものがあります。特に、文章を書く場合、インサートモードで日本語入力を行うことが多いかと思いますが、ノーマルモードでは、日本語入力を止めて、IME
をOFF
にする場合が多いかと思います。このような事情があるため、初期設定では、インサートモードからノーマルモードに移行する際や移行した後、頻繁に っj
や :あ
などといったことが起こります。よって、ここではこのような間違いを少しでも減らすべく便利な設定などを紹介していけたらと思います。
##KeyRemap4MacBook
KeyRemap4MacBookを使用すると、MacのVim
でIME
を自動OFFにする設定などを有効にすることができます。投稿の上限がきそうなので以下より簡易解説に入ります。
<?xml version="1.0"?>
<root>
<list>
<item>
<name>LeaveInsMode with EISUU(Terminal)</name>
<identifier>private.app_terminal_esc_with_eisuu</identifier>
<only>TERMINAL</only>
<autogen>--KeyToKey-- KeyCode::ESCAPE, KeyCode::ESCAPE, KeyCode::JIS_EISUU</autogen>
<autogen>--KeyToKey-- KeyCode::J, VK_CONTROL, KeyCode::J, VK_CONTROL, KeyCode::JIS_EISUU</autogen>
</item>
</list>
</root>
" C-jでノーマルモードに移行する
inoremap <silent> <C-j> <ESC>
##ImageUp
ImageUpは、英数/かな入力か入力状態が分かりやすく表示してくれるツールです。色々な使い方ができます。
#Tw
Terminal
を2重にして後ろでTweetを流すには、twが便利です。
gem install tw
while true; do date; tw @PSP_T; sleep 6; clear; done;
特にbot
などを流すとニュースが流れる感覚でいいかもしれません。
@RSS_hateb_Roy
@RSS_Nmatome_Roy
…etc
#df
HDD容量を監視するには、df
コマンドを使います。
brew install watch
watch df
#最後に
投稿の上限が来たので今回はこれで終了です。今回は、電子書籍がメインのテーマになっていますが、Nexus7
欲しいです。本を読むには色々と便利そう。次回は、ophcrack
やaircrack-ng
、wireshark
などの使い方を紹介していきたいと考えています。よろしくお願いします。
##Nexus7関連のおすすめ記事
zsh,vim,w3m...etc : http://d.hatena.ne.jp/rattcv/20121005
tmux : http://d.hatena.ne.jp/rattcv/20121016
ubuntu,emacs,vnc :http://blog.livedoor.jp/arte_nut/archives/7515045.html