새로운 별칭과 함수를 정의한 후 새로 고쳐지나요?

새로운 별칭과 함수를 정의한 후 새로 고쳐지나요?

파일에 새 별칭을 정의하거나 .bash_aliases파일에 새 함수를 정의할 때 .bashrc터미널을 닫지 않고 새 별칭이나 함수를 즉시 사용할 수 있는 새로 고침 명령이 있습니까(내 경우에는 xfce4-terminal, 여러 탭이 열려 있고 여러 탭이 열려 있음) 파일 및 직장에서)?

답변1

변경된 파일을 가져오면 현재 터미널에 새로 작성된 별칭이나 기능에 대한 액세스가 제공됩니다. 예를 들면 다음과 같습니다.

source ~/.bashrc

또 다른 구문:

. ~/.bashrc

터미널에서 bash 인스턴스가 많이 실행 중인 경우(여러 탭을 언급한 경우) 각 인스턴스에서 이를 실행해야 합니다.

답변2

. ~/.bashrc명령줄에 이것을 입력하면 실행되어 .bashrc파일에 정의된 모든 기능이 생성됩니다.

.bashrc그런 다음 자체적으로 호출하여 실행됩니다 .bash_aliases(만약에존재함) .bashrc내부에 다음 코드가 있는 경우:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

단독으로 사용하는 동안 . ~/.bash_aliases(예: 명령줄에서) .bash_aliases.bashrc를 포함하지 않고 실행을 시도하고 파일이 존재하지 않으면 오류를 표시합니다(따라서 테스트할 때 파일을 확인합니다 .bashrc).

답변3

때로는 별칭을 함수로 바꾸고 싶지만 bashrc 파일을 얻을 때 이상한 오류가 발생할 수 있습니다.

. ~/.bashrc
bash: /home/username/.bashrc: line 38: syntax error near unexpected token `('
bash: /home/username/.bashrc: line 38: `hello_world() {'

이는 별칭이 새로 정의된 함수의 이름과 충돌하기 때문에 발생할 수 있습니다. 내가 아는 한, 이 문제를 방지하려면 모든 항목의 별칭을 해제한 다음 bashrc 파일을 가져와야 합니다.

bash-4.3 $
unalias -a && . $HOME/.bashrc

관련 정보