※ 引述《[email protected] (TaiwanHacker)》之銘言:
: ==> 在 [email protected] (nuuts) 的文章中提到:
: > 小弟寫了一個程式 a.c
: > int main(void)
: > {
: > printf("Hello");
: > }
: > 之後用 gcc -o a a.c
: > 然後,打 a
: > 可是卻出現 bash: a: command not found
: > 請問為何會這樣呢?
: > 謝謝 by nuuts
: try ./a
請問 為何什麼要加 ./ 呢?
這代表什麼意思 呢?
--
※ Origin: 臺大電機 Maxwell 站 ◆ From: h8.s245.ts.hinet.net
> -------------------------------------------------------------------------- <
發信人: [email protected] (小州), 看板: Linux
標 題: Re: GCC 編譯後的檔案可以直接執行嗎?
發信站: CynixBBS. (Wed Dec 29 11:15:14 1999)
轉信站: Ptt!bbs.ee.ntu!news.ntu!spring!netnews.hinet.net!Cynix
※ 引述《[email protected] (nuuts)》之銘言:
> : try ./a
> 請問 為何什麼要加 ./ 呢?
> 這代表什麼意思 呢?
./a ,就是執行目前工作目錄下的 a 檔案。
要加上 ./ 執行 a 這個檔案,那是因為 a 這個執行檔所在路徑沒有在
PATH 環境變數設定。而當使用者於命令列輸入執行某個檔案時,系統
只會尋找 PATH 環境變數內設定的路徑內是否有 a 這個檔案;若是有的話
便會執行之,找不到會出現 command not found 的訊息。
要注意是,系統並沒有會執行目前工作目錄下執行檔的這個特性。所以要
執行目前工作目錄的檔案,就是使用 ./xxxx 的方式來執行它。
還有就是,若是要可以主動執行目前工作目錄的執行檔案,可以在自己
home 目錄下的 .bash_profile (shell 為 bash 的使用者) 加入一行:
export PATH=$PATH:. 就可以了。
--
相信一種真誠存在於心與心之間...
--
※ Origin: 碩誠資訊 <bbs.cynix.com.tw>
◆ From: dns.cynix.com.tw
> -------------------------------------------------------------------------- <
發信人: [email protected] (用不盡的是緣份...), 看板: Linux
標 題: Re: GCC 編譯後的檔案可以直接執行嗎?
發信站: PHP .. :p (Wed Dec 29 18:23:28 1999)
轉信站: Ptt!bbs.ee.ntu!freebsd.ntu!news.cs.nthu!PigHeadPark
※ 引述《"網中人" <[email protected]>, 信區: Linux》之銘言:
[deleted]
: 不過﹗現在的Linux 都不建議您將當前目錄路徑(即“.”) 放進PATH中﹐據說是基於安
: 全理由。別問我是什麼安全理由﹐我也是混飯吃而已﹐知其然不知其所以然啦。
不建議將 "." 設入PATH之中是為了避免不小心執行到
所謂"特洛依木馬"之類的程式。
例如: 有居心叵測人士在某目錄底下放了一個名叫"ls"的破壞程式,
萬一將"."加在 PATH 之中便有可能讓此程式在下 ls 指令的
時候被執行。
--
一個人獨行的時候,也許更能體會些甚麼吧~ fm.
--
^..^ 噗~ 豬頭紀公園 Pig Head Park (:8)
( oo ) ╯ php.twbbs.org (140.114.230.3)
W W .. From: sun6.cc.ntnu.edu.tw
> -------------------------------------------------------------------------- <
發信人: [email protected] (我愛linux), 看板: Linux
標 題: Re: GCC 編譯後的檔案可以直接執行嗎?
發信站: 陽光沙灘 (Thu Jan 6 17:07:58 2000)
轉信站: Ptt!news.ntu!sob
※ 引述《[email protected] (小州)》之銘言:
: ※ 引述《[email protected] (nuuts)》之銘言:
: > 請問 為何什麼要加 ./ 呢?
: > 這代表什麼意思 呢?
: ./a ,就是執行目前工作目錄下的 a 檔案。
: 要加上 ./ 執行 a 這個檔案,那是因為 a 這個執行檔所在路徑沒有在
: PATH 環境變數設定。而當使用者於命令列輸入執行某個檔案時,系統
: 只會尋找 PATH 環境變數內設定的路徑內是否有 a 這個檔案;若是有的話
: 便會執行之,找不到會出現 command not found 的訊息。
: 要注意是,系統並沒有會執行目前工作目錄下執行檔的這個特性。所以要
: 執行目前工作目錄的檔案,就是使用 ./xxxx 的方式來執行它。
: 還有就是,若是要可以主動執行目前工作目錄的執行檔案,可以在自己
: home 目錄下的 .bash_profile (shell 為 bash 的使用者) 加入一行:
: export PATH=$PATH:. 就可以了。
請問一下...如果自己的shell不是bash的話要怎麼辦...
那又要如何更改自己的shell呢?
thanks,
--
/\█/\ Origin:
// █ \ 陽 光 沙 灘
█ (sob.m7.ntu.edu.tw)
> -------------------------------------------------------------------------- <
發信人: [email protected] (波波逸思), 看板: Linux
標 題: Re: GCC 編譯後的檔案可以直接執行嗎?
發信站: 清華資訊(楓橋驛站) (Thu Jan 6 17:20:46 2000)
轉信站: Ptt!news.ntu!freebsd.ntu!news.cs.nthu!maple
※ 引述《[email protected] (我愛linux)》之銘言:
> ※ 引述《[email protected] (小州)》之銘言:
> : ./a ,就是執行目前工作目錄下的 a 檔案。
> : 要加上 ./ 執行 a 這個檔案,那是因為 a 這個執行檔所在路徑沒有在
> : PATH 環境變數設定。而當使用者於命令列輸入執行某個檔案時,系統
> : 只會尋找 PATH 環境變數內設定的路徑內是否有 a 這個檔案;若是有的話
> : 便會執行之,找不到會出現 command not found 的訊息。
> : 要注意是,系統並沒有會執行目前工作目錄下執行檔的這個特性。所以要
> : 執行目前工作目錄的檔案,就是使用 ./xxxx 的方式來執行它。
> : 還有就是,若是要可以主動執行目前工作目錄的執行檔案,可以在自己
> : home 目錄下的 .bash_profile (shell 為 bash 的使用者) 加入一行:
> : export PATH=$PATH:. 就可以了。
> 請問一下...如果自己的shell不是bash的話要怎麼辦...
> 那又要如何更改自己的shell呢?
> thanks,
使用 chsh 指令.
再將你所要改的 shell 的絕對路徑打進去.
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: aipc4.cs.nthu.edu.tw
> -------------------------------------------------------------------------- <
發信人: [email protected] (小州), 看板: Linux
標 題: Re: GCC 編譯後的檔案可以直接執行嗎?
發信站: CynixBBS. (Thu Jan 6 17:48:51 2000)
轉信站: Ptt!news.ntu!spring!netnews.hinet.net!Cynix
※ 引述《[email protected] (我愛linux)》之銘言:
> : 還有就是,若是要可以主動執行目前工作目錄的執行檔案,可以在自己
> : home 目錄下的 .bash_profile (shell 為 bash 的使用者) 加入一行:
> : export PATH=$PATH:. 就可以了。
> 請問一下...如果自己的shell不是bash的話要怎麼辦...
> 那又要如何更改自己的shell呢?
> thanks,
你可以使用 chsh 這個程式變更你所要使用的 shell 程式。
若是你使用的是 csh/tcsh 程式的話,可以使用:
setenv PATH ${PATH}:.
這個敘述可以加入到 ~/.cshrc 檔案內就可以了 :)
--
相信一種真誠存在於心與心之間...
--
※ Origin: 碩誠資訊 <bbs.cynix.com.tw>
◆ From: kenduest.cynix.com.tw