Ipad

最後に実行したコマンドを sudo を使用してルートとして実行します。

最後に実行したコマンドを sudo を使用してルートとして実行します。

Macターミナルアイコン

コマンドラインツールを実行しようとしたら、必要な権限がないことに気づいたことはありませんか?あるいは、コマンド自体を実行するのにルート権限が必要なのかもしれません。このような状況は、ターミナルに「権限が拒否されました」のようなエラーメッセージが表示されることでよく発生します。コマンド文字列全体をもう一度入力したり、上矢印キーを押してカーソルをコマンドの前にsudoで移動したりする代わりに、最後に実行したコマンドをsudo権限で再実行できる便利なトリックがあります。何より素晴らしいのは、このルート権限で最後のコマンドを再実行するトリックは、MacOS / Mac OS XとLinuxで使えることです。


見出しだけを見ると、感嘆符が付いているのでちょっと誇張しているだけだと思う​​かもしれませんが、私は sudo コマンドに興奮しているだけではありません (このコマンドは本当に素晴らしいのですが)。そうではなく、この点で感嘆符は実際に sudo ツールの使用法の一部なのです。

最後に実行したコマンドをルートユーザーとして再実行する方法

最後に実行したコマンドをルート スーパーユーザーとしてすぐに実行したい場合は、次のように入力します。

sudo !!

はい、「sudo」の後にスペースと 2 つの感嘆符が続きます。

これにより、以前に実行したコマンドが sudo プレフィックス付きで即座に実行されます。通常、シーケンスを完了するには管理者パスワードを入力する必要があります。

例えば、hostsファイルやシステム権限が必要なその他のシステムファイルを編集しようとしている場合などです。sudo で始まるコマンド文字列全体を再入力する代わりに、sudo !!と入力するだけで、前のコマンド (!!) がsudo で実行されます。

たとえば、ユーザーのホストファイルを変更しようとしているとします。

nano /etc/hosts

しかし、適切なユーザー資格情報がないため、ファイルを保存したり編集したりできないですよね?心配はいりません。「sudo nano /etc/hosts」コマンドシーケンス全体をもう一度入力するのではなく、次のように入力するだけです。

sudo !!

これは最後のコマンド(この場合はnano /etc/hosts)の先頭にsudoを自動的に付加し、完全な「sudo nano /etc/hosts」になります。

これは文字通りあらゆるコマンドラインツールとコマンド実行で機能するので、ぜひ試してみてください。非常に素晴らしい機能です。

前述のように、このトリックは MacOS と Linux のコマンド ラインで機能し、おそらく他の多くの Unix ベースのオペレーティング システムでも機能します。