내 계정 별칭 명령이 있는 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
하여 환경을 내보냅니다.