如何使用Tmux提高终端环境下的效率

如何使用Tmux提高终端环境下的效率

鼠标的发明是了不起的创新,它让电脑更加接近普通人。但从程序员和系统管理员的角度,使用电脑工作时,手一旦离开键盘,就会有些分心。

作为一名系统管理员,我大量的工作都需要在终端环境下。打开很多标签,然后在多个终端之间切换窗口会让我慢下来。尤其是当我的服务器出问题的时候,我不能浪费任何时间!

Tmux是我日常工作必要的工具之一。我可以借助Tmux构建出复杂的开发环境,同时还可以在一旁进行SSH远程连接。我可以开出很多窗口,将其拆分成很多面板,接管和分离会话等等。掌握了Tmux之后,你就可以扔掉鼠标了(只是个玩笑:D)。

Tmux("Terminal Multiplexer"的简称)可以让我们在单个屏幕的灵活布局下开出很多终端,我们就可以协作地使用它们。举个例子,在一个面板中,我们用Vim修改一些配置文件,在另一个面板,我们使用irssi聊天,而在其余的面板,可以跟踪一些日志。然后,我们还可以打开新的窗口来升级系统,再开一个新窗口来进行服务器的ssh连接。在这些窗口面板间浏览切换和创建它们一样简单。它的高度可配置和可定制的,让其成为你心中的延伸

在Linux/OSX下安装Tmux

你可以通过编译软件源或者通过系统包管理器的方式安装,我建议使用包管理器,这样比编译更快更简单

OSX:


  1. # sudo brew install tmux
  2. # sudo port install tmux

Debian/Ubuntu:


  1. # sudo apt-get install tmux

RHEL/CentOS/Fedora(RHEL/CentOS 要求 EPEL repo):


  1. $ sudo yum install tmux

Archlinux:


  1. $ sudo pacman -S tmux

使用不同会话工作

使用Tmux的最好方式是使用会话的方式,这样你就可以以你想要的方式,将任务和应用组织到不同的会话中。如果你想改变一个会话,会话里面的任何工作都无须停止或者杀掉。让我们来看看这是怎么工作的。

让我们开始一个叫做"session"的会话,并且运行top命令


  1. $ tmux new -s new session
  2. $ top

然后输入CTRL-b d从此会话脱离,想要重新连接此会话,需输入:


  1. $ tmux attach-session -t session

之后你会看到top操作仍然运行在重新连接的会话上。

一些管理sessions的命令:


  1. $ tmux list-session
  2. $ tmux new-session <会话名>
  3. $ tmux attach-session -t <会话名>
  4. $ tmux rename-session -t <会话名>
  5. $ tmux choose-session -t <会话名>
  6. $ tmux kill-session -t <会话名>

使用不同的窗口工作

很多情况下,你需要在一个会话中运行多个命令,执行多个任务。我们可以在一个会话的多个窗口里组织他们。在现代的GUI终端(比如 iTerm或者Konsole),一个窗口被视为一个标签。在会话中配置了我们默认的环境之后,我们就能够在一个会话中创建许多我们需要的窗口。窗口就像运行在会话中的应用程序,当我们脱离当前会话的时候,它仍在持续,让我们来看一个例子:


  1. $ tmux new -s my_session

按下CTRL-b c

这将会创建一个新的窗口,然后屏幕的光标移向它。现在你就可以在新窗口下运行你的新应用。你可以修改你当前窗口的名字。在目前的例子里,我运行的top程序,所以top就是该窗口的名字

如果你想要重命名,只需要按下:

CTRL-b

状态条将会改变,这时你将可以重命名当前的窗口

一旦在一个会话中创建多个窗口,我们需要在这些窗口间移动的办法。窗口像数组一样组织在一起,从0开始用数字标记每个窗口,想要快速跳转到其余窗口:

CTRL-b <窗口号>

如果我们给窗口起了名字,我们可以使用下面的命令找到它们:

CTRL-b f

也可以列出所有窗口:

CTRL-b w

按照顺序切换到不同的窗口:

CTRL-b n(到达下一个窗口) CTRL-b p(到达上一个窗口)

想要离开一个窗口,可以输入 exit 或者:

CTRL-b &

关闭窗口之前,你需要确认一下。

把窗口分成许多面板

有时候你在编辑器工作的同时,需要查看日志文件。在编辑的同时追踪日志真的很有帮助。Tmux可以让我们把窗口分成许多面板。举个例子,我们可以创建一个控制台监测我们的服务器,同时用编辑器构造复杂的开发环境,这样就能同时进行编译和调试了。

让我们创建另一个Tmux会话,让其以面板的方式工作。首先,如果我们在某个会话中,那就从Tmux会话中脱离出来:

CTRL-b d

开始一个叫做"panes"的新会话:

$ tmux new -s panes

你可以水平或者竖直分割一个窗口,水平分割输入:

CRTL-b "

现在你就拥有两个面板,现在我们竖直分割:

CRTL-b %

又增加了两个:

在他们之间移动:

CTRL-b <光标键>

结论

我希望这篇教程能对你有作用。此外,像Tmuxinator 或者 Tmuxifier这样的工具,可以简化Tmux会话,窗口和面板的创建及加载,你可以很容易就配置Tmux。如果你没有使用过这些,尝试一下吧!

原文发布时间:2014-10-05

本文来自云栖合作伙伴“linux中国”

时间: 2024-11-01 03:27:11

如何使用Tmux提高终端环境下的效率的相关文章

我在用的mac软件(1) 终端环境之iTerm 2

之前一直有朋友要我分享下在用的mac软件,今天有空就来写一下,可能不止于软件,会有一些配置或者工具,或者叫环境更合适.有些可能一句话带过,有些会详细介绍.也不分类了,想到哪个就写出来.如果已经写的足够长了,就会分几篇来写. iTerm2+zsh+tmux的终端环境 iTerm2 其实现在os x的terminal已经做的很好了,但是iTerm2的功能依然要更强大一些.简述下优点和常用功能: 开源免费. 兼容性比默认Terminal更好. 对于经常要远程使用的情况下,默认的Terminal在使用v

link环境下使用codefirst的技术制作一个《网盘软件》,请问如何提高并发?

问题描述 link环境下使用codefirst的技术制作一个<网盘软件>,请问如何提高并发? link环境下使用codefirst的技术制作一个<网盘软件>,请问如何提高并发? 解决方案 买更多的服务器,升级硬件和带宽等等 解决方案二: 一个方面是软件web服务器(IIS设置更多的并发连接数)和软件算法优化策略,一个方面是硬件服务器(服务器集群.负载均衡),目的都是提高并行计算能力.

Konsole一款KDE4环境下的终端模拟器

konsole是K桌面环境的终端模拟器.Konsole是KDE4环境下的终端模拟器,相当于Windows的cmd.exe.关于Linux的命令可以google.这里介绍KDE4特有的命令. kde4-config kde4-config --version 常看系统qt kde4版本.

新网络环境下应用层DDoS攻击的剖析与防御

应用层DDoS攻击分析 1.Net-DDoS攻击与App-DDoS攻击 按攻击所针对的网络层次可以把DDoS攻击分为:网络层DDoS(Net-DDoS)攻击和App-DDoS攻击.Net-DDoS攻击主要是利用了现有低层(包括IP层和TCP层)协议的漏洞来发动攻击.典型的攻击方式是:使用伪造IP地址的攻击节点向目标主机发送大量攻击分组(TCP. ICMP.UDP等分组),利用TCP的三次握手机制使目标服务器为维护一个非常大的半开放连接列表而消耗非常多的CPU和内存资源,最终因为堆栈溢出而导致系统

极端环境下的IT运维案例

去年秋天,随着飓风桑迪的步步紧逼,整个美国东海岸都开始严阵以待:Robertory自然也不能例外,他正盘算着如何建立并运行一整套IT体系.但时间紧迫,从组织技术团队到让系统投付运行,他只剩下几个小时可以支配. 这时候,尽快选择正确方向就成了他的第一要务. Robertory是美国红十字会灾难服务技术组的负责人.他的工作是确保红十字会的急救人员在现场工作中拥有必要的技术支持,即使是在飓风肆虐之时也不例外. "大多数IT人士在谈到自然灾害时,第一反应都是赶紧卷服务器跑路.但我们的选择正好相反.我们关

离线环境下手机地图的导航功能

伴随着移动终端的飞速普及,厂商已经完成了互联网向移动互联网的战略转移,努力建设着各具特色的移动生态圈.以智能终端为载体的各类型APP,将人们的生活.出行.金融理财等生活方式由线下转移到线上,并逐步融合,让大众生活更便利. 眼花缭乱的APP中,想必大家都少不了这样一类--地图.今天,笔者选取了市场上主流的三款地图产品,着眼于他们均具备的离线导航功能,为大家带来产品的实测横评.希望通过模拟离线环境,从操作界面.离线包大小.离线(无网)环境下的功能测试.电量使用等四个方面进行测试比较,让大家更加了解手

云环境下 开拓产业集群信息服务平台新模式

中介交易 SEO诊断 淘宝客 云主机 技术大厅 产业集群信息服务平台是基于产业集群,整合同一产业中位于同一环节的多个核心企业,及存在着与产业相关的上下游企业,以产品或劳务形式向用户提供各种信息劳动,包括信息的传播报道.信息咨询以及信息技术培训和信息提供等的信息服务平台.它是围绕同一产业或相关产业的供应商.制造商和经销商,甚至是终端客户等组织,通过信任机制进行相互沟通和信息服务的一种平台.如"中国产业集群". "产业集群网" 等.产业集群作为我国产业经济发展的重要力量

“互联网+”环境下需加强网络信息安全管理

近两年来,以互联网金融.产业互联网.服务互联网为代表的新型产业模式发展势头迅猛,"互联网+"已成为我国经济社会发展的新形态.全国人大代表.中创软件工程股份有限公司董事长兼总裁景新海在今年全国两会提议,"互联网+"环境下网络信息安全面临更大挑战,建议政府有关部门应进一步加强对网络信息安全的治理,保证"互联网+"和传统产业的结合在安全可靠的前提下运行. 景新海表示,建立在ICT(信息通信技术).大数据.云计算.物联网等技术上的"互联网+&q

泛娱乐环境下的网民特征

近年来游戏产业掀起跨界融合浪潮,泛娱乐化趋势尽显.影视.音乐.文学.游戏等文化资源逐渐整合,形成了一个综合性的娱乐互动产业链,其中网络游戏成为引领互联网泛娱乐化的关键一环,不少游戏厂商开始在跨界合作领域广泛布局.但这些游戏厂商在战略中却过于强调泛娱乐,往往忽略企业自身品牌才是长远发展的王道."暴雪出品,必属精品"这样对自身品牌的自信何时才能出现在国内游戏厂商中呢? 泛娱乐环境下的网民特征 所谓"泛娱乐化"现象,指的是电视媒体制作.播出的格调不高的娱乐类.选秀类节目过