簡單的 PTT BBS 掛站設定

作者: Yong-Siang Shih / Tue 27 May 2014 / 分類: Notes

BBS, linux, PTT

很久以前看到了 othree 的〈掛站系統設定篇〉,學會了如何在工作站上掛著 BBS。在那以後就很少使用桌面軟體來連 PTT 等 BBS。使用工作站掛站的優點主要是不用一直重新登入很方便,另外在一些公共區域上網時,避免直接使用明文帳密連結 telnet 而透過 ssh 感覺比較安心一點。(不過其實我建議 BBS 還是使用不同的密碼比較好呀。)

後來我發現其實掛一些我平常在逛的站如 PTT or PTT2 其實很少會遇到逾時被登出的狀況,所以就省去了使用 expect 來不斷送出空白訊號的麻煩。就用這篇文章來紀錄這個簡化的掛站方法。

Notebook

Tmux

筆者原本使用 screen,不過後來換成 tmux 之後又改了新版的 PTT 掛站指令,感覺更方便了。如下所示,只要放進 ~/.bashrc 之中,則只要打 pttptt2 就可以連上掛站的 BBS 們了。

同時也支援在已經打開 tmux 的情況下切換到對應的 session。

function ptt() {
  if [ -n "$TMUX" ]; then
    TMUX= tmux new-session -d -s P1 "tmux set status off; ssh bbsu@ptt.cc" &>/dev/null
    tmux switch-client -t P1
  else
    tmux new-session -A -s P1 "tmux set status off; ssh bbsu@ptt.cc" 
  fi
}

function ptt2() {
  if [ -n "$TMUX" ]; then
    TMUX= tmux new-session -d -s P2 "tmux set status off; ssh bbsu@ptt2.cc" &>/dev/null
    tmux switch-client -t P2
  else
    tmux new-session -A -s P2 "tmux set status off; ssh bbsu@ptt2.cc" 
  fi
}

Screen

首先在 $HOME 目錄建一個叫做 screenrc-bbs 的資料夾,接下來在資料夾裡根據想逛的 bbs 建立 screenrc 檔案。

比如說 screenrc-bbs/ptt:

vbell off 
screen -t 'ptt' ssh bbsu@ptt.cc

screenrc-bbs/ptt2:

vbell off 
screen -t 'ptt2' ssh bbsu@ptt2.cc

screenrc-bbs/ptt3:

vbell off
defencoding big5
screen -t 'ptt3' telnet ptt3.cc
defencoding big5

screenrc-bbs/bs2:

vbell off 
defencoding big5 
screen -t 'bs2' telnet -8 bs2.to 
defencoding big5 

最後在 .bashrc 加入 alias 就大功完成啦:

alias bs2="if ! screen -rD BS2 >& /dev/null ; then LANG='zh_TW.UTF-8' screen -S BS2 -c $HOME/screenrc-bbs/bs2 ; fi"
alias ptt="if ! screen -rD PTT1 >& /dev/null ; then LANG='zh_TW.UTF-8' screen -S PTT1 -c $HOME/screenrc-bbs/ptt ; fi"
alias ptt2="if ! screen -rD PTT2 >& /dev/null ; then LANG='zh_TW.UTF-8' screen -S PTT2 -c $HOME/screenrc-bbs/ptt2 ; fi"
alias ptt3="if ! screen -rD PTT3 >& /dev/null ; then LANG='zh_TW.UTF-8' screen -S PTT3 -c $HOME/screenrc-bbs/ptt3 ; fi"

如此一來,下次登入時只要直接打 ptt 就可以開始逛版了,要離開則按 Ctrl-A Ctrl-D,只要沒有被斷線的話隨時登入工作站都可以下 ptt 指令重回之前的進度。

Yong-Siang Shih

作者

Yong-Siang Shih

軟體工程師,機器學習科學家,開放原始碼愛好者。曾在 Appier 從事機器學習系統開發,也曾在 Google, IBM, Microsoft 擔任軟體實習生。喜好探索學習新科技。* 在 GitHub 上追蹤我

載入 Disqus 評論