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

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

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

  • Общая спецификация интерфейса командной строки
  • Запустите команду, которая затенена псевдонимом
  • Как я могу проверить, существует ли файл в / root без su для root?
  • $ @ кроме первого аргумента
  • Почему некоторые команды не читаются со своего стандартного ввода?
  • Как сохранить строковый литерал в переменную без замены или интерпретации?
  •  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 в любую из этих структур? Я просто выхожу из системы или мне нужно перезагрузить систему, чтобы сделать изменения активными?

  • Как вставить первый столбец во многие файлы + как преобразовать время unix в обычное время
  • cat в stdin, тогда труба в программу держит раздвоенную оболочку открытой, почему?
  • Доступ к выделенному тексту из сценария?
  • nohup: не удалось запустить команду `. ': Permission denied
  • Как печатать только повторяющиеся значения из текстового файла?
  • Shell Scripting: удаление или перемещение файлов из одного каталога, соответствующего именам файлов из другого каталога
  • 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.

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