本博文属于自我理解性质,请知悉。
一、Terminal
一个Terminal进程主要提供一个窗口,有些支持多标签页,允许存在多个独立的Terminal进程,跟Chrome进程类似。Terminal作为独立的应用程序,有自己的快捷键体系,可参见Gnome Terminal快捷键(Gnome Terminal是Terminal的一种)。
二、Tmux
Tmux是分屏软件的一种(比如还有Screen)。Tmux基于Terminal,对Terminal的独立窗口或者标签页窗口进行分屏操作,获得Tmux窗口或者窗格。Tmux作为独立的应用程序,有自己的快捷键体系,可参见Tmux快捷键。
三、Shell
Shell作为壳程序,形式上寄生于Terminal的独立窗口或者标签页窗口,Tmux的窗口或者窗格,但是内容上却是核心基石,没有Shell,Terminal和Tmux都没有存在的意义。Shell作为独立的应用程序,有自己的快捷键体系,可参见Bash Shell快捷键(Bash Shell是Shell的一种)。
归纳总结,Terminal,Tmux,Shell三者紧密相连(使用Shell的Ctrl+d
快捷键或者exit
命令退出Shell,就会自动退出Terminal的独立窗口或者标签页窗口,Tmux的窗口或者窗格。从另外一个角度陈述,Terminal的独立窗口或者标签页窗口,Tmux的窗口或者窗格都不能脱离Shell单独存在),很难(比如很难区分某个快捷键到底是属于Terminal、Tmux还是Shell)也没有必要对三者进行明确的隔离区分。