banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn  XML
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 30/11/2010 19:57:04 (+0700) | #1 | 225929
[Avatar]
St Konqueror
Member

[Minus]    0    [Plus]
Joined: 08/12/2007 00:47:39
Messages: 229
Offline
[Profile] [PM]
Hi all,

Mình lập chủ đề này để những ai đang dùng screen hoặc tmux chia sẻ tập tin cấu hình của mình. Mình đề xuất chúng ta nên cung cấp tập tin cấu hình ~/.screenrc hoặc ~/.tmux.conf, screenshot màn hình và vài comment về các thiết lập của mình.

Về screenshot, nếu ai dùng screen/tmux trong môi trường virtual terminal thì có thể dùng fbshot hoặc fbgrab để chụp ảnh màn hình.

Sau đây mình xin bắn phát pháo đầu tiên. Mình chơi screen là chính:

$cat ~/.screenrc
Code:
## Turn off the  Startup Message ##
startup_message off
####

## Enable scroll back using Shift +PageUp (PageDown)##
defscrollback 1000
####

shelltitle $
hardstatus alwayslastline
hardstatus string "%{= kG}[%{G}%H%{g}][%{= kw}%-w%{= BW}%n %t%{-}%+w %-= %{g}][%{c}%c%{g}]"

bind c screen 1
bind ^c screen 1
bind 0 select 10
screen 1

bindkey -k k1 select 1
bindkey -k k2 select 2
bindkey -k k3 select 3
bindkey -k k4 select 4
bindkey -k k5 select 5
bindkey -k k6 select 6
bindkey -k k7 select 7
bindkey -k k8 select 8
bindkey -k k9 select 9
bindkey -k k; select 10
bindkey -k F1 prev
bindkey -k F2 next


Mô tả:
- Dòng thứ nhất tắt startup message của screen.
- Dòng thứ hai bật chức năng scroll, và giới hạn ở 1000 dòng.
- Block thứ 3 (tiếp theo) quy định title mặc định của từ windows, tạo bottom status bar trên màn hình.
- Block thứ 4 quy định đánh số windows bắt đầu từ 1 (thay vì 0) và số 0 được gán cho windows thứ 10
- Block cuối cùng là dùng phím từ F1 đến F10 đến chọn các windows từ 1 đến 10. Phím F11 và F12 dùng để di chuyển giữa các windows (tương tự như tổ hợp mặc định C-a n và C-a p)

Screen shot

[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 01/12/2010 00:14:04 (+0700) | #2 | 225971
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Không biết có phải vì số thao tác ít hơn không mà mình vẫn quen dùng Terminator (mặc dù đôi khi mình phải mở nhiều sessions để ssh vào cùng một server).

Let's build on a great foundation!
[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 03/12/2010 00:17:07 (+0700) | #3 | 226225
[Avatar]
St Konqueror
Member

[Minus]    0    [Plus]
Joined: 08/12/2007 00:47:39
Messages: 229
Offline
[Profile] [PM]

quanta wrote:
Không biết có phải vì số thao tác ít hơn không mà mình vẫn quen dùng Terminator (mặc dù đôi khi mình phải mở nhiều sessions để ssh vào cùng một server).

 


Anh quanta,

Em nghĩ là screen multiplexers như GNU Screen hay tmux có cái hay là tính năng attach và dettach sessions. Nhờ đó nên khi đang làm việc nữa chừng (như update hệ thống thông qua ssh) mà bị mất kết nối thì sẽ không cần phải ssh vào lại rồi làm lại từ đâu. Thay vào đó, nhỡ mất kết nối thì công việc đang làm trên máy chủ vẫn cứ tiếp tục, mình chỉ cần ssh vào lại rồi attach cái session của công việc đó vào là xong.

Còn về nhược điểm của GNU Screen hay tmux là cách cấu hình khá phức tạp và khó nhớ, cần consult cái man page (rất dài) thì mới có thể làm cho nó hoạt động như ý muốn được. Mà mặc định các distro thì cũng không cung cấp file cấu hình mặc định để làm cho người dùng dễ thở hơn (theo em thử với nhiều distro phổ biến là vậy). Tuy nhiên, sau khi quen rồi thì cá nhân em thấy xài rất... phê! :-D

-stk
[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 03/12/2010 03:09:43 (+0700) | #4 | 226234
Mr.Khoai
Moderator

Joined: 27/06/2006 01:55:07
Messages: 954
Offline
[Profile] [PM]
Cái .screenrc của khoai rất đơn giản, cần gì thì mở thêm. Dạo này ít xài linux, và càng ít xài CLI smilie Screen của khoai vẫn bắt đầu từ 0, tại vì vẫn có thói quen sử dụng 0 làm session chính.

Code:
activity                "Active in %n (%t) [%w:%s]~"
defscrollback   3000
hardcopy_append on
caption always '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
shelltitle "$ |bash"


khoai
[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 03/12/2010 10:28:49 (+0700) | #5 | 226271
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

St Konqueror wrote:

Anh quanta,

Em nghĩ là screen multiplexers như GNU Screen hay tmux có cái hay là tính năng attach và dettach sessions. Nhờ đó nên khi đang làm việc nữa chừng (như update hệ thống thông qua ssh) mà bị mất kết nối thì sẽ không cần phải ssh vào lại rồi làm lại từ đâu. Thay vào đó, nhỡ mất kết nối thì công việc đang làm trên máy chủ vẫn cứ tiếp tục, mình chỉ cần ssh vào lại rồi attach cái session của công việc đó vào là xong.
 

Cảm ơn Konqueror. Mình cũng đang tìm hiểu những tính năng hay của GNU Screen để dùng kết hợp với Terminator.

St Konqueror wrote:

Còn về nhược điểm của GNU Screen hay tmux là cách cấu hình khá phức tạp và khó nhớ, cần consult cái man page (rất dài) thì mới có thể làm cho nó hoạt động như ý muốn được. Mà mặc định các distro thì cũng không cung cấp file cấu hình mặc định để làm cho người dùng dễ thở hơn (theo em thử với nhiều distro phổ biến là vậy). Tuy nhiên, sau khi quen rồi thì cá nhân em thấy xài rất... phê! :-D
 

Mình thường chia đôi cửa sổ theo chiều ngang: gõ lệnh trên một cái và xem chuyện gì xảy ra trên cái `tail -f` còn lại. Mình thấy hơi mất nhiều thao tác khi scroll (phải C-a Esc trước).
Let's build on a great foundation!
[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 04/12/2010 22:12:35 (+0700) | #6 | 226356
mR.Bi
Member

[Minus]    0    [Plus]
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
[Profile] [PM] [WWW]
screen cũng cắt ngang để hiển thị 2 screen sessions được, còn muốn cắt ngang dọc tùm lum thì tmux.
All of my life I have lived by a code and the code is simple: "honour your parent, love your woman and defend your children"
[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 05/12/2010 09:17:48 (+0700) | #7 | 226371
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

mR.Bi wrote:
screen cũng cắt ngang để hiển thị 2 screen sessions được, còn muốn cắt ngang dọc tùm lum thì tmux.
 

Anh có nói là không cắt ngang được đâu. Ý anh là hơi bất tiện khi cắt ngang rồi và chuyển qua lại giữa các sessions rồi scroll.
Let's build on a great foundation!
[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 05/12/2010 13:54:14 (+0700) | #8 | 226385
[Avatar]
St Konqueror
Member

[Minus]    0    [Plus]
Joined: 08/12/2007 00:47:39
Messages: 229
Offline
[Profile] [PM]

Mr.Khoai wrote:
Cái .screenrc của khoai rất đơn giản, cần gì thì mở thêm. Dạo này ít xài linux, và càng ít xài CLI smilie Screen của khoai vẫn bắt đầu từ 0, tại vì vẫn có thói quen sử dụng 0 làm session chính.

Code:
Code:
activity                "Active in %n (%t) [%w:%s]~"
 defscrollback   3000
 hardcopy_append on
 caption always '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
 shelltitle "$ |bash"


khoai 

Cool! Hoan nghênh anh Khoai! smilie

mR.Bi wrote:
screen cũng cắt ngang để hiển thị 2 screen sessions được, còn muốn cắt ngang dọc tùm lum thì tmux.
 

Anh Bi, _5tk nhớ là screen bản được đóng gói bởi các distro thường disable tính năng cắt dọc mà chỉ có tính năng cắt ngang. Nếu muốn cắt dọc thì phải git lôi source code của screen về tự build lấy thì phải?

quanta wrote:

Anh có nói là không cắt ngang được đâu. Ý anh là hơi bất tiện khi cắt ngang rồi và chuyển qua lại giữa các sessions rồi scroll. 


Ừm, đúng là hotkeys mặc định của GNU screen cũng như BSD tmux đều khá rối rắm và bất tiện. Do vậy thường thì mình cần phải xem tài liệu khá kĩ (mà cái man của nó thì dài như bộ kinh smilie) để chỉnh lại theo ý muốn cá nhân.
Vỉ dụ như bật chức năng scroll back thì phải dùng dòng:
Code:
defscrollback 1000

Tuy nhiên sau một thời gian "vọc" GNU screen thì em thấy là các hotkeys mặc định hầu như không xung đột với chương trình nào khác. Còn hotkeys do mình tự thêm thì kiểu gì cũng sẽ xảy ra một ít xung đột. smilie

[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 13/12/2010 18:39:59 (+0700) | #9 | 226988
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Mình gặp vấn đề là sau khi ssh rồi split, muốn remove (kill) current region với C-a X thì "có vẻ" là GNU Screen lại nhận là C-a x và lock luôn cái ssh session của mình lại. Mình đã thử với screen trong Terminal, Konsole, xterm. Bạn nào test hộ mình với.

Chi tiết các bước như sau:
  • ssh user@server
  • screen
  • C-a S
  • C-a Tab
  • C-a c
  • C-a X
Let's build on a great foundation!
[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 13/12/2010 20:38:39 (+0700) | #10 | 226993
m3onh0x84
Member

[Minus]    0    [Plus]
Joined: 29/11/2007 15:22:21
Messages: 467
Location: lang thang 4 biển
Offline
[Profile] [PM] [WWW] [Yahoo!] [MSN]
hix em xem man screen trên xubuntu 10.04 ra đoạn này:
C-a x
C-a C-x (lockscreen) Lock this terminal.

C-a X (remove) Kill the current region. See also split,
only, focus. 

mà anh quanta muốn thoát thì thử gõ exit xem. Em cũng chưa thử ssh nên k0 rõ lắm smilie
1/ LÀM ƠN "Đọc kĩ hướng dẫn sử dụng trước khi dùng".
2/homepage: trước khi hỏi thì LÀM ƠN tìm kiếm. Vì để biết nhiều hơn thì ai cũng phải đọc "VỪNG ƠI MỞ RA"
Hỏi FAQ thì lên asking.vn mà hỏi
[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 13/12/2010 21:58:21 (+0700) | #11 | 226995
[Avatar]
St Konqueror
Member

[Minus]    0    [Plus]
Joined: 08/12/2007 00:47:39
Messages: 229
Offline
[Profile] [PM]

quanta wrote:
Mình gặp vấn đề là sau khi ssh rồi split, muốn remove (kill) current region với C-a X thì "có vẻ" là GNU Screen lại nhận là C-a x và lock luôn cái ssh session của mình lại. Mình đã thử với screen trong Terminal, Konsole, xterm. Bạn nào test hộ mình với.

Chi tiết các bước như sau:
  • ssh user@server
  • screen
  • C-a S
  • C-a Tab
  • C-a c
  • C-a X
 


Anh quanta,

Không biết là anh chỉ gặp vấn đề này khi ssh hay là bình thường cũng gặp? Em vừa thử trong tty, Konsole, xterm và ROXTerm nhưng đều không gặp vấn đề tương tự. Phiên bản em dùng là

Code:
$ screen -v
Screen version 4.00.03 (FAU) 23-Oct-06


Em đoán là có thể vấn đề của anh nằm ở:

(1) Cách cấu hình bản GNU screen trên máy tính mà anh ssh vào có thể nhập nhằng về bindkeys.
(2) Phím Shift của anh... bị trục trặc. smilie

Để em dạo vài vòng google xem có ai gặp trường hợp tương tự không.

-stk
[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 14/12/2010 00:16:22 (+0700) | #12 | 226998
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

St Konqueror wrote:

Không biết là anh chỉ gặp vấn đề này khi ssh hay là bình thường cũng gặp?
 

Chỉ khi ssh đến remote host mới gặp em à, kể cả ssh user@localhost cũng không việc gì. Để anh nói rõ thêm một chút: anh muốn chạy screen trên remote host để khi anh C-a c là có một ssh session để làm việc luôn chứ không phải là chạy screen trên local rồi mới ssh đâu nhé.

St Konqueror wrote:

Em vừa thử trong tty, Konsole, xterm và ROXTerm nhưng đều không gặp vấn đề tương tự. Phiên bản em dùng là

Code:
$ screen -v
Screen version 4.00.03 (FAU) 23-Oct-06

 

Em ssh đến remote host chứ? Anh cũng dùng phiên bản giống em:
Code:
# screen -v
Screen version 4.00.03 (FAU) 23-Oct-06

À, nói thêm là: sau khi ssh rồi split và C-a c, nếu anh dùng C-a x thì nó lại không xi nhê gì cả.

St Konqueror wrote:

Em đoán là có thể vấn đề của anh nằm ở:

(1) Cách cấu hình bản GNU screen trên máy tính mà anh ssh vào có thể nhập nhằng về bindkeys.
 

Anh chưa cấu hình gì luôn (không cả có ~/.screenrc). Anh đã thử với nhiều máy và còn nhờ cả người khác test hộ.

St Konqueror wrote:

(2) Phím Shift của anh... bị trục trặc. smilie
 

He, anh đã thử cả Caps Lock rồi nhấn X cho chắc rồi.
Let's build on a great foundation!
[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 16/01/2011 13:54:27 (+0700) | #13 | 229590
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]
Hôm nay tớ mần tới cái GNU Screen thì gặp cái Problem như là quanta đã bị trước đây

sau khi tham khảo kĩ các bài viết trên mạng thì gặp cái này

http://www.softpanorama.org/Utilities/screen.shtml

Ctrl-a S (split, capital s, please!). Screen can horizontally by split into regions(panels), each holding a different terminal. After you split the window you need to move to the new region using Ctrl-tab and create a session in it using Ctrl-a-c.

To enter that newly created region we have to tab into it: Ctrl-a <Tab>
(change focus switch from one panel to another in OFMs)
To close a region type Ctrl-a X.
A region with focus can be resized with Ctrl-a + or Ctrl-a - By default this changes the height by 3 lines.
Typing Ctrl-a : puts Screen into command mode and the status line at the bottom changes. Screen now accepts direct commands and resize 24 makes the currently focused region exactly 24 lines high. Alternatively, you can specify the height to an absolute number by going into Screens command mode. Ctrl-a X removes the current region.  


vậy là rõ, cái Ctrl-a X là để remove cái Region sinh ra khi dùng lệnh split Window ở trên chứ không phải là dùng để remove hay close cái Window

Để đóng Window thì chỉ có cách duy nhất là type lệnh exit

albusng@ubuntu:~$ exit 


Thân mến,
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 16/01/2011 14:24:51 (+0700) | #14 | 229591
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

xnohat wrote:

vậy là rõ, cái Ctrl-a X là để remove cái Region sinh ra khi dùng lệnh split Window ở trên chứ không phải là dùng để remove hay close cái Window
 

Có ai nói là C-a X để remove hay close window đâu anh.

Khi anh thử các bước như em nói ở trên thì chuyện gì xảy ra?
Let's build on a great foundation!
[Up] [Print Copy]
  [Discussion]   Chia sẻ ~/.screenrc hoặc ~/.tmux.conf của bạn 16/01/2011 20:12:02 (+0700) | #15 | 229610
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]
Bình thường em smilie , anh dùng Screen version

Screen version 4.00.03jw4 (FAU) 2-May-06

Trên nền Ubuntu

C-c S ra split ra 2 Frame , dùng C-a Tab tới Frame 2 anh dùng C-a X ( shift x ) thì Frame 2 bị remove đúng như manual nó mô tả smilie

Anh thực hiện tất cả thông qua SSH, dùng Putty trên Windows XP

Keyboard: ESC[n~
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|