2014年1月24日 星期五

TMUX (Terminal MUltipleXer )

screen 與 tmux 的比較  (from http://josephj.com/entry.php?id=373)

稍微整理一下 screen 與 tmux,大家就會知道 tmux 有多好了。

screen

screen 架構
screen 的架構很簡單,一個 screen 連線只能被一個 SSH 連線存取
一個 screen 可有多個 window
只支援水平分割、同時觀看多個 window

tmux

tmux 的架構
tmux 管理的東西較多:包括 Session(連線)、Window(視窗)與 Pane(窗格)。

tmux 優點 1 - 可以被多個 SSH 同時連線

tmux Session 可以被多個 SSH 同時連線,這點跟 Screen 很不同。
過去用 screen 你離開辦公桌的電腦,晚上回到家裡繼續工作時,必定得 detach 再 attach。
但是用 tmux 的話,你可以在家裡 attach,隔天到公司 tmux 並不會被 detach
所以若你開兩個 tmux 同時 attach 到同一個 Session 時,可以看到兩個視窗同時動作的有趣畫面喔。
所以在這樣的架構下,你就不用擔心像 screen 不正常斷線無法 detach 再 attach 的問題了。

tmux 優點 2 - 可在 Session 中切換到不同 Session

過去要從 screen 到另一個 screen 得先 detach,
但 tmux 只要用快速鍵(預設 Ctrl-b + s)即可切換到其他 Session
是不是很方便呢?

tmux 優點 3 - 強大的分割視窗

screen 只能做單一水平分割,但是 tmux 可以自由自在地水平或垂直分割
一個窗格被稱為 Pane,分割會被記錄至 Window 保存(screen 只要一 detach 就沒了)
且一個 Pane 可隨時轉換成 WindowPane 調整大小、位置的功能更是完整
---------------------------------------------------------------------------------------------------
操作方式、常用快捷键:
大寫的C==>Control鍵
C+b c 開新視窗
C+b n 或 space 切換到下一個視窗
C+b P 切換到上一個視窗
====視窗分割功能======
C+b " 水平分割視窗
C+b % 垂直分割視窗
C+b up or down 切換分割視窗
C+b C上 or C下 分割視窗大小調整
C+b C左 or C右 分割視窗大小調整
C+b space 重新佈置分割的視窗
C+b ! 取消所有分割視窗
指令 exit 跳出當前分割視窗
C+b + Ctrl + 方向鍵上/下/左/右
# 可以調整當前分割視窗的長寬,好用!
作用鍵 + d
# 將目前的 Tmux Session 丟到背景去
tmux ls
# 列出主機上所有的 Tmux Session
tmux a -t 0
# 將背景的第 0 號 Tmux Session 叫回,a 代表 attach
Ctrl+b激活控制台;此时以下按键生效
系统操作?列出所有快捷键;按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顺时针旋转当前窗口的面板
視窗取回
screen -r
tmux attach
視窗取回 by session name
screen -r session-name
tmux attach -t session-id
視窗開啟自訂 session-name
screen -S session-name
tmux new -s session-name # ex: tmux new -s irc
列出所有 session
screen -ls
tmux ls # tmux list-sessions
----------------------------------------------------------------------------
http://www.slideshare.net/slideshow/embed_code/30000994?rel=0&hostedIn=slideshare&no_embed_cta=true

2014年1月16日 星期四

undefined reference to rpl_malloc

如果編譯的時候遇到未定義引用rpl_malloc這個錯誤,有兩個方法可以解決。
  • 配置的時候加上了 - with-GNU-ld的這個參數
  • 或者在config.h中裡加上的#undef rpl_malloc

How to repair and clone disk with ddrescue

  ddrescue  is a tool that can be used to repair and clone disks on a  Linux system . This includes hard drives, partitions, DVD discs, flas...