SlideShare a Scribd company logo
シェルスクリプトのススメ
あるある
あ、サーバにあまりログインしてない…
TeXをVimで書きたい
Webアプリ作りたい!
あるある
あ、サーバにあまりログインしてない…
ログだらけで容量が…
TeXをVimで書きたい
Webアプリ作りたい!
あるある
あ、サーバにあまりログインしてない…
ログだらけで容量が…
TeXをVimで書きたい
コンパイル作業面倒だから統合開発環境使うね
Webアプリ作りたい!
あるある
あ、サーバにあまりログインしてない…
ログだらけで容量が…
TeXをVimで書きたい
コンパイル作業面倒だから統合開発環境使うね
Webアプリ作りたい!
なにもかも面倒だから統合開発環境使うね
あるある
あ、サーバにあまりログインしてない…
ログだらけで容量が…
TeXをVimで書きたい
コンパイル作業面倒だから統合開発環境使うね
Webアプリ作りたい!
なにもかも面倒だから統合開発環境使うね
ダメ!
そんなんじゃ!
楽するプログラム書くの
?
C言語? java?
面倒だろ。用意されているものを組み合わせよう
シェルスクリプト
ソフトウェアを組み合わせて、ぜんぶ自動化する
ログを自動で消す
#!/bin/sh
rm -f /var/log/auth.log.*
rm -f /var/log/maillog.*
rm -f /var/log/daily.log.*
rm -f /var/log/weekly.log.*
rm -f /var/log/monthly.log.*
rm -f /var/log/messages.*
TeXの面倒を解消
#!/bin/sh
MAIN=`find . -name ‘main.tex’`
if [ $MAIN != ‘main.tex’ ]; then
exit 1
fi
platex main.tex || exit 1
dvipdfmx main.dvi || exit 1
rm main.aux && rm main.log && rm main.dvi
open main.pdf
Webアプリをすぐに確認
#!/bin/sh
MYDIR=‘アプリを置くディレクトリの絶対パス’
CHROME=‘chromeの絶対パス’
cp $1 $MYDIR/$1 && cd $MYDIR
javac $1 || exit 1
rm $1
/Library/Tomcat/bin/shutdown.sh || exit 1
/Library/Tomcat/bin/startup.sh || exit 1
open $CHROME http://localhost:8080
ぱっと見、どう?
簡単でしょ?
ぱっと見、どう?
簡単でしょ?
実習科目でやろうぜ

More Related Content

What's hot

Goで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgent
Goで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgentGoで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgent
Goで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgent
Reo Yamada
 
Cpi mega mix
Cpi mega mixCpi mega mix
Cpi mega mix
Ryuji Egashira
 
みんなでWAIWAI Webアプリ
みんなでWAIWAI WebアプリみんなでWAIWAI Webアプリ
みんなでWAIWAI WebアプリKiwamu Okabe
 
[jjug] Java と Benchmark
[jjug] Java と Benchmark[jjug] Java と Benchmark
[jjug] Java と Benchmark
Tokuhiro Matsuno
 
うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?Masahiro Sano
 
テキスト見本
テキスト見本テキスト見本
テキスト見本
竜太郎 小野
 
JavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumiJavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumi
Yusuke Yamamoto
 
WordVolcano - from the dark side - handson
WordVolcano - from the dark side - handsonWordVolcano - from the dark side - handson
WordVolcano - from the dark side - handsonTakayuki Niinuma
 
アクセシブルなブログ開発、 その後どうなったの
アクセシブルなブログ開発、 その後どうなったのアクセシブルなブログ開発、 その後どうなったの
アクセシブルなブログ開発、 その後どうなったの
真里奈 土岐
 
Vagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみようVagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみよう
Takuma Morikawa
 
ASP.NET パフォーマンス改善
ASP.NET パフォーマンス改善ASP.NET パフォーマンス改善
ASP.NET パフォーマンス改善
Joni
 
【再放送】Webサイトを公開してみよう(WEBデザイナー学部応用科目#2)
【再放送】Webサイトを公開してみよう(WEBデザイナー学部応用科目#2)【再放送】Webサイトを公開してみよう(WEBデザイナー学部応用科目#2)
【再放送】Webサイトを公開してみよう(WEBデザイナー学部応用科目#2)schoowebcampus
 
Ansible/Vagrantでアドテク環境を最速構築
Ansible/Vagrantでアドテク環境を最速構築Ansible/Vagrantでアドテク環境を最速構築
Ansible/Vagrantでアドテク環境を最速構築
kaboccha
 
JAWS-UG四国クラウドお遍路2014
JAWS-UG四国クラウドお遍路2014JAWS-UG四国クラウドお遍路2014
JAWS-UG四国クラウドお遍路2014
Shiraishi Masayuki
 

What's hot (14)

Goで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgent
Goで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgentGoで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgent
Goで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgent
 
Cpi mega mix
Cpi mega mixCpi mega mix
Cpi mega mix
 
みんなでWAIWAI Webアプリ
みんなでWAIWAI WebアプリみんなでWAIWAI Webアプリ
みんなでWAIWAI Webアプリ
 
[jjug] Java と Benchmark
[jjug] Java と Benchmark[jjug] Java と Benchmark
[jjug] Java と Benchmark
 
うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?
 
テキスト見本
テキスト見本テキスト見本
テキスト見本
 
JavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumiJavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumi
 
WordVolcano - from the dark side - handson
WordVolcano - from the dark side - handsonWordVolcano - from the dark side - handson
WordVolcano - from the dark side - handson
 
アクセシブルなブログ開発、 その後どうなったの
アクセシブルなブログ開発、 その後どうなったのアクセシブルなブログ開発、 その後どうなったの
アクセシブルなブログ開発、 その後どうなったの
 
Vagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみようVagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみよう
 
ASP.NET パフォーマンス改善
ASP.NET パフォーマンス改善ASP.NET パフォーマンス改善
ASP.NET パフォーマンス改善
 
【再放送】Webサイトを公開してみよう(WEBデザイナー学部応用科目#2)
【再放送】Webサイトを公開してみよう(WEBデザイナー学部応用科目#2)【再放送】Webサイトを公開してみよう(WEBデザイナー学部応用科目#2)
【再放送】Webサイトを公開してみよう(WEBデザイナー学部応用科目#2)
 
Ansible/Vagrantでアドテク環境を最速構築
Ansible/Vagrantでアドテク環境を最速構築Ansible/Vagrantでアドテク環境を最速構築
Ansible/Vagrantでアドテク環境を最速構築
 
JAWS-UG四国クラウドお遍路2014
JAWS-UG四国クラウドお遍路2014JAWS-UG四国クラウドお遍路2014
JAWS-UG四国クラウドお遍路2014
 

Similar to Lt 001

HTML5 アプリ開発
HTML5 アプリ開発HTML5 アプリ開発
HTML5 アプリ開発
tomo_masakura
 
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
晃 遠山
 
Copy Smallchat Arcana meetup#43
Copy Smallchat Arcana meetup#43Copy Smallchat Arcana meetup#43
Copy Smallchat Arcana meetup#43
kasikasikasi
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersTakeshi Arabiki
 
Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf
Toshiki Iga
 
Amplify Consoleで かんたん!Webサイト公開
Amplify Consoleで かんたん!Webサイト公開Amplify Consoleで かんたん!Webサイト公開
Amplify Consoleで かんたん!Webサイト公開
Daisuke Yagi
 
Iret tech labo#5 ブログから学ぶサーバレスの作り方
Iret tech labo#5 ブログから学ぶサーバレスの作り方Iret tech labo#5 ブログから学ぶサーバレスの作り方
Iret tech labo#5 ブログから学ぶサーバレスの作り方
TakaakiNiikawa
 
Rails composerでrails newを楽にしよう
Rails composerでrails newを楽にしようRails composerでrails newを楽にしよう
Rails composerでrails newを楽にしよう
健太 田上
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよNaruto TAKAHASHI
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
龍一 田中
 
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
Amazon Web Services Japan
 
サーバーワークスのAWS構築自動化の仕組み
サーバーワークスのAWS構築自動化の仕組みサーバーワークスのAWS構築自動化の仕組み
サーバーワークスのAWS構築自動化の仕組み
Akira Nagata
 
ブラウザだけで学ぶWebアプリ開発【デザイン編】
ブラウザだけで学ぶWebアプリ開発【デザイン編】ブラウザだけで学ぶWebアプリ開発【デザイン編】
ブラウザだけで学ぶWebアプリ開発【デザイン編】
schoowebcampus
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
Kohei Kadowaki
 
ローカル開発環境の構築をしよう VirtualBox + Vagrant
ローカル開発環境の構築をしよう VirtualBox + Vagrantローカル開発環境の構築をしよう VirtualBox + Vagrant
ローカル開発環境の構築をしよう VirtualBox + Vagrant
Kazuma Kimura
 
HTML5+wordpressで電子書籍
HTML5+wordpressで電子書籍HTML5+wordpressで電子書籍
HTML5+wordpressで電子書籍
Wataru Asai
 
AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]
AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]
AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]
Amazon Web Services Japan
 
基幹業務のAJAXによる効率的なWEB開発手法
基幹業務のAJAXによる効率的なWEB開発手法基幹業務のAJAXによる効率的なWEB開発手法
基幹業務のAJAXによる効率的なWEB開発手法
metio
 

Similar to Lt 001 (20)

HTML5 アプリ開発
HTML5 アプリ開発HTML5 アプリ開発
HTML5 アプリ開発
 
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
 
Copy Smallchat Arcana meetup#43
Copy Smallchat Arcana meetup#43Copy Smallchat Arcana meetup#43
Copy Smallchat Arcana meetup#43
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
 
Real world rails
Real world railsReal world rails
Real world rails
 
Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf
 
Amplify Consoleで かんたん!Webサイト公開
Amplify Consoleで かんたん!Webサイト公開Amplify Consoleで かんたん!Webサイト公開
Amplify Consoleで かんたん!Webサイト公開
 
Iret tech labo#5 ブログから学ぶサーバレスの作り方
Iret tech labo#5 ブログから学ぶサーバレスの作り方Iret tech labo#5 ブログから学ぶサーバレスの作り方
Iret tech labo#5 ブログから学ぶサーバレスの作り方
 
Rails composerでrails newを楽にしよう
Rails composerでrails newを楽にしようRails composerでrails newを楽にしよう
Rails composerでrails newを楽にしよう
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよ
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
 
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
 
サーバーワークスのAWS構築自動化の仕組み
サーバーワークスのAWS構築自動化の仕組みサーバーワークスのAWS構築自動化の仕組み
サーバーワークスのAWS構築自動化の仕組み
 
ブラウザだけで学ぶWebアプリ開発【デザイン編】
ブラウザだけで学ぶWebアプリ開発【デザイン編】ブラウザだけで学ぶWebアプリ開発【デザイン編】
ブラウザだけで学ぶWebアプリ開発【デザイン編】
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
ローカル開発環境の構築をしよう VirtualBox + Vagrant
ローカル開発環境の構築をしよう VirtualBox + Vagrantローカル開発環境の構築をしよう VirtualBox + Vagrant
ローカル開発環境の構築をしよう VirtualBox + Vagrant
 
HTML5+wordpressで電子書籍
HTML5+wordpressで電子書籍HTML5+wordpressで電子書籍
HTML5+wordpressで電子書籍
 
AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]
AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]
AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]
 
基幹業務のAJAXによる効率的なWEB開発手法
基幹業務のAJAXによる効率的なWEB開発手法基幹業務のAJAXによる効率的なWEB開発手法
基幹業務のAJAXによる効率的なWEB開発手法
 

Lt 001

Editor's Notes

  1. 日頃のあるあるをまとめてみた。 あ、最近サーバにあまりログインしてないな……と思って入ると……
  2. ログがいっぱい発生していて、ただでさえ少ない全20GBの容量を圧迫していた! これはいけない! あるいは、論文をTeXで書こうとして、Vimを使おうとするも……
  3. そのうちコンパイルする作業が面倒になってきて、TeXShopみたいな 統合開発環境を使っちゃうわけ。 あるいは、科技大ではよくあるWebアプリを作りたいな〜というときは……
  4. もはやなにもかも面倒になり、超思考停止状態で最初からEclipseみたいな でっかいのに走り始めるわけ。
  5. ダメ! そんなんじゃ! 自分で解決策を考えて、ドッグフードを食べないと!! 原始的な方法に慣れておかないと、いざというときに苦労するよ!
  6. さて、どう楽する? C言語?java?面倒で書きたくないし、書けたとしても時間がかかりすぎる! UNIXは既存のプログラムを組み合わせて新しくプログラムを作れるから、 その流儀にならう。それは一体?
  7. ここでシェルスクリプトが活躍する。 シェルスクリプトってなに? 簡単に言うと、ソフトウェアを組み合わせて、全部自動でやらせちまうこと。
  8. 例えば、ログを消すときは、こう。 これをcronで定期的に実行すれば、ログはいつもすっきり
  9. TeXの面倒を解消するならこれ。 コンパイルすべきファイルがあるかどうか判断して、 コンパイルして、要らんファイルは削除して、pdfを開く動作を一括でやる。
  10. 作ったWebアプリをすぐに確認するには? このシェルの引数にjavaファイルを指定して実行すると、 アプリを置くディレクトリに移動して、コンパイルして、Tomcatを再起動して、 ブラウザ開いて確認する動作を一括でやってくれる。 まあ、java書かないので使ったこと一度もないから動作の保証はないけど。
  11. んで、ぱっと見どうだった? 自分が手動で行うはずの動作をそのまま書いてあるだけで、めっちゃ簡単そう。 一回作ればそれで終わりというのもいい。 こんなに楽で強力なものを放っておくのはもったいないので、みなさんもぜひやろうね。 あとさ、教員の前だからいうけど、……
  12. 実習科目でやろうぜ。やってみようぜ。 情報メディア実習とか、情報技術概論とかさ。 UNIXの勉強になって、今のカリキュラムでさらっと流すよりいいと思うんだ。