虚拟终端及终端工具
- 贡献者:HHJ
- 阅读:1964
- 类别:脚本工具
- 更新时间:2017-10-09 11:31:06
目录
xterm
XTerm是X Window System上的默认终端模拟器,用来提供多个独立的SHELL输入输出,其配置文件为~/.Xdefaults 或 ~/.Xresources,需手动创建。但xterm中文支持没urxvt好,urxvt可以输入中文。
!look and feel !外观重点的是下面第一行 xterm.termName: xterm-256color xterm.locale:true xterm.utf8: true xterm*utf8Title:true xterm*fontMenu*fontdefault*Label:Default !字体设置 xterm*faceName:DejaVu Sans Mono:antialias=true:pixelsize=16:bold xterm*faceNameDoublesize:WenQuanYi:pixelsize=16:antialias=true xterm*xftAntialias:true xterm*cjkWidth:false !背景色及字体顔色 xterm*background:black xterm*foreground:gray xterm.borderLess: true xterm.cursorBlink: true xterm*colorUL: yellow xterm*colorBD: white !窗口大小及位置 xterm*geometry:80x28+200+100 ! scrollbar xterm*scrollBar: false xterm*rightScrollBar: true XTerm*SaveLines: 4096 xterm*loginshell: true xterm*cursorBlink: true !-- Tango color scheme Tango配色方案 *xterm*color0: #2e3436 *xterm*color1: #cc0000 *xterm*color2: #4e9a06 *xterm*color3: #c4a000 *xterm*color4: #3465a4 *xterm*color5: #75507b *xterm*color6: #0b939b *xterm*color7: #d3d7cf *xterm*color8: #555753 *xterm*color9: #ef2929 *xterm*color10: #8ae234 *xterm*color11: #fce94f *xterm*color12: #729fcf *xterm*color13: #ad7fa8 *xterm*color14: #00f5e9 *xterm*color15: #eeeeec !fix alt key input 修正Alt不能正常使用 xterm*eightBitInput: false xterm*altSendsEscape: true !input method 好像不起作用 XTerm*inputMethod:fcitx !print color and bold/underline attributes xterm*printAttributes: 2 xterm*printerCommand: cat > ~/xtermdump !mouse selecting to copy, ctrl-v to paste 快捷键定义:鼠标选择自动复制,ctrl-v粘贴,ctrl-p拷屏。 !Ctrl p to print screen content to file XTerm*VT100.Translations: #override Ctrl <KeyPress> V: insert-selection(CLIPBOARD,PRIMARY,CUT_BUFFER0) <BtnUp>: select-end(CLIPBOARD,PRIMARY,CUT_BUFFER0) Ctrl <KeyPress> P: print()
启用配置,在终端中运行
$ xrdb ~/.Xdefault 或 ~/.Xresources 或 $ xrdb -load ~/.Xdefault $ xrdb -merge ~/.Xdefault
sakura
sakura是一个超轻量级虚拟终端,可全屏,可粘贴复制,打开时可同时执行命令,且中文支持好。默认快捷键:
Ctrl + Shift + T 新增终端窗口 Ctrl + Shift + W 关闭当前终端窗口 Ctrl + Shift + C copy Ctrl + Shift + V 粘贴 Alt + Left cursor 前一个终端窗口 Alt + Right cursor 后一个终端窗口 Alt + [1-9] 切换到哪个窗口 Ctrl + Shift + S 切换滚动 Ctrl + Shift + Mouse left button 打开链接 F11 全屏 Ctrl + '+' 增加字体大小 Ctrl + '-' 减少字体大小
查看说明
man sakura
全屏打开,同时执行tmux命令
sakura -s -e tmux
Terminator
Terminator是这些终端里面功能最完备的一款,是终端模拟器中的劳斯莱斯。他是CrunchBang的默认终端,该终端基于 GNOME terminal。
特点:重量级、可分屏、可全屏、中文支持好、透明背景、插件、值得一提的是"Run a custom command",该功能可以使Terminator启动时就运行一些命令,并且可以设置命令退出时Terminator也同时关闭,应有尽有,就是消耗的资源比较多,这就是付出的代价。
快捷键
CTRL+SHIFT+O/E 水平或者垂直新建一个窗口 CTRL+SHIFT + LEFT/RIGHT/UP/DOWN 左/右/上/下移动当前窗口 CTRL+SHIFT+s 显示/隐藏 scrollbar CTRL+TAB/CTRL+SHIFT+TAB 移动到下/上一窗口 ALT+ LEFT/RIGHT/UP/DOWN 分别移动到当前窗口的左/右/上/下窗口 CTRL+SHIFT+W 关闭当前窗口 CTRL+SHIFT+Q 关闭当前程序 CTRL+SHIFT+X/Z 在所有窗口与当前窗口(最大化)之间进行切换 CTRL+SHIFT+T 创建新的Tab CTRL+PageDown/PageUp 移动到下/上一Tab CTRL+SHIFT+PageDown/PageUp 当前Tab与上/下一Tab交换前后位置 CTRL+Plus(+)/Minus(-) 增加/减少当前窗口的字号 CTRL+Zero(0) 还原成默认的字号 CTRL+SHIFT+G 清屏 F11 全屏/或者在启动程序的时候参数设置为 -f
配置文件:~/.config/terminator/config
Linux Terminal/Terminator的设置,配色、字体和layout
2013-01-13 lchjczw - 修订历史History:
2011.03.11 添加作者status和layout配置 2011.03.08 增加layout的说明 2010.09.15 记录
- 系统: Ubuntu 10.04LTS - 软件: Vmware player 3.1.1 - Terminator 0.95 - Gnome terminal 2.29.6 - Fixedsys Excelsior 3.01 字体
在Centos和ubuntu下,terminal的蓝色都难以分辨,其时你可以在调整窗口菜单的调色板,选择自己喜欢的颜色。 在terminator下(即多窗口那个),可以设置 preferences -> profiles -> Colors 这两个终端都可以直接使用系统原来就有的配色方案。 1. 我的方案则喜欢在预定的“Linux style”基础上做出微调,变成自定义的: text color为 白色 background color为 #270C1F 2. 调色板(palette)中,主要调整是原来蓝湛湛的目录颜色,我把它改为没这么蓝的淡蓝色 5555FF 3. background中,我喜欢设置为 90%的transparent background,即90%的透明色 4. 字体,终端的字体我一般喜欢用windows下的fixsys的格式,因为它等宽,和中文放在一起好看。系统预设monospace也不错,不过如果可以选择,我还是会选择用Fixsys。Linux下似乎没有fixsys。不过,有free版本的Fixedsys字体,那应该是参考了fixsys字体制作出来的了,呵呵,功德无量阿。在下面的网址下载,下载后放到/usr/share/fonts/truetype/freefont目录: http://www.fixedsysexcelsior.com/ 直接下载地址是:http://www.fixedsysexcelsior.com/fonts/FSEX300.ttf 我喜欢设置为fixedsys 11号字体 5. terminator常被我用作VIM的编辑器,因此我需要做成大窗口启动,以方便接下来的多窗口分割。 因此我在Terminator的luncher上加入启动参数: --geometry=580x700+400+0 也可以加上默认打开的工作目录 --working-directory=/home/cobyeah 6. Terminator的配置文件在~/.config/terminator/config 可以在此配置文件中设置layout栏参数。使用这个自定义layout时,terminator会同时打开多个子窗口。 但现在[0.95版]功能仍然没完善,不能在layout配置中设置每个窗口的初始化大小,只能是fixed的大小。 作者解释说他正在working on it。将会在1.0beta版中发布这个功能。并且格式参数有可能不同。 一个拥有两水平窗口的terminator配置如下:
myLayout [[[window0]]] position = 170:0 type = Window order = 0 parent = "" size = 1060, 700 [[[child1]]] type = HPaned order = 0 parent = window0 [[[terminal_left]]] profile = default type = Terminal order = 0 parent = child1 [[[terminal2_right]]] profile = default type = Terminal order = 1 parent = child1
运行时,加参数 -l myLayout
终端字体
- Terminal
- DejaVu Sans Mono
-
- 苹果的Monaco等宽字体作为终端默认字体, 中文字体推荐使用文泉驿微米黑, 可避免中文显示出现锯齿.
- fixsys.ttf等宽字体,和中文放在一起好看,下载地址:http://www.fixedsysexcelsior.com/fonts/FSEX300.ttf
终端复用工具tmux
tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。可分屏,可恢复会话。
在虚拟终端中显示中文
若让tmux显示中文,需要UTF-8 locale (LC_CTYPE)设置
vi ~/.xinitrc export LC_CTYPE=zh_CN.UTF-8
tmux的基本概念或单元模块
tmux使用C/S模型构建,主要包括以下单元模块:
模块名称 | 说明 |
---|---|
server | 服务器。输入tmux命令时就开启了一个服务器。 |
session | 会话。一个服务器可以包含多个会话。 |
window | 窗口。一个会话可以包含多个窗口。 |
panel | 面板。一个窗口可以包含多个面板。 |
基本操作
tmux new session -s basic # 开启会话 tmux new -s windows -n shell # 开启一个名为windows的会话,同时将窗口命名为shell tmux ls # 显示会话 tmux attach # 恢复最近的一个会话 tmux attach-session -t basic # 恢复指定的一个会话
系统操作
? 列出所有快捷键;按q返回 d 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话 D 选择要脱离的会话;在同时开启了多个会话时使用 Ctrl+z 挂起当前会话 r 强制重绘未脱离的会话 s 选择并切换会话;在同时开启了多个会话时使用 : 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器 [ 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出 ~ 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息
窗口操作
c 创建新窗口 & 关闭当前窗口 数字键 切换至指定窗口 p 切换至上一窗口 n 切换至下一窗口 l 在前后两个窗口间互相切换 w 通过窗口列表切换窗口 , 重命名当前窗口;这样便于识别 . 修改当前窗口编号;相当于窗口重新排序 f 在所有窗口中查找指定文本
面板操作
" 将当前面板平分为上下两块 % 将当前面板平分为左右两块 x 关闭当前面板 ! 将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板 Ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小 Alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小 Space 在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled q 显示面板编号 o 在当前窗口中选择下一面板 方向键 移动光标以选择面板 { 向前置换当前面板 } 向后置换当前面板 Alt+o 逆时针旋转当前窗口的面板 Ctrl+o 顺时针旋转当前窗口的面板
在终端中复制字符串
1.PREFIX 按 [ 进入 tmux屏幕拷贝模式 2.按空格键开始复制 3.使用类似vim的上下左右键方式进行选中 4.按enter退出复制模式 5.PREFIX 按 ]进行粘贴
配置
tmux的系统级配置文件为/etc/tmux.conf,用户级配置文件为~/.tmux.conf。配置文件实际上就是tmux的命令集合,也就是说每行配置均可在进入命令行模式后输入生效。退出所有session后再重新进入才生效。下面是一个~/.tmux.conf的示例。
set -g prefix C-a # 把前缀键从 C-b 更改为 C-a unbind C-b # 释放之前的 Ctrl-b 前缀快捷键 bind C-a send-prefix # 确保可以向其它程序发送 Ctrl-A set -sg escape-time 2 # 设定前缀键和命令键之间的延时 # setw -g pane-base-index 1 # 把面板的初始索引值从 0 改为 1 set -g status-interval 60 # 每 60 秒更新一次状态栏 # set -g status-justify centre # 设置窗口列表居中显示 setw -g mode-keys vi # 开启 vi 按键 set -g default-terminal "screen-256color" # 设置默认的终端模式为 256 色模式 bind r source-file ~/.tmux.conf \; display "Reloaded!" # 使用 Prefix r 重新加载配置文件 # 此类配置可以在命令行模式中输入show-options -g查询 # set-option -g base-index 1 # 窗口的初始序号;默认为0,这里设置为1 set-option -g display-time 5000 # 提示信息的持续时间;设置足够的时间以避免看不清提示,单位为毫秒 set-option -g repeat-time 1000 # 控制台激活后的持续时间;设置合适的时间以避免每次操作都要先激活控制台,单位为毫秒 set-option -g status-keys vi # 操作状态栏时的默认键盘布局;可以设置为vi或emacs # 窗口切分快捷键 bind \ split-window -h # 使用 \ 将窗口竖切 bind - split-window -v # 使用 - 将窗口横切 bind '"' choose-window # 双引号选择窗口 bind K confirm-before -p "kill-window #W? (y/n)" kill-window # 使用大写 K 来关闭窗口 # Pane之间切换键 bind h select-pane -L # 定位到左边窗口的快捷键 bind j select-pane -D # 定位到上边窗口的快捷键 bind k select-pane -U # 定位到下方窗口的快捷键 bind l select-pane -R # 定位到右边窗口的快捷键 # 快速选择面板 bind -r C-h select-window -t :- bind -r C-l select-window -t :+ # 调整面板大小 bind -r H resize-pane -L 5 bind -r J resize-pane -D 5 bind -r K resize-pane -U 5 bind -r L resize-pane -R 5 # 开启活动通知 setw -g monitor-activity on set -g visual-activity on # 设置面板和活动面板的颜色 set -g pane-border-fg green set -g pane-border-bg black set -g pane-active-border-fg white set -g pane-active-border-bg yellow # 设置窗口列表的颜色 setw -g window-status-fg cyan setw -g window-status-bg default setw -g window-status-attr dim #或setw -g window-status-attr bright # 设置活动窗口的颜色 setw -g window-status-current-fg white setw -g window-status-current-bg red setw -g window-status-current-attr bright # 设置window属性 set-option -g window-status-format '#I #W' set-option -g window-status-current-format ' #I #W ' # 设置命令行或消息的颜色 set -g message-fg white set -g message-bg black set -g message-attr bright # 设置状态栏的颜色 # set -g status-fg white # set -g status-bg blue # 设置状态栏左侧的内容和颜色 # set-option -g status-left-fg green # set-option -g status-left-bg blue # set -g status-left-length 40 # 状态栏左方的内容长度; # 状态栏左方的内容 # set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P" # set -g status-left '[#(whoami)]' # 设置状态栏右侧的内容和颜色 # set-option -g status-right-fg green # set-option -g status-right-bg blue # 15% | 28 Nov 18:15 # set -g status-right-length 15 # 状态栏右方的内容长度;建议把更多的空间留给状态栏左方 # 状态栏右方的内容;这里的设置将得到类似23:59的显示 # set -g status-right "#(~/battery Discharging) | #[fg=cyan]%d %b %R" # set -g status-right '[#(date +" %m-%d %H:%M ")]' # 在相同目录下使用 tmux-panes 脚本开启面板 unbind v unbind n bind v send-keys " ~/tmux-panes -h" C-m bind n send-keys " ~/tmux-panes -v" C-m # 临时最大化面板或恢复面板大小 unbind Up bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp unbind Down bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp # 把日志输出到指定文件 bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log" # 此类设置可以在命令行模式中输入show-window-options -g查询 # 不使用prefix键,使用Ctrl和左右方向键方便切换窗口 bind-key -n "C-Left" select-window -t :- bind-key -n "C-Right" select-window -t :+ # 如果安装了 powerline,那么在最后一行加上下面的语句: # source '/usr/lib/python2.7/site-packages/powerline/bindings/tmux/powerline.conf'
系统启动进入tmux
修改 ~/.bashrc 文件,在文件最后加上下面的内容:
tmux_init() { tmux new-session -s "kumu" -d -n "local" # 开启一个会话 tmux new-window -n "other" # 开启一个窗口 tmux split-window -h # 开启一个竖屏 tmux split-window -v "top" # 开启一个横屏,并执行top命令 tmux -2 attach-session -d # tmux -2强制启用256color,连接已开启的tmux } # 判断是否已有开启的tmux会话,没有则开启 if which tmux 2>&1 >/dev/null; then test -z "$TMUX" && (tmux attach || tmux_init) fi