linux 程序运行(Linux怎么学)
大家好,关于linux 程序运行很多朋友都还不太明白,今天小编就来为大家分享关于Linux怎么学的知识,希望对各位有所帮助!
linux命令行如何运行程序
要充分理解本文,必须具备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,标准用户不需要对其进行特别修改就可以启动该服务。
linux下如何运行可执行文件
1、打开kali linux的终端。创建一个文件并命名为dutest.c。在终端输入:touch test.c。
2、可以看到已经生成了一个后缀为test.c的源文件。然后用vim工具打开这个文件并编写代码。在终端中输入:vim test.c或者gvim test.c打开这个文件并编写代码。
3、编写完了这个代码。现在开始编译源文件。在终端中输入:gcc test.cgcc是linux自带的c语言编译器。如果是windows则要用ide工具来编译。linux系统一般写C语言用gcc+vim+gdb三个自带的工具就可以了。
4、打完gcc test.c编译完C源文件。然后就可以看见a.out的文件。一般linux系统就默认为a.out为编译完的文件。现在运行a.out文件。在a.out文件的目录下打开终端并输入./a.out就是运行文件了。
5、如果想要编译完的文件名不要用a.out文件。就可以在编译时打入.gcc test.c-o test.out然后就可以看见有一个test.out.文件了。-o后面跟着的编译生成的文件名。
6、再运行test.out在终端中输入./test.out结果如图。这样在linux系统下编译并运行C语言就完成了。
Linux 操作系统是什么
Linux也是众多操作系统之一,要想知道 Linux是什么,首先得说一说什么是操作系统。
计算机是一台机器,它按照用户的要求接收信息、存储数据、处理数据,然后再将处理结果输出(文字、图片、音频、视频等)。计算机由硬件和软件组成:
硬件是计算机赖以工作的实体,包括显示器、键盘、鼠标、硬盘、CPU、主板等;
软件会按照用户的要求协调整台计算机的工作,比如 Windows、Linux、Mac OS、Android等操作系统,以及 Office、QQ、迅雷、微信等应用程序。
操作系统(Operating System,OS)是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁(或者说接口、中间人、中介等)。
操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序,例如:
文件系统
提供计算机存储信息的结构,信息存储在文件中,文件主要存储在计算机的内部硬盘里,在目录的分层结构中组织文件。文件系统为操作系统提供了组织管理数据的方式。
设备驱动程序
提供连接计算机的每个硬件设备的接口,设备驱动器使程序能够写入设备,而不需要了解执行每个硬件的细节。简单来说,就是让你能吃到鸡蛋,但不用养一只鸡。
用户接口
操作系统需要为用户提供一种运行程序和访问文件系统的方法。如常用的 Windows图形界面,可以理解为一种用户与操作系统交互的方式;智能手机的 Android或 iOS系统,也是一种操作系统的交互方式。
系统服务程序
当计算机启动时,会自启动许多系统服务程序,执行安装文件系统、启动网络服务、运行预定任务等操作。打个比方,操作系统就好像是一个政府,其它软件都会被它管控;操作系统在给其他软件提供各种便利的同时,还会约束其他软件不能为所欲为。
目前流行的服务器和 PC端操作系统有 Linux、Windows、UNIX等,手机操作系统有 Android、iOS、Windows Phone(简称 WP),嵌入式操作系统有Windows CE、PalmOS、eCos、uClinux等。这套《Linux入门教程》主要讲解 Linux这种操作系统的应用,并不想过多涉及操作系统的类型和功能等理论性的知识,本节的目的是让读者明白,操作系统也是软件的一种,只不过它是位于硬件和应用程序之间的底层的软件,它除了会为应用程序保驾护航,还会“杀死”不听话的应用程序,具有双面性。以上对操作系统的认知虽然只是“皮毛”,但它足以让我们学习 Linux了。