2015年6月30日 星期二

replace 檔案中 字串

如果有大量的檔案中 有相同的字串要替換

可用以下的 command 來完成大量 replace 的動作

find ./ -type f | xargs sed -i s/字串1/字串2/ig

就可以把該目錄中的所有檔案的"字串1"替換成"字串2"

2014年4月25日 星期五

My vim config

$ vim ~/.vimrc


" setting line number
set number

" setting colors

colorscheme elflord
set t_Co=256

" for .py .sh auto build template

au BufNewFile *.py 0r  ~/.pyhead.template
au BufNewFile *.sh 0r  ~/.bashhead.template


" for python (Tab equal four space and auto )

function! s:python_custom()
    function! s:man(keyword)
        execute '!pydoc ' . a:keyword
    endfunction
    setlocal tabstop=4 expandtab shiftwidth=4 number
    setlocal foldmethod=indent foldcolumn=4 foldlevel=3 foldnestmax=3
    command! -nargs=1 Man call s:man()
    cnoremap K :!pydoc 
endfunction
if has("autocmd")
    autocmd Filetype python call s:python_custom()
endif


$ vim ~/.pyhead.template

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-


$ vim ~/.bashhead.template
#!/usr/bin/env bash




加入 vim plugin 可以自動產生 author info

可支援 .python .php .c .java .....等格式

需要套件:

下載完後,並將NERD_commenter 解壓縮

該資料夾會有兩個資料夾 doc plugin

authorinfo.vim 搬到 plugin裡面

再將 doc plugin 搬移到 .vim

python.vim 搬到 .vim/syntax

這樣安裝完成

再到vimrc 設定及完成


$ vim .vimrc

let g:vimrc_author='Hugo'
let g:vimrc_email='youremail@gmail.com'
let g:vimrc_homepage='http://hugo-linuxs.blogspot.tw/'
nmap  :AuthorInfoDetect

filetype plugin indent on
let python_highlight_all = 1

以上設定及完成

vim 一個檔案測試一下

$  vim test.py

按 F4 就會看到效果了

2014年3月5日 星期三

ubuntu server版中,如何使用wifi 上網

在ubuntu server版中,如何使用wifi 上網

$ sudo vim /etc/network/interfaces

加入以下資訊即可

auto wlan0
iface wlan0 inet dhcp
wpa-ssid  AP_name
wpa-psk  passwd

$ sudo /etc/init.d/networking restart

wifi 應該即可正常運作了


若要看CentOS 可以看以下設定

http://hugo-linuxs.blogspot.tw/2013/10/centos-wireless-wpa.html

2014年2月12日 星期三

快速grep 檔案中的內容

如果要找的檔案內容在很多sub-folder當中

如何用script  方式快速的找到我們需要的內容呢?

法一:

# for files in `find . -type f`; do grep -nH 'you need to grep' $files; done

用以上的方法就可以 grep 到你要的內容了

如果要忽略大小寫的話

使用 grep -inH   即可


法二 :

# find . | xargs grep 'test' -sl

若顯示要包括檔案內容的話, 把 -l 參數拿掉即可

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系统