LoginSignup
44
45

More than 5 years have passed since last update.

Command Line で使用しているツールまとめ vol.4

Last updated at Posted at 2012-12-26

Command Line(コマンドライン)で使用しているツールを簡単にではありますが、まとめてみようと思います。前回の続きです。私が知らない便利ツールはまだまだたくさんありますので、ここに掲載されているもの以外で便利なものがあれば、ぜひ教えてください。

Command Line で使用しているツールまとめ vol.1

Command Line で使用しているツールまとめ vol.2

Command Line で使用しているツールまとめ vol.3

この記事に貼り付けてあるリンクは、キーワードに関連する適切な場所へと誘導してくれます。非常に有効なので、ぜひ参照してみてください。

また、私は基本的にパソコンのことは何もわかっていないので、記事内には誤りを含む可能性があります。よって、できる限り自分の環境を把握した上で、適時読み換えてもらえればと思います。特に、設定ファイルの場所については気をつけてください。また、GitHomebrewMacPortの導入説明などは省略していますので、注意が必要です。

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

MarkdownPreview(プレビュー)するにも様々な方法があり、そのための有料アプリも存在します。しかしここでは、あえて無料の、しかも普通ではないやり方でMarkdownPreviewしてみたいと思います。

使用するものは、前回紹介した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+mMarkdown Previewが実行されるようになります。

[{ "keys": ["alt+m"], "command": "markdown_preview", "args": {"target": "browser"} }]

ここで、Vimから操作を可能にしておくと後々便利です。下の設定をした後は、Vim上でファイルを開いている時、¥omを押すと、ファイルがst2で開かれます。

~/.vimrc
" 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.jpgDownload(ダウンロード)するツールです。

git clone https://github.com/bhattumang7/Google-Books-Downloader.git

cd Google-Books-Downloader/build/

java -jar GoogleBooksDownloader.jar "URL" "保存フォルダ"

ちなみに、Google Books内の検索は、以下の様な設定ファイルを書いておくと便利です。これで、book-searchコマンドが使用できるようになります。

~/.zshrc
# 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(小技)を紹介してみたいと思います。

/path/google-time

#!/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}"
}

また、使用する期間が限られている場合は、以下のような設定ファイルを書いておいたほうが便利かもしれません。

~/.zshrc
# 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とは、zshvimでいう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-gC-cです。

ここで、例えば、Historyをよく使うという場合は、専用のkeyを設定しておくと便利です。この設定でC-g,C-hを押すとzaw-historyが起動します。

~/zaw/zaw.zsh
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を作り、zshexec $SHELLで再起動します。

~/zaw/sources/gitdir.zsh
#
# 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

/usr/local/bin/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ファイルを作って、ホームフォルダに置きます。ただし、このようなパスワード保存はセキュリティ上重大な欠陥があるため、独自に工夫を施すことをおすすめします。

~/.netrc

machine         nicovideo
login           ユーザー名(メールアドレス)
password        パスワード

ニコニコ動画のマイリストを一括ダウンロードする

nicomylist-dl <マイリストURL>

nicomylist-dl <マイリストURL>とすることで、~/Music/mylist/にファイルが保存されます。既に同名のファイルが存在する場合やエラーが出た場合は、スキップしてダウンロードが続行されます。

なお、ダウンロードする際は、~/Music/mylist/にあるHTMLTXTファイルは削除されますので注意してください。

シェルスクリプトを使いたくない場合

上のようなシェルスクリプトを使いたくない場合は、以下のように~/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/に保存されます。

w3n

#!/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には、ノーマルモードとインサートモードというものがあります。特に、文章を書く場合、インサートモードで日本語入力を行うことが多いかと思いますが、ノーマルモードでは、日本語入力を止めて、IMEOFFにする場合が多いかと思います。このような事情があるため、初期設定では、インサートモードからノーマルモードに移行する際や移行した後、頻繁に っj:あ などといったことが起こります。よって、ここではこのような間違いを少しでも減らすべく便利な設定などを紹介していけたらと思います。

KeyRemap4MacBook

KeyRemap4MacBookを使用すると、MacのVimIMEを自動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>
~/.vimrc
" 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欲しいです。本を読むには色々と便利そう。次回は、ophcrackaircrack-ngwiresharkなどの使い方を紹介していきたいと考えています。よろしくお願いします。

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

44
45
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
45