SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
第4回春爛漫シェル芸人撩乱	
  
     勉強会	
   USP友の会 上田 隆一
近況	
•  月曜、とあるサイトをリリース	
  
      –  (日曜の朝から作業。泊まり込み)	
  
      –  延期!でも明日も仕事だ!	
  


•  今朝は子供が while	
  sleep	
  1000	
  ;	
  do	
  嘔吐	
  ;	
  done	
  
   で病院へ連れて行った。	
  

      	
  
•  お察しください。	
  

2013/04/13	
            第4回春爛漫シェル芸芸人撩乱勉強会	
                          2
はじめに	

	
  

               なに!?	


2013/04/13	
   第4回春爛漫シェル芸芸人撩乱勉強会	
   3
東京にミサイルが来るらしい	




2013/04/13	
   第4回春爛漫シェル芸芸人撩乱勉強会	
   4
今、我々にできること	
	
  
	
  
	
  
  curlとシェル芸で無慈悲なパケット攻撃	
  
                          	
  
                          	
  
                                        (注意:ダメ絶対)	
  

 2013/04/13	
     第4回春爛漫シェル芸芸人撩乱勉強会	
              5
ということで本日は	
	
  
	
  

               シェル芸web編	
  
                  	
  
                                       やりませう。	




2013/04/13	
     第4回春爛漫シェル芸芸人撩乱勉強会	
        6
シェル芸とは?	
•  マウスも使わず、ソースコードも残さず、	
  
   GUIツールを立ち上げる間もなく、	
  
   あらゆる調査・計算・テキスト処理を	
  
   コマンド入力一撃で終わらす。	
  

     –  最近、一般名詞化	
  
        してきた	
  




                          海外のシェル芸勉強会の様子(再掲)	
2013/04/13	
      第4回春爛漫シェル芸芸人撩乱勉強会	
           7
今回の内容	
•  ウェブ関連の9問を準備	
  
      –  ポイント	
  
               •  表向き:webからの情報収集	
  
               •  裏のテーマ:不定形文章の処理(こっちが大事)	
  


•  ちょっと難しめ	
  
      –  玄人が1人混入した2,	
  3人のグループを	
  
         作ってください。	
  


2013/04/13	
           第4回春爛漫シェル芸芸人撩乱勉強会	
     8
注意	
•  解答例は	
  Mac	
  で作成	
  
•  *Linux	
  の人は	
  gawk,	
  gsedを適宜 awk,	
  sedに読み替えのこと	
  
•  その他環境でも、解答例にこだわらずネット等を	
  
   調べながら解答願います。	
  

•  解答では、例題が解ければよい。	
  
      –  一般解を探すのは、場合によっては悪い癖となる。	
  




2013/04/13	
         第4回春爛漫シェル芸芸人撩乱勉強会	
                       9
問題1:	
  肩ならし	
•  次のファイルから、「index.cgi」を	
  
   除去して出力してください。	
  
      –  ただし、p=index.cgiは残すこと。	




2013/04/13	
     第4回春爛漫シェル芸芸人撩乱勉強会	
   10
解答	
•  $	
  cat	
  2.html	
  |	
  sed	
  's/index.cgi//'	
  
•  $	
  cat	
  2.html	
  |	
  awk	
  '{sub(/index.cgi/,"",$0);print}'	
  




2013/04/13	
               第4回春爛漫シェル芸芸人撩乱勉強会	
                               11
問題2:	
  urlのリスティング	
•  次のファイルを作って、urlを抜き出してください。	




2013/04/13	
        第4回春爛漫シェル芸芸人撩乱勉強会	
   12
解答	
•  $	
  cat	
  1.html	
  |	
  grep	
  'href='	
  |	
  sed	
  's/^.*href="(..*)".*$/1/'	
  |	
  
   grep	
  -­‐v	
  "^#"	
  |	
  sed	
  's/"[^"].*//'	
  
•  $	
  cat	
  1.html	
  |	
  grep	
  "href="	
  |	
  grep	
  -­‐v	
  'href="#'	
  |	
  sed	
  's/[^"]*"//'	
  
   |	
  sed	
  's/".*$//'	
  




2013/04/13	
                          第4回春爛漫シェル芸芸人撩乱勉強会	
                                                   13
問題3:	
  整形	
•  インデントの汚いhtmlを整形してください	
  
      –  一行にtd一個にすること	




2013/04/13	
   第4回春爛漫シェル芸芸人撩乱勉強会	
   14
解答	
•  $	
  cat	
  3.html	
  |	
  gsed	
  's;</td>;&n;g'	
  |	
  gsed	
  
   's;<td>;tt&;'	
  |	
  grep	
  -­‐v	
  "^$"	




2013/04/13	
               第4回春爛漫シェル芸芸人撩乱勉強会	
                           15
問題4:	
  webページの切り取り	
•  yahooさんのトップページからトピックスの	
  
   見出しを抽出しましょう	




2013/04/13	
   第4回春爛漫シェル芸芸人撩乱勉強会	
   16
解答	
•  まずcurl	
  
      –  $	
  curl	
  h^p://www.yahoo.co.jp	
  >	
  yahoo.html	
  


•  処理(内容を見ながら)	
  
      –  $	
  cat	
  yahoo.html	
  |	
  gsed	
  's;</[^/][^/]*>;&n;g'	
  |	
  grep	
  
         top_table	
  |	
  grep	
  '・<a'	
  |	
  sed	
  's;</a>;;'	
  |	
  sed	
  's/..*>//'	
  


•  一行で書いてもそんなに長くはない	
  
      –  $	
  curl	
  h^p://www.yahoo.co.jp	
  |	
  gsed	
  's;</[^/][^/]*>;&n;g'	
  
         |	
  grep	
  top_table	
  |	
  grep	
  '・<a'	
  |	
  sed	
  's;</a>;;'	
  |	
  sed	
  's/..*>//'	
  

2013/04/13	
                         第4回春爛漫シェル芸芸人撩乱勉強会	
                                                  17
問題5:	
  数値参照の変換	
•  次のような数値参照、実体参照文字列を	
  
   読めるように変換してください。	




2013/04/13	
       第4回春爛漫シェル芸芸人撩乱勉強会	
   18
解答	
•  $	
  cat	
  numref	
  |	
  nkf	
  -­‐-­‐numchar-­‐input	
•  $	
  cat	
  numref	
  |	
  w3m	
  -­‐T	
  text/html	
  -­‐dump	
  
我々はシェル芸人だ。	
  
	
  




2013/04/13	
               第4回春爛漫シェル芸芸人撩乱勉強会	
                          19
問題6:	
  ポスト	
•  h^p://www.usptomo.com/TOMONOKAI_CMS/CGI/
   hoge.cgi	
  に、ポストでデータを送りつけてください。	




 こんなCGIスクリプト→	



2013/04/13	
    第4回春爛漫シェル芸芸人撩乱勉強会	
           20
解答	
•  $	
  wget	
  -­‐-­‐post-­‐data	
  a=aho	
  <URL>	
  
•  $	
  curl	
  -­‐-­‐data-­‐urlencode	
  a=aho	
  <URL>	
  
•  $	
  curl	
  -­‐-­‐data	
  a=山本太郎	
  <url>	
  
      あなたのポストしたデータは、	
      a=山本太郎	
      です。	
  
•  無慈悲な攻撃	
  
      –  $	
  seq	
  1	
  10000	
  |	
  xargs	
  –P	
  1000	
  -­‐I@	
  curl	
  -­‐-­‐data-­‐urlencode	
  
           a=@	
  h^p://www.usptomo.com/TOMONOKAI_CMS/CGI/
           hoge.cgi	
  
      	
  
      	
  
2013/04/13	
                         第4回春爛漫シェル芸芸人撩乱勉強会	
                                                     21
問題7:	
  データの収集	
•  本日の最高気温をワンライナーで	
  
   出力してください。	
  




2013/04/13	
      第4回春爛漫シェル芸芸人撩乱勉強会	
   22
解答	
•  Yahooさんから、東京の最高気温	
  
   –  $	
  curl	
  h^p://weather.yahoo.co.jp/weather/jp/13/4410.html	
  	
  
      2>	
  /dev/null	
  |	
  grep	
  最高 |	
  tail	
  -­‐n	
  2	
  |	
  head	
  -­‐n	
  1	
  |	
  sed	
  
      's/.*<br>//'	
  |	
  sed	
  's/	
  .*//'	
  


•  tenki.jpさんから、東京の最高気温	
  
   –  $	
  curl	
  h^p://tenki.jp/forecast/city-­‐63.html	
  2>	
  /dev/null	
  |	
  grep	
  
      -­‐A	
  1	
  最高 |	
  grep	
  temp	
  |	
  head	
  -­‐n	
  1	
  |	
  sed	
  's;.*bold">(..*)</
      span.*;1;'	



2013/04/13	
                       第4回春爛漫シェル芸芸人撩乱勉強会	
                                               23
問題8:	
  画像をダウンロード	
•  ウェブページに掲載されている画像を集めてくださ
   い。	
  
      –  yahooさんのニュースのページ	
  
         h^p://headlines.yahoo.co.jp/hl	
  	
  
         等々から	




2013/04/13	
                第4回春爛漫シェル芸芸人撩乱勉強会	
   24
解答	
•  画像のリンクはすべてフルパスのようです。	
  

      –  $	
  curl	
  h^p://headlines.yahoo.co.jp/hl	
  2>	
  /dev/null	
  |	
  nkf	
  |	
  
         gsed	
  's/src="/n&/g'	
  |	
  grep	
  src=	
  |	
  sed	
  's/^src="([^"]*)".*
         $/1/'	
  |	
  while	
  read	
  f	
  ;	
  do	
  wget	
  $f	
  ;	
  done	
  


      –  $	
  curl	
  h^p://headlines.yahoo.co.jp/hl	
  2>	
  /dev/null	
  |	
  nkf	
  |	
  
         gsed	
  's/src="/n&/g'	
  |	
  grep	
  src=	
  |	
  sed	
  's/^src="([^"]*)".*
         $/1/'	
  |	
  xargs	
  wget	
  



2013/04/13	
                    第4回春爛漫シェル芸芸人撩乱勉強会	
                                        25
問題9:	
  クローリング	
•  どこかのサイトのトップページにあるリンク先のリス
   トを作って、リストのページや画像等をダウンロード
   してください。	
  

      –  相対パスにも対応しましょう。	
  

      –  できたら再帰的にクローリング	




2013/04/13	
      第4回春爛漫シェル芸芸人撩乱勉強会	
   26
解答	
•  $	
  curl	
  h^p://www.yahoo.co.jp	
  |	
  gsed	
  's/href="/n&/g'	
  |	
  grep	
  
   ^href=	
  |	
  sed	
  's/[^"]*"//'	
  |	
  sed	
  's/".*$//'	
  |	
  awk	
  '/^h^p/{print	
  
   $0}!/^h^p/{print	
  "h^p://www.yahoo.co.jp/"	
  $0}'	
  |	
  xargs	
  wget	
  



•  wget	
  -­‐r	
  h^p://www.yahoo.co.jp	
  	
  




2013/04/13	
                     第4回春爛漫シェル芸芸人撩乱勉強会	
                                         27
おわりに	
•  次は・・・	
  



               #!/beer/bash	
  

2013/04/13	
       第4回春爛漫シェル芸芸人撩乱勉強会	
   28

Contenu connexe

Tendances

「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara onlineHisatoshi Onishi
 
部活でシェル芸がはやらない
部活でシェル芸がはやらない部活でシェル芸がはやらない
部活でシェル芸がはやらないxztaityozx
 
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
NEORT ミートアップ #1 LT クリエイティブコーディングの行方NEORT ミートアップ #1 LT クリエイティブコーディングの行方
NEORT ミートアップ #1 LT クリエイティブコーディングの行方Masaru Mizuochi
 
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」Hiromu Shioya
 
pixivとl10n/i18n
pixivとl10n/i18npixivとl10n/i18n
pixivとl10n/i18nKenta USAMI
 
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413博文 斉藤
 
⑰jQueryをおぼえよう!その3
⑰jQueryをおぼえよう!その3⑰jQueryをおぼえよう!その3
⑰jQueryをおぼえよう!その3Nishida Kansuke
 
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化Kanetaka Heshiki
 

Tendances (9)

「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
 
部活でシェル芸がはやらない
部活でシェル芸がはやらない部活でシェル芸がはやらない
部活でシェル芸がはやらない
 
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
NEORT ミートアップ #1 LT クリエイティブコーディングの行方NEORT ミートアップ #1 LT クリエイティブコーディングの行方
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
 
Sword term02
Sword term02Sword term02
Sword term02
 
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
 
pixivとl10n/i18n
pixivとl10n/i18npixivとl10n/i18n
pixivとl10n/i18n
 
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
 
⑰jQueryをおぼえよう!その3
⑰jQueryをおぼえよう!その3⑰jQueryをおぼえよう!その3
⑰jQueryをおぼえよう!その3
 
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化
 

Similaire à 20130413シェル芸勉強会スライド

20130413 uspstudy qonly
20130413 uspstudy qonly20130413 uspstudy qonly
20130413 uspstudy qonlyRyuichi Ueda
 
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」博文 斉藤
 
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」博文 斉藤
 
Learning spaerk chapter03
Learning spaerk chapter03Learning spaerk chapter03
Learning spaerk chapter03Akimitsu Takagi
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回yamahige
 
Hakyllで遊んでみた。
Hakyllで遊んでみた。Hakyllで遊んでみた。
Hakyllで遊んでみた。Tomohiko Himura
 
コマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeコマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeKiwamu Okabe
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回yamahige
 
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)AtCoder Inc.
 
女子美術大学メディアアート演習ⅡB 2013 Spring 第1回
女子美術大学メディアアート演習ⅡB 2013 Spring 第1回 女子美術大学メディアアート演習ⅡB 2013 Spring 第1回
女子美術大学メディアアート演習ⅡB 2013 Spring 第1回 Satoru Tokuhisa
 
pythonでオフィス快適化計画
pythonでオフィス快適化計画pythonでオフィス快適化計画
pythonでオフィス快適化計画Kazufumi Ohkawa
 
20130216 シェル芸爆破デスマッチ勉強会 問題集
20130216 シェル芸爆破デスマッチ勉強会 問題集20130216 シェル芸爆破デスマッチ勉強会 問題集
20130216 シェル芸爆破デスマッチ勉強会 問題集Ryuichi Ueda
 
Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13Seiei Higa
 
Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13hanachin
 

Similaire à 20130413シェル芸勉強会スライド (16)

20130413 uspstudy qonly
20130413 uspstudy qonly20130413 uspstudy qonly
20130413 uspstudy qonly
 
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
 
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
 
Learning spaerk chapter03
Learning spaerk chapter03Learning spaerk chapter03
Learning spaerk chapter03
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
 
Tokyo r38
Tokyo r38Tokyo r38
Tokyo r38
 
Hakyllで遊んでみた。
Hakyllで遊んでみた。Hakyllで遊んでみた。
Hakyllで遊んでみた。
 
Tokyo r30 beginner
Tokyo r30 beginnerTokyo r30 beginner
Tokyo r30 beginner
 
コマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeコマンドライン使いもLibreOffice
コマンドライン使いもLibreOffice
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
 
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
 
女子美術大学メディアアート演習ⅡB 2013 Spring 第1回
女子美術大学メディアアート演習ⅡB 2013 Spring 第1回 女子美術大学メディアアート演習ⅡB 2013 Spring 第1回
女子美術大学メディアアート演習ⅡB 2013 Spring 第1回
 
pythonでオフィス快適化計画
pythonでオフィス快適化計画pythonでオフィス快適化計画
pythonでオフィス快適化計画
 
20130216 シェル芸爆破デスマッチ勉強会 問題集
20130216 シェル芸爆破デスマッチ勉強会 問題集20130216 シェル芸爆破デスマッチ勉強会 問題集
20130216 シェル芸爆破デスマッチ勉強会 問題集
 
Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13
 
Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13
 

Plus de Ryuichi Ueda

第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライドRyuichi Ueda
 
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノックシェル・ワンライナー160本ノック
シェル・ワンライナー160本ノックRyuichi Ueda
 
日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナーRyuichi Ueda
 
シェル芸勉強会と会場の話
シェル芸勉強会と会場の話シェル芸勉強会と会場の話
シェル芸勉強会と会場の話Ryuichi Ueda
 
移動ロボットのナビゲーション
移動ロボットのナビゲーション移動ロボットのナビゲーション
移動ロボットのナビゲーションRyuichi Ueda
 
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆Ryuichi Ueda
 
第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライドRyuichi Ueda
 
bash(の変な使い方)update
bash(の変な使い方)updatebash(の変な使い方)update
bash(の変な使い方)updateRyuichi Ueda
 
第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニングRyuichi Ueda
 
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...Ryuichi Ueda
 
20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トークRyuichi Ueda
 
第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロRyuichi Ueda
 
シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習Ryuichi Ueda
 
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018Ryuichi Ueda
 
poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018Ryuichi Ueda
 
Robot frontier lesson3 2018
Robot frontier lesson3 2018Robot frontier lesson3 2018
Robot frontier lesson3 2018Ryuichi Ueda
 
Robot frontier lesson2 2018
Robot frontier lesson2 2018Robot frontier lesson2 2018
Robot frontier lesson2 2018Ryuichi Ueda
 
Robot frontier lesson1 2018
Robot frontier lesson1 2018Robot frontier lesson1 2018
Robot frontier lesson1 2018Ryuichi Ueda
 
第34回シェル芸勉強会
第34回シェル芸勉強会第34回シェル芸勉強会
第34回シェル芸勉強会Ryuichi Ueda
 
第32回信号処理シンポジウム「Raspberry PiとROSを 使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを 使ったロボットシステム」Ryuichi Ueda
 

Plus de Ryuichi Ueda (20)

第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド
 
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノックシェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
 
日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー
 
シェル芸勉強会と会場の話
シェル芸勉強会と会場の話シェル芸勉強会と会場の話
シェル芸勉強会と会場の話
 
移動ロボットのナビゲーション
移動ロボットのナビゲーション移動ロボットのナビゲーション
移動ロボットのナビゲーション
 
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
 
第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド
 
bash(の変な使い方)update
bash(の変な使い方)updatebash(の変な使い方)update
bash(の変な使い方)update
 
第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング
 
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
 
20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク
 
第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ
 
シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習
 
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
 
poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018
 
Robot frontier lesson3 2018
Robot frontier lesson3 2018Robot frontier lesson3 2018
Robot frontier lesson3 2018
 
Robot frontier lesson2 2018
Robot frontier lesson2 2018Robot frontier lesson2 2018
Robot frontier lesson2 2018
 
Robot frontier lesson1 2018
Robot frontier lesson1 2018Robot frontier lesson1 2018
Robot frontier lesson1 2018
 
第34回シェル芸勉強会
第34回シェル芸勉強会第34回シェル芸勉強会
第34回シェル芸勉強会
 
第32回信号処理シンポジウム「Raspberry PiとROSを 使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを 使ったロボットシステム」
 

Dernier

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Dernier (8)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

20130413シェル芸勉強会スライド

  • 1. 第4回春爛漫シェル芸人撩乱   勉強会 USP友の会 上田 隆一
  • 2. 近況 •  月曜、とあるサイトをリリース   –  (日曜の朝から作業。泊まり込み)   –  延期!でも明日も仕事だ!   •  今朝は子供が while  sleep  1000  ;  do  嘔吐  ;  done   で病院へ連れて行った。     •  お察しください。   2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 2
  • 3. はじめに   なに!? 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 3
  • 4. 東京にミサイルが来るらしい 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 4
  • 5. 今、我々にできること       curlとシェル芸で無慈悲なパケット攻撃       (注意:ダメ絶対)   2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 5
  • 6. ということで本日は     シェル芸web編     やりませう。 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 6
  • 7. シェル芸とは? •  マウスも使わず、ソースコードも残さず、   GUIツールを立ち上げる間もなく、   あらゆる調査・計算・テキスト処理を   コマンド入力一撃で終わらす。   –  最近、一般名詞化   してきた   海外のシェル芸勉強会の様子(再掲) 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 7
  • 8. 今回の内容 •  ウェブ関連の9問を準備   –  ポイント   •  表向き:webからの情報収集   •  裏のテーマ:不定形文章の処理(こっちが大事)   •  ちょっと難しめ   –  玄人が1人混入した2,  3人のグループを   作ってください。   2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 8
  • 9. 注意 •  解答例は  Mac  で作成   •  *Linux  の人は  gawk,  gsedを適宜 awk,  sedに読み替えのこと   •  その他環境でも、解答例にこだわらずネット等を   調べながら解答願います。   •  解答では、例題が解ければよい。   –  一般解を探すのは、場合によっては悪い癖となる。   2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 9
  • 10. 問題1:  肩ならし •  次のファイルから、「index.cgi」を   除去して出力してください。   –  ただし、p=index.cgiは残すこと。 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 10
  • 11. 解答 •  $  cat  2.html  |  sed  's/index.cgi//'   •  $  cat  2.html  |  awk  '{sub(/index.cgi/,"",$0);print}'   2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 11
  • 13. 解答 •  $  cat  1.html  |  grep  'href='  |  sed  's/^.*href="(..*)".*$/1/'  |   grep  -­‐v  "^#"  |  sed  's/"[^"].*//'   •  $  cat  1.html  |  grep  "href="  |  grep  -­‐v  'href="#'  |  sed  's/[^"]*"//'   |  sed  's/".*$//'   2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 13
  • 14. 問題3:  整形 •  インデントの汚いhtmlを整形してください   –  一行にtd一個にすること 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 14
  • 15. 解答 •  $  cat  3.html  |  gsed  's;</td>;&n;g'  |  gsed   's;<td>;tt&;'  |  grep  -­‐v  "^$" 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 15
  • 16. 問題4:  webページの切り取り •  yahooさんのトップページからトピックスの   見出しを抽出しましょう 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 16
  • 17. 解答 •  まずcurl   –  $  curl  h^p://www.yahoo.co.jp  >  yahoo.html   •  処理(内容を見ながら)   –  $  cat  yahoo.html  |  gsed  's;</[^/][^/]*>;&n;g'  |  grep   top_table  |  grep  '・<a'  |  sed  's;</a>;;'  |  sed  's/..*>//'   •  一行で書いてもそんなに長くはない   –  $  curl  h^p://www.yahoo.co.jp  |  gsed  's;</[^/][^/]*>;&n;g'   |  grep  top_table  |  grep  '・<a'  |  sed  's;</a>;;'  |  sed  's/..*>//'   2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 17
  • 18. 問題5:  数値参照の変換 •  次のような数値参照、実体参照文字列を   読めるように変換してください。 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 18
  • 19. 解答 •  $  cat  numref  |  nkf  -­‐-­‐numchar-­‐input •  $  cat  numref  |  w3m  -­‐T  text/html  -­‐dump   我々はシェル芸人だ。     2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 19
  • 20. 問題6:  ポスト •  h^p://www.usptomo.com/TOMONOKAI_CMS/CGI/ hoge.cgi  に、ポストでデータを送りつけてください。 こんなCGIスクリプト→ 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 20
  • 21. 解答 •  $  wget  -­‐-­‐post-­‐data  a=aho  <URL>   •  $  curl  -­‐-­‐data-­‐urlencode  a=aho  <URL>   •  $  curl  -­‐-­‐data  a=山本太郎  <url>   あなたのポストしたデータは、 a=山本太郎 です。   •  無慈悲な攻撃   –  $  seq  1  10000  |  xargs  –P  1000  -­‐I@  curl  -­‐-­‐data-­‐urlencode   a=@  h^p://www.usptomo.com/TOMONOKAI_CMS/CGI/ hoge.cgi       2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 21
  • 22. 問題7:  データの収集 •  本日の最高気温をワンライナーで   出力してください。   2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 22
  • 23. 解答 •  Yahooさんから、東京の最高気温   –  $  curl  h^p://weather.yahoo.co.jp/weather/jp/13/4410.html     2>  /dev/null  |  grep  最高 |  tail  -­‐n  2  |  head  -­‐n  1  |  sed   's/.*<br>//'  |  sed  's/  .*//'   •  tenki.jpさんから、東京の最高気温   –  $  curl  h^p://tenki.jp/forecast/city-­‐63.html  2>  /dev/null  |  grep   -­‐A  1  最高 |  grep  temp  |  head  -­‐n  1  |  sed  's;.*bold">(..*)</ span.*;1;' 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 23
  • 24. 問題8:  画像をダウンロード •  ウェブページに掲載されている画像を集めてくださ い。   –  yahooさんのニュースのページ   h^p://headlines.yahoo.co.jp/hl     等々から 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 24
  • 25. 解答 •  画像のリンクはすべてフルパスのようです。   –  $  curl  h^p://headlines.yahoo.co.jp/hl  2>  /dev/null  |  nkf  |   gsed  's/src="/n&/g'  |  grep  src=  |  sed  's/^src="([^"]*)".* $/1/'  |  while  read  f  ;  do  wget  $f  ;  done   –  $  curl  h^p://headlines.yahoo.co.jp/hl  2>  /dev/null  |  nkf  |   gsed  's/src="/n&/g'  |  grep  src=  |  sed  's/^src="([^"]*)".* $/1/'  |  xargs  wget   2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 25
  • 26. 問題9:  クローリング •  どこかのサイトのトップページにあるリンク先のリス トを作って、リストのページや画像等をダウンロード してください。   –  相対パスにも対応しましょう。   –  できたら再帰的にクローリング 2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 26
  • 27. 解答 •  $  curl  h^p://www.yahoo.co.jp  |  gsed  's/href="/n&/g'  |  grep   ^href=  |  sed  's/[^"]*"//'  |  sed  's/".*$//'  |  awk  '/^h^p/{print   $0}!/^h^p/{print  "h^p://www.yahoo.co.jp/"  $0}'  |  xargs  wget   •  wget  -­‐r  h^p://www.yahoo.co.jp     2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 27
  • 28. おわりに •  次は・・・   #!/beer/bash   2013/04/13 第4回春爛漫シェル芸芸人撩乱勉強会 28