2012年2月8日 星期三

GCC 筆記

from 網路

http://omusico.pixnet.net/blog/post/25368607-gcc指令筆記%5B轉載%5D

2012年2月7日 星期二

Linux 改背景顏色

再寫 C /C ++ 得時候 有時候看不清楚註解
如何更改註解顏色
方法如下
vim 的 config 檔在以下

整體 vim 的設定值一般是放置在 /etc/vimrc 這個檔案,不過,不建議你修改他! 你可以修改 ~/.vimrc 這個檔案 (預設不存在,請你自行手動建立!),將你所希望的設定值寫入! 舉例來說,可以是這樣的一個檔案:

set bg=dark
即可

詳細的操作 請參考
鳥哥私房菜 !
http://linux.vbird.org/linux_basic/0310vi.php#vim_set

Linux Shell

Linux 的 Shell
有 TC 則 他的 環境變數檔案就放在 .csrsh
如果是 bash 環境變數黨就放在 .bashrc
而且不同的介面 他們 撰寫的語法不同

2012年2月6日 星期一

環境變數

環境變數的設定與視察
視察
echo $PATH
如何設定

export 路徑1:路徑2:路徑3

2012年2月1日 星期三

sed 指令使用

如何使用 sed
sed 是用來 排序的指令
例如說
一筆資料 data
1
2
3
4
5


cat data |sed '3d'
會顯示
1
2
4
5



[root@www ~]# nl /etc/passwd | sed '2,5d'
1 root:x:0:0:root:/root:/bin/bash
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown


若是要刪除第 3 到最後一行,則是『 nl /etc/passwd | sed '3,$d' 』的啦,那個錢字號『 $ 』代表最後一行!




範例三:在第二行後面加入兩行字,例如『Drink tea or .....』與『drink beer?』
[root@www ~]# nl /etc/passwd | sed '2a Drink tea or ......\
> drink beer ?'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
Drink tea or ......
drink beer ?
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin



範例四:我想將第2-5行的內容取代成為『No 2-5 number』呢?
[root@www ~]# nl /etc/passwd | sed '2,5c No 2-5 number'
1 root:x:0:0:root:/root:/bin/bash
No 2-5 number
6 sync:x:5:0:sync:/sbin:/bin/sync
.....(後面省略).....



範例五:僅列出 /etc/passwd 檔案內的第 5-7 行
[root@www ~]# nl /etc/passwd | sed -n '5,7p'
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown


範例六 取代字串
sed 's/要被取代的字串/新的字串/g'

ex
[Andy@ed520-RAID project1]$ cat sort
Ka123456789 line1
Ka987654321 line2
Ka555555555 line3
Ka135798642 line4
Ka246810951 line5


[Andy@ed520-RAID project1]$ cat sort |sed 's/Ka/Andy/g'
Andy123456789 line1
Andy987654321 line2
Andy555555555 line3
Andy135798642 line4
Andy246810951 line5


事實上 沒有寫g 好像也會自動替代
.....(後面省略).....

Linux sort 使用

[root@www ~]# sort [-fbMnrtuk] [file or stdin]
選項與參數:
-f :忽略大小寫的差異,例如 A 與 a 視為編碼相同;
-b :忽略最前面的空白字元部分;
-M :以月份的名字來排序,例如 JAN, DEC 等等的排序方法;
-n :使用『純數字』進行排序(預設是以文字型態來排序的);
-r :反向排序;
-u :就是 uniq ,相同的資料中,僅出現一行代表;
-t :分隔符號,預設是用 [tab] 鍵來分隔;
-k :以那個區間 (field) 來進行排序的意思

範例一:個人帳號都記錄在 /etc/passwd 下,請將帳號進行排序。
[root@www ~]# cat /etc/passwd | sort
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
# 鳥哥省略很多的輸出~由上面的資料看起來, sort 是預設『以第一個』資料來排序,
# 而且預設是以『文字』型態來排序的喔!所以由 a 開始排到最後囉!


範例二:/etc/passwd 內容是以 : 來分隔的,我想以第三欄來排序,該如何?
[root@www ~]# cat /etc/passwd | sort -t ':' -k 3
root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
# 看到特殊字體的輸出部分了吧?怎麼會這樣排列啊?呵呵!沒錯啦~
# 如果是以文字型態來排序的話,原本就會是這樣,想要使用數字排序:
# cat /etc/passwd | sort -t ':' -k 3 -n
# 這樣才行啊!用那個 -n 來告知 sort 以數字來排序啊!


範例三:利用 last ,將輸出的資料僅取帳號,並加以排序
[root@www ~]# last | cut -d ' ' -f1 | sort

用linux 系統去 compile

語法如下
假設有一個 檔案 名稱叫做 test.cpp
g++ test.cpp -lpthread (g++ 指的是compiler test.cpp 是被編譯的檔案 -lpthread 表示 把 library pthread 給 抓近來 'l'表示 library)

結束後 會產生 執行黨 a.out

1. gcc -o tutorial01 ./tutorial01.c -I. -L/usr/local/lib -lavcodec -l avformat -lavutil
-I : input directory (use . as current directory)
-L: link library directory
-l: link library name

預設的路徑是


一般而言
如果 在 linux 下寫 C/C++
它會自動去抓 library
而 通常 library 會放在 /usr/lib 或是 lib 中

至於 include

.h 檔案 通常都會存放在 /usr/include 裡面


所謂 .h 檔是指 一個頭的檔案 胎會去抓實體的code檔案
另外就是 所謂 .a 是指抽象檔案
.so 動態檔案