Upgrade to Pro — share decks privately, control downloads, hide ads and more …

UNIX/Linuxのキモである標準入出力・リダイレクション・パイプ を説明してみよう!

Ca87f7d72481ab028a167a45ba1783d9?s=47 F-Yuki
January 23, 2021

UNIX/Linuxのキモである標準入出力・リダイレクション・パイプ を説明してみよう!

Ca87f7d72481ab028a167a45ba1783d9?s=128

F-Yuki

January 23, 2021
Tweet

Transcript

  1. 2021/1/23(土) FJORD BOOT CAMP ⚡初めてのLT会 Vol.6
                   @フッシー(31期生) 
 
 「UNIX/Linuxのキモである
   標準入出力・リダイレクション・パイプ


                    を説明してみよう!」
 祝初LT会

  2. 〜本日のアジェンダ〜
 
 ・フッシーって何物?(ここ重要です!w)
 
 ・標準入出力・リダイレクション・パイプを説明してみる
 
 ・まとめ


  3. 〜本日のアジェンダ〜
 
 ・フッシーって何物?(ここ重要です!w)
 
 ・標準入出力・リダイレクション・パイプを説明してみる
 
 ・まとめ


  4. 九州男児
 名前:フッシー
 年齢:35歳(S.60年)
 趣味:キャンプ(初心者)バスケ カラオケ(お酒が入ると)
 仕事歴:2008年4月〜2011年3月 求人広告業界(営業職)
     2011年4月〜現在 製薬業界(営業職)
 大名エンジニアカレッジ経由でフィヨルドを知り、一月より正式に参加しています!宜しくお 願いいたします


  5. 〜本日のアジェンダ〜
 
 ・フッシーって何物?(ここ重要です!w)
 
 ・標準入出力・リダイレクション・パイプを説明してみる
 
 ・まとめ


  6. 〜本日のアジェンダ〜
 
 ・フッシーで何物?(ここ重要です!w)
 
 ・標準入出力・リダイレクション・パイプを説明してみる
 
 ・まとめ
 WHY


  7. 〜本日のアジェンダ〜
 
 ・フッシーって何物?(ここ重要です!w)
 
 ・標準入出力・リダイレクション・パイプを説明してみる
 
 ・まとめ
 
 終了条件
 ・標準入出力・リダイレクション・パイプを他人に


     説明できるぐらい理解する。
 

  8. 《初めは標準入出力・リダイレクション・パイプのことをどう思っていたのか》 
 
 標準入出力
 →読んで字の如く、入力や出力に関する事!
 
 リダイレクション
 →向き変える?何らかの処理を変える?
 
 パイプ


    →棒??一体何者??
 よく分からん!!!

  9. 《標準入出力・リダイレクション・パイプのことを調べると...》 
 
 標準入出力
 →利用されるデータの入力元を標準入力、データの出力先を標準出力と呼ぶ。
 
 リダイレクション
 →「標準出力や標準入力の表示先を変更すること」  
 
 パイプ(|)


    →複数のコマンドを組み合わせて使うための手段であり、コマンドの入出力を次の  コマンドへ引き渡す処理。
  

  10. ふむふむ 言葉の意味は理解できましたが、
 
 
 でもこれだけでは実際に処理の流れはどのようなになって
 いるのかという疑問が出たので、
 
 
 ここからは図を用い説明していきます!
 
 


  11. シェル
 $ echo "hello world" 
 ユーザがコマンド入力 
 《標準入力》
 カーネルの処理結果をターミナルで表示で

    きるようにシェルで解釈 
 結果を表示
 《標準出力》
 hello world 
 「標準入出力の流れ」
 Linuxカーネル
 シェルによってカーネルが分かるように解 釈してコマンド実行 
 PC端末のターミナルから入力 
 PC端末のターミナルへ出力 

  12. シェル
 $ echo "hello world" > test.txt 
 カーネルの処理結果をターミナルで表示で きるようにシェルで解釈 


    リダイレクション
 Linuxカーネル
 シェルによってカーネルが分かるように解 釈してコマンド実行 
 PC端末のターミナルから入力 
 PC端末のtest.txtファイルへ出力(test.txt内に保存されているイメージ) 
 ユーザがコマンド入力 
 《標準入力》
 結果を表示
 《標準出力》

  13. 「パイプ機能の流れ」
 lsの結果をsortコマンドで逆順ソート
 
 小さなコマンドをパイプで連結することによって、複数のコマンドがまるで一 つのプログラムのように動作させる事ができます


  14. シェル
 $ ls -1 | sort -r 
 Linuxカーネル
 シェルによってカーネルが分かるように解 釈してコマンド実行

    
 PC端末のターミナルから入力 
 PC端末のターミナルへ出力 
 プログラミング関連 
 名称未設定フォルダ      ・         ・    結果を表示
 《標準出力/$ sort -r》
 ユーザがコマンド入力 
 《標準入力/$ ls -1》
 Linuxカーネル
 シェルによってカーネルが分かるように解 釈してコマンド実行 
 カーネルの処理結果をターミナルで表示で きるようにシェルで解釈 
 シェル
 カーネルの処理結果をターミナルで表示で きるようにシェルで解釈 
 
 パイプ機能を使い $ ls -1の結果を$ sort -rへ渡す
 《標準出力/$ ls -1》
 
 パイプ機能を使い渡された結果が $ sort -rコマンド
 《標準入力/$sort -r》
 「|」(パイプ)

  15. シェル
 $ ls -1 | sort -r 
 Linuxカーネル
 シェルによってカーネルが分かるように解 釈してコマンド実行

    
 PC端末のターミナルから入力 
 PC端末のターミナルへ出力 
 プログラミング関連 
 名称未設定フォルダ      ・         ・    結果を表示
 《標準出力/$ sort -r》
 ユーザがコマンド入力 
 《標準入力/$ ls -1》
 Linuxカーネル
 シェルによってカーネルが分かるように解 釈してコマンド実行 
 カーネルの処理結果をターミナルで表示で きるようにシェルで解釈 
 シェル
 カーネルの処理結果をターミナルで表示で きるようにシェルで解釈 
 
 パイプ機能を使い $ ls -1の結果を$ sort -rへ渡す
 《標準出力/$ ls -1》
 
 パイプ機能を使い渡された結果が $ sort -rコマンド
 《標準入力/$sort -r》
 「|」(パイプ)

  16. 〜本日のアジェンダ〜
 
 ・フッシーって何物?(ここ重要です!w)
 
 ・標準入出力・リダイレクション・パイプを説明してみる
 
 ・まとめ


  17. コンピュータの世界には、「入力」→「処理」→「出力」という基本的な流れ があるように、Linuxのコマンドにも入力されたデータを受け取って、処理し た結果を出力するという流れがあります。この利用されるデータの入力元 が標準入力、データの出力先が標準出力です。


  18. この標準入力、標準出力を基本に、
 ・出力先を変更する作業が「リダイレクション」

  19. ・コマンドを繋げて入出力を次のコマンドへ引き渡す処理が「パイプ 機能」です!
 


  20. 皆様...いかがだったでしょうか‍♂
 この説明で伝わりましたでしょうか?
 
 
 Good or Bad
 
 
 是非、コメントやアドバイスを頂けますと幸いです‍♂


  21. 参考
 ・https://www.kenschool.jp/blog/?p=1143
 ・https://eng-entrance.com/linux-redirect
 ・https://eng-entrance.com/linux-pipeline#i
 ・イラスト(いらすとや)https://www.irasutoya.com/
 ご清聴ありがとうございました‍♂