この記事では、RHCSA Part 2:ファイルおよびディレクトリ管理、システム管理者の日常業務で必要とされるいくつかの基本的なスキルを見直します。

ファイルとディレクトリの作成、削除、コピー、および移動
ファイルとディレクトリの管理は、すべてのシステム管理者が持っているべき重要な能力です。これには、テキストファイル(各プログラムの設定の中核)とディレクトリ(ファイルや他のディレクトリを整理する場所)をゼロから作成し、既存のファイルのタイプを調べる能力が含まれます。
touchコマンドは、空のファイルを作成するだけでなく、既存のファイルのアクセスおよび変更時刻を更新するためにも使用できます。

ファイルの種類を確認するには、file [filename]
を使用します(これはお好みのテキストエディタを起動して編集する前に役立ちます)。

そしてrm [filename]
を使用して削除します。

ディレクトリに関しては、既存のパス内にディレクトリを作成するにはmkdir [directory]
を使用するか、mkdir -p [/full/path/to/directory]
で完全なパスを作成します。

ディレクトリを削除する場合は、rmdir [directory]
コマンドを実行する前に空であることを確認するか、より強力な(注意して使用してください!)rm -rf [directory]
を使用します。この最後のオプションは、[directory]
およびそのすべての内容を再帰的に強制的に削除します-使用は自己責任でお願いします。
入力および出力のリダイレクションおよびパイプライニング
コマンドライン環境は、コマンドの入力と出力をファイルにリダイレクトしたり、コマンドの出力を別のコマンドに送ったりする非常に便利な2つの機能を提供します。これらを理解するためには、まず、*nixの意味で実際には特別なファイルである3つの最も重要なI/O(入出力)ストリーム(またはシーケンス)を理解する必要があります。
これらの2つの重要な概念を理解するには、まず、実際には特別なファイルである3つの最も重要なI/O(入出力)ストリーム(またはシーケンス)を理解する必要があります。
- 標準入力(またはstdin)は、デフォルトではキーボードに接続されています。言い換えると、キーボードはコマンドラインにコマンドを入力するための標準入力デバイスです。
- 標準出力(またはstdout)は、デフォルトでは画面に接続されており、コマンドの出力を受け取り、画面に表示します。
- 標準エラー(またはstderr)は、デフォルトではコマンドのステータスメッセージが送信される場所であり、これも画面です。
次の例では、ls /var
の出力がstdout(画面)に送信され、ls/tecmintの結果も同様に表示されますが、後者の場合はstderrが表示されます。

特定の特別なファイルをより簡単に識別するために、それぞれがファイル記述子と呼ばれる抽象表現が割り当てられます。理解するための重要な点は、これらのファイルは他のファイルと同様にリダイレクトできるということです。これは、ファイルやスクリプトからの出力をキャプチャして別のファイル、コマンド、またはスクリプトに入力として送信できるということを意味します。これにより、たとえば、後で処理や分析のためにコマンドの出力をディスクに保存できます。
標準入力(fd 0)、標準出力(fd 1)、または標準エラー出力(fd 2)をリダイレクトするには、次の演算子が利用可能です。
Redirection Operator | Effect |
> | Redirects standard output to a file containing standard output. If the destination file exists, it will be overwritten. |
>> | Appends standard output to a file. |
2> | Redirects standard error to a file containing standard output. If the destination file exists, it will be overwritten. |
2>> | Appends standard error to the existing file. |
&> | Redirects both standard output and standard error to a file; if the specified file exists, it will be overwritten. |
< | Uses the specified file as standard input. |
<> | The specified file is used for both standard input and standard output. |
リダイレクトとは対照的に、パイプライン処理はコマンドの後に垂直バー(|)
を追加することで実行されます。
覚えておくべきこと:
- リダイレクトは、コマンドの出力をファイルに送信したり、ファイルをコマンドの入力として送信したりするために使用されます。
- パイプラインは、コマンドの出力を別のコマンドの入力として送信するために使用されます。
リダイレクトとパイプラインの例
例1:コマンドの出力をファイルにリダイレクトする
ファイルのリストを反復処理する必要がある場合があります。そのためには、まずそのリストをファイルに保存してから、そのファイルを行ごとに読み取ることができます。lsの出力を直接反復処理できることは事実ですが、この例はリダイレクトを説明するためのものです。
# ls -1 /var/mail > mail.txt

例2:標準出力と標準エラー出力を/dev/nullにリダイレクト
標準出力と標準エラー出力の両方を画面に表示しないようにする場合、両方のファイルディスクリプタを/dev/null
にリダイレクトできます。リダイレクトが同じコマンドに実装された場合の出力の変化に注目してください。
# ls /var /tecmint # ls /var/ /tecmint &> /dev/null

例3:ファイルをコマンドの入力として使用する
クラシックなcatコマンドの構文は次のようになります。
# cat [file(s)]
適切なリダイレクション演算子を使用して、ファイルを入力として送信することもできます。
# cat < mail.txt

例4:コマンドの出力を別のコマンドの入力として送信する
大きなディレクトリやプロセスリストを持ち、一目で特定のファイルやプロセスを見つけられるようにしたい場合は、リストをgrepにパイプライン処理する必要があります。
次の例では2つのパイプラインを使用しています。最初のパイプラインは必要なキーワードを検索し、2番目のパイプラインは結果から実際のgrepコマンド
を除外します。この例では、apacheユーザーに関連するすべてのプロセスがリストされています。
# ps -ef | grep apache | grep -v grep

Source:
https://www.tecmint.com/file-and-directory-management-in-linux/