如何理解Linux下使用“.”运行程序

如何理解Linux下使用“.”运行程序,第1张

我们在Linux下运行程序的时候,一般都是这样的 *** 作的,例如启动Tomcat:

[root@hostname bin]# ./catalina.sh run

我一直不理解这个“./”到底是什么意思,其实很好理解。

1.首先,我们看一下Windows在命令行里是怎么运行可执行程序的:

当前目录在D盘时,我运行C盘下的微信,需要指定完整的路径;当前目录就在微信的安装目录下时,我运行微信,直接指定exe可执行文件名就可以了。

搞懂了Windows怎么运行程序,Linux也是一样,说白了,都是直接敲文件名就能执行。

2.那Linux中的“.”到底是啥意思?为啥一定要敲一个“./”呢?

.和./就是表示当前目录。同Windows一样,Linux也是当前目录下没有可执行文件时,需要指定完整的路径;当前目录下有可执行文件时,直接指定可执行文件名就可以了。只不过Linux有点呆呆的,执行当前目录下的可执行文件时,必须要额外多敲一个"./",否则的话它自己不知道在当前目录下找这个可执行文件。

不加这个“./”,Linux就会从环境变量PATH中定义的路径中找可执行文件,只有加了这个“./”之后,Linux才会从当前目录中找可执行文件。

外延1:Windows和Linux中的command not found道理也是一样的,都是给定的路径不正确,导致找不到可运行文件。

Windows中直接运行微信如图:

Linux中直接运行Tomcat如图:

外延2:Windows中的PATH这个环境变量和Linux中的PATH作用是一样的

Windows中能直接运行记事本,就是因为环境变量PATH里设置了C:\Windows\System32这个路径

当把PATH里中的C:\Windows\System32这个路径去掉之后,就无法直接在命令行中运行记事本了。

运行()中间是你的命令

调用格式: 〈逻辑型〉 运行 (文本型 欲运行的命令行,逻辑型 是否等待程序运行完毕,[整数型 被运行程序窗口显示方式]) - 系统核心支持库->系统处理

英文名称:run

本命令运行指定的可执行文件或者外部命令。如果成功,返回真,否则返回假。本命令为初级命令。

参数<1>的名称为“欲运行的命令行”,类型为“文本型(text)”。

参数<2>的名称为“是否等待程序运行完毕”,类型为“逻辑型(bool)”,初始值为“假”。

参数<3>的名称为“被运行程序窗口显示方式”,类型为“整数型(int)”,可以被省略。参数值可以为以下常量之一:1、#隐藏窗口; 2、#普通激活; 3、#最小化激活; 4、#最大化激活; 5、#普通不激活; 6、#最小化不激活。如果省略本参数,默认为“普通激活”方式。

*** 作系统需求: Windows、Linux

我不太明白你说的是什么意思,Linux下的C编程一般是通过gcc实现的。\x0d\x0a例如,创建了一个hello.c文本,在文本中写入\x0d\x0a#include\x0d\x0aintmain(void)\x0d\x0a{\x0d\x0aprintf(“helloworld!!”)\x0d\x0areturn0\x0d\x0a}\x0d\x0a然后在终端输入\x0d\x0a$gcc_ohellohello.c\x0d\x0a$/tmp/hello\x0d\x0a注:hello.c文件放在/tmp目录下,通过gcc-ohellohello.c命令生成一个hello文件,它是一个可执行文件,然后直接执行,就可以运行该程序了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11494150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存