Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
シェル芸勉強会へ
ようこそ
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...
Nächste SlideShare
Wird geladen in …5
×

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

1.272 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

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

  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

×