sudo를 사용하여 .bashrc에서 로드된 명령을 실행할 수 있나요?

sudo를 사용하여 .bashrc에서 로드된 명령을 실행할 수 있나요?

내 파일 .bashrc에 몇 가지 사용자 정의 함수와 별칭이 정의되어 있습니다 . 때로는 루트로 whim을 실행해야 할 때도 있습니다. 그런 다음 다음과 같은 작업을 수행합니다.

$ sudo custom_cmd 80                                                                                                                                   
sudo: custom_cmd: command not found

루트 권한으로 이러한 명령을 어떻게 실행할 수 있습니까?

편집: 물론 이를 달성하기 위해 .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"을 실행하고 로그인하면 작동합니다.

관련 정보