Псевдоним из .bash_profile не отражается в системе

У меня мало настроек пути и псевдонима в .bash_profile, и я экспортирую их.

Например:

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

И я хочу использовать myrtgcc для компиляции программ на C либо с терминала, либо из Eclipse с помощью команды gcc ; Я ожидаю, что система запустит myrtgcc somfile.c -o output .

Однако, это не так. Даже после добавления вышеуказанного псевдонима в .bash_profile и перезапуска системы (или с использованием source .bash_profile ) изменения не отражаются: если я открываю терминал и which gcc , я получаю /usr/bin/gcc и когда eclipse использует " GCC "снова вызывает тот же /usr/bin/gcc .

Как сделать myrtgcc умолчанию по всей системе, для команды gcc

    2 Solutions collect form web for “Псевдоним из .bash_profile не отражается в системе”

    Вы сбиты с толку несколькими вещами:

    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. Псевдонимы влияют на оболочку, а не на другие вещи. Когда make , eclipse и т. Д. Пытаются запустить gcc , псевдонимы оболочки не будут иметь значения. Вы также можете экспортировать только переменные, а не псевдонимы. Вот пример (опять же с этим псевдонимом foo) perl, пытающимся запустить его:

       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++ и т. Д., А не gcc . Таким образом, даже если бы вы переопределили gcc , это, вероятно, не сработало бы.

    Итак, как это сделать?

    Лучший подход – сказать make и т. Д., Какой компилятор использовать:

     make CC=/path/to/myrtgcc target 

    Вы также можете передать это в среде при запуске /.configure для программ, использующих autoconf.

    Второй подход заключается в создании простых сценариев оболочки, называемых gcc , cc и т. Д. В (например) ~/bin и помещать их первым в ваш путь. Скрипты выглядели бы примерно так:

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

    и вы поместите их сначала в PATH, используя что-то вроде этого в вашем .bashrc :

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

    Прочтите документацию к оболочке. Существует два типа профилей. .bash_profile выполняется, когда вы уже вошли в систему и выполняете что-то вроде открытия нового терминала. Другой тип профиля используется при первоначальном входе в систему и, как это ни странно, называется профилем входа в систему. Чтобы сделать то, что вы хотите сделать, попробуйте поместить свой материал в .profile

    Linux и Unix - лучшая ОС в мире.