Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Как правильно сделать скрипт в Ubuntu и сделать его исполняемым отовсюду?  (Прочитано 2502 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн papakota

  • Автор темы
  • Участник
  • *
  • Сообщений: 123
    • Просмотр профиля
Здравствуйте,

Я сделал bash скрипт как root и он работает, если я захожу в папку, где он находится и делаю sudo ./scriptname.sh Я создал папку bin в /home/myusername и добавил туда мой скрипт. Потом я добавил в PATH /home/myusername/bin так: export PATH=$PATH:/home/myusername/bin И когда я делаю echo $PATH, то вначале я его вижу. Тем не менее, когда я просто пишу где-то sudo scriptname.sh, то везде получаю «command not found» почему то. Еще такой момент... Что касаемо аттрибутов моего скрипта, то они такие: -rwxr-xr-x
Если можно, разъясните поподробней как можно в Ubuntu сделать так, чтобы скрипт исполнялся отовсюду, если он находится в директории /home/myusername/bin. Ну, с командой
export PATH=$PATH:/home/myusername/bin
ясно, а по поводу файлов .bash_profile и .bashrc совсем не ясно. Я читал в Сети при эти файлы в данном контексте, но так и ничего не понял, если честно... Что с ними делать...

Оффлайн theurs

  • Активист
  • *
  • Сообщений: 457
    • Просмотр профиля
можно просто положить свой скрипт в системную папку, в /usr/bin например

adawdp

  • Гость
2016 Jan 14; 07:31 PM; Oakville, ON, Canada.

— Ваш вопрос:„Как правильно сделать скрипт в Ubuntu и сделать его исполняемым отовсюду?”,- судя по дальнейшему вашему тексту касается скрипта в котором для исполнения какой-то команды требуется sudo.

— Для этого используется правка файла /etc/sudoers, как правильно вносить данные в этот файл сначала нужно прочитать!!! Сам файл перед правкой желательно сохранить, я просто делаю архив в этой же директории. Тогда в случае неудачной правки можно с загрузочной флешки будет восстановить работоспособность системы распаковав ищ архива первозданный файл.
(Нажмите, чтобы показать/скрыть)
— Чаще всего это всё нужно для автозапуска.

Оффлайн bukass

  • Активист
  • *
  • Сообщений: 976
    • Просмотр профиля
papakota,
Запускать находясь в любой директории, можно указав полный путь до скрипта.
« Последнее редактирование: 15 Январь 2016, 05:36:27 от bukass »
Всем пора в Изумрудный город, кому за умом, кому за сердцем.

Axa-Ru

  • Гость
Я сделал в домашней директории каталог bin и в него кладу мои скрипты.

Оффлайн absent

  • Активист
  • *
  • Сообщений: 368
  • Ubuntu 16.04
    • Просмотр профиля
papakota,
в .profile изначально есть описание пути до пользовательских исполняемых файлов:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
поэтому ничего переопределять не нужно, а просто создать папку bin в своей директории, положить туда свои скрипты и перелогиниться.
Можете в .profile добавить своё расположение скриптов, если не нравится предложенный каталог по-умолчанию.

PS забыл про sudo. Да, тогда, как правильно сказал adawdp, путь надо добавлять в /etc/sudoers
« Последнее редактирование: 15 Январь 2016, 11:46:24 от absent »

Оффлайн papakota

  • Автор темы
  • Участник
  • *
  • Сообщений: 123
    • Просмотр профиля
Спасибо всем за ваши ответы!

Может тогда мне проще сделать свой скрипт не от рута, а от себя и не заморачиваться с sudo и с sudoers? Просто, я думал от рута делать безопаснее... Но может, это неважно? Мне не хотелось бы экпериментировать с тем, в чем я слабо покамест разбираюсь...

По поводу .profile тоже мне не совсем ясно -- если там "$HOME/bin", но ведь у меня мой скрипт находится в home/myusername/bin. Это разве то же самое?

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Может тогда мне проще сделать свой скрипт не от рута, а от себя и не заморачиваться с sudo и с sudoers?
Конечно проще!
Просто, я думал от рута делать безопаснее..
При чём здесь? Задачи связанные с изменением системы Вы иначе как от администртора просто не сделаете. А пользовательские НАДО делать от имени пользователя.
если там "$HOME/bin", но ведь у меня мой скрипт находится в home/myusername/bin. Это разве то же самое?
"$HOME/bin" == /home/myusername/bin == /home/$USER/bin == ~/bin == ... — синонимы
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн papakota

  • Автор темы
  • Участник
  • *
  • Сообщений: 123
    • Просмотр профиля
Ясно, спасибо!

Ладно, вроде бы анакрон со скриптом, что я сам сделал сработал как надо. Так что будем считать, что вопрос в этом топике как бы решен. Всем спасибо!

 

Страница сгенерирована за 0.096 секунд. Запросов: 24.