注:
1、以下測試在ubuntu 9.10上進行,其他平台未測試。
2、這個只是我個人的理解,不一定完全正確
一、原因(先給出原因,後面再解釋為什麼)
不加 ./ 時shell要去 $path 環境變數下找命令是如何執行的,但是 $path 下並沒有該命令,所以無法執行;加上 ./ 後,告訴shell這個命令就在當前目錄下,你直接執行就行了,這樣命令就能執行了。
簡單解釋:shell命令執行時的環境變數預設是 $path ,即到 $path 下找命令該如何執行,shell常用的命令在 $path 都有,所以可以直接執行。使用者新建的檔案所在的路徑不在 $path 下,故直接用檔名來執行是無法執行的,必須加 ./ 表示命令就在當前目錄下,不要去 $path 中找,直接執行就行了。這裡再次說明了./ 表示的是當前目錄,而不是執行命令的意思。
二、解釋1(執行a.out檔案)
1、新建乙個hello.c檔案,內容如下圖所示,檢視該檔案顯示並無執行許可權,且root也沒有
2、使用gcc命令編譯該檔案,生成了 a.out檔案,該檔案有執行許可權,且三類使用者都有
3、使用 ./a.out 執行該檔案,成功執行,輸出結果正確
4、使用 a.out 執行該檔案,提示找不到命令,sudo a.out也提示找不到命令
5、使用命令:echo $path 顯示出當前環境變數中並無a.out 所在的路徑
6、新增a.out 所在的路徑到臨時環境變數:export path=$path:/home/book/test/ ,再次檢視path,確保新增成功
7、再次使用 a.out 執行該檔案,成功執行,輸出結果正確
8、到此,說明新增環境變數後,即使不加 ./ 也可以執行檔案
9、以上操作見下圖所示
三、解釋2(執行my.s**件,普通檔案,目錄)
不再詳述步驟,直接看下圖中的說明
2020-02-20 @北京 疫情依然嚴峻啊
Linux下後台執行程式
一 為什麼要使程式在後台執行 我們計算的程式都是週期很長的,通常要幾個小時甚至乙個星期。我們用的環境是用 putty 遠端連線到日本 linux 伺服器。所以使程式在後台跑有以下三個好處 1 我們這邊是否關機不影響日本那邊的程式執行。不會像以前那樣,我們這網路一斷開,或一關機,程式就斷掉或找不到資料...
Linux下執行程式tips
pspc上傳資料夾 c users admin pscp r c test jccheng home jccheng c users admin pscp r jccheng home jccheng test fill.out d result 後台執行程式 nohup matlab fill.o...
執行程式 Linux系統下執行c 程式
引言 為什麼要在linux下寫程式?分享資料報括 c c linux,nginx,zeromq,mysql,redis,fastdfs,mongodb,zk,流 cdn,p2p,k8s,docker,tcp ip,協程,dpdk等等。首先要問一下自己,為什麼要寫這個程式。如果我們寫乙個執行在wind...