【北京迅為】《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.pswp.cn/web/43757.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43757.shtml
英文地址,請注明出處:http://en.pswp.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…

IEC62056標準體系簡介-6.IEC62056標準體系的特點

相對于其它常用的計量儀表通信協議&#xff0c;如IEC1107、IEC 62056-31、IEC 60870-5-102以及北美使用的通信協議ANSI C12.18&#xff08;光口&#xff09;、C12.19&#xff08;公用表&#xff09;和C12.21&#xff08;電話通信&#xff09;和國內使用的DL/T645等&#xff0c;…

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;以幫助您更快…

【隨筆】浮生若夢

【傳承】 這樣算起來&#xff0c;人一生的故事都好像在傳承&#xff0c;生兒育女&#xff0c;傳承自己的希望&#xff1b;桃李天下&#xff0c;傳承自己的思想&#xff1b;維護國家疆土&#xff0c;傳承大國的文化。 如果每天照著鏡子&#xff0c;會看到自己慢慢老去&#xff0…

elementui實現復雜表單的實踐

簡介 文章主要講述在vue3項目中使用elementui框架實現復雜表單的方式。表單中涉及動態組件的生成、文件上傳和富文本編輯器的使用&#xff0c;只會將在實現過程中較復雜的部分進行分享&#xff0c;然后提供一份完整的前端代碼。 表單效果演示 基礎信息 spu屬性 sku詳情 關鍵…

字符串s構造前綴樹,并判斷p是否屬于s的子串

文章目錄 1、描述2、notes3、code 1、描述 根據幾個單詞&#xff0c;構造一個前綴樹&#xff0c;再給定一個單詞p,判斷p是否屬于s的前綴 輸入&#xff1a;vec {“hello”, “world”, “hey”, “hi”} p “hell” 輸入&#xff1a;yes 2、notes 就直接構造 3、code #in…

編程語言如何和計算機交互:深入解析交互機制

編程語言如何和計算機交互&#xff1a;深入解析交互機制 在數字化世界的深處&#xff0c;編程語言與計算機之間的交互是構建數字邏輯、實現功能需求的基石。這一過程既充滿神秘&#xff0c;又充滿力量。那么&#xff0c;編程語言究竟是如何與計算機進行交互的呢&#xff1f;本…

好的管理是什么樣子的?放權與監督

背景 身份&#xff1a;一線管理干部&#xff08;組長、基層部門負責人&#xff09;目標&#xff1a;部門承接的任務能夠按期高質量完成&#xff1b;在80%以上的時間里&#xff0c;部門所有成員知道自己要做什么&#xff0c;如何做好 措施 帶團隊已經有幾年時間了&#xff0c…

行為模式8.狀態模式------燈泡狀態切換

行為型模式 模板方法模式&#xff08;Template Method Pattern&#xff09;命令模式&#xff08;Command Pattern&#xff09;迭代器模式&#xff08;Iterator Pattern&#xff09;觀察者模式&#xff08;Observer Pattern&#xff09;中介者模式&#xff08;Mediator Pattern…

融合CDN是什么?為什么需要融合CDN?其應用方法與原理是什么?

你了解融合CDN是什么嗎&#xff1f;為什么需要融合CDN&#xff1f;你可能有聽過融合CDN&#xff0c;但你知道它的應用方法與原理嗎&#xff1f;本文將帶你一次了解什么是融合CDN&#xff0c;詳細介紹融合CDN的應用方法與運用原理&#xff0c;立刻替您解開心中疑惑&#xff01; …

【Qt】xml Dom復制

1. 功能 將A.xml文件中的copyNode節點全部復制到B.xml中的testRoot節點。 2. 代碼 #include <QDomDocument> #include <QFile> #include <QIODevice> #include <QtXml>void copyNodeXml() {// 源文件DOMQDomDocument ADoc;// 加載源文件QFile fileA(…

[微信小程序知識點]自定義組件-拓展-外部樣式類

使用組件時&#xff0c;組件使用者可以給組件傳入css類名&#xff0c;通過傳入的類名修改組件的樣式 。 如果需要使用外部樣式類修改組件的樣式&#xff0c;在Component中需要用extemalClassess定義若干個外部樣式類。 具體用法如下: (1)在Components文件里創建custom06組件 (…