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 전문가는 아닙니다.


그건 그렇고, Bash에는 이미 옵션이 alias있다는 점에 유의할 수도 있습니다 .-phelp 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 아래의 내 홈 디렉토리에 있습니다.

관련 정보