首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux程序是怎样执行

image.png 如何启动程序 双击(windows系统),或者在shell终端上执行..../a.out 在shell终端上运行可执行程序标准流程: 启动终端仿真器应用程序 输入可执行文件所在相对路径或者绝对路径 如果该可执行程序需要输入参数的话,还需要输入参数 比如,我们在终端上输入...在主函数执行之前,主要做了以下准备工作: 检查并尝试打开/dev/tty 检查shell是否在调试模式运行 分析命令行参数 读取shell环境 加载.bashrc、.profile和其他配置文件等。...他需要对作为操作参数传入具体命令结构value成员进行分析,并针对不同value类型,再调用具体类型命令执行函数进行具体命令解释执行工作。...elf_phdata) goto out; 程序解释器指定在可执行文件.interp部分(在大多数情况,对于x86_64,链接器为– /lib64/ld-linux-x86-64.so.2)

5K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux程序是如何被执行

    之前写过一篇文章 Linuxc语言中main函数是如何被调用,该篇文章侧重于从user space层面讲程序运行,而文章中提到有关kernel space层面的相关系统调用,比如fork、execve...将程序文件路径拷贝到堆栈中。 8. 将环境变量拷贝到堆栈中。 9. 将程序参数拷贝到堆栈中。 10. 调用exec_binprm方法继续执行程序。...linux执行文件格式一般为elf,所以我们直接看其load_binary方法: // fs/binfmt_elf.c static int load_elf_binary(struct linux_binprm...elf_entry指向代码 // 如果该程序有interpreter,则是执行interpreter中入口地址 // 如果没有,则是执行程序自己入口地址...好了,到这里,整个程序内核部分执行流程就讲完了,结合本文开始提到那篇文章 Linuxc语言中main函数是如何被调用,有关linux程序执行就全部讲清楚了。

    3.2K20

    Linux使用popen()执行shell命令

    简单说一popen()函数 函数定义 #include FILE * popen(const char *command , const char *type ); int pclose...(FILE *stream); 函数说明 popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行命令来开启一个进程。...pclose()函数关闭标准I/O流,等待命令执行结束,然后返回shell终止状态。如果shell不能被执行,则pclose()返回终止状态与shell已执行exit一样。   ...command参数是一个指向以NULL结束shell命令字符串指针。这行命令将被传到bin/sh并使用-c标志,shell将执行这个命令。   ...向这个流写内容相当于写入该命令标准输入,命令标准输出和调用popen()进程相同;与之相反,从流中读数据相当于读取命令标准输出,命令标准输入和调用popen()进程相同。

    2.5K20

    Linuxcrontab定时执行任务命令详解

    crontab命令主要用于设置周期性被执行指令,今天小编将给大家详细讲解Linuxcrontab定时执行任务命令,有兴趣伙伴可以阅读文章了解!   ...前言:   在Linux中,周期执行任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。...Linuxcrontab定时执行任务命令详解:   一、cron服务   cron是一个linux 定时执行工具,可以在无需人工干预情况运行作业。   ...用户把需要执行命令序列放到crontab文件中以获得执行。   每个用户都可以有自己crontab文件。/var/spool/croncrontab文件不可以直接创建或者直接修改。...该文件中每行都包括六个域,其中前五个域是指定命令执行时间,最后一个域是要被执行命令。   每个域之间使用空格或者制表符分隔。

    2.9K30

    Linuxcrontab定时执行任务命令详解

    LINUX中,周期执行任务一般由cron这个守护进程来处理[ps -ef|grep cron]。 cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。...cron配置文件称为“crontab”,是“cron table”简写。 一、corn服务 cron是一个linux定时执行工具,可以在无需人工干预情况运行作业。...你可以将每天需要执行命令直接写到/etc/cron.daily即可,还不需要使用到crontab -e程式!...用户把需要执行命令序列放到crontab文件中以获得执行。 每个用户都可以有自己crontab文件。/var/spool/croncrontab文件不可以直接创建或者直接修改。...该crontab文件是通过crontab命令创建 在crontab文件中如何输入需要执行命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令执行时间,最后一个域是要被执行命令

    2.7K10

    Linuxcrontab定时执行任务命令详解

    # [Linuxcrontab定时执行任务命令详解](https://www.cnblogs.com/longjshz/p/5779215.html) 在LINUX中,周期执行任务一般由cron...**一、cron服务**   cron是一个linux 定时执行工具,可以在无需人工干预情况运行作业。   ...用户把需要执行命令序列放到crontab文件中以获得执行。 每个用户都可以有自己crontab文件。/var/spool/croncrontab文件不可以直接创建或者直接修改。...该crontab文件是通过crontab命令创建   在crontab文件中如何输入需要执行命令和时间。...该文件中每行都包括六个域,其中前五个域是指定命令执行时间,最后一个域是要被执行命令。 每个域之间使用空格或者制表符分隔。

    84710

    Linux使用SSH远程执行命令方法收集

    说明:可以做SSH免密登录之后执行,这样可以省去每次执行输入密码提示。...对于简单命令: 如果是简单执行几个命令,则: ssh user@remoteNode "cd /home ; ls" 基本能完成常用对于远程节点管理了,几个注意点: 双引号,必须有。...如果不加双引号,第二个ls命令在本地执行 分号,两个命令之间用分号隔开 多行命令可以输入双引号后回车,结尾使用双引号包裹 对于脚本方式: 有些远程执行命令内容较多,单一命令无法完成,考虑脚本方式实现...重定向目的在于不显示远程输出了 在结束前,加exit退出远程节点 执行本地脚本 我们在本地创建一个脚本文件test.sh,内容为: ls pwd echo $0 然后运行下面的命令: ssh root...helloworld 总结 以上所述是小编给大家介绍Linux使用SSH远程执行命令方法收集,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

    5K21

    Linux命令执行过程

    一.命令分类 Linux命令分为两类,具体为内部命令和外部命令 内部命令: 指shell内部集成命令,此类命令无需人为安装,开机后自动运行在内存中,命令help查看所有内部命令详情,如cd、type...外部命令: 指通过外部介质安装命令工具包,如通过yum、rpm等方式安装,具体安装路径在$PATH。...实例:echo即是内部命令又是外部命令,以echo为例实验证明其执行顺序 1.将/bin/echo 复制到/usr/local/bin/,用which -a查看echo路径($PATH中/usr/local...删除/usr/local/binecho,hash中任然存echo路径/usr/local/bin,再次使用echo “welcome to xi’an” 结论:执行hash中命令优先$PATH...4、ls程序执行后,会分析argc和argv,”-l”表示这是一个选项开关,表明用户想得到文件详细信息,并把这个开关量保存,以便最后输出时候选择信息格式。

    4.5K30

    Linux命令执行过程

    一.命令分类 Linux命令分为两类,具体为内部命令和外部命令 内部命令: 指shell内部集成命令,此类命令无需人为安装,开机后自动运行在内存中,命令help查看所有内部命令详情,如cd、type...外部命令: 指通过外部介质安装命令工具包,如通过yum、rpm等方式安装,具体安装路径在$PATH。...实例:echo即是内部命令又是外部命令,以echo为例实验证明其执行顺序 1.将/bin/echo 复制到/usr/local/bin/,用which -a查看echo路径($PATH中/usr/local...删除/usr/local/binecho,hash中任然存echo路径/usr/local/bin,再次使用echo “welcome to xi’an” 结论:执行hash中命令优先$PATH...4、ls程序执行后,会分析argc和argv,”-l”表示这是一个选项开关,表明用户想得到文件详细信息,并把这个开关量保存,以便最后输出时候选择信息格式。

    4.6K30

    查看linux执行命令记录_linuxhistory命令

    大家好,又见面了,我是你们朋友全栈君。...前言 我们每次敲打linux命令时候,有时候想用之前用过命令,一般情况,我们都会按↑↓箭头来寻找历史命令记录,那如果我想用1天前执行某条命令,难道还要按↑100次?...显示这样是不现实,我们可以使用history命令即可 实际过程中,history还是很有用 查看历史命令执行记录(history) history 查看命令tail 历史执行记录 history...| grep tail 执行历史记录中,序号为1000命令 执行上一条命令(直接输入两个感叹号) !!...tail -5 清除历史记录 history -c 将当前所有历史记录写入历史文件中,默认写入 ~/.bash_history history -w cat ~/.bash_history 发布者:全栈程序员栈长

    4.3K20

    Redis 命令执行过程()

    在上一篇文章中《Redis 命令执行过程(上)》中,我们首先了解 Redis 命令执行整体流程,然后细致分析了从 Redis 启动到建立 socket 连接,再到读取 socket 数据到输入缓冲区,...解析命令执行命令等过程原理和实现细节。...接下来,我们来具体看一 set 和 get 命令实现细节和如何将命令结果通过输出缓冲区和 socket 发送给 Redis 客户端。 ?...set 和 get 命令具体实现 前文讲到 processCommand 方法会从输入缓冲区中解析出对应 redisCommand,然后调用 call 方法执行解析出来 redisCommand...在所有的 redisCommand 执行最后,一般都会调用 addReply 方法进行结果返回,我们分析也来到了 Redis 命令执行返回数据阶段。

    96420

    Shell执行mysql 命令

    在shell开发中,很多时候我们需要操作mysql数据库(比如:查询数据、导出数据等),但是我们又无法进入mysql命令环境,就需要在shell环境中模拟mysql环境,使用mysql相关命令。...DEFAULT CHARSET=latin1 COMMENT='访问日志';   新建一个update_mysql.sh,内容如下: use chbdb;   source update.sql   然后执行如下命令...2.一旦中间出错,之后脚本就不会执行,例如: 如果第一张表已经存在,则会报出如下异常: ERROR 1050 (42S01) at line 1 in file: 'update.sql...方案4 准备一个sql脚本,如update.sql,然后执行如下命令: mysql -uroot -ppassword < update.sql   优点:支持复杂sql脚本 缺点: 一旦中间出错...,之后脚本就不会执行,例如: 如果第一张表已经存在,则会报出如下异常: ERROR 1050 (42S01) at line 1 in file: 'update.sql': Table '

    1.2K20

    Linux At 命令

    at是一个命令行工具,它允许你指定命令在指定时间运行。由at创建任务,仅仅会被执行一次。...一、安装At 取决于不同发行版,at在你 Linux 系统中可能有,也可能没有。 如果at没有被安装,你可以很容易地使用你发行版软件包来安装它。...,确认atd,这个守护程序正在运行,并且被设置成开机启动: sudo systemctl enable --now atd 二、如何使用at命令 at简单语法如下: at [OPTION...] runtime...at 09:00 -m 三、batch命令 batch或者它关联at -b预定任务并且在系统负载允许情况,批量执行任务。默认情况,当系统平均负载在1.5以下时候,任务将会被执行。...默认情况,仅仅/etc/at.deny文件存在,并且是空,这意味着所有用户可以使用at命令。如果你想禁止某一个用户权限,将他用户名添加到这个文件中。

    18.7K30

    如何在 Linux 使用 Progress 显示命令执行进度

    Linux 命令高效简洁,但同时很多命令进度显示不是很友好,比如:mv、cp、dd 等命令。...在没有进度显示情况,我们就无法判断是正在执行、还是执行缓慢,Progress 命令很好解决了这个问题。 Progress 进度查看器是一个简单程序,它可用于显示命令进度。...它使用来自文件描述符信息来确定命令进度。Progress 优点在于它可以与其他 Linux 命令一起使用,比如 watch。...单次显示 $ progress 持续显示 $ progress -M 2.2 显示指定命令执行进度 单次显示 $ progress -c ffmpeg 持续显示 $ progress -M -...你也可以连续使用多个 -c 同时监控多个命令执行进度。

    3.9K60

    linuxrar命令,Linux压缩解压命令「建议收藏」

    大家好,又见面了,我是你们朋友全栈君。 1....Linux zip命令 压缩 zip -r filename.zip ./* // 将当前目录下所有文件和文件夹全部压缩成 filename.zip文件 -r表示递归压缩子目录下所有文件...Linux tar命令 -c: 建立压缩档案 -x: 解压 -t: 查看内容 -j: 通过bzip2支持进行压缩/解压,此时文件最好为*.tar.bz2 -z: 通过gzip支持进行压缩/解压,此时文件最好为...Linux rar命令 要在Linux下处理.rar文件,需要安装RAR for Linux yum install rar 压缩 rar a filename * //将所有的文件压缩成一个rar.../test 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157509.html原文链接:https://javaforall.cn

    18.8K30
    领券