気分転換に、普段からLinuxで作業する上で割と便利なツールだったり小技を共有します。知ってたらごめんね
一応全部MacでもLinuxでも動くはずです。
高速化系
axel , aria2c
http://qiita.com/sarumonera/items/2b30999d7d41a4747d74
https://goo.gl/gsFrCT
https://wiki.archlinuxjp.org/index.php/Aria2
http://qiita.com/TokyoMickey/items/cb51805a19dcee416151
こいつらは割と有名(?)かなと思います。やってることはcurlやwgetとほとんど変わらず、サーバにHTTPリクエストを送ってレスポンスを取ってくるだけなのですが、ダウンロードを高速化するためにtcpコネクションを何本も貼って、相手サーバーに負担をかけながら分割ダウンロードしてます。
もちろん物理的な回線速度は超えませんが、逆に回線を独占して素早くダウンロードができます。他の人が繋げるコネクションつかっちゃうの道徳的にどうなのよ?という話もあるので僕は緊急時や時間がない時、あと自分の鯖だったりの時に「インターネットユーザーのみなさんごめんなさい」と心の中で懺悔しながら使ってます。
くれぐれも悪用は避けたほうがいいです。あと鯖によってはコネクション多すぎるとFWとかWAFでアクセス制限かかるかも。
apt-fast
これはapt-getやapt、aptitudeのダウンロード部分を上で説明したaria2cを使って、パッケージを爆速ダウンロードできるラッパーみたいなものです。デフォルトだと人に迷惑をかけないくらいのコネクション数に抑えられているので常用してもいいかと思います。インストール時に内部でaptかapt-getかaptitudeのどれを使うか尋ねられるので、問題がなければaptを使うといいです。
pigz pixz pbzip2
http://qiita.com/itukizora/items/10a9e7fffff857de374b
http://yagays.github.io/blog/2012/06/15/pigz/
https://www.submit.ne.jp/1500
これは、圧縮ファイルの展開や圧縮処理をマルチスレッド化するものです。デフォでlinuxなどに入ってるgzipとかはシングルでしか動作しないので、これ使うと体感時間が数倍早くなってオヌヌメです。
ちなみにtarにオプションをつけることで、tarでいつもどうりに展開・圧縮するときにも使えます。
$ tar xf ファイル名 --use-compress-prog=pigz
$ tar Jcf ファイル名 --use-compress-prog=pixz
$ tar jf ファイル名 --use-compress-prog=pibzip2
ちなみにtarコマンドの引数は
xがextractで展開、cがcompressで圧縮、vがverboseで冗長な出力、zがgz、Jがxz、jがbzip2
です。あと展開の時にはzJjはいらないです。
また、自分の場合はzshrcに関数登録しちゃってます。
function targz(){tar xvf $@ --use-compress-prog=pigz }
function tarxz(){tar xvf $@ --use-compress-prog=pixz }
function tarbzip2(){tar xvf $@ --use-compress-prog=pbzip2 }
なんでalias使わないかっていうと、--useなんちゃらがファイル名の後にこないとエラー吐かれるからです。
CUI便利系
w3m
http://qh73xebitbucketorg.readthedocs.io/ja/latest/2.Tools/w3m/main/
http://news.mynavi.jp/articles/2013/07/09/w3m/
有名なテキストブラウザですね。似たものにlynxやelinksがあります。
CUIで動作するwebブラウザです。jsとcssは動作しないにしろ、サーバの中で作業するぶんには全然問題ないです。
また、w3m-imgってのがあって、libsixelを使って対応しているターミナルビュワーならターミナル状で画像を表示させる荒技が使えます。CUIやべぇ。それに対応していなくても枠なしウィンドウをターミナルに重ねて無理やり画像表示できます。まじやべえ。
他にもsixel使ってターミナルで画像表示する系は色々とある。
http://qiita.com/arakiken/items/3e4bc9a6e43af0198e46
mdr
これは、markdownをCUIで表示させるものです。表とかもいい感じに表示してくれます(でも2幅文字はずれる)。ブラウザ開くまでもなくREADME.mdとか見るのに便利。特に表。
jq
http://qiita.com/takeshinoda@github/items/2dec7a72930ec1f658af
これは、JSONをパースして表示してくれるツールです。phpのvar_dumpみたいな。
$ echo '{"name": "John Smith", "age": 33}' | jq .
{
"name": "John Smith",
"age": 33
}
$ echo '{"name": "John Smith", "age": 33}' | jq .name
"John Smith"
こんな感じに、ドットを区切りとして要素にアクセスできたり、また全体を綺麗に表示することができます。
fbterm jfbterm
https://wiki.archlinuxjp.org/index.php/Fbterm
http://www.itmedia.co.jp/enterprise/articles/0809/09/news011.html
これは鯖菅の間では有名かも。tty1とかの物理コンソールのCUIで2バイト文字表示したり、フォントサイズ調整したりするすごいやつ。CUIのときにカーネルが画面のデバドラと会話するのに使うfb(フレームバッファ)をフックして、なんちゃってGUIしてるみたい。とりあえず文字化けせずにCUIが使えるのは神。
設定の方法によっては物理コンソールのCUIで画像表示とか背景表紙とかできるらしい。
jfbtermは開発が終わってるのでfbtermの方がおすすめ。
フォントも指定できるので、一時期僕はこれで手書きフォントでサーバー運用してた(とてもみにくい)。
uim-fep & uim系変換ツール
http://snowfly.air-nifty.com/wiz/2010/05/uim-fepanthy-52.html
https://goo.gl/XCG5B4
これはマイナーかも。上のfbtermと組み合わせないとほとんど利点を感じられないかもだけど、こいつはすごい。
CUIで漢字変換とローマ字入力ができる。もはやIME。
uim-fepだけじゃ変換やローマ字入力ができないので、uim系の変換ツールを入れないといけない。
uim-anthyとかuim-mozcとか色々あるので好みに合わせて使ってください。
slack-tui
https://github.com/hikalium/slack-tui
これはCUI(TUI)でSlackができるツール。作者の方はSlack重すぎてきれそうで、重いのは多分GUIのせいだからだ!って思って作ったらしい。
cacaview , libcaca
http://oplern.hatenablog.com/entry/2016/05/19/002754
これは、CUI上でアスキーアート使って画像表示するやつ。原始的だけど本当にどこでも動くのでおすすめ。
ちなみにこいつについてくるlibcacaってのをmplayerとビルドするとCUIでアスキーアートで動画みれたりする…。
サーバーでごちうさがみれるぞ!やった!
mosh
googleが開発したudpでsshするやつ。認証部分はssh使う。
コネクション切れても勝手に復活するし強い。
tmux screen
こいつらはもう完全に有名。CUIでタブ表示や、それ以外にもでタッチしたり分割したりできるすごいやつ。
nethogs
グラフィカルに、今どのプロセスがどれくらいネットワーク帯域を食っているか確認できる。
powertop
電力消費量を確認できる。今の消費電力とか、どのプロセスが電池食ってるとかわかる。
tlp
CPU周波数やその他ハードの設定を、電池残量に合わせて調整できる。ノートPCのバッテリ少ない方は是非。
便利系コマンド
nohup
サーバでsshセッション切れてもコマンド続行させるやつ
trap
シェルスクのなかでCtrl-Cだったりのシグナルをキャッチして処理できる。
lsof
ファイルを今どのプロセスがつかってるかわかる。
他、名前だけ
neovim neobundele fish zplug git-worktree QUIC(SPDY) NixOS
まとめ
Linuxユーザーって割と変態が多いので、なにかしたいことがあったらもしかして?と思ったらいろいろと調べて見るといいと思います。そういうことに限ってだいたいあります。
ぜひ有効活用して見てください。