Linux 中,将程序编译后,通过命令行输入可执行
Linux 系统上运行程序是使用和管理该系统的核心技能之一,无论是开发软件、执行脚本,还是运行应用程序,掌握如何在 Linux 中启动和管理系统进程都是非常重要的,以下内容将详细介绍在 Linux 环境中运行程序的步骤和方法。
准备工作
-
确保系统已安装
需要确保你的计算机上已经安装了 Linux 操作系统,常见的 Linux 发行版包括 Ubuntu、Debian、Fedora、CentOS 等。
-
更新系统软件包
- 在运行新程序之前,最好先更新系统的软件包,以确保系统中的所有软件都是最新的,这可以通过包管理器来完成,在基于 Debian 的系统(如 Ubuntu)中,可以使用以下命令:
sudo apt update sudo apt upgrade
- 在基于 Red Hat 的系统(如 CentOS)中,则可以使用:
sudo yum update
- 在运行新程序之前,最好先更新系统的软件包,以确保系统中的所有软件都是最新的,这可以通过包管理器来完成,在基于 Debian 的系统(如 Ubuntu)中,可以使用以下命令:
-
安装必要的工具
根据你要运行的程序类型,可能需要安装一些额外的工具或库,如果你要运行一个用 Python 编写的程序,需要确保已经安装了 Python 解释器。
运行程序的基本方法
通过终端运行
大多数 Linux 程序都可以通过终端来运行,以下是几种常见的方法:
-
直接运行可执行文件
- 如果程序是一个编译后的可执行文件,并且当前用户有执行权限,可以直接通过 来运行。
./my_program
- 如果文件没有执行权限,需要先更改文件权限:
chmod +x my_program
- 如果程序是一个编译后的可执行文件,并且当前用户有执行权限,可以直接通过 来运行。
-
使用绝对路径或相对路径
- 如果程序不在当前目录,可以使用绝对路径或相对路径来指定程序的位置。
/usr/local/bin/my_program
或者
../bin/my_program
- 如果程序不在当前目录,可以使用绝对路径或相对路径来指定程序的位置。
-
通过环境变量 PATH
- 如果程序所在的目录已经包含在环境变量
PATH
中,可以直接输入程序名来运行。my_program
- 如果程序所在的目录已经包含在环境变量
运行脚本
-
Shell 脚本
- 如果要运行一个 Shell 脚本,需要确保脚本具有执行权限,并且第一行指定了解释器,一个简单的 Shell 脚本
script.sh
可能如下所示:#!/bin/bash echo "Hello, World!"
- 赋予执行权限后,可以通过以下命令运行:
chmod +x script.sh ./script.sh
- 如果要运行一个 Shell 脚本,需要确保脚本具有执行权限,并且第一行指定了解释器,一个简单的 Shell 脚本
-
Python 脚本
- 如果要运行一个 Python 脚本,需要确保系统中已安装 Python 解释器,假设脚本名为
script.py
,可以通过以下命令运行:python script.py
- 如果系统中同时安装了 Python 2 和 Python 3,可能需要使用
python3
来明确指定版本:python3 script.py
- 如果要运行一个 Python 脚本,需要确保系统中已安装 Python 解释器,假设脚本名为
后台运行程序
你可能希望将程序放在后台运行,以便继续使用终端,可以使用 &
符号来实现这一点。
./my_program &
这将启动程序并将其放入后台,你可以使用 jobs
命令查看后台运行的作业,并使用 fg %job_number
将其带回前台。
管理正在运行的程序
查看正在运行的程序
-
使用
ps
命令ps
命令用于显示当前正在运行的进程。ps aux
可以显示所有用户的进程列表。
-
使用
top
或htop
命令top
命令提供了一个动态的实时视图,显示系统资源使用情况和正在运行的进程。htop
是top
的一个增强版,提供了更友好的用户界面。
终止程序
-
使用
kill
命令- 如果需要终止一个正在运行的进程,可以使用
kill
命令,需要知道进程的 PID(进程标识符),可以通过ps
或top
命令获取,使用以下命令终止进程:kill PID
- 如果进程不响应,可以使用
-9
选项强制终止:kill -9 PID
- 如果需要终止一个正在运行的进程,可以使用
-
使用
pkill
或killall
命令pkill
允许你根据进程名终止进程,而killall
则会终止所有同名的进程。pkill my_program
或者
killall my_program
自动化运行程序
使用 Cron 作业
Cron 是 Linux 中的一个定时任务调度器,可以用来在指定的时间自动运行程序,要编辑 cron 作业,可以使用 crontab
命令:
crontab -e
这将打开当前用户的 crontab 文件,你可以在其中添加定时任务,以下行表示每天凌晨 2 点运行 /path/to/my_program
:
0 2 * * * /path/to/my_program
使用 Systemd 服务
Systemd 是现代 Linux 发行版中的系统和服务管理器,你可以创建一个 Systemd 服务单元文件来管理程序的启动和停止,创建一个简单的服务文件 /etc/systemd/system/my_program.service
:
[Unit] Description=My Program [Service] ExecStart=/path/to/my_program Restart=always [Install] WantedBy=multi-user.target
启用并启动服务:
sudo systemctl enable my_program.service sudo systemctl start my_program.service
常见问题与解决方案
权限问题
如果遇到权限不足的错误,可以尝试使用 sudo
提升权限。
sudo ./my_program
或者更改文件权限:
chmod +x my_program
找不到命令或文件
如果系统提示找不到命令或文件,可能是因为该命令或文件不在 PATH
环境变量中,可以通过以下方式解决:
- 提供绝对路径:
/usr/local/bin/my_program
- 将目录添加到
PATH
:export PATH=$PATH:/path/to/directory
相关问答 FAQs
Q1: 如何在 Linux 中查看当前正在运行的进程?
A1: 你可以使用 ps
命令来查看当前正在运行的进程。ps aux
会显示所有用户的进程列表。top
和 htop
命令也提供了实时的进程视图。
Q2: 如果我想在后台运行一个程序,但保持终端打开,应该怎么做?
A2: 你可以使用 &
符号将程序放入后台运行。
./my_program &
这样,程序会在后台运行,而你可以继续使用当前的终端会话,如果你想在后台运行程序并将输出重定向到文件,可以使用以下命令:
./my_program > output.
各位小伙伴们,我刚刚为大家分享了有关如何在linux运行程序的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/10517.html