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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: alias в DE — как?  (Прочитано 2538 раз)

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

Оффлайн 027

  • Автор темы
  • Участник
  • *
  • Сообщений: 122
  • Cinnamon
    • Просмотр профиля
alias в DE — как?
« : 06 Февраля 2015, 20:17:10 »
Вот, скажем, у меня установлена программулька
/usr/bin/programm

и я хочу запускать ее всегда с ключом --key:
/usr/bin/programm --key

что я делаю в консоле (не забыв прописать в ~/.bashrc):
alias programm='/usr/bin/programm --key'

и все это чудно работает из эмулятора терминала. Но не работает, если я нажму Alt+F2 и напечатаю туда programm. Точно так же не работает при вызове из ярлычков, меню и ассоциаций файл-менеджеров. А мне надо, чтобы алиас работал везде.

Как?
Если бы было достаточно man bash, не было бы ABS.

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: alias в DE — как?
« Ответ #1 : 07 Февраля 2015, 00:28:33 »
Код: (bash) [Выделить]
# освобождаем имя команды (которое используется в ГУИ, консоли и т.д.)
sudo mv -f /usr/bin/programm{,.orig}
# создаем скрипт с известным именем вызывающий оригинальную команду с нужными параметрами
echo -e '#!/bin/bash\n/usr/bin/programm.orig --key' | sudo tee /usr/bin/programm > /dev/null
# присваиваем скрипту такие же права как и у оригинальной команды
sudo chmod --reference=/usr/bin/programm.orig /usr/bin/programm
« Последнее редактирование: 07 Февраля 2015, 10:06:51 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн 027

  • Автор темы
  • Участник
  • *
  • Сообщений: 122
  • Cinnamon
    • Просмотр профиля
Re: alias в DE — как?
« Ответ #2 : 07 Февраля 2015, 03:17:30 »
Спасибо.
Можно пояснить,зачем это?
sudo chmod --reference=/usr/bin/programm.orig /usr/bin/programm...в свете заданного вопроса?
В каком там месте гуй догадается, мол вон чего?
Ну, в смысле, алиасы из .bashrc прочитать.
Заранее спасибо.
И зачем так сложно посылать в никуда
echo -e '#!/bin/bash\n/usr/bin/programm.orig --key' | sudo tee /usr/bin/programm > /dev/nullкогда можно тупо скопипастить строки.

« Последнее редактирование: 07 Февраля 2015, 03:42:12 от 027 »
Если бы было достаточно man bash, не было бы ABS.

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: alias в DE — как?
« Ответ #3 : 07 Февраля 2015, 10:17:50 »
По поводу --reference=... можно было просто права на исполнение присвоить скрипту, но так круче, правда?
Алиасов уже не надо (добавил коментарии в код), тут идет подмена оригинальной проги.
tee дублирует переданную ей строку в файл и на экран. Перенаправлением в "дырку" я убираю вывод в консоль (зачем он мне если я сам команду вводил?). Что до остального — это технически стандартная процедура записи в файл под sudo. Мне например удобнее "скопипастить" команду в консоль, чем открыть редактор, скопировать, сохранить, опять вернуться в консоль…
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн 027

  • Автор темы
  • Участник
  • *
  • Сообщений: 122
  • Cinnamon
    • Просмотр профиля
Re: alias в DE — как?
« Ответ #4 : 10 Февраля 2015, 08:32:58 »
Понятно, просто другая парадигма работы за компом.

Однако результат тот же самый, что я сделал в одном конкретном случае с libreoffice - подмена оригинального исполняемого файла своим. Остается только гадать, при каком очередном обновлении все вернется взад. В отличие от подмены через alias.

Если бы было достаточно man bash, не было бы ABS.

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: alias в DE — как?
« Ответ #5 : 10 Февраля 2015, 11:36:01 »
Никто не мешает Вам пойти дальше и скомбинировать оба варианта. Тогда не надо подменять программу, а достаточно вызывать скрипт с другим|похожим названием, который и будет запускать основную программу с параметрами.
Можно ещё попробовать поковырять запуск программ (меню приложений), попробовать менять .desktop-files — но тут я не помощник, такого опыта не имею.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

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