Linuxを初めて使用するので、両方のコマンドの概念を理解する必要があります。プロセスを一つずつ説明していただければ本当に感謝します。
このコマンドは何をしますか?
cat ../test
このコマンドは何をしますか?
cat /etc/shadow 2>&1 | wc -l
ありがとうございます!
答え1
「../」は親ディレクトリです。
したがって、「cat ../test」は、「親ディレクトリにある 'test'ファイルを標準出力として印刷します。」を意味します。
2番目の質問:
すべてのLinux(およびUnix)プロセスには3つの標準ファイルがあります。
ファイル0が入力(stdin)です。
ファイル1は標準出力(stdout)です。
ファイル2はエラー出力(stderr)です。
2&> 1は「エラー出力を標準出力に送信する」を意味します。
パイプ|は、「他のプログラムの入力へのパイプ出力」を意味します。
行全体は /etc/shadow の行数を計算して表示します (存在する場合はエラー メッセージを含む)。
答え2
おそらく、このコマンドが何であるかを知っているでしょうcat
。ページman
には次のように指定されています。
cat - ファイルをリンクして標準出力として印刷
../
現在の作業ディレクトリの親ディレクトリを表します。したがって、test
その場所でファイルが呼び出されると、cat
コマンドはそのファイルを端末に印刷します。
/etc/shadow
2番目の例では、(アクセス権がある場合)内容がコマンドにpiped
なります。wc
wc - 各ファイルの改行、単語、バイト数を出力します。
-l, --lines: 改行回数を印刷します。
これにより、端末の行数/etc/shadow
(内容ではなく行数のみが印刷されます)が印刷されます。この2>&1
シンボルは、ファイル記述子2(標準エラー)をファイル記述子1(標準出力)にリダイレクトします。