Где я должен поместить свой скрипт, чтобы я мог запустить его с помощью прямой команды?

С обеими внизу внизу попробуйте это:

Нажмите Alt + F2 и введите gconf-editor Перейдите к /apps/panel/general. В списке с правой стороны дважды щелкните элемент toplevel_id_list Переключите два элемента с помощью кнопок «Вверх» / «Вниз» (в моем случае я переключился с bottom_panel_screen0 top_panel_screen0 на top_panel_screen0 bottom_panel_screen0): Закройте gconf-editor, выйдите из системы и снова включитесь.
1
задан 14 May 2014 в 09:16

2 ответа

Это зависит от того, кто будет использовать ваш скрипт:

Только вы - $HOME/bin, например @waltinator, сказали, что вы и другие местные пользователи - /usr/local/bin root - /usr/local/sbin

Таким образом, у вас есть собственные сценарии, отделенные от исполняемых дистрибутивами.

68
ответ дан 24 May 2018 в 07:49
  • 1
    Традиционно каталоги .../sbin используются для статически связанных двоичных файлов (в основном используется root, до того, как доступны доступные библиотеки), а не пользовательские скрипты. – waltinator 13 May 2014 в 17:12
  • 2
    Это относится только к /sbin, а не /usr/sbin или /usr/local/sbin. В Стандарте иерархии файловой системы указано, что « Локально установленные программы системного администрирования должны быть помещены в /usr/local/sbin." [ссылка] . – Twinkles 13 May 2014 в 17:45
  • 3
    Это все верно, но каталоги sbin постепенно прекращаются, и нет причин для их разделения. Подробнее об этом см. Здесь здесь . – terdon♦ 13 May 2014 в 19:19
  • 4
    Я вижу обсуждение об их поэтапном отказе, и хотя аргументы убедительны, текущая рекомендация такова, которую я цитировал выше. – Twinkles 13 May 2014 в 19:49

Вы должны поместить свой скрипт под $HOME/bin. Следуйте ниже PATH, чтобы достичь этого:

Создайте папку с помощью mkdir $HOME/bin Затем поместите свой скрипт в $HOME/bin. Наконец, добавьте следующую строку под $HOME/.bashrc, отредактировав ее с помощью gedit $HOME/.bashrc [ f1]

Когда система ищет команду, которую вы набрали, она будет выглядеть в каждом каталоге $PATH и выполнить первое совпадение, которое оно находит.

37
ответ дан 24 May 2018 в 07:49
  • 1
    Я не уверен, что понимаю. Сначала поместил его в $ HOME / bin, а затем создал каталог? Кроме того, скрипты в $ HOME / bin найдены по умолчанию, нет необходимости добавлять их в $ PATH. – Jacob Vlijm 13 May 2014 в 10:17
  • 2
    @JacobVlijm: Это «найдено по умолчанию». так как он добавлен в $ PATH в ~/.profile. ;) – Gunnar Hjalmarsson 13 May 2014 в 11:24
  • 3
    @GunnarHjalmarsson Вы правы, я имел в виду: так что вам не нужно добавлять его, добавьте его еще раз :) – Jacob Vlijm 13 May 2014 в 13:16
  • 4
    Добавление $ HOME / bin в начало вашего пути гарантирует, что ваши скрипты будут видны раньше, чем где-либо еще в системе. Хотя это удобно, оно открывает вам все виды неожиданного поведения, если один или несколько ваших сценариев имеют то же имя, что и команда где-то еще на вашем пути. Это может потенциально открыть уязвимости системы безопасности, так как гораздо легче получить доступ к учетной записи пользователя, чем с повышенными привилегиями. Например. кто-то добавляет скрипт ls в ваш каталог bin, который действительно запускает rm -rf *. Добавление вашего $ HOME / bin до конца вашего пути позволяет избежать большинства подобных проблем. – Joe 15 May 2014 в 08:35
  • 5
    @Joe Если у них есть доступ на запись к $HOME/bin, то они уже могут rm -rf ~. Я всегда предпочитаю добавлять специальные пути, так как это явное решение, которое я сделал. – Sparhawk 15 May 2014 в 11:27

Другие вопросы по тегам:

Похожие вопросы: