誰得コマンド&オプション35連発
DESCRIPTION
DevLOVE ターミナル勉強会の発表資料です。TRANSCRIPT
DevLOVE ターミナル勉強会
26 Mar. 2012 さとうようぞう
Twitter: @yoozoosato
謝辞
会場をご提供いただきました、日本オラクル様。 どうもありがとうございます。 お集まり頂きましたみなさま、ありがとうございます。 企画・運営に関わっていただいたDevLOVEの皆様。 いつも感謝しています。
#hashtag • 今日の勉強会のハッシュタグ
#devlove0326 #devlove
自己紹介
devlove% echo $NAME
0 zsh !2012/03/26
devlove% SATO Yozo devlove% echo $TWITTER_ID devlove% @yoozoosato devlove% echo $MAIL devlove% [email protected]
devlove% echo $JOB
0 zsh !2012/03/26
devlove% 某ISP
devlove% disclaimer
0 zsh !2012/03/26
このプレゼンテーションでは皆さんにターミナルにもっと馴染んでもらうため、コマンドやそのオプションをたくさん紹介します。ターミナルを hack するような話はあまりありません。!また、さとうようぞうが所属ないし関係する組織の公式な意見・見解を反映したものではありません。
Agenda
誰得コマンド &
オプション 35連発
• 今から 1個/1min 未満で紹介 • 一応 ~/.zhistory を漁って、使わなそうなものを中心に
• 明日の仕事で役に立たない • (70人居て30個紹介できれば、1個くらいは・・・)
• それじゃあんまりなんで、役立ちそうなのも適当に混ぜた
• 基本、全部 man に書いてある • MacOS X Snow Leopard で動作確認
01: nl NAME
nl -- line numbering filter
• 行番号を表示してくれるだけです • less –N でいいんじゃね? • エディタで行番号分かるし
02: less -N NAME
less - opposite of more
• -N オプションを付けると行番号を表示してくれます
03: less; F NAME
less - opposite of more
• less 実行中に F (Shift + f) を押すと、 tail –f しているのと同じことになります
• 検索結果をハイライトしたまま動かせるのが便利
04: less; v NAME
less - opposite of more
• less 実行中に v を押すと、環境変数 $EDITOR に設定されているエディタでドキュメントを開ける
05: df NAME
df -- display free disk space
• ディスクの残り容量を見るときに使う
06: df -h NAME
df -- display free disk space
• デフォルト表示はちょっと見難い。 • -h (human readable)をつけるとメガバイトやギガバイト単位で表示してくれるので見やすい
07: df -l NAME
df -- display free disk space
• ローカルにマウントされているディスクのみを表示
• S3とかを /mnt に置いている場合、そういうのを除外してくれる
08: ps -w NAME
ps -- process status
• ps aux → ps auxw とかすると、横幅が132文字になる(長くなる)
• ps auxww とかすると、もっと長くなる
09: wget --random-wait NAME
wget - The non-interactive network downloader.
• -r オプションで全部取得する時など • --waitで指定した秒数に 1 ~ 1.5 くらいの乱数を掛けてくれる
• 待ち時間にばらつきを持たせられる
10: wget –-spider NAME
wget - The non-interactive network downloader.
• ファイルを保存しない • -S オプションと組み合わせることで、ヘッダだけ確認したい時に使える
11: tcpflow NAME
tcpflow - TCP flow recorder
• パケットモニタリングツール • tcpdump よりこっちの方が便利 • Wireshark 使っちゃうので利用頻度低
12: cd - NAME
cd - change the working directory
• cd – はこれをやるのと同じ – cd "$OLDPWD" && pwd
• 個人的にディレクトリ移動は(タブによる補完を駆使して)一発でやるのが好き
• .zshrc で setopt auto_pushd しとけばもっと幸せになれる
13: ls -lh NAME
ls - list directory contents
• キロバイト、メガバイト、ギガバイト 単位で表示してくれる
14: ls -lT NAME
ls - list directory contents
• 詳細なタイムスタンプを表示 • 秒、年などが出る
15: ls -lt NAME
ls - list directory contents
• 更新時間が新しいファイル順にソートして表示
16: head NAME
head -- diplay first lines of a file
• そのまま使う事はほとんどないはず • 他のコマンドから | で渡してもらうと便利
• 例: ls –lt | head –n 10
17: open -R NAME
open -- open files and directories
• 開かないで、Finder に表示するだけ • ディレクトリを指定した場合は、内包するディレクトリを Finder で表示
18: open -g NAME
open -- open files and directories
• 起動したアプリケーションをフォアグラウンドにしない
• 作業をそのままシェルで続行できる
19: sed -i NAME
sed -- stream editor
• ファイルの内容を直接いじれる • バックアップをとっておけるので、拡張子を指定すればいい
20: cp -p NAME
cp -- copy files
• コピー時にファイルの属性を保持する • 証拠保全などの目的でファイルのコピーを取る場合は cp で取るよりも cp -p で取ったほうがいい
21: file -I NAME
file -- determine file type
• MIMEタイプを教えてくれる • こんなオプションもある – --mime-type – --mime-encoding
22: tar -p NAME
tar -- manipulate tape archives
• preserve file permissions • 展開時に元のパーミッションを保持する
23: tar -j NAME
tar -- manipulate tape archives
• 圧縮に bzip2 を使う
24: fc
• 直前のコマンドを、環境変数 EDITOR で指定したエディタで編集 & 実行できる
• ./configure –-with-emacs=.. \ --lisp-dir=.. \ みたいに複数行のを打ちなおすとき便利
25: zcat NAME
gzip, gunzip, zcat - compress or expand files
• gzip 圧縮されたファイルの中身を表示 • いちいち展開しなくても大丈夫
26: zgrep NAME
zgrep - search possibly compressed files for a regular expression
• gzip 圧縮されたファイルを対象に grep 実行
• 圧縮されたアクセスログとかを展開せずに grep できる
27: bzcat NAME
bzcat - decompresses files to stdout
• bz2 圧縮されたファイルの中身を表示
28: bzgrep NAME
bzgrep, bzfgrep, bzegrep - search possibly bzip2 compressed files for a regular expression • bzip2 圧縮されたファイルを対象に grep 実行
• 圧縮されたアクセスログとかを展開せずに grep できる
29: wc NAME
wc -- word, line, character, and byte count
• ファイルに含まれる単語数をカウント • -l は標準出力に出たモノを数えるのに便利 – ps auxw | grep ‘hoge’ | wc -l
30: cal -y NAME
cal, ncal -- displays a calendar and the date of easter
• 指定した年のカレンダーを表示
31: chown NAME
chown -- change file owner and group
• 名前とグループは : 区切りで一括指定できるよ
• . 区切りでも行けるよ
32: su - NAME
su -- substitute user identity
• - を付けないと、自分の環境変数を引きずる
33: gtags NAME
gtags - create tag files for global.
• ソースコードにタグをつけてくれる • この「タグ」を使って emacs でコードジャンプなどが可能に
• 参照元検索、定義にジャンプなど
34: screen; :kanji NAME
screen - screen manager with VT100/ANSI terminal emulation
• 当該スクリーンで表示する文字コードを変更できる
• 標準出力に EUC-JP なものが返ってきた時など
35: nmap NAME
nmap - Network exploration tool and security / port scanner
• ポートスキャナ
第3回もやります。多分。 • LLでWEB系をやっていると、ターミナルは避けて通れない
• LL系WEB開発 三種の神器 1. Editor • vim / emacs / Textmate / 秀丸 etc.
2. Browser 1. Chrome / Firefox / Safari / w3m etc.
3. Terminal • Terminal.app / iTerm / TeraTerm / DOS窓
ネタは随時募集しています
• twitter で @yoozoosato 宛につぶやいてみる • twitter でハッシュタグ #devlove を付けて「こんなのやりたい/聞きたい」とリクエスト
Thank you!