プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • linux
  • 【Linux】「標準入出力」や「/dev/null」について
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Linux】「標準入出力」や「/dev/null」について

05.29

  • miyabisan2
  • 4件のコメント

この記事は2分で読めます

標準入出力とは?

プログラムがデフォルトで利用するデータの標準的な入出力元のことです。あくまで標準の入出力先の話なのでそれぞれパイプ等で入出力先を指定すればコマンド間の連携を行うようにすることも可能です。

標準入力

プログラムのデフォルトの入力元になります。

標準出力

プログラムのデフォルトの出力先になります。

標準エラー出力

プログラムのエラーメッセージの出力先になります。

リダイレクト

標準入出力先を変更する機能です。

入力のリダイレクト

例えば下記のようにすれば入力元をファイルにできたりします。

1
コマンド < 入力元(ファイル名等)

出力のリダイレクト

下記のようにすれば出力先をファイルにできます。

1
pwd > 出力先(ファイル等)

エラー出力のリダイレクト

下記のようにするとファイルにエラー内容を出力できます。なお、2というのは「OSが識別している標準エラー出力の数値」になります。

1
pwd 2> 出力先(ファイル名等)

出力とエラー出力をまとめる。

1は標準出力を示しています。リダイレクト出力した後に、「2>&1」を指定すると標準エラー出力も合わせて出力されます。

1
pwd > 出力先(ファイル名等) 2>&1

/dev/nullとは?

入力元としても出力先としても何も表示されない特殊なファイルのことです。Unix系のOSでは全般的によく使われます。

入力元として使う場合

例

1
cat < /dev/null

用途

コマンドの検証等で「入力を空にしてテストをしたい」場合に使用します。ただ、入力として使うことは可能ですが、実際の所入力元として使うことはほぼありません。使うとすれば出力先で使うことがメインになります。

出力先として使う場合

ぶっちゃけ「/dev/null」をよく使うケースとしては出力先として指定するこちらのケースの場合です。

例

1
ls /test > /dev/null

用途

コマンドの出力結果を非表示にしたい場合に使います。例えば下記のような場合は非表示にしたいケースでしょう。

  • 結果が大量に出力される場合
  • 結果を表示する必要性がなく処理を早く終わらせたい場合

標準出力と標準エラー出力を捨てたい場合

以下のように指定します。

1
ls /test &>/dev/null

以下の文と同義です。

1
ls /test >/dev/null 2>&1

標準出力だけでなく、エラー内容も結果として出力したくないよといったケースでは使えます。(エラーの有無はあまり関係ないバッチでは使える。)

スポンサーリンク
  • 2020 05.29
  • miyabisan2
  • 4件のコメント
  • linux
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2018 05.26

    【Linux】「シェル変数」と「環境変数」の基本と、その違い

  2. 2018 06.20

    【サーバー技術】「SSH」、「FTP」について

  3. 2020 06.01

    【Linux】「オーナー、グループ」「パーミッション」について

  4. 2018 05.26

    【Linux】ユーザーを作成、削除する。

  5. 2018 05.27

    【Linux】「ファイル名」についての基本

  6. 2018 05.26

    【Linux】「バックグラウンドプロセス」と、その「終了」(killコマンド)について

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Laravel】シーダー(テストデータの作成)

【Vue.js】「v-bind」について

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー