`

linux下远程管理利器-tmux

阅读更多

在使用无论哪种软件远程管理linux的时候,我们总会遇到一个靠那个软件本身所不能解决的问题:由于网络不稳定造成的连接中断!之前笔者也有遇到过,但是由于笔者的网络环境还好,所以算不上什么大问题.之前当遇到要长时间运行的指令的时候,笔者也会习惯上用screen来运行,然后退出会话.当ssh命令没有标签的概念的时候,笔者迫不及待的希望有一种解决方式解决这种问题.虽然笔者用的是GNOME Terminal它有标签的概念,而且通过自定义的快捷键启动GNOME Terminal和通过GNOME Terminal的快捷键ctrl+shift+T创建一个新标签是件很快捷的事儿.但是创建完了不是还要再输入登陆的指令嘛.如果有更简单高效的方式解决这个问题,你愿不愿意尝试呢?我愿意!
      在搜索screen的相关资料的时候,一个和screen类似功能的新秀进入笔者的眼帘:tmux!对于笔者来说,两个软件都是要重新学习才能充分运用,所以在学习成本上不存在差别.而且笔者最看中的是tmux有"窗口"的概念,可以很方便的创建新的窗口和在窗口中切换.虽然screen在修改配置文件以后,也可以实现这个功能,但是!但是要修改配置文件!如果后面有N多机器的情况下,虽然批量修改也花费不了多少时间,但始终是一种损耗.在使用tmux的过程中,笔者认真学习了tmux内置的快捷键.笔者认为,这样的快捷键定义还是比较科学的,另外使用内置的快捷键而不是自定义的好处就是,你不用到每台机器上以后都重新定义你的习惯.
      其实本篇就是tmux的入门级介绍啦,当然是偏快捷键.因为现在tmux的资料还是少之又少.为了知道其实一些有用的功能点,笔者也是破费心机.能够看到这篇关于tmux详细介绍的中文资料,相信你已经对tmux已经有一定的了解了.还是提一句:tmux是一个远程管理多窗口的工具,它可以允许你在一次登陆的情况下打开多个会话并方便的在会话中切换,而且软件本身就可以解决网络不稳定造成的断网问题哟.ok,进入本次的奇妙之旅:
      1.控制键
      控制键就是tmux的主键.当你在tmux环境下按下这个键的时候,tmux就会把你后面输入的指令,解析成它内置的功能.tmux默认的控制键是ctrl+b(同时按下ctrl和b,在后面将直接用小写的c-b代替).这相当于screen的ctrl+a.同时用过两个工具的人总会争论ctrl+a和ctrl+b的合理性.估计争论的也就是emacs和vi党.我就很不理解.这两拨人只用编辑器,不用指令吗?因为他们似乎不知道在bash环境里:ctrl+a代表跳到命令的开始,而ctrl+b代表往回移动一格.从这一点讲,笔者觉得用c-b没啥不好的.因为你按着c-b不放,在bash环境里的功能依然有效:)
      2.获取快捷键帮助
      前面没有提,在这里要指出的一点就是,当你按c-b的时候,我希望你已经进入"tmux环境"了.进入的方法很简单.直接在命令行输入:tmux就可以了.没有的话,安装呗.幸运的是ubuntu9.10里已经集成了tmux.虽然不是最新版,但是免去了编译的麻烦:)现在按C-b ?
      接下来要介绍的东西,就是这里面列出来的,一些普遍有用的东东.查看上面或者下面的内容,直接pageup,pagedown就可以了:)退出请按q(这个百试不爽,几乎是和tmux交互的时候,都可以用这个退出)
      3.常用快捷键
      c-b c 创建一个新的窗口
      在你正后悔当前窗口被一个指令占用的时候,这个快捷键会解燃眉之急哟.当前窗口在任务栏会显示*
      如上图,现在正在操作的窗口就是3了
      C-b n 切换到下一个窗口
      C-b p 切换到上一个窗口
      C-b l 最后一个窗口,和上一个窗口的概念不一样哟,谁试谁知道
      c-b w 通过上下键选择当前窗口中打开的会话
      C-b 数字 直接跳到你按的数字所在的窗口
      c-b & 退出当前窗口(个人觉得这个没多大用,因为笔者习惯上c-d退出bash.当然了,如果你确保其它窗口没有有用的程序正在运行,试试这个命令也不错)
      C-b d 临时断开会话 断开以后,还可以连上的哟:)
      4.分割窗口
      vim中,可以直接:!命令,来执行命令,或者直接把命令的结果读到当前的编辑器.很多时候我们就是有这样一种需要,看一下上次的执行结果,而不想通过切换来实现.最初看到官方网站的图片可以,横着分,可以竖着分,挺酷的.不过到现在笔者也还不知道怎么紧着分:)
      c-b " 分割出来一个窗口
      c-b o 在小窗口中切换 这种方法一次只能切换一次,再想切换再c-b o,适合两个窗口的时候使用.如果在当前窗口分割了好多小窗口的话,就要用下面的两个指令了.
      c-b (方向键)上 上一个窗口
      c-b (方向键)下 下一个窗口  要指出的是,按一次c-b,可以上上下下的选,直到选到你想要的那个窗口,这点和c-b o不一样噢.
      c-b ! 关闭所有小窗口
      c-b x 关闭当前光标处的小窗口
      5.切换到其它的会话
      上面提到的都是窗口的概念,是在一个会话里建立多个窗口,在一个窗口里建立多个小窗口.而现在说是的会话的概念.你每次执行tmux就会新建一个会话,c-b d的时候就会保存退出一个会话.
      c-b s 选择attach的会话
      注意看哟,和上图显示的不一样
      6.修改当前窗口名称
      tmux允许你给不同的窗口指定不同的名字
      c-b , 修改当前窗口名称
      是不是将窗口的名字改成rainbird了?
      7.显示一个钟表
      其实简单的时候没啥大用处,就是一个屏保的作用,不过你可以通过设置配置文件,使从钟表退出来的时候要输入密码:)
      c-b t 钟表
      8.查看历史记录
      这个是困扰了笔者很长时间的一个功能,因为一些命令执行的时候,显示结果总会超过一屏,而笔者不知道怎么向上翻页以看到前面的东西,直到后来才不经意的发现是用:
      C-b pageup/pagedown
      退出的话,当然还是用q了
      9.复制粘贴:
      复制东西在使用GNOME Terminal的时候效果不大明显,因为你可以通过鼠标上下翻页,可以左键选择东西,右键复制或者粘贴.单把这一点拿出来,是为了说明一种猜测和一种高效的移动习惯.在看tmux帮助的时候,笔者注意到,有说按完c-b以后,通过[进入复制模式.但是进来以后呢?界面类似翻看以前的历史记录.研究的许久才这样整明白,如果要使用这个功能,你得知道c-b :可以进入tmux的命令模式,然后可以设置一些指令.比如说,修改模式键setw mode-keys vi.这样你就把当前模式改成了vi.再进入复制模式(c-b [)是不是可以通过j,k在字符里上下移动就像在vim里一样?
      通过看帮助,vi和emacs的模式对照表
           Function                vi          emacs
           Start of line           0 or ^      C-a
           Clear selection         Escape      C-g
           Copy selection          Enter       M-w
           Cursor down             j           Down
           End of line             $           C-e
           Cursor left             h           Left
           Next page               C-f         Page down
           Next word               w           M-f
           Previous page           C-u         Page up
           Previous word           b           M-b
           Quit mode               q           Escape
           Cursor right            l           Right
           Start selection         Space       C-Space
           Cursor up               k           Up
      你发现什么?我们之前上下翻页用的page up和page down,也可以用上下键.是不是说明了我们这前用的模式就是emacs呢?因为我们如果用ctrl+space选择东西的话,是永远不会成功呢,因为会被系统优先抢占,因为这两个键被定义到了切换输入法.所以,如果你想通过键盘用复制的功能的话,你最好先把模式改成vi,然后通过vi里支持的键选择.空格是选择的起点,然后上下或者左右移动选择到终点,回车,就把内容复制了.这样的一个好处就是你可以复制到不在当前屏幕里的东西!       
      10.常用参数
      最后说一下tmux本身常用的几个参数吧:)
      tmux ls 列出已有会话(list-sessions)
      tmux a连接到这前断开的会话(attach-session) 默认会连接上图列出的id最小的会话,你也可以指定你想连接到哪个会话:tmux a -t 1来连接到第一个会话
      tmux new创建新的会话(new-window) 当然了,不加这个参数也是会创建新会话的:)
      关于tmux的介绍到这里就结束了.tmux是个利器,而这个利器是不是也成为你手上的利刃取决于你花多少心思来运用它.以上的一些技巧,你只会一些基本的指令,就可以大大提高工作效率了,还等什么?赶快行动起来吧:)

分享到:
评论

相关推荐

    【Operate System-Linux】Tmux-1.8.tar.gz

    【操作系统-Linux】Tmux-1.8是一个针对Linux系统的终端多路复用器,它允许用户在一个单一的终端窗口中同时操作多个独立的终端会话。Tmux源自于一个名为“tmux”(终端多路复用器)的英文缩写,其设计目的是提供一种...

    tmux Taster.pdf

    - **tmux-resurrect**:保存并恢复`tmux`会话的状态,包括窗格布局、命令行历史等。 - **tmux-continuum**:自动保存和恢复会话,以及自动命名会话。 - **tmux-yank**:在`tmux`中复制文本到系统剪贴板。 ### 6. ...

    tmux-3.0a.tar.gz

    在大多数Linux发行版中,tmux可以通过包管理器(如apt、yum或brew)轻松安装。安装完成后,只需在终端输入`tmux`即可启动。首次启动时,tmux会创建一个默认会话,并自动进入该会话。 3. **基本操作** - **新建...

    linux-结合vimtmuxzsh干活也是一种享受

    tmux还可以通过快捷键轻松切换和管理窗口,甚至在断开连接后恢复会话,非常适合远程工作环境。 **zsh(Z Shell)** 是bash shell的一个替代品,提供了更丰富的自动完成、历史搜索、语法高亮等功能。zsh的配置文件`....

    静态编译的tmux,x86版本,v3.3a

    **tmux:强大的终端复用器**...总的来说,tmux是提升终端效率的利器,尤其适用于需要多任务并行处理或协同工作的开发者和系统管理员。静态编译的tmux v3.3a提供了一种更便捷的部署方式,确保在各种环境中都能顺利运行。

    ssh连接Linux的利器

    6. **屏幕会话管理**:SSH还支持`screen`或`tmux`工具,这两个工具可以在远程会话中创建多个独立的终端窗口,即使断开连接,窗口状态也会被保存,再次连接时可以恢复。 7. **SSH配置文件**:在本地的`~/.ssh/config...

    Linux远程访问工具,支持ssh服务

    在IT领域,Linux远程访问工具是系统管理员和开发者不可或缺的利器,它们允许用户通过网络对远程Linux服务器进行操作,而不必亲临现场。SSH(Secure Shell)服务是这种远程访问的首选方式,它提供了安全的加密通信,...

    最有用的Linux命令使用技巧

    * 学习 VIM,在 Linux 系统上,VIM 仍然是无出其右的利器。 1.2 了解 SSH,基本的无密码验证方式 * 例如通过 ssh-agent, ssh-add 等 * 使用脚本完成无密码验证,省事省力 二、日常使用命令 2.1 Ctrl-R 在 bash ...

    rz与sz源码Linux系统上传下载神器

    Linux操作系统是许多开发者和系统管理员首选的平台,其强大的命令行工具使得远程文件操作变得高效且灵活。在众多工具中,rz和sz是两个非常实用的命令,它们允许用户通过串口或者网络在本地和远程Linux系统之间进行...

    28个Unix Linux的命令行神器

    在Unix/Linux的世界里,命令行不仅是操作系统的核心组成部分,也是高效管理和操作系统的利器。本文将详细介绍由Kristóf Kovács收集的28个Unix/Linux命令行工具,这些工具因其独特性和实用性而被称为“神器”。 ##...

    iterm - mac超级好用的ssh管理工具

    描述中提到“mac超级好用的SSH管理工具”,意味着iTerm在Mac环境下提供了高效、便捷的SSH(Secure SHell)功能,让用户能够轻松地与Linux服务器建立安全的连接,进行各种远程操作,如命令行交互、文件传输等。...

    Ubuntu工具zsh和Byobu

    Byobu支持tmux和screen两种后台会话管理器,它们都可以在你退出终端后继续运行程序,即使远程连接断开,程序也不会被杀死。Byobu的这些特性使得它成为系统管理员和开发者在终端操作中的得力助手。 总结来说,Ubuntu...

    iTerm.app.zip

    此外,通过配合使用像`screen`或`tmux`这样的多窗口管理工具,可以在单个SSH会话中管理多个Linux终端窗口,提高多任务处理能力。 总之,iTerm.app作为Mac用户连接Linux的首选工具,以其丰富的功能和高度的可定制性...

    MobaXterm_Personal_22.0.rar

    它支持SSH、telnet、RDP、VNC等多种远程访问协议,使得用户可以在本地计算机上轻松地管理和操作远程服务器,无论是Linux、Unix还是Windows系统,都能得心应手。这对于需要频繁进行跨平台操作的开发者和运维人员来说...

    .dotfiles:我的Debian Air 2013的Maclike配置

    Tmux是很多开发者提高生产力的利器,尤其在远程工作或多任务切换时。 `.zshrc`是Zsh Shell的配置文件,Zsh是Bash的一个更加强大且灵活的替代品,提供了更多的内置特性。`.zshrc`可以设置别名、函数、提示符样式等,...

Global site tag (gtag.js) - Google Analytics