Terminal Multiplexers

A terminal multiplexer provides separation between where a shell is running and where the shell is accessed. Each shell can be running on a different computer, but to the developer it does not matter where each shell is being executed.

For example, a developer could have many shells running within a terminal, like the following screenshot.

tmux terminal multiplexer with many panes.

The above terminal window is using the tmux terminal multiplexer implementation with two windows and three panes.

Why are terminal multiplexers awesome?

Developers gain greater control over the usage of their shells by working with a terminal multiplexer.

Shells are typically executed locally on a computer but terminal multiplexers allow one or more virtual shells to be run within a single terminal. Shells can also be left running within the multiplexer and attached to again from a different machine.

Terminal multiplexers are used by developers to run many virtual shells within a single terminal. These shells can be run via a mix of local, remote, containerized and virtualized resources. The shells can also be persisted and moved while running from one computer to another.

Terminal multiplexer implementations

Many terminal multiplexer implementations exist, including:

  • tmux

  • screen

  • byobu

  • pymux

Terminal multiplexer resources

Learn more about dev environments or move to web frameworks?

I want to learn how to code a Python web application using a framework.

Tell me about using the Vim editor for Python development.

I'd like to learn about Emacs for Python coding.

Sign up for two emails per month with Python tutorials and Full Stack Python updates.

Sponsored By

Mapbox logo.

Easily build maps, search and navigation into your Python applications with Mapbox.


Real Python logo

Upgrade your Python skills by reading Real Python's awesome programming email newsletter.

Full Stack Python

Full Stack Python is an open book that explains concepts in plain language and provides helpful resources for those topics.
Updates via newsletter, Twitter & Facebook.
1. IntroductionLearning ProgrammingCore LanguageWhy Use Python?Python 2 or 3?Enterprise PythonPython CommunityCompanies using PythonBest Python ResourcesBest Python VideosBest Python Podcasts2. Development EnvironmentsText Editors & IDEsVimEmacsSublime TextPyCharmJupyter NotebookShellsBash shellZshPowerShellTerminal MultiplexerstmuxScreenPymuxEnvironment configurationApplication DependenciesVirtualenvsEnvironment variablesLocalhost tunnelsSource ControlGitMercurialApache SubversionHosted Source ControlGitHubBitBucketGitLab3. DataRelational DatabasesPostgreSQLMySQLSQLiteObject-relational MappersSQLAlchemyPeeweeDjango ORMSQLObjectPony ORMNoSQL Data StoresRedisMongoDBApache CassandraNeo4jData analysispandasNumPySciPyBokehd3.jsMatplotlibMarkdown4. Web DevelopmentWeb FrameworksDjangoFlaskBottlePyramidFalconMorepathSanicOther Web FrameworksTemplate EnginesJinja2MakoDjango TemplatesWeb DesignHTMLCascading Style Sheets (CSS)Responsive DesignMinificationCSS FrameworksBootstrapFoundationJavaScriptTask QueuesCeleryRedis Queue (RQ)DramatiqStatic Site GeneratorsPelicanLektorMkDocsTestingUnit TestingIntegration TestingCode MetricsDebuggingWebSocketsuvloopWeb APIsMicroservicesBotsAPI CreationAPI IntegrationTwilioSecurity5. DeploymentServersStatic ContentVirtual Private ServersPlatform-as-a-ServiceOperating SystemsUbuntuWeb ServersApache HTTP ServerNginxCaddyWSGI ServersGreen Unicorn (Gunicorn)Continuous IntegrationJenkinsConfiguration ManagementAnsibleDockerServerlessAWS LambdaGoogle Cloud Functions6. DevOpsMonitoringRollbarCachingLoggingWeb AnalyticsChange LogWhat Full Stack MeansAbout the AuthorFuture DirectionsPage Statuses ...or view all topics.

Matt Makai 2012-2018