スピーカーの電源切り忘れ防止ほか shutdownコマンド alias
電源を落とすコマンド「shutdown -h now」をaliasを使って工夫してみる。シェルスクリプトを書けば、さらに様々な工夫ができるが、ここはひとまずaliasについてのみ。
(「shutdown」コマンドはrootでないと使えないかもしれない。また、「/sbin/shutdown」などとフルパスで指定する必要があるかもしれない)
aliasは、「~/.bashrc」に書く。「.bashrc」をすぐに反映するには、コマンド
source ~/.bashrc
を実行する。
shutdownコマンド aliasいろいろ
簡単なコマンドで 「shutdown -h now」する
例えば、「off」で「shutdown -h now」する。
alias off='shutdown -h now'
「off」の部分は、覚えやすければどんな文字列でもよい。
以下、挙動のテストのたびにいちいち「shutdown -h now」コマンドが実行されると面倒なので、テストは、「shutdown -h now」の代わりに「ls」や「sl」などのコマンドに置き換えて行う。
外部スピーカーの電源切り忘れ防止のため「shutdown」の前に警告音を鳴らす
alias off='aplay -q /usr/share/sounds/logout.wav && shutdown -h now'
テスト
aplay -q /usr/share/sounds/logout.wav && ls
「aplay」がない場合は、「alsa-utils」をインストールする。「aplay」は「alsa-utils」に含まれている。
ふたつのコマンドをつなぐ「&&」は、「前のコマンドが成功すれば次のコマンドを実行する」という指定。よって、警告音が鳴っている間(「aplay」の実行中)に「Ctrl+c」を押して「aplay」を中断すれば「shutdown」をキャンセルすることも可能。
(逆に「前のコマンドが失敗したら次のコマンドを実行する」には「||」でコマンドを接続する)
「aplay」の「-q」オプションは、情報を表示しないためのオプション(「quiet mode」)。
サウンド素材は、Vineの場合「/usr/share/sounds/」以下にある。
音声ファイルのフォーマット別再生コマンドは以下。
- .wav → aplay
- .mp3 → mpg123
- .ogg → ogg123
「shutdown -h now」の実行を遅らせて「shutdown」をキャンセルできる時間を設ける
alias off='aplay -q /usr/share/sounds/logout.wav && sleep 3 && shutdown -h now'
テスト
aplay -q /usr/share/sounds/logout.wav && sleep 3 && ls
「sleep」は、システムを一時停止するコマンド。「3」は、一時停止する秒数。
「aplay」と「sleep」の実行が終了するまでに「Ctrl+c」を押せば「shutdown」をキャンセルできる。
さらに警告を表示
alias off='echo "スピーカーの電源を切る" ; aplay -q /usr/share/sounds/logout.wav && echo "3秒後にシャットダウン" && sleep 3 && shutdown -h now'
テスト
echo "スピーカーの電源を切る" ; aplay -q /usr/share/sounds/logout.wav && echo "3秒後にシャットダウン" && sleep 3 && ls
「echo」は、文字列などを表示するコマンド。
「echo」と「aplay」をつなぐ「;」(セミコロン)は、前のコマンドの成功や失敗に関係なくコマンドをつなぐ指定。
注意
- コマンドを「&&」でつないでいるので、音声出力になんらかの問題が起きて「aplay」が正常に実行できなかった場合などは「shutdown」の実行もできないので注意。
- 「~/.bashrc」をその場で反映するためには、「source ~/.bashrc」を実行する。
- シャットダウン関連のコマンドについては、Linuxのシャットダウンや再起動のコマンドは色々あるに詳しい。
- aliasについては、Linuxのコマンドラインを便利にする10の便利なエイリアス(ZDNet Japan)などを参照。
関連記事
コマンドラインで音声再生: aplay/mpg321/ogg123
andy