2013年10月9日 星期三

用xrdp 從windows 登入遠端 linux桌面

雖然red hat有提供vnc套件

但如果要從windows登入卻無法內件軟體登入

如要用windows 登入遠端 linux 桌面 且 不想使用其它軟體的話

請在linux上安裝 xrdp

Ubuntu(即debain分支有支援 apt-get的)系列的linux

只要打以下的command即可

# apt-get install xrdp

------------------------------------------------------------------------------------

但是若為RHEL(CentOS、Fedora)需要比較多的步驟

首先要確認你的yum list是可以使用的(請參考 yum更新設定)
1. 安裝 xrdp 前請先確定系統已經安裝了 gcc, pam-devel, openssl-devel,可使用下列指令安裝:
# yum install gcc pam-devel openssl-devel

2. 到 http://xrdp.sf.net 下載 xrdp 的原始檔並安裝:
# cd /usr/local/src
# wget http://jaist.dl.sourceforge.net/sourceforge/xrdp/xrdp-0.4.2.tar.gz
# tar -xzvf xrdp-0.4.2.tar.gz
# cd xrdp-0.4.2
# make
# make install

若要下載其它版本請確定解壓縮後的的檔案內的Makefile可以使用

像我一開始是下載0.5.0版的 可是Makefile好像怪怪的

所以打 # make 後都沒反應 可能是我太遜了(還是新手,請多指教)
3. 編輯 /etc/rc.d/rc.local  加入以下內容/usr/local/xrdp/xrdp_control.sh start
# vim /etc/rc.d/rc.local
/usr/local/xrdp/xrdp_control.sh start

4.啟動 xrdp 指令:
/usr/local/xrdp/xrdp_control.sh start
5.修改xrdp 的設定檔,相關設定檔放在 "/etc/xrdp/",比較重要的是 "/etc/xrdp/sesman.ini" 這個檔案,在 [Globals] 中的這一行:
ListenAddress=127.0.0.1 表示只允許從本機連結 RDP Server,如果要從別的主機進行操作 (配合登入 xrdp 的 "sesman-any" 選項)

可將 "127.0.0.1″ 改成 "0.0.0.0″,所以請記得修改。

# vim /etc/xrdp/sesman.ini 

ListenAddress=0.0.0.0

接下來只要都弄好後只要點windows的遠端桌面輸入linux的ip就可以連線了

screen教學(linux終端機有多個分頁)

先介紹基本sceen的command

進入與脫離screen的指令是:

  • screen //第一次執行screen
  • Ctrl a+d //關閉screen(至背景),也就是detached
  • screen -rd //重新回到(resume)剛剛的screen 裡
  • exit //關閉視窗(若只剩一個視窗則為關閉screen)
在進入screen的世界後,都是以熱鍵來做操控,他的原生熱鍵都是以Ctrl+a開始的
(以C-a 代表,C-a c 代表按住 Ctrl 鍵不放再按 a 鍵,然後放開按 c 鍵)最基本必會的幾個熱鍵是:
  • C-a c 或 C-a C-c #開啟新的視窗,並同時切換到這個新的視窗
  • C-a n 或 C-a C-n 或 C-a (space) #切換到下一個視窗(0->1 1->2 ...)
  • C-a p 或 C-a C-p #切換到上一個視窗(1->0 2->1 ...)
  • C-a C #清除目前的視窗內容
  • C-a d 或 C-a C-d #脫離(detach)目前的 screen ,並放到背景執行
  • C-a ? 或 C-a C-? #熱鍵查詢



1.先安裝screen

# yum install screen    ==>  Cent OS

# sudo apt-get install screen   ==>  Ubuntu

2.在自己的家目錄下 create 一個 .screenrc 的檔案(含快捷鍵)

並將下面綠色部分的內容加入.screenrc中

# cd ~
# vim .screenrc

#把惱人的screen開啟訊息關掉
# Start message
startup_message off

#在視窗底下新增一個很好用的狀態列(這很方便!一定要加這行,分別是cent_OS還有ubuntu的設定)
# Set hardstatus always on

 # for  Cent OS
#hardstatus alwayslastline " %-Lw%{= Bw}%n%f %t%{-}%+Lw %=| %M %d %0c:%s "    

#for  Ubuntu
hardstatus alwayslastline " %-Lw%{= Bw}%n%f %t%{-}%+Lw %=| %Y/%m/%d%{= .m} %0c:%s " 


#強制終端機編碼為utf8 (這樣就能正常看中文字囉!)
# Set default encoding using utf8
defutf8 on


#離開視窗時自動refresh一下螢幕
# Refresh the display when exiting programs
altscreen on


#支援動態顯示視窗的「標題名稱」
# Dynamic title
shelltitle '$ |bash'


#熱鍵操作錯誤時的逼逼聲給關掉
# Disable vbell
vbell off

#接下來重點來了,就是Keboard bindkey,也就是自行定義熱鍵
# Keboard binding

#F11 往前切換視窗 (相當於C-a p)
# bind F11 to move to previous window
bindkey -k F1 prev

#F12 往後切換視窗 (相當於C-a n)
# bind F12 to move to next window
bindkey -k F2 next


# bind Alt`~= to screen0~12

#Alt+` 切換至screen 0
bindkey "^[`" select 0

#Alt+1 切換至screen 1
bindkey "^[1" select 1
bindkey "^[2" select 2
bindkey "^[3" select 3
bindkey "^[4" select 4
bindkey "^[5" select 5
bindkey "^[6" select 6
bindkey "^[7" select 7
bindkey "^[8" select 8
bindkey "^[9" select 9
bindkey "^[0" select 10

#Alt+- 切換至screen 11
bindkey "^[-" select 11

#Alt+= 切換至screen 12
bindkey "^[=" select 12

#F7 關閉screen(至背景) (相當於C-a d )
# bind F7 to detach screen session (to background)
bindkey -k k7 detach

#F8 kill目前screen視窗
# bind F8 to kill current screen window
bindkey -k k8 kill

#F9 開一個新的screen視窗 (相當於C-a c)
# bind F9 to create a new screen
bindkey -k k9 screen

#F10 將目前screen視窗「標題名稱」重新命名
# bind F10 to rename current screen window
bindkey -k k; title



你看懂後也可以自行變化對應按鈕,總之自己按的順手就好!

最後我再分享一個screen應用的最終密技,那就是——「分割視窗」!熱鍵是「Ctrl + a  S 」(大寫的 S唷,也就是Split的意思),螢幕就會切成兩半了,此時再按「Ctrl + a  tab」就可以切換focus的視窗,接著再「Ctrl + a  c」 建立新視窗,或著以號碼跳選其它視窗。(恕沒有圖解教學,請自行操作領會)分割視窗有啥好處呢?相信常在trace code的人都能感受,有時常看某個.c檔就想開著他refer 到 header include 的檔案去查找macro定義或struct宣告之類的,或者是兩個檔案做diff比對,此時若能分割視窗就方便多啦!(雖說VIM也支援分割視窗啦!)


3.完成後只要打指令screen就可以入screen了,接下來只要了解如果新screen的新增刪除分頁就可以上手了

# screen



fedora 18 的修改root密碼的方式有些許改變

與過去的方式不大相同

過去的方式如下:

single user mode方法:
1.首先,進入Grub開機選單後,按 "e"進入編輯模式。
2.按上下鍵到kernel 的選項後(通常是第二個),
   在按 "e" 編輯,最後面加上數字 "1" or /single  ,按enter
3.按下enter後, 會回到kernel 的選單,在按"b" 開機就會進入單人模式


而fedora 18的grub不太相同,所以提供我經驗內修改的方式為:

1.在 grub 是選擇 linux 然后按 e
2.找到 rhgb quiet 在前面加入 single rhgb quiet 注意single前後都有空格
3.然后按F10 啟動linux系统

ibus 嘸蝦咪安裝

在ubuntu 使用ibus的嘸蝦咪相當簡單

只要連結到
https://github.com/vicamo/ibus-table-boshiamy/downloads
會看到有兩個連結,請下載第二個
ibus-table-boshiamy_1.2.0.20091209-0ubuntu1_all.deb
丟在Ubuntu底下你喜歡的地方(我是直接放在家目錄底下)

用滑鼠對著此檔案點兩下便會自動安裝
接著請登出ubuntu,再重新登入(目的只是要重啟ibus)
到ibus的設定頁面(即 Keyboard Input Methods)加入此輸入法即可


在red hat下 得自己做table,方法如下:

1.先確定己安裝ibus-table-createdb。

如未安裝請自行安裝
# yum install ibus-table

2.請先下載字碼表,網址如下:
https://sites.google.com/a/ubuntu-tw.org/orange/boshiamyfinal.tar.bz2?attredirects=0

裏面放有Basic.txt ,GB.csv 兩個檔案
其中Basic.txt是正體中文+日文 沒有把蝦米研究室的Ext A,Ext B 字沒有包含進來
(ExtA,ExtB屬於是少見unicode 用到機率小)
即便已經省掉ExtA,ExtB 這樣還是會超過Windows版輸入法的限制(32000列)
所以簡體的部份單獨存放在GB.csv (有需要簡體,請自行整合)

3.將以下內容複製到Basic.txt內的最上方之後儲存成liu.txt

###===========================
### File header must not be modified
### This file must be encoded into UTF-8.
### This table under LGPL
### comments start with ### not single #
### Derive from the format of SCIM Table, so you can modify the table from
### scim-tables' table
SCIM_Generic_Table_Phrase_Library_TEXT
VERSION_1_0

### Begin Table definition.
BEGIN_DEFINITION

### License
LICENSE = LGPL

### An unique id to distinguish this table among others.
### Use uuidgen to generate this kind of id.
UUID = aa920bcb-d7c1-4e3a-a1ca-5d630f1cfcb4

### A unique number indicates the version of this file.
### For example the last modified date of this file.
### This number must be less than 2^32.
### Just make your table version-able
SERIAL_NUMBER = 20090709

### ICON can be any format as long as your pygtk can recognized
### the most widely ones are "png" and "svg", letter one is recommended
ICON = boshiamy.png

### The default name of this table, this is needed
NAME = Table

### The local names of this table, this is optional
NAME.zh_CN = 嘸蝦米
NAME.zh_HK = 嘸蝦米
NAME.zh_TW = 嘸蝦米

### Description
DESCRIPTION = Boshiamy Input Method

### Supported languages of this table
### sigle "zh_CN" just be recognized as zh_CN,
### but "zh_CN, zh_HK" or more zh_XX will be recognized as zh;
### and "en_US, zh_CN" will be just ignored.
LANGUAGES = zh_CN,zh_SG,zh_TW,zh_HK

### The author of this table
AUTHOR = Vicamo Yang

### Prompt string to be displayed in the status area, CN will be replaced by
### the gettext tools in runtime as 中.
STATUS_PROMPT = CN

### Valid input chars.
VALID_INPUT_CHARS = ,.'abcdefghijklmnopqrstuvwxyz[]

### Layout
LAYOUT = us

### The max number of input keys for every phrase or character.
MAX_KEY_LENGTH = 5

### Use auto_commit mode as default
AUTO_COMMIT = TRUE

### Use full width punctuation by default
DEF_FULL_WIDTH_PUNCT = TRUE
### Not use full width letter by default
DEF_FULL_WIDTH_LETTER = FALSE

### Whether user are allow to define phrase, default is true
### You have to define the word construction rules below.
### For input methods which do not input phrases, set this to False
USER_CAN_DEFINE_PHRASE = TRUE

### Whether support PinYin Mode, default is true.
### this feature is just for Chinese, set it to False if your IM is not
### Chinese.
PINYIN_MODE = TRUE

### If true then the phrases' frequencies will be adjusted dynamically
### according your using frequency.
DYNAMIC_ADJUST = TRUE

### Some characters whose frequencies should be fix all the time, e.g.
### some punctuations
### NO_CHECK_CHARS =

### Rules for constructing user defined phrase
### "ce" stands for "ci equal", a Chinese English :), means "phrase length
### equal to", thus ce2 -> phrase length equal to 2; and "ca" means "phrase
### length equal or above", so ca4 -> phrase length equal or above 4.
### p21 -> the 1st key of 2nd character in the phrase, and so on.
### Each rule separate via ";".
### Example below is a complete rule-set,
### becuase [2,2] ∩ [3,3] ∩ [4,+∞] = [2,+∞], which is the range of length
### of phrase. This have to be satisfied if you need ibus-table to build up
### your own inputed phrase via your daily using.
###RULES = ce2:p11+p12+p21+p22;ce3:p11+p21+p22+p31;ca4:p11+p21+p31+p41

END_DEFINITION

### Begin Table data.
### Format of every line whose formated in "input_keys\tphrase\tfreq\n" is an
### entry.
### From left to right, the 1st column are the input key combination that you
### entered via keyboard; the 2nd column are presented character or phrase of
### the key combination you want; the 3rd column are frequency of the character
### or phrase.
BEGIN_TABLE
END_TABlE

###==============================================

4.照以下的command製作ibus 的 db
# ibus-table-createdb -s liu.txt -n liu.db

5.將liu.db 複製到 /usr/share/ibus-table/tables/

6. 依照步驟3的內容中,有寫的icon 名稱(即圖檔boshiamy.png),將自製的icon 複製到 /usr/share/ibus-table/icons/  (檔名要為boshiamy.png)

登出後再登入就可以在ibus中新增無蝦咪了

CentOS 終端機下如何設定wireless (使用wpa加密)

在CentOS 6.4 Minimal下需要先install wireless-tool才會有iwconfig 、iwlist等command

所以先用有線網路下載wireless-tools

# yum install wireless-tools
安裝好後就有以上指令了


接下來先檢查你的wifi device的名稱

# iwconfig

應該會看到wlan0的device (wlan0只是device代稱,也許是其它電腦會不一樣)


接下來開始scan你附近有的wireless的名稱

# iwlist wlan0 scanning | more

就會有許多你附近所有wifi的名稱,尋找看看有沒有你要的wifi (找ESSID:"mywifi" , mywifi 即為你想要連線的名稱)

接下來修改以下設定檔

# vi /etc/sysconfig/wpa_supplicant

INTERFACES="-iwlan0"
DRIVERS="-Dwext"

# wpa_passphrase mywifi  yourpasswd >> /etc/wpa_supplicant/wpa_supplicant.conf

# vi /etc/sysconfig/network-scripts/ifcfg-wlan0

DEVICE=wlan0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=wireless
MODE=managed

以上都設定好後

# /etc/init.d/wpa_supplicant restart
# /etc/init.d/network restart


沒意外wifi即可使用

如果要開機可以自動連線的話,加以以下檔案即可

# vim  /etc/init.d/mydefice_service

   #!/bin/sh

   /etc/init.d/messagebus start
   /etc/init.d/wpa_supplicant start
   killall dhclient >/dev/null 2>&1

再做做soft link 到rc3.d與rc5.d即可(若沒有使用圖型介面rc5.d可不用做)
  
#  ln -s /etc/init.d/mydefice_service  /etc/rc3.d/S09myservice#  ln -s /etc/init.d/mydefice_service  /etc/rc5.d/S09myservice    



Ref:

http://jamyy.dyndns.org/blog/2009/05/452.html
http://wiki.centos.org/zh-tw/HowTos/Laptops/WpaSupplicant