RHCSAシリーズ:ファイルおよびディレクトリ管理の実行方法 – パート2

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

RHCSA: Perform File and Directory Management – Part 2

ファイルとディレクトリの作成、削除、コピー、および移動

ファイルとディレクトリの管理は、すべてのシステム管理者が持っているべき重要な能力です。これには、テキストファイル(各プログラムの設定の中核)とディレクトリ(ファイルや他のディレクトリを整理する場所)をゼロから作成し、既存のファイルのタイプを調べる能力が含まれます。

touchコマンドは、空のファイルを作成するだけでなく、既存のファイルのアクセスおよび変更時刻を更新するためにも使用できます。

touch command example

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

file command example

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

rm command example

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

mkdir command example

ディレクトリを削除する場合は、rmdir [directory]コマンドを実行する前に空であることを確認するか、より強力な(注意して使用してください!)rm -rf [directory]を使用します。この最後のオプションは、[directory]およびそのすべての内容を再帰的に強制的に削除します-使用は自己責任でお願いします。

入力および出力のリダイレクションおよびパイプライニング

コマンドライン環境は、コマンドの入力出力をファイルにリダイレクトしたり、コマンドの出力を別のコマンドに送ったりする非常に便利な2つの機能を提供します。これらを理解するためには、まず、*nixの意味で実際には特別なファイルである3つの最も重要なI/O(入出力)ストリーム(またはシーケンス)を理解する必要があります。

これらの2つの重要な概念を理解するには、まず、実際には特別なファイルである3つの最も重要なI/O(入出力)ストリーム(またはシーケンス)を理解する必要があります。

  1. 標準入力(またはstdin)は、デフォルトではキーボードに接続されています。言い換えると、キーボードはコマンドラインにコマンドを入力するための標準入力デバイスです。
  2. 標準出力(またはstdout)は、デフォルトでは画面に接続されており、コマンドの出力を受け取り、画面に表示します。
  3. 標準エラー(またはstderr)は、デフォルトではコマンドのステータスメッセージが送信される場所であり、これも画面です。

次の例では、ls /varの出力がstdout(画面)に送信され、ls/tecmintの結果も同様に表示されますが、後者の場合はstderrが表示されます。

Input and Output Example

特定の特別なファイルをより簡単に識別するために、それぞれがファイル記述子と呼ばれる抽象表現が割り当てられます。理解するための重要な点は、これらのファイルは他のファイルと同様にリダイレクトできるということです。これは、ファイルやスクリプトからの出力をキャプチャして別のファイル、コマンド、またはスクリプトに入力として送信できるということを意味します。これにより、たとえば、後で処理や分析のためにコマンドの出力をディスクに保存できます。

標準入力(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. リダイレクトは、コマンドの出力をファイルに送信したり、ファイルをコマンドの入力として送信したりするために使用されます。
  2. パイプラインは、コマンドの出力を別のコマンドの入力として送信するために使用されます。

リダイレクトとパイプラインの例

例1:コマンドの出力をファイルにリダイレクトする

ファイルのリストを反復処理する必要がある場合があります。そのためには、まずそのリストをファイルに保存してから、そのファイルを行ごとに読み取ることができます。lsの出力を直接反復処理できることは事実ですが、この例はリダイレクトを説明するためのものです。

# ls -1 /var/mail > mail.txt
Redirect output of command tot a file
例2:標準出力と標準エラー出力を/dev/nullにリダイレクト

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

# ls /var /tecmint
# ls /var/ /tecmint &> /dev/null
Redirecting stdout and stderr ouput to /dev/null
例3:ファイルをコマンドの入力として使用する

クラシックなcatコマンドの構文は次のようになります。

# cat [file(s)]

適切なリダイレクション演算子を使用して、ファイルを入力として送信することもできます。

# cat < mail.txt
cat command example
例4:コマンドの出力を別のコマンドの入力として送信する

大きなディレクトリやプロセスリストを持ち、一目で特定のファイルやプロセスを見つけられるようにしたい場合は、リストをgrepにパイプライン処理する必要があります。

次の例では2つのパイプラインを使用しています。最初のパイプラインは必要なキーワードを検索し、2番目のパイプラインは結果から実際のgrepコマンドを除外します。この例では、apacheユーザーに関連するすべてのプロセスがリストされています。

# ps -ef | grep apache | grep -v grep
Send output of command as input to another

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