sudo bash를 사용할 때 별칭을 유지합니다

sudo bash를 사용할 때 별칭을 유지합니다

내 계정에 대한 별칭 명령이 있는 Centos 5.5 서버가 있습니다. 그렇게 할 때 sudo bash해당 별칭을 계속 사용할 수 있으므로 루트의 .bashrc.

Centos 6.5라는 다른 서버가 있습니다. 하지만 을 실행하면 sudo bash로그인한 사용자의 별칭이 사용되지 않습니다. 을 사용할 때 로그인한 사용자의 별칭을 포함하도록 구성하는 위치를 아는 사람이 있습니까 sudo bash?

답변1

~/.bashrc에 다음 줄을 추가합니다.

alias sudo='sudo '

배쉬 매뉴얼에서

별칭을 사용하면 간단한 명령의 첫 번째 단어로 사용될 때 문자열을 단어로 대체할 수 있습니다. 쉘은 alias 및 unalias 내장 명령을 사용하여 설정 및 설정 해제할 수 있는 별칭 목록을 유지 관리합니다.

각 단순 명령의 첫 번째 단어가 인용되지 않은 경우 별칭이 있는지 확인합니다. 그렇다면 해당 단어는 별칭의 텍스트로 대체됩니다. '/', '$', '`', '=' 문자와 위에 나열된 셸 메타 문자 또는 인용 문자는 별칭 이름에 나타날 수 없습니다. 대체 텍스트에는 쉘 메타 문자를 포함하여 유효한 쉘 입력이 포함될 수 있습니다. 대체 텍스트의 첫 번째 단어는 별칭에 대해 테스트되지만 확장되는 별칭과 동일한 단어는 두 번째로 확장되지 않습니다. 이는 예를 들어 ls를 "ls -F"로 별칭을 지정할 수 있으며 Bash는 대체 텍스트를 재귀적으로 확장하려고 시도하지 않는다는 것을 의미합니다. 별칭 값의 마지막 문자가 공백이나 탭 문자인 경우 별칭 뒤의 다음 명령 단어도 별칭 확장을 확인합니다.

따라서 Bash는 별칭에 대한 명령의 첫 번째 단어만 확인하고 그 이후의 단어는 확인하지 않습니다. 즉, sudo ll과 같은 명령에서는 bash가 첫 번째 단어(sudo)만 별칭을 확인하고 ll은 무시된다는 의미입니다. 별칭 값 끝에 공백을 추가하여 bash에게 별칭(예: sudo) 뒤의 다음 단어를 확인하도록 지시할 수 있습니다.

답변2

sudo -E환경을 내보내는 를 사용하세요 .

관련 정보