별명 : .bash_rc, .bash_aliases 및 / usr / local / bin의 차이점


9

터미널을 가지고 놀면서, 영구적 인 별칭 을 만드는 많은 방법이 있다는 것을 알았습니다 .

나는 Linux 초보자이며 내가 아는 것에서 다음을 수행합니다.

  1. sudo ln -s /path/to/executable /usr/local/bin/desired_alias
  2. 추가 desired_alias = '/path/to/executable'~/.bashrc
  3. 다음 행에서 주석 처리를 제거하십시오 ~/.bashrc.

    if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
    fi

    퍼팅 desired_alias = '/path/to/executable'~/.bash_aliases

모두 같은 효과가 있습니다.

첫 번째 방법과 두 번째 방법의 차이점은 무엇입니까?

답변:


10

첫 번째 방법으로 별칭을 만들지 않고 심볼릭 링크를 만듭니다. 심볼릭 링크는 심볼릭 링크의 줄임말입니다.

심볼릭 링크는 다른 파일에 대한 포인터 역할을하는 파일입니다. [...] 기호 링크는 링크가 참조하는 파일 인 다른 파일의 경로 이름 인 문자열 인 특수 유형의 파일입니다. 다시 말해, 심볼릭 링크는 기본 이름이 아닌 다른 이름에 대한 포인터입니다.

여기여기에서 심볼릭 링크에 대해 자세히 알아보십시오 .

실제로 두 번째 방법으로 만 별칭을 만듭니다.

별명을 사용하면 간단한 명령의 첫 단어로 사용될 때 문자열을 단어로 대체 할 수 있습니다. 쉘은 alias 및 unalias 내장 명령으로 설정 및 설정 해제 할 수있는 별명 목록을 유지 보수합니다 (아래의 쉘 명령 명령 참조). 인용되지 않은 경우 각 간단한 명령의 첫 단어는 별칭이 있는지 확인합니다. 그렇다면 해당 단어가 별칭의 텍스트로 바뀝니다.

명령을 입력하고 셸 ( 이 경우 bash )이 해석하도록 별칭을 정의 할 수 있지만 다른 셸에서 별칭을 사용할 수 있으려면 셸에서 해석하는 파일에서 별칭을 정의해야합니다. 시작시 (컴퓨터 시작이 아닌 셸 시작).

bash의 경우 /etc/bash.bashrc(시스템 전체) 및 ~/.bashrc입니다. 이 파일은 쉘이 대화식 모드에서 시작될 때 해석됩니다 (예 :Terminal ) . 프로필 파일은 다른 용도로 사용되므로 언급하지 않겠습니다.

따라서 ~/.bashrc모든 대화식 쉘에서 별명을 사용할 수 있도록 별명을 추가하려고합니다 .

.bash_aliases방법은 수행 정확히 에서 별칭을 넣어 같은 일을 ~/.bashrc하지만, 구문 분석 프로그램에 의해 조작하기 쉽게되는 이점이 있습니다.

. ~/.bash_aliases수단 소스 (부하) _~/.bash_aliases_현재 실행중인 쉘의 맥락이다.


@lilo 당신은 튜토리얼로 나를 이겼습니다! +1
myusuf3

@gc 나는 자루를 치고 있어요 그래서 가자 :)
Li Lo

@lilo hahahha :)
myusuf3

1
당신은 그것이 동일하게 작동한다고 생각할 수도 있지만 그렇지 않습니다. 내 답변에서 언급 한 심볼릭 링크의 자료를 읽으십시오. Symlink와 별명은 서로 다른 용도로 사용되며 서로 다른 용도로 만들어졌습니다. 심볼릭 링크가 별칭처럼 작동하지 않는 이유를 설명하려면 다음과 같이 별칭을 정의하십시오. alias px = "ps axu". 이제 심볼릭 링크를 사용하여 동일한 작업을 수행하십시오.
Li Lo

1
@ Li Lo : synlink와 / usr / local / bin의 차이점을 이해했지만 내 질문 (일반적인 질문과 약간 다른 주제 일 수 있음)은 다음과 같습니다. exaclty / usr / local / bin은 무엇입니까?
Strae
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.