十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
我们在Linux下运行程序的时候,一般都是这样的操作的,例如启动Tomcat:
创新互联公司专注于企业成都营销网站建设、网站重做改版、镇平网站定制设计、自适应品牌网站建设、H5响应式网站、商城网站定制开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为镇平等各大城市提供网站开发制作服务。
[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这个路径去掉之后,就无法直接在命令行中运行记事本了。
准确说,linux
不存在“用命令行登陆”的说法。
准确应该是从本地字符终端登陆。因为在登陆前,是没有命令行的,命令行是一个用户交互操作界面,在你还没有登陆的时候,是不存在“命令行”的。
至于如何切换到本地字符终端,图形状态下用
ctrl
+
alt
+
f1
到
f6
即可,一般
linux
的设计都是
1-6
是字符终端,7
是图形终端,部分发行版
f1
是字符终端,f2-f7
是字符终端。
你切换到这个终端里,就可以看到提示你输入用户名的提示了,输入用户名后回车就是输入密码。密码无回显,正确输入后回车即可,别因为没看到密码哪一行按了键盘没反应就觉得机器坏了。
要充分理解本文,必须具备Windows 环境下桌面应用程序的工作经验,我认为读者对如何使用 Linux 桌面有一个基本的了解。使用一个运行的 Linux 计算来机探讨本文的概念和示例是很有帮助的。
有时候第一次在 Linux 上运行一个应用程序需要一点额外工作。有些应用程序,比如服务器服务,可能无法安装为服务,因此您需要从命令行启动这些应用程序。对于启动这些应用程序的用户帐户而言,需要在应用程序文件中设置执行许可标志 (x)。
Linux 在内核空间或用户空间运行进程。用户空间 是操作系统的区域,应用程序通常在此运行。简单地说,每个用户帐户有其自己的用户空间,应用程序在这个领域内运行。
默认情况下,只有 root 用户有权访问内核空间。root 用户 是 Linux 中的超级用户,相当于 Windows 中的管理员帐户。在 root 用户帐户下运行应用程序可能会引起安全风险,是不可取的。
很多服务器服务需要 root 权限启动服务。然而,服务启动后,root 帐户通常会将其移至服务帐户。严格地说,Linux 中的服务帐户 才是标准的用户帐户。主要区别是服务帐户仅用于运行一个服务,而不是为任何实际登录的用户准备的。
您可以使用 chmod 命令在一个文件中设置执行权限。在 Linux 中,umask 设置通常用来防止下载的文件被执行,也有充分的理由相信,因为它有助于维护 Linux 计算机的安全性。
大多数 Linux 发行版具有一个值为 022 的 umask 设置,这意味着,默认情况下一个新文件权限设置为 644。权限的数字表示形式采用读 (4)、写 (2)、执行 (1) 的格式。因此,默认权限为 644 的应用程序下载意味着文件所有者有读写权限,而组用户和其他用户只有读权限。
例如,为每个人赋予一个文件的执行权限,使用 chmod a+x 命令。a 表示所有人,加号 (+) 表示添加,而 x 表示执行。同样地,如果应用程序是一个服务器服务,您应该确保只有授权帐户才有权执行此服务。
如果一个应用程序能够在标准用户帐户权限下运行,但只有特定组中的用户才需要使用它,您可以将该组所有者权限设置为可执行,然后将这些用户添加到该组中。
更具体地说,您可以在一个可执行文件中设置访问控制列表 (ACL) 权限,赋予特定用户或组权限来运行该应用程序。使用 setfacl 实用工具设置 ACL 权限。
对于这些需要以 root 用户启动进程的应用程序,比如服务器服务,您有几个选择。总结了允许用户执行需要 root 权限的服务器服务的各种选项。
作为 root 用户 不推荐用于服务器服务。当用户已经知道 root 密码而且应用程序泄露不是首要关注问题时,可用于应用程序。
SetUID 由于安全问题,不推荐使用。SetUID 允许标准用户以另一个用户方式,比如 root 用户,执行一个文件。
sudo 很常用,并且被认为是一个很好的实践。sudo 授予一个用户或组成员权限以执行可能额外需要 root 权限的文件。该用户不需要知道 root 密码。
带有文件权限的标准用户帐户 在一个文件上为用户所有者、组所有者或其他人(所有人)设置执行权限。这是授予那些不需要 root 权限来执行应用程序的用户的常用方法。
带有 ACL 权限的标准用户帐户 使用较少,但是如果您不想授予一个用户 sudo 访问或者更改文件的权限,这也是一个可行的解决方案。在一个文件上使用 setfacl 命令,您可以授予一个特定用户或用户组执行该文件的权力。
在管理 Linux 服务器时,从命令行运行应用程序是一项基本的任务。很多应用程序使用 shell 脚本(类似于 Windows 批处理文件 .bat)来启动应用程序并执行其他任务,比如设置变量以及为其他用户分配进程。例如,应用程序可能需要一个 Java™ Virtual Machine (JVM) 来执行。那样的话,shell 脚本可以设置适当的环境变量,然后执行 Java 命令来运行 Java Archive (JAR) 或类文件。这同样适用于使用 Perl、Python、甚至 C# 的应用程序。(当然,C# 编译的应用程序可以在 Linux 上运行)
从命令行或者 shell 提示符执行应用程序的一个常用方法是使用 ./ 命令。如果您在 Linux 中使用句号 (.) 和正斜杠 (/),就意味着告诉环境您想要以可执行文件运行该文件。例如,运行一个名为 myapp 的可执行文件,您可以使用 ./myapp 命令。同样地,您可以在文件名之前加上语言环境,比如:
sh php python perl java
但更多情况下,套装应用程序使用 shell 脚本,以 #! 符号设置环境变量提供该语言的运行时可执行路径,比如 #!/usr/bin/python。您也应该熟悉这种方法。
清单 1 使用 catalina.sh 默认脚本通过 ./ 方法启动 Apache Tomcat 应用程序服务器。然后,使用 sh 方法启动服务器。因为默认端口是 8080,标准用户不需要对其进行特别修改就可以启动该服务。
具体步骤如下:
1、首先我们在命令行运行程序需要借助jdk的环境依赖,打开jdk包。
2、接下来我们需要打开运行窗口,然后在运行窗口中输入cmd命令,如下图所示
3、在CMD命令行界面中我们输入cd命令进入到程序文件所在的目录,如下图所示
4、接下来执行命令对程序文件进行编译,如下图所示
5、编译完毕以后我们会在文件夹下面看到一个class文件,这个就是虚拟机编译完产生的文件,如下图所示
6、完成上述步骤后,即可在linux命令行中执行应用程序。
是这样的
首先要保证你安装的是正确的,接着保证你的这个可执行文件有当前登录账号的执行权限,可以用ls -al查看一下
如果,你可以使用如下方式执行:
1、./tlesp (如果后面又参数,你可以根据需要添加参数)
2、/home/path/tlsap (如果后面又参数,你可以根据需要添加参数)