AWS インフラ・クラウド

【Linux】時々見かける/dev/nullの正体

投稿日:2021年6月21日 更新日:

スクリプトやコマンドで時々見かける”/dev/null”ですが、これの正体をご存知でしょうか。
今回は、この”/dev/null”について調べてみました。

/dev/nullとは?

“/dev/null”とは、情報を全て破棄するスペシャルファイルです。
出力先に”/dev/null”を指定すると、出力を破棄します。
入力先に”/dev/null”を指定すると、空の値を入力にします。

そもそもdevディレクトリは、ハードウェア機器を表すファイルが保存されています。
キーボードやマウスなどのデバイスをディレクトリ(またはファイル)形式で保存されており、標準入出力でも使われます。

dev配下にあるnullということは、nullというデバイスがあるのかと思いますが、そういうわけでもなさそうです。
/dev/nullは、Linuxがあるところ/dev/nullがそこにあります。

よくある誤解として、”/dev/null”の配下にファイルが溜まっていき、いわゆるゴミ箱のようなものを連想する方もいますが、これは誤りです。
“/dev/null”の情報は全て破棄されるので、ファイルが蓄積することはありません。

利用場面

ターミナルに標準出力をしたくない時

$ echo "ImaOkita" > /dev/null

最もスタンダードな使い方です。
上の例ですと、echoコマンドによって、”ImaOkita”を出力し、出力先を”/dev/null”にしました。

実行結果は、当然何も表示されません。

これの応用として、標準エラー出力をしないという使い方もあります。

$ cat filename.txt
cat: filename.txt: No such file or directory
$ cat filename.txt 2> /dev/null

上の例だと、実行ディレクトリにfilename.txtが存在しない状態で、catコマンドでfilename.txtを指定しました。
出力先に”/dev/null”を指定すると、エラー文が表示されません。

“2>”の部分ですが、Linuxで決まっている割り振り番号になります。
例えば、標準入力には0、標準出力には1、標準エラー出力には2が割り振られています。

ファイルの中身を空にしたい

$ cat /dev/null > test.txt

こちらの使い方もよくあります。
上の例ですと、catコマンドで出力した”/dev/null”の内容をtest.txtに出力しています。

もちろん、test.txtの内容は”/dev/null”に上書きされてしまっているので、空になります。

Linux学習におすすめの教材

Linuxについて、しっかりと基礎から学びたい、実践的なスキルを身につけたいと考えている方向けに、おすすめの学習教材を紹介します。
これらの教材は、実際に僕が使っている教材になっています。

新しいLinuxの教科書

Linux自身の機能だけでなく、シェルスクリプトを使ったプログラミングや、Gitによるソフトウェア開発のバージョン管理など、イマドキのエンジニアなら知っておくべき知識についても、丁寧に解説しました!!

シンプルかつ網羅的にLinuxの基礎を学べる初学者・入門者に最適な一冊です。
サンプルのスクリプトもついており、実際に手を動かしながら学習することができます。

[改訂新版]プロのためのLinuxシステム構築・運用技術

キックスタートによる自動インストール、運用プロセスの理解、SAN/iSCSI、L2/L3スイッチ、VLAN、Linuxカーネル、systemd、ファイルシステム、問題判別ノウハウ、プロとしてのLinux技術。システム構築運用/ネットワーク・ストレージ管理の秘訣がわかる。Red Hat Enterprise Linux対応。

実務で通用するLinuxの構築・運用の基本や周辺技術を学ぶことができる書籍です。
イラストが多く概念的なところから理解しやすいです。
(電子版よりも紙版の方が読みやすくおすすめです)

-AWS, インフラ・クラウド
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

S3とは?学んだことをまとめてみた【初心者エンジニアのAWS備忘録⑥】

こんにちは、yassanです。今回は「S3とは?学んだことをまとめてみた【初心者エンジニアのAWS備忘録⑥】」を紹介いたします。 S3も、AWSを利用するうえで、基本的かつ重要なものになります。しっか …

AWSとは?初心者向けに超絶簡潔に説明

こんにちは、yassanです。今回は「AWSとは?初心者向けに超絶簡潔に説明」を紹介します。 AWSについて全く知らないのに、上司にいきなり「AWSってのが流行ってるからなんかやれや」って言われた方、 …

オンプレとAWSの違いって?【AWS入門】

こんにちは、yassanです。今回は「オンプレとAWSの違いって?【AWS入門】」についてお話しします。 最近、AWSやクラウドってどこかしこで聞きますよね。クラウドに馴染みのない方からしたら「なんか …

【認証】トークンベースとセッションベースの違い

HTTP通信の認証には、大きく分けてトークンベースとセッションベースがあります。 両者についてまとめてみました。 セッションベース セッションベースの認証には主にクッキーが使われます。クッキーはセッシ …

RDSとは?学んだことをまとめてみた【初心者エンジニアのAWS備忘録④】

こんにちは、yassanです。今回は「RDSとは?学んだことをまとめてみた【初心者エンジニアのAWS備忘録④】」について紹介します。 これまで、VPC、EC2、Route53についてご紹介してきました …

yassanさんのプロフィール写真

yassan
インフラエンジニア。
独学でインフラ・クラウドについて学んでいます。
大阪 / 20代後半 / 決闘者 / FE / AWS-SAA

twitter: @yassan10787859