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,是發送給它的,然后它會根據我們輸入的這個字符串去環境變量里面去找,去看看有沒有和我們的名字一樣的程序。