私は最近、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)