Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UNIX/Linuxのキモである標準入出力・リダイレクション・パイプ を説明してみよう!
Search
F-Yuki
January 23, 2021
Programming
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
UNIX/Linuxのキモである標準入出力・リダイレクション・パイプ を説明してみよう!
F-Yuki
January 23, 2021
More Decks by F-Yuki
See All by F-Yuki
コミュニティって...いい...
7603
0
36
Gitの流れ...総復習してみた
7603
0
190
Other Decks in Programming
See All in Programming
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
120
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
110
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
2
310
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
230
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
260
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
260
Oxlintはいいぞ(続)
yug1224
1
540
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
1
470
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
250
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
670
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
140
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
310
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
240
Code Review Best Practice
trishagee
74
20k
Crafting Experiences
bethany
1
290
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
710
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
How to train your dragon (web standard)
notwaldorf
97
6.8k
BBQ
matthewcrist
89
10k
エンジニアに許された特別な時間の終わり
watany
108
250k
30 Presentation Tips
portentint
PRO
1
390
Being A Developer After 40
akosma
91
590k
Transcript
2021/1/23(土) FJORD BOOT CAMP ⚡初めてのLT会 Vol.6 @フッシー(31期生) 「UNIX/Linuxのキモである 標準入出力・リダイレクション・パイプ
を説明してみよう!」 祝初LT会
〜本日のアジェンダ〜 ・フッシーって何物?(ここ重要です!w) ・標準入出力・リダイレクション・パイプを説明してみる ・まとめ
〜本日のアジェンダ〜 ・フッシーって何物?(ここ重要です!w) ・標準入出力・リダイレクション・パイプを説明してみる ・まとめ
九州男児 名前:フッシー 年齢:35歳(S.60年) 趣味:キャンプ(初心者)バスケ カラオケ(お酒が入ると) 仕事歴:2008年4月〜2011年3月 求人広告業界(営業職) 2011年4月〜現在 製薬業界(営業職) 大名エンジニアカレッジ経由でフィヨルドを知り、一月より正式に参加しています!宜しくお 願いいたします
〜本日のアジェンダ〜 ・フッシーって何物?(ここ重要です!w) ・標準入出力・リダイレクション・パイプを説明してみる ・まとめ
〜本日のアジェンダ〜 ・フッシーで何物?(ここ重要です!w) ・標準入出力・リダイレクション・パイプを説明してみる ・まとめ WHY
〜本日のアジェンダ〜 ・フッシーって何物?(ここ重要です!w) ・標準入出力・リダイレクション・パイプを説明してみる ・まとめ 終了条件 ・標準入出力・リダイレクション・パイプを他人に
説明できるぐらい理解する。
《初めは標準入出力・リダイレクション・パイプのことをどう思っていたのか》 標準入出力 →読んで字の如く、入力や出力に関する事! リダイレクション →向き変える?何らかの処理を変える? パイプ
→棒??一体何者?? よく分からん!!!
《標準入出力・リダイレクション・パイプのことを調べると...》 標準入出力 →利用されるデータの入力元を標準入力、データの出力先を標準出力と呼ぶ。 リダイレクション →「標準出力や標準入力の表示先を変更すること」 パイプ(|)
→複数のコマンドを組み合わせて使うための手段であり、コマンドの入出力を次の コマンドへ引き渡す処理。
ふむふむ 言葉の意味は理解できましたが、 でもこれだけでは実際に処理の流れはどのようなになって いるのかという疑問が出たので、 ここからは図を用い説明していきます!
シェル $ echo "hello world" ユーザがコマンド入力 《標準入力》 カーネルの処理結果をターミナルで表示で
きるようにシェルで解釈 結果を表示 《標準出力》 hello world 「標準入出力の流れ」 Linuxカーネル シェルによってカーネルが分かるように解 釈してコマンド実行 PC端末のターミナルから入力 PC端末のターミナルへ出力
シェル $ echo "hello world" > test.txt カーネルの処理結果をターミナルで表示で きるようにシェルで解釈
リダイレクション Linuxカーネル シェルによってカーネルが分かるように解 釈してコマンド実行 PC端末のターミナルから入力 PC端末のtest.txtファイルへ出力(test.txt内に保存されているイメージ) ユーザがコマンド入力 《標準入力》 結果を表示 《標準出力》
「パイプ機能の流れ」 lsの結果をsortコマンドで逆順ソート 小さなコマンドをパイプで連結することによって、複数のコマンドがまるで一 つのプログラムのように動作させる事ができます
シェル $ ls -1 | sort -r Linuxカーネル シェルによってカーネルが分かるように解 釈してコマンド実行
PC端末のターミナルから入力 PC端末のターミナルへ出力 プログラミング関連 名称未設定フォルダ ・ ・ 結果を表示 《標準出力/$ sort -r》 ユーザがコマンド入力 《標準入力/$ ls -1》 Linuxカーネル シェルによってカーネルが分かるように解 釈してコマンド実行 カーネルの処理結果をターミナルで表示で きるようにシェルで解釈 シェル カーネルの処理結果をターミナルで表示で きるようにシェルで解釈 パイプ機能を使い $ ls -1の結果を$ sort -rへ渡す 《標準出力/$ ls -1》 パイプ機能を使い渡された結果が $ sort -rコマンド 《標準入力/$sort -r》 「|」(パイプ)
シェル $ ls -1 | sort -r Linuxカーネル シェルによってカーネルが分かるように解 釈してコマンド実行
PC端末のターミナルから入力 PC端末のターミナルへ出力 プログラミング関連 名称未設定フォルダ ・ ・ 結果を表示 《標準出力/$ sort -r》 ユーザがコマンド入力 《標準入力/$ ls -1》 Linuxカーネル シェルによってカーネルが分かるように解 釈してコマンド実行 カーネルの処理結果をターミナルで表示で きるようにシェルで解釈 シェル カーネルの処理結果をターミナルで表示で きるようにシェルで解釈 パイプ機能を使い $ ls -1の結果を$ sort -rへ渡す 《標準出力/$ ls -1》 パイプ機能を使い渡された結果が $ sort -rコマンド 《標準入力/$sort -r》 「|」(パイプ)
〜本日のアジェンダ〜 ・フッシーって何物?(ここ重要です!w) ・標準入出力・リダイレクション・パイプを説明してみる ・まとめ
コンピュータの世界には、「入力」→「処理」→「出力」という基本的な流れ があるように、Linuxのコマンドにも入力されたデータを受け取って、処理し た結果を出力するという流れがあります。この利用されるデータの入力元 が標準入力、データの出力先が標準出力です。
この標準入力、標準出力を基本に、 ・出力先を変更する作業が「リダイレクション」
・コマンドを繋げて入出力を次のコマンドへ引き渡す処理が「パイプ 機能」です!
皆様...いかがだったでしょうか♂ この説明で伝わりましたでしょうか? Good or Bad 是非、コメントやアドバイスを頂けますと幸いです♂
参考 ・https://www.kenschool.jp/blog/?p=1143 ・https://eng-entrance.com/linux-redirect ・https://eng-entrance.com/linux-pipeline#i ・イラスト(いらすとや)https://www.irasutoya.com/ ご清聴ありがとうございました♂