Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
シェル芸勉強会へ
ようこそ
usp友の会 田代勝也
まずは御礼
ご参加いただき
誠に
ありがとうございます
テキスト処理の重要性
• 各種テキストファイル
• データファイル
HTML、JSON、RDF
• 設定ファイル
• ログファイル
• プログラムコード 
C、Java、Ruby
• 各種命令の文字列
• コマンド実行
• SQL文
• HTT...
テキスト処理の重要性
情報処理に
テキスト処理は
欠かせない!
テキスト処理に強くなろう
• テキストデータの整理
• ログデータの整理とか
• データからSQL文作ってデータぶち込む
• テストデータ入れたいとか
• プログラムコードの一括変換
• 型を変えたいとか 、関数名変えたいとか
シェル芸で出来る...
テキストエディタ何使う?
Vidual Studio、Eclipse
SublimeText、Atom
秀丸、サクラエディタ、TeraPad
Emacs、Vim
IDEエディタ論争!?
テキストエディタ何使う?
だが心配ない!
だって
テキストエディタ
使わない!
シェル芸のイメージ
一般的?なイメージ
コワイ!
メラしか使えないのに
ベギラゴンが飛び交ってる
シェル芸のイメージ
• いきなり長いワンライナ書いてない
• 出力を確認しながら少しずつ
• 慣れてないから難しく見える
訓練することで誰でも!
manにもシェル芸が
FreeBSDのlddコマンドマニュアルにシェル芸
https://www.freebsd.org/cgi/man.cgi?query=ldd
ワンライナーは
何も特別なことじゃない!
そのままだと問題があるので修正版がこ...
スクリプト言語としてのシェル
• 変数
• スカラ、配列
• 制御構造
• if、for、while
• 関数
• 定義、スコープ
• データを変数に持たせる
• 制御構造で処理する
• 関数で処理の共通化
これらは苦手で遅い
スクリプト組む時...
スクリプト言語としてのシェル
手続き型な言語としては
正直イケてない・・・
しかし!
パイプを使った
ストリーム処理が得意
パイプの利点
• 簡単な問題に分解
• コードの簡素化
• バグの軽減につながる
• 並列処理
• マルチコアの場合自動的に並列化
• 禁断の界王拳2倍超え(CPU300%とか)
• メモリ使用量
• sortされたデータなら大幅に軽減可
モダ...
シェルプログラミングの考え方
• データはファイルに持たせる
• ファイル読み書きは得意(リダイレクト)
• フィルタとして処理
• パイプでのストリーム処理 (関数型の考え方)
• 並列処理の活用
• シェルのパイプやバックグラウンド機能
コマンドを知る
•テキスト処理系
•単機能
•cat、grep、sort、uniq、
tail、head、tr、paste、
diff、comm
•多機能
•sed
•ファイル操作系
•ls、find
•シーケンス生成
•seq、jot
•その他...
Open usp Tukubaiの紹介
• ユニケージ開発手法で利用されるコマンド群
• よく使われるコマンドをオープンソースで公開
• 端末が有用な道具になる
• シェル芸にも強い味方
何が嬉しいのか?
Open usp Tukubaiの紹介
• スペース区切りのデータが前提
• フィールド数は固定
• 固定数じゃなくていい場合も
• 処理速度は遅い
• Pythonで実装(より高速なHaskell版やShell版も)
• 商用版は超高速(C言...
Open usp Tukubaiの紹介
•日付時刻処理
•mdate、calclock、yobi
•各種集計
•gyo、count、sm2、map
•フィールド切出
•self、delf
Open usp Tukubaiコマンドマニュアル
ht...
古くて新しいパラダイム
• テキストデータは基本で自由
• ストリーム処理という考え方
• 並列処理で高速化も
改めてUNIXの基本に
たち返ろう!
シェル芸情報
• USP友の会
• https://www.usptomo.com
• UEC - use engineers'
community site
• https://uec.usp-lab.com/
INFO/CGI/INFO.C...
Próxima SlideShare
Cargando en…5
×

シェル芸勉強会へようこそ

1.269 visualizaciones

Publicado el

第19回シェル芸勉強会の福岡サテライト会場で、イントロとして話をした内容です。

Publicado en: Tecnología
  • Sé el primero en comentar

シェル芸勉強会へようこそ

  1. 1. シェル芸勉強会へ ようこそ usp友の会 田代勝也
  2. 2. まずは御礼 ご参加いただき 誠に ありがとうございます
  3. 3. テキスト処理の重要性 • 各種テキストファイル • データファイル HTML、JSON、RDF • 設定ファイル • ログファイル • プログラムコード  C、Java、Ruby • 各種命令の文字列 • コマンド実行 • SQL文 • HTTP、SMTP
  4. 4. テキスト処理の重要性 情報処理に テキスト処理は 欠かせない!
  5. 5. テキスト処理に強くなろう • テキストデータの整理 • ログデータの整理とか • データからSQL文作ってデータぶち込む • テストデータ入れたいとか • プログラムコードの一括変換 • 型を変えたいとか 、関数名変えたいとか シェル芸で出来ると便利!
  6. 6. テキストエディタ何使う? Vidual Studio、Eclipse SublimeText、Atom 秀丸、サクラエディタ、TeraPad Emacs、Vim IDEエディタ論争!?
  7. 7. テキストエディタ何使う? だが心配ない! だって テキストエディタ 使わない!
  8. 8. シェル芸のイメージ 一般的?なイメージ コワイ! メラしか使えないのに ベギラゴンが飛び交ってる
  9. 9. シェル芸のイメージ • いきなり長いワンライナ書いてない • 出力を確認しながら少しずつ • 慣れてないから難しく見える 訓練することで誰でも!
  10. 10. manにもシェル芸が FreeBSDのlddコマンドマニュアルにシェル芸 https://www.freebsd.org/cgi/man.cgi?query=ldd ワンライナーは 何も特別なことじゃない! そのままだと問題があるので修正版がこちら $ find /usr/bin -type f | xargs -n1 file -F' ' | grep ELF | cut -f1 -d ' ' | xargs ldd -f '%A %on' | grep libc.so.7
  11. 11. スクリプト言語としてのシェル • 変数 • スカラ、配列 • 制御構造 • if、for、while • 関数 • 定義、スコープ • データを変数に持たせる • 制御構造で処理する • 関数で処理の共通化 これらは苦手で遅い スクリプト組む時・・
  12. 12. スクリプト言語としてのシェル 手続き型な言語としては 正直イケてない・・・ しかし! パイプを使った ストリーム処理が得意
  13. 13. パイプの利点 • 簡単な問題に分解 • コードの簡素化 • バグの軽減につながる • 並列処理 • マルチコアの場合自動的に並列化 • 禁断の界王拳2倍超え(CPU300%とか) • メモリ使用量 • sortされたデータなら大幅に軽減可 モダンな プログラミング に対して 利点も
  14. 14. シェルプログラミングの考え方 • データはファイルに持たせる • ファイル読み書きは得意(リダイレクト) • フィルタとして処理 • パイプでのストリーム処理 (関数型の考え方) • 並列処理の活用 • シェルのパイプやバックグラウンド機能
  15. 15. コマンドを知る •テキスト処理系 •単機能 •cat、grep、sort、uniq、 tail、head、tr、paste、 diff、comm •多機能 •sed •ファイル操作系 •ls、find •シーケンス生成 •seq、jot •その他 •xargs、time、tee、echo、 printf、bc、curl •最終兵器 •awk •perl、ruby (-alne)
  16. 16. Open usp Tukubaiの紹介 • ユニケージ開発手法で利用されるコマンド群 • よく使われるコマンドをオープンソースで公開 • 端末が有用な道具になる • シェル芸にも強い味方 何が嬉しいのか?
  17. 17. Open usp Tukubaiの紹介 • スペース区切りのデータが前提 • フィールド数は固定 • 固定数じゃなくていい場合も • 処理速度は遅い • Pythonで実装(より高速なHaskell版やShell版も) • 商用版は超高速(C言語)
  18. 18. Open usp Tukubaiの紹介 •日付時刻処理 •mdate、calclock、yobi •各種集計 •gyo、count、sm2、map •フィールド切出 •self、delf Open usp Tukubaiコマンドマニュアル https://uec.usp-lab.com/TUKUBAI_MAN/CGI/TUKUBAI_MAN.CGI?POMPA=LIST •行列変換 •tarr、yarr、tateyoko •データ結合 •loopj、loopx、join0、join1、 join2 •その他 •getfirst、getlast、juni、mojihame
  19. 19. 古くて新しいパラダイム • テキストデータは基本で自由 • ストリーム処理という考え方 • 並列処理で高速化も 改めてUNIXの基本に たち返ろう!
  20. 20. シェル芸情報 • USP友の会 • https://www.usptomo.com • UEC - use engineers' community site • https://uec.usp-lab.com/ INFO/CGI/INFO.CGI? POMPA=LIST • 上田ブログ(会長) • https://blog.ueda.asia • 大チェッカー:シェル芸 人たち • https://daichkr.hatelabo.jp/ antenna/960679194075891200 • 稚拙ブログ • http://papiro.hatenablog.jp

×