실행할 수 있도록 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 전문가는 아닙니다.
그건 그렇고, Bash에는 이미 옵션이 alias
있다는 점에 유의할 수도 있습니다 .-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
~/.bashrc
별칭을 영구적으로 만들려면 일반적으로 다음과 같이 Bash 구성 파일 중 하나에 명령을 추가합니다 .
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 아래의 내 홈 디렉토리에 있습니다.