{eval=Array;=+count(Array);}
這里涉及到了一個環境變量的問題,想要直接打開a.out,你需要將a.out的目錄添加到環境變量里面。
linux中有個環境變量PATH,告訴系統要去哪些目錄查找可執行程序。
比如我的debian服務器的環境變量是這樣的。
xstarwxb@nbdeb64:~/kmssvr$ echo $PATH
/home/xstarwxb/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
通過which命令可以查找到ping程序所在目錄
xstarwxb@nbdeb64:~/kmssvr$ which ping
/bin/ping
然后如果你想運行/home/xstarwxb/demo/a.out程序,并且不想輸入這么長的路徑,或者進入這個目錄后才執行。則需要做如下操作
xstarwxb@nbdeb64:~/kmssvr$ export PATH=$PATH:/home/xstarwxb/demo/
xstarwxb@nbdeb64:~/kmssvr$ echo $PATH
/home/xstarwxb/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/xstarwxb/demo/
xstarwxb@nbdeb64:~/kmssvr$ a.out
hello world
在linux系統,.表示當前目錄,./xxx.sh 表示當前目錄下的腳本文件
當輸入一個未指定路徑的命令時,系統并不必然在當前目錄下查找一個命令
系統到哪里找你輸入的命令呢?答案是PATH環境變量,如果這個環境變量里定義的所有路徑里都找不到你的命令那就無法執行,哪怕該命令就在當前目錄下
所以,要么將當前目錄添加到環境變量PATH里,要么在輸入命令時指定該命令的路徑,比如當前目錄就可以寫作./xxx.sh
windows下是會把當前目錄也作為命令搜索路徑的
建議先學習操作系統的基本操作和參數設置,再學習在該操作系統上搞開發,就如同一個嬰兒,應該先學習站起來,掌握平衡,再學習直立行走和奔跑。
這是因為Unix(Linux的原版)的設計初衷就是萬物皆文件。
Linux或Unix的可執行程序不像Windows的程序要有特定的“.exe ”后綴和文件頭,它們就是一個普通文件,只是屬性中有可執行的屬性。那對于你編寫的程序,編譯器缺省的輸出名就是a.out,你要執行它就要輸入a.out。你認為它執行的過程和結果沒有問題后,就可以把它改成你想要的名字了,如ping之類。
至于打開程序要輸入./a.out,這只是部分版本的Linux所用的權限限制機制造成的,此版本的系統想要明確執行人或父進程是誰,所以需要你在執行程序時要鍵入相對路徑。
而Ping這類系統程序的本身級別就高,不需要指定路徑就可以運行了。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答