{eval=Array;=+count(Array);}
有一個(gè)叫PATH的環(huán)境變量了解一下,里面存放了搜索路徑,因?yàn)槟愕腶.out不在那些路徑里面所以需要自己指明具體路徑。
這里涉及到了一個(gè)環(huán)境變量的問題,想要直接打開a.out,你需要將a.out的目錄添加到環(huán)境變量里面。
linux中有個(gè)環(huán)境變量PATH,告訴系統(tǒng)要去哪些目錄查找可執(zhí)行程序。
比如我的debian服務(wù)器的環(huán)境變量是這樣的。
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
然后如果你想運(yùn)行/home/xstarwxb/demo/a.out程序,并且不想輸入這么長的路徑,或者進(jìn)入這個(gè)目錄后才執(zhí)行。則需要做如下操作
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系統(tǒng),.表示當(dāng)前目錄,./xxx.sh 表示當(dāng)前目錄下的腳本文件
當(dāng)輸入一個(gè)未指定路徑的命令時(shí),系統(tǒng)并不必然在當(dāng)前目錄下查找一個(gè)命令
系統(tǒng)到哪里找你輸入的命令呢?答案是PATH環(huán)境變量,如果這個(gè)環(huán)境變量里定義的所有路徑里都找不到你的命令那就無法執(zhí)行,哪怕該命令就在當(dāng)前目錄下
所以,要么將當(dāng)前目錄添加到環(huán)境變量PATH里,要么在輸入命令時(shí)指定該命令的路徑,比如當(dāng)前目錄就可以寫作./xxx.sh
windows下是會(huì)把當(dāng)前目錄也作為命令搜索路徑的
建議先學(xué)習(xí)操作系統(tǒng)的基本操作和參數(shù)設(shè)置,再學(xué)習(xí)在該操作系統(tǒng)上搞開發(fā),就如同一個(gè)嬰兒,應(yīng)該先學(xué)習(xí)站起來,掌握平衡,再學(xué)習(xí)直立行走和奔跑。
這是因?yàn)閁nix(Linux的原版)的設(shè)計(jì)初衷就是萬物皆文件。
Linux或Unix的可執(zhí)行程序不像Windows的程序要有特定的“.exe ”后綴和文件頭,它們就是一個(gè)普通文件,只是屬性中有可執(zhí)行的屬性。那對(duì)于你編寫的程序,編譯器缺省的輸出名就是a.out,你要執(zhí)行它就要輸入a.out。你認(rèn)為它執(zhí)行的過程和結(jié)果沒有問題后,就可以把它改成你想要的名字了,如ping之類。
至于打開程序要輸入./a.out,這只是部分版本的Linux所用的權(quán)限限制機(jī)制造成的,此版本的系統(tǒng)想要明確執(zhí)行人或父進(jìn)程是誰,所以需要你在執(zhí)行程序時(shí)要鍵入相對(duì)路徑。
而Ping這類系統(tǒng)程序的本身級(jí)別就高,不需要指定路徑就可以運(yùn)行了。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答