二、UNIX 常用的指令:
以下只說明各指令的基本用法, 若需詳細說明, 請用 man 去讀詳細的 manual.
a. 關於檔案/目錄處理的指令:
1. ls
這是最基本的檔案指令。 ls 的意義為 "list",也就是將某一個目錄或是
某一個檔案的內容顯示出來。
如果你在下 ls 指令後頭沒有跟著任何的檔名,它將會顯示出目前目錄中所
有檔案。
也可以在 ls 後面加上所要察看的目錄名稱或檔案的名稱,如
% ls /home2/X11R5
% ls first
ls 有一些特別的參數,可以給予使用者更多有關的資訊,如下:
-a : 在 UNIX 中若一個目錄或檔案名字的第一個字元為 "." , 則使用 ls
將不會顯示出這個檔案的名字,我們稱此類檔案為隱藏檔。如 tcsh
的初設檔 .tcshrc;如果我們要察看這類檔案,則必須加上參數 -a 。
-l : 這個參數代表使用 ls 的長( long )格式,可以顯示更多的資訊,
如檔案存取權,檔案擁有者( owner ),檔案大小,檔案最後更新
日期,甚而 symbolic link 的檔案是 link 那一個檔等等。如下
% ls -l
drwx--x--x 2 jjtseng 512 Aug 8 05:08 18
drwx--x--x 2 jjtseng 512 Aug 8 22:00 19
-rw------- 1 jjtseng 566 Aug 8 05:28 makefile
2. cp
cp 這個指令的意義是複製("COPY") , 也就是將一個或多個檔案複製成另
一個檔案或者是將其複製到另一個目錄去。
cp 的用法如下:
cp f1 f2 : 將檔名為 f1 的檔案複製一份為檔名為 f2 的檔案。
cp f1 f2 f3 ... dir : 將檔案 f1 f2 f3 ... 都以相同的檔名複製一
份放到目錄 dir 裡面。
cp -r dir1 dir2 : 將 dir1 的全部內容全部複製到 dir2 裡面。
cp 也有一些參數,如下:
-i : 此參數是當已有檔名為 f2 的檔案時,若逕自使用 cp 將會將原來 f2
的內容掩蓋過去,因此在要蓋過之前必須先詢問使用者一下。如使用者
的回答是y(yes)才執行複製的動作。
-r : 此參數是用來做遞迴複製用,可將一整顆子樹都複製到另一個
目錄中。
3. mv
mv 的意義為 move , 主要是將一檔案改名或換至另一個目錄。如同 cp ,它也有
三種格式:
mv f1 f2 : 將檔名為 f1 的檔案變更成檔名為 f2 的檔案。
mv dir1 dir2 : 將檔名為 dir1 的目錄變更成檔名為 dir2 的目錄。
mv f1 f2 f3 ... dir : 將檔案 f1 f2 f3 ... 都移至目錄 dir 裡面。
mv 的參數有兩個,-f 和 -i , 其中 -i 的意義與 cp 中的相同,均是 interactive
詢問之意。而 -f 為強迫( force ) , 就是不管有沒有同名的檔案,反正我就是要
搬過去,所有其他的參數遇到 -f 均會失效。
4. rm
rm 的意義是 remove ,也就是用來殺掉一個檔案的指令。在 UNIX 中一
個被殺掉的檔案除非是系統恰好有做備份,否則是無法像 DOS 裡面一樣還能夠救回
來的。所以在做 rm 動作的時候使用者應該要特別小心。
rm 的格式如下:
rm f1 f2 f3 .....
而 rm 的參數比較常用的有幾個: -f , -i , 與 -r
-f : 將會使得系統在刪除時,不提出任何警告訊息。
-i : 在除去檔案之前均會詢問是否真要除去。
-r : 遞迴式的刪除。
小心不要隨便使用 rm -rf , 否則有一天你會"欲哭無淚"......
5. mkdir
mkdir 是一個讓使用者建立一個目錄的指令。你可以在一個目錄底下使用
midir 建立一個子目錄,使用的方法如下:
mkdir dirname1 [ dirname2 ... ]
如此你就可以建立一個或多個目錄。
6. chdir ( cd )
這是讓使用者用來轉移工作目錄用的。
chdir 的用法如下:
chdir dirname
如此你就可以將目前的目錄轉移到 dirname 這一個目錄去。
或使用 "chdir .." 來轉移到上一層目錄。
7. rmdir
相對於 mkdir ,rmdir 是用來將一個"空的"目錄殺掉的。如果一個目錄下面
沒有任何檔案,你就可以用 rmdir 指令將其除去。rmdir 的使用法如下:
rmdir dirname1 [ dirname2 .... ]
如果一個目錄底下有其他的檔案, rmdir 將無法將這個目錄殺掉,除非使用
rm 指令的 -r 選項。
8. pwd
pwd 會將目前目錄的路徑( path )顯示出來,例如:
9. cat/more/less
以上三個指令均為察看檔案內容的指令。cat 的意義是貓....不不不,是
concatenate ,在字典上的意思是"連結,將…串成鎖狀"( 語出資工電子
詞典 cdict ),其實就是把檔案的內容顯示出來的意思。 cat 有許多奇怪
的參數,較常為人所使用的是 -n 參數,也就是把顯示出來的內容加上行
號。 cat 的用法如下:
cat [-n] :自標準輸入讀進內容,你可以用 pipe 將別的程式的輸出轉向
給 cat .
cat [-n] filename : 將 filename 的內容讀進來,顯示在標準輸出上。
問題在於 cat 它是不會停下來的,因此並不好用( 試想如果一個螢幕二十
四行,而一個檔案四百行,cat 一出來將會劈哩啪啦不斷的捲上去,使用者
很難據此得到他們所需的資訊。) 所以才有人又寫了 more 出來。
more , 跟據蔡文能老師的說法是"再多一點就好",more 可以將所觀察的檔案
跟據終端機的形態一頁頁的顯示出來,再根據使用者的要求換頁或捲行。如果
使用者要在某一個檔案中搜尋一個特定的字串,則按 / 然後跟著打所要搜尋
的單字即可進行搜尋。more 也可以找得到。more 的使用法如下:
more filename
如果你在使用中覺得已經看到了所要看的部份,可以按'q'離開 more 的使用。
在使用中按'v' 亦可以使用編輯器來編輯所觀看的檔案。
less 的用法與 more 極類似,原先它就是為了彌補 more 只能往前方捲頁的缺
點而設計。 less 的用法如下:
less filename
其與 more 不同的是它可以按 y 來往上捲一行,並且可以用"?"來往回搜尋你所
要找的單字。
10. chmod
chmod 為變更檔案模式用( change mode ) . 這個指令是用來更改檔案的存取模
式( access mode )。在 UNIX 一個檔案上有可讀(r)可寫(w)可執行(x)三種模式,
分別針對該檔案的擁有者( onwer )、同群者( group member )( 你可以 ls -lg
來觀看某一檔案的所屬的 group ),以及其他人( other )。一個檔案如果改成可
執行模式則系統就將其視為一個可執行檔,而一個目錄的可執行模式代表使用者
有進入該目錄之權利。chmod 就是用來變更一些檔案的模式,其使用方式如下:
chmod [ -fR ] mode filename ...
其參數的意義如下:
-f Force. chmod 不會理會失敗的動作。
-R Recurive. 會將所有子樹下的所有子目錄及檔案改為你所要改成的模式。
mode 可以為一個三位或四位的八進位數字,來表示對某些對象的存取權。詳情
可參閱 chmod(1) 的 manual page 中有關 Absolute Modes 的說明。
或是用一個字串來表示,請參考 chmod(1) 的說明。
b. 關於 Process 處理的指令:
1. ps
ps 是用來顯示目前你的 process 或系統 processes 的狀況。
以下列出比較常用的參數:
其選項說明如下:
-a 列出包括其他 users 的 process 狀況。
-u 顯示 user - oriented 的 process 狀況 。
-x 顯示包括沒有 terminal 控制的 process 狀況 。
-w 使用較寬的顯示模式來顯示 process 狀況 。
我們可以經由 ps 取得目前 processes 的狀況,如 pid , running state 等。
2. kill
kill 指令的用途是送一個 signal 給某一個 process 。因為大部份送的都是
用來殺掉 process 的 SIGKILL 或 SIGHUP ,因此稱為 kill 。kill 的用法
為:
kill [ -SIGNAL ] pid ...
kill -l
SIGNAL 為一個 singal 的數字,從 0 到 31 ,其中 9 是 SIGKILL ,也就是一
般用來殺掉一些無法正常 terminate 的訊號。其餘訊號的用途可參考 sigvec(2)
中對 signal 的說明。
你也可以用 kill -l 來察看可代替 signal 號碼的數目字。kill 的詳細情形
請參閱 man kill。
c. 關於字串處理的指令:
1. echo
echo 是用來顯示一字串在終端機上。?
echo -n 則是當顯示完之後不會有跳行的動作。
2. grep/fgrep
grep 為一過濾器,它可自一個或多個檔案中過濾出具有某個字串的行,或是
自標準輸入過濾出具有某個字串的行。
fgrep 可將欲過濾的一群字串放在某一個檔案中,然後使用 fgrep 將包含有
屬於這一群字串的行過濾出來。
grep 與 fgrep 的用法如下:
grep [-nv] match_pattern file1 file2 ....
fgrep [-nv] -f pattern_file file1 file2 ....
-n 把所找到的行在行前加上行號列出
-v 把不包含 match_pattern 的行列出
match_pattern 所要搜尋的字串
-f 以 pattern_file 存放所要搜尋的字串
d. 網路上查詢狀況的指令:
1. man
man 是手冊 ( manual ) 的意思。 UNIX 提供線上輔助( on-line help )的功能,
man 就是用來讓使用者在使用時查詢指令、系統呼叫、標準程式庫函式、各種表
格等的使用所用的。man 的用法如下:
man [-M path] [[section] title ] .....
man [-M path] -k keyword ...
-M path man 所需要的 manual database 的路徑。
我們也可以用設定環境變數 MANPATH 的方式來取代 -M 選項。
title 這是所要查詢的目的物。
section 為一個數字表示 manual 的分類,通常 1 代表可執行指令,
2 代表系統呼叫( system call ) ,3 代表標準函數,等等。
像下面 man 查詢的片段:
SEE ALSO
apropos(1), cat(1V), col(1V), eqn(1), lpr(1), more(1),
nroff(1), refer(1), tbl(1), troff(1), vgrind(1), vtroff(1),
whatis(1), eqnchar(7), man(7), catman(8)
我們如要參考 eqnchar(7) 的資料,則我們就輸入 man 7 eqnchar ,
便能取得我們所要的輔助訊息。
-k keyword
用來將含有這項 keyword 的 title 列出來。
man 在 UNIX 上是一項非常重要的指令,我們在本講義中所述之用法均僅只是一
個大家比較常用的用法以及簡單的說明,真正詳細的用法與說明還是要請你使用
man 來得到。
2. who
who 指令是用來查詢目前有那些人在線上。
3. w
w 指令是用來查詢目前有那些人在線上,同時顯示出那些人目前的工作。
4. ku
ku 可以用來搜尋整個網路上的 user ,不像 w 跟 who 只是針對 local host 的
查詢. 而且 ku 提供讓使用者建立搜尋特定使用者名單的功能。你可以建立一個檔
案 information-file 以條列的方式存放你的朋友的資料,再建立一個檔案
hosts-file 來指定搜尋的機器名稱。 ku 的指令格式可由 ku -h 得到。
E. 網路指令:
UNIX 提供網路的連接,使得你可以在各個不同的機器上做一些特殊的事情,如
你可以在系上的 iris 圖形工作站上做圖形的處理,在系上的 Sun 上讀 News ,
甚至到學校的計中去找別系的同學 talk 。這些工作可以利用 UNIX 的網路指
令,在你的位子上連到各個不同的機器上工作。如此一來,即使你在寢室,也能
輕易的連至系上或計中來工作,不用像以前的人必須泡在冷冰冰的機房面。
這些網路的指令如下所述:
1. rlogin 與 rsh
rlogin 的意義是 remote login , 也就是經由網路到另外一部機器 login 。
rlogin 的格式是:
rlogin host [ -l username ]
選項 -l username 是當你在遠方的機器上的 username 和 local host 不同的
時後,必須輸入的選項,否則 rlogin 將會假設你在那邊的 username 與 local
host 相同,然後在第一次 login 時必然會發生錯誤。
rsh 是在遠方的機器上執行某些指令,而把結果傳回 local host 。rsh 的格式
如下:
rsh host [ -l username ] [ command ]
如同 rlogin 的參數 -l username , rsh 的 -l username 也是指定 remote host
的 username 。而 command 則是要在 remote host 上執行的指令。如果沒有
指定 command ,則 rsh 會去執行 rlogin ,如同直接執行 rlogin 。
不過 rsh 在執行的時候並不會像一般的 login 程序一樣還會問你 password , 而
是如果你沒有設定 trust table , 則 remote host 將不會接受你的 request 。
rsh 須要在每個可能會做為 remote host 的機器上設定一個檔案,稱為 .rhosts。
這個檔案每一行分為兩個部份,第一個是允許 login 的 hostname , 第二個部份
則是允許 login 的 username 。例如,在 ccsun7.csie.nctu.edu.tw 上頭你的
username 為 ysjuang , 而你的 home 下面的 .rhost 有以下的一行:
ccsun6.cc.nctu.edu.tw u8217529
則在 ccsun6.cc.nctu.edu.tw 機器上的 user u8217529 就可以用以下的方法來
執行 rsh 程式:
% rsh ccsun7.csie.nctu.edu.tw -l ysjuang cat mbox
將 ysjuang 在 ccsun7.csie.nctu.edu.tw 上的 mbox 檔案內容顯示在 local host
ccsun6.cc.nctu.edu.tw 上。
而如果 .rhost 有這樣的一行,則 ccsun6.cc.nctu.edu.tw 上的 user u8217529
將可以不用輸入 password 而直接經由 rsh 或 rlogin login 到
ccsun7.csie.nctu.edu.tw 來。
注意:
.rhost 是一個設定可以信任的人 login 的表格,因此如果設定不當將會讓
不法之徒有可以乘機侵入系統的機會。 如果你閱讀 man 5 rhosts ,將會
發現你可以在第一欄用 + 來取代任何 hostname ,第二欄用 + 來取代任何
username 。
如一般 user 喜歡偷懶利用 " + username " 來代替列一長串 hostname ,
但是這樣將會使得即使有一台 PC 上跑 UNIX 的 user 有與你相同的
username , 也可以得到你的 trust 而侵入你的系統。這樣容易造成系統
安全上的危險。因此本系禁止使用這樣子的方式寫你的 .rhost 檔,如果
發現將予以停機直到你找中心的工作人員將其改正為止。 同理,如果你的
第二個欄位為 + ,如" hostname + " ,則你是允許在某一部機器上的"所有"
user 可以不用經由輸入 password 來進入你的帳號,是壹種更危險的行為。
所以請自行小心。
2. telnet
telnet 是一個提供 user 經由網路連到 remote host。
telnet 的 格式如下:
telnet [ hostname | ip-address ] [ port ]
hostname 為一個像 ccsun1 或是 ccsun1.cc.nctu.edu.tw 的 name address,
ip-address 則為一個由四個小於 255 的數字組成的 ip address ,如 ccsun1
的 ip-address 為 140.113.17.173 ,ccsun1.cc.nctu.edu.tw 的 ip-address
為 140.113.4.11 。你可以利用 telnet ccsun1 或 telnet 140.113.17.173 來
連到 ccsun1。
port 為一些特殊的程式所提供給外界的溝通點,如資工系的 MUD 其 server 便
提供一些 port 讓 user 由這些 port 進入 MUD 程式。詳情請參閱 telnet(1)
的說明。
3. ftp
ftp 的意義是 File Transfer Program ,是一個很常應用在網路檔案傳輸的
程式。ftp 的格式如下:
ftp [ hostname | ip-address ]
其中 hostname | ip-address 的意義跟 telnet 中的相同。
在進入 ftp 之後,如果與 remote host 連接上了,它將會詢問你 username
與密碼,如果輸入對了就可以開始進行檔案傳輸。
在 ftp 中有許多的命令,詳細的使用方式請參考 ftp(1) ,這裡僅列出較常
用的 cd , lcd , mkdir , put , mput , get , mget , binary , ascii ,
prompt , help 與 quit 的使用方式。
ascii 將傳輸模式設為 ascii 模式。通常用於傳送文字檔。
binary 將傳輸模式設為 binary 模式,通常用於傳送執行檔,壓縮檔與影像
檔等。
cd remote-directory 將 remote host 上的工作目錄改變。
lcd [ directory ] 更改 local host 的工作目錄。
ls [ remote-directory ] [ local-file ] 列出 remote host 上的檔案。
get remote-file [ local-file ] 取得遠方的檔案。
mget remote-files 可使用通用字元一次取得多個檔案。
put local-file [ remote-file] 將 local host 的檔案送到 remote host。
mput local-files 可使用通用字元一次將多個檔案放到 remote host 上。
help [ command ] 線上輔助指令。
mkdir directory-name 在 remote host 造一個目錄。
prompt 更改交談模式,若為 on 則在 mput 與 mget 時每作一個檔案之傳
輸時均會詢問。
quit/bye 離開ftp .
利用 ftp ,我們便可以在不同的機器上將所需要的資料做轉移,某些特別的
機器更存放大量的資料以供各地的使用者抓取,本校較著名的 ftp server
有 NCTUCCCA 與系上的 ftp.csie.nctu.edu.tw 。這些 ftp server 均有提
供一個 user 稱為 anonymous ,一般的"外來客"可以利用這個 username 取
得該 server 的公共資料。不過 anonymous 在詢問 password 時是要求使用
anonymous 的使用者輸入其 email address,以往有許多台灣的使用者在使用
國外的 ftp server 時並沒有按照人家的要求輸入其 email address,而僅是
隨便打一些字串,引起許多 internet user 和管理者的不滿,對台灣的使用
者的風評變得很差,因此遵循各 ftp server 的使用規則也是一件相當重要的事。
f. 關於通訊用的指令:
1. write
這個指令是提供使用者傳送訊息給另一個使用者,使用方式:
write username [tty]
2. talk/ytalk/cytalk/ctalk
UNIX 專用的交談程式。會將螢幕分隔開為你的區域和交談對象的區域,
同時也可和不同機器的使用者交談。使用方式:
talk username[@host] [tty]
3. mesg
選擇是否接受他人的 messege , 若為 messege no 則他人的 messege 將無法
傳送給你,同時他也無法干擾你的工作。使用方法:
mesg [-n|-y]
4. mail/elm
在網路上的 email 程式,可經由此程式將信件 mail 給他人。 使用方式:
mail [username]
mail -f mailboxfile
如有信件,則直接鍵入 mail 可以讀取你的 mail .
elm 提供較 mail 更為方便的介面,而且可做線上的 alias . 你可以進入 elm
使用上下左右鍵來選讀取的信件,並可按 h 取得線上的 help 文件。
使用方式:
elm [usernmae]
elm -f mailboxfile
g. 編譯器( Compiler ):
Compiler 的用處在於將你所撰寫的程式翻譯成一個可執行檔案。在資工系常
用的程式語言是 C , pascal , FORTRAN 等。你可以先寫好一個 C 或 Pascal
或 FORTRAN 的原始程式檔,再用這些 compiler 將其翻成可執行檔。你可以
用這個方法來製造你自己的特殊指令。
1. cc/gcc (C Compiler)
/usr/bin/cc
/usr/local/bin/gcc
語法: cc [ -o execfile ] source
gcc [ -o execfile ] source
execfile 是你所希望的執行檔的名稱,如果沒有加上 -o 選項編譯出來的可
執行檔會以 a.out 做為檔名。 source 為一個以 .c 做為結尾的 C 程式檔。
請參閱 cc(1) 的說明。
2. pc (Pascal Compiler)
/usr/local/bin/pc
語法: pc [ -o execfile ] source
execfile 是你所希望的執行檔的名稱,如果沒有加上 -o 選項編譯出來的可
執行檔會以 a.out 做為檔名。 source 為一個以 .p 做為結尾的 Pascal 程
式檔。 請參閱 /net/home5/lang/man 中 pc(1) 的說明。
3. f77 (Fortran Compiler)
/net/home5/lang/f77
語法: f77 [ -o execfile ] source
execfile 是你所希望的執行檔的名稱,如果沒有加上 -o 選項編譯出來的可
執行檔會以 a.out 做為檔名。 source 為一個以 .p 做為結尾的 FORTRAN 程
式檔。
h. 有關列印的指令:
以下為印表所會用到的指令,在本系的印表機有 lp1 , lp2 ( 點矩陣印表機 ),
lw , sp , ps , compaq ( 雷射印表機 ),供使用者使用。
1. lpr
lpr 為用來將一個檔案印至列表機的指令。
用法:
lpr -P[ printer ] file1 file2 file3 ....
或
lpr -P[ printer ] < file1
例子:
lpr -Plp1 hello.c hello.lst hello.map
lpr -Plp1 < hello.c
前者以參數輸入所要印出的檔案內容,後者列印標準輸入檔案( standard input )
的內容,因已將 hello.c 轉向到標準輸入,故會印出 hello.c 的檔案內容。
2. lpq
lpq 是用來觀察 printer queue 上的 Jobs 。
用法:
lpq -P[ printer ]
3. lprm
lprm 是用來取消列印要求的指令。 通常我們有時會印錯,或是誤送非文字檔
資料至 printer , 此時就必須利用 lprm 取消列印 request ,以免造成資源
的浪費。
用法:
lprm -P[ printer ] [ Jobs id | username ]
lprm 用來清除 printer queue 中的 Jobs , 如果你使用 Job Id 作為參數,則
它將此 Job 自printer queue 清除,如果你用 username作為參數,則它將此 queue
中所有 Owner 為此 username 的 Jobs 清除。
i. 更改個人使用資料:
1. passwd
passwd 是用來更改你的使用密碼,用法為:
passwd [ username ]
在使用 passwd 的時候,它會先問你的舊密碼,然後詢問兩次要更改的密碼,確定
無誤後才將你的密碼改掉。
2. chsh
chsh 是提供使用者更換 login shell 的指令,你可經由此更換自己使用的 shell 。
2009年3月13日 星期五
紀佳松 水潑落地難收回
最近腦子也常出現紀佳松的音樂 很好聽
只不過很奇怪 歌詞好像都被我改掉 哈哈
因為kkbox的關係
所以最近一直都有聽流行音樂
無意間發現這個創作歌手 老爸是台語歌壇音樂製作人 媽媽是詞曲創作人 很酷^^
大概是最近都在聽流行音樂
一別以往小時候的音樂創作(創作出來就算是可以唱的 也都是老歌派的 好像20年前會紅的那種)
現在好像也有idea創作pop music了 最好是要有rap的
嗯哼 很想嘗試看看
改天想從基隆帶我的吉他小黑過來
只不過主節奏不知道要怎麼弄(背景音樂的輕快打擊)
2009年3月9日 星期一
James Blunt
最近很喜歡聽James Blunt的歌
Back to Bedlum這張專輯幾乎每首歌我都覺得很好聽
有時候上課或者是唸書的時候
腦子不時浮現會他的音樂
怎麼可以這麼好聽
最近很喜歡很喜歡這首歌
Out of my mind(瘋了!)
Judging by the look on the organ-grinder
He'll judge me by the fact that my face don't fit
It's touching that the monkey sits on my shoulder
He's waiting for the day when he gets me
But I don't need no alibi - I'm a puppet on a string
I just need this stage to be seen
We all need a pantomime to remind us what is real
Hold my eye and know what it means
(Chorus) 'cause I'm out of my mind
Judging by the look on the organ-grinder
He'll judge me by the fact that my face don't fit
It's touching that the monkey sits on my shoulder
He's waiting for the day when he gets me
But I won't be your concubine - I'm a puppet not a whore
I just need this stage to be seen
Will you be a friend of mine to remind me what is real?
Hold my heart and see that it bleeds
(Chorus) 'cause I'm out of my mind
Back to Bedlum這張專輯幾乎每首歌我都覺得很好聽
有時候上課或者是唸書的時候
腦子不時浮現會他的音樂
怎麼可以這麼好聽
最近很喜歡很喜歡這首歌
Out of my mind(瘋了!)
Judging by the look on the organ-grinder
He'll judge me by the fact that my face don't fit
It's touching that the monkey sits on my shoulder
He's waiting for the day when he gets me
But I don't need no alibi - I'm a puppet on a string
I just need this stage to be seen
We all need a pantomime to remind us what is real
Hold my eye and know what it means
(Chorus) 'cause I'm out of my mind
Judging by the look on the organ-grinder
He'll judge me by the fact that my face don't fit
It's touching that the monkey sits on my shoulder
He's waiting for the day when he gets me
But I won't be your concubine - I'm a puppet not a whore
I just need this stage to be seen
Will you be a friend of mine to remind me what is real?
Hold my heart and see that it bleeds
(Chorus) 'cause I'm out of my mind
2009年3月6日 星期五
簡單SQL語法
1.資料庫
show databases -- 顯示所有的資料庫
use databasename -- 使用某資料庫
show tables (from databasename) -- 顯示某資料庫的所有表格名稱
2.表格
describe tablename -- 顯示某表格所有欄位資料設定
show columns from tablename -- 同上
3.查詢資料
select * from tablename -- 顯示某表格的所有資料與欄位
(*表示所有的欄位)
select columnnames from tablename -- 顯示某表格的某(些)欄位
(columnname間以","連接、順序有關)
select columnnames from tablename where columnname = ' '
-- 篩選條件、數學式之間可用and、or
select zone,area,zipcode from zip where zone = '雲林縣' or zone = '桃園縣'
select columnnames from tablename group by columnname
(select distinct columnname from tablename)
-- 相同的column只顯示一筆
select columnname , count(columnname) from tablename group by columnname
函式:
count(columnname)
Avg(columnname)
min(columnname)
max(columnname)
sum(columnname)
std(columnname)
stddev(columnname)
select columnname , count(columnname) as qoo from tablename group
by columnname having qoo >= 10
select zone , min(zipcode),max(zipcode),count(zone) as foo from zip group
by zone having foo >= 10
show databases -- 顯示所有的資料庫
use databasename -- 使用某資料庫
show tables (from databasename) -- 顯示某資料庫的所有表格名稱
2.表格
describe tablename -- 顯示某表格所有欄位資料設定
show columns from tablename -- 同上
3.查詢資料
select * from tablename -- 顯示某表格的所有資料與欄位
(*表示所有的欄位)
select columnnames from tablename -- 顯示某表格的某(些)欄位
(columnname間以","連接、順序有關)
select columnnames from tablename where columnname = ' '
-- 篩選條件、數學式之間可用and、or
select zone,area,zipcode from zip where zone = '雲林縣' or zone = '桃園縣'
select columnnames from tablename group by columnname
(select distinct columnname from tablename)
-- 相同的column只顯示一筆
select columnname , count(columnname) from tablename group by columnname
函式:
count(columnname)
Avg(columnname)
min(columnname)
max(columnname)
sum(columnname)
std(columnname)
stddev(columnname)
select columnname , count(columnname) as qoo from tablename group
by columnname having qoo >= 10
select zone , min(zipcode),max(zipcode),count(zone) as foo from zip group
by zone having foo >= 10
2009年3月5日 星期四
意義。
今天有朋友在MSN問了我一個問題
"你覺得你生活的意義是什麼"
其實這個問題很難回答
因為它沒有固定的公設
可以一步一步的推衍、證明出結論
也沒有所謂的標準答案
應該是因每個人不同的狀況而異的
不過這個問題後來讓我想到馬斯洛的五大需求理論
我認為人活著的意義是快樂
由低層次到高層次(人類的生活必須先滿足低層次的才有高層次的欲望)
分別是生理需求、安全需求、社交需求、尊重需求和自我實現
必須滿足所有層次的需求才會快樂
生理需求:
食物、空氣、水,這讓我想到Discovery荒野求生密技裡面的人,在高山、沙漠裡求生存,他們活著的意義就是生存-想辦法讓自己活下來。
安全需求:
人身安全、生活穩定以及免遭痛苦、威脅或疾病等的需求。
社交需求:
對友誼、愛情以及隸屬關係的需求。當生理需求和安全需求得到滿足後,社交需求就會突出出來。
人畢竟是群體動物,需要穩定合諧的人際關係。
尊重需求:
尊重需求既包括對成就或自我價值的個人感覺,也包括他人對自己的認可與尊重。
自我實現需求:
自我實現需求的目標是自我實現,或是發揮潛能。達到自我實現境界的人,接受自己也接受他人。解決問題能力增強,自覺性提高,善於獨立處事,要求不受打擾地獨處。要滿足這種盡量發揮自己才能的需求,他應該已在某個時刻部份地滿足了其它的需求。
(結論就是人類大多都是欲求不滿,吃不飽的時候想要吃飽,吃飽了之後想要安全沒有病痛,沒有病痛之後想要交朋友愛與被愛......也許在滿足了一切的時候,又會開始思考問題......)
那麼來說說我對活著意義是什麼吧?
顯然現在的我沒有食物及水的渴求,可以自由自在的呼吸,不用擔心野獸的侵擾,也沒有什麼嚴重的病痛,活的還挺不錯的。活著的目的是快樂,而我的快樂建立在自我實現的成就感上,其實有時候快樂也不用什麼追求,用心感受就可以快樂,漫步在校園、沐浴在圖書館、探索不完的學問、值得追根究底的疑問、藍天白雲檳榔樹、熱騰騰的牛肉麵、一個微笑、百聽不厭的音樂,不過大腦科學告訴我們一成不變的生活是不會感到快樂,所以偶爾也要做一些新鮮事,當然啦如果新鮮事每天都做就不新鮮了,大腦的神經迴路就沒辦法活化起來也就感受不到快樂。
也許在思考完生活的意義之後
也許有人可能還會有疑問為什麼要有這樣的意義
這樣的意義對我來說就像累了就想睡覺 肚子餓了就要吃東西一樣自然。
其實我認為這種探討意義的問題很重要,如果不知道自己何去何從,就像是個無頭蒼蠅盲目地奔走衝刺,所以我說"觀察"自己很重要,傾聽自己的聲音,問問自己想要的是什麼?
說起來是很簡單,其實很難,有人花了大半輩子想知道自己要的是什麼,探循、勇於嘗試了老半天還是只知道自己不要的是什麼,對於自己想要的東西一點頭緒也沒有。
其實,這種關於意義的定義東西顯然是因人而異的,沒有什麼好或壞,
時光旅人的作者活著的意義是研究廣義相對論和時空物理,也許有一天能發明時光機回到過去阻止已發生的悲劇,
詐騙集團的人的意義說不定建立在今天可以騙到幾個人,
或者一般大多數的人想要的是一個穩定的收入和合諧的家庭?
結論是意義這種東西既然是因人而異的
別人只能提供一個方向
真正尋找及做到的還是只有自己。
"你覺得你生活的意義是什麼"
其實這個問題很難回答
因為它沒有固定的公設
可以一步一步的推衍、證明出結論
也沒有所謂的標準答案
應該是因每個人不同的狀況而異的
不過這個問題後來讓我想到馬斯洛的五大需求理論
我認為人活著的意義是快樂
由低層次到高層次(人類的生活必須先滿足低層次的才有高層次的欲望)
分別是生理需求、安全需求、社交需求、尊重需求和自我實現
必須滿足所有層次的需求才會快樂
生理需求:
食物、空氣、水,這讓我想到Discovery荒野求生密技裡面的人,在高山、沙漠裡求生存,他們活著的意義就是生存-想辦法讓自己活下來。
安全需求:
人身安全、生活穩定以及免遭痛苦、威脅或疾病等的需求。
社交需求:
對友誼、愛情以及隸屬關係的需求。當生理需求和安全需求得到滿足後,社交需求就會突出出來。
人畢竟是群體動物,需要穩定合諧的人際關係。
尊重需求:
尊重需求既包括對成就或自我價值的個人感覺,也包括他人對自己的認可與尊重。
自我實現需求:
自我實現需求的目標是自我實現,或是發揮潛能。達到自我實現境界的人,接受自己也接受他人。解決問題能力增強,自覺性提高,善於獨立處事,要求不受打擾地獨處。要滿足這種盡量發揮自己才能的需求,他應該已在某個時刻部份地滿足了其它的需求。
(結論就是人類大多都是欲求不滿,吃不飽的時候想要吃飽,吃飽了之後想要安全沒有病痛,沒有病痛之後想要交朋友愛與被愛......也許在滿足了一切的時候,又會開始思考問題......)
那麼來說說我對活著意義是什麼吧?
顯然現在的我沒有食物及水的渴求,可以自由自在的呼吸,不用擔心野獸的侵擾,也沒有什麼嚴重的病痛,活的還挺不錯的。活著的目的是快樂,而我的快樂建立在自我實現的成就感上,其實有時候快樂也不用什麼追求,用心感受就可以快樂,漫步在校園、沐浴在圖書館、探索不完的學問、值得追根究底的疑問、藍天白雲檳榔樹、熱騰騰的牛肉麵、一個微笑、百聽不厭的音樂,不過大腦科學告訴我們一成不變的生活是不會感到快樂,所以偶爾也要做一些新鮮事,當然啦如果新鮮事每天都做就不新鮮了,大腦的神經迴路就沒辦法活化起來也就感受不到快樂。
也許在思考完生活的意義之後
也許有人可能還會有疑問為什麼要有這樣的意義
這樣的意義對我來說就像累了就想睡覺 肚子餓了就要吃東西一樣自然。
其實我認為這種探討意義的問題很重要,如果不知道自己何去何從,就像是個無頭蒼蠅盲目地奔走衝刺,所以我說"觀察"自己很重要,傾聽自己的聲音,問問自己想要的是什麼?
說起來是很簡單,其實很難,有人花了大半輩子想知道自己要的是什麼,探循、勇於嘗試了老半天還是只知道自己不要的是什麼,對於自己想要的東西一點頭緒也沒有。
其實,這種關於意義的定義東西顯然是因人而異的,沒有什麼好或壞,
時光旅人的作者活著的意義是研究廣義相對論和時空物理,也許有一天能發明時光機回到過去阻止已發生的悲劇,
詐騙集團的人的意義說不定建立在今天可以騙到幾個人,
或者一般大多數的人想要的是一個穩定的收入和合諧的家庭?
結論是意義這種東西既然是因人而異的
別人只能提供一個方向
真正尋找及做到的還是只有自己。
2009年3月3日 星期二
腦與學習上課心得(1)
這學期修了幾乎可說是我的偶像的洪蘭老師的大腦科學通識課
我看過幾乎她所有翻譯的書 不過本人長的和我想的不太一樣喔哈哈
上課講授的內容知識其實在我很久以前就在那些書裡面看過了
果然阿 有背景知識再來聽課印象格外的深刻
課程作業要求我們整個學期必須交八篇學習心得(看來我肯定會交超過八篇,說不定又像史傳文學課一樣我的學習札記又得什麼優良通識講之類的(有錢可以拿哈哈))
反正趁好也可以整理自己對這方面的知識 何樂而不為呢^^
這個禮拜洪蘭老師在課堂上介紹了許多大腦科學的常識,破除了我們許多由於無知所造成的迷思與誤解,其一是關於前幾年再台灣引起一陣流行的「右腦革命」、「右腦創意」,市面上處處充斥著此類書籍,甚至還有企業開啟了類似課程,這些由日本人帶進來的「胡說」其實一點根據也沒有,什麼「遮住左眼就能訓練右腦」此類書籍顯然就是欺騙普羅大眾的無知,騙取百姓的冤枉錢,為什麼說是胡說是因為人的左右腦除了癲癇患者因為病情(因為其腦袋會胡亂放電)才需要剪斷連接左右腦的胼胝體,正常人兩邊的大腦都是互相連接起來的,日本人斷章取義了某些實驗,還讓這種錯誤的知識普遍洗腦大眾,實在很不應該。其二是前幾年在台灣引起風波的一本日本人所寫的書籍「小心電玩腦」,所謂的打電動會使得腦袋變的像老人一樣,此說法完全沒有根據,洪蘭老師說她曾經向書商建議過不要出版這本荒謬可笑完全沒根據的書籍,但商人認為這反而是可以大噱一筆的機會還是出版了,真是一點良心也沒有耶,利用人類的恐懼來賺取不義之財,這兩個故事告訴我們有市面上其實有很多未經科學證實的又流行的胡說(有那種越是要花錢的越有可能是胡說),身為一個知識分子更需要有破除迷思的判斷力,甚至是扛起破除普羅大眾盲信的責任。其他諸如胎教、莫札特效應的迷信,也實在荒謬,我們應該把這樣的常識推廣給大眾,別讓台灣成為一個「迷信之島」。
另外老師也提到了閱讀的重要,有限的生命如何能吸取無限的知識,靠閱讀就可以。然後最重要的好處在於,實驗發現大腦在看一個字就能激發所有訊息,而創造力和閱讀是同樣一個神經機制,多閱讀就能刺激神經迴路的活化,進而能增進創造力。老師還用投影片現場做了個實驗,有背景知識的學習效果比完全沒有任何背景知識的效果好了好幾倍,多閱讀就能增進自己的背景知識,刺激神經迴路的新連結。
印象很深刻的還有關於種族歧視的正子斷層掃描後的大腦圖,老師還提到了他兒子的親身實例,他的兒子也是靠著有同理心的閱讀(好像是兩本書,一本叫做奴隸傳喔?)改變了對黑人的歧視態度,很多東西被動地被宣導觀念、接受不如主動的閱讀、學習來的有效。
我看過幾乎她所有翻譯的書 不過本人長的和我想的不太一樣喔哈哈
上課講授的內容知識其實在我很久以前就在那些書裡面看過了
果然阿 有背景知識再來聽課印象格外的深刻
課程作業要求我們整個學期必須交八篇學習心得(看來我肯定會交超過八篇,說不定又像史傳文學課一樣我的學習札記又得什麼優良通識講之類的(有錢可以拿哈哈))
反正趁好也可以整理自己對這方面的知識 何樂而不為呢^^
這個禮拜洪蘭老師在課堂上介紹了許多大腦科學的常識,破除了我們許多由於無知所造成的迷思與誤解,其一是關於前幾年再台灣引起一陣流行的「右腦革命」、「右腦創意」,市面上處處充斥著此類書籍,甚至還有企業開啟了類似課程,這些由日本人帶進來的「胡說」其實一點根據也沒有,什麼「遮住左眼就能訓練右腦」此類書籍顯然就是欺騙普羅大眾的無知,騙取百姓的冤枉錢,為什麼說是胡說是因為人的左右腦除了癲癇患者因為病情(因為其腦袋會胡亂放電)才需要剪斷連接左右腦的胼胝體,正常人兩邊的大腦都是互相連接起來的,日本人斷章取義了某些實驗,還讓這種錯誤的知識普遍洗腦大眾,實在很不應該。其二是前幾年在台灣引起風波的一本日本人所寫的書籍「小心電玩腦」,所謂的打電動會使得腦袋變的像老人一樣,此說法完全沒有根據,洪蘭老師說她曾經向書商建議過不要出版這本荒謬可笑完全沒根據的書籍,但商人認為這反而是可以大噱一筆的機會還是出版了,真是一點良心也沒有耶,利用人類的恐懼來賺取不義之財,這兩個故事告訴我們有市面上其實有很多未經科學證實的又流行的胡說(有那種越是要花錢的越有可能是胡說),身為一個知識分子更需要有破除迷思的判斷力,甚至是扛起破除普羅大眾盲信的責任。其他諸如胎教、莫札特效應的迷信,也實在荒謬,我們應該把這樣的常識推廣給大眾,別讓台灣成為一個「迷信之島」。
另外老師也提到了閱讀的重要,有限的生命如何能吸取無限的知識,靠閱讀就可以。然後最重要的好處在於,實驗發現大腦在看一個字就能激發所有訊息,而創造力和閱讀是同樣一個神經機制,多閱讀就能刺激神經迴路的活化,進而能增進創造力。老師還用投影片現場做了個實驗,有背景知識的學習效果比完全沒有任何背景知識的效果好了好幾倍,多閱讀就能增進自己的背景知識,刺激神經迴路的新連結。
印象很深刻的還有關於種族歧視的正子斷層掃描後的大腦圖,老師還提到了他兒子的親身實例,他的兒子也是靠著有同理心的閱讀(好像是兩本書,一本叫做奴隸傳喔?)改變了對黑人的歧視態度,很多東西被動地被宣導觀念、接受不如主動的閱讀、學習來的有效。
訂閱:
文章 (Atom)
