Linux에서 alias 명령 스크립트는 어디에 있습니까?

Linux에서 alias 명령 스크립트는 어디에 있습니까?

그냥 실행할 수 있도록 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 아래의 내 홈 디렉토리에 있습니다.

관련 정보