開源軟體之screen的第一次使用

來源:互聯網
上載者:User

在網上看到一篇關於linux下螢幕協作的文章,原文如下:

螢幕協作
來自產品工程的進階維護使用者 David 打電話說:“為什麼我不能在您部署的這些新機器上編譯 supercode.c”。
您會問他:“您啟動並執行是什麼機器?”
David 答道:“ Posh”。(這個虛夠的公司將它的 5 台生產伺服器以紀念 Spice Girls 的方式命名)。這下您可以大顯身手了,另一台機器由 David 操作:
# su - david
轉到 posh:
# ssh posh
到達之後,運行以下代碼:
# screen -S foo
然後呼叫 David:
“David,在終端運行命令 # screen -x foo”。
這使您和 David 的會話在 Linux shell 中聯結在一起。您可以輸入,他也可以輸入,但彼此可以看到對方所做的事情。這避免了進入其他層次,而且雙方都有相同的控制權。這樣做的好處是 David 可以觀察到您的故障診斷技巧,並能準確瞭解如何解決問題。
最後大家都能看到問題所在:David 的編譯指令碼對一個不在此新伺服器上的舊目錄進行了寫入程式碼。將它裝載後再次編譯即可解決問題,然後 David 繼續工作。您則可以繼續之前的娛樂活動。
關於此技巧需要注意的一點是,雙方需要以同一使用者登入。screen 命令還可以:實現多個視窗和拆分螢幕。請閱讀手冊頁擷取更多相關資訊。
對於 screen 會話,我還有最後一個技巧。要從中分離並讓它開啟,請輸入 Ctrl-A D(即按住 Ctrl 鍵並點擊 A 鍵。然後按 D 鍵)。
然後通過再次運行 screen -x foo 命令可以重新拼接起來。

感覺挺有意思的,於是上網搜了一下screen。下面是:
下載目錄: ftp://ftp.gnu.org/gnu/screen/screen-4.2.1.tar.gz
其他版本: ftp://ftp.gnu.org/gnu/screen/


下載完成之後,ftp到linux的臨時目錄,解壓之後,進入該目錄,
安裝“三部曲”,過程如下:

[billing_dx@bmcs1 screen-4.2.1]$ ./configure --prefix="/account/work/ymm/usr/local"#指定安裝目錄this is screen version 4.2.1……Now please check the pathnames in the Makefile and in the userconfiguration section in config.h.Then type 'make' to make screen. Good luck.[billing_dx@bmcs1 screen-4.2.1]$ make#編譯CPP="gcc -E -DETCSCREENRC='"/account/work/ymm/usr/local/etc/screenrc"' -DSCREENENCODINGS='"/account/work/ymm/usr/local/share/screen/utf8encodings"'" srcdir=. sh ./osdef.shAWK=gawk CC="gcc -g -O2 -D_GNU_SOURCE" srcdir=. sh ./comm.shAWK=gawk srcdir=. sh ./term.sh……gcc  -o screen screen.o ansi.o fileio.o mark.o misc.o resize.o socket.o search.o tty.o term.o window.o utmp.o loadav.o putenv.o help.o termcap.o input.o attacher.o pty.o process.o display.o comm.o kmapdef.o acls.o braille.o braille_tsi.o logfile.o layer.o list_generic.o list_display.o list_window.o sched.o teln.o nethack.o encoding.o canvas.o layout.o viewport.o -lcurses  -lelf -lcrypt[billing_dx@bmcs1 screen-4.2.1]$ make install#安裝./etc/mkinstalldirs /account/work/ymm/usr/local/bin /account/work/ymm/usr/local/share/screen/utf8encodings……termcap entry (./terminfo/screencap) should be installed manually.You may also want to install ./etc/etcscreenrc in /account/work/ymm/usr/local/etc/screenrc[billing_dx@bmcs1 screen-4.2.1]$ls /account/work/ymm/usr/local/bin/#查看產生的檔案screen  screen-4.2.1安裝上面給出的提示,操作如下:1、使用使用者“billing_dx”登入一個終端,執行“screen -S ymm”2、使用使用者“billing_dx”登入一個終端,執行“screen -x ymm”這樣,兩個視窗就串連起來了,進行的任何操作都是同步的。我上網搜了一下screen命令中的這兩個參數的含義:
-S sessionnameWhen creating a new session, this option can be used to specify a meaningful name for the session. This name identifies the session for "screen -list" and "screen -r" actions. It substitutes the default [tty.host] suffix.#-S 建立一個新的session-xAttach to a not detached screen session. (Multi display mode).#-x串連指定的session上網搜這些東西的時候,還是使用google比較方便,如果只是使用英文的話,效果可能更好了。例如google裡搜尋:linux screen man 。本來想查看screen的用法,但是因為找不到手冊檔案,所以:
[billing_dx@bmcs1 screen-4.2.1]$man screenCannot open the message catalog "man" for locale "utf-8"(NLSPATH="/usr/share/locale/%l/LC_MESSAGES/%N")No manual entry for screen[billing_dx@bmcs1 screen-4.2.1於是我想到,如果我安裝了一個新的軟體,而且也想著讓別人使用man手冊的話,我應該如何去做的問題。上網搜到,使用“man”命令的時候,我們可以手動的指定到指定的目錄尋找man手冊,這個參數就是“-M”,解釋如下:
[billing_dx@bmcs1 screen-4.2.1]$man man-M  path       Specify the list of directories to search for man pages.  Separate the directories with colons.       An empty list is the same as not specifying -M at all.  See SEARCH PATH FOR MANUAL PAGES.
因為安裝screen的時候,我們指定了screen的安裝目錄【./configure --prefix="/account/work/ymm/usr/local"】,所以,最後產生的的可執行檔和相應的說明文檔都在該目錄下,如下:
[billing_dx@bmcs1 screen-4.2.1]$ls /account/work/ymm/usr/localbin  share[billing_dx@bmcs1 screen-4.2.1]$ls /account/work/ymm/usr/local/share/info  man  screen[billing_dx@bmcs1 screen-4.2.1]$ls /account/work/ymm/usr/local/share/manman1[billing_dx@bmcs1 screen-4.2.1]$所以,可以手動指定man手冊的查詢目錄,進行查詢,如下:
[billing_dx@bmcs1 screen-4.2.1]$man -M /account/work/ymm/usr/local/share/man screenSCREEN(1)                                                            SCREEN(1)NAME       screen - screen manager with VT100/ANSI terminal emulationSYNOPSIS       screen [ -options ] [ cmd [ args ] ]       screen -r [[pid.]tty[.host]]       screen -r sessionowner/[[pid.]tty[.host]]DESCRIPTION……當然,這種方法應該只是一次性的方法,在《鳥哥的私房菜》中,還有一種一勞永逸的方法:既然有man page,自然就是因為有一些檔案資料,所以才能夠以man page讀出來囉!那麼這些man page的資料 放在哪裡呢?不同的distribution通常可能有點差異性,不過,通常是放在/usr/share/man這個目錄裡頭,然而,我們可以透過修改他的man page搜尋路徑來改善這個目錄的問題!修改/etc/man.config (有的版本為man.conf或manpath.conf)即可囉!至於更多的關於man的訊息你可以使用『 man man 』來查詢呦!/etc/man.config這個檔案乍看之下好像跟 bash 沒相關性,但是對於系統管理員來說, 卻也是很重要的一個檔案!這的檔案的內容『規範了使用 man 的時候, man page 的路徑到哪裡去尋找!』所以說的簡單一點,這個檔案規定了下達 man 的時候,該去哪裡查看資料的路徑設定!那麼什麼時候要來修改這個檔案呢?如果你是以 tarball 的方式來安裝你的資料,那麼你的 man page 可能會放置在 /usr/local/softpackage/man 裡頭,那個 softpackage 是你的套件名稱, 這個時候你就得以手動的方式將該路徑加到 /etc/man.config 裡頭,否則使用 man 的時候就會找不到相關的說明檔囉。事實上,這個檔案內最重要的其實是 MANPATH 這個變數設定啦! 我們搜尋 man page 時,會依據 MANPATH 的路徑去分別搜尋啊!另外,要注意的是, 這個檔案在各大不同版本 Linux distributions 中,檔名都不太相同,例如 CentOS 用的是 /etc/man.config ,而 SuSE 用的則是 /etc/manpath.config , 可以利用 [tab] 按鍵來進行檔案名稱的補齊啦!因為通過上面方法需要修改“ /etc/man.config ”檔案,這就牽扯到了有沒有這個許可權的問題了。
[billing_dx@bmcs1 screen-4.2.1]$ll  /etc/man.config-rw-r--r--. 1 root root 4940 Apr  3  2012 /etc/man.config[billing_dx@bmcs1 screen-4.2.1]$
沒有root許可權,也就沒法進行修改了。不過我感覺,對於我來說,使用“-M”參數,就足夠使用到了。

追加:剛才發現,如果我吧man手冊所在的目錄,添加到PATH環境變數中,還是可以達到直接查詢man手冊的目的,測試效果如下:
[billing_dx@bmcs1 screen-4.2.1]$man screenCannot open the message catalog "man" for locale "utf-8"(NLSPATH="/usr/share/locale/%l/LC_MESSAGES/%N")No manual entry for screen[billing_dx@bmcs1 screen-4.2.1]$ export PATH=$PATH:/account/work/ymm/usr/local/share/man[billing_dx@bmcs1 screen-4.2.1]$man screenSCREEN(1)                                                            SCREEN(1)NAME       screen - screen manager with VT100/ANSI terminal emulationSYNOPSIS       screen [ -options ] [ cmd [ args ] ]       screen -r [[pid.]tty[.host]]       screen -r sessionowner/[[pid.]tty[.host]]DESCRIPTION不過這種把什麼東西都添加到環境變數PATH的方式,我想著應該不是太推薦吧。不過,這總歸也算是一種方法吧!如果大家有更好的方法,歡迎指導啊!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.