私は最近、bash の Linux プロンプトから 9 文字のパスワードを生成するこの方法を発見しました。
< /dev/urandom tr -dc A-Za-z0-9_ | head -c9
何<
をしているんですか?
答え1
ご存知ない方のために言っておくと、これは単なるあまり一般的ではない用法入力リダイレクタの。シェルは指定されたファイルを入力として受け取り、デフォルトの動作ではそれを標準出力にエコーします。
持っているコマンドの内訳:
< /dev/urandom tr -dc A-Za-z0-9_ | head -c9
<
: 入力リダイレクタ。シェルはファイルの内容を表示します (/dev/urandom)
tr
:からtr --help
:
標準入力から文字を変換、圧縮、および/または削除し、標準出力に書き込みます。
オプション -dc は --delete --complement と同等で、次の文字セットの補数、つまりセットに含まれないすべての文字を削除することを意味します。この例では、英数字以外の文字とアンダースコア文字は除外されます。
head
: 何かの最初の数行を印刷します (デフォルトは 10)。-c9 スイッチは、行数ではなく印刷するバイト数を指定します。
これらをすべてまとめると、「/dev/urandom から最初の 9 バイトの英数字またはアンダースコアを出力します」ということになります。:)
答え2
試してみて< /usr/include/stdio.h head
。ファイルであるはずだよ。
プログラム出力をファイルとして提供する必要がある場合は、次のようにします。vim <(echo test)