V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
imherer
V2EX  ›  MacBook Pro

iTerm 能定义 title 吗,服务器比较多。有时候开一堆窗口之后就不知道哪个是连的哪个服务器了

  •  
  •   imherer · 2017-01-12 14:20:51 +08:00 · 6282 次点击
    这是一个创建于 2872 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2017-01-12 17:45:52 +08:00
    Mac 自带的终端能 title 里就能显示别名呢,可惜 iTerm2 用习惯了
    48 条回复    2017-01-16 15:30:35 +08:00
    ynyounuo
        1
    ynyounuo  
       2017-01-12 14:56:39 +08:00
    用 badge
    imherer
        2
    imherer  
    OP
       2017-01-12 15:42:40 +08:00
    @ynyounuo 能具体点吗?不知道什么意思。
    qce7
        3
    qce7  
       2017-01-12 15:46:13 +08:00   ❤️ 1
    屏幕右上角的一个半透明文字显示
    https://www.iterm2.com/documentation-badges.html
    imherer
        4
    imherer  
    OP
       2017-01-12 16:09:14 +08:00
    @qce7 这个好啊,不过还有问题请教下。我把登陆信息都配置在~.ssh/config 文件里的,我都说通过别名登陆的。这个应该怎么配置呢。
    我通过 ssh user@hostname 这样登陆,配置\(session.username)@\(session.hostname)这样还是显示不出来呢
    imherer
        5
    imherer  
    OP
       2017-01-12 16:12:55 +08:00
    @qce7 哦,是 Shell Integration 没安装、我装下试试、
    loserwn
        6
    loserwn  
       2017-01-12 16:32:14 +08:00
    每个环境还要装一下 Shell Integration
    imherer
        7
    imherer  
    OP
       2017-01-12 16:47:07 +08:00
    @loserwn 什么意思?服务器上也得装 Shell Integration 吗? 我在 Mac 上装了 Shell Integration 但是读出来的是我 Mac 的 username 和 hostname ,但是我是想显示服务器的
    imherer
        8
    imherer  
    OP
       2017-01-12 16:50:33 +08:00
    @loserwn 果然,每个服务器都得装,显示出来的也不是我想要的。 我是想显示我~.ssh/config 里的别名就好了
    fityme
        9
    fityme  
       2017-01-12 17:06:34 +08:00
    为嘛不用 tmux ?
    imherer
        10
    imherer  
    OP
       2017-01-12 17:25:55 +08:00
    @fityme tmux 这个能满足的我需求吗? 我试试
    tairan2006
        11
    tairan2006  
       2017-01-12 17:26:40 +08:00
    这个问题正确的解决办法是给每个服务器启一个方便识别的名字。。
    est
        12
    est  
       2017-01-12 17:31:09 +08:00   ❤️ 1
    ~/.bash_profile 里这样写

    ssh ()
    {
    echo -ne "\033k$1\033\\";
    ssh $@
    }
    imherer
        13
    imherer  
    OP
       2017-01-12 17:36:12 +08:00
    @tairan2006 我有在~./ssh/config 里给每个服务器起别人,连接的时候直接 ssh+别名行了,关键是连接成功之后, title 就变成了 username@服务器的内外 ip 了,这样一来,连的服务器多了,就不知道哪个是哪个了
    imherer
        14
    imherer  
    OP
       2017-01-12 17:36:41 +08:00
    @tairan2006 内网 ip 。。。打错了
    imherer
        15
    imherer  
    OP
       2017-01-12 17:37:16 +08:00
    @est 谢谢,有点看不懂。 我研究研究。
    est
        16
    est  
       2017-01-12 17:38:44 +08:00
    @imherer 编辑 ~/.bash_profile 粘贴那段代码到最后,然后保存退出,然后新开一个,注意是新开一个 终端,然后 ssh 试试
    fityme
        17
    fityme  
       2017-01-12 17:39:05 +08:00
    @imherer tmux 可以给每个 tab 自定义名字的,想叫什么都可以,想自动设置成某个名字的话得自己 hack 一下
    imherer
        18
    imherer  
    OP
       2017-01-12 17:39:06 +08:00
    @est 写了,好像没发现和之前有什么不用呢
    imherer
        19
    imherer  
    OP
       2017-01-12 17:41:38 +08:00
    @est 敲下 ssh 命令回车之后。 title 确实变成别名了,不过过 1 , 2 秒窗口直接关掉了。
    est
        20
    est  
       2017-01-12 17:56:44 +08:00
    @imherer 什么叫 窗口直接关掉了?窗口自动关闭?


    这个是 ANSI 标准改窗口标题。我用了快 10 年了。
    Yancey
        21
    Yancey  
       2017-01-12 18:04:42 +08:00
    为啥不用 tmux
    imherer
        22
    imherer  
    OP
       2017-01-12 18:05:30 +08:00
    @est 我用 Mac 自带的终端试了下,敲下命令后,就不停的输出我 config 里的别名,大概输出几秒之后,直接提示 进程已结束。 相当于执行了 exit 命令
    imherer
        23
    imherer  
    OP
       2017-01-12 18:06:56 +08:00
    @Yancey iTerm 用习惯了,刚才上面也有 v 友推荐我用 tmux ,我研究一下
    S1ahs3r
        24
    S1ahs3r  
       2017-01-12 18:36:52 +08:00
    用用 fish,有一个 settitle 插件.
    imherer
        25
    imherer  
    OP
       2017-01-12 18:37:43 +08:00
    @S1ahs3r 谢谢
    S1ahs3r
        26
    S1ahs3r  
       2017-01-12 18:49:52 +08:00
    @imherer 想折腾的话 https://github.com/fisherman/settitle
    一套安下来 fish->fisherman->settitle
    imherer
        27
    imherer  
    OP
       2017-01-12 18:54:19 +08:00
    @S1ahs3r 这个是 iTerm2 的一个插件?
    bao3
        28
    bao3  
       2017-01-12 20:37:04 +08:00 via Android
    楼主先要把 hostname 定义好
    imherer
        29
    imherer  
    OP
       2017-01-12 20:43:47 +08:00
    @bao3 装了 Shell Integration 之后就能取到 hostname 了,但是取到的是服务器的内网 ip 。 你说的这个定义是在每个服务器上定义吗?
    est
        30
    est  
       2017-01-12 20:59:05 +08:00
    @imherer 我 想起来了。写成死循环了。。


    ssh ()
    {
    echo -ne "\033k$1\033\\";
    /usr/bin/ssh $@
    }

    这样就不会了。。。
    imherer
        31
    imherer  
    OP
       2017-01-12 21:19:21 +08:00
    @est 多谢,脚本没问题了,但是连成功之后, title 还是自动变掉了
    loserwn
        32
    loserwn  
       2017-01-12 21:34:02 +08:00 via iPad
    @imherer 持续关注你的问题。之前的 iterm2 的 badge 功能我也不知道。也是看了 v 友说了之后明白的。
    binss
        33
    binss  
       2017-01-12 21:47:32 +08:00
    @S1ahs3r 装了 settitle 后,我定义了这个函数

    function ssh
    settitle $argv
    command ssh $argv
    end

    但是每次 ssh 后 title 都不变,要退出后才变。有什么解决办法吗?
    xiaket
        34
    xiaket  
       2017-01-13 06:10:27 +08:00
    转自己 12 年写的 blog, 搞个快捷键给 tab 重命名就好了
    xiaket
        35
    xiaket  
       2017-01-13 06:10:37 +08:00
    imherer
        36
    imherer  
    OP
       2017-01-13 09:53:18 +08:00
    @loserwn 研究了半天要是真能把 badge 设置成 ssh 命令后面的别名就好了,但是弄了半天还是失败了
    imherer
        37
    imherer  
    OP
       2017-01-13 09:53:26 +08:00
    @xiaket 谢谢
    S1ahs3r
        38
    S1ahs3r  
       2017-01-13 14:05:48 +08:00
    @binss 并没有...我用的更糙一点,只是偶尔手动 set 一下.
    平时都是用 ZOC7 跟设置好 hostname 的.
    applepieuser
        39
    applepieuser  
       2017-01-13 17:49:43 +08:00
    iterm2 可以在 profiles 里面添加多个 ssh 服务器连接定义,名称即 title 自己取。具体方法可以百度下。
    imherer
        40
    imherer  
    OP
       2017-01-13 18:07:05 +08:00
    @applepieuser 这个最多也只能设置 badge 来区分是哪个服务器吧? 这样配置确实是可以达到效果,但是启动 iTerm2 到时候就有点麻烦了,我得启动指定的 session 才能连到对应的服务器,很不方便啊
    applepieuser
        41
    applepieuser  
       2017-01-13 18:25:45 +08:00
    “ Mac 让 iTerm2 记住用户名密码 expect 脚本 ”
    我搜索的是 上面的主题,目的是想和使用 xshell 一类软件一样可以记住服务器并双击名称自动登录。
    脚本需要付执行权限。
    imherer
        42
    imherer  
    OP
       2017-01-13 18:35:17 +08:00
    @applepieuser 我所有服务器都是免密登陆的,直接~/.ssh/config 里都配置好了,连接的时候直接 ssh+别名就连上了。主要是连的服务器一多,就不知道哪个连的是哪个了。按你这个方法配置了倒是可以,不过就是每次决定要连哪个服务器的时候得手动去选择,没有直接敲 ssh+别名命令来的快了。
    soli
        43
    soli  
       2017-01-14 11:20:41 +08:00
    为每个服务器拷贝一份 Profile (要把右侧 Terminal 标签页下的那两个 『 Terminal may xxx 』 uncheck 掉 ),然后只需要:

    `cmd+o` + 别名或 tag + 回车

    就打开了。

    缺点是 Profile 会有很多碍眼。
    imherer
        44
    imherer  
    OP
       2017-01-14 17:59:51 +08:00
    @soli 多谢
    imherer
        45
    imherer  
    OP
       2017-01-14 18:08:24 +08:00
    @soli 问下 tag+回车 这个是在哪里执行? iTerm2 里吗? 会提示对应命令不存在
    imherer
        46
    imherer  
    OP
       2017-01-14 18:10:03 +08:00
    @soli 知道了。谢谢
    orderc
        47
    orderc  
       2017-01-15 18:31:30 +08:00
    tmux
    chilaoqi
        48
    chilaoqi  
       2017-01-16 15:30:35 +08:00
    @est Nice
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1116 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 18:41 · PVG 02:41 · LAX 10:41 · JFK 13:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.