
bashrc
파일 에 다음 줄을 추가합니다
alias reboot="echo you not allowed to do reboot on this machine - sorry"
그래서 우리는 얻는다
more ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
alias reboot="echo you not allowed to do reboot on this machine - sorry"
그럼 우리는 그랬어
source ~/.bashrc
사실 우리가 할 때는
reboot
우리는
you not allowed to do reboot on this machine - sorry
하지만 실제 재부팅으로 돌아가고 싶을 때는 이 줄을 제거합니다 --> alias reboot="echo you not allowed to do reboot on this machine - sorry"
다음과 같이:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
그런 다음 bashrc를 새로 고칩니다.
source ~/.bashrc
하지만 재부팅을 시도하면 여전히 이전 별칭이 표시됩니다.
you not allowed to do reboot on this machine - sorry
여기서 우리는 무엇을 놓치고 있나요?
함수를 사용한 또 다른 예
echo '
function reboot
{
echo "ERROR reboot command not allowed on this machine"
return 1
}
' >>/root/.bashrc
위의 예에서는 할 수 없습니다unalias
답변1
구매한다고 해서 ~/.bashrc
모든 설정이 마법처럼 재설정되는 것은 아닙니다. 파일은 실행될 명령 묶음일 뿐입니다. 깨끗한 쉘에서 실행하면 기대한 결과를 얻을 수 있습니다.
그러나 별칭이 이미 정의된 경우 파일에 별칭이 없어도 별칭이 취소되지는 않습니다. 생각해 보세요. 파일에서 명령을 수동으로 실행하면 정의된 별칭에 영향을 주지 않습니다. unalias reboot
파일에 없습니다. 구매는 ~/.bashrc
실제로 주문을 실행하는 것이지 "수동으로" 실행하는 것이 아닙니다.
.bashrc
쉘의 현재 설정을 담고 있는 파일로 생각하지 마십시오 . 소스가 있다는 뜻이에요깨끗한 쉘에 들어가면 자동으로. 사람들은 때때로 수동으로 다시 가져오고 무언가를 추가하면 *추가된 항목이 실행되기 때문에 작동합니다. 삭제된 내용은 실행되거나 마법적으로 복원될 수 없습니다. 새 셸을 시작하고 .bashrc
설계된 대로 작업을 수행합니다.
별칭이나 함수를 우회하는 것은 매우 쉽습니다. 별칭이나 기능은 재시작을 비활성화하는 좋은 방법이 아닙니다.
* 이전 작업을 두 번 실행하면 발생할 수 있는 부작용에 적용됩니다.