SlideShare a Scribd company logo
1 of 48
Download to read offline
DevLOVE
ターミナル勉強会
            26 Mar. 2012
            さとうようぞう
   Twitter: @yoozoosato
謝辞

会場をご提供いただきました、日本オラクル様。
どうもありがとうございます。


お集まり頂きましたみなさま、ありがとうございます。


企画・運営に関わっていただいたDevLOVEの皆様。
いつも感謝しています。
#hashtag
•  今日の勉強会のハッシュタグ
 #devlove0326
 #devlove
自己紹介
devlove% echo $NAME
devlove% SATO Yozo
devlove% echo $TWITTER_ID
devlove% @yoozoosato
devlove% echo $MAIL
devlove% yoozoosato@gmail.com


0 zsh !
2012/03/26
devlove% echo $JOB
devlove% 某ISP




0 zsh !
2012/03/26
devlove% disclaimer
このプレゼンテーションでは皆さんに
ターミナルにもっと馴染んでもらうため、
コマンドやそのオプションをたくさん紹
介します。ターミナルを hack するよう
な話はあまりありません。!
また、さとうようぞうが所属ないし関係
する組織の公式な意見・見解を反映した
ものではありません。
0 zsh !
2012/03/26
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!

More Related Content

What's hot

シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門icchy
 
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
OpenSSH User EnumerationTime-Based Attack と Python-paramikoOpenSSH User EnumerationTime-Based Attack と Python-paramiko
OpenSSH User EnumerationTime-Based Attack と Python-paramiko(^-^) togakushi
 
FreeBSDでおうちのルーター
FreeBSDでおうちのルーターFreeBSDでおうちのルーター
FreeBSDでおうちのルーターhoo0005
 
Custom Package Building with Poudriere
Custom Package Building with PoudriereCustom Package Building with Poudriere
Custom Package Building with PoudriereYuichiro Naito
 
シェルスクリプトを極める
シェルスクリプトを極めるシェルスクリプトを極める
シェルスクリプトを極めるbsdhack
 
Jailが起動しないので調査してみた
Jailが起動しないので調査してみたJailが起動しないので調査してみた
Jailが起動しないので調査してみたToshinori Hayashi
 
ssh_configのススメ
ssh_configのススメssh_configのススメ
ssh_configのススメHisaharu Ishii
 
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみるRaspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみるKenichiro MATOHARA
 
TensorFlowの導入
TensorFlowの導入TensorFlowの導入
TensorFlowの導入yuf yufkky
 
hpingで作るパケット
hpingで作るパケットhpingで作るパケット
hpingで作るパケットTakaaki Hoyo
 
2011年10月7日
2011年10月7日2011年10月7日
2011年10月7日nukaemon
 
【メモ】一般的に設計書に定義される項目例
【メモ】一般的に設計書に定義される項目例【メモ】一般的に設計書に定義される項目例
【メモ】一般的に設計書に定義される項目例Hirokazu Yatsunami
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo LinuxについてTakuto Matsuu
 

What's hot (20)

Janog33.5
Janog33.5Janog33.5
Janog33.5
 
シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門
 
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
OpenSSH User EnumerationTime-Based Attack と Python-paramikoOpenSSH User EnumerationTime-Based Attack と Python-paramiko
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
 
FreeBSDでおうちのルーター
FreeBSDでおうちのルーターFreeBSDでおうちのルーター
FreeBSDでおうちのルーター
 
Custom Package Building with Poudriere
Custom Package Building with PoudriereCustom Package Building with Poudriere
Custom Package Building with Poudriere
 
シェルスクリプトを極める
シェルスクリプトを極めるシェルスクリプトを極める
シェルスクリプトを極める
 
SSH力をつけよう
SSH力をつけようSSH力をつけよう
SSH力をつけよう
 
Jailが起動しないので調査してみた
Jailが起動しないので調査してみたJailが起動しないので調査してみた
Jailが起動しないので調査してみた
 
about Tcpreplay
about Tcpreplayabout Tcpreplay
about Tcpreplay
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
ssh_configのススメ
ssh_configのススメssh_configのススメ
ssh_configのススメ
 
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみるRaspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみる
 
TensorFlowの導入
TensorFlowの導入TensorFlowの導入
TensorFlowの導入
 
Maatkitの紹介
Maatkitの紹介Maatkitの紹介
Maatkitの紹介
 
Linux Namespace
Linux NamespaceLinux Namespace
Linux Namespace
 
hpingで作るパケット
hpingで作るパケットhpingで作るパケット
hpingで作るパケット
 
fluentd
fluentdfluentd
fluentd
 
2011年10月7日
2011年10月7日2011年10月7日
2011年10月7日
 
【メモ】一般的に設計書に定義される項目例
【メモ】一般的に設計書に定義される項目例【メモ】一般的に設計書に定義される項目例
【メモ】一般的に設計書に定義される項目例
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
 

Similar to 誰得コマンド&オプション35連発

NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入Takeru Nakazato
 
NPCA夏合宿 2014 講義資料
NPCA夏合宿 2014 講義資料NPCA夏合宿 2014 講義資料
NPCA夏合宿 2014 講義資料Hiromu Yakura
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Hiro Yoshioka
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめMakiko Konoshima
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, CodereadingHiro Yoshioka
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作Yuki Okamoto
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作アシアル株式会社
 
Docker handson
Docker handsonDocker handson
Docker handsonkoda3
 
Mtddc kyusyu-lightningtalks
Mtddc kyusyu-lightningtalksMtddc kyusyu-lightningtalks
Mtddc kyusyu-lightningtalksYuji Takayama
 
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようこれからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようNobuyuki Sasaki
 
いまさら聞けないRake入門
いまさら聞けないRake入門いまさら聞けないRake入門
いまさら聞けないRake入門Tomoya Kawanishi
 
Unix 基礎
Unix 基礎Unix 基礎
Unix 基礎Sho A
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座Masahito Zembutsu
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code readingHiro Yoshioka
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみようMasahiko Hashimoto
 
とあるDBAの黒い画面(ターミナル)
とあるDBAの黒い画面(ターミナル)とあるDBAの黒い画面(ターミナル)
とあるDBAの黒い画面(ターミナル)Kazuhiro Yoshikawa
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例maebashi
 

Similar to 誰得コマンド&オプション35連発 (20)

NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入
 
NPCA夏合宿 2014 講義資料
NPCA夏合宿 2014 講義資料NPCA夏合宿 2014 講義資料
NPCA夏合宿 2014 講義資料
 
20170124 linux basic_1
20170124 linux basic_120170124 linux basic_1
20170124 linux basic_1
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
 
Docker handson
Docker handsonDocker handson
Docker handson
 
Mtddc kyusyu-lightningtalks
Mtddc kyusyu-lightningtalksMtddc kyusyu-lightningtalks
Mtddc kyusyu-lightningtalks
 
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようこれからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
 
いまさら聞けないRake入門
いまさら聞けないRake入門いまさら聞けないRake入門
いまさら聞けないRake入門
 
Unix 基礎
Unix 基礎Unix 基礎
Unix 基礎
 
Capistrano
CapistranoCapistrano
Capistrano
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code reading
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
 
とあるDBAの黒い画面(ターミナル)
とあるDBAの黒い画面(ターミナル)とあるDBAの黒い画面(ターミナル)
とあるDBAの黒い画面(ターミナル)
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
 
Mysql casial01
Mysql casial01Mysql casial01
Mysql casial01
 

More from Yozo SATO

So-net Hackathon 11
So-net Hackathon 11So-net Hackathon 11
So-net Hackathon 11Yozo SATO
 
20121017_アプリ制作勉強会@GMO Yours
20121017_アプリ制作勉強会@GMO Yours20121017_アプリ制作勉強会@GMO Yours
20121017_アプリ制作勉強会@GMO YoursYozo SATO
 
DevLOVE ターミナル勉強会 zsh + screen
DevLOVE ターミナル勉強会 zsh + screenDevLOVE ターミナル勉強会 zsh + screen
DevLOVE ターミナル勉強会 zsh + screenYozo SATO
 
Ltのススメ
LtのススメLtのススメ
LtのススメYozo SATO
 
DevLove 移行勉強会
DevLove 移行勉強会DevLove 移行勉強会
DevLove 移行勉強会Yozo SATO
 
いがいがとわたし
いがいがとわたしいがいがとわたし
いがいがとわたしYozo SATO
 
Emacsを無駄に使い倒す
Emacsを無駄に使い倒すEmacsを無駄に使い倒す
Emacsを無駄に使い倒すYozo SATO
 
Tech Seminar Timemap
Tech Seminar TimemapTech Seminar Timemap
Tech Seminar TimemapYozo SATO
 
20090221_metacon
20090221_metacon20090221_metacon
20090221_metaconYozo SATO
 

More from Yozo SATO (10)

So-net Hackathon 11
So-net Hackathon 11So-net Hackathon 11
So-net Hackathon 11
 
20121017_アプリ制作勉強会@GMO Yours
20121017_アプリ制作勉強会@GMO Yours20121017_アプリ制作勉強会@GMO Yours
20121017_アプリ制作勉強会@GMO Yours
 
DevLOVE ターミナル勉強会 zsh + screen
DevLOVE ターミナル勉強会 zsh + screenDevLOVE ターミナル勉強会 zsh + screen
DevLOVE ターミナル勉強会 zsh + screen
 
GLT vol.37
GLT vol.37GLT vol.37
GLT vol.37
 
Ltのススメ
LtのススメLtのススメ
Ltのススメ
 
DevLove 移行勉強会
DevLove 移行勉強会DevLove 移行勉強会
DevLove 移行勉強会
 
いがいがとわたし
いがいがとわたしいがいがとわたし
いがいがとわたし
 
Emacsを無駄に使い倒す
Emacsを無駄に使い倒すEmacsを無駄に使い倒す
Emacsを無駄に使い倒す
 
Tech Seminar Timemap
Tech Seminar TimemapTech Seminar Timemap
Tech Seminar Timemap
 
20090221_metacon
20090221_metacon20090221_metacon
20090221_metacon
 

誰得コマンド&オプション35連発

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