Проект

Общее

Профиль

Как с помощью bash создать несколько терминалов одновременно

Добавил(а) Михаил Губин 3 месяца назад

Bash - это командная оболочка, которая используется для управления операционной системой Linux. Она предоставляет множество инструментов для автоматизации задач и повышения производительности работы. Одним из таких инструментов является возможность создания нескольких терминалов одновременно и запуска в них разных программ.

Для создания нескольких терминалов в bash можно использовать команду screen. Эта команда позволяет создать новый сеанс, который будет работать независимо от основного терминала. Вы можете открыть несколько таких сеансов и переключаться между ними, используя клавишу Ctrl+A и стрелки влево/вправо.

Чтобы запустить разные программы в каждом из этих терминалов, нужно просто ввести команды в каждый из них. Например, вы можете запустить веб-сервер в одном терминале и редактор кода в другом.

Вот пример использования команды screen:

screen -S webserver
cd /path/to/webserver
sudo service apache2 start

screen -S editor
cd /path/to/project
vim index.html

В этом примере мы создаем два сеанса: один для запуска веб-сервера Apache и другой для редактирования файла index.html в редакторе Vim. После выполнения этих команд вы можете переключиться между этими сеансами, используя клавиши Ctrl+A, Ctrl+A S и стрелки влево/вправо.

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

Если вам нужно создать еще больше терминалов, вы можете использовать команду tmux. Это более мощный инструмент, который позволяет создавать панели и окна, а также управлять ими с помощью горячих клавиш.

Tmux - это свободная консольная утилита-мультиплексор, которая предоставляет пользователю доступ к нескольким терминалам в рамках одного экрана. Она может быть отключена от экрана, но продолжает работать в фоновом режиме. Tmux является штатным мультиплексором терминалов операционной системы OpenBSD. Программа задумывалась как замена GNU Screen.

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

Возможен запуск нескольких серверов, при этом каждый должен принимать подключения на отдельном сокете. Сессия tmux - это совокупность псевдотерминалов, находящихся под управлением tmux.

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

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

После закрытия всех сессий работа tmux прекращается. В статусной строке в самом низу экрана отображается информация о текущей сессии; эта же строка используется для ввода команд самого tmux.

При этом ввод команд tmux возможен и напрямую внутри псевдотерминалов благодаря переменной окружения TMUX, добавляемой при запуске приложений в новых окнах. Tmux может использоваться в комбинации с другими программами, такими как Mosh, для улучшения функциональности и удобства работы.

Вот пример создания двух окон в tmux:

tmux new-session -s webserver
cd /path/to/webserver
sudo service apache2 start

tmux split-window -h -t webserver
cd /path/to/editor
vim index.html

Здесь мы создаем два окна в одном сеансе tmux. В первом окне запускаем веб-сервер, а во втором - редактор кода.


Комментарии