2015-07-13 2 views
1

Я надеюсь, что этот вопрос в порядке. В основном, что я хочу сделать, это создать небольшую программу, которая, используя терминал Ubuntu, я могу просто вызвать ее и выполнить команду из любого каталога. Например, что-то вроде print Hello World просто выведет Hello World. Любые советы о том, как я могу это сделать?Создание команды терминала программно?

#include <iostream> 

int main(int argc, char* argv[]) 
{ 
    for (char letter : arv) { 
     std::cout << letter; 
    } 
} 

Я думаю, что что-то подобное будет работать, только очень простую программу, но как я могу получить его, чтобы установить команду, которую я мог бы использовать в любом месте?
Надеюсь, это имеет смысл, если я что-то уточню, пожалуйста, дайте мне знать.
Чтобы объяснить, почему это не дубликат, я немного уточню, что не спрашиваю, как вызвать команду из программы. Частично ответили, что я могу переместить мой исполняемый файл в каталог /usr/bin/, что было полезно, однако мне больше нравится любопытно, как я могу это сделать, чтобы, если пользователь загружает и использует мою программу, у них не будет чтобы переместить файл в /usr/bin/, они могут просто загрузить и иметь свою глобальную команду.

+0

Возможный дубликат [Как выполнить внешнюю программу в коде C в Linux с аргументами?] (Http://stackoverflow.com/questions/5237482/how-do-i-execute-external-program-within-c -code-in-linux-with-arguments) –

+0

Я думаю, что вы меня неправильно поняли, я не хочу вызывать команду из программы, я хочу вызвать ее из командной строки терминала. Как вы бы назвали ls или gedit или что-то еще. – Dylan

+4

Затем просто поместите свой исполняемый файл где-нибудь в пути (/ usr/bin,/usr/local/bin) или измените среду вашего пути пользователя, чтобы включить какой-либо каталог в ваш домашний каталог. –

ответ

4

Команда просто программа в одном из каталогов, указанных в переменной среды PATH.

Запустить echo $PATH, чтобы увидеть каталоги (разделенные двоеточиями).

Пользователь может «установить» вашу программу, просто скопировав ее в любой из этих каталогов. Обычно /usr/local/bin предназначен для программ, установленных за пределами диспетчера пакетов, но любой из них будет работать. Они также могут скопировать его в новый каталог и добавить этот каталог в свои PATH.

Если вы хотите, чтобы это произошло «автоматически», вам нужно заставить пользователя запустить другую программу, которая сделает это за них.

+0

Большое спасибо, это то, что я искал. Если вы не возражаете, чтобы я просил вас продолжить, как бы кто-то добавил каталог к ​​их «PATH»? Я знаю, как это сделать в Windows, но я не уверен в Linux/Ubuntu. Благодаря! – Dylan

+1

«Команда - это просто программа в одном из каталогов, заданных переменной среды PATH.«И имеет бит исполняемого бита: если он не имеет установленного бита (с' chmod + x command-to-be-given-execute-permissions'), не имеет значения, находится ли он в 'PATH'. – juandesant

-1

Вам нужно Т.И. команду использовать псевдоним http://www.hostingadvice.com/how-to/set-command-aliases-linuxubuntudebian/ или переместить сценарий/бен/бен/

+0

Как я могу сделать это более интуитивно понятным пользователем? Как и при установке maven, вы можете вызвать 'mvn'. Я бы так хотел, чтобы, если бы пользователь использовал мою программу, они могли бы просто вызвать простую команду для ее использования. Например, 'print' в примере. – Dylan

+0

/bin предназначен для основных системных исполняемых файлов. Даже менеджеры пакетов обычно не касаются этого. – PSkocik

+0

@PSkocik Предпочитаете ли вы '/ usr/bin' или'/usr/local/bin'? – Dylan

Смежные вопросы