ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

コマンドラインで雑にパスワードを生成する

$ cat /dev/random | env LC_ALL=C tr -dc "[:alnum:]+-/^" | head -c 10 | awk 1

作業をしていて、適当にワンタイムパスワードが必要になったりした場合に。

ググったら似たようなテクニックがたくさん見つかったので、 アプローチはいろいろあるみたいですが、私はこれが一番好きです。 汎用性高いし。

原理としてはランダムデバイスからのデータを tr コマンドで該当文字種以外を消す感じ。

tr の引数になっている正規表現が採用する文字種なので、まぁお好みで。 LC_ALL を書き換えないと、日本語環境で悲しいことになります。どうして……

で、 head -c 10 で先頭 10 Byte を取り出すので、ここもお好きに。

最後に awk 1 を通すと、末尾が改行で終わります。 これがないとランダム文字列の後ろにプロンプトが出てきて残念。 まぁ別にそれでもいいですけど。