使用Terminator和Tmux打造完美终端

本文介绍了如何利用Terminator和tmux构建理想的Linux终端环境。Terminator提供了全屏和自定义命令等功能,而tmux则以其强大的分屏和扩展性脱颖而出。通过配置tmux-powerline,可以美化状态栏并显示时间、日期等信息。文章还详细讲解了安装、配置和自定义这两个工具的过程,以及如何启用256色支持。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

          我一直在使用Termiantor作为默认终端,该控制台模拟器最大的特点就是支持全屏,我十分喜欢这个功能,这样,我就不会被任务栏和窗口标题等东西干扰,而且给人的感觉就像是在控制台中操作,而不是在图形桌面上操作,感觉倍儿棒 :-).

        除全屏功能以外,Terminator还支持多种配置设置,值得一提的是"Run a custom command",该功能可以使Terminator启动时就运行一些命令,并且可以设置命令退出时Terminator也同时关闭.当然,这个功能并非Terminator所特有,在其他控制台模拟器中通过命令参数或配置文件也可以实现.

        在最新版的Terminator-0.96中,其实现了真正的背景透明以及默认的插件支持,不过,目前还不知道这些插件是干什么用的,又是如何使用的.


        好了,本次所要打造的完美终端,所用的Terminator就是0.96版的,这一版的在Debian的软件库中还没有,所以需要下载源码进行编译/安装,而tmux就直接用apt-get安装就行了.

        首先,从https://launchpad.net/terminator/trunk下载最新版的Terminator,然后,我们需要修改一下代码(搞不清楚的是这些bug都存在老长时间了,但就是没人解决 !-_-!).

            * cp terminatorlib/__init__.py terminatorlib/plugins/ ; 这个bug实在~~,这么复制只能是让其能运行,但是插件能不能用就不知道了,反正目前也用不着

           * 编辑termiantor,在第40行下面增加一行如下代码:

              sys.path.append('/usr/lib/python2.6/site-packages')

              这行代码指明了python的库搜索路径,我在首次安装Terminator时发现其将terminatorlib都放到了/usr/lib/python2.6/site-packages目录下,不同的系统下可能路径不一样,你可以先安装,然后,看其所放置的位置,对应修改上一句即可.我没有使用设置环境变量PYTHONPATH=$PYTHONPATH:/usr/lib/python2.6/site-packages的方式,因为我希望尽量减少对系统环境的影响.

            * ./setup.py install --prefix=/usr --record=install-files.txt ; 安装,并指定安装目录以及记录安装信息以便于卸载(./setup.py uninstall --manifest=install-files.txt)

        按上面操作后就可以成功运行Terminator了.


        如果需求简单的话,直接用Terminator就可以了,其支持多标签,可以在一个Terminator中开启多个终端,并且也支持分屏.不过,我太喜欢它的分屏,感觉分屏线太占空间,而且不十分Geek.所以,我还是选用了tmux.

        tmux的功能十分之强大,而且扩展性也十分强,可以通过脚本对tmux进行美化等.


        说到美化,不得不说tmux-powerline这个强大的tmux状态栏美化工具了,有了它,就解决了我在Terminator全屏时,不能直接查看时间/日期等信息的问题,我可以直接将这些信息或是其他信息显示在tmux的状态栏上.如此,就是十分的Geek了,并且,使我可以专注地在终端下进行编程操作 :-).

        首先,从GitHub上clone一份tmux-powerline下来,按照其文档进行相关的配置即可.

        这里,需要说明一下tmux-powerline需要进行修改的地方.

            1. 修改lib.sh:

                * 增加变量center_background,并设置为状态栏中间部分的背景色(目前还不知道是如何设置状态栏背景色的);

                * 将print_status_line_right方法中的第一句local prev_bg="colour235"修改为local prev_bg="$center_background",该句是保证状态栏右部的背景色能和中部的背景色产生无缝过渡;

                * 将print_status_line_left方法中的__ui_left "colour235" "colour235" "red" "$separator_right_bold" "$prev_bg"修改为__ui_left "colour235" "$center_background" "red" "$separator_right_bold" "$prev_bg",也就是将__ui_left的第二个参数修改为状态栏中部的颜色,该参数是用于设置状态栏左部与中部间的分隔符的背景色的,同样是为了进行无缝过渡.

            2. 修改config.sh:

                * 我没有使用tmux-powerline所提到的字体,所以,我将USER_PATCHED_FONT设置为了false,这样信息的分隔符就稍微难看点,不过,暂时忍了,因为我不知道怎么patch字体:-(.

            3. 修改segments/date_day.sh:

               * 将date +%a修改为date +%A.这是显示星期几的脚本,%a表示显示的是缩写,在英文环境下没问题,但是在中文环境下就只显示一/二/三...了,不是很明显,所以改成了显示全称.

            4. tmux-powerline中使用了Google Weather服务显示天气,但是,Google现在已经停止了该服务,于是,我自己按照其提供的segments/weather.sh脚本写了个Yahoo Weather的脚本weather_yahoo.sh,下载后,需将脚本中的location修改为你所在地的code,具体的可以从http://weather.yahoo.com/上查看,文档地址为http://developer.yahoo.com/weather/,在必要时可以对脚本进行修改.

             5. 在status-left.sh和status-right.sh中就是设置状态栏左右部分所要显示的信息,每部分信息都是以declare开始,register_segment结束,很容易进行修改和添加.由于修改了获取天气的脚本,所以需要将weather部分的脚本替换为weather_yahoo.sh.

        从tmux-powerline就可以感受到tmux的强大,如若需要详细学习tmux的使用,可以通过man来了解,或是阅读https://wiki.freebsdchina.org/software/t/tmux.不过,目前我对tmux的session还不是很清楚:-(.

        配置好了tmux,然后,选择Terminator的"首选项"->"Profiles"->"Command",选中"Run a custom command instead of my shell",并在"Custom command"中填入tmux启动命令: ([[ -f "$TMUX" ]] && tmux -2 -S $TMUX) || (TMUX="" tmux -2) ,我还不清楚"-S"参数的作用,我的理解是将新建的会话附加到已存在的会话上.这句命令的意思就是新建会话或附加会话.至于参数"-2",则是让tmux默认认为终端支持256色,并开启对256色的支持.


        提到终端的256 color,基本上流行的终端都是支持256色的,但是它们并没有开启该功能,因为256色的支持需要终端的运行环境中设置了TERM变量的值为"xterm-256color"(不包括引号)才行.xterm是控制台模拟器中的老者,且功能十分强大,唯一的不足是对双字节字符的支持太差.

        我也倒腾过xterm与tmux的组合,但是,因为字体的问题还是放弃了该组合.像gnome-terminal和Terminator这些基于libvte开发的终端都是通过"export TERM=xterm-256color"命令设置TERM环境变量来开启256色的支持,似乎是libvte基于xterm开发或是借鉴了相应的设计和配置?-_-?.

        为了使Terminator支持256色,需在"~/.bashrc"中增加命令"export TERM=xterm-256color".要知道自己的终端是否真的支持256色,可以使用脚本colors.sh打印出256色,通过你的眼睛来判断:-).

        以前我一直认为自己的终端已经开启了256色支持的,结果,通过鼓捣tmux的过程中才发现,事实并非如此,最后在256的支持上也是大费波折,不过,幸而弄好了,也算是值得高兴的^_^.


        顺便提一下,fbterm也支持256色,开启方式则是在"~/.bashrc"中增加"export TERM=fbterm"命令,将TERM变量的值设置为fbterm即可,也可以在fbterm环境中,在程序启动时设置该变量,如: TERM=fbterm vi .不过,在fbterm中要使用tmux的话,则256色功能便无法开启,因为tmux的需设置TERM的值为screen-256color,二者产生了冲突,目前,没想到什么好的解决方法,就只能是要256色,则不要tmux,否则就不要256色 :-(. (启动fbterm时启动tmux的方式为: fbterm -- tmux)

 

        好了,就是这些了,有了Termiantor和tmux,在终端下工作,感觉那是太爽了!


       注意: ~/.bashrc中TERM的值也需要设置为screen-256color,否则,tmux实际上是不能开启256色的(上次未注意该问题),幸运的是Terminator也支持使用该值开启256色,故而,皆大欢喜! :-)

        .bashrc相关配置:

 

if [ "$TERM" = "linux" ]; then
    alias fbterm='LANG=zh_CN.UTF-8 fbterm'
    export TERM=fbterm
    fbterm -- tmux
else
    export TERM='screen-256color'
    # forbid touchpad when I'm typing
    if [ "none`pgrep syndaemon`" = "none" ]; then
        syndaemon -i 1 -K -d
    fi
fi
#xrdb命令使xterm的配置生效
#alias xterm='xrdb ~/.Xdefaults && xterm -e tmux'



参考:

    * 256 colors setup for console Vim

    * 使用tmux

    * How do I enable full-color support in Terminal?

    * The 256 color mode of xterm (注: 该文有256色测试脚本)

 

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

代码转载自:https://pan.quark.cn/s/46fd08fb879c 网管教程 从入门到精通软件篇 ★一。★详尽的xp修复控制台指令及其应用!!! 放入xp(2000)的光盘,安装时选择R,执行修复! Windows XP(涵盖 Windows 2000)的控制台指令是在系统遭遇某些意外状况时的一种极具效用的诊断、检测以及恢复系统功能的工具。笔者确实一直期望能够将这方面的指令进行归纳,此次由老范辛苦整理了这份极具价值的秘籍。 Bootcfg bootcfg 命令用于启动配置与故障恢复(对大多数计算机而言,即 boot.ini 文件)。 带有特定参数的 bootcfg 命令仅在运用故障恢复控制台时方可使用。能够在命令行界面下运用带有不同参数的 bootcfg 命令。 用法: bootcfg /default 设定默认引导选项。 bootcfg /add 向引导清单中增添 Windows 安装。 bootcfg /rebuild 重复整个 Windows 安装流程并让用户选择需添加的项目。 注意:运用 bootcfg /rebuild 之前,应先借助 bootcfg /copy 命令备份 boot.ini 文件。 bootcfg /scan 探查用于 Windows 安装的全部磁盘并展示结果。 注意:这些结果被静态存储,并用于当前会话。若在当前会话期间磁盘配置发生变动,为获取更新的探查结果,必须先重启计算机,然后再次探查磁盘。 bootcfg /list 列示引导清单中已有的项目。 bootcfg /disableredirect 在启动引导程序中禁用重定向。 bootcfg /redirect [ PortBaudRrate] |[ useBio...
代码下载链接: https://pan.quark.cn/s/fc524f791b68 AA制程,即Active Alignment,被理解为主动对准,是一种用于确定零部件装配中相对位置的方法。在摄像头封装阶段,涉及图像传感器、镜座、马达、镜头、线路板等多个部件的重复组装,而传统的封装设备如CSP及COB等,均是依据设备设定的参数进行零部件的移动装配,因而零部件的叠加误差会逐渐增大,最终在摄像头上表现为拍照最清晰的位置可能偏离画面中心、四边清晰度不均等现象。伴随智能手机和其他高端电子产品的普及,摄像头模组的性能正日益受到重视。高分辨率、卓越的低光表现以及稳定视频输出是现代用户所期望的。在摄像头模组的制造环节,各部件的精准定位对成像质量具有决定性作用。因此,一种名为“AA制程”(Active Alignment)的前沿技术被开发出来,成为摄像头精密对准的核心技术。 AA制程,即Active Alignment,是一种在摄像头封装过程中应用的主动对准方法。该方法在多个组件装配阶段发挥作用,涵盖图像传感器、镜座、马达、镜头和线路板等部件。传统的封装方式,例如CSP(Chip Scale Package)和COB(Chip On Board),依赖于设备预设的参数进行组装,但随着组件数量的增加,误差也会累积,最终影响摄像头的表现。例如在成像质量上可能出现中心位置偏移、四角清晰度不一致等问题。 AA制程技术的核心在于实时监测与主动调整。在组装过程中,它借助先进的检测设备持续监控半成品的状态,并根据实时信息对组装部件进行精确修正,从而显著降低装配误差。通过这种技术,能够确保摄像头模组中各组件的相对位置准确无误,从而使得最终的成像效果更加稳定,特别是在中心区域和四角的清晰度上...
内容概要:本文介绍了一套基于Matlab实现的光子晶体90度弯曲波导的二维时域有限差分法(2D FDTD)仿真代码,旨在通过数值模拟手段深入研究光子晶体波导中的光传播特性。该资源聚焦于电磁场与光子学领域的仿真技术应用,系统实现了FDTD算法在复杂介质结构中的建模过程,涵盖空间网格剖分、时间步进迭代、完美匹配层(UPML)边界条件处理、总场散射场(TFSF)激励源设置、介电常数分布定义及电磁场演化可视化等核心模块,能够有效分析光在90度弯曲波导中的传输效率、模式分布与反射损耗等关键性能指标。; 适合人群:具备电磁场理论基础和Matlab编程能力的研究生、科研人员以及从事光子晶体器件设计与仿真的工程技术人员。; 使用场景及目标:①用于教学演示FDTD方法的基本原理与算法流程,帮助理解麦克斯韦方程的离散化求解过程;②支撑科研工作中对光子晶体弯曲波导结构的传输特性进行仿真分析与性能优化;③作为开发更复杂光子集成器件(如分束器、滤波器)数值仿真工具的基础框架; 阅读建议:建议使用者结合经典FDTD教材(如Taflove著作)深入理解算法理论,并在Matlab环境中逐模块调试代码,重点关注电场与磁场的交替更新过程、UPML吸收边界的设计实现以及TFSF源的引入方式,从而全面提升对时域电磁仿真机制的掌握与应用能力。
内容概要:本文围绕直驱式永磁同步电机(PMSM)的矢量控制仿真模型展开研究,基于Simulink平台构建了完整的电机控制系统仿真模型,涵盖电机本体建模、坐标变换(如Clark变换与Park变换)、磁场定向控制(FOC)、电流环与速度环的PI调节、空间矢量脉宽调制(SVPWM)等核心技术环节,旨在实现对电机转矩与转速的高精度、动态响应良好的控制。通过系统化仿真验证控制策略的有效性与鲁棒性,深入分析各模块间的信号流向与控制逻辑,为电机驱动系统的设计与优化提供理论依据和技术支撑,是理论联系工程实践的重要桥梁。; 适合人群:具备电机学、电力电子与自动控制基础知识,熟悉Simulink/MATLAB仿真环境,从事电气工程、自动化、新能源车辆、智能制造等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解永磁同步电机矢量控制的核心原理与系统架构;②掌握在Simulink中从零开始搭建复杂电机控制系统的方法与技巧;③应用于课程设计、毕业论文、科研项目中的控制算法验证、参数整定与性能优化;④为后续的硬件在环(HIL)测试或实物系统开发奠定仿真基础。; 阅读建议:建议结合经典电机控制理论教材同步学习,注重理论推导与仿真实现的对应关系,动手实践模型搭建、参数调试与波形分析,特别关注PI控制器参数整定对系统稳定性、动态响应速度和抗干扰能力的影响,通过反复仿真迭代加深对控制机理的理解。
代码下载地址: https://pan.quark.cn/s/a4b39357ea24 Subversion,即 SVN,是一种在软件开发行业中普遍应用的版本管理工具。它支持团队成员之间的协作,用于管理和监控项目文件的历史版本,并保证多人同时编辑时的数据一致性。本指南将深入讲解 SVN 的核心概念、主要目录的权限设置、用户身份验证方式以及基础操作步骤,是初学者入门的理想学习资料。 一、SVN概述 SVN的中心是版本库,它负责存储所有文件和目录,并构建成文件树的结构。版本库能够允许多个客户端进行连接,执行数据的读取或写入。用户可以通过写操作将自己的修改同步至版本库,而其他用户则可以通过读操作来查看这些变更。这种集中式的版本管理机制使团队协作更加高效和有序。 二、SVN的访问权限配置 在 SVN 系统中,不同的用户或用户团队会被分配不同的访问权限。以质量管理部门的 SVN 实例为例: - 主管朱猛、张凯峰、吕鑫、张颂、马凌具备读写权限。 - 员工陈玲及其他成员仅拥有读权限。 - 项毓毅享有读写权限,主管团队则只有读权限。 - 张凯峰同样拥有读写权限,而其他同事仅能进行读取操作。 三、登录凭证 用户在访问 SVN 时,需要使用基于姓名拼音的用户名和符合特定规则的密码。例如,用户张三的登录名设定为"zhangs",密码为"zhangs#123",这样的设置旨在简化记忆和管理工作。 四、基础操作指南 1. 安装 SVN 客户端:本教程推荐采用 TortoiseSVN 进行安装,可以从指定的 FTP 地址获取安装包。 2. 读取操作: - 项毓毅和管理团队可以直接检出到"质量管理部"目录。 - 其他员工需要分别检出到"部门财富库"和"产品线管理"子目录,因为他们无法访问"部...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值