![Linux에서 alias 명령 스크립트는 어디에 있습니까?](https://rvso.com/image/134425/Linux%EC%97%90%EC%84%9C%20alias%20%EB%AA%85%EB%A0%B9%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94%20%EC%96%B4%EB%94%94%EC%97%90%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20.png)
그냥 실행할 수 있도록 bash 별칭 스크립트에 인수를 추가하고 싶습니다.
alias -p l='ls -l'
내 .zshrc에 영구적으로 추가됩니다. 하지만 별칭에 대한 쉘 스크립트를 찾을 수 없습니다.
나는 시도했지만 whereis alias
운이 없었습니다. man alias
별칭에 항목이 없음 도 표시됩니다.
나는 들여다 보았지만 /usr/bin, /usr/share/local/bin
운이 없었다. 위치 좀 알려주실 분 계신가요?
편집: 나는 또한 가능한 모든 경로를 찾아 보았습니다.ls $(echo $PATH| tr ':' '\n') | grep alias
답변1
alias
내장 명령이므로 어떤 파일에서도 스크립트나 함수로 표시되지 않습니다. 명령은 type
다음을 표시합니다.
$ type alias
alias is a shell builtin
하지만 여전히 재정의할 수 있습니다. 동일한 이름을 가진 함수는 builtin
내장 기능과 함께 명시적으로 호출되지 않는 한 내장 기능을 마스킹합니다.
따라서 다음과 같이 작동해야 합니다.
alias() {
if [ "$1" = "-p" ]; then
echo "-p was given";
shift;
fi;
builtin alias "$@";
}
동일한 별칭 할당을 파일에 인쇄하려면 셸에 대한 입력으로 사용할 수 있도록 올바르게 인용되도록 주의해야 합니다.
이와 같은 작업이 가능 shift
하지만(함수 바로 뒤에 추가됨) 테스트해 보세요.printf "alias %q\n" "$@" >> ~/my.alias.file
Bash 대 Zsh 문제에 관해서는 위의 내용이 두 가지 모두에 적용된다고 생각하지만 저는 Zsh 전문가는 아닙니다.
alias
덧붙여서 Bash에는 이미 다음과 같은 -p
옵션이 있다는 점에 유의할 수도 있습니다 help alias
.
Options:
-p print all defined aliases in a reusable format
alias
인수가 없는 경우의 기본 동작은 모든 별칭을 재사용 가능한 형식으로 인쇄하는 것이기 때문에 이것이 어떤 용도인지는 모르겠습니다 .
답변2
귀하의 alias
명령은 스크립트가 아닌 쉘 내장 명령일 가능성이 높습니다. 다음 명령을 사용하여 이를 확인할 수 있습니다 type
.
user@host:~$ type alias
alias is a shell builtin
내장 기능 에 대한 문서를 얻으려면 매뉴얼 페이지를 alias
살펴보십시오 bash
.
man bash
별칭을 영구적으로 만들려면 일반적으로 Bash 프로필 파일 중 하나에 명령을 추가합니다. ~/.bashrc
예를 들어 다음과 같습니다.
user@host:~$ echo "alias l='ls -l'" >> ~/.bashrc
답변3
내가 알 수 있는 한 zsh
영구 별칭을 지원하지 않습니다.
영구 별칭을 좋아한다면 다음을 확인하는 것이 좋습니다.http://schilytools.sourceforge.net/man/man1/bosh.1.html지속적인 가용성을 갖춘 별칭 구현을 위한 것입니다.
다른 쉘의 경우 별칭은 관련 파일 내에서 별칭 명령으로만 작성할 수 있습니다 .*shrc
.
답변4
저는 주로 bash로 작업하고 있으며 .bashrc에 별칭을 가지고 있습니다.
/home/myuser/.bashrc 아래의 내 홈 디렉토리에 있습니다.