2013年7月12日 星期五

linux screen 使用心得

screen很好用,但是screen技巧太薄弱,就讓Rellik老師教我的東西在這邊記下

Rellik: 不會耶 我的 screenrc 有特別設定的關係
Rellik: 可以開好多個分割窗,然後底下有顯示數字
Rellik: 所以我會知道我到底開了多少個
Rellik: 在你家目錄下新增 .screenrc 這檔案 @_@

defc1 off
caption always "%-w%<%{=B GK}%n %t%{= KW}%+w"
hardstatus alwayslastline "%{=b BW} {%l}%018=%{=b WK} %n %t %-029=%{YK} %Y %M %d(%D) %{RW} %C %A"
defencoding utf-8
defutf8 on
shelltitle shell
bind b encoding big5 utf8
bind u encoding utf8 utf8
bind w height -w 24
bind m height -w
termcapinfo screen 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
termcapinfo xterm-256color 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
defscrollback 20000
2

老天尊: 你的screen設定檔 要改下面的名字怎麼改..
老天尊: 0 shell 要改 機器名稱(DB server)這樣
Rellik: ctrl+a 然後 shift-a
Rellik: 就可以自己 key 名字進去
Rellik: 開太多窗不想用 ctrl-n ctrl-p 切換視窗的話也可以用 ctrl-a "
老天尊: 酷耶 這個要裝你設定檔才有?
老天尊: ctrl-a " 這個
Rellik: screen 內建
老天尊: 我都 ctrl-a +數字
Rellik: 也可以
Rellik: 但是超過 9 以上就要..
Rellik: 用我剛說的方式或是 ctrl-n , ctrl-p

使用ctrl+a d離開打開的screen(會存在機器上)
然後直接exit或關掉putty
下次再連的時候使用
$ screen -rUD
喚醒上次的工作狀態

$ mount
前面有ip的是掛載網路硬碟

$ sudo mtr -n domain
類似tracert

windows用 tracert,linux用traceroute
Rellik: 知道怎麼判讀 mtr 嗎?
Rellik: mtr 進去左邊 Loss% 表示掉封包
Rellik: snt 是 sent
Rellik: 送了多少封包過去
Rellik: 如果你看最後一個站台是 950 但是前面幾個站台已經收了 1000 個封包那..表示掉了 50 個
Rellik: loss 5%
Rellik: 後面 last 是他最新送出去的封包是多少毫秒
Rellik: avg 是平均值
Rellik: 最後一欄 StDev 是標準差
Rellik: 標準差越大的...表示那個站台越不穩
Rellik: 我的機器...很糟
Rellik: 標準差 2x ..

Rellik的.screenrc跑版->
因為我的VM上灌centos中文版,所以
Window -> Translation -> Treat CJK ambiguous characters as wide 打勾要取消 ( 上面Remote character set: 選UTF8 )
開screen後才不會跑版


老天尊: screen 裡面line of scrollback 怎麼感覺跟沒設一樣...
往上拉只能看到一點點東西
Rellik: ctrl+a- esc
Rellik: 會進入暫停模式
Rellik: 然後才能用 page up 和  page down 找
Rellik: 要再離開暫停模式是用ctrl-a-q
Rellik: esc 也可以
Rellik: 他會出個訊息是 copy mode aborted


指定bash
在ubuntu 14.04的docker中跑ubuntu14.04的容器,使用screen會使用錯誤(/bin/sh)的SHELL程式,且使用chsh -s /bin/bash 無效
解法:
# screen -U -s /bin/bash

screen -U後頁籤出現完整路徑
解法:
Rellik: 要在機器上的 .bashrc 加上 unset PROMPT_COMMAND
結果:

為screen命名

https://stackoverflow.com/a/3309696  How can I assign a name for a screen? [closed]

重新命名現有的screen會話

ctrl + a => :sessionname YOUR_SESSION_NAME  (然後enter)
查看現有的screen
$ screen -ls

喚醒screen

$ screen -rUD 16113.bear










2 則留言:


  1. Using the scrollwheel in GNU screen
    add a line like this to your ~/.screenrc:

    termcapinfo xterm* ti@:te@

    http://stackoverflow.com/questions/359109/using-the-scrollwheel-in-gnu-screen

    回覆刪除