Как запустить мою программу C из любой точки системы (Ubuntu 10.10)?

Друзья, я хочу добавить свой путь к программе C к переменной окружения PATH. Моя программа C называется «md5». Так что я могу выполнить его из любой точки (т.е. любой директории).

Моя программа md5 находится в /home/ahuq/MappingServer/md5_program . Так что я сделал, чтобы поставить:

 export PATH=$PATH:/home/ahuq/MappingServer/md5_program 

в рабочей оболочке. Это только делает временные изменения и позволяет мне временно запускать программу md5 из любой точки.

 root@ahuq-kitchen:/home/ahuq# md5 -sanis MD5 ("anis") = 38a1ffb5ccad9612d3d28d99488ca94b 

Но я хочу сделать это изменение постоянным.

Я попытался поместить строку PATH=$PATH:/home/ahuq/MappingServer/md5_program в конце /home/ahuq/.bashrc и /home/ahuq/.profile файлов. Я вышел из оболочки и снова вошел. Но это не сработало:

 root@ahuq-kitchen:/home/ahuq# md5 -sanis No command 'md5' found, did you mean: Command 'cd5' from package 'cd5' (universe) Command 'mdu' from package 'mtools' (main) Command 'mdb' from package 'mono-debugger' (universe) md5: command not found 

Возможно, я помещаю инструкцию PATH в неправильное место вышеупомянутых файлов. Внутри этих двух файлов есть много структур if-else-fi. Должен ли я PATH инструкцию PATH в любую из этих структур? Я просто выхожу из системы или мне нужно перезагрузить систему, чтобы сделать изменения активными?

5 Solutions collect form web for “Как запустить мою программу C из любой точки системы (Ubuntu 10.10)?”

Похоже, вы положили путь в правильное место. Возможно, это не сработает, если у вас есть пробелы где-то на пути. Вы можете попробовать сделать это для правильности:

 export PATH="$PATH:/home/ahuq/MappingServer/md5_program" 

Кроме того, просто добавьте приложение в /usr/local/bin . Или даже установите пакет md5sum , который, похоже, делает то же самое, что и ваше приложение.

Не видя ваши dotfiles, трудно сказать наверняка, но из того, что вы цитировали, вы оставили «экспорт», когда вы добавили его в файлы .profile и .bashrc.

Из вашего вопроса:

root @ ahuq-kitchen: / home / ahuq # md5 -sanis

Но, вы говорите, что вы только редактировали .bashrc для своего пользователя.

Если для каждого пользователя нужен новый путь для глобального, вы можете отредактировать /etc/bash.bashrc (это может вызвать проблемы, если другие пользователи не смогут выполнить md5 из вашего homedir из-за проблем с разрешениями). Или, если вам нужно только изменение, которое также относится к корневому, а также к вашему локальному пользователю, рассмотрите также отредактированный /root/.bashrc .

Альтернативно и более предпочтительно, как root, вы можете рассмотреть возможность установки / копирования команды md5 в /usr/local/bin , что является моим дефолтом в каждом $PATH каждого в Ubuntu.

Вы можете сделать это с помощью:

$ sudo cp / home / ahuq / MappingServer / md5_program / md5 / usr / local / bin
$ sudo chown root: root / usr / local / bin / md5
$ sudo chmod 755 / usr / local / bin / md5

Вы уверены, что используете bash (а не какой-нибудь другой вкус оболочки Bourne, такой как sh )? Попробуйте ps $$ и echo $SHELL чтобы проверить это.

Кроме того, перед добавлением этого пути в путь, чтобы увидеть, действительно ли выполняются ваши настройки пути, вы можете поместить такие выражения, как echo IN FILE XYZ .

И добавьте свой путь как можно ближе к концу файла запуска оболочки. Я видел файлы автозагрузки в прошлом, когда в какой-то момент весь PATH сбрасывается и восстанавливается с нуля вместо добавления новых каталогов

У меня также возникли некоторые проблемы с добавлением исполняемых файлов на мой путь. Что для меня работало, это добавить в export PATH=$PATH:/home/ahuq/MappingServer/md5_program ~/.bash_profile export PATH=$PATH:/home/ahuq/MappingServer/md5_program строки export PATH=$PATH:/home/ahuq/MappingServer/md5_program .

К сожалению, я не знаю, почему, но для met .bashrc не работал, но .bash_profile.

  • Исходный (.) Контурный выход
  • Где задана переменная окружения TERM по умолчанию?
  • Ограничения / etc / profile в Gnome
  • Как установить переменные среды на сервере / клиенте?
  • Избегайте передачи переменной среды в скрипт python
  • SH: Как сделать vars из одного скрипта доступным в главном скрипте?
  • Как сделать RPROMPT в самом обновлении zsh при каждом входе?
  • Как перемещаться по xargs, где каждый скрипт использует общую переменную env
  • Попытка понять .bashrc, env и export
  • Почему следующие два способа отображения переменных среды текущей оболочки отличаются?
  • проверьте «ошибки» или «ORA-»
  • Последняя неудачная команда в bash
  • Interesting Posts

    Запустить скрипт на нескольких хостах

    Есть ли инструмент графического интерфейса для отображения информации о архиве с визуализацией соотношения?

    Как я могу избежать 550 «Relaying denied» с postfix?

    Установить каталог хоста на виртуальной машине

    Ввод пунктуации добавляет акцент на предыдущее письмо после того, как мой ноутбук состыкован в течение нескольких минут

    тестирование сайтов в текущем Internet Explorer на монетном дворе 16

    Двоичный поиск в отсортированном текстовом файле

    Упрощенная обработка параметров сценария оболочки

    Текущее правило сокращения абзаца в командной строке

    Ограничить доступ для пользователя RedHat к одному каталогу

    В чем разница между драйверами r8169 и r8168?

    Как узнать номер моей работы, когда я выполняю программу COBOL через сценарий оболочки

    Есть ли способ импортировать адрес получателя из mutt в abook?

    «Nohup sudo …» не запрашивает passwd и ничего не делает

    Как grep n-я подстрока между заданными разделителями?

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