bash에서 내가 만든 쉘 스크립트를 자동으로 로드하여 /usr/bin에 넣도록 하는 방법이 있습니까?
아니면 자동으로 로드될 수 있도록 사용자 정의 셸 스크립트를 다른 곳에 배치해야 합니까?
예를 들어, content라는 스크립트를 생성한다고 가정해 보겠습니다 myscript
.
#!/bin/bash
alias e=echo
실행 가능하게 만들고( chmod a+x
) usr/bin에 넣습니다. 명령줄에서 e를 호출할 수 없습니다(시도하면 명령을 찾을 수 없다는 메시지가 나타납니다).
내가 뭘 잘못했나요?
답변1
alias
정의한 별칭은 명령이 실제로 호출될 때까지 적용되지 않습니다. 따라서 이렇게 하려면 다음과 같이 하세요.
$ source myscript
$ e "Hello"
작동해야합니다. 그러나 e
bash를 시작할 때마다 사용할 수 있기를 원하므로 이는 분명히 이상적이지 않습니다 . 다행히 bash는 쉘이 시작될 때 자동으로 명령을 실행하는 여러 가지 방법을 제공합니다. Bash 시작 방법에 대한 자세한 내용은 다음을 참조하세요.매뉴얼 페이지. 우리의 목적을 위해서는 ~/.bashrc
쉘이 시작될 때 실행된다는 것(즉, 홈 디렉토리에 ".bashrc"라는 파일)이 있다는 것을 아는 것만으로도 충분합니다. 시작 시 별칭을 사용할 수 있게 만드는 한 가지 방법은 끝에 다음 줄을 추가하는 것입니다 ~/.bashrc
.
source myscript
그러나 원하는 모든 별칭에 대해 이 작업을 수행하면 /usr/bin
폴더가 엉망이 될 수 있습니다. 그리고 다중 사용자 시스템을 사용하는 경우 /usr/bin/
이와 같은 스크립트를 채우면 다른 사용자에게도 문제가 발생할 수 있습니다. 따라서 내부에 별칭을 넣고 별도의 스크립트를 버리는 것이 좋습니다 .bashrc
. Ubuntu를 사용하고 있으므로 .bashrc
파일에는 다음과 같은 내용이 있을 수 있습니다.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
이 코드는 홈 디렉터리에서 파일 호출을 찾고 .bash_aliases
해당 파일에 있는 모든 항목을 실행합니다. 이것이 있거나 이 코드를 에 추가하는 경우 .bashrc
별칭도 에 넣을 수 있습니다 ~/.bash_aliases
. 이를 통해 모든 별칭을 한 위치에 저장하고 .bashrc
파일을 깔끔하게 유지할 수 있는 쉬운 방법을 제공합니다.
답변2
이러한 명령은 ~/.bashrc에 배치되어야 합니다.