これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ビープ音です。
プログラム:
NAME
beep - PC スピーカーから任意の方法でビープ音を鳴らします
SYNOPSIS
ビープ音 [--冗長 | --debug] [-e デバイス | --device デバイス] [-f N] [-l N] [-r N] [-d N] [-D
N] [-s] [-c]
ビープ音 [ オプション ] [-n] [--new] [ オプション ]
ビープ音 [-h] [--ヘルプ]
ビープ音 [-v] [-V] [--バージョン]
DESCRIPTION
ビープ音 ユーザーは PC スピーカーを正確に制御し、さまざまなサウンドを実現できます。
さまざまなイベントを示すために。 コマンドラインで非常に快適に実行できますが、
意図した居住地がシェル/Perl スクリプト内にある場合、ユーザーに通知します。
何か面白いことが起こります。 もちろん、何が面白いのかという概念はありませんが、
その通知部分は本当に上手です。
すべてのオプションにはデフォルト値があります。つまり、「」と入力するだけです。ビープ音' 働くでしょう。 オプションの場合
コマンドラインで複数回指定すると、後続のオプションはそのオプションをオーバーライドします。
先人たち。 それで 'ビープ音 -f 200 -f 300' と 300Hz でビープ音が鳴ります。
OPTIONS
-詳細, - デバッグ
デバッグ出力を有効にします。 このオプションは、各ビープ音の前に次のような行を出力します。
[デバッグ] 5 ミリ秒のビープ音を 200 回 (その間 100 回の遅延、その後 0 回の遅延) @ 1000.00 Hz
-e デバイス、 - 端末 デバイス
デバイスをイベントデバイスとして使用します。 スイッチが使用されていない場合、/dev/tty0 および /dev/vc/0 は
順番に試してみた。
-f N Hz で N ビープ音を鳴らします (0 < N < 20000)。一般的に、通常の端末は
ビープ音は約750Hzです。 ちなみに、N は整数に限定されません。
-l N ミリ秒間、N ビープ音を鳴らします。
-r N は繰り返しの回数を指定します (デフォルトは 1)。
-d N, -D N
繰り返しの間に N ミリ秒の遅延を指定します。 -d を使用すると、次のように指定されます。
この遅延は発生するだけです の間に ビープ音、つまり、
最後の繰り返し。 -D は、繰り返しのたびに遅延が発生することを示します。
ラストも含めて。 通常、-d が必要ですが、たとえば、
いくつかの紐を結ぶ ビープ音 一緒にコマンドを実行してスターウォーズ賛歌を演奏してください。
あらゆる遅延をコントロールします。
-n, - 新着
このオプションを使用すると、コマンド ラインを分割して複数のビープ音を指定できます。
このオプションが使用されるたびに、ビープ音はそれ以降のすべての引数を次のように処理し始めます。
それらは新たなビープ音のためのものでした。 たとえば、次のようになります。
ビープ音 -f 1000 -n -f 2000 -n -f 1500
ビープ音は 1000 回連続して鳴り、最初のビープ音は周波数 XNUMXHz (および
それ以外の場合はデフォルト値)、次に 2000Hz の周波数で XNUMX 回目のビープ音が鳴ります(再度、
遅延や回数などはデフォルトに設定されています)、次に XNUMX 回目のビープ音が鳴ります。
1500Hz。 -r は同じことを繰り返すため、これは -r 値の指定とは異なります。
ビープ音は複数回鳴りますが、-n を使用すると別のビープ音を指定できます。 -n の後、
新しいビープ音はすべてデフォルト値で作成されます。これらの値はいずれもデフォルト値で作成されます。
先行(または後続)のビープ音の値を変更せずに指定します。 を参照してください。 例
これで混乱した場合は、セクションを参照してください。
-s, -c これらのオプションは ビープ音 入力処理モードに入ります。 -s は伝えます ビープ音 から読む
stdin を指定し、各改行の後にビープ音を鳴らします。-c は、すべての文字の後にビープ音を鳴らすように指示します。
どちらの場合も、プログラムは入力を標準出力にエコーして戻します。
滑りやすい ビープ音 テキスト処理パイプラインへの追加については、を参照してください。 例 のセクションから無料でダウンロードできます。
-h, - 助けて
使用状況情報を表示して終了する
-v, -V, - バージョン
バージョン情報を表示して終了します
例
最も単純な(それでも効果的)
ビープ音
より興味深いスタンドアロン設定
ビープ音 -f 300.7 -r 2 -d 100 -l 400
ログ監視パイプラインの一部として
tail -f /var/log/xferlog | grep --line-buffered パスワード | \
ビープ音 -f 1000 -r 5 -s
-c モードを使用する場合は、ビープ音が鳴らないように、短い -D と短い -l を使用することをお勧めします。
一緒にぼかさないでください。 このようなものを使用すると、安っぽい 1970 年代スタイルのビープ音が聞こえます。
タイプごとの文字の効果
猫ファイル | ビープ音 -c -f 400 -D 50 -l 10
-n/--new の非常に不自然な使用例
ビープ音 -f 1000 -r 2 -n -r 5 -l 10 --new
最初に 1000 回の 5Hz ビープ音が鳴り、その後デフォルト トーンで XNUMX 回ビープ音が鳴りますが、
それぞれ 10 ミリ秒の長さで、すべてのデフォルト設定を使用して XNUMX 回目のビープ音が続きます (何も設定されていないため)。
が指定されています)。
IOCTL 奇抜さ
一部のユーザーは、ioctl() からの苦情によりビープ音が停止する状況に遭遇するでしょう。 の
Peter Tirsek が親切に私に指摘してくれたように、その理由は、
カーネルは、beep の突撃の試みを処理します (プログラマ以外の場合: ioctl は一種のキャッチです)。
他に事前定義された突撃機能がないものを突撃できるようにする all 関数
メカニズム) tty、それがビープ音を鳴らす方法です。 簡単に言えば、カーネルは次のことをチェックします。
どちらか
- あなたはスーパーユーザーです
- あなたは現在の tty を所有しています
これが意味するのは、(私の知る限りでは) root はいつでもビープ音を鳴らすことができるということです。
ローカル ユーザーはビープ音を機能させることができますが、root 以外のリモート ユーザーはビープ音を使用できません。
自然な状態。 さらに悪いことに、カーネルに関する限り、xterm またはその他の x セッションがカウントされます。
これは「リモート」であるため、特権のない xterm からもビープ音は機能しません。 私は持っていました
当初はこれをバグだと考えていましたが、実際にはそれに対してできることは何もなく、
カーネルがこのように物事を行うのは本当に良いことです。 解決策もあります。
デフォルトでは、ビープ音は suid ビットを設定してインストールされません。それはおかしなことになるからです。
一方、root にしないと、ビープ音が鳴る問題がすべて解消されます。
ioctl 呼び出しは魔法のように消えます。これは快適ですが、そうしない唯一の理由は次のとおりです。
すべての suid プログラムは潜在的なセキュリティ ホールです。 便利なことに、ビープ音は非常に短いので、
監査は非常に簡単です。
もちろん自分で決めてください。しかし、私にとってはそれが安全だと思われます。バッファは XNUMX つしかなく、
fgets はそれをオーバーフローさせません。開いているファイルは XNUMX つだけです。
潜在的な競合状態は /dev/console にあります。 誰かがこの種族を利用できるなら
/dev/console を置き換えると、さらに大きな問題が発生します。 :)
したがって、ビープ音が鳴らせたいときに鳴らない場合の、迅速で唯一、おそらく安全な解決策は次のとおりです。
(ルートとして):
# chmod 4755 /usr/bin/beep
(またはどこに置いても)
XNUMX つの問題は、これにより、どんな小さな工夫でもビープ音を正常に実行できるようになることです。
- これがあなたが望むものであることを確認してください。 そうでない場合は、もう少し複雑な修正が必要になります。
何かのようなもの:
# chgrp ビープ音 /usr/bin/beep
# chmod 4750 /usr/bin/beep
そして、ビープ音を鳴らすのに値するユーザーのみを「ビープ音」グループに追加します。
周波数 表
何人かの人が、音符を周波数に変換するための基本的な助けを求めてきました。
音符はたくさんあり、オンラインのいくつかの表で翻訳が得られますが、
現在地 近似 まずは中央 C のオクターブの数字を見てみましょう。
ノートの周波数
C 261.6
C#277.2
D 293.7
D#311.1
E 329.6
F 349.2
F#370.0
G 392.0
G#415.3
440.0
A#466.2
B 493.9
C 523.2
onworks.net サービスを使用してオンラインでビープ音を使用する
