새로운 별칭과 함수를 정의한 후 별칭과 함수를 새로 고치겠습니까?


54

.bash_aliases파일에 새 별칭을 정의 하거나 파일에 새 함수를 정의 .bashrc하면 터미널을 닫지 않고 새 별칭 또는 함수를 즉시 사용할 수있는 refresh 명령이 있습니까? 그리고 작업 중간에)?


6
열려있는 모든 터미널 / 탭에 새 명령을 알리는 명령이 없습니다. 열려있는 모든 쉘 에서 . .bashrc또는 해야합니다 source .bashrc.
Paul Tomblin

답변:


65

변경된 파일을 소싱하면 다음과 같이 현재 터미널에서 새로 작성된 별명 또는 기능에 액세스 할 수 있습니다.

source ~/.bashrc

대체 구문 :

. ~/.bashrc

터미널에서 여러 개의 bash 인스턴스가 실행중인 경우 (여러 탭을 언급 했음) 모든 인스턴스에서이를 실행해야합니다.


3
sourcecsh 파생입니다. 본 쉘 방식은 . .bashrc입니다.
Paul Tomblin

내가 정의 할 때 이것이 작동하지 않는다는 것이 흥미 롭습니다 alias prg='prg.py'. 터미널을 닫아야합니다.
xralf

"모든 경우에이를 실행해야합니다." -zsh 사용자는 TMOUT 및 TRAPALRM을 적절하게 설정하여 초당 ~ / .zshrc를 stat 및 (필요한 경우) 리 소싱하거나 다른 적절한 간격으로 리소스 할 수 있습니다. 그러나 배쉬가 이것을 할 수 있다고 생각하지 않습니다.
케빈

6

. ~/.bashrc명령 행에 입력 하면 .bashrc해당 파일에 정의 된 모든 함수가 작성됩니다.

.bashrc그런 다음 이 코드가 포함되어 있으면 호출하고 실행합니다 .bash_aliases(있는 경우 ) .bashrc.

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

반면 . ~/.bash_aliases명령 줄에서 단독으로 사용 .bash_aliases하면 .bashrc를 사용하지 않고 시도하고 실행 하며 파일이 존재하지 않으면 오류가 발생합니다 (따라서 파일 검사는에있을 때 .bashrc).


2

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

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

별칭 이름이 새로 정의 된 함수의 이름과 충돌하기 때문에 이런 일이 발생할 수 있습니다. 내가 아는 한, 이것을 피하려면 모든 것을 unalias해야하며 bashrc 파일을 소스로 사용하십시오.

bash-4.3 $
unalias -a && . $HOME/.bashrc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.