Выполнение команды при запуске терминала linux

Как выполнить команды при старте консольной сессии

При старте консольной сессии (например, при логине в систему или при запуске эмулятора терминала), командная оболочка выполняет скрипты стартовой инициализации. При окончании сессии выполняются скрипты завершения сессии. Вот, что сообщает об этом справочное руководство командной оболочки bash.

При запуске bash в качестве интерактивной или не интерактивной (с ключом —login ) командой оболочки, то есть при логине пользователя в систему, bash выполняет в следующем порядке следующие файлы скриптов, если таковые существуют:

Чтобы при старте bash не выполнял эти скрипты, можно использовать при запуске ключ —noprofile .

По завершении сессии выполняется скрипт ~/.bash_logout .

При запуске bash не как командной оболочки при логине, исполняются файлы скриптов:

Чтобы bash не выполнял rc-скрипты, можно при запуске bash использовать ключ —norc .

Чтобы при запуске bash выполнил вместо скрипта ~/.bashrc файл скрипта пользователя, можно использовать ключ —rcfile название_файла.

Когда bash запускается не интерактивно, например, чтобы выполнить скрипт, bash использует значение переменной среды BASH_ENV , исполняя его в качестве команды:

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi

При этом значение переменной окружения PATH не используется, поэтому в качестве значения переменной BASH_ENV следует указывать абсолютный путь к файлу.

Если bash вызывается с использованием названия файла sh, то bash имитирует стартовой поведение sh, насколько возможно, в соответствии со стандартами POSIX.

При запуске в качестве командной оболочки при логине, выполняются файлы /etc/profile и ~/.profile .

При запуске в качестве интерактивной оболочки с названием sh, выполняется команда, заданная значение переменной среды ENV. Файлы rc-файлы не выполняются, поэтому ключ —rcfile игнорируется.

Читайте также:  Браузеры только для linux

При запуске в качестве не интерактивной оболочки с названием sh, никакие стартовые скрипты не выполняются.

После выполнения стартовых скриптов, если bash запущен по названию sh, bash переключается в режим posix.

При запуске в режиме posix, например с ключом —posix , bash следует стандарту POSIX для скриптов стартовой инициализации. В этом режиме интерактивная командная оболочка выполняет команду, заданную значением переменной среды ENV . Никакие другие скрипты не выполняются.

При запуске bash пытается определить, используется ли для стандартного ввода сетевое соединение к локальному демону. Обычно это rshd для обычных соединений и sshd для защищённых. Если bash определяет, что запущен таким способом, то bash выполняет rc-скрипты /etc/bash.bashrc и ~/.bashrc . При запуске по названию sh, bash этого не делает. Также могут быть использованы ключи —norc и —rcfile .

При оболочка запущена с эффективным id пользователя (группы), не равными настоящим id пользователя (группы), и при этом не задан ключ -p , то файлы стартовой инициализации не выполняются, переменные среды не наследуются, переменные SHELLOPTS , BASHOPTS , CDPATH и GLOBIGNORE игнорируются, эффективный id пользователя устанавливается в настоящий id пользователя. Если ключ -p использован при вызове, то всё то же самое, только эффективный id пользователя не сбрасывается.

Источник

unixforum.org

Решено: Выполнение команд при запуске терминала.

Решено: Выполнение команд при запуске терминала.

чтобы подключиться к интернету мне необходимо запустить терминал, ввести «wvdial» и нажать «Enter». Можно ли сократить действия до запуска терминала? Т.е. чтобы при запуске терминала команда «wvdial» запускалась автоматически?

Бог создал рай, а Дьявол — Краснодарский край!

loki4 Сообщения: 115 ОС: GNU/Linux Arch Linux Контактная информация:

Re: Решено: Выполнение команд при запуске терминала.

Сообщение loki4 » 08.12.2007 20:54

В свое время пользовался для таких целей простыми ярлычками на рабочем столе. Думаю создать их не будет труда. Никогда не работал с wvdial, она какая то интерактивная, что надо запускать целый терминал?

Можно создать ярлык и в нем: wvdial && console, т.е. после успешного запуска wvdial будет открыта консоль.

Читайте также:  Linux hamachi logmein hamachi

Re: Решено: Выполнение команд при запуске терминала.

Сообщение ivanr » 08.12.2007 20:54

чтобы подключиться к интернету мне необходимо запустить терминал, ввести «wvdial» и нажать «Enter». Можно ли сократить действия до запуска терминала? Т.е. чтобы при запуске терминала команда «wvdial» запускалась автоматически?

Вы можете вставить эту команду в файл /home/user/.bashrc
и тогда эта команда станет выполняться при каждом новом запуске эмулятора терминала

Re: Решено: Выполнение команд при запуске терминала.

Бог создал рай, а Дьявол — Краснодарский край!

Re: Решено: Выполнение команд при запуске терминала.

Сообщение ivanr » 09.12.2007 01:25

Re: Решено: Выполнение команд при запуске терминала.

Бог создал рай, а Дьявол — Краснодарский край!

Re: Решено: Выполнение команд при запуске терминала.

Сообщение ivanr » 09.12.2007 02:05

diesel Бывший модератор Сообщения: 5989 ОС: OS X, openSuSE, ROSA, Debian Контактная информация:

Re: Решено: Выполнение команд при запуске терминала.

Сообщение diesel » 09.12.2007 11:30

создай простой текстовый файл, в котором примерно следующее напиши:

вместо xterm можно konsole, или gnome-terminal, или какой там твой терминал любимый(у них у всех -e вроде как одно и тоже значит), дай файлу права на выполнение:

когда надо запустить wvdial просто кликай по файлу(ну как обычные програмки запускаешь), и в появившейся ругани выбирай Run(Запустить). Если надо запустить wvdial так чтобы оно работало себе в фоне, а консоль пофиг: вместо xterm -e wvdial просто напиши wvdial & (правда если там оболочка, то оболочке может не понравится это).

Источник

Автозапуск терминала с введенной командой

Нужно создать .desktop файл в директории ~/.config/autostart/ с примерно таким содержанием:

[Desktop Entry] Type=Application Name=Name # замени на свое Comment=Comment # замени на свое Exec=/path/to/script # замени на свое Terminal=true X-GNOME-Autostart-enabled=true 

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

PS. Подобное работает не со всеми терминалами.

Prosto_user ★★★ ( 28.09.21 17:33:22 MSK )
Последнее исправление: Prosto_user 28.09.21 17:38:15 MSK (всего исправлений: 1)

чтобы открывалось окно терминала

Как раньше все просто было, пиши что хочешь в /etc/rc.local и нет проблем

Читайте также:  Linux mint hp pavilion g6

Что ж вы так, прямо с мешка соли на раны…

Та и сейчас не тяжелее, пиши что хочешь в юнит и запускай. Оно еще и зависимости и прочее умеет в отличии от rc

С юнитами надо знать ещё одну сущность, а с классической системой инициализации, достаточно было знать шелл

systemctl enable rc-local chmod +x /etc/rc.local 

и пиши что хочешь и нет проблем.

Вопрос не совсем корректный. Какой DE, какой терминал, какая убунта, какая цель? Если хочется чтоб шёл логин в графику и терминал открывало там — проще всего идти от DE. Если просто автозапуск — от init

upcFrost ★★★★★ ( 28.09.21 21:27:27 MSK )
Последнее исправление: upcFrost 28.09.21 21:31:00 MSK (всего исправлений: 1)

Не знал, но это все равно не теплый ламповый sysvinit

Источник

Запуск bash-скрипта при открытии нового окна терминала в Ubuntu 16.04

# !/bin/bush namesOfSpeakers=(bong beavis.zen bud-frogs dragon-and-cow duck elephant elephant-in-snake ghostbusters koala mech-and-cow moofasa stegosaurus turtle tux) SPOTS=$ number=$RANDOM let "number %= $SPOTS" fortune | cowsay -f $

пример работы команды cowsay с параметром -f dragon

Скрипт работает корректно, но я хотел бы сделать так, чтобы данный скрипт запускался при КАЖДОМ открытии нового окна терминала. Несколько часов поиска в гугле не помогли. Надеюсь на помощь сообщества. OS: Ubuntu 16.04 P.S. Это не имеет особого отношения к вопросу, но если кому интересно, опишу подробнее принцип работы скрипта. Команда cowsay [текст] из пакета «cowsay» выводит небольшой комикс с коровой, говорящей [текст]. Команду cowsay можно выполнить с параметром так, чтобы вместо коровы было другое животное, например: cowsay -f dragon «Привет!» Команда fortune из пакета fortune выдаёт случайную цитату на английском языке. Русские цитаты были установлены командой:

sudo apt-get install fortunes fortune-mod fortunes-min fortunes-ru 

Понятно, что fortune и cowsay — не связанные друг с другом команды, но их можно объединить так, чтобы персонажи из cowsay выдавали цитату из fortune

fortune | cowsay -f stegosaurus 

пример совмещения cowsay и fortune В своём скрипте я добавил в массив названия понравившихся мне живых существ, и при запуске скрипта случайное животное из массива namesOfSpeakers «говорит» какую-либо цитату из fortune пример работы скрипта

Источник

Оцените статью
Adblock
detector