【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十八章 Linux编写第一个自己的命令

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT、4G模块、CAN、RS485等接口一应俱全。H264、VP8视频硬编码,H.264、H.265、VP8、VP9视频硬解码,并提供相关历程,支持8路PDM接口、5路SAI接口、2路Speaker。系统支持Android9.0(支持获取root限)Linux4.14.78+Qt5.10.1、Yocto、Ubuntu20、Debian9系统。适用于智能充电桩,物联网,工业控制,医疗,智能交通等,可用于任何通用工业和物联网应用、

【公众号】迅为电子

【粉丝群】258811263(加群获取驱动文档+例程)


第十八章 Linux编写第一个自己的命令

本章内容对应视频讲解链接(在线观看):

Linux编写第一个自己的命令  https://www.bilibili.com/video/BV1M7411m7wT?p=18

18.1 命令的概念

命令就是可执行程序。

比如说我们输入 ls -al ,ls 就是可执行程序的名字。-al 就是要传递进去的参数。

ps 命令:

功能:显示进程的动态。

输入 “ps” 命令

当shell接收到我们的命令以后,会根据我们输入的字符到环境变量和默认路径中去找,环境变量上一章提过,可以通过打印查看都有哪些环境变量,然后它会去寻找有没有名字和我们输入命令一样的程序。

18.2 定义一个自己的命令

进入/home/topeet/test目录,把原来的都删掉,作者这里先创建一个 .c 文件,使用“touch commond.c ”命令,使用命令“vi commond.c ”打开文件,然后输入以下内容:

#include <stdio.h>

int main(void)

{

      printf(“This is my commod!\n”);

return 0;

}

接着使用命令“gcc commond.c -o commond ”,编译 commond.c文件,然后运行一下,使用“./commond ”命令,虽然我们现在可以执行这个可执行文件,但是我们现在的这个可执行程序只能在 /home/topeet/test 这个路径下输入,而且还要加上当前目录,如果我切换到上一级目录,就不能用“ ./commond ”来运行 commond ,因为当前目录下没有commond这个文件,我们直接输入命令“commond ”也不行,会提示错误。

我们上一章学了环境变量,环境变量里边 PATH 变量决定了我们的程序或者是命令都要去哪些路径下找,那我们可以把存放可执行程序的路径加到环境变量里面,那么在任意路径下输入 commond 这个命令,它就会自动找到 commond 这个可执行文件来帮助我们执行。

我们前面学到的根目录下的 bin 文件是专门存放可执行文件的,我们直接把生成的这个 commond 可执行性文件拷贝到根目录下 bin文件夹也是可以的。即用 cp 命令拷贝到 bin文件夹,作者输入 “cp commond /bin/ ”,提示没有权限,加上sudo ,然后直接输入“commond ”,可以看到打印 This is my commond! ,然后再返回上一级,这个路径下是没有commond这个程序的,我再输入“ commond ”,也是可以执行成功的,所以用这个方法是可以的。

我们不使用这个方法,我们把存放 commond 这个可执行文件的路径加到PATH这个变量里面去,先把刚才我们拷贝到 bin文件夹下的可执行文件把它删掉。

我们直接使用命令来添加,“export PATH=/home/topeet/test/:$PATH ”,添加环境变量的办法上一章已经讲到了,使用命令“echo $PATH ”来检查是否添加成功,现在就已经成功添加进去了,如下图所示。我们输入“ commond ”这个命令来测试,也能执行成功,然后我在换另一个目录,作者把它切换到 Videos 这个文件夹里面去,输入“ cd Videos”,然后在输入 commond ,同样也能执行成功,同时也验证了之前的说法,命令就是可执行文件

本章是把我们之前学到的进行一个串通。比如说环境变量的修改, gcc 的编译。同时我们也知道了平常使用的命令就是一个可执行程序,而且在键盘上输入了我们的命令之后,这个命令发给了 shell 。也就是如下图的这个 bash,是发送给它的,然后它会根据我们输入的这个字符串去环境变量里面去找,去看看有没有和我们的名字一样的程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/43757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python-找客户软件

软件功能 请求代码&#xff1a; 填充表格&#xff1a; 可以search全国各个区县的所有企业信息&#xff0c;过滤手机号、查看是否续存/在业状态。方便找客户。 支持定-制-其他引-留-阮*件&#xff08;XHSS&#xff0c;DYY&#xff0c;KS&#xff0c;Bi-li*Bi-li&#xff09; V*…

AutoHotKey自动热键(八)脚本快速暂停与重新加载

我们在编辑脚本的时候,可以添加快捷键来改变脚本的状态 ;暂停脚本 F11::Suspend;重置脚本 F12::Reloadreload用来重置脚本 我们可以在脚本开头加上标签提示脚本重启成功 ToolTip, 脚本已经重启 Sleep, 1000 ToolTip第二个ToolTip是用来关闭提示器用的 这个提示功能一定要写…

oracle dba常用脚本2

11、表空间实有、现有、使用情况查询对比 SELECT TABLESPACE_NAME 表空间,TO_CHAR(ROUND(BYTES / 1024, 2), 99990.00) || 实有,TO_CHAR(ROUND(FREE / 1024, 2), 99990.00) || G 现有,TO_CHAR(ROUND((BYTES - FREE) / 1024, 2), 99990.00) || G 使用,TO_CHAR(ROUND(10000 * US…

【开源合规】开源许可证风险场景详细解读

文章目录 前言关于BlackDuck许可证风险对比图弱互惠型许可证举个例子具体示例LGPL系列LGPL-2.0-onlyLGPL-2.0-or-laterLGPL-2.1-onlyLGPL-2.1-or-laterLGPL-3.0-onlyLGPL-3.0-or-laterMPL系列MPL-1.0MPL-1.1MPL-2.0EPL系列EPL-1.0EPL-2.0互惠型许可证GPL系列GPL-1.0GPL-2.0GPL-…

常用录屏软件,分享这四款宝藏软件!

在数字化时代&#xff0c;录屏软件已经成为我们日常工作、学习和娱乐中不可或缺的工具。无论你是需要录制教学视频、游戏过程&#xff0c;还是进行产品演示&#xff0c;一款高效、易用的录屏软件都能让你的工作事半功倍。今天&#xff0c;就为大家揭秘四款宝藏级录屏软件&#…

重磅|九科信息完成诺辉领投的B1轮融资,累计融资已达亿级

近日&#xff0c;九科信息宣布B1轮融资顺利完成。本轮由深圳诺辉岭南投资管理有限公司领投&#xff0c;深创投索斯福&#xff08;深圳&#xff09;私募创业投资基金跟投。 截至本轮&#xff0c;九科信息累计融资达亿级。但真正让九科人骄傲的&#xff0c;并非融资本身&#xff…

无法找到模块“@wangeditor/editor-for-vue”的声明文件

vue3项目中使用wangeditor/editor遇到的问题 开发环境不管红线报错正常使用 打包的时候就会报错了 1.安装依赖 pnpm install --save wangeditor/editor wangeditor/editor-for-vuenext 2.遇到的问题 3.解决方法 在src目录下面创建 wangeditor-types.d.ts 文件 代码如下 de…

The First项目报告:创新型金融生态Lista DAO

一、Lista DAO是什么&#xff1f; LISTA是Lista DAO的原生加密协议代币&#xff0c;设计为一种可互操作的实用代币&#xff0c;旨在促进去中心化金融&#xff08;DeFi&#xff09;领域内的支付、治理与激励。LISTA的诞生源于Lista DAO项目&#xff0c;该项目是一个基于BNB链的…

springboot3 集成GraalVM

目录 安装GraalVM 配置环境变量 Pom.xml 配置 build包 测试 安装GraalVM Download GraalVM 版本和JDK需要自己选择 配置环境变量 Jave_home 和 path 设置setting.xml <profile><id>graalvm-ce-dev</id><repositories><repository><id&…

2024最新版pycharm安装激火教程,附安装包+激huo马,Python教程,pycharm安装包!!

PyCharm的安装 PyCharm 是一个专门为 Python 开发者设计的 IDE&#xff0c;它同样具有代码导航、重构、调试和分析等功能。PyCharm 支持多种项目类型&#xff0c;如普通项目、Python 测试项目、Django 项目等&#xff0c;并提供了大量的内置模板和插件&#xff0c;以帮助您更快…

elementui实现复杂表单的实践

简介 文章主要讲述在vue3项目中使用elementui框架实现复杂表单的方式。表单中涉及动态组件的生成、文件上传和富文本编辑器的使用&#xff0c;只会将在实现过程中较复杂的部分进行分享&#xff0c;然后提供一份完整的前端代码。 表单效果演示 基础信息 spu属性 sku详情 关键…

融合CDN是什么?为什么需要融合CDN?其应用方法与原理是什么?

你了解融合CDN是什么吗&#xff1f;为什么需要融合CDN&#xff1f;你可能有听过融合CDN&#xff0c;但你知道它的应用方法与原理吗&#xff1f;本文将带你一次了解什么是融合CDN&#xff0c;详细介绍融合CDN的应用方法与运用原理&#xff0c;立刻替您解开心中疑惑&#xff01; …

[微信小程序知识点]自定义组件-拓展-外部样式类

使用组件时&#xff0c;组件使用者可以给组件传入css类名&#xff0c;通过传入的类名修改组件的样式 。 如果需要使用外部样式类修改组件的样式&#xff0c;在Component中需要用extemalClassess定义若干个外部样式类。 具体用法如下: (1)在Components文件里创建custom06组件 (…

免费SSL证书申请指南

申请免费SSL证书的步骤相对直接&#xff0c;以下是基于当前可用信息的简明指南&#xff0c;特别是针对一些热门的免费SSL证书提供商&#xff0c;下面以JoySSL证书商为例&#xff1a; 1、注册账号 打开JoySSL官网&#xff0c;注册并填写邀请码230920&#xff0c;获取免费证书与…

浅谈三车平台车型对比功能实用奖-竞品分析

目录&#xff1a; 一、项目背景 二、竞品概述 三、竞品目标功能对比 3.1、车型对比入口位置 3.2、车型对比首页 3.3、添加/删除车型功能 3.4、选择车型后功能对比 3.5、配置对比的功能 四、总结 一、项目背景 在汽车购买过程中&#xff0c;消费者经常面临着选择困难&…

六、数据可视化—Echars(爬虫及数据可视化)

六、数据可视化—Echars&#xff08;爬虫及数据可视化&#xff09; Echarts应用 Echarts Echarts官网&#xff0c;很多图表等都是我们可以 https://echarts.apache.org/zh/index.html 是百度自己做的图表&#xff0c;后来用的人越来越多&#xff0c;捐给了orange组织&#xf…

企业如何挑选策划公司,这些标准你了解吗?

诚然&#xff0c;在这个竞争激烈的市场环境下&#xff0c;企业有时候就像是站在十字路口的旅人&#xff0c;面前摆着的是一条条花钱却未必能看见收益的道路。 这时候&#xff0c;找一家对的策划公司就很重要&#xff0c;这里分享一点个人多年经验&#xff0c;希望对你有所帮助…

【精简教程】VSCode 连接 Remix

初始化 Node.js 项目 yarn init v1.22.19安装 Remix yarn add remix-project/remixd -g⚠️ 此时如果直接敲 remix&#xff0c;显示找不到这个命令。 使用 Node.js 来直接执行 remixd.js 文件 node node_modules\remix-project\remixd\src\bin\remixd.js&#x1f604; 连接上了…

安全极客团队荣获首届“矩阵杯”网络安全大赛人工智能挑战赛“三等奖”

近日&#xff0c;东半球规格高、规模大且奖金丰厚的网络安全顶级赛事——首届“矩阵杯”网络安全大赛在青岛国际会议中心圆满落幕。本次大赛设置了五大赛事&#xff0c;包括通用产品漏挖赛、国产软硬件安全检测赛、原创漏洞挖掘赛、人工智能&#xff08;大模型&#xff09;挑战…

【Linux】Windows平台使用gdb调试FFmpeg源码

FFmpeg是一个跨平台的多媒体库&#xff0c;有时需要在别的平台上进行开发和调试&#xff0c;记录一下在linux环境下使用gdb来调试FFmpeg源码的基本方式 1.可执行文件 在windows平台使用linux环境来调试FFmpeg源码&#xff0c;需要编译生成一个后缀有_g的exe文件&#xff0c;参…