{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
回答