Submit Search
仕事で使えるシェルスクリプト
•
Download as ODP, PDF
•
60 likes
•
18,944 views
B
bsdhack
シェルスクリプトワークショップの資料です。
Read less
Read more
1 of 32
Download now
Downloaded 110 times
Recommended
シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門
icchy
@rncc夏期講習 9/2
シェルスクリプトを極める
シェルスクリプトを極める
bsdhack
シェルスクリプトワークショップの資料です。
シェル入門
シェル入門
ina job
非エンジニア向けコマンドラインの説明
シェル芸初心者によるシェル芸入門 (修正版)
シェル芸初心者によるシェル芸入門 (修正版)
icchy
#rncc夏期講習
initramfsについて
initramfsについて
Kazuhiro Nishiyama
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
Hiro Yoshioka
Sourcecode Reading Workshop2010 http://se.naist.jp/events/srw2010.html ソースコード理解と勉強会
R を起動するその前に
R を起動するその前に
Kosei ABE
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and Dracut
Taisuke Yamada
Introduction to initramfs, and related tools.
SSH Tips & Tricks
SSH Tips & Tricks
Nobutoshi Ogata
第二回ターミナル勉強会 SSH Tips & Tricks
誰得コマンド&オプション35連発
誰得コマンド&オプション35連発
Yozo SATO
DevLOVE ターミナル勉強会の発表資料です。
systemdでよく使うサブコマンド
systemdでよく使うサブコマンド
Kazuhiro Nishiyama
[第136回関西Debian勉強会 + Linux Kernel 勉強会 LT大会](https://debianjp.connpass.com/event/90376/)での発表資料です。
Unix
Unix
Hiramatsu Ryosuke
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
R以外の研究ツール
R以外の研究ツール
弘毅 露崎
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
AromaBlack
主にPythonの標準ライブラリライブラリを紹介します。
Hello, systemd
Hello, systemd
Emma Haruka Iwao
Systemd を使うと何がうれしいのかについて説明しています。
3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術
Kei IWASAKI
#pyconjp 2015 の LTで発表した際に利用した資料です https://pycon.jp/2015/ja/schedule/presentation/93/
Unix1
Unix1
Takaya Kotohata
http://tkot.hatenablog.com/ 詳解UNIXプログラミングの学習用メモです。
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
max747
kyoto.py in 高槻
Functions
Functions
do_aki
CentOS5.6 の /etc/rc.d/init.d/functions ぜん27
Fabric Essentials
Fabric Essentials
Yoshinari Takaoka
Fabric の基礎/入門/使い方 と現状の社内プラクティス
2日間Fabricを触った俺が 色々解説してみる
2日間Fabricを触った俺が 色々解説してみる
airtoxin Ishii
Fabric
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
t-sin
Lisp meetup #69 にて。
Memory sanitizer
Memory sanitizer
MITSUNARI Shigeo
Rpn and forth 超入門
Rpn and forth 超入門
Yoshitaka Seo
Rpn and forth 超入門 技術ひろば.net 2010年7月勉強会 セッション資料 2010年7月10日開催
エンジニアのための痔の話
エンジニアのための痔の話
Kouhei Maeda
私がPerlを使う理由
私がPerlを使う理由
Yohei Azekatsu
S2s websrv201011-presen
S2s websrv201011-presen
Kouhei Maeda
mod_authまわりの話。
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
博文 斉藤
シェルスクリプトワークショップ資料です。
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
博文 斉藤
シェルスクリプトワークショップの資料です。
More Related Content
What's hot
(20)
SSH Tips & Tricks
SSH Tips & Tricks
Nobutoshi Ogata
第二回ターミナル勉強会 SSH Tips & Tricks
誰得コマンド&オプション35連発
誰得コマンド&オプション35連発
Yozo SATO
DevLOVE ターミナル勉強会の発表資料です。
systemdでよく使うサブコマンド
systemdでよく使うサブコマンド
Kazuhiro Nishiyama
[第136回関西Debian勉強会 + Linux Kernel 勉強会 LT大会](https://debianjp.connpass.com/event/90376/)での発表資料です。
Unix
Unix
Hiramatsu Ryosuke
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
R以外の研究ツール
R以外の研究ツール
弘毅 露崎
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
AromaBlack
主にPythonの標準ライブラリライブラリを紹介します。
Hello, systemd
Hello, systemd
Emma Haruka Iwao
Systemd を使うと何がうれしいのかについて説明しています。
3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術
Kei IWASAKI
#pyconjp 2015 の LTで発表した際に利用した資料です https://pycon.jp/2015/ja/schedule/presentation/93/
Unix1
Unix1
Takaya Kotohata
http://tkot.hatenablog.com/ 詳解UNIXプログラミングの学習用メモです。
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
max747
kyoto.py in 高槻
Functions
Functions
do_aki
CentOS5.6 の /etc/rc.d/init.d/functions ぜん27
Fabric Essentials
Fabric Essentials
Yoshinari Takaoka
Fabric の基礎/入門/使い方 と現状の社内プラクティス
2日間Fabricを触った俺が 色々解説してみる
2日間Fabricを触った俺が 色々解説してみる
airtoxin Ishii
Fabric
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
t-sin
Lisp meetup #69 にて。
Memory sanitizer
Memory sanitizer
MITSUNARI Shigeo
Rpn and forth 超入門
Rpn and forth 超入門
Yoshitaka Seo
Rpn and forth 超入門 技術ひろば.net 2010年7月勉強会 セッション資料 2010年7月10日開催
エンジニアのための痔の話
エンジニアのための痔の話
Kouhei Maeda
私がPerlを使う理由
私がPerlを使う理由
Yohei Azekatsu
S2s websrv201011-presen
S2s websrv201011-presen
Kouhei Maeda
mod_authまわりの話。
SSH Tips & Tricks
SSH Tips & Tricks
Nobutoshi Ogata
誰得コマンド&オプション35連発
誰得コマンド&オプション35連発
Yozo SATO
systemdでよく使うサブコマンド
systemdでよく使うサブコマンド
Kazuhiro Nishiyama
Unix
Unix
Hiramatsu Ryosuke
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
R以外の研究ツール
R以外の研究ツール
弘毅 露崎
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
AromaBlack
Hello, systemd
Hello, systemd
Emma Haruka Iwao
3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術
Kei IWASAKI
Unix1
Unix1
Takaya Kotohata
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
max747
Functions
Functions
do_aki
Fabric Essentials
Fabric Essentials
Yoshinari Takaoka
2日間Fabricを触った俺が 色々解説してみる
2日間Fabricを触った俺が 色々解説してみる
airtoxin Ishii
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
t-sin
Memory sanitizer
Memory sanitizer
MITSUNARI Shigeo
Rpn and forth 超入門
Rpn and forth 超入門
Yoshitaka Seo
エンジニアのための痔の話
エンジニアのための痔の話
Kouhei Maeda
私がPerlを使う理由
私がPerlを使う理由
Yohei Azekatsu
S2s websrv201011-presen
S2s websrv201011-presen
Kouhei Maeda
Viewers also liked
(20)
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
博文 斉藤
シェルスクリプトワークショップ資料です。
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
博文 斉藤
シェルスクリプトワークショップの資料です。
awk入門
awk入門
ika take
こだまでしょうか
Usptomonokai 20111028
Usptomonokai 20111028
博文 斉藤
Usp友の会勉強会、ジャクソン構造図の巻(前編)
Usp友の会勉強会、ジャクソン構造図の巻(前編)
umidori
Awk勉強会用資料
Awk勉強会用資料
Junnosuke Toku
Docker 基本のおさらい
Docker 基本のおさらい
Naoki Nagazumi
Docker の基本的な使い方をkwskrb で紹介した時の資料です。 本スライドは次の資料の抜粋+α版です。もう少し詳細を知りたい場合にあわせて御覧ください。 『そろそろ知っておきたい!!コンテナ技術とDockerのキホン』 http://www.slideshare.net/ngzm/lxc-and-dockerbasic
第31回WebSig会議【セッション2】 タブレットが与える影響について考える
第31回WebSig会議【セッション2】 タブレットが与える影響について考える
Hideto Ishibashi
2012年12月1日(土)第31回WebSig会議「創り手が意識すべきタブレット,ユーザが使い始めるタブレット」【セッション2】タブレットが与える影響について考える~石橋秀仁(ゼロベース株式会社代表取締役社長/ウェブ・アーキテクト) http://websig247.jp/meeting/31/000254.html
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall
博文 斉藤
「形式を指定して貼り付け」を使いこなそう!
「形式を指定して貼り付け」を使いこなそう!
Jun Meguro
LibreOfficeには、コピーしたデータを様々な形式で貼り付けできる機能、 「形式を指定して貼り付け」 があります。 様々な場面で便利に使えるこの機能の使い方をご紹介します。
会津若松市 情報化の取り組みと防災分野へのオープンデータ活用
会津若松市 情報化の取り組みと防災分野へのオープンデータ活用
Jun Meguro
会津若松市の情報化の取り組みと防災分野へのオープンデータ活用について紹介します。
文書作成だけじゃない!会津若松市のDraw活用
文書作成だけじゃない!会津若松市のDraw活用
Jun Meguro
20150717 gisca 自治体によるopenstreetmapの活用について
20150717 gisca 自治体によるopenstreetmapの活用について
和仁 浅野
Complianceからのアプローチ
初心者向けシェル芸勉強会
初心者向けシェル芸勉強会
Katsuya Tashiro
初心者向けシェル芸勉強会のイントロ資料
T4t - tools for teams - 第1回 発表スライド
T4t - tools for teams - 第1回 発表スライド
Kojiro Yokota
IT業界と近いようで遠い印刷業界出身のプログラマが印刷業界の進行管理(進捗管理)について自身の経験をもとに成功談・失敗談をまとめました。
10 w 02-議事録、報告書について
10 w 02-議事録、報告書について
Hieu Mac
【議事録】スキルアップ勉強会(6月度) h23.07.10
【議事録】スキルアップ勉強会(6月度) h23.07.10
Kenichi Takara
スキルアップ勉強会(6月度)の議事録です。 プレゼン資料もご参照下さい。
OGPってなんでしょう?
OGPってなんでしょう?
Reina Okabe
2011.06.11 Facebookアプリつくろう会LT資料。「試してみました」的内容になっています。 2012.09にURL Linter(デバッガー)の情報を追記しました。
ビジネスを加速させる議事録作成
ビジネスを加速させる議事録作成
Kohji Tanaka
テーマは『○○』勉強会
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
Ryuichi Ueda
OSC2011 Tokyo/Fallで、日本gnu awkユーザー会の斉藤さんと行ったプレゼンテーションです。awkとbashの馴れ合い、もとい、共存共栄がテーマです。
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
博文 斉藤
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
博文 斉藤
awk入門
awk入門
ika take
Usptomonokai 20111028
Usptomonokai 20111028
博文 斉藤
Usp友の会勉強会、ジャクソン構造図の巻(前編)
Usp友の会勉強会、ジャクソン構造図の巻(前編)
umidori
Awk勉強会用資料
Awk勉強会用資料
Junnosuke Toku
Docker 基本のおさらい
Docker 基本のおさらい
Naoki Nagazumi
第31回WebSig会議【セッション2】 タブレットが与える影響について考える
第31回WebSig会議【セッション2】 タブレットが与える影響について考える
Hideto Ishibashi
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall
博文 斉藤
「形式を指定して貼り付け」を使いこなそう!
「形式を指定して貼り付け」を使いこなそう!
Jun Meguro
会津若松市 情報化の取り組みと防災分野へのオープンデータ活用
会津若松市 情報化の取り組みと防災分野へのオープンデータ活用
Jun Meguro
文書作成だけじゃない!会津若松市のDraw活用
文書作成だけじゃない!会津若松市のDraw活用
Jun Meguro
20150717 gisca 自治体によるopenstreetmapの活用について
20150717 gisca 自治体によるopenstreetmapの活用について
和仁 浅野
初心者向けシェル芸勉強会
初心者向けシェル芸勉強会
Katsuya Tashiro
T4t - tools for teams - 第1回 発表スライド
T4t - tools for teams - 第1回 発表スライド
Kojiro Yokota
10 w 02-議事録、報告書について
10 w 02-議事録、報告書について
Hieu Mac
【議事録】スキルアップ勉強会(6月度) h23.07.10
【議事録】スキルアップ勉強会(6月度) h23.07.10
Kenichi Takara
OGPってなんでしょう?
OGPってなんでしょう?
Reina Okabe
ビジネスを加速させる議事録作成
ビジネスを加速させる議事録作成
Kohji Tanaka
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
Ryuichi Ueda
Similar to 仕事で使えるシェルスクリプト
(20)
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
Ransui Iso
Lisp Tutorial最終回。コンパイラとかパッケージングとか、実際にツールを作ってう時に必須になりそうな部分を解説します。あと、おまけで賛否両論なloopマクロについてちょこっとまとめ。最後にお勧めの書籍とか紹介してからおしまいです。
Php in ruby
Php in ruby
do_aki
Subprocess no susume
Subprocess no susume
Makoto Kishimoto
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
博文 斉藤
Tokyor23 doradora09
Tokyor23 doradora09
Nobuaki Oshiro
さわってみようTOPPERS/SSP
さわってみようTOPPERS/SSP
NSaitoNmiri
TOPPERS/SSPカーネルの基本的な機能についてさわってみる.
Powershell勉強会 v5 (こちらが最新です。)
Powershell勉強会 v5 (こちらが最新です。)
Tetsu Yama
Powershellの最新は v6 2017/12/30現在 目次を付けました! 基礎編はこれで完結です。 .Netモジュールの使い方等も解説したいですが、後々きっと。
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
記念すべき第1回PHPカンファレンスのプレゼン資料です。2000年の資料のため、技術的には賞味期限切れですが、単純に懐かしみたい方にどうぞ。
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Tetsu Yama
自社勉強会用。 Powershell 初心者にも基礎からわかるように書いてみましたん。 目次をつける予定。 => v5 で目次つけました!
Capistrano
Capistrano
Yasuharu Fukuda
勉強会で使ったやつ
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
和弘 井之上
無料で入手できるビジュアル開発ツール「Delphi Starter Edition / C++ Builder Starter Edition」 を使って 、楽しくプログラミングを学びましょう。毎週月曜17時より、オンライン放送。1シーズン約3ヶ月ごとに、テーマを分けて学んでいきます。視覚的かつ直感的に開発を進めることのできるDelphi / C++Builderを用いれば、プログラミング知識のない方も、よりかんたんにプログラミング技術とアプリ開発のスキルを身に着けることができます。 シーズン2 C++Builderの部 第6回 ‟配列とオブジェクト"
Terraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as Code
Takahisa Iwamoto
Terraformで始めるInfrastructure as Code
Ansible2.0と実用例
Ansible2.0と実用例
OSSラボ株式会社
OSSコンソーシアムクラウド部会(2016/2/1)での発表資料
PHPの今とこれから2014
PHPの今とこれから2014
Rui Hirokawa
Webアプリケーション構築用スクリプト言語として進化し続けるPHPの今とこれからについて講演します。この一年、PHP 5.6リリースを始め、PHPの進化系とも言えるHack/HHVMの公開など、PHPには様々な話題がありました。PHPNGとしてアナウンスされた次期メジャーバージョンアップPHP 7.0の話題等、今後の方向と課題についてもとりあげます。
Ilstudy001_20110806
Ilstudy001_20110806
Interlink Corporation
Powershell基礎_20180521用
Powershell基礎_20180521用
Tetsu Yama
Powershell勉強会
メタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
NOTE: These are joke programs
Task
Task
Shingo Nakamura
Perl勉強会#2資料
Perl勉強会#2資料
Kiyo Tsunezumi
[src] https://github.com/kiyotune/misc/tree/master/src
Web技術勉強会23回目
Web技術勉強会23回目
龍一 田中
Web技術勉強会23回目
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
Ransui Iso
Php in ruby
Php in ruby
do_aki
Subprocess no susume
Subprocess no susume
Makoto Kishimoto
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
博文 斉藤
Tokyor23 doradora09
Tokyor23 doradora09
Nobuaki Oshiro
さわってみようTOPPERS/SSP
さわってみようTOPPERS/SSP
NSaitoNmiri
Powershell勉強会 v5 (こちらが最新です。)
Powershell勉強会 v5 (こちらが最新です。)
Tetsu Yama
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Tetsu Yama
Capistrano
Capistrano
Yasuharu Fukuda
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
和弘 井之上
Terraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as Code
Takahisa Iwamoto
Ansible2.0と実用例
Ansible2.0と実用例
OSSラボ株式会社
PHPの今とこれから2014
PHPの今とこれから2014
Rui Hirokawa
Ilstudy001_20110806
Ilstudy001_20110806
Interlink Corporation
Powershell基礎_20180521用
Powershell基礎_20180521用
Tetsu Yama
メタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
Task
Task
Shingo Nakamura
Perl勉強会#2資料
Perl勉強会#2資料
Kiyo Tsunezumi
Web技術勉強会23回目
Web技術勉強会23回目
龍一 田中
仕事で使えるシェルスクリプト
1.
仕事で使えるシェルスクリプト仕事で使えるシェルスクリプト USP 友の会 今泉光之 @bsdhack http://bsdhack.org
2.
仕事で使えるシェルスクリプト 2 講師講師 ● 今泉光之 UNIX/Linux環境でのプログラミングを中心に、ネットワークや インフラなども含め20年以上に渡る経験だけは積んできました。 当初はC言語でコンパイラ、Xサーバ、ドライバ、TCP/IPによる 通信などシステム系のプログラミングが主でしたが、最近はPerl やPHPなどのWeb向けのLLも使っています。
3.
仕事で使えるシェルスクリプト 3 POSIXPOSIX についてについて ● POSIX
とは – Portable Operating System Interface – 各種 UNIX OS を始めとする異なる OS 実装に共通の API を定め、移植性の高いアプリケーションソフト ウェアの開発を容易にすることを目的として IEEE が策定したアプリケーションインタフェース規格 – 名前はリチャード・ストールマン提案による
4.
仕事で使えるシェルスクリプト 4 なぜなぜ POSIXPOSIX
かか ● 元々は Bourne Shell のみだったので互換性は問題なし ● シェルスクリプトは様々な環境で動作した ● csh 、 tcsh 、 ksh 、 bash 、 zsh などの登場により機能は増加し たが互換性は減少した ● ソフトウェア製品を様々なベンダーの数ある unix システムで 動作させるために互換性を意識する必要がある
5.
仕事で使えるシェルスクリプト 5 どんな時にどんな時に POSIXPOSIX
を意識するのかを意識するのか ● ソフトウェア製品の開発 – 色々な環境で動作させる事で開発コストが下がる ● 監査が厳しい状況 – 金融業界などは導入するソフトに制限がある ● そもそも bash は標準シェルじゃない
6.
仕事で使えるシェルスクリプト 6 checkbashismscheckbashisms ● シェルスクリプトの
lint(1) 的存在 – 引数で指定されたシェルスクリプトを解析して POSIX に準拠していない部分を指摘する – http://sourceforge.net/projects/checkbaskisms/ – Sourceforge からダウンロードできます – 残念ながら perl スクリプト
7.
仕事で使えるシェルスクリプト 7 POSIXPOSIX を気にしないを気にしない ● POSIX
を気にしない場面も必要 – アプライアンスサーバを作る場合 ● 全て自前で揃える必要がある ● 組み込みに近いので独自仕様を優先する ● サイズや速度に制限がある場合もある
8.
仕事で使えるシェルスクリプト 8 POSIXPOSIX を気にしないを気にしない ● OS
固有の処理(起動スクリプトなど) – redhat 系 ● パラメタは /etc/sysconfig 以下にファイルを設置 ● 起動スクリプトは /etc/rc.d/init.d 以下にファイルを設置 ● 起動制御は chkconfig で指定 – FreeBSD ● パラメタ・起動制御は /etc/rc.conf に指定 ● 起動スクリプトは /usr/local/etc/rc.d 以下にファイルを設置
9.
仕事で使えるシェルスクリプト 9 POSIXPOSIX まとめまとめ 基本は
POSIX を意識するが 必要があれば 敢えて POSIX を無視する必要もあります
10.
仕事で使えるシェルスクリプト 10 フィルターコマンドフィルターコマンド ● 標準入力から入力を受け取り結果を標準出力に 出力するコマンド。 –
パイプによりコマンドを連続で実行できる – unix のコマンドでは基本的な動作(例外あり) – 余計な出力はせずに必要なデータのみ出力 – エラーは標準エラー出力に
11.
仕事で使えるシェルスクリプト 11 シェル変数シェル変数 ● シェル組み込みの
set コマンドを活用する事で シェルスクリプトの開発や運用が 32 倍 ( 当社 比 ) 捗ります – マニュアル(オンラインマニュアル)を活用しよう – できれば原文(英語)でマニュアルを読もう
12.
仕事で使えるシェルスクリプト 12 シェル変数シェル変数 -e-e ●
スクリプト実行時に制御文以外でエラーが発生 した場合に スクリプトを終了させる。 $ cat foo.sh #!/bin/sh set -e files=`la ${tmpdir}` echo "FILES: ${files}" $ sh foo.sh foo.sh: line 3: la: command not found
13.
仕事で使えるシェルスクリプト 13 シェル変数シェル変数 -x-x ●
コマンドが実行される前にコマンドと変数の展 開結果を stderr に出力する。 $ cat foo.sh #!/bin/sh set -x files=`ls ${tmpdir}` echo "FILES: ${files}" $ sh foo.sh ++ ls + files='bar baz 以下略
14.
仕事で使えるシェルスクリプト 14 シェル変数シェル変数 -v-v ●
シェルの入力行を stderr に出力する。 $ cat foo.sh #!/bin/sh set -v files=`ls ${tmpdir}` echo "FILES: ${files}" $ sh foo.sh files=`ls` ls echo "FILES: ${files}" 以下略
15.
仕事で使えるシェルスクリプト 15 シェル変数シェル変数 -n-n ●
コマンドの実行を抑止する。文法チェックや前 述の -v と組み合わせて使用すると便利。 $ cat foo.sh #!/bin/sh set -vn files=`ls ${tmpdir}` echo "FILES: ${files}" $ sh foo.sh files=`ls` echo "FILES: ${files}"
16.
仕事で使えるシェルスクリプト 16 シェル変数シェル変数 -u-u ●
シェル変数を展開した時に値が設定されていな い場合はエラーとする。 $ cat foo.sh #!/bin/sh set -u tmpdir="/tmp" rm -r ${tnpdir}/* $ sh foo.sh foo.sh: line 4: tnpdir: unbound variable
17.
仕事で使えるシェルスクリプト 17 変数展開変数展開 ● シェルによる変数展開を活用しよう –
${parameter:-word} デフォルト値への置換 – ${parameter:=word} デフォルト値の代入 – ${parameter:?[word]} 値の検査とエラー – ${parameter:+word} 代替値の使用 – ${#parameter} 文字列長の取得 – ${parameter%word} 最短後置パターンの削除 – ${parameter%%word} 最長後置パターンの削除 – ${parameter#word} 最短前置パターンの削除 – ${parameter##word} 最長前置パターンの削除
18.
仕事で使えるシェルスクリプト 18 デフォルト値への置換デフォルト値への置換 ● ${parameter:-word} –
${parameter} が NULL の場合 word に置換される。 $ echo ${foo} $ echo ${foo:-HOGE} HOGE $ echo ${foo} $ foo=FUGA $ echo ${foo:-FOO} FUGA
19.
仕事で使えるシェルスクリプト 19 デフォルト値の代入デフォルト値の代入 ● ${parameter:=word} –
${parameter} が NULL の場合 word に置換され parameter に代入される。 $ echo ${foo} $ echo ${foo:=HOGE} HOGE $ echo ${foo} HOGE $ echo ${foo:=FUGA} HOGE
20.
仕事で使えるシェルスクリプト 20 値の検査とエラー値の検査とエラー ● ${parameter:?[word]} –
${parameter} が NULL の場合 word かデフォルトの値を 表示しシェルをエラー終了させる。 $ echo ${foo} $ echo ${foo:?HOGE} HOGE
21.
仕事で使えるシェルスクリプト 21 代替値の使用代替値の使用 ● ${parameter:+word} –
${parameter} が NULL 以外の場合 word に置換される $ echo ${foo:+HOGE} $ echo ${foo} $ foo=FUGA $ echo ${foo} FUGA $ echo ${foo:+HOGE} HOGE
22.
仕事で使えるシェルスクリプト 22 文字列長の取得文字列長の取得 ● ${#parameter} –
${parameter} の文字列としての長さに置換される。 $ echo ${foo} $ echo ${#foo} 0 $ foo=HOGE $ echo ${foo} HOGE $ echo ${#foo} 4
23.
仕事で使えるシェルスクリプト 23 最短後置パターンの削除最短後置パターンの削除 ● ${parameter%word} –
${parameter} の右から word で示されるパターンの最短 部分を削除する。 $ echo ${foo} $ echo ${#foo} 0 $ foo=HOGE $ echo ${foo} HOGE $ echo ${#foo} 4 $ foo=/hoge/fuga/moge $ echo ${foo%/*} /hoge/fuga $ foo=hoge.c $ echo ${foo%.*} hoge $ foo=fuga $ echo ${foo%.*} fuga
24.
仕事で使えるシェルスクリプト 24 最長後置パターンの削除最長後置パターンの削除 ● ${parameter%%word} –
${parameter} の右から word で示されるパターンの最長 部分を削除する。 $ foo=hoge.fuga.moge $ echo ${foo%%.*} hoge $ foo=http://hoge.fuga.moge:8888/ $ echo ${foo%%:*} http $ foo=fuga $ echo ${foo%%.*} fuga
25.
仕事で使えるシェルスクリプト 25 最短前置パターンの削除最短前置パターンの削除 ● ${parameter#word} –
${parameter} の左から word で示されるパターンの最短 部分を削除する。 $ foo=hoge.c $ echo ${foo#*.} c $ foo=hoge.fuga.moge $ echo ${foo#*.} fuga.moge $ foo=fuga $ echo ${foo#*.} fuga
26.
仕事で使えるシェルスクリプト 26 最長前置パターンの削除最長前置パターンの削除 ● ${parameter##word} –
${parameter} の左から word で示されるパターンの最長 部分を削除する。 $ foo=hoge.fuga.moge $ echo ${foo##*.} moge $ foo=/hoge/fuga/moge $ echo ${foo##*/} moge $ foo=fuga $ echo ${foo##*.} fuga
27.
仕事で使えるシェルスクリプト 27 traptrap の活用の活用 ● trap
(1) で 0 を指定する – スクリプトが正常終了した時にも指定した処理が実 行されるので、プログラム中で作成した一時ファイ ルの削除などにはもってこい。 tmpdir="${TMP:-/tmp}/`basename ${0}`.$$" mkdir -p "${tmpdir}" trap 'rm -r "${tmpdir}"' 0
28.
仕事で使えるシェルスクリプト 28 コマンドの活用コマンドの活用 ● コマンドの機能をフルに活用する grep
"^HOGEHOGE=" file | awk 'BEGIN { FS = "="} { print $2 }' ↓ awk 'BEGIN{FS="="}/^HOGEHOGE=/{ print $2 }' file awk 'BEGIN{FS="="}{ if($1 == "HOGEHOGE") print $2 }' file もしくは sed -n '/^HOGEHOGE=/s/^.*=//p' file
29.
仕事で使えるシェルスクリプト 29 ヒアドキュメントの活用ヒアドキュメントの活用 ● 複数行の固定データなどはヒアドキュメントを 活用する echo
"1 行目 " > ${file} echo "2 行目 " >> ${file} : echo "n 行目 " >> ${file} ↓ cat << EOF > ${file} 1 行目 2 行目 : n 行目 EOF
30.
仕事で使えるシェルスクリプト 30 setset の活用の活用 ●
スペース区切りのデータ解析は set を活用 date="`date '+%Y %m %d'`" year="`echo ${date} | awk '{ print $1 }'`" month="`echo ${date} | awk '{ print $2 }'`" day="`echo ${date} | awk '{ print $3 }'`" ↓ set -- `date '+%Y %m %d'` year="${1}" month="${2}" day="${3}"
31.
仕事で使えるシェルスクリプト 31 正規表現正規表現 ● 正規表現の種類 –
POSIX 1003.2 で定義されている – 拡張正規表現 : egrep などモダンな実装 – 基本正規表現 : ed など旧来の実装 ● | 、 + 、 ? は存在しない ● { 、 } 、 ( 、 ) はそれぞれ { 、 } 、 ( 、 ) ● ^ 、 $ は正規表現の先頭 / 末尾意外では普通の文字 – + 、 ? は代替の表現があるが | の代替は面倒 ● シェルの glob とは異なるので注意
32.
仕事で使えるシェルスクリプト 32 宿題宿題 ● 重複ファイルの削除 –
mh 形式のメイルファイルで重複したメイルを削除 ● apache ログの成形 – apache のログから URL 毎のアクセス回数を取得 ● postfix ログの成形 – postfix のログを成形してメッセージ毎に出力
Download