sudoを使用して.bashrcからロードされたコマンドを実行できますか?

sudoを使用して.bashrcからロードされたコマンドを実行できますか?

私のファイル.bashrcにはいくつかのカスタム関数とエイリアスが定義されています。時々、rootとしてwhimを実行する必要があるかもしれません。次に、次の操作を行います。

$ sudo custom_cmd 80                                                                                                                                   
sudo: custom_cmd: command not found

root権限でこれらのコマンドをどのように実行できますか?

編集:もちろん、これを達成するために.bashrcルートIDをソースとして使用することができますが、これを行うための迅速な(入力の必要性の点で)方法があるかどうか疑問に思います。可能であれば、カスタマイズ(.bashrc自動購入など)も避けたいと思います。

答え1

シェルを介して実行します。

sudo bash -c 'source /home/reachus/.bashrc; custom_cmd 80'

.bashrcまたは、リソースを提供するスクリプトを作成してください。例/usr/local/bin/my:

#! /bin/bash
source /home/reachus/.bashrc
"$@"

次に、次のようにします。

sudo my custom_cmd 80

答え2

ちょうど同じ問題が発生しました。

あなたもできます

  cd /etc/profile.d
  sudo gedit ./newfile.sh (you write commands here, can be nano also)
  sudo chmod +x newfile.sh

アカウントにログインするたびに自動的に実行されます。テストするには、再起動を必要とせずにbashで "su yourusername"を実行してログインすると機能します。

関連情報