49
DevLOVE ターミナル勉強会 zsh + screen 12 Sep. 2011 さとうようぞう Twitter: @yoozoosato

DevLOVE ターミナル勉強会 zsh + screen

Tags:

Embed Size (px)

DESCRIPTION

2011年9月12日 DevLOVE ターミナル勉強会で発表した資料です。

Citation preview

Page 1: DevLOVE ターミナル勉強会 zsh + screen

DevLOVE ターミナル勉強会 zsh + screen

12 Sep. 2011 さとうようぞう

Twitter: @yoozoosato

Page 2: DevLOVE ターミナル勉強会 zsh + screen

謝辞

会場をご提供いただきました、日本オラクル様。 どうもありがとうございます。 お集まり頂きましたみなさま、ありがとうございます。 企画・運営に関わっていただいたDevLOVEの皆様。 いつも感謝しています。

Page 3: DevLOVE ターミナル勉強会 zsh + screen

#hashtag • 今日の勉強会のハッシュタグ

#devlove0912 #devlove

Page 4: DevLOVE ターミナル勉強会 zsh + screen

自己紹介

Page 5: DevLOVE ターミナル勉強会 zsh + screen

devlove% echo $NAME

0 zsh !2011/09/12

Page 6: DevLOVE ターミナル勉強会 zsh + screen

devlove% echo $NAME

0 zsh !2011/09/12

devlove% SATO Yozo

Page 7: DevLOVE ターミナル勉強会 zsh + screen

devlove% echo $NAME

0 zsh !2011/09/12

devlove% SATO Yozo devlove% echo $TWITTER_ID

Page 8: DevLOVE ターミナル勉強会 zsh + screen

devlove% echo $NAME

0 zsh !2011/09/12

devlove% SATO Yozo devlove% echo $TWITTER_ID devlove% @yoozoosato

Page 9: DevLOVE ターミナル勉強会 zsh + screen

devlove% echo $NAME

0 zsh !2011/09/12

devlove% SATO Yozo devlove% echo $TWITTER_ID devlove% @yoozoosato devlove% echo $MAIL

Page 10: DevLOVE ターミナル勉強会 zsh + screen

devlove% echo $NAME

0 zsh !2011/09/12

devlove% SATO Yozo devlove% echo $TWITTER_ID devlove% @yoozoosato devlove% echo $MAIL devlove% [email protected]

Page 11: DevLOVE ターミナル勉強会 zsh + screen

devlove% echo $JOB

0 zsh !2011/09/12

Page 12: DevLOVE ターミナル勉強会 zsh + screen

devlove% echo $JOB

0 zsh !2011/09/12

devlove% 某ISP

Page 13: DevLOVE ターミナル勉強会 zsh + screen

devlove% disclaimer

0 zsh !2011/09/12

Page 14: DevLOVE ターミナル勉強会 zsh + screen

devlove% disclaimer

0 zsh !2011/09/12

このプレゼンテーションは皆様に zsh と screen を「明日から」使ってもらうことを目的としています。単なる zsh と screen の紹介ですので hack するような話はあまりありません。!また、さとうようぞうが所属ないし関係する組織の公式な意見・見解を反映したものではありません。

Page 15: DevLOVE ターミナル勉強会 zsh + screen

1. 何故ターミナル(CUI)なのか 2. GNU screen との出会い 3. zsh との出会い 4. 使ってみよう 5. ターミナル勉強会 今後

Agenda

Page 16: DevLOVE ターミナル勉強会 zsh + screen

1. 何故ターミナル(CUI)なのか 2. GNU screen との出会い 3. zsh との出会い 4. 使ってみよう 5. ターミナル勉強会 今後

Agenda

Page 17: DevLOVE ターミナル勉強会 zsh + screen

「CUIは古典的で不便だが、GUIは直感的で操作性が良い」とステレオタイプで語られる事が多い

http://ja.wikipedia.org/wiki/キャラクタユーザインタフェース

Page 18: DevLOVE ターミナル勉強会 zsh + screen

GUIと比較してのメリット •  繰り返し作業に強い – ファイルコピー、移動などをミスらずに実行できる

•  作業履歴が残る .zhistory / .bash_history – 「記録」が残る、という意味で

•  他の人に作業内容を伝えやすい – 残した記録を活用できる

Page 19: DevLOVE ターミナル勉強会 zsh + screen

CUI ならではのメリット •  リモートに接続する時、転送量が少ないので軽い – 昔はPHSカード(56kbps)とかで通信してた

•  操作の全てをキーボードで実行可能 •  一画面に表示できる情報量が多い – アイコンとかないから – screen 分割とか Emacs で複数ウインドウ等

Page 20: DevLOVE ターミナル勉強会 zsh + screen

デメリット •  GUI と比較するととっつきにくい – command を知らないと操作できない – 黒字に白い文字だけの画面は古臭いw

•  Office 系のソフトなど、仕事で必須のアプリが使えなかったりする – CUI だけで生きていくのは無理と思う – 良い所どりして活用していくのがポイント?

Page 21: DevLOVE ターミナル勉強会 zsh + screen

Agenda 1. 何故ターミナル(CUI)なのか 2. GNU screen との出会い 3. zsh との出会い 4. 使ってみよう 5. ターミナル勉強会 今後

Page 22: DevLOVE ターミナル勉強会 zsh + screen

GNU screen とは?

Page 23: DevLOVE ターミナル勉強会 zsh + screen

いつ、どこで •  2003年頃 •  携帯コンテンツを作る会社で働いていた時 •  当時は PHS回線でリモートの Linux サーバーに接続したりとかしてた – 作業途中で接続が切れる – DBに接続してても切れる – バッチを走らせてても切れるw

•  隣に座っていた師匠に「 screen 使えばいいよ」と教えてもらった

Page 24: DevLOVE ターミナル勉強会 zsh + screen

覚えたこと •  接続が切れても screen –rd で戻れる •  同時に複数の仮想端末を操作できる •  ウインドウ間で文字列をコピペ可能 •  皆さん、ターミナル使うとこんな感じになっていませんか?

Page 25: DevLOVE ターミナル勉強会 zsh + screen
Page 26: DevLOVE ターミナル勉強会 zsh + screen
Page 27: DevLOVE ターミナル勉強会 zsh + screen

或は

Page 28: DevLOVE ターミナル勉強会 zsh + screen
Page 29: DevLOVE ターミナル勉強会 zsh + screen
Page 30: DevLOVE ターミナル勉強会 zsh + screen

勿 体無 い

Page 31: DevLOVE ターミナル勉強会 zsh + screen

screen ならこんな感じ

Page 32: DevLOVE ターミナル勉強会 zsh + screen

実演

Page 33: DevLOVE ターミナル勉強会 zsh + screen

切れても大丈夫

Page 34: DevLOVE ターミナル勉強会 zsh + screen

Agenda 1. 何故ターミナル(CUI)なのか 2. GNU screen との出会い 3. zsh との出会い 4. 使ってみよう 5. ターミナル勉強会 今後

Page 35: DevLOVE ターミナル勉強会 zsh + screen

いつ、どこで •  2ch のUNIX板にあった「連番のエロ画像を

DLするスレ」 – http://pc8.2ch.net/test/read.cgi/unix/979106537/!

– dat落ちしてるので、Pt.4をどうぞ

•  これを読んで感銘を受けたw – http://www.gentei.org/~yuuji/rec/pc/intro-zsh.html!

Page 36: DevLOVE ターミナル勉強会 zsh + screen

覚えたこと (1) •  連番エロ画像の一括取得は zsh で解決

wget \http://example.com/ero{01..99}.jpg!

•  bash だと例えば・・・ for i in `seq -w 01 99`;! do wget \! http://example.com/ero$i.jpg;!done

Page 37: DevLOVE ターミナル勉強会 zsh + screen

エロは技術の原動力

Page 38: DevLOVE ターミナル勉強会 zsh + screen

実演 •  けしからんサイトの画像40枚を wget

Page 39: DevLOVE ターミナル勉強会 zsh + screen

覚えたこと (2) •  右側プロンプトが超絶便利 – pwdとか打たなくなった

•  コマンドラインスタックが便利で萌え死ねる – Esc - q で入力途中のコマンドがスタック – 他のコマンドを打って、それが終わると元通り!

– スタックの詳細は次のセッションで!

Page 40: DevLOVE ターミナル勉強会 zsh + screen

Agenda 1. 何故ターミナル(CUI)なのか 2. GNU screen との出会い 3. zsh との出会い 4. 使ってみよう 5. ターミナル勉強会 今後

Page 41: DevLOVE ターミナル勉強会 zsh + screen

開発編:バージョン管理 •  例えば git の場合 – ブランチ名が表示される – 変更を加えたかどうかが分かる – (いずれも zsh の機能です)

Page 42: DevLOVE ターミナル勉強会 zsh + screen

screen をカスタマイズ •  色んな情報をターミナルに常時表示 – Load Average などのハードウェア情報 – Unit Test の結果(グリーン・レッド) •  http://somethingnew2.com/blog/archives/2010/01/tddbcruby.php!

– etc.. •  backtick – 任意のコマンドの出力を screen に表示できる

Page 43: DevLOVE ターミナル勉強会 zsh + screen

http://www.kanshin.com/keyword/476309

Page 44: DevLOVE ターミナル勉強会 zsh + screen

実演

Page 45: DevLOVE ターミナル勉強会 zsh + screen

Agenda 1. 何故ターミナル(CUI)なのか 2. GNU screen との出会い 3. zsh との出会い 4. 使ってみよう 5. ターミナル勉強会 今後

Page 46: DevLOVE ターミナル勉強会 zsh + screen

第2回もやります。多分。 •  LLでWEB系をやっていると、ターミナルは避けて通れない

•  LL系WEB開発 三種の神器 1.  Editor •  vim / emacs / JEdit / 秀丸 etc.

2.  Browser 1.  Chrome / Firefox / Safari / w3m etc.

3.  Terminal •  Terminal.app / iTerm / TeraTerm / DOS窓

Page 47: DevLOVE ターミナル勉強会 zsh + screen

例えば・・・ •  SSHについて – ~/.ssh/config をいじって多段SSH & トンネル

•  tcsh の良い所も聞いてみたい •  「grep 楽しいです、 grep」 •  たまには awk とか sed も思い出してあげて下さい

Page 48: DevLOVE ターミナル勉強会 zsh + screen

ネタは随時募集しています

• twitter で @yoozoosato 宛につぶやいてみる • twitter でハッシュタグ #devlove を付けて「こんなのやりたい/聞きたい」とリクエスト

Page 49: DevLOVE ターミナル勉強会 zsh + screen

Thank you!