精華區beta Linux 關於我們 聯絡資訊
※ 引述《[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