口数の多い sudo を静かに背景実行する alias
まず結論だけ
こんな alias を ~/.bashrc に書くと便利👍
alias my_alias='sudo -b my_command > /dev/null'
もし標準エラー出力も出したくない場合は、> /dev/null のあとに半角スペースを空けて 2>&1 を追記する。
想定している状況
ある長いコマンドの alias を作りたい。そのプログラムは sudo での実行が必要。停止するまで動き続けるので、バックグラウンドで実行したい。起動中の verbose な標準出力は捨てたい。これらのニーズに応えるのが、最初に書いた alias 設定。簡単に補足すると、
- 止めるまで止まらないのは、例えばオプション無しの
$ ping example.comみたいなやつ - 出力が出続けるのは、これまた例えば
$ ping example.comがそうだね
バックグラウンド実行の方法として、単純にはコマンド末尾に & を付ける方法がある。しかし、これをそのまま alias my_alias='sudo my_command &' のように alias を設定しても上手く行かない。入力が変な場所で改行されるせいで、sudo パスワードを入力できなくなってしまう。下の画像は、その例。

コマンドを背景実行させ、かつ sudo にパスワードを渡せる alias を書くには、sudo の -b オプションを使う。これを使ったコマンドを alias として設定すると、呼び出した際にパスワードをきちんと入力できる。つまり、alias my_alias='sudo -b my_command' みたいな感じ。

最後に、標準出力を捨てるために > /dev/null を追記して、冒頭に載せた alias 設定が完成する。これを設定しないと、背景実行のコマンドであっても標準出力が端末に飛び出してきて (用途によっては) 邪魔になるのでね。
