.bash_profile의 별칭은 시스템 전체에 반영되지 않습니다.

.bash_profile의 별칭은 시스템 전체에 반영되지 않습니다.

.bash_profile에 경로 설정과 별칭이 거의 없으며 내보내는 중입니다.

예를 들어:

alias gcc=/abc/def/......./myrtgcc
export gcc

나는 사용하고 싶다밀트 gccgcc다음 명령을 사용하여 시스템을 실행하려는 터미널이나 Eclipse에서 C 프로그램을 컴파일합니다 myrtgcc somfile.c -o output.

그러나 이는 사실이 아니다. 위의 별칭을 추가 .bash_profile하고 시스템을 다시 시작한 후에도(또는 을 사용하여 source .bash_profile) 변경 사항이 반영되지 않습니다. 터미널을 열고 을 입력하면 가 표시 which gcc되고 /usr/bin/gcceclipse가 "GCC" 명령을 사용하면 동일한 명령이 다시 호출됩니다 /usr/bin/gcc.

어떻게 만드나요?밀트 gcc명령에 사용되는 시스템 기본값걸프 협력 협의회

답변1

당신은 몇 가지 사항에 대해 혼란스러워합니다.

  1. which별칭은 반영되지 않습니다. 따라서 which별칭이 생성되었는지 확인하려고 할 때 를 사용하는 것은 도움이 되지 않습니다. alias대신 인수 없이 실행하면 유효한 별칭이 모두 표시됩니다. 예:

    anthony@Zia:~$ foo
    bash: foo: command not found
    anthony@Zia:~ [$?=127]$ alias foo='echo hi'
    anthony@Zia:~$ foo
    hi
    anthony@Zia:~$ which foo
    anthony@Zia:~ [$?=1]$
    
  2. 별칭은 다른 어떤 것에도 영향을 주지 않고 셸에만 영향을 줍니다. .dll을 실행하려고 할 때 쉘 별칭은 중요하지 않습니다 make. 별칭이 아닌 변수만 내보낼 수도 있습니다. 다음은 Perl을 실행하려는 예입니다(다시 foo 별칭을 사용함).eclipsegcc

    anthony@Zia:~$ perl -Mautodie=system -E 'system("foo")'
    "foo" failed to start: "No such file or directory" at (eval 6) line 12.
    at -e line 1
    
  3. 컴파일하는 대부분의 작업은 대신 실행 등을 cc수행 합니다 . 따라서 다시 작성하더라도 작동하지 않을 수 있습니다.c++gccgcc

그렇다면 이것을 달성하는 방법은 무엇입니까?

make가장 좋은 방법은 사용할 컴파일러를 알려주는 것입니다 .

make CC=/path/to/myrtgcc target

/.configureautoconf를 사용하는 프로그램을 실행할 때 환경에 전달할 수도 있습니다.

두 번째 방법은 (예를 들어) 등의 이름을 가진 간단한 쉘 스크립트를 생성 gcc하여 경로의 첫 번째 위치에 배치하는 것입니다. 스크립트는 다음과 같습니다.cc~/bin

#!/bin/sh
exec /path/to/myrtgcc "$@"

PATH에서 다음과 같은 것을 사용하여 먼저 배치할 수 있습니다 .bashrc.

PATH="$HOME/bin:$PATH"
export PATH

답변2

쉘 문서를 읽어보세요. 구성 파일에는 두 가지 유형이 있습니다. .bash_profile은 이미 로그인되어 있고 일부 작업(예: 새 터미널 열기)을 수행할 때 실행됩니다. 또 다른 유형의 프로필은 시스템에 처음 로그인할 때 사용되는데, 이상하게도 이를 로그인 프로필이라고 합니다. 원하는 작업을 수행하려면 .profile에 내용을 넣어보세요.

관련 정보