Как автоматически запускать команды на gnome-терминале после входа в систему?

11

После каждого входа в систему есть определенные команды, которые я запускаю на определенных вкладках gnome-терминала. Это утомительный процесс, поэтому можно ли это сделать автоматически?

tshepang
источник

Ответы:

5

Да, есть способ. Вы должны указать gnome-терминал запускать вкладки с определенными профилями; эти профили должны быть настроены для запуска оболочки с нужными вам командами.

Сначала вам нужно создать скрипт (или значок запуска), который будет запускаться gnome-terminal --tab-with-profile=Dev. «Dev» - это имя профиля, который вы создадите, поэтому замените его тем, что вы хотите. Кроме того, вы можете указать столько --tab-with-profiles, сколько хотите: он откроет вкладку для каждого.

Теперь вам нужен профиль, на который вы только что ссылались. Это создается путем открытия gnome-terminalи поиска Edit->Profiles...в меню. Создайте новый профиль и присвойте ему имя, указанное на предыдущем шаге. Далее нужно установить его настройки. Выделите вновь созданный профиль и нажмите кнопку «Изменить». Когда откроется диалоговое окно «Параметры профиля», активируйте вкладку «Заголовок и команда», установите флажок «Выполнить пользовательскую команду ...» и в соответствующем текстовом поле вставьте sh -c "ENV=$HOME/.dev_profile sh". Конечно, вы можете установить ENV на любой путь, который вы хотите, если вы последовательны в следующем шаге. Это запускает sh, и sh выполнит любые команды$HOME/.dev_profile

Далее вам нужно создать этот файл профиля оболочки. Поэтому отредактируйте $ HOME / .dev_profile (или любой файл, который вы указали на предыдущем шаге). Поместите туда любые команды, которые вы хотите; они будут выполнены при запуске оболочки. Относитесь к этому, как к .bashrc - это заменит его. В зависимости от того, как настроен ваш .bashrc, вы можете захотеть source $HOME/.bashrcв профиле скопировать все функции из обычного профиля sh.

Шон Дж. Гофф
источник
3
Кстати, я бы настоятельно рекомендовал вместо этого tmux или GNU Screen. Это терминальные мультиплексоры, которые немного проще в настройке для такого рода вещей, и вы можете использовать их по ssh-соединению. Единственным недостатком является то, что у них нет вкладок, по которым вы можете щелкнуть, но вы можете получить список окон или сеансов, по которым вы можете перемещаться вверх и вниз, и переключаться на них. У них также есть другие модные опции, такие как разделенный экран, мониторы активности / неактивности и возможность держать сеанс открытым без присоединенного терминала.
Шон Дж. Гофф
1
Экран имеет свои преимущества, но также имеет и недостатки. Одна из них заключается в том, что прокрутка к предыдущему выводу сложнее, чем с большинством эмуляторов X-терминала. Другая причина заключается в том, что вы не можете легко отобразить одновременно два окна из одного сеанса экрана (это не проблема, если вы используете отдельные сеансы экрана, но тогда вам нужно переключаться между ними, которые разделяют вкладки или окна эмулятора терминала). делает проще).
Жиль "ТАК - прекрати быть злым"
@Giles: Или экран легче прокручивать: это зависит от того, как вам нравится работать. Я не уверен, что вы имеете в виду о двух окнах - я делаю это все время: ^ a S ^ a <tab> ^ ac
Шон Дж. Гофф
2
да, это намного проще, чем двойной щелчок по панели вкладок
Falmarri
2
@Falmarri: на самом деле это так. Я достаточно редко касаюсь мыши, чтобы оптический датчик сам выключился, поэтому мне нужно размахивать им около 1,5 секунд, прежде чем я что-то нажму. (Не говоря уже о том, что мне нужно убрать руку с клавиатуры и снова найти домашнее местоположение на клавиатуре.)
Шон Дж. Гофф,
7

Вы можете запустить несколько команд в одной командной строке терминала gnome, указав --tab-with-profileопцию несколько раз, а затем каждый раз -eуказывать одну команду для запуска на этой вкладке. Вы также можете использовать, --window-with-profileчтобы иметь несколько окон. Например, следующая команда запускает два окна с двумя вкладками в каждом; первое окно запускает bash на каждой вкладке, устанавливая переменную окружения TABв 1 или 2; второе окно запускается htopв одной вкладке и iotopв другой вкладке. Явный shвызов с правильным цитированием необходим по некоторым причинам.

gnome-terminal --tab-with-profile="Default" -e 'sh -c '\''export TAB=1; exec bash'\' \
               --tab-with-profile="Default" -e 'sh -c '\''export TAB=2; exec bash'\' \
               --window-with-profile="Default" -e 'htop' \
               --tab-with-profile="Default" -e 'iotop'

Если вы хотите, чтобы команда запускалась при входе в систему, поместите ее в сценарий оболочки (например ~/bin/my_gnome_login_commands, и зарегистрируйте ее в «System / Preferences / Startup Applications» в меню Gnome. Либо создайте файл, ~/.config/autostart/my_commands.desktopсодержащий

[Desktop Entry]
Type=Application
Exec=/home/tshepang/bin/my_gnome_login_commands
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true

(Вы должны использовать полный путь к домашней директории в Exec=строке, вы не можете использовать ~.)

(Этот ответ был протестирован с Gnome 2.30 в Ubuntu 10.04. Поскольку Gnome иногда нарушает совместимость, он может применяться или не применяться к другим версиям.)

Жиль "ТАК - прекрати быть злым"
источник
0

Я вижу здесь много вещей. Вероятно, вам ничего этого не нужно.

Вот шаги, которые я сделал в моем Oracle 5.9 Linux:

  1. Создайте значок терминала gnome на рабочем столе.
  2. Откройте свой гном-терминал.
  3. Зайдите в Редактировать -> Профили.
  4. Выберите свой профиль по умолчанию и нажмите «Изменить».
  5. Перейдите на вкладку «Название и команда».
  6. Выберите «Запустить команду как оболочку входа».
  7. Нажмите на кнопку Закрыть.

Это сработало для меня. Конечно, в моем случае я просто хочу запустить .profile для настройки моей терминальной среды.

CesarDBA
источник