#はじめに
Command Line
(コマンドライン)で使用しているTool
(ツール)を簡単にではありますが、まとめてみようと思います。前回の続きです。私が知らない便利ツールはまだまだたくさんありますので、ここに掲載されているもの以外で便利なものがあれば、ぜひ教えてください。
この記事に貼り付けてあるリンクは、キーワードに関連する適切な場所へと誘導してくれます。非常に有効なので、ぜひ参照してみてください。
また、私は基本的にパソコンのことは何もわかっていないので、記事内には誤りを含む可能性があります。よって、できる限り自分の環境を把握した上で、適時読み換えてもらえればと思います。特に、設定ファイルの場所については気をつけてください。また、Git
やHomebrew
、MacPort
の導入説明などは省略していますので、注意が必要です。
また、pip
コマンドの導入方法などの前回紹介したと思う解説は、省略していきます。
#zsh
##zshのコマンドラインスタックを便利に使う
zshには、一時的にコマンドを退避させておく機能があります。以下のようにすることで、C-q
で退避したコマンドを表示した上で、コマンドを退避できます。
# C-qでコマンドラインスタックを実行する。さらに、退避されたコマンドの表示を行う。
# http://d.hatena.ne.jp/kei_q/20110308/1299594629
# http://qiita.com/items/1f2c7793944b1f6cc346
show_buffer_stack() {
POSTDISPLAY="
stack: $LBUFFER"
zle push-line-or-edit
}
zle -N show_buffer_stack
setopt noflowcontrol
bindkey '^Q' show_buffer_stack
上の説明では、少し分かりにくいですね。よって、具体的な事案で考えてみましょう。
例えば、"特定のフォルダにファイルをコピーしようとするが、ここで、フォルダが存在しないことに気づく"という事案の場合。
$ cp miku.mp3 ~/Download/Chrome/App/Media //…この時点フォルダがないことに気づく
[C-q] //…コマンドラインスタックを実行
$ mkdir -p ~/Download/Chrome/App/Media //…フォルダを作成するコマンドを実行
$ cp miku.mp3 ~/Download/Chrome/App/Media //…自動で退避したコマンドが現れる
コマンドラインスタックは、こんな感じで使えます。
##表示されているコマンドをクリップボードに記録する
表示されているコマンドをクリップボードに記録したい場合は、以下の様な設定ファイルが有効です。これで、C-x
,C-p
を押すことで、表示されいてるコマンドをクリップボードに記録することができます。
# http://d.hatena.ne.jp/hiboma/20120315/1331821642
pbcopy-buffer(){
print -rn $BUFFER | pbcopy
zle -M "pbcopy: ${BUFFER}"
}
zle -N pbcopy-buffer
bindkey '^x^p' pbcopy-buffer
##zmv
zshでは、ファイルの移動は、以下の様な一括処理ができますが、一括リネームは、結構面倒なので、zawを使います。
mv *.{flv,mp4,swf} ~/Movie
# フォルダ内にある.mp3を.mp4にする
zmv -W '*.mp3' '*.mp4'
そして、以下の様な設定を書いておくと、シングルクォートなどを省略できて便利です。
autoload -Uz zmv
alias zmv='noglob zmv -W'
#atool
atoolとは、圧縮ファイルなどのファイルを拡張子から判断して解凍したりするツールの詰め合わせです。インストールと使い方は、以下のようになります。様々な拡張子が混在する圧縮ファイルの解凍コマンドが頭に入っていないし、覚える気にもならないという人におすすめです。私です。
##atoolのインストール
sudo port install atool
##atoolの使い方
# 解凍
anupack hoge.tar.gz
# 圧縮
apack moge.tar.bz2 moge
# アーカイブの中身の確認
als hogemoge.tar.gz
今までatool
を使用してなくて、特別に設定ファイルを書いていた人は、以下のようにすると簡単でよいかもです。
alias -s {gz,tgz,zip,lzh,bz2,tbz,Z,tar,arj,xz}=aunpack
#pyful
pyfulとは、Pythonで書かれたファイラーのことです。私は、ちょっと面倒なファイル操作は、大概VimFiler
で済ましてしまうことが多いのですが、長時間に渡りファイル操作する場合は、pyful
を使用することがあります。ちなみに、pyful
はとても多機能でファイラー以外にも使えますので、とても便利です。
##pyfulのインストール
sudo pip install pyful
##pyfulの使い方
こちらに非常に詳しく書かれていますので、解説は不要だと思いますが、個人的によく使うものを簡単に説明します。
Q //終了
h //コマンドライン
M-RET //新しいディレクトリ画面を作成
M-C, C-w //現在のディレクトリ画面を削除
<end> //すべてのファイルをマークトグル
* //正規表現にマッチしたファイルをマーク
f, / //インクリメンタルサーチを開始
R //正規表現によるファイル名の一括置換
M-? //すべてのヘルプを表示
M-i //アクションボックスを起動
M-m //マクロを展開
M-y //クリップボードモードを起動
##pyfulの設定ファイル
pyfulを使いこなすには、設定ファイルのカスタマイズが大切です。
###pyful > 外部コマンドの実行をtmuxに対応させる
# Set screen command and arguments.
# https://github.com/anmitsu/pyful/wiki/tips
# {TITLE} is replaced to window title in screen.
# {COMMAND} is replaced to a command in screen.
import os
if os.getenv("TMUX"):
# For tmux:
pyful.process.Process.screen_command = ("tmux", "neww", "-n", "{TITLE}", "{COMMAND}")
else:
# For GNU Screen:
pyful.process.Process.screen_command = ("screen", "-t", "{TITLE}", "bash", "-c", "{COMMAND}")
###pyful > ブックマークメニューを表示する
menu.items["bookmark"] = (
("/(u)sr" , "u", lambda: filer.dir.chdir("/usr")),
("/(e)tc" , "e", lambda: filer.dir.chdir("/etc")),
)
###pyful > クリップボードを操作する
# カーソル下のファイル名をクリップボードへ設定
echo -n %f | xsel -b
# カーソル下のファイルの絶対パスをクリップボードへ設定
echo -n %F | xsel -b
# マークされているファイル内容をクリップボードへ設定
cat %m | xsel -b
下のようにすることで、N
キーなどで"カーソル下のファイルの絶対パスをクリップボードへ保存"できます。
# https://github.com/anmitsu/pyful/wiki/tips
menu.items["xsel"] = (
("name copy" , "n", lambda: process.spawn("%q echo -n %f | xsel -b")),
("absolute path copy" , "N", lambda: process.spawn("%q echo -n %F | xsel -b")),
("fileCopy" , "F", lambda: process.spawn("%q cat %m | xsel -b")),
)
#mc
ファイラーとしては、一時期mc
を使っていたことがありました。
F10
で終了です。他の操作方法も直感的に分かると思います。
#Nexus7
今回は、Nexus7
でCLIというテーマで書いてみようと思っています。
##Androidを消去し、Ubuntuをインストールする
Androidのデフォルトブートローダーには、ロックが掛かっていますので、ロックを解除する必要があります。ブートローダーアンロックすると、設定が初期化されますので注意が必要です(バックアップ要)。
ロックを解除するには、脆弱性をつき、権限を奪取するToolkitが必要になります。
sudo add-apt-repository ppa:ubuntu-nexus7/ubuntu-nexus7-installer
sudo apt-get update
sudo apt-get install ubuntu-nexus7-installer
Nexus7のボリュームダウンボタンと電源ボタンを同時に長押しすることでブートローダーが起動します。あとはUbuntu Nexus 7 Installerを起動し、ウィザードに従うだけです。この間、パソコンと端末は、USB接続しておきます。
##仮想環境にUBUNTUをインストールする
Android上でUbuntuを起動させる手順です。 Complete Linux Installerと Android Terminal Emulator、さらにVNC Client 例えば、 Android VNC Viewerをインストールします。
そして、Complete Linux Installerを使って、必要なファイルをダウンロードし、 LaunchからUbuntuを起動します。
後は、VNC ClientでVNC接続し、デスクトップを操作できます。
##ANDROIDでCLI
Term20121110.apkをダウンロードし、Gmailにでも添付し、インストールしましょう。
cd ~/Downloads/
w3m http://ux.getuploader.com/android_files/
mutt -n -F settings.txt -s "SUBJECT" hoge2@gmail.com -a Term20121110.apk < body.txt
必要な設定は、セキュリティ →「提供元不明のアプリ」にチェックを入れて、Android の Gmail アドレス宛に apk ファイルを添付したメールを送信し、開くだけです。
ストア以外から入手したapkファイルをAndroidにインストールする方法
##おすすめアプリ
CLIとは全く関係ないのですが、ついでにNexus7のおすすめアプリでも紹介してみたいと思います。
Vim Touch
このアプリは、AndroidでVimが使えるというものです。 こちらのサイトがNexus7を使っていく上で非常に分かりやすくていいですね。
Android Terminal Emulator
必須アプリですね。Androidはこういうアプリがあるのでいいですね。もちろん、iOSもrootをとれば、こういうアプリはあるんですけどね...。
Perfect Viewer
PDFプラグインも用意されているコミックビューワー。電子書籍を読むのに使用。
VLC for Android Beta
定番で多機能の動画プレイヤーです。
Google 日本語入力
他の入力支援アプリよりも適切な日本語を補完してくれます。
アストロファイルマネージャー
ファイルマネージャーはこれがベストです。今のところは。
Fing
定番になりつつあるネットワークスキャナ。
Olive Office Premium
Office関連の様々な拡張子に対応。
SketchBook Express for Tablets
高機能なお絵かきアプリ。
ジョルテ
カレンダー、スケジュール管理など。
Dropbox
ファイル共有でお馴染みDropbox。個人的には、設定ファイルをGithub経由ではなく、Dropboxで管理しているので、必須。
Pixlr Express
簡単にプロの仕上がりにできる写真編集アプリ。
#exFAT
MacとWindows間でファイル共有をしたい場合は、HDDのフォーマットは、exFAT
にするのがおすすめです。多分以下のようにすることで、フォーマットできると思います。Winキー
+R
を押し、cmd
と入力しましょう。コマンドプロンプトが起動します。
#DドライブをexFATでフォーマットする
convert D:/fs:exfat
ちなみに、LinuxでexFAT
でフォーマットしたHDDを認識させる場合、以下のようにしますUbuntuの場合
$ sudo add-apt-repository ppa:relan/exfat
$ sudo aptitude update
$ sudo aptitude upgrade
$ sudo aptitude install fuse-exfat
ちなみに、古いパソコンの場合は(XPなど)、特別にパッケージをダウンロード、インストールすると、フォーマットできるようになると思います。
今回は、ここまでです。前回予告したツールが紹介できなくて残念です。スクリーンショットを撮影する機会があれば、紹介すると思います。よろしくお願いします。
Command Line で使用しているツールまとめ vol.1
Command Line で使用しているツールまとめ vol.2