Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Kei Kamikawa
511 views
Yomitanpm 6
yomitanpm #6
Devices & Hardware
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 36
2
/ 36
3
/ 36
4
/ 36
5
/ 36
6
/ 36
7
/ 36
8
/ 36
9
/ 36
10
/ 36
11
/ 36
12
/ 36
13
/ 36
14
/ 36
15
/ 36
16
/ 36
17
/ 36
18
/ 36
19
/ 36
20
/ 36
21
/ 36
22
/ 36
23
/ 36
24
/ 36
25
/ 36
26
/ 36
27
/ 36
28
/ 36
29
/ 36
30
/ 36
31
/ 36
32
/ 36
33
/ 36
34
/ 36
35
/ 36
36
/ 36
More Related Content
PDF
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
by
inaz2
PDF
Lapp環境をソースからインストールする(centos)
by
Kimiyuki Yamauchi
PDF
第3回ローレイヤー勉強会 : FPGAでコンピュータを作ってみた
by
Ito Takahiro
PPTX
plotnetcfg入門 | Introduction to plotnetcfg
by
Kentaro Ebisawa
PDF
StackExchangeで見たシステムプログラミング案件
by
yaegashi
PPT
2017年春のPerl
by
charsbar
PPTX
Hello, systemd
by
Emma Haruka Iwao
PDF
Lagopus 0.2.2
by
Masaru Oki
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
by
inaz2
Lapp環境をソースからインストールする(centos)
by
Kimiyuki Yamauchi
第3回ローレイヤー勉強会 : FPGAでコンピュータを作ってみた
by
Ito Takahiro
plotnetcfg入門 | Introduction to plotnetcfg
by
Kentaro Ebisawa
StackExchangeで見たシステムプログラミング案件
by
yaegashi
2017年春のPerl
by
charsbar
Hello, systemd
by
Emma Haruka Iwao
Lagopus 0.2.2
by
Masaru Oki
What's hot
PPTX
initとプロセス再起動
by
Takashi Takizawa
PPTX
Introduction to Ostinato, network packet crafting and generator.
by
Kentaro Ebisawa
PPTX
Casperjsのインストール
by
Kohei Misu
ODP
Iocage
by
Yuichiro Naito
PDF
超簡単!ActivePerlをWindows Serverにインストール
by
Shin Tanigawa
PDF
NDS#31
by
hayajo Imai
PDF
SDN Lab環境でのRobotFramework実践活用
by
Toshiki Tsuboi
PDF
initramfsについて
by
Kazuhiro Nishiyama
ODP
Android デバッグ小ネタ
by
l_b__
PDF
#logstudy 01 rsyslog入門
by
Takashi Takizawa
PDF
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
by
Taira Hajime
PDF
Vagrant環境のAnsibleを速くしたい
by
Kazuhiro Oinuma
PDF
Yohes kitchen
by
Youhei Kawahara
PPT
Solaris Container
by
Fumikazu FUJIWARA
PDF
Lapp環境をソースからインストールする(debian)
by
Kimiyuki Yamauchi
PDF
Ubuntu 14.04にmysql version 5.6.16とmy sql workbench 6.1.4を入れるには!
by
Kazuhiro Murota
PPT
Keynote In Japanese
by
Kuniyoshi Murata
PDF
Lagopus 0.2
by
Masaru Oki
initとプロセス再起動
by
Takashi Takizawa
Introduction to Ostinato, network packet crafting and generator.
by
Kentaro Ebisawa
Casperjsのインストール
by
Kohei Misu
Iocage
by
Yuichiro Naito
超簡単!ActivePerlをWindows Serverにインストール
by
Shin Tanigawa
NDS#31
by
hayajo Imai
SDN Lab環境でのRobotFramework実践活用
by
Toshiki Tsuboi
initramfsについて
by
Kazuhiro Nishiyama
Android デバッグ小ネタ
by
l_b__
#logstudy 01 rsyslog入門
by
Takashi Takizawa
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
by
Taira Hajime
Vagrant環境のAnsibleを速くしたい
by
Kazuhiro Oinuma
Yohes kitchen
by
Youhei Kawahara
Solaris Container
by
Fumikazu FUJIWARA
Lapp環境をソースからインストールする(debian)
by
Kimiyuki Yamauchi
Ubuntu 14.04にmysql version 5.6.16とmy sql workbench 6.1.4を入れるには!
by
Kazuhiro Murota
Keynote In Japanese
by
Kuniyoshi Murata
Lagopus 0.2
by
Masaru Oki
Viewers also liked
PDF
Okinawapm #1
by
Kei Kamikawa
PDF
それPerlでできるよ
by
まさあき さいとう
PDF
作ったものを見せたかった話
by
Kei Kamikawa
PDF
Okinawapm#3
by
Kei Kamikawa
PDF
初見では読みづらいPerl
by
Kei Kamikawa
PDF
The story of language development
by
Hiroshi SHIBATA
PDF
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
by
Yusuke Wada
PDF
はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015
by
Shunsuke Kozawa
PDF
How to create/improve OSS products and its community
by
SATOSHI TAGOMORI
PDF
ステージング環境のつくりかた
by
Yuki Ishikawa
Okinawapm #1
by
Kei Kamikawa
それPerlでできるよ
by
まさあき さいとう
作ったものを見せたかった話
by
Kei Kamikawa
Okinawapm#3
by
Kei Kamikawa
初見では読みづらいPerl
by
Kei Kamikawa
The story of language development
by
Hiroshi SHIBATA
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
by
Yusuke Wada
はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015
by
Shunsuke Kozawa
How to create/improve OSS products and its community
by
SATOSHI TAGOMORI
ステージング環境のつくりかた
by
Yuki Ishikawa
Similar to Yomitanpm 6
PPTX
Windowsでも使えるシェル
by
Tetsuya Hasegawa
PDF
シェル芸初心者によるシェル芸入門 (修正版)
by
icchy
PPTX
難読化シェル芸
by
xztaityozx
PDF
シェル芸初心者によるシェル芸入門
by
icchy
PDF
Unix 基礎
by
Sho A
PDF
入門 シェル実装
by
Yusuke Sangenya
PDF
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
by
Makoto SAKAI
PDF
GNU awk (gawk) を用いた Apache ログ解析方法
by
博文 斉藤
PDF
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
by
Jun Nogata
ODP
楽しい怪しいシェルスクリプト - 第4回つくらぐ勉強会
by
University of Tsukuba Linux User Group
PDF
Subprocess no susume
by
Makoto Kishimoto
PDF
2017-12-04 Linuxの基本構造とBashでの扱い方
by
浩平 渡邉
PDF
初心者向けシェル芸勉強会
by
Katsuya Tashiro
PDF
jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
by
Ryuichi Ueda
PDF
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸
by
kunst1080
PPTX
20150201 シェル芸勉強会LT GlueLangについて(シェル書いてますが何か?)
by
Ryuichi Ueda
PDF
20130216 シェル芸爆破デスマッチ勉強会
by
Ryuichi Ueda
PDF
Shell入門
by
nasa9084
PDF
Oneliner
by
NNCT programming study group
PPTX
zshという選択肢
by
manaten
Windowsでも使えるシェル
by
Tetsuya Hasegawa
シェル芸初心者によるシェル芸入門 (修正版)
by
icchy
難読化シェル芸
by
xztaityozx
シェル芸初心者によるシェル芸入門
by
icchy
Unix 基礎
by
Sho A
入門 シェル実装
by
Yusuke Sangenya
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
by
Makoto SAKAI
GNU awk (gawk) を用いた Apache ログ解析方法
by
博文 斉藤
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
by
Jun Nogata
楽しい怪しいシェルスクリプト - 第4回つくらぐ勉強会
by
University of Tsukuba Linux User Group
Subprocess no susume
by
Makoto Kishimoto
2017-12-04 Linuxの基本構造とBashでの扱い方
by
浩平 渡邉
初心者向けシェル芸勉強会
by
Katsuya Tashiro
jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
by
Ryuichi Ueda
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸
by
kunst1080
20150201 シェル芸勉強会LT GlueLangについて(シェル書いてますが何か?)
by
Ryuichi Ueda
20130216 シェル芸爆破デスマッチ勉強会
by
Ryuichi Ueda
Shell入門
by
nasa9084
Oneliner
by
NNCT programming study group
zshという選択肢
by
manaten
More from Kei Kamikawa
PDF
我輩が作ったものを淡々と
by
Kei Kamikawa
PDF
俺はこうして Go の CLI を作っている
by
Kei Kamikawa
PDF
JWT を使ってみよう
by
Kei Kamikawa
PDF
grep.metacpan.orgのススメ
by
Kei Kamikawa
PDF
XS を始めよう!
by
Kei Kamikawa
PDF
Yomitan.pmに参加しようよ
by
Kei Kamikawa
PDF
技術を身につける技術
by
Kei Kamikawa
我輩が作ったものを淡々と
by
Kei Kamikawa
俺はこうして Go の CLI を作っている
by
Kei Kamikawa
JWT を使ってみよう
by
Kei Kamikawa
grep.metacpan.orgのススメ
by
Kei Kamikawa
XS を始めよう!
by
Kei Kamikawa
Yomitan.pmに参加しようよ
by
Kei Kamikawa
技術を身につける技術
by
Kei Kamikawa
Yomitanpm 6
1.
OS 3.4 について Kei
kamikawa yomitanpm # 6
2.
OS という講義の課題
3.
Perl で Shell
を実装した話 ※ 内部で sh 使わない
4.
Shell でできること? • フォアグラウンド実行
-> ps -al • バックグラウンド実行 -> ps -al & • パイプ -> ps -al ¦ cat -n • サブシェル -> (ps -al ¦ cat -n)
5.
Shell でできること? • フォアグラウンド実行
-> ps -al • バックグラウンド実行 -> ps -al & • パイプ -> ps -al ¦ cat -n • サブシェル -> (ps -al ¦ cat -n)
6.
Perl で shell
コマンド実行する方法 • system("ps -al") • `ps -al` • open を使う • exec("ps -al")
7.
system("ps -al ) 501
42571 729 4006 0 31 0 2466408 15044 - S+ 0 ttys001 0:00.32 /Users/ CodeHex/.plenv/versions/5.20.2/bin/perl5.20.2 /Users/CodeHex 501 42627 42571 6006 0 0 0 0 0 - Z+ 0 ttys001 0:00.00 (sh) 0 42656 42571 4106 0 31 0 2435172 968 - R+ 0 ttys001 0:00.00 ps -al print `ps -al` 501 42571 729 4006 0 31 0 2466408 15044 - S+ 0 ttys001 0:00.33 /Users/ CodeHex/.plenv/versions/5.20.2/bin/perl5.20.2 /Users/CodeHex 501 42627 42571 6006 0 0 0 0 0 - Z+ 0 ttys001 0:00.00 (sh) 0 42658 42571 4106 0 31 0 2435172 968 - R+ 0 ttys001 0:00.00 ps -al
8.
内部で sh が実行される sh
はいらないね!
9.
なので!
10.
今回は exec を使いました ※
都合上 open は省略
11.
#!/usr/bin/env perl use strict; use
warnings; my @cmd = ("ps", "-al"); if (fork) { wait; } else { exec @cmd; } 例 exec には list を渡したほうがいいらしい exec.pl
12.
exec "ps -al" 501
42860 729 4006 0 31 0 2445592 2244 - S+ 0 ttys001 0:00.02 perl k.pl 0 42898 42860 4106 0 31 0 2444388 980 - R+ 0 ttys001 0:00.00 ps -al _人人人人人人人人_ > sh がいない!! <  ̄Y^Y^Y^Y^Y^Y^Y ̄
13.
Shell でできること? • フォアグラウンド実行
-> ps -al • バックグラウンド実行 -> ps -al & • パイプ -> ps -al ¦ cat -n • サブシェル -> (ps -al ¦ cat -n)
14.
#!/usr/bin/env perl use strict; use
warnings; my @cmd = ("ps", "-al"); if (!fork) { exec @cmd; } 例 exec_bg.pl
15.
Shell でできること? • フォアグラウンド実行
-> ps -al • バックグラウンド実行 -> ps -al & • パイプ -> ps al ¦ cat -n • サブシェル -> (ps al ¦ cat -n)
16.
ところで
17.
標準ストリーム知ってますか?
18.
標準ストリーム • STDIN (Standard
input) <= 標準入力 • STDOUT (Standard output) <= 標準出力 • STDERR (Standard error) <= 標準エラー出力
19.
例えば
20.
ps al ¦
cat -n
21.
ps al ¦
cat -n STDOUT or STDERR STDIN 結果を渡す ※あくまでイメージです STDIN or Not STDOUT or STDERR ➀ ➁ ➂ ➃
22.
#!/usr/bin/env perl use strict; use
warnings; my @cmd1 = ("ps", "al"); my @cmd2 = ("cat", "-n"); pipe READ1, WRITE1; pipe READ2, WRITE2; if (fork) { close READ1; close WRITE2; wait; open STDIN, ">&", READ2; exec @cmd2; } else { close READ2; close WRITE1; open STDOUT, ">&", WRITE2; exec @cmd1; } 例 pipe.pl
23.
複数パイプは?
24.
案. パイプの配列を作る
25.
例えば
26.
ps -al ¦
cat -n ¦ cowsay
27.
ps -al ¦
cat -n ¦ cowsay STDIN or Not STDOUT or STDERR STDIN STDOUT or STDERR STDIN STDOUT or STDERR
28.
STDIN or Not STDOUT or STDERR STDIN STDOUT or STDERR STDIN STDOUT or STDERR こういう並びのパイプの配列を用 意すればできる…!?
29.
コードビュー(10秒) multi_pipe.pl
30.
Shell でできること? • フォアグラウンド実行
-> ps -al • バックグラウンド実行 -> ps -al & • パイプ -> ps al ¦ cat -n • サブシェル -> (ps al ¦ cat -n)
31.
サブシェルって?
32.
shell が shell
を起動
33.
PPIDPID 親プロセス 729 が
子プロセス 48015 を起動している
34.
これを再現
35.
コードビュー(10秒) sub_perl.pl
36.
ご静聴ありがとうございました 😄
Download