RHCSA シリーズ: ファイルとディレクトリの管理を実行する方法 - パート 2
この記事RHCSA パート 2: ファイルとディレクトリの管理では、システム管理者の日常業務に必要ないくつかの重要なスキルを確認します。
ファイルとディレクトリの作成、削除、コピー、移動
ファイルとディレクトリの管理は、すべてのシステム管理者が持つべき重要な能力です。これには、テキスト ファイル (各プログラムの構成の中核) やディレクトリ (ファイルやその他のディレクトリを整理する場所) を最初から作成/削除したり、既存のファイルの種類を確認したりする機能が含まれます。
touch コマンドは、空のファイルを作成するだけでなく、既存のファイルのアクセス時間や変更時間を更新するためにも使用できます。
file [filename]
を使用してファイルの種類を決定できます (これは、任意のテキスト エディタを起動して編集する前に便利です)。
rm [filename]
をクリックして削除します。
ディレクトリに関しては、mkdir [directory]
を使用して既存のパス内にディレクトリを作成するか、mkdir -p [/full/path/to/directory]
を使用してフルパスを作成できます。
ディレクトリを削除する場合は、rmdir [directory]
コマンドを発行する前にディレクトリが空であることを確認するか、より強力な (慎重に扱ってください!) rm -rf を使用する必要があります。 [ディレクトリ]
。この最後のオプションは、[ディレクトリ]
とそのすべての内容を再帰的に強制的に削除します。そのため、自己責任で使用してください。
入力と出力のリダイレクトとパイプライン化
コマンド ライン環境には、ファイルとの間でコマンドの入力と出力をリダイレクトしたり、コマンドの出力を別のファイルに送信したりできる 2 つの非常に便利な機能が用意されています。それぞれリダイレクトとパイプラインです。
これら 2 つの重要な概念を理解するには、まず、文字の I/O (入力および出力) ストリーム (またはシーケンス) の 3 つの最も重要なタイプを理解する必要があります。これらは、実際には *nix という言葉の意味での特殊ファイルです。
- 標準入力(別名 stdin)は、デフォルトでキーボードに接続されています。言い換えれば、キーボードはコマンド ラインにコマンドを入力するための標準の入力デバイスです。
- 標準出力 (別名 stdout) はデフォルトで画面に接続されており、コマンドの出力を「受信」して画面に表示するデバイスです。
- 標準エラー (別名 stderr) は、コマンドのステータス メッセージがデフォルトで送信される場所であり、画面でもあります。
次の例では、ls /var
の出力が ls /tecmint の結果と同様に stdout (画面) に送信されます。 。ただし、後者の場合、 表示されるのは標準エラー出力です。
これらの特殊ファイルをより簡単に識別するために、ファイル記述子、つまりファイルへのアクセスに使用される抽象表現がそれぞれに割り当てられます。理解しておくべき重要な点は、これらのファイルも他のファイルと同様にリダイレクトできるということです。これは、ファイルまたはスクリプトから出力をキャプチャし、それを別のファイル、コマンド、またはスクリプトへの入力として送信できることを意味します。これにより、後の処理や分析のためにコマンドの出力などをディスクに保存できるようになります。
stdin (fd 0)、stdout (fd 1)、または stderr (fd 2) をリダイレクトするには、次の演算子が使用できます。
- Redirection Operator
効果
- >
標準出力を、標準出力を含むファイルにリダイレクトします。宛先ファイルが存在する場合は上書きされます。
- >>
標準出力をファイルに追加します。
- 2>
標準エラーを標準出力を含むファイルにリダイレクトします。宛先ファイルが存在する場合は上書きされます。
- 2>>
標準エラーを既存のファイルに追加します。
- &>
標準出力と標準エラーの両方をファイルにリダイレクトします。指定したファイルが存在する場合は上書きされます。
- <
指定されたファイルを標準入力として使用します。
- <>
-
指定されたファイルは標準入力と標準出力の両方に使用されます。
リダイレクトとは対照的に、パイプラインはコマンドの後と別のコマンドの前に垂直バー (|)
を追加することによって実行されます。
覚えて:
- リダイレクトは、コマンドの出力をファイルに送信したり、ファイルをコマンドへの入力として送信したりするために使用されます。
- パイプラインは、コマンドの出力を入力として別のコマンドに送信するために使用されます。
リダイレクトとパイプラインの例
例 1: コマンドの出力をファイルにリダイレクトする
ファイルのリストを反復処理する必要がある場合があります。これを行うには、まずそのリストをファイルに保存し、次にそのファイルを 1 行ずつ読み取ります。 ls の出力を直接反復処理できるのは事実ですが、この例はリダイレクトを説明するために役立ちます。
ls -1 /var/mail > mail.txt
例 2: stdout と stderr の両方を /dev/null にリダイレクトする
stdout と stderr の両方が画面に表示されないようにする場合は、両方のファイル記述子を /dev/null
にリダイレクトできます。同じコマンドにリダイレクトが実装されると出力がどのように変化するかに注目してください。
ls /var /tecmint
ls /var/ /tecmint &> /dev/null
例 3: コマンドへの入力としてファイルを使用する
cat コマンドの古典的な構文は次のとおりです。
cat [file(s)]
正しいリダイレクト演算子を使用して、ファイルを入力として送信することもできます。
cat < mail.txt
例 4: コマンドの出力を別のコマンドの入力として送信する
大規模なディレクトリまたはプロセスのリストがあり、特定のファイルまたはプロセスを一目で見つけられるようにしたい場合は、リストを grep にパイプライン処理する必要があります。
次の例では to パイプラインを使用していることに注意してください。最初のコマンドは必要なキーワードを検索し、2 番目のコマンドは結果から実際の grep コマンド
を削除します。この例では、Apache ユーザーに関連付けられているすべてのプロセスをリストします。
ps -ef | grep apache | grep -v grep